[React] Library vs Framework

2022. 11. 29. 14:20·React/실험실
반응형

정말 많은 글이 있고, 많이들 알아보는 내용이다. 

과연 이 둘의 차이는 어떤 것이 있을까? 

 

프레임워크 

▶ 설계부터 코드 작성 스타일까지 모두 도구의 방식을 따라야 한다. 

▶ 짜여진 프레임 내에서 작업하기 때문에 프레임워크이다. 

 

라이브러리 

▶ 도구를 사용해서 생산성을 개선하는 것에 포커스가 잡혀있다. 

▶ 인터페이스를 크게 제약하지 않는다. 

▶ 전체 설계까지 영향을 미치지 않는 것이 보편적이다. 

 

강제성

개발을 할 때 정해진 방식으로 개발을 해야하는지? 

자유롭게 개발을 할 수 있는지? 

제어권이 개발자에게 있는지?  툴에 있는지? 

 

강제성에서의 차이가 있을 것이다. 

 

그렇다면 내 블로그에 많이 올라오는 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
'React/실험실' 카테고리의 다른 글
  • [React] Nginx를 사용해서 배포하기
  • [React] React-Query - Dev Tools
  • [React] MSW
  • [React] React-Query - QueryClient stale & cacheTime
잉여개발자
잉여개발자
풀스택 개발자를 목표로 잉여롭게 개발 공부도 하면서 다양한 취미 생활도 즐기고 있는 잉여 개발자입니다.
  • 잉여개발자
    잉여로운 개발일지
    잉여개발자
    • 분류 전체보기 (789)
      • 개발정보 (36)
      • 개발환경 (7)
      • 개발생활 (19)
      • React (141)
        • 이론 (23)
        • 기능 (12)
        • 실험실 (88)
        • 버그 (6)
        • 패스트캠퍼스 (9)
        • Npm (3)
      • React Native (28)
        • 공통 (6)
        • TypeScript (3)
        • JavaScript (18)
        • 버그 (1)
      • Next.js (30)
        • 이론 (13)
        • 실험실 (13)
        • 버그 (3)
      • Web (35)
      • 알고리즘 (202)
        • 풀이 힌트 (39)
      • JavaScript (47)
      • TypeScript (29)
        • 기초 (27)
        • 실험실 (2)
      • Node.js (13)
        • 이론 (0)
        • 기능 (3)
        • 실험실 (9)
        • 버그 (1)
      • 도커 (4)
      • CCNA (22)
        • 이론 (4)
        • 문제 (18)
      • 취미생활 (167)
        • 잉여로운 칵테일 (2)
        • 잉여의 식물키우기 (130)
        • 잉여로운 여행기 (11)
        • 잉여의 제2외국어 (21)
        • 잉여로운 책장 (2)
      • Java (1)
        • Java의 정석 (1)
      • 꿀팁 공유 (3)
  • 태그

    typescript
    영어독학
    javascript
    타일러영어
    리얼학습일기
    CSS
    next.js
    식물
    프로그래머스
    Node.js
    react
    리액트
    webpack
    네트워크
    알고리즘
    CCNA
    바질
    리얼클래스
    Babel
    덤프
    Docker
    자바스크립트
    영어회화
    타입스크립트
    다이소
    바질 키우기
    ChatGPT
    ReactNative
    네이버 부스트캠프
    redux
  • hELLO· Designed By정상우.v4.10.1
잉여개발자
[React] Library vs Framework
상단으로

티스토리툴바