BE commit 내역이랑 기존 ERD 참고해서 작성

<aside> 💚 Express.js로 백엔드 작업을 할 때 적절한 폴더 구조는 프로젝트의 규모와 복잡성에 따라 달라질 수 있지만, 일반적으로 다음과 같은 구조가 많이 사용되고 추천됩니다:

Copy
project-root/
│
├── src/
│   ├── config/
│   │   └── database.js
│   │
│   ├── controllers/
│   │   └── userController.js
│   │
│   ├── models/
│   │   └── User.js
│   │
│   ├── routes/
│   │   ├── index.js
│   │   └── userRoutes.js
│   │
│   ├── middleware/
│   │   ├── auth.js
│   │   └── errorHandler.js
│   │
│   ├── services/
│   │   └── userService.js
│   │
│   ├── utils/
│   │   └── helper.js
│   │
│   └── app.js
│
├── tests/
│   └── user.test.js
│
├── .env
├── .gitignore
├── package.json
└── README.md

이 구조의 각 부분에 대한 설명:

  1. src/: 소스 코드를 포함하는 메인 디렉토리
  2. tests/: 단위 테스트, 통합 테스트 등의 테스트 파일
  3. .env: 환경 변수 설정 파일
  4. .gitignore: Git에서 무시할 파일 목록
  5. package.json: 프로젝트 의존성 및 스크립트 정의
  6. README.md: 프로젝트 설명 및 문서

이 구조는 관심사 분리(Separation of Concerns) 원칙을 따르며, 코드의 재사용성과 유지보수성을 높입니다. 또한, 새로운 기능을 추가하거나 기존 기능을 수정할 때 관련 코드를 쉽게 찾을 수 있습니다.

프로젝트의 규모가 커짐에 따라 이 구조를 확장하거나 수정할 수 있습니다. 예를 들어, 대규모 프로젝트에서는 src/ 내부를 기능별 모듈로 나누는 것도 좋은 방법입니다.

</aside>

<aside> 💚 관심사 분리(Separation of Concerns, SoC) 원칙은 소프트웨어 설계의 핵심 원칙 중 하나입니다. 이 원칙은 프로그램을 구별된 부분으로 나누어 각 부분이 단일한 관심사를 다루도록 하는 디자인 원칙입니다.

관심사 분리의 주요 특징과 이점:

  1. 모듈성:
  2. 단일 책임 원칙:
  3. 느슨한 결합:
  4. 테스트 용이성:
  5. 병렬 개발:

Express.js 애플리케이션에서의 관심사 분리 예시:

  1. 라우팅 (Routes):
  2. 컨트롤러 (Controllers):
  3. 서비스 (Services):
  4. 모델 (Models):
  5. 미들웨어 (Middleware):
  6. 설정 (Config):
  7. 유틸리티 (Utils):

API 명세

https://cobinding.tistory.com/165

API 명세

회원가입/로그인

회원가입

What

How