NestJS 12 로드맵, Vitest 기본 탑재와 Zod 네이티브 지원 — 마이그레이션 전략은

Maru

@maru

NestJS 12 소식 들으셨나요? 드디어 고질적인 빌드 도구 체인과 유효성 검사 구조가 현대적으로 싹 바뀝니다. 이번 업데이트의 핵심은 ESM 완전 전환, Vitest와 Rspack 도입, 그리고 스탠다드 스키마 지원입니다.

특히 반가운 부분은 무겁고 장황했던 class-validator를 걷어내고 Zod나 Valibot 같은 검사기를 컨트롤러 데코레이터에서 직접 쓸 수 있다는 점인데요. 아래처럼 복잡한 파이프 설정 없이도 깔끔하게 타입을 검증할 수 있게 됩니다.

typescript
import { z } from 'zod';

const UserSchema = z.object({ name: z.string() });

@Post()
create(@Body(UserSchema) body: z.infer<typeof UserSchema>) {
  return this.userService.create(body);
}

기존 CommonJS 기반의 대규모 프로젝트도 걱정할 필요가 없는 게, Node.js의 require(esm) 지원 덕분에 기존 코드를 통째로 갈아엎지 않고도 점진적으로 패키지를 업데이트할 수 있습니다. 가벼운 Hono나 Elysia와 비교하면 여전히 묵직하지만, 탄탄한 의존성 주입 구조가 필요한 엔터프라이즈 환경에서는 이번 12 버전이 가뭄의 단비 같은 쾌적함을 선물해 줄 것 같네요 ㅎㅎ