프로젝트 파일 및 폴더 구조
이 페이지는 파일 및 폴더 구조를 프로젝트에 맞게 설계할 수 있는 개요를 제공합니다. 해당 문서는 아래 문서들의 개념을 이미 읽었다고 가정합니다.
키워드
- under score folder: underscore prefix(예시 _components) 인 폴더는 라우팅 목적이 아닌 모듈에 대한 네이밍으로 라우터에서 제외됩니다.
- parenthesis folder: parenthesis prefix(예시 auth) 인 폴더는 로직 그룹화를 위한 네이밍으로 라우터에서 제외됩니다.
최상위 구조
명칭 | 설명 |
---|---|
_providers | context 모듈 |
_store | redux 즉 reducer 모듈 |
_utils | 플러그인, 예외처리 등 유틸함수 제공 |
[lang] | 다국어 지원 목적으로 라우팅 파라미터로 분리된 모듈 |
config | 프로젝트 설정과 관련된 전역 변수들을 관리하는 모듈 |
styles | 전역 스타일을 정의하는 파일 |
locales | 다국어 지원 문자를 정의하는 파일 |
모듈 구조
서비스 단위로 구성된 폴더는 해당 폴더를 삭제하더라도 서비스가 동작하는데 문제가 없어야 합니다.
또한, 폴더 내부의 파일은 해당 폴더의 기능을 설명하는 파일이어야 합니다.
독립적인 모듈 구조를 이룰 수 있도록 설계해야 합니다.
명칭 | 설명 |
---|---|
page.(mdx|tsx) | 폴더에 해당하는 페이지 파일 |
layout.(mdx|tsx) | 폴더에 해당하는 레이아웃 파일 |
_components/client-only | 상위 폴더내에서 사용되는 반응형 컴포넌트 |
_components/server-only | 상위 폴더내에서 사용되는 서버 컴포넌트 |
_components/server-client | 서버와 클라이언트 컴포넌트를 기반으로 제작된 컴포넌트 |