인터셉터인터셉터 (interceptor)는 @Injectable() 데코레이터가 붙은 클래스이며, NestInterceptor 인터페이스를 구현합니다. 인터셉터는 관점 지향 프로그래밍 (AOP) 기법에서 영감을 받은 유용한 기능들을 제공합니다. 이를 통해 다음과 같은 작업이 가능합니다:메서드 실행 전/후에 추가 로직을 바인딩함수에서 반환된 결과를 변환함수에서 던진 예외를 변환기본 함수 동작을 확장특정 조건에 따라 함수 자체를 완전히 대체 (예: 캐싱 목적)기본 사항각 인터셉터는 intercept() 메서드를 구현하며, 이 메서드는 두 개의 인자를 받습니다. 첫 번째 인자는 ExecutionContext 인스턴스이며, 이는 가드에서 사용하는 것과 동일한 객체입니다. ExecutionContext는 Argu..
파이프파이프는 @Injectable() 데코레이터가 적용된 클래스이며, PipeTransform 인터페이스를 구현합니다. 파이프는 일반적으로 두 가지 용도로 사용됩니다:변환 (Transformation): 입력 데이터를 원하는 형태로 변환 (예: 문자열을 정수로 변환)검증 (Validation): 입력 데이터를 평가하고, 유효하면 그대로 통과시키고, 그렇지 않으면 예외를 발생시킴이 두 경우 모두, 파이프는 컨트롤러 라우트 핸들러에서 처리되는 인자에 적용합니다. Nest는 메서드가 호출되기 직전에 파이프를 개입시키며, 파이프는 메서드에 전달될 인자를 받아 이를 처리합니다. 변환 또는 검증 작업은 이 시점에서 수행되며, 그 후 라우트 핸들러는 (필요한 경우 변환된) 인자를 가지고 호출됩니다. Nest는 즉시..
미들웨어미들웨어 (Middleware)는 라우트 핸들러가 호출되기 전에 실행되는 함수입니다. 미들웨어 함수는 요청 (request) 객체, 응답 (response) 객체, 그리고 애플리케이션의 요청-응답 사이클 내에서 다음 미들웨어 함수 (next)에 접근할 수 있습니다. 이 next 함수는 일반적으로 next라는 이름의 변수로 표현됩니다. Nest 미들웨어는 기본적으로 Express 미들웨어와 동일한 방식으로 동작합니다. 다음은 공식 Express 문서에서 설명한 미들웨어의 기능입니다:미들웨어 함수는 다음과 같은 작업을 수행할 수 있습니다:- 어떤 코드든 실행할 수 있다.- 요청 (request) 및 응답 (response) 객체를 수정할 수 있다.- 요청-응답 사이클을 종료할 수 있다.- 스택 내 다..
프로바이더 (Providers) Nest에서 프로바이더 (Provider)는 핵심 개념입니다. 서비스, 리포지터리, 팩토리, 헬퍼와 같은 기본 Nest 클래스 대부분은 프로바이더로 취급될 수 있습니다. 프로바이더의 핵심 아이디어는 의존성으로 주입될 수 있다는 점이며, 이를 통해 객체들 간에 다양한 관계를 형성할 수 있습니다. 이러한 객체들을 연결(wiring) 하는 작업은 대부분 Nest의 런타임 시스템이 자동으로 처리합니다. 이전 장에서는 간단한 CatsController를 만들었습니다. 컨트롤러는 HTTP 요청을 처리하고, 더 복잡한 작업은 프로바이더에게 위임하는 것이 좋습니다. 프로바이더는 NestJS 모듈에서 프로바이더로 선언된 일반 JavaScript 클래스입니다. 자세한 내용은 모듈 (Modu..
첫걸음이 일련의 글에서는 Nest의 핵심 기초 개념들을 학습하게 됩니다. Nest 애플리케이션의 필수 구성 요소에 익숙해지기 위해, 우리는 기본적인 CRUD 애플리케이션을 만들어보며 입문 수준에서 넓은 범위를 다루는 다양한 기능들을 구현해 볼 것입니다.언어우리는 TypeScript를 사랑하지만, 그 무엇보다도 Node.js를 사랑합니다. 그렇기 때문에 Nest는 TypeScript와 순수 JavaScript 모두와 호환됩니다. Nest는 최신 언어 기능들을 활용하기 때문에, 순수 JavaScript로 사용하려면 Babel 컴파일러가 필요합니다. 예제에서는 대부분 TypeScript를 사용하지만, 언제든지 코드 스니펫 오른쪽 상단의 언어 전환 버튼을 클릭하여 순수 JavaScript 문법으로 바꿔볼 수 있..
안녕하세요. dev_writer입니다. 최근 회사에서 코틀린 기반 스프링 백엔드 서비스를, 타입스크립트 기반 Nest.js 백엔드 서비스로 마이그레이션 하는 업무를 진행하게 되면서 작년에 잠깐 사용했던 Nest.js를 공부해 보고자 글을 기록하게 되었습니다. 지금 작성하고 있는 Spring AI 시리즈처럼, 이번에도 Nest.js의 공식 문서를 번역하면서 블로그에 기록할 예정입니다. 이번 시간에는 Introduction에 대한 내용을 작성해 보겠습니다.소개소개Nest(NestJS)는 효율적이고 확장 가능한 Node.js 서버 사이드 애플리케이션을 구축하기 위한 프레임워크입니다. 점진적인 JavaScript를 사용하며, TypeScript로 작성되어 이를 완벽히 지원하지만, 순수 JavaScript로도 개..