Zod 및 AI SDK 5와 함께 쓰는 TypeScript 성능 문제

Zod 및 AI SDK 5와 함께 쓰는 TypeScript 성능 문제

AI SDK 5와 Zod를 함께 쓰면 TypeScript 타입 체크가 느려지거나 서버가 멈추는 문제가 있을 수 있어요. 여기서 그 원인과 해결책을 정리해 드릴게요.

출처: 문서

본문

문제 (Issue)

AI SDK 5를 Zod와 함께 사용할 때 다음과 같은 현상을 겪을 수 있습니다.

  • TypeScript 서버가 멈추거나 (crash/hang) 동작하지 않음
  • AI SDK 함수를 import하는 파일에서 타입 체크가 극도로 느려짐
  • "Type instantiation is excessively deep and possibly infinite" 같은 오류 메시지
  • AI SDK 코드를 다룰 때 IDE가 응답하지 않음

배경 (Background)

AI SDK 5에는 Zod 버전과의 특정 호환성 요구사항이 있습니다. 표준 import 경로(import { z } from 'zod')로 Zod를 import하면 TypeScript의 타입 추론이 과도하게 복잡해져 성능 저하나 크래시가 발생할 수 있습니다.

해결책 (Solution)

Zod를 4.1.8 이상으로 업그레이드

가장 기본적인 해결책은 모듈 해석 문제가 수정된 Zod 버전 4.1.8 이상으로 업그레이드하는 것입니다.

pnpm add zod@^4.1.8

이 버전은 서로 다른 모듈 해석 설정 때문에 TypeScript가 같은 Zod 선언을 두 번 불러와 값비싼 구조 비교가 발생하던 근본적인 문제를 해결합니다.

대안: TypeScript 설정 업데이트

Zod 업그레이드가 어렵다면 tsconfig.json에서 moduleResolution: "nodenext"를 사용하도록 설정할 수 있습니다.

{
  "compilerOptions": {
    "moduleResolution": "nodenext"
    // ... other options
  }
}

이렇게 하면 표준 Zod import를 계속 사용하면서도 TypeScript 성능 문제를 해결할 수 있습니다.

더 알아보기 (Learn more)