반응형
🐧 1. DTO란?DTO(Data Transfer Object, 데이터 전송 객체)는 Nest에서 클라이언트와 서버 간 주고받는 데이터의 구조를 정의하는 객체이며, NestJS에서는 컨트롤러가 받는 요청 데이터(Request Body 등)을 미리 정의해, 코드를 더욱 안정적이고 명확하게 동작하도록 도와주는 역할을 합니다.🐧 2. DTO 사용 예제예를 들어, 프로젝트 루트에 유저 생성 API가 있다고 가정해보겠습니다.yarn add class-validator class-transformer// src/api/create-user-dtoimport { IsString, IsEmail, IsInt, Min, Max } from "class-validator";export class CreateUserDt..
✅ 1. 기본 개념NestJS에서 의존성 주입(DI)은 클래스(Controller, Service 등)가 직접 객체를 생성하지 않고, IoC 컨테이너가 NestJS에서 필요한 인스턴스를 대신 생성해 주입하는 방식입니다. @Injectable() 데코레이터가 붙은 클래스는 NestJS가 관리하는 Provider로 등록됩니다. ✅ 2. Controller -> Service 주입// user.service.tsimport { Injectable } from "@nestjs/common";@Injectable()export class UsersService { getUsers() { return ["user1", "user2"]; }}// user.controller.tsimport { Contr..
✅ 1. 기본 구조NestJS 에서 모든 애플리케이션의 최소한 하나의 루트 모듈(AppModule)가지고 시작합니다.// app.module.tsimport { Module } from "@nestjs/common";import { AppController } from "./app.controller";import { AppService } from "./app.service";@Module({ imports: [], // 다른 모듈 가져오기 controllers: [AppController], // 요청처리 providers: [AppService], // 서비스 / 의존성})export class AppModule {}✅ 2. 모듈 생성하기모듈은 NestJS의 CLI로 간단하게 만들 수 있습니다..
1. 프로바이더(Provider)NestJS에 프로바이더는 애플리케이션의 의존성 주입 시스템의 핵심 구성요소로, 프로바이더는 서비스, 레포지토리, 팩토리 등과 같은 객체를 생성하고 관리하는 데 사용합니다. 일반적으로 비즈니스 로직을 포함하고, 다른 클래스에서 사용할 수 있도록 주입됩니다.# 서비스 생성nest generate service cats 생성된 서비스 코드는 다음과 같습니다.import { Injectable } from "@nestjs/common";@Injectable()export class CatsService { private cats = []; create(cat) { this.cats.push(cat); } findAll() { return this.cats; ..
1. 컨트롤러(Controller)NestJS에서 컨트롤러는 요청을 처리하고 응답을 반환하는 역할로, 주로 HTTP 요청을 처리하는 메서드를 포함합니다. 컨트롤러를 생성하려면 Nest CLI를 사용할 수 있습니다.nest generate controller cats 생성된 cats 컨트롤러 파일은 다음과 같은 기본 구조를 가집니다.import { Controller, Get } from '@nestjs/common';@Controller('cats')export class CatsController { @Get() @findAll(): string { return 'This action returns all cats'; }} HTTP 요청 메서드 데코레이터@Get(), @Po..
Node.js를 기반의 프레임워크 NestJS는 효율적이고 확장 가능한 서버 사이드 애플리케이션을 구축하기 위해 설계되었습니다. TypeScript를 주력 언어로 사용해 타입스크립트 기반의 AngularJS에서 영감을 받아 모듈화된 아키텍쳐를 제공합니다 Express.js와 Fastify를 기반으로 동작하며 강력한 의존성 주입(Dependency Injection) 시스템과 함께 제공하며 개발자와 팀이 쉽게 테스트하고, 확장할 수 있는 또 유지 관리하기 쉬운 애플리케이션 구축이 가능합니다. NestJS의 장점내장 기능: NestJS 프레임워크는 데코레이터, 모듈, 종속성 주입 등과 같은 여러 내장 기능을 지원합니다. 또한 애플리케이션을 모듈 단위로 구성하며, 각 모듈은 관련된 컨트롤러, 서비스, 프로바..