NestJS

[NestJS] 알아보기

모리스🙂 2025. 4. 9. 00:25

안녕하세요. 모리스입니다.😊

이번 포스트에서는 과거 모바일BFF를 만들면서 사용했던 프레임워크인 NestJS에 대해서 작성해 보려합니다.

 

그 당시 회사의 B/E에서는 특정 서비스 만을 위한 API는 없다!!! 라고 선을 딱 그어버려서... end point입장에선 하나의 데이터를 받아오기 위해 여러 API를 앱단에서 조합해서 써야했던 아픈 기억이 다시금 떠오르네요..ㅋㅋㅋㅋㅋㅋㅋㅋ

 

그래서 그 때 팀장님이 그냥 우리가 서버하나 만들자! 해서 공부 시작한게 NestJS였어요.

자 이제 옛날 얘기 그만하고 시작해 보겠습니다.🙂

📒 NestJS 소개

NestJS는 Node.js 기반의 웹 애플리케이션 프레임워크로, 내부적으로는 Express 혹은 Fastify를 래핑해 동작해요.
데이터베이스 연결, ORM, 설정, 유효성 검사 등 여러 기능들을 기본으로 제공하며, 필요한 경우에는 NPM, Yarn 등을 통해 쉽게 라이브러리를 추가해 확장할 수 있는 장점이 있어요.
또한 NestJS는 모듈/컴포넌트 기반으로 작성되기 때문에 코드 재사용성이 높고, 기본 언어로 TypeScript를 사용하여 타입 시스템의 장점을 그대로 누릴 수 있어요.


📒 NestJS 특징

  1. 안정성
    NestJS는 TypeScript를 기반으로 하고 있어요. 물론 자바스크립트로도 작성이 가능하지만, 프레임워크 자체가 타입스크립트를 고려해 설계되었기 때문에 타입스크립트 사용을 적극 권장해요.
    타입을 명시함으로써 개발자가 실수할 수 있는 부분을 컴파일 단계에서 잡아주기 때문에, 버그 발생 가능성을 줄이고 안정적인 개발이 가능해요.
    또한 NestJS는 모듈화된 아키텍처 덕분에 테스트가 용이하며, 프레임워크 차원에서 테스트 환경도 잘 지원해요.
  2. 확장성
    NestJS는 모듈 기반 아키텍처를 채택하고 있어서, 다양한 외부 라이브러리와 쉽게 결합할 수 있는 유연한 구조를 가지고 있어요.
  3. 캡슐화
    NestJS는 OOP(객체지향 프로그래밍)의 특성 중 하나인 캡슐화를 잘 따르고 있어요. Controller, Service, Repository 등을 모듈 단위로 구성해 기능을 명확히 구분할 수 있고, 이를 @Module() 데코레이터로 하나의 단위로 묶어 관리할 수 있어요.
  4. 효율성
    타입스크립트의 정적 타입 시스템, DI(Dependency Injection)과 IoC(Inversion of Control), 그리고 명확한 구조화를 통해 생산성 높은 개발이 가능해요. NestJS는 유지보수성과 확장성이 뛰어난 애플리케이션을 작성하는 데 매우 적합해요.

📒 NestJS vs Express

NestJS를 공부하다 보면 가장 많이 비교되는 프레임워크가 바로 Express예요.
그렇다면 왜 NestJS와 Express를 비교하고, 왜 NestJS를 선택해야 할까요?

🧩 Express란?

Express는 웹 및 모바일 애플리케이션을 위한 다양한 기능을 제공하는 간결하고 유연한 Node.js 웹 프레임워크예요.

많은 개발자들이 Express를 사용하고 있고, Node.js 생태계에서는 표준 웹 서버 프레임워크라고 해도 과언이 아니에요.

Express의 특징은 다음과 같아요:

  • Node.js 기반 웹 프레임워크 1위로 많은 개발자들이 사용하고 있어요.
  • 코드 작성 방식에 제약이 적기 때문에 자유도가 높아요.
  • 방대한 생태계 덕분에 자료나 예시 코드가 매우 많아요.
  • 타입스크립트를 사용할 수는 있지만, 세팅이 복잡하고 번거로운 편이에요.
  • 빠르게 웹 서버를 구성할 수 있고, 단기간 MVP 구축에 적합해요.

🧩 NestJS와 Express의 차이점

  1. 자유도 vs 아키텍처 통일성
    Express는 개발 자유도가 높은 대신, 프로젝트 규모가 커지거나 여러 개발자가 함께 개발할 경우 각자 아키텍처가 달라 유지보수가 어려워질 수 있어요.
    반면 NestJS는 프레임워크 차원에서 명확한 아키텍처를 제공하기 때문에 코드 구조가 통일되어 협업 및 유지보수가 훨씬 수월해요.
  2. 타입스크립트 지원
    NestJS는 타입스크립트를 기본으로 지원하고, 모든 기능이 타입스크립트를 중심으로 설계되어 있어요. 반면 Express는 타입스크립트를 사용하려면 별도의 설정이 필요하고, 복잡한 경우가 많아요.
  3. 적합한 사용처
    빠르고 가벼운 웹 서버가 필요하다면 Express가 유리할 수 있어요. 하지만 규모가 크거나 장기적인 유지보수를 고려해야 한다면 NestJS가 훨씬 적합해요.
  4. 기본 제공 기능
    NestJS는 다양한 기능이 프레임워크에 기본 내장되어 있어 개발 생산성이 높고, 라이브러리 통합도 쉬워요. 반면 Express는 필요한 기능을 일일이 찾아서 설정해야 하기 때문에 초기 설정에 시간이 더 들어갈 수 있어요.

📒 참조

 

1.1 NestJS 소개

NestJS는 Node.js에 기반을 둔 웹 API 프레임워크로써 Express 또는 Fastify 프레임워크를 래핑하여 동작합니다. 기본으로 설치하면 Express를 사용합니다…

wikidocs.net

'NestJS' 카테고리의 다른 글

[NestJS] Unit Test  (6) 2025.04.09
[NestJS] HMR  (0) 2025.04.09
[NestJS] 시작하기  (0) 2025.04.09