<aside>
💡 Frameworkless movement
'프레임워크 없는' 이라는 주제에 대한 인식을 고취하고 주제를 논의할 커뮤니티를 만드는 것
사람들이 프레임워크 없는 프론트엔드 어플리케이션 개발이 가능하다는 것을 이해하도록 돕는 것
</aside>
1장 프레임워크에 대한 이야기
프레임워크란?
캠브리지 사전의 일반적인 정의 무언가를 만들 수 있는 지지 구조
라이브러리와 프레임워크의 차이?
- 프레임워크는 코드를 호출한다. 코드는 라이브러리를 호출한다.
- Angular Vs. Moment.js
프레임워크 방식(framework's way)
- 라이브러리(moment.js)는 개발자가 어떻게 코드에 통합하는지 강요하지 않는다. 이에반해 프레임워크(angular)는 독선적이다.
- 언어 - Angular 에 Typescript 는 표준
- 의존성 주입 - 컴포넌트가 앵귤러 어플리케이션에서 통신할 수 있게 하려면 유형에 따라 의존성 주입 메커니즘을 사용해 컴포넌트를 주입해야 함
- 옵저버블 - 앵귤러는 옵저버블을 사용한 반응형 프로그래밍용 라이브러리인 RxJS를 기반으로 설계됨
- 프레임워크의 핵심 멤버들이 만든 제약조건 외에도 다른 제약 조건도 존재 (커뮤니티의 사실상 표준방식 등)
- 프레임워크의 모든 제약 조건을 '프레임워크 방식'이라 부른다.
- 이런 제약조건이 반드시 좋거나 나쁜 것은 아니지만 프로젝트에 적합한 도구인지 평가하려면 팀이 선택한 프레임워크의 '방식'을 분석하는 것은 매우 중요하다.
- 리액트 라이브러리? 프레임워크?
- 공식 홈페이지에는 '사용자 인터페이스 구축을 위한 자바스크립트 라이브러리' 라고 정의돼 있다.
- 리액트의 주요 제약 사항은 선언적 패러다임의 사용 (DOM을 직접 조작하는 대신 컴포넌트의 상태를 수정하고 리액트가 대신 DOM을 수정한다)
- 저자가 리액트를 라이브러리가 아닌 프레임워크라고 믿는 이유
- 이러한 방식은 코드 때문이 아니라 리액트 커뮤니티에서 사용할 때 수용한 제약 사항 때문이다.
자바스크립트 프레임워크 연혁
제이쿼리
2006년 존 레식이 만든 제이쿼리는 모든 자바스크립트 프레임워크의 모체가 됐다. 실제 제품 환경에서 가장 많이 사용되는 프레임워크이며 $('.className') 과 같은 선택자구문이 유명하다.
제이쿼리는 통일되지 않은 브라우저환경에 공통어를 만들었으며 이는 커뮤니티가 함께 성장하도록 도와줬다. AJAX요청, 애니메이션, 기타 유틸리티 같은 많은 기능이 핵심 프로젝트에 추가됐고 프론트엔드 개발의 맥가이버 칼이 됐다. 오늘날 프론트엔드 개발자들이 제이쿼리를 우습게 여기는 경향이 있지만 제이쿼리는 현대 웹 개발의 초석 역할을 했다.
앵귤러JS