본문 바로가기

JS 문법 공부39

NestJs 컨트롤러 - req 데이터 사용 컨트롤러int타입의 id 사용하기import { Controller, Get, Param, BadRequestException } from '@nestjs/common';@Get('/:achievementCId')findOne(@Param('achievementCId') achievementCId: string) {const id = Number(achievementCId);if (!id) {throw new BadRequestException('achievementCId 값이 없거나 형태가 맞지 않습니다');}return this.achievementCService.findOne(+id);}쿼리 사용하기import { Controller, Get, Param, Query } from '@nestjs/c.. 2025. 2. 13.
NestJs란 🚀 NestJS란?NestJS는 TypeScript로 작성된 Node.js 기반 백엔드 프레임워크입니다.Express를 기반으로 동작하며, 모듈화(Modular), 의존성 주입(Dependency Injection), 데코레이터 기반 프로그래밍을 지원합니다.🔹 NestJS의 기본 개념📌 1. 모듈(Module) 기반 구조NestJS는 애플리케이션을 모듈 단위로 구성하여 코드 재사용성을 높이고 유지보수를 쉽게 만듭니다.import { Module } from '@nestjs/common';@Module({ imports: [], controllers: [], providers: [],})export class AppModule {}📌 2. 컨트롤러(Controller) – 요청 처리컨트롤러는 .. 2025. 2. 13.
NestJS에서 TypeORM을 사용할 때 Repository에서 제공하는 주요 메서드 NestJS에서 TypeORM을 사용할 때 Repository에서 제공하는 주요 메서드를 표로 정리하면 다음과 같습니다. 메서드 설명 find(options?)전체 엔티티를 배열 형태로 조회findOne(options?)특정 조건을 만족하는 단일 엔티티 조회 (조건 없으면 undefined 반환)findOneOrFail(options?)특정 조건을 만족하는 단일 엔티티 조회 (undefined면 예외 발생)findByIds(ids, options?)여러 개의 ID로 엔티티 리스트 조회findAndCount(options?)[엔티티 목록, 총 개수] 반환findBy(options?)특정 조건을 만족하는 엔티티 목록 조회findOneBy(options?)특정 조건을 만족하는 단일 엔티티 조회 (없으면 nu.. 2025. 2. 13.
NestJS - IsDate() vs @IsDateString() 📌 @IsDate() vs @IsDateString() 예제NestJS의 class-validator 라이브러리1️⃣ @IsDate() → Date 타입의 값만 허용import { IsDate } from 'class-validator';import { Type } from 'class-transformer';class ExampleDto { @IsDate() @Type(() => Date) // 변환 필수! birthDate: Date;}// 사용 예제const validData = { birthDate: new Date('2025-01-01') }; // ✅ 유효함const invalidData = { birthDate: '2025-01-01' }; // ❌ 문자열이므로 유효하지 않음🔹 주의.. 2025. 2. 13.
NestJS 파일 생성 NestJS에서 nest g resource 명령어 nest g resource 명령어는 NestJS에서 특정 리소스를 자동으로 생성하는 기능을 합니다.이 명령어를 실행하면 모듈, 서비스, 컨트롤러, DTO, 엔터티 파일까지 한 번에 만들어집니다.예제:nest g resource user이 명령어를 실행하면 다음과 같은 파일들이 자동으로 생성됩니다.📂 src/user/user.module.ts → User 모듈user.controller.ts → User 컨트롤러user.service.ts → User 서비스dto/create-user.dto.ts → User 생성 DTOdto/update-user.dto.ts → User 업데이트 DTOentities/user.entity.ts → User 엔터티.. 2025. 2. 13.
모듈과 미들웨어의 차이 1. 모듈과 미들웨어의 차이점항목모듈(Module)미들웨어(Middleware)역할기능을 그룹화하여 관리요청을 가로채어 특정 작업 수행위치애플리케이션 전체 구조의 일부요청-응답 사이에서 실행사용 목적코드 구조화, 재사용성 향상, 의존성 관리요청 전처리, 보안, 로깅, 데이터 변환적용 대상특정 기능과 관련된 컨트롤러 및 서비스특정 요청(route) 또는 전체 요청실행 시점애플리케이션 실행 시요청이 컨트롤러에 도달하기 전 📌언제 모듈과 미들웨어를 사용할까?모듈: 기능을 그룹화하고, 유지보수 및 확장성을 고려할 때 사용   모듈은 NestJS 애플리케이션의 구조를 모듈화하여 유지보수성과 확장성을 높임미들웨어: 요청을 가로채어 공통 작업(전처리, 보안, 로깅, 인증, 데이터 변환 및 검증 등)을 수행할 때 사.. 2025. 2. 1.