> Hello World !!!

     

@syaku

Node.js 프로젝트의 폴더 구조 가이드: 단수와 복수 네이밍 컨벤션

728x90
반응형

Node.js 프로젝트의 폴더 구조 가이드: 단수와 복수 네이밍 컨벤션

Node.js 프로젝트를 시작할 때 가장 기본이 되는 것은 폴더 구조입니다. 잘 설계된 폴더 구조는 프로젝트의 확장성과 유지보수성을 높여줍니다. 특히 폴더 이름을 단수로 할지 복수로 할지는 많은 개발자들이 고민하는 부분입니다.

기본 폴더 구조


src/
├── config/           # 설정 관련 파일
├── middleware/       # 미들웨어 파일
├── util/            # 유틸리티 함수
├── core/            # 핵심 기능
├── controllers/     # 컨트롤러 파일들
├── services/        # 서비스 파일들
├── models/          # 모델 파일들
├── routes/          # 라우트 파일들
└── types/           # 타입 정의 파일들

폴더명 네이밍 규칙

1. 단수형 사용 (개념/시스템)

특정 개념이나 시스템을 나타내는 폴더는 단수형을 사용합니다.


src/
├── config/          # 애플리케이션 설정
│   ├── database.js  # 데이터베이스 설정
│   └── auth.js      # 인증 설정
│
├── middleware/      # 미들웨어 시스템
│   ├── auth.js      # 인증 미들웨어
│   └── logger.js    # 로깅 미들웨어
│
├── util/           # 유틸리티 개념
│   ├── date.js     # 날짜 관련 유틸
│   └── format.js   # 포맷 관련 유틸
│
└── core/           # 핵심 기능
    ├── server.js   # 서버 설정
    └── database.js # DB 연결

2. 복수형 사용 (유사 파일들의 그룹)

유사한 역할을 하는 파일들의 모음을 나타내는 폴더는 복수형을 사용합니다.


src/
├── controllers/           # 컨트롤러 그룹
│   ├── userController.js  # 사용자 관련 컨트롤러
│   └── postController.js  # 게시물 관련 컨트롤러
│
├── services/             # 서비스 그룹
│   ├── userService.js    # 사용자 관련 서비스
│   └── postService.js    # 게시물 관련 서비스
│
├── models/               # 모델 그룹
│   ├── userModel.js      # 사용자 모델
│   └── postModel.js      # 게시물 모델
│
└── routes/              # 라우트 그룹
    ├── userRoutes.js     # 사용자 관련 라우트
    └── postRoutes.js     # 게시물 관련 라우트

파일명 네이밍 규칙

  1. 단수형 사용
  2. 각 파일은 하나의 책임을 가지므로 단수형 사용
  3. 클래스/객체 이름과 일치
// userController.js
class UserController {
  // ...
}

// postService.js
class PostService {
  // ...
}
  1. 일관된 접미사
  2. Controller, Service, Model 등의 접미사 사용
  3. 역할을 명확히 표현
    userController.js
    userService.js
    userModel.js
    userRoutes.js
    

네이밍 컨벤션의 장점

  1. 명확한 책임과 역할
  2. 폴더명으로 해당 그룹의 성격 파악 가능
  3. 파일명으로 개별 파일의 역할 파악 가능

  4. 일관성

  5. 프로젝트 전체적으로 일관된 네이밍
  6. 새로운 파일 추가 시 네이밍 고민 최소화

  7. 가독성

  8. 직관적인 폴더/파일 구조
  9. 코드 탐색이 용이

  10. 유지보수성

  11. 관련 파일들의 쉬운 그룹화
  12. 확장이 용이한 구조

결론

폴더 구조를 설계할 때는 "이 폴더가 개념/시스템을 나타내는가, 아니면 유사 파일들의 그룹인가"를 기준으로 단수/복수를 결정하면 됩니다. 이러한 일관된 규칙은 프로젝트의 구조를 더 명확하고 이해하기 쉽게 만들어줍니다.

이 가이드를 따르면 프로젝트 구조가 더 체계적이고 관리하기 쉬워질 것입니다.

728x90
반응형