nestJS
-
NestJS 마스터 시리즈 8화. 비동기 프로그래밍과 RxJS – NestJS의 Reactive 구조를 이해하라기술과 산업/언어 및 프레임워크 2025. 5. 2. 09:47
"Promise로는 충분하지 않다. NestJS가 RxJS를 기본으로 채택한 이유"NestJS에서 비동기 프로그래밍을 어떻게 처리하는지, Promise와 RxJS Observable의 차이, Reactive Stream 기반 설계 철학을 실전 예제와 함께 설명합니다.비동기 처리, 그 이상이 필요한 순간Node.js는 기본적으로 비동기 이벤트 루프 위에서 동작한다. 하지만 복잡한 백엔드 로직에서는 단순한 Promise로 처리하기에는 한계가 있다.NestJS는 이런 구조적 복잡성을 해결하기 위해 RxJS 기반의 비동기 흐름 처리 시스템을 내장하고 있다.NestJS는 내부적으로 모든 비동기 처리를 Observable 기반으로 통합할 수 있도록 설계되어 있다.Promise vs Observable – 무엇이 다..
-
NestJS 마스터 시리즈 7화. ConfigModule과 환경 설정 – .env 관리와 설정 계층 구조의 원칙기술과 산업/언어 및 프레임워크 2025. 5. 1. 13:11
"설정은 분산되고 계층화되어야 한다. 관리되지 않는 설정은 기술 부채다"NestJS에서 ConfigModule을 활용한 환경 설정 관리 방법을 설명합니다. .env 파일 사용, 설정 계층 설계, 타입 안전성 확보, 환경별 분리 전략까지 실무 중심으로 구성합니다.설정은 코드다 – 환경 설정을 코드로 관리하자많은 Node.js 프로젝트들이 .env만 두고 끝낸다. 하지만 규모가 커지면 설정의 계층화, 타입 안전성, 환경별 분리 없이는 유지보수가 어려워진다.NestJS는 @nestjs/config 모듈을 통해 설정을 코드 수준에서 관리할 수 있도록 지원한다.이 방식은 다음과 같은 이점을 제공한다:설정 접근 방식의 일관성 유지환경 변수 누락, 오타 방지테스트 환경 분리와 유연한 설정 오버라이딩설치 및 기본 설정..
-
NestJS 마스터 시리즈 6화. DTO와 Validation – 데이터 무결성과 API 품질의 시작기술과 산업/언어 및 프레임워크 2025. 4. 30. 12:43
"API는 설계의 언어다. DTO는 그 언어의 문법이다"NestJS에서 DTO와 유효성 검사를 어떻게 설계하고 적용할지, class-validator, Pipes, Transform 전략 등 실전 API 개발에서 꼭 필요한 개념을 설명합니다.DTO란 무엇인가 – 단순한 포맷이 아니다DTO(Data Transfer Object)는 클라이언트로부터 받거나 클라이언트로 전달할 데이터 구조의 명세서다.NestJS는 TypeScript의 클래스 기반 구조를 활용해 DTO를 정의하며, 이를 통해 다음을 보장할 수 있다:입력값의 명확한 스펙 정의자동 유효성 검사 및 에러 응답Swagger 등 문서화 도구와의 자연스러운 연계"DTO는 단순히 타입을 정하는 것이 아니라, API의 규칙과 문화를 정하는 것이다."실전 예제..
-
NestJS 마스터 시리즈 5화. 서비스와 의존성 주입(DI) – 로직의 핵심을 어떻게 설계할 것인가기술과 산업/언어 및 프레임워크 2025. 4. 28. 16:54
"비즈니스 로직은 서비스에, API는 컨트롤러에. 이 원칙이 실무의 기본이다"NestJS 서비스(Service) 구조와 의존성 주입(DI)의 원리를 실전 예제와 함께 설명합니다. 서비스 분리 전략, 테스트 가능성, DI 컨테이너 관리까지 실무 중심으로 분석합니다.서비스(Service)란 무엇인가NestJS에서 서비스는 비즈니스 로직을 담당하는 계층이다.컨트롤러는 요청과 응답만 처리하고, 실제 계산, 데이터 처리, 외부 통신 등 핵심 로직은 모두 서비스에 위치해야 한다.NestJS는 Angular 스타일의 의존성 주입(Dependency Injection) 시스템을 내장하여,서비스 간 결합도를 낮추고 확장성과 테스트 용이성을 극대화했다."컨트롤러는 얇게, 서비스는 두껍게"이것이 좋은 백엔드 설계의 기본이다..
-
NestJS 마스터 시리즈 4화. 컨트롤러와 라우팅 – REST API를 구조화하는 방법기술과 산업/언어 및 프레임워크 2025. 4. 26. 20:30
“그냥 GET, POST만 쓰면 된다고? 실무는 다릅니다” NestJS에서 컨트롤러와 라우팅의 구조를 실전 예제로 설명합니다. HTTP 요청 처리, REST API 설계, 데코레이터 기반 라우팅, 그리고 컨트롤러 분리 전략까지 실무 중심으로 정리합니다. 🚪 컨트롤러는 API 입구다 NestJS에서 @Controller()는 클라이언트의 HTTP 요청을 받아들이는 입구 역할을 합니다.Express의 라우터 개념과 유사하지만, 데코레이터 기반으로 더 구조화된 형태를 가집니다. “라우팅의 혼란은 결국 컨트롤러 설계의 실패에서 시작됩니다.” 🧱 기본 구조 – 컨트롤러는 이렇게 생겼다import { Controller, Get, Post, Body, Param } from '@nestjs/common';i..
-
NestJS 마스터 시리즈 3화. 모듈 시스템 이해하기 – 구조는 결국 모듈에서 시작된다기술과 산업/언어 및 프레임워크 2025. 4. 26. 18:00
“Nest를 Nest답게 만드는 것, 바로 모듈이다” NestJS의 핵심 철학인 모듈 시스템을 실무 관점에서 해부합니다. 기능 단위 설계, 의존성 주입, 루트 모듈 구성부터 feature 모듈 분리 전략까지 실전 예제로 설명합니다. 🧱 NestJS의 구조적 사고는 ‘모듈’에서 시작된다 NestJS는 Express와 다르게 처음부터 모듈 단위 설계를 강제합니다.이는 규모가 커질수록 코드 정돈, 의존성 관리, 테스트, 협업 모든 측면에서 이점을 가집니다. “Nest에서 모듈은 단순한 폴더가 아니라, 독립된 기능 단위의 ‘컨텍스트(Context)’다.” 🔍 모듈이란? 모듈은 NestJS 애플리케이션을 구성하는 기본 단위입니다.@Module() 데코레이터를 사용하며, 내부에 다음 네 가지 항목을 가질 수..
-
NestJS 마스터 시리즈 2화. 프로젝트 초기 설정 – CLI로 구조를 잡아보자기술과 산업/언어 및 프레임워크 2025. 4. 26. 13:31
“디렉토리 구조를 이해하면 절반은 먹고 들어간다” NestJS 프로젝트를 Nest CLI로 설정하는 방법과 디렉토리 구조, main.ts, app.module.ts의 역할까지 실무 관점에서 깊이 있게 분석합니다. 초보 개발자도 쉽게 따라할 수 있는 프로젝트 설정 가이드입니다. 🏁 시작부터 구조가 중요하다 NestJS는 단순히 코드 몇 줄로 시작하는 Express와는 다릅니다.NestJS는 아키텍처 기반 프레임워크이며, 설계 관점에서 접근해야 합니다. 그 시작점은 바로 **Nest CLI(Command Line Interface)**입니다. “Nest CLI 없이 Nest 프로젝트를 시작하는 건, 설계도 없이 건축을 시작하는 것과 같다.” 🧰 NestJS 프로젝트 생성하기 1단계: Nest CLI..
-
NestJS 마스터 시리즈 1화. NestJS란 무엇인가? – 왜 지금 이 프레임워크인가?기술과 산업/언어 및 프레임워크 2025. 4. 26. 10:26
“Node.js 백엔드의 구조화된 진화, 왜 NestJS인가?” NestJS는 구조적이고 확장 가능한 Node.js 백엔드 프레임워크입니다. 이 글에서는 NestJS의 철학, 아키텍처, 장단점, 그리고 왜 이 프레임워크가 주목받고 있는지를 실무 관점에서 분석합니다. 🤔 왜 우리는 또 다른 프레임워크를 배워야 할까? Node.js 생태계에는 Express, Koa, Hapi 등 다양한 웹 프레임워크가 이미 존재합니다. 그런데도 NestJS는 최근 몇 년간 가장 빠르게 성장한 백엔드 프레임워크 중 하나로 떠오르고 있습니다. 이유는 명확합니다. “Express는 빠르게 시작할 수 있다. 하지만 팀으로 개발하려면 NestJS가 훨씬 낫다.” NestJS는 단순한 기능 구현을 넘어서서, 유지보수 가능한 설계와..