
React가 UI 라이브러리라면, Next.js는 React 애플리케이션을 위한 프레임워크.
React 위에 실제 서비스 개발에 필요한 기능들을 올려주는 도구 모음이라 보면 됨.
라우팅, 렌더링, 데이터 패칭, SEO, 빌드 최적화 등
Next.js는 실전 웹 서비스를 만들기 위한 기능을 모두 포함하고 있음.
app/ 디렉토리 구조만으로 라우팅이 자동으로 구성됨/app/profile/page.tsx → /profile
/app/blog/[slug]/page.tsx → /blog/:slug
❗ 라우팅 설정을 따로 할 필요 없어 생산성이 높고, 유지보수가 쉬움
❗ 서버에서 데이터 접근이 가능해 민감한 정보를 안전하게 다룰 수 있음
use client 선언을 통해 명확히 구분함'use client'; // 이 파일은 클라이언트 컴포넌트로 동작함
❗ 어떤 코드가 서버에서 실행되는지, 클라이언트에서 실행되는지를 명확하게 알 수 있어 성능과 구조 모두에 유리함
async 함수 안에서 fetch()를 직접 호출할 수 있음useEffect, SWR, React Query 등과 함께 사용 가능// 서버 컴포넌트 내부 예시
export async function generateMetadata() {
const res = await fetch('https://api.example.com/data', {
next: { revalidate: 60 }, // 캐싱 전략 지정
});
const data = await res.json();
return { title: data.title };
}
❗ app 라우터에서는
getServerSideProps,getStaticProps는 사용하지 않음
❗ fetch에next: { revalidate },cache: 'no-store'등을 조합하여
SSR, SSG, ISR 같은 전략을 코드 위치와 상황에 따라 유연하게 구성할 수 있음
app/, layout.tsx, template.tsx 등으로 아키텍처를 명확하게 구성할 수 있음❗ 프로젝트 초기부터 규모가 커질 때까지, 개발자 경험을 고려한 구조 제공
React는 UI(View)를 위한 라이브러리.
Next.js는 라우팅, 서버 렌더링, 데이터 패칭, 빌드 최적화까지 포함하는 프레임워크.
즉, React 애플리케이션을 실전 수준의 웹 서비스로 확장하기 위한 도구 모음