express.js는 가장 유명한 Node.js기반 웹프레임워크다.
이미 조약하게나마 몇번 써본 경험이 있기 때문에 Hello World는 건너 뛰고, 프로답게 사용하기 위한 방법/팁들을 배우고 정리해보겠다.
Bulletproof node.js project architecture
사용할 구조는 Bulletproff architecture다. (원글 링크, 번역본 링크)
이 구조의 특징은 다음과 같다.
- 3 계층 설계: Controller, Service Layer, Data Access Layer
- Pub/Sub 계층 (+ event emitter)
- 의존성 주입(=Dependency Injextion): 링크 typedi
- 스케줄링 및 반복 작업: agenda.js 링크
- env, secret 파일 : dotenv 사용
- loaders : Node.js 서비스의 시작 프로세스를 테스트 가능한 모듈로 나누자.
express에 대해서
- Router
- express.Application(app.head, app.enalbe, app.use)
- body-parser
- cors
- express-jwt vs jsonwebtoken
Librarys
Expressjs 서버 개발을 도와주는 다양한 라이브러리들이 있다. 자세한 설명은 각각 따로 포스팅 해야할듯하다.
-
typedi
의존성 주입에 사용된다. (Container, Service) -
reflect-metadata
javascript에서 reflection, decorator를 사용할 수 있게 해준다고한다. 리플렉션이 뭔지부터 찾아봐야할듯 (= 변수의 타입을 체크하고 객체의 구조를 탐색하는 과정)- add additional metadata to a class in a consistent manner.
- consistent approach for various tools and libraries
- add additional metadata to a class in a consistent manner.
-
agenda
-
event-dispatch
-
winston
-
mongoose
-
암호화: argon2, crypto