Frameworks/Nest.js5 [Nest.js] Module @Module() 데코레이터가 달린 클래스이다.Nest가 애플리케이션 구조를 만들 때 사용할 수 있는 메타데이터(데이터에 대한 데이터)를 제공해주는 역할을 한다.각 응용 프로그램에는 적어도 하나 이상의 루트모듈이 있다. -> 애플리케이션 그래프를 구성하기 위해 사용하는 시작점!@Module()providersNest 인젝터(의존성을 주입하는 Nest 내부 모듈)가 인스턴스화 시키고 이 모듈 안에서 공유하는 프로바이더controllers인스턴스화 되어야 하는 컨트롤러의 집합imports해당 모듈에서 필요한 모듈의 집합(프로바이더를 노출하는 모듈)exports프로바이더의 부분집합이며, 다른 모듈에서 사용할 수 있도록 할 프로바이더Feature ModulesUserController와 UserService는 .. 2025. 4. 9. [Nest.js] Provider Provider는 Nest의 기본 개념이다. 이는 의존성을 주입할 수 있다. 즉, 객체가 서로 다양한 관계를 만들 수 있으며 객체의 배선 기능을 Nest 런타임 시스템에 크게 위임할 수 있다.Provider는 클래스 선언 앞에 @Injectable() 데코레이터가 있다.계층형 구조 (Layerd Architecture)복잡해 보이는 작업도 그 작업을 나우고 각 작업마다 역량을 집중해 해결이 가능하다. (관심사 분리)3-Tier-ArchitecturePresentation Tier사용자 인터페이스 혹은 외부와의 통신 담당Application TierLogic Tier라고도 하며, Middle Tier라고도 한다. 주로 비즈니스 로직을 여기서 구현하고 Presentation Tier와 Data Tier 사이.. 2025. 4. 9. [Nest.js] Controller Controller는 들어오는 요청을 처리하고 클라이언트에 응답을 반환하는 역할Client Side -> HTTP Request -> ControllerController의 목적은 특정 요청을 수신하는 것이다. 라우팅 메커니즘은 어떤 컨트롤러가 어떤 요청을 받는지 제어한다.기본 Controller를 만들기 위해 클래스와 데코레이터를 사용한다.데코레이터는 클래스를 필수 메타데이터와 연결하고 Nest가 라우팅 맵을 생성할 수 있게 한다.Routing@Controller() 데코레이터를 사용한다.// user.controller.tsimport { Controller, Get } from '@nestjs/common';@Controller('user')export class CatsController { @.. 2025. 4. 9. [Nest.js] MySQL Connect TypeORM은 PostgreSQL, Oracle, Microsoft SQL Server, SQLite 뿐만 아니라 NoSQL 도 지원한다.선택한 데이터베이스에 대해 연결된 클라이언트 API라이브러리를 설치만 해주면 된다.이 중에서 MySQL을 연동 해보자.step 1$ yarn add @nestjs/typeorm typeorm mysql2step 2// app.module.tsimport { Module } from '@nestjs/common';import { TypeOrmModule } from '@nestjs/typeorm';@Module({ imports: [ TypeOrmModule.forRoot({ type: 'mysql', host: 'localhost', .. 2025. 4. 9. [Nest.js] Start Nest.js?효율적이고 확장 가능한 Node.js 서버 애플리케이션을 구축하기 위한 프레임 워크progressive Javascript를 사용하고 TypeScript로 빌드가 지원된다.Nest는 OOP(Object Oriented Programming), FP(Functional Programming) 및 FRP(Functional Reactive Programming)을 사용할 수 있게 해준다.ORM,데이터베이스,설정(Configuration),유효성 검사 등 수많은 기능을 기본으로 제공한다.모듈/컴포넌트 기반으로 프로그램을 작성함으로써 재사용성을 높여준다.IoC(Inversion of Control), DI(Dependency Injection), AOP(Aspect Oriented Programm.. 2025. 4. 9. 이전 1 다음