@UsePipes()
2026년 5월 17일
Controller-level Pipe
컨트롤러 레벨에서 @UsePipes() 데코레이터(Decorator)를 이용하면 현재 컨트롤러에 정의되어 있는 모든 핸들러에 pipe가 적용된다.
TypeScript
Handler-level Pipe
핸들러 레벨에서 @UesPipes() 데코레이터를 이용하여 사용할 수 있다. 핸들러 레벨에서 pipe를 사용하게 될 경우 핸들러의 모든 파라미터에 적용이 된다.
TypeScript
parameter-level pipe
파라미터 레벨의 pipe이기 대문에 특정한 파라미테에만 적용이 되는pipe이다.
TypeScript
Global-level pipe
애플리케이션이 bootstrap되는 main.ts에서 설정이 가능하다.
TypeScript
위와 같이 app.useGlobalPipes에 ValidationPipe를 생성하여 인스턴스를 넣어주면 된다.
하지만 위의 code의 경우 의존성 주입관점에서 main.ts에 직접 선언해주기 때문에 code가 유연하지 않다. 추 후 GlobalPipes가 변경될 경우 main.ts를 수정해주어야 한다.
NestJs에서는 위와 같은 방법 말고 root Module에서 Custom Provider를 이용하여 GlobalPipes를 등록할 수 있는 방법을 제공해준다.
TypeScript
이렇게 CustomProvider로 정의를 해주게 되면 GlobalPipes로 사용할 pipe가 변경되더라도 유연하게 대채할 수 있게 된다.