폴더 구조는 라우팅, 재사용 코드, 서버 로직, 정적 자산의 책임을 나눠 담는다
초기 프로젝트에는 최소 구조만 있지만, 커질수록 책임별 폴더를 분리해야 경로와 import가 읽힌다.
| 책임 | 권장 위치 | 담는 것 | 주의할 점 |
|---|---|---|---|
| 라우팅 UI | src/app | page, layout, loading, error | URL과 폴더명이 연결됨 |
| 공용 컴포넌트 | src/components | 버튼, 카드, 폼 같은 재사용 UI | 라우트 전용 UI와 섞지 않기 |
| 도메인/유틸 | src/lib 또는 src/features | API 호출, 검증, 포맷 함수 | 서버 전용 코드 노출 주의 |
| 정적 자산 | public | 이미지, 아이콘, 다운로드 파일 | 경로가 루트 기준으로 노출됨 |
| 설정과 명령 | 프로젝트 루트 | package.json, next.config, tsconfig | 팀 전체 동작에 영향 |