Nest.js

플랫폼 독립성Nest는 플랫폼에 독립적인 프레임워크입니다. 이는 다양한 종류의 애플리케이션에서 재사용 가능한 로직을 개발할 수 있음을 의미합니다. 예를 들어, 대부분의 컴포넌트는 서로 다른 HTTP 서버 프레임워크 (예: Express, Fastify)는 물론, 다양한 형태의 애플리케이션 (예: HTTP 서버, 서로 다른 전송 계층을 사용하는 마이크로서비스, 웹소켓)에서도 변경 없이 재사용할 수 있습니다.한 번 만들고 어디서든 사용하세요문서의 Overview 섹션에서는 주로 HTTP 서버 프레임워크 (예: REST API 제공 앱, MVC 스타일의 서버사이드 렌더링 앱)를 사용하는 코딩 기법을 보여주지만, 이러한 모든 구성 요소는 마이크로서비스나 웹소켓처럼 다른 전송 계층 위에서도 사용할 수 있습니다. ..
Lifecycle eventsNest 애플리케이션과 모든 애플리케이션 구성 요소는 Nest가 관리하는 생명 주기를 가집니다. Nest는 주요 생명 주기 이벤트에 대한 가시성과, 해당 시점에 모듈, 프로바이더 또는 컨트롤러에서 등록된 코드를 실행할 수 있는 생명 주기 후크 (lifecycle hook)를 제공합니다.생명 주기 순서다음 다이어그램은 애플리케이션이 부트스트랩된 시점부터 Node 프로세스가 종료될 때까지 주요 생명 주기 이벤트 순서를 보여줍니다. 전체 생명 주기는 다음과 같이 세 단계로 나눌 수 있습니다: 초기화 (initializing), 실행 (running), 종료 (terminating). 이 생명 주기를 활용하면 모듈과 서비스의 적절한 초기화, 활성 연결 관리, 종료 신호 수신 시 애플..
모듈 지연 로딩기본적으로 모듈은 즉시 로드 (eagerly loaded) 되며, 이는 애플리케이션이 시작되면 모든 모듈이 즉시 로드된다는 의미입니다. 대부분의 애플리케이션에는 이 방식으로 충분하지만, 서버리스 환경에서 실행되는 앱이나 워커에서는 시작 지연 시간 ("콜드 스타트")이 중요하므로 병목이 될 수 있습니다. 지연 로딩을 사용하면 특정 서버리스 함수 호출에 필요한 모듈만 로드함으로써 부트스트랩 시간을 줄일 수 있습니다. 또한, 서버리스 함수가 "웜 (warm)" 상태가 되었을 때 다른 모듈을 비동기로 로드함으로써 이후 호출의 부트스트랩 시간을 더욱 단축할 수 있습니다 (지연된 모듈 등록).힌트Angular 프레임워크에 익숙하다면 "lazy-loading modules (지연 로딩 모듈)"이라는 용..
순환 의존성순환 의존성은 두 클래스가 서로를 필요로 할 때 발생합니다. 예를 들어, 클래스 A가 클래스 B를 필요로 하고, 클래스 B도 클래스 A를 필요로 하는 경우입니다. Nest에서는 모듈 간 또는 프로바이더 간에 이러한 순환 의존성이 발생할 수 있습니다. 순환 의존성은 가능하면 피하는 것이 좋지만, 항상 그렇게 할 수는 없습니다. 이러한 경우를 위해 Nest는 두 가지 방법으로 프로바이더 간의 순환 의존성을 해결할 수 있도록 지원합니다. 이 장에서는 forwardRef를 사용하는 방법과, DI 컨테이너에서 ModuleRef 클래스를 통해 프로바이더 인스턴스를 가져오는 방법을 설명합니다. 또한, 모듈 간의 순환 의존성을 해결하는 방법도 설명합니다.경고순환 의존성은 index.ts와 같은 배럴 파일 (..
동적 모듈 (Dynamic modules)모듈 장에서는 Nest 모듈의 기본 개념과 동적 모듈에 대한 간단한 소개를 다룹니다. 이 장에서는 동적 모듈의 주제를 확장하여 설명합니다. 이 장을 마치면 동적 모듈이 무엇이며, 이를 어떻게 그리고 언제 사용해야 하는지를 잘 이해할 수 있게 됩니다.소개문서의 Overview 섹션에 있는 대부분의 애플리케이션 코드 예제는 일반적인, 즉 정적 모듈을 사용합니다. 모듈은 전체 애플리케이션의 모듈화 된 일부로써 함께 동작하는 프로바이더나 컨트롤러 같은 컴포넌트 그룹을 정의합니다. 모듈은 이러한 컴포넌트에 대한 실행 컨텍스트 (또는 스코프)를 제공합니다. 예를 들어, 모듈 안에 정의된 프로바이더는 해당 모듈의 다른 구성원에게는 export 없이도 접근할 수 있습니다. 반면..
커스텀 프로바이더앞선 챕터들에서는 Nest에서의 의존성 주입 (Dependency Injection, DI)의 다양한 측면과 사용 방법에 대해 다루었습니다. 그중 하나는 클래스에 인스턴스 (대개 서비스 프로바이더)를 주입하는 생성자 기반 의존성 주입입니다. 의존성 주입이 Nest의 핵심에 근본적으로 내장되어 있다는 사실은 이제 더 이상 놀랍지 않을 것입니다. 지금까지는 주로 하나의 주요 패턴만 살펴보았지만, 애플리케이션이 복잡해질수록 DI 시스템의 전체 기능을 활용해야 할 필요가 있습니다. 이제 이를 더 자세히 살펴보겠습니다.DI의 기본 원리의존성 주입은 제어의 역전 (Inversion of Control, IoC) 기법 중 하나로, 의존성의 인스턴스 생성을 개발자 코드가 아닌 IoC 컨테이너 (여기서는..
dev_writer
'Nest.js' 태그의 글 목록