Next 13 공식문서 읽기 (2)

728x90

Next.js 프로젝트 구조

  • 최상위 파일 및 폴더, 구성파일 및 라우팅 규칙에 대한 내용을 설명한다.

최상위 폴더

  • app : 앱라우터
  • pages : 페이지 라우터
  • public : 서비스의 정적 자산(데이터)
  • src : 애플리케이션 원본 폴더 (선택사항 )

최상위 파일

  • next.config.js : Next.js에 대한 구성 파일
  • package.json : 프로젝트 종속성 및 스크립트
  • instrumentation.ts : OpenTelementry / instrumentation file (이 부분에 대한 개념은 아직... 애플리케이션의 모니터링을 위한 것 같다.)
  • middleware.ts : Next.js 요청 미들웨어
  • .env : 환경변수
  • .env.local : 로컬 환경변수
  • .env.production : 배포 환경변수
  • .env.development : 개발 환경변수
  • .eslintrc.json : ESLint의 구성파일
  • .gitignore : 무시할 git 파일/폴더 설정
  • next-env.d.ts : Next.js의 스크립트 선언 파일
  • tsconfig.json : 타입스크립트 설정 파일
  • jsconfig.json : 자바스크립트 설정 파일

 

앱 라우팅 규칙

1. 라우팅 파일

  • layout : 레이아웃 파일
  • page : 페이지 파일
  • loading : 로딩 UI
  • not-found : Not found UI
  • error : 에러 UI
  • global-error : 전역 오류 UI
  • route : 라우터
  • template : 템플릿 파일(탐색 중인 자식에 대한 새로운 레이아웃)
  • default : 병렬 라우터 fallback 페이지

 

2. 중첩 라우팅

  • folder : route segment
  • folder/folder : 중첩 route segment

예를 들어, "http://localhost:3000/about"에 대한 라우터는

루트에서 about 폴더를 만들어서 사용한다.

/app
    /about
        page.ts

이렇게 하면 /about에 대한 라우팅을 할 수 있다.

그러므로 "http://localhost:3000/about/me"에 대한 라우팅은

/app
    /about
        /me
            page.ts

위와 같은 방법으로 라우팅을 설정할 수 있다.

 

3. 동적 경로 ( Dynamic Routes)

  • [folder] : 동적 경로 세그먼트
  • [...folder] : Catch-all 경로 세그먼트
  • [[...folder]] : Catch-all 경로 세그먼트 (옵션)

 

4. 라우트 그룹 및 Private 폴더

  • (folder): 라우팅에 영향을 주지 않고 경로를 그룹화 (group)
  • _folder : 라우팅에서 폴더 및 모든 자식 세그먼트 숨김 ( private )

 

5. 병렬 및 인터셉트 라우트

  • @folder : 명명된 슬롯
  • (.)folder : 동일 레벨에서 가로채기
  • (..)folder : 한 단계 위에서 가로채기
  • (..)(..)folder : 두 단계 위에서 가로채기
  • (...)folder : 루트에서 가로채기

 

6. 메타데이터 파일 규칙

6-1. 앱 아이콘

이름 확장자 설명
favicon .ico 파비콘 파일
icon .ico, .jpg, .png, ... 앱 아이콘 파일
icon .js, .ts, .tsx 생성된 앱 아이콘
apple-icon .ico, .jpg, .png, ... Apple 앱 아이콘 파일
apple-icon .js, .ts, .tsx 생성된 Apple 앱 아이콘

6-2. 오픈그래프 및 트위터 이미지

이름 확장자 설명
opengraph-image .jpg, .png, .gif, .jpeg 오픈그래프 이미지 파일
opengraph-image .js, .ts, .tsx 생성된 오픈그래프 이미지
twitter-image .jpg, .png, .gif, .jpeg 트위터 이미지 파일
twitter-image .js, .ts, .tsx 생성된 트위터 이미지

6-3. SEO

이름 확장자 설명
sitemap .xml 사이트맵 파일
sitemap .ts, .js 생성된 사이트맵
robots .txt 로봇 파일
robots .js, .ts 생성된 로봇 파일

 

 

 

사진 및 내용 출처 : NEXT 공식문서 (https://nextjs.org)

 


 

반응형

'FrontEnd > NEXT' 카테고리의 다른 글

Next 13 공식문서 읽기 (3)  (0) 2023.11.07
Next 13 공식문서 읽기 (1)  (0) 2023.11.03