Docs
Project Structure

Next.js 프로젝트 구조

이 페이지는 Next.js 애플리케이션의 프로젝트 구조에 대한 개요를 제공합니다. 최상위 파일 및 폴더, 구성 파일, 그리고 apppages 디렉토리 내의 라우팅 관례를 다룹니다.

파일 및 폴더 이름을 클릭하면 각 관례에 대해 더 자세히 알아볼 수 있습니다.

최상위 폴더

최상위 폴더는 애플리케이션의 코드와 정적 자산을 구성하는 데 사용됩니다.

Route segments to path segments
appApp Router
pagesPages Router
public정적 자산을 제공
src선택적 애플리케이션 소스 폴더

최상위 파일

최상위 파일은 애플리케이션을 구성하고, 종속성을 관리하며, 미들웨어를 실행하고, 모니터링 도구를 통합하며, 환경 변수를 정의하는 데 사용됩니다.

Next.js
next.config.jsNext.js 구성 파일
package.json프로젝트 종속성과 스크립트
instrumentation.tsOpenTelemetry 및 계측 파일
middleware.tsNext.js 요청 미들웨어
.env환경 변수
.env.local로컬 환경 변수
.env.production프로덕션 환경 변수
.env.development개발 환경 변수
.eslintrc.jsonESLint 구성 파일
.gitignoreGit에서 무시할 파일 및 폴더
next-env.d.tsNext.js를 위한 TypeScript 선언 파일
tsconfig.jsonTypeScript 구성 파일
jsconfig.jsonJavaScript 구성 파일

app 라우팅 관례

다음 파일 관례는 app 라우터에서 라우트를 정의하고 메타데이터를 처리하는 데 사용됩니다.

라우팅 파일

layout.js .jsx .tsx레이아웃
page.js .jsx .tsx페이지
loading.js .jsx .tsx로딩 UI
not-found.js .jsx .tsx찾을 수 없는 UI
error.js .jsx .tsx오류 UI
global-error.js .jsx .tsx전역 오류 UI
route.js .tsAPI 엔드포인트
template.js .jsx .tsx재렌더링된 레이아웃
default.js .jsx .tsx병렬 라우트 대체 페이지

중첩 라우트

folder라우트 세그먼트
folder/folder중첩 라우트 세그먼트

동적 라우트

[folder]동적 라우트 세그먼트
[...folder]모든 것을 포함하는 라우트 세그먼트
[[...folder]]선택적 모든 것을 포함하는 라우트

라우트 그룹 및 비공개 폴더

(folder)라우팅에 영향을 주지 않고 그룹화
_folder라우팅에서 폴더 및 모든 자식 세그먼트 제외

병렬 및 가로채기 라우트

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

메타데이터 파일 관례

앱 아이콘

favicon.ico파비콘 파일
icon.ico .jpg .jpeg .png .svg앱 아이콘 파일
icon.js .ts .tsx생성된 앱 아이콘
apple-icon.jpg .jpeg, .png애플 앱 아이콘 파일
apple-icon.js .ts .tsx생성된 애플 앱 아이콘

오픈 그래프 및 트위터 이미지

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

| twitter-image | .js .ts .tsx | 생성된 트위터 이미지 |

SEO

sitemap.xml사이트맵 파일
sitemap.js .ts생성된 사이트맵
robots.txt로봇 파일
robots.js .ts생성된 로봇 파일

pages 라우팅 관례

다음 파일 관례는 pages 라우터에서 라우트를 정의하는 데 사용됩니다.

특수 파일

_app.js .jsx .tsx커스텀 앱
_document.js .jsx .tsx커스텀 문서
_error.js .jsx .tsx커스텀 오류 페이지
404.js .jsx .tsx404 오류 페이지
500.js .jsx .tsx500 오류 페이지

라우트

폴더 관례
index.js .jsx .tsx홈 페이지
folder/index.js .jsx .tsx중첩 페이지
파일 관례
index.js .jsx .tsx홈 페이지
file.js .jsx .tsx중첩 페이지

동적 라우트

폴더 관례
[folder]/index.js .jsx .tsx동적 라우트 세그먼트
[...folder]/index.js .jsx .tsx모든 것을 포함하는 라우트 세그먼트
[[...folder]]/index.js .jsx .tsx선택적 모든 것을 포함하는 라우트
파일 관례
[file].js .jsx .tsx동적 라우트 세그먼트
[...file].js .jsx .tsx모든 것을 포함하는 라우트 세그먼트
[[...file]].js .jsx .tsx선택적 모든 것을 포함하는 라우트