Project structure and organization

폴더

기본 구조

appApp Router
pagesPages Router
publicStatic assets to be served
srcOptional application source folder

동적 라우트

[folder]Dynamic route segment
[...folder]Catch-all route segment
[[...folder]]Optional catch-all route segment

파일

기본 컴포넌트

폴더 컨벤션

  1. app 의 하위 폴더 이름이 곧 URL 경로.
  2. 단, page.js 또는 route.js가 존재해야 접근할 수 있다.
  3. _로 시작하는 폴더는 private하다. (page.js/route.js 존재해도 접근 안됨)

파일 컨벤션

  1. page.js가 기본 페이지 컴포넌트이다.
  2. layout.js여러 페이지에서 공용으로 사용할 컴포넌트이다.
    1. app 폴더에 반드시 루트 레이아웃이 정의돼야 한다.
    2. 레이아웃이 page.js를 감싸는 역할을 한다.
  3. [slug] 를 이용해 조건별 페이지 컴포넌트를 정의할 수 있다.