사용했던 프레임워크를 정리하다가 React를 프레임워크라고 착각했었는데, 이참에 확실히 정리해두고자 한다.
React와 Next.js는 제공하는 기능의 범위와 개발 흐름을 강제하는 정도가 다르다.
❓ React가 라이브러리인 이유
✅ 역할
- React는 사용자 인터페이스(UI)를 구축하기 위한 도구로, 컴포넌트 기반 개발을 지원한다. 하지만 애플리케이션의 전체적인 구조(라우팅, 데이터 페칭, 서버 렌더링 등)를 강제하지 않는다.
✅ 유연성
- 개발자가 필요한 추가 기능(라우팅, 상태 관리, 데이터 페칭)을 선택적으로 다른 라이브러리를 통해 구현해야 한다. 즉, React는 UI를 만드는 데 초점을 맞춘 라이브러리이다.
❓ Next.js가 프레임워크인 이유
✅ 역할
- Next.js는 React 기반으로 만들어진 프레임워크로, React만으로는 부족한 기능들을 포함하여 웹 애플리케이션 개발을 위한 구조와 도구를 제공한다.
✅ 기능 제공
- 파일 기반 라우팅: 폴더 구조를 기반으로 자동으로 라우팅 설정
- 서버사이드 렌더링 (SSR): 서버에서 HTML을 생성하여 클라이언트로 전달하는 기능 제공
- 정적 사이트 생성 (SSG): 빌드 시 HTML 파일을 생성하여 빠른 로딩 가능
- API 라우트: 서버에서 API를 작성할 수 있는 기능 제공
- 이미지 최적화 및 기타 빌트인 도구: 웹 성능 개선을 위한 다양한 기능 내장
✅ 강제성
- Next.js는 프로젝트의 구조와 흐름을 어느 정도 강제한다. (예: pages 디렉토리를 사용해 라우팅 처리, 특정 방식으로 API 작성)
💡 Next.js는 단순한 UI 개발 도구를 넘어서 웹 애플리케이션 개발에 필요한 모든 요소를 갖춘 "완전한 개발 환경"이다. 개발자는 별도의 설정 없이 프로젝트를 빠르게 시작할 수 있으며, 프레임워크가 제시하는 명확한 규칙과 구조를 따르게 된다.
즉, React는 UI 구축을 위한 도구를 제공하는 반면, Next.js는 React를 포함하여 웹 애플리케이션 개발을 위한 완전한 환경과 규칙을 제공하기 때문에 프레임워크로 분류된다!
'Next.js' 카테고리의 다른 글
[Next.js & React-Query] 서버 컴포넌트에서 QueryClient 호출하기 (1) | 2025.04.28 |
---|---|
[Next.js] SSR 환경에서의 데이터 공유(캐싱, 전역 상태 관리) (0) | 2025.04.20 |
[Next.js] 프로젝트 초기 세팅을 해보자! (0) | 2025.04.06 |
[리팩토링]Next.js 프로젝트 리팩토링 기록 정리 (0) | 2025.02.27 |