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로 쿠키 관리하기
코샵
코샵
나의 코딩 일기장
    반응형
  • 코샵
    끄적끄적 코딩 공방
    코샵
  • 전체
    오늘
    어제
    • 분류 전체보기 (513) N
      • 상품 추천 (33) N
      • MongoDB (4)
      • 하드웨어 (1) N
      • 일기장 (4)
      • Unity (138)
        • Tip (41)
        • Project (1)
        • Design Pattern (8)
        • Firebase (6)
        • Asset (2)
      • 파이썬 (127)
        • Basic (40)
        • OpenCV (8)
        • Pandas (15)
        • PyQT (3)
        • SBC(Single Board Computer) (1)
        • 크롤링 (14)
        • Fast API (29)
        • Package (6)
      • Linux (4)
      • C# (97)
        • Algorithm (11)
        • Window (7)
      • TypeScript (48)
        • 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)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

    • 다비즈
  • 공지사항

  • 인기 글

  • 태그

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

  • 최근 글

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

티스토리툴바