Pipe은 무엇인가?
- Pipe는 @injectable() 데코레이터로 주석이 달린 클래스
- 데이터 변경 및 유효성 검증을 위해서 사용됨
- 컨트롤러 경로 처리기에 의해 처리되는 인수에 대해 작동함
- Nest는 메소드가 호출되기 직전에 파이프를 삽입하고 파이프는 메소드로 향하는 인수를 수신하고 이에 대해 작동함

Pipe 사용해보기
- Handler-level Pipes, Parameter-level Pipes, Global-level Pipes로 나뉘어짐
- 핸들러 레벨에선 @UsePipes() 데코레이터를 이용해서 사용할 수 있음.
- 이것은 모든 파라미터에 적용이 됨
@Post()
@UsePipes(pipe)
createBoard(
@Body("title") title: string,
@Body("desc") desc: string
) { ...}
- 파라미터 레벨은 특정한 파라미터에게만 적용이 됨
@Post()
createBoard(
@Body("title", ParameterPipe) title: string,
@Body("desc") desc: string
) { ...}
- 글로벌 레벨은 클라이언트에서 들어오는 모든 요청에 적용이 됨
- 가장 상단 영역인 main.ts에 넣어주면 됨.
async function boot strap() {
....
app.useGlobalPipes(GlobalPipes);
....
}