npm install -g pnpm
pnpm install
pnpm run staging
src/
│
├── app/
│ ├── shared/ # 공유 컴포넌트나 유틸리티 함수
│ ├── entities/ # 주요 도메인 모델 (예: User, Product)
│ ├── features/ # 개별 기능 (예: 로그인, 장바구니 추가)
│ ├── widgets/ # 특정 페이지에만 쓰이는 컴포넌트
│ ├── processes/ # 비즈니스 로직을 위한 프로세스 (예: 회원가입)
│ └── pages/ # Next.js의 pages 디렉토리 역할
Next.js에서 pages/
디렉터리 내부의 파일들은 자동으로 URL 경로와 연결됩니다.
- 소문자와 하이픈 사용: 파일 이름은 소문자로 작성하고, 단어 사이에 하이픈(
-
)을 사용해 URL 친화적으로 만듭니다.- 예시:
about-us.js
→/about-us
- 예시:
- 동적 경로: 동적 라우팅을 사용할 때는 대괄호(
[]
)를 사용하여 변수를 정의합니다.- 예시:
[id].js
→/123
- 예시:
Next.js 13에서 도입된 app/
디렉터리는 모듈화된 라우팅을 지원합니다. 각 폴더는 라우트 세그먼트를 나타내며, page.js
파일이 해당 경로의 콘텐츠를 정의합니다.
- 예시:
app/about/page.js
→/about
재사용 가능한 컴포넌트는 주로 components/
디렉터리에 위치하며, 파일 이름은 PascalCase로 작성합니다.
- 예시:
Header.js
,ProductList.js
pages/api/
디렉터리의 파일은 API 엔드포인트로 매핑됩니다. 파일 이름 규칙은 페이지와 동일하게 적용됩니다.
- 예시:
pages/api/user.js
→/api/user
CSS 모듈을 사용할 때는 파일 이름에 .module.css
또는 .module.scss
확장자를 사용해 해당 스타일이 컴포넌트에 국한되도록 합니다.
- 예시:
ProductList.module.css
TypeScript를 사용하는 경우, 유틸리티 파일은 .ts
, JSX를 반환하는 컴포넌트는 .tsx
확장자를 사용합니다.
- 예시:
Header.tsx