Next.js 프로젝트 구조의 모든 것: src/pages와 src/app 제대로 알기

2025. 4. 9. 20:53·TypeScript
반응형

Next.js에서 src/pages/_document.tsx, src/pages/_app.tsx, 그리고 src/app 디렉토리는 각각 다른 목적을 가지고 있는 중요한 구조입니다.

src/pages/_document.tsx

_document.tsx는 HTML 문서의 구조를 커스터마이징할 수 있게 해주는 특수 파일입니다.

  • 서버에서만 렌더링되며, 클라이언트 사이드 이벤트 핸들러는 여기에 추가할 수 없습니다.
  • <html>, <body> 태그를 수정하거나 메타 태그와 같은 문서 메타데이터를 조작할 때 사용합니다.
  • CSS-in-JS 라이브러리 설정, 글꼴 로딩, 전역 스타일 등을 처리하는 데 활용됩니다.
  • 모든, 페이지에 공통으로 적용되는 HTML 구조를 정의합니다.

src/pages/_app.tsx

_app.tsx는 모든 페이지를 감싸는 컴포넌트로, 페이지 간 공통 레이아웃과 상태를 관리합니다.

  • 페이지 변경 시 레이아웃을 유지합니다.
  • 페이지 전환 시 상태를 유지할 수 있습니다.
  • 전역 CSS를 여기서 임포트합니다.
  • 에러 처리, 데이터 페칭 로직 등 공통 기능을 추가할 수 있습니다.
  • Redux 등의 상태 관리 래퍼를 여기서 적용합니다.

src/app 디렉토리

src/app 디렉토리는 Next.js 13 이상에서 도입된 App Router 기능과 관련이 있습니다.

  • Pages Router(src/pages)와 달리 React Server Components를 기본적으로 지원합니다.
  • 파일 시스템 기반 라우팅을 제공하지만, Pages Router와는 다른 규칙을 사용합니다.
  • 중첩 레이아웃, 로딩 상태, 에러 처리 등을 더 간단하게 구현할 수 있습니다.
  • page.tsx, layout.tsx, loading.tsx, error.tsx 등 특수 파일 규칙을 사용합니다.
  • 더 효율적인 서버 컴포넌트 기반 렌더링을 제공합니다.

두 라우팅 시스템의 차이점

  • src/pages: 전통적인 Pages Router
  • src/app: 새로운 App Router

두 시스템은 한 프로젝트에서 공존할 수 있지만, 새 프로젝트에서는 보통 App Router(src/app)를 사용하는 것이 권장됩니다.

이러한 구조는 Next.js 애플리케이션의 다양한 수준에서 컨트롤을 제공하며, 각각 다른 목적을 가지고 있습니다.

저작자표시 비영리 변경금지 (새창열림)

'TypeScript' 카테고리의 다른 글

웹사이트 SEO를 위한 메타데이터 최적화 완벽 가이드: 검색 노출부터 소셜 공유까지  (1) 2025.04.11
React Context API: 상태 관리  (0) 2025.04.10
React에서 브라우저 창 제어하기: 새 창 열기부터 URL 추적까지  (1) 2025.03.28
Next.js에서 cookies-next로 쿠키 관리하기  (2) 2025.03.22
tailwind CSS : 유틸리티 기반 CSS 프레임워크  (0) 2025.03.01
'TypeScript' 카테고리의 다른 글
  • 웹사이트 SEO를 위한 메타데이터 최적화 완벽 가이드: 검색 노출부터 소셜 공유까지
  • React Context API: 상태 관리
  • React에서 브라우저 창 제어하기: 새 창 열기부터 URL 추적까지
  • Next.js에서 cookies-next로 쿠키 관리하기
코샵
코샵
나의 코딩 일기장
    반응형
  • 코샵
    끄적끄적 코딩 공방
    코샵
    • 분류 전체보기 (725)
      • 스마트팜 (0)
      • 상품 추천 (223)
      • MongoDB (4)
      • 하드웨어 (17)
      • 일기장 (4)
      • 파이썬 (130)
        • Basic (41)
        • OpenCV (8)
        • Pandas (15)
        • PyQT (3)
        • SBC(Single Board Computer) (1)
        • 크롤링 (14)
        • Fast API (29)
        • Package (6)
      • Unity (138)
        • Tip (41)
        • Project (1)
        • Design Pattern (8)
        • Firebase (6)
        • Asset (2)
      • Linux (4)
      • C# (97)
        • Algorithm (11)
        • Window (7)
      • TypeScript (51)
        • CSS (10)
      • Git (11)
      • SQL (5)
      • Flutter (10)
        • Tip (1)
      • System (1)
      • BaekJoon (6)
      • Portfolio (2)
      • MacOS (1)
      • 유틸리티 (1)
      • 서비스 (6)
      • 자동화 (3)
      • Hobby (10)
        • 물생활 (10)
        • 식집사 (0)
  • 인기 글

  • 태그

    appdevelopment
    카페24리뷰
    긴유통기한우유
    codingcommunity
    쇼핑몰리뷰
    스크립트 실행 순서
    상품 리뷰 크롤링
    라떼우유
    파이썬
    C#
    learntocode
    셀레니움
    리뷰이관
    Python
    스마트스토어리뷰
    스크립트 실행
    ipcamera
    리스트
    unity
    programmerlife
    list
    rtsp
    유니티
    카페24리뷰이관
    codingtips
    믈레코비타멸균우유
    리뷰관리
    programming101
    cv2
    devlife
  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
코샵
Next.js 프로젝트 구조의 모든 것: src/pages와 src/app 제대로 알기
상단으로

티스토리툴바