본문 바로가기

Side Project

[PROJECT] Trello Clone 프로젝트 API - (3) 프로젝트 구조

Trello Clone 프로젝트 API - (3) 프로젝트 구조

서론

본격적으로 코드를 작성하기 앞서 제가 사용하는 프로젝트 디렉토리 구조에 대해 간략하게 설명해볼까 한다. 프로젝트의 구조는 개개인의 취향이므로 무조건적인 정답은 아니다.

전체 디렉토리 구조


디렉토리 구조

api
- config // 데이터 베이스 설정 정보, 메일 계정 정보, jwt salt 정보
- middlewares // jwt 토큰 미들웨어
- models // sequelize model 정의
- node_modules // 모듈들...
- routes // 라우팅 코드, 컨트롤러
- app.js
- index.js
- package.json
- package-lock.json
- README.md

config 디렉토리

서버를 운용하는 데 필요한 설정 정보들을 담고 있다. 실제로 데이터 베이스 연결 정보나 비밀번호 분실시 보내는 메일 계정등 다양한 정보가 담겨 있다. .gitignore 파일을 이용하여 깃에는 공유하지 않는다.

middlewares 디렉토리

JWT 토큰을 생성하고 유효성을 검사하는 미들웨어, error 헨들링을 위한 소스등이 담겨 있다.

models 디렉토리

sequelize 로 정의해놓은 모댈들

routes 디렉토리

라우팅 정보와 컨트롤러를 작성하는 디렉토리이다.
내부는 이런식으로 하여 각각의 모델별로 분리하였고 index.js 파일은 라우팅 .controller.js는 기능을 구현하는 컨트롤러가 있다.