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
이 구조의 각 부분에 대한 설명:
src/
: 소스 코드를 포함하는 메인 디렉토리
config/
: 데이터베이스 설정 등 각종 설정 파일controllers/
: 요청을 처리하고 응답을 반환하는 컨트롤러 함수들models/
: 데이터베이스 모델 정의routes/
: API 라우트 정의middleware/
: 인증, 에러 처리 등의 미들웨어services/
: 비즈니스 로직을 처리하는 서비스 레이어utils/
: 유틸리티 함수들app.js
: Express 앱의 메인 설정 파일tests/
: 단위 테스트, 통합 테스트 등의 테스트 파일.env
: 환경 변수 설정 파일.gitignore
: Git에서 무시할 파일 목록package.json
: 프로젝트 의존성 및 스크립트 정의README.md
: 프로젝트 설명 및 문서이 구조는 관심사 분리(Separation of Concerns) 원칙을 따르며, 코드의 재사용성과 유지보수성을 높입니다. 또한, 새로운 기능을 추가하거나 기존 기능을 수정할 때 관련 코드를 쉽게 찾을 수 있습니다.
프로젝트의 규모가 커짐에 따라 이 구조를 확장하거나 수정할 수 있습니다. 예를 들어, 대규모 프로젝트에서는 src/
내부를 기능별 모듈로 나누는 것도 좋은 방법입니다.
</aside>
<aside> 💚 관심사 분리(Separation of Concerns, SoC) 원칙은 소프트웨어 설계의 핵심 원칙 중 하나입니다. 이 원칙은 프로그램을 구별된 부분으로 나누어 각 부분이 단일한 관심사를 다루도록 하는 디자인 원칙입니다.
관심사 분리의 주요 특징과 이점:
Express.js 애플리케이션에서의 관심사 분리 예시:
routes/userRoutes.js
controllers/userController.js
services/userService.js
models/User.js
middleware/authMiddleware.js
config/database.js
utils/validators.js
</aside>https://cobinding.tistory.com/165
POST /api/register
엔드포인트를 생성하여 클라이언트로부터 회원가입 요청을 받음.