logo

nestjs

18 Posts found

[NestJS] NestFactory.create()를 두 번 호출하면 MSA일까?
NestJSMonorepoMSA2026.06.12

[NestJS] NestFactory.create()를 두 번 호출하면 MSA일까?

NestJS의 main.ts를 들여다보다 문득 이런 생각이 들었다. 가볍게 던진 생각일 수도 있지만, 막상 직접 확인해보기 전까지는 '왜 안 되는지'를 정확히 설명하기가 어려웠다. 이렇게 작성해도 잘 동작한다. 실제 3000번과 3001번 포트에서 각각 다른 모듈을 가진 서버가 뜬다. 겉보기엔 서비스가 두 개로 깔끔하게 분리된 것처럼 보인다....

[NestJS] MongoDB
NestJSMongoDBMongoose2025.09.16

[NestJS] MongoDB

NestJS는 MongoDB 데이터베이스와의 통합을 위해 두 가지 방법을 제공합니다. MongoDB 커넥터가 포함된 내장 TypeORM 모듈을 사용하거나, 가장 널리 사용되는 MongoDB 객체 모델링 도구인 Mongoose를 사용하는 방법입니다. 이 장에서는 전용 @nestjs/mongoose 패키지를 사용하는 후자의 방법에 대해 자세히...

[NestJS] Guards
NestJSGuardsAuthentication2025.09.15

[NestJS] Guards

Guard 가드 는 @Injectable 데코레이터로 주석이 달린 클래스이며, CanActivate 인터페이스를 구현합니다. Guard는 단일 책임을 가집니다. 런타임에 존재하는 특정 조건 권한, 역할, ACL 등 에 따라 주어진 요청이 라우트 핸들러에 의해 처리될지 여부를 결정합니다. 이것을 종종 인가 authorization 라고 합니다. 전통적인...

[NestJS] Pipes
NestJSPipesValidation2025.09.01

[NestJS] Pipes

파이프 Pipe 는 @Injectable 데코레이터로 주석이 달린 클래스로, PipeTransform 인터페이스를 구현합니다. 파이프는 두 가지 일반적인 사용 사례가 있습니다. 변환 transformation : 입력 데이터를 원하는 형태로 변환 e.g., 문자열에서 정수로 검증 validation : 입력 데이터를 평가하고 유효한 경우 변경 없이...

[NestJS] Exception Filters
NestJSExceptionFilters2025.08.26

[NestJS] Exception Filters

Nest는 애플리케이션 전체에서 처리되지 않은 모든 예외를 처리하는 내장 예외 레이어를 제공합니다. 애플리케이션 코드에서 예외가 처리되지 않으면, 이 레이어가 예외를 포착하고 적절한 사용자 친화적인 응답을 자동으로 전송합니다. 기본적으로 이 작업은 HttpException 타입 및 하위 클래스 의 예외를 처리하는 내장 전역 예외 필터에 의해...

[NestJS] Middleware
NestJSMiddleware2025.08.25

[NestJS] Middleware

미들웨어는 라우트 핸들러 이전에 호출되는 함수입니다. 미들웨어 함수는 요청 및 응답 객체에 접근할 수 있으며, 애플리케이션의 요청-응답 주기에서 next 미들웨어 함수에 접근할 수 있습니다. 다음 미들웨어 함수는 일반적으로 next라는 변수로 표시됩니다. Nest 미들웨어는 기본적으로 express 미들웨어와 동일합니다. 공식 express 문서의...

[NestJS] Modules
NestJSModules2025.08.25

[NestJS] Modules

모듈은 @Module 데코레이터로 주석이 달린 클래스입니다. 이 데코레이터는 Nest가 애플리케이션 구조를 효율적으로 구성하고 관리하는 데 사용하는 메타데이터를 제공합니다. https://docs.nestjs.com/modules 모든 Nest 애플리케이션에는 최소한 하나의 모듈인 루트 모듈이 있으며, 이는 Nest가 애플리케이션 그래프를 구축하는...

[NestJS] Providers
NestJSProvidersDI2025.08.25

[NestJS] Providers

프로바이더는 Nest의 핵심 개념입니다. 서비스, 리포지토리, 팩토리, 헬퍼 등 많은 기본 Nest 클래스를 프로바이더로 취급할 수 있습니다. 프로바이더의 핵심 아이디어는 의존성으로 주입될 수 있다는 것이며, 이를 통해 객체들이 서로 다양한 관계를 형성할 수 있습니다. 이러한 객체들을 "연결"하는 책임은 주로 Nest 런타임 시스템에서 처리합니다....

[NestJS] Controllers
NestJSControllers2025.08.24

[NestJS] Controllers

컨트롤러는 들어오는 요청을 처리하고 클라이언트에게 응답을 반환하는 역할을 담당합니다. https://docs.nestjs.com/controllers 컨트롤러의 목적은 애플리케이션의 특정 요청을 처리하는 것입니다. 라우팅 메커니즘이 각 요청을 처리할 컨트롤러를 결정합니다. 일반적으로 컨트롤러는 여러 라우트를 가지며, 각 라우트는 다른 작업을 수행할 수...

[NestJS] First Steps
NestJSNestCLI2025.08.24

[NestJS] First Steps

이 문서 시리즈에서는 Nest의 핵심 기본 사항을 배우게 됩니다. Nest 애플리케이션의 필수 구성 요소에 익숙해지기 위해, 입문 수준에서 많은 내용을 다루는 기본적인 CRUD 애플리케이션을 구축해볼 것입니다. 우리는 TypeScript를 사랑하지만, 무엇보다도 Node.js를 사랑합니다. 그래서 Nest는 TypeScript와 순수...

[NestJS] Introduction
NestJSNestCLI2025.08.24

[NestJS] Introduction

Nest NestJS 는 효율적이고 확장 가능한 Node.js 서버 애플리케이션을 구축하기 위한 프레임워크입니다. Progressive JavaScript를 사용하며, TypeScript로 구축되어 완벽하게 지원합니다 순수 JavaScript로도 개발 가능 . 또한 객체 지향 프로그래밍 OOP , 함수형 프로그래밍 FP , 함수형 반응형 프로그래밍...

[NestJS] Query Parameter Boolean 변환에서 발생한 이슈
NestJSPipeDTO2025.07.14

[NestJS] Query Parameter Boolean 변환에서 발생한 이슈

현재 진행하고 있는 사이드 프로젝트 백엔드 애플리케이션의 알림 API 기능 구현에서 unreadOnly false 쿼리 파라미터를 전달해도 미읽음 알림만 조회되는 버그가 발생했다. 예상 동작: GET /notifications?unreadOnly true → 미읽음 알림만 조회 GET /notifications?unreadOnly false → 모든...

@nodeflipnest-env-config 라이브러리
NestJSFrameworks2025.01.06

@nodeflipnest-env-config 라이브러리

NestJS 프로젝트에서 환경변수를 관리하는 방법은 여러 가지가 있다. 기본적으로 제공되는 @nestjs/config를 사용하거나, dotenv를 직접 사용하는 방법 등이 있다. 우연히 알게된 @nodeflip/nest-env-config 패키지를 적용해보며 느낀 점을 공유하고자 한다. 기존에 @nestjs/config를 사용할 경우 다음과 같은...

코드 리팩토링(모듈화)
TypeScriptNestJSDecorator2024.12.29

코드 리팩토링(모듈화)

최근 개발 중인 일정 관리 서비스 나날모아에서 코드 리팩토링을 진행했다. 프로젝트가 진행되면서 자연스레 복잡도가 높아졌고, 특히 일정 관리 로직이 담긴 SchedulesService가 1,000줄이 넘어가는 상황이 되었다. 뚱뚱해진 스케쥴 서비스 코드.. 처음 리팩토링을 시작할 때는 막막했다. 일정 생성, 수정, 삭제의 기본 CRUD부터 반복 일정...

[NestJS] 데코레이터(Decorator)
NestJSDecoratorPipe2024.12.15

[NestJS] 데코레이터(Decorator)

NestJS는 데코레이터를 활용하여 라우트, 파라미터, 메타데이터 등을 선언적으로 정의할 수 있는 기능을 제공한다. 데코레이터가 무엇인지, 그리고 실제 프로젝트에서 유용하게 사용할 수 있는 커스텀 데코레이터 Custom Decorator 를 만드는 과정을 소개한다. 데코레이터는 클래스, 메서드, 프로퍼티, 파라미터에 추가적인 동작을 부여하는 데...

[NestJS] 트랜잭션(Transaction)
NestJSTransaction2024.12.15

[NestJS] 트랜잭션(Transaction)

트랜잭션은 데이터베이스에서 논리적인 작업 단위를 구성하는 하나의 연산 집합을 의미한다. 모든 작업이 성공적으로 완료되면 데이터를 저장 commit 하고, 하나의 작업이라도 실패하면 이전 상태로 되돌린다 rollback . 이를 통해 데이터의 무결성과 일관성을 보장할 수 있다. 원자성 Atomicity : 작업이 모두 성공하거나 모두 실패해야 함 일관성...

[NestJS] Validation Pipe
NestJSValidationPipe2024.11.13

[NestJS] Validation Pipe

Validation Pipe는 NestJS에서 제공하는 파이프 중 하나이다. 클라이언트로부터 받은 데이터의 유효성을 검사하고 필요한 경우 데이터를 변환할 수도 있다. 이를 통해 애플리케이션의 안정성을 높이고 잘못된 데이터로 인한 오류를 사전에 예방할 수 있다. 파이프 Pipe 는 @Injectable 데코레이터로 주석이 달린 클래스를 의미한다....

[NestJS] HTTP Request와 Response 다루기
NestJSHTTP2024.11.04

[NestJS] HTTP Request와 Response 다루기

NestJS에서는 HTTP 요청과 응답을 처리하기 위한 다양한 데코레이터와 기능을 제공한다. 이를 통해 클라이언트의 요청을 효과적으로 처리하고, 적절한 응답을 반환할 수 있다. 요청은 크게 Start Line, Headers, Body로 구성된다. HTTP Method GET, POST, PUT, DELETE 등 Request Target URL...