Nest.js는 TypeScript를 사용하여 서버 사이드 애플리케이션을 빌드할 수 있는 프레임워크입니다. 이번 글에서는 Nest.js 애플리케이션에서 쿼리 매개변수(query parameters)를 TypeScript로 어떻게 처리하는지에 대해 살펴보겠습니다.
쿼리 매개변수란?
쿼리 매개변수는 URL에 포함된 데이터를 나타냅니다. 보통 ?
다음에 key=value
형태로 나타내며, 여러 개의 쿼리 매개변수를 사용할 때는 &
로 구분합니다. 예를 들면, ?page=1&limit=10
과 같이 표현됩니다.
Nest.js에서 쿼리 매개변수 처리
Nest.js에서 쿼리 매개변수를 처리하려면 먼저 @nestjs/common
패키지에서 제공하는 Query()
데코레이터를 사용해야 합니다. 이 데코레이터를 사용하면 쿼리 매개변수를 간편하게 추출할 수 있습니다. 아래는 쿼리 매개변수를 처리하는 예시입니다.
import { Controller, Get, Query } from '@nestjs/common';
@Controller('items')
export class ItemsController {
@Get()
findAll(@Query('page') page: number, @Query('limit') limit: number) {
return `This action returns items with page ${page} and limit ${limit}`;
}
}
위의 예시에서는 @Query()
데코레이터를 통해 page
와 limit
쿼리 매개변수를 추출하여 사용하고 있습니다.
타입스크립트로 쿼리 매개변수 유효성 검사
Nest.js에서는 TypeScript의 타입 시스템을 사용하여 쿼리 매개변수의 유효성을 검사할 수 있습니다. 이를 통해 잘못된 입력이 들어왔을 때 런타임 에러를 방지할 수 있습니다. 아래는 쿼리 매개변수에 대한 유효성을 검사하는 예시입니다.
import { IsInt, IsPositive } from 'class-validator';
export class PaginationDto {
@IsInt()
@IsPositive()
page: number;
@IsInt()
@IsPositive()
limit: number;
}
위의 예시에서 class-validator
를 사용하여 PaginationDto
클래스를 정의하고 있습니다. 이를 통해 쿼리 매개변수에 대한 타입을 지정하고 유효성을 검사할 수 있습니다.
Nest.js 애플리케이션에서 쿼리 매개변수를 TypeScript로 처리하는 방법에 대해 간략히 살펴보았습니다. 이를 통해 런타임 에러를 방지하고 타입 안정성을 확보할 수 있습니다. Nest.js와 TypeScript를 함께 사용하여 안전하고 견고한 애플리케이션을 구축하는 데 도움이 될 것입니다.