공부 내용 정리

Nest.js란?

blockchoin 2025. 7. 28. 17:33

1. Nest.js란?

Nest.jsNode.js 기반의 백엔드 프레임워크로,Express.js 위에 구축되었으며 모듈화, 의존성 주입, 데코레이터 기반 문법을 지원하는 TypeScript 친화적인 프레임워크입니다.


2. Nest.js의 핵심 개념

모듈(Module) 기능 단위로 코드를 분리. 독립적이고 재사용 가능
컨트롤러(Controller) 라우터 역할. 요청을 받고, 서비스에 전달
서비스(Service) 핵심 비즈니스 로직 처리
의존성 주입(DI) 필요한 객체를 자동으로 주입. 테스트와 유지보수에 유리
데코레이터(Decorator) @Module, @Injectable, @Controller, @Get, @Post 등, 메타 프로그래밍 사용
미들웨어(Middleware) Express와 동일하게 요청 가로채기 가능

3. 요청 처리 흐름

  1. HTTP 요청 발생 (GET/POST 등)
  2. 라우터 매칭 → 해당 컨트롤러 메서드 실행
  3. 컨트롤러 → 서비스 호출
  4. 서비스에서 비즈니스 로직 처리
  5. 필요 시 DB 연동
  6. 결과 반환 → 클라이언트에 응답

4. Express와의 차이점

  Nest.js Express.js
언어 TypeScript 기반 JavaScript (TS도 가능)
구조 MVC + DI + 모듈화 자유롭게 구조 설계
생산성 높은 추상화, 테스트 용이 자유도 높음. 설계는 개발자 몫
학습 난이도 약간 높음 상대적으로 쉬움
사용 목적 대형 백엔드 시스템, REST API, 마이크로서비스 소형 API 서버, 빠른 프로토타입
 

 

5. Nest.js의 장점

  • TypeScript 완전 지원
  • 모듈화된 구조로 유지보수 및 확장 용이
  • 테스트 작성 쉬움
  • Express/Fastify 모두 지원
  • GraphQL, WebSocket, Microservice, gRPC까지 지원
  • 풍부한 데코레이터 문법 → 코드 가독성 좋음
  • 강력한 의존성 주입 시스템

6. Nest.js는 어디서 쓰이나?

(1) 기업/현업 사례

  • 삼성, 네이버, 카카오, 쿠팡, 라인 등 대기업에서 API 서버나 마이크로서비스에 사용
  • 백엔드 입문 또는 토이 프로젝트에서 Spring 대신 Nest.js 사용

(2) 추천 사용 케이스

  • RESTful API 서버
  • JWT 기반 인증 시스템
  • 마이크로서비스 구조
  • 대규모 백엔드 시스템

7. Nest.js는 어떤 프로젝트에 어울릴까?

기업용 REST API 서버 매우 좋음 구조적, 유지보수성
인증/회원 시스템 매우 좋음 JWT, Passport 쉽게 연동
채팅/실시간 시스템 좋음 WebSocket 지원
소규모 서비스 좋음 빠르게 구조화 가능
❌ 간단한 API 서버 Express가 더 간단할 수 있음  
 

8. 마무리 요약

  • TypeScript 기반 Node.js 백엔드 프레임워크
  • Express보다 구조화되어 있고 대규모 시스템에 적합
  • Spring의 설계 철학 + JavaScript 생태계의 장점을 모두 흡수

'공부 내용 정리' 카테고리의 다른 글

DTO와 Exception 이란?  (1) 2025.07.30
NestJS와 스마트 컨트랙트의 연동  (2) 2025.07.29
Next.js 란?  (1) 2025.07.28
Cookie, Session, JWT로 만드는 웹 인증  (0) 2025.07.25
OpenZeppelin이란?  (3) 2025.07.25