정말 많은 글이 있고, 많이들 알아보는 내용이다.
과연 이 둘의 차이는 어떤 것이 있을까?
프레임워크
▶ 설계부터 코드 작성 스타일까지 모두 도구의 방식을 따라야 한다.
▶ 짜여진 프레임 내에서 작업하기 때문에 프레임워크이다.
라이브러리
▶ 도구를 사용해서 생산성을 개선하는 것에 포커스가 잡혀있다.
▶ 인터페이스를 크게 제약하지 않는다.
▶ 전체 설계까지 영향을 미치지 않는 것이 보편적이다.
강제성
개발을 할 때 정해진 방식으로 개발을 해야하는지?
자유롭게 개발을 할 수 있는지?
제어권이 개발자에게 있는지? 툴에 있는지?
강제성에서의 차이가 있을 것이다.
그렇다면 내 블로그에 많이 올라오는 React는 라이브러리일까? 프레임워크일까?
▶ 자유도가 높으니 라이브러리이다!
▶ 홈페이지에 라이브러리라고 적혀있고 주장한다!
이 글을 쓰는 나도 솔직하게 라이브러리와 프레임워크를 구분할 수 없다고 생각한다.
비교를 해보자!
React와 Next.js 를!
React는 라이브러리이고 Next.js는 프레임워크이다.
이 둘의 차이는 뭘까?
React는 개발을 할 때 다양한 방식의 폴더구조를 볼 수 있다.
우리가 페이지들을 모아두는 폴더를 Router 라는 명칭을 사용할 수 있고, Page로 사용할 수 있다.
그리고 React는 Vue와 같이 한 애플리케이션에서 동시에 사용이 가능하다.
하지만 Next.js는?
페이지 관련 파일을 모두 pages 폴더에 보여 있어야 하며, pages에 있는 폴더가 자동으로
Router가 된다.
또한 아마도 Next.js는 React 또는 Vue와 동시에 사용하지 못할 것이다.
?!
여기서 차이가 느껴지지않는가?
라이브러리와 프레임워크의 차이는 이러한 자유도의 차이가 있는 것이다.
근데 또 다른 관점으로 생각하면 React도 알게 모르게 정해진 방식을 따르고 있다....
▶ 라우팅 : react-router-dom
▶ 컴포넌트 : JSX 또는 TSX
▶ 빌드 툴 : CRA ( create-react-app ), webpack, babel, vite ...
이렇게 생각하면 또 " 과연 이게 자유로운 것인가? "라는 생각도 들게 된다.
정말 난제인 것 같다. 하지만 명목상에서 React는 라이브러리라고 생각한다.
'React > 실험실' 카테고리의 다른 글
[React] Nginx를 사용해서 배포하기 (0) | 2022.12.10 |
---|---|
[React] React-Query - Dev Tools (0) | 2022.12.01 |
[React] MSW (0) | 2022.11.24 |
[React] React-Query - QueryClient stale & cacheTime (0) | 2022.11.22 |
[React] React-Query - 로그인 유지하기 (0) | 2022.11.21 |