개요
NestJS는 express 혹은 fastify를 기반으로 하는 마이크로 웹프레임워크이다. 개발 언어는 Typescript이다. 마이크로 프레임워크이다보니, 풀스택 프레임워크에 비해 구조를 자유롭게 가져갈 수 있다. 근데 어느 정도의 컨벤션을 정하지 않으면, 오히려 그 자유가 큰 단점이 되버릴 수 있긴 하다. 하여 NestJS의 훌륭한 라이브러리 기반으로 쓸데없는 고민은 줄이고, 높은 생산성을 내는 방법에 대해 소개하고자 한다.
팁1: NestJS ^7.5
기왕이면 7.5 이상을 사용하는 것을 추천한다. 2020년 8월 23일 7.5가 릴리즈되었는데, NestJS CLI에 매우 강력한 기능이 추가되었다.
Generate resource
추가된 커맨드는 다음과 같다.
nest g res <스키마>
기능 소개
module, entity, service, controller, create dto, update dto를 한 번에 생성해준다.
이미 많이 작성된 코드
7.5 이전엔 아래처럼 5줄을 쳐야했고, 작성된 코드는 더 적었다.
`nest g mo 스키마명`
`nest g co 스키마명`
`nest g s 스키마명`
`nest cl 스키마명 entities/스키마명`
`nest cl 스키마명 dto/스키마명`
더 이상 파일 분류, 네이밍을 고민하지 않아도 된다
이 명령어가 추가되면서, "NestJS의 개발 구조를 어떻게 가져갈 것인가"에 대한 논의가 종결됐다. 이미 진행중인 프로젝트는 어쩔 수 없겠지만, 새로 시작하는 서비스는 위 커맨드를 이용하면, 최소한 디렉토리, 파일 분류에 관한 문제는 고민하지 않을 수 있다.
팁2: NestJSX의 CRUD
NestJS의 서브 프로젝트들이다. 개인적으로 가장 좋아하는 건 crud이다. 스타도 2.2k로 압도적이다. nestjsx의 나머지 프로젝트 스타를 합쳐도 crud하나를 못이긴다.
RestAPI를 만드는 것에 있어서는 Django의 DRF(Django Rest Framework) 수준.. 아니 그 이상이라고 생각한다. Django보다 쉽고, 생산성도 비슷하며, 성능은 더 좋다.
이 글을 처음 썼을 땐, 스웨거와 비교적 친하지 않다는 평가를 내렸었다. 2년 정도 지난 지금은 많이 개선되었다. 플러그인이 제법 똑똑해져서 컨트롤러의 리턴타입도 잘 파싱해준다. 점점 더 많은 스타트업에서 NestJS를 사용하는 모습을 보고 있으니 기분도 좋고, 내 밥그릇이 튼튼해지는 느낌이다.
'IT' 카테고리의 다른 글
[Refactoring 2판]에 대한 내 생각과 비판 (0) | 2022.11.13 |
---|---|
스벨트에서 readable만 노출하기(Svelte - writable to readable) (0) | 2022.10.10 |
기술 스택 전면 교체와 고려해야 할 사항 (8) | 2020.08.01 |
DB의 중복 값 지우기 (0) | 2020.02.27 |
EC2 deploy server: 프로세스를 백그라운드에서 실행시키기 (0) | 2019.10.15 |