여태 express 길게 공부해왔다. 자유도는 정말 좋았지만 뭔가 딱딱함? 이 느껴지지 않았다. 그래서 NestJS라는 것을 알고 이를 공부해보려고 한다. 사실 TypeScript 공부도 이를 위한 빌드업이라고 할까...?
우선 NestJS란 뭔지 공식 사이트에서 간단하게 알아봤다.
Nest (NestJS)는 효율적이고 확장 가능한 Node.js 서버 측 애플리케이션을 구축하기 위한 프레임워크입니다.
이것은 알겠다. 큰 특징은 다음에 있다.
- 프로그레시브 자바스크립트 사용
- TypeScript로 빌드되고 완벽하게 지원
- OOP (객체 지향 프로그래밍 Object Oriented Programming)
- FP (함수형 프로그래밍 Functional Programming)
- FRP (함수형 반응형 프로그래밍 Functional Reactive Programming)
- express를 기본으로 채택
간단하게 얘기해서 express를 기반으로 오류를 줄이고 유지관리가 쉬우며 코드 재사용성을 높인 웹 프레임워크이다.
NestJS와 Express의 비교
Express는 앞에서 말한 것처럼 구조가 간단하고 자유도가 높다. 이는 여러 툴과 기술, 미들웨어 등을 마음껏 사용할 수 있게 해 준다.
하지만 이런 편리함 뒤에 단점이 있다.
여럿의 개발자들이 큰 프로젝트를 함께 진행한다면 프로덕트의 구조는 개발자들의 개성과 스타일이 녹아들어 다양한 형태를 띨 것이다. 이는 통일성을 떨어트리고 유지, 관리, 보수에 많은 시간을 사용하게 된다.
이런 문제를 NestJS가 개선을 했다는 것이다. 이는 처음부터 controller, service, module의 구조를 가진다. 또한 특정한 디자인 패턴들을 가진다. NestJS는 Express에 비해 자유도가 떨어졌다 생각하겠지만 큰 통일성을 가지게 되었고 좀 더 단단함?을 가진 것이다.
이는 작은 프로젝트에 큰 영향이 있을지는 모르겠지만 프로덕트가 커지게 된다면 필수이지 않을까 싶다.
'Backend > Node.js' 카테고리의 다른 글
[Express] Joi를 이용해 Validation 검증 (0) | 2022.07.25 |
---|---|
[Express] swagger를 router에서 분리 정리 (0) | 2022.07.22 |
[NestJS] JWT를 이용해 토큰 생성 (0) | 2022.07.19 |
[NestJS] Pipe를 이용한 유효성 검사 (0) | 2022.07.17 |
[Node.js] sharp를 이용한 이미지 리사이징 (0) | 2022.07.11 |