#0. 프로젝트 디렉토리 구조

toto9602·2022년 2월 21일
0

첫 Express 프로젝트

목록 보기
1/7

참고자료: 견고한 node.js 프로젝트 설계하기

웹 프레임워크로는 Django만을 사용하다,
다른 프레임워크를 공부해 보고 싶어서 Express를 활용한 프로젝트를 진행해 보기로 했다!

Express-Generator를 활용하면 폴더 구조를 알아서 생성해 준다고 하는데,
자동으로 생성된 폴더 구조가 손에 잘 익을 것 같지도 않고,
조금 더 깔끔하게 작성해 보고 싶어 구글링을 거듭한 끝에 다음과 같이 작성하였다.

backend
│   app.js
│   package.json   
│   package-lock.json
│   .env
│ 
└───config
│   │   db.js
│   
└───controllers
│   │   authController.js
│   │   dropController.js
│   
└───utils
│   │   auth.js
│  
└───models
│   │   drop.js
│   │   post.js
│   │   index.js
│   
└───passport
│   │   passport.js
│   
└───routes
│   │   authRouter.js
│   │   dropRouter.js
│   │   index.js
│   
└───services
│   │   authServices.js
│   │   dropServices.js

프로젝트를 진행하다가 중간에 midddlewares 디렉토리를 추가하긴 했고..
아직 인증과 기본적인 CRUD만 구현한 프로젝트이지만

앞으로 디렉토리 구조를 변경할 일은 없을 것 같아 기록해 두고자 한다!

1. config

DB 관련 정보 등, 비밀 설정 정보들을 관리.

2. controllers

services 디렉토리와 분리하여, 프론트엔드에서의 요청을 가공하여 services에 전달하고,

응답을 반환하는 컨트롤러

3. utils

반복적으로 사용할 함수들을 utils 디렉토리에 정의해서 따로 관리

4. models

데이터베이스에 데이터를 저장하는 방식을 정의하는 models

6. passport

인증 관련 패키지인 passport 관련 로직

7. routes

어플리케이션의 URL을 정의하고, 해당 URL에서 응답이 이루어지는 방식을 정의

8. services

controllers에서 이어져, 요청에 대한 실제 로직이 작성되는 디렉토리입니다.


참고자료를 나름 참고하노라고 했지만...
후반부에 설명되어 있는 의존성 주입과 같은 개념은 사실 이해를 잘 못해서..

사실

  • 비즈니스 로직을 controller에 넣지 말 것
  • service 계층에 비즈니스 로직을 넣을 것

정도만 반영해서 작성한 것 같다.

이번에 반영하지 못한 부분은 앞으로 Express를 써 나가면서 더 공부해야지..!!

profile
주니어 백엔드 개발자입니다! 조용한 시간에 읽고 쓰는 것을 좋아합니다 :)

0개의 댓글