[NestJS] Express에서 Nestjs로..

루나·2022년 5월 11일
1

원래 쓰던 프로젝트를 결국 Nestjs로 마이그레이션했다.

이유는 아래와 같다.

  • 원래도 express에서 각 계층 로직을 분리해서 사용했었으며 Nestjs를 배우다가 Nestjs의 철학과 모듈, 컨트롤러, 서비스를 분리하는 아키텍처가 원래도 본인이 개발하던 방식과 크게 다르지 않아 익숙했기 때문

  • TypeScript를 적극적으로 지원하여 버그와 에러를 미리 확인 가능하며 인수, return 값 등을 확인 가능해 개발자 편의를 제공

  • 일관적인 라이프사이클
    express에선 오류가 발생했을때 어디서 발생했는지 찾으려면 콜백을 하나하나 되짚어가야했지만 Nest에선 실행되는 순서와 로직의 역할을 확실하게 파악할 수 있으며 개발시간의 단축을 불러와줌

  • 편리한 확장성과 유지보수
    새로운 기능을 추가하려면 모듈을 새로 만들어 테스트 한 뒤 app 모듈에 추가하면 됨.
    각 모듈 사이는 기본적으론 완벽하게 분리되어 있으며 필요할경우 exports로 public화 해 사용 가능하기 때문.
    이러한 점은 멀리 생각해서 현재 사용하는 MongoDB를 RDB로 바꾸거나 통신 로직을 GraphQL로 바꿀 때 용이하다고 생각했다. 바꿀 수도 있다고 생각이 든 이유는 NoSQL을 경험해보고 싶어 MongoDB를 선택했었으며 이로 인해 다른 테이블을 참조할 때 로직이 복잡해졌기 때문이다. (그러나 단점보다 장점이 더 많이 느껴졌기 때문에 실제로 바꿀지는 미정)

주관적으론 배우다보니 Nestjs를 두고 굳이 Express를 사용할 이유를 못느꼈다.
반강제적으로 지켜야하는 아키텍처 덕분에 호출 순서도 직관적으로 느껴지며 코드의 재사용성도 더 신경쓰며 만들 수 있게 되었다.
인터셉터 등 Nestjs에서 새로 제공해주는 기능들이 다소 복잡하고 번거로울 수 있어도 너무 강력하고 에러를 편하게 잡아주는 덕분에 결국 개발 시간이 단축되었다. 매우 만족

profile
백엔드 개발자

1개의 댓글

comment-user-thumbnail
2023년 1월 12일

안녕하세요! express에서 nestjs로 마이그레이션할때, 프로젝트 자체를 새로 시작하셨나요?

답글 달기