web/Next.js

📚 Next.js 9 vs Next.js 15 주요 개념 대응표

aphyrince 2025. 5. 3. 17:59
반응형

📚 Next.js 9 vs Next.js 15 주요 개념 대응표

Next.js 9 교재 개념Next.js 15 최신 방식설명
pages/ 디렉토리 app/ 디렉토리 앱 라우터(App Router) 도입. 폴더 구조와 라우팅 방식이 바뀜
getServerSideProps, getStaticProps 서버 컴포넌트 + fetch() 직접 호출 컴포넌트 안에서 직접 데이터를 가져올 수 있음
클라이언트 렌더링 (CSR) 서버 컴포넌트 + 클라이언트 컴포넌트 분리 'use client'로 명시적으로 선언 필요
_app.js, _document.js app/layout.tsx, app/template.tsx 글로벌 레이아웃 구성 방식 변경
next/link → a 태그 필요 next/link 단독 사용 passHref 필요 없음
API 라우팅: pages/api/*.ts 그대로 사용 가능 pages/api/ 방식은 여전히 지원됨
정적 파일: public/ 폴더 동일 변함없음
동적 라우팅: [id].js [id]/page.tsx 동적 세그먼트 구조가 폴더 단위로 바뀜
코드 분할 자동 코드 분할 + 서버/클라 분리 명시적 관리 성능 최적화 자동화됨
Head 컴포넌트 metadata API (export const metadata) SEO 및 메타 설정 방식이 더 구조화됨
 

📁 예시 구조 변화

Next.js 9

pages/
  index.js
  about.js
  users/[id].js

Next.js 15 (App Router)

app/
  page.tsx
  about/
    page.tsx
  users/
    [id]/
      page.tsx

✨ 추가로 알면 좋은 개념

개념설명
서버 컴포넌트 React 컴포넌트를 서버에서 실행하고, 클라이언트에 HTML만 전달함
클라이언트 컴포넌트 브라우저에서 동작. 상태 관리, 이벤트 핸들링 등은 여기서만 가능
use client 클라이언트 컴포넌트로 만들고 싶을 때 파일 최상단에 작성
metadata API <Head> 대신 페이지별 메타태그 선언에 사용
layout.tsx 모든 페이지에 공통 레이아웃 적용. 예: 네비게이션 바, 푸터 등
loading.tsx / error.tsx 페이지 로딩/에러 처리 전용 컴포넌트 제공
 

📘 추천 학습 순서 (Next.js 15 기준)

  1. App Router 구조 이해: app/page.tsx, layout.tsx 기본 구조 익히기
  2. 서버/클라이언트 컴포넌트 차이 이해
  3. 라우팅: 정적, 동적, 중첩 라우팅 ([id]/page.tsx, users/[id]/posts/[postId])
  4. 데이터 패칭: fetch(), revalidate, 캐싱 전략 등
  5. 클라이언트 상태: 'use client' + useState, useEffect
  6. API 라우트: pages/api/ 또는 별도 서버 API 연동
  7. 메타데이터 관리: metadata API로 SEO 처리
  8. 스타일링: Tailwind CSS, CSS Modules, Styled Components 등 중 선택
반응형