𝗡𝗼𝗱𝗲.𝗷𝘀 𝟮𝟰 𝗡𝗮𝘁𝗶𝘃𝗲 𝗧𝘆𝗽𝗲𝗦𝗰𝗿𝗶𝗽𝘁
빌드 단계의 시대가 저물고 있습니다.
이제 Node.js 24에서 TypeScript를 네이티브로 지원합니다. 빌드 단계 없이 프로덕션 환경에서 .ts 파일을 실행할 수 있습니다. 이를 통해 코드와 실행 환경 사이의 마찰을 제거할 수 있습니다.
작동 방식: 런타임이 TypeScript 구문을 파싱합니다. 로드 시점에 타입 어노테이션(type annotations)을 제거한 뒤, 결과물인 JavaScript를 실행합니다.
이번 변화의 주요 특징:
- 타입 체크를 수행하지 않습니다.
- .d.ts 파일을 생성하지 않습니다.
- TypeScript를 어노테이션이 포함된 JavaScript로 취급합니다.
- 런타임은 실행 전 어노테이션을 제거합니다.
이는 배포 과정을 단순화합니다. 더 이상 배포를 위해 tsc 출력 디렉터리를 관리하거나 복잡한 소스 맵(source map) 설정을 할 필요가 없습니다. 소스 코드가 곧 단일 진실 공급원(single source of truth)이 됩니다.
다음 제한 사항에 주의하세요:
- 런타임 시 타입 체크가 지원되지 않습니다. 오류를 감지하려면 CI 파이프라인에서 여전히
tsc --noEmit을 실행해야 합니다. tsconfig.json경로 매핑(path mappings)을 지원하지 않습니다.- 데코레이터(decorators)나 커스텀 트랜스포머(custom transformers)를 지원하지 않습니다.
- 타입 제거(type stripping)로 인해 콜드 스타트(cold start) 시 약간의 성능 비용이 발생할 수 있습니다.
@/utils와 같은 경로 별칭(path aliases)을 사용하는 경우, 여전히 번들러나 esbuild가 필요합니다.
사용 방법:
Node로 서버를 직접 실행할 수 있습니다:
node src/server.ts
더 나은 디버깅을 위해 소스 맵 플래그를 사용하세요:
node --enable-source-maps src/server.ts
의존성 그래프가 단순한 마이크로서비스에는 탁월한 선택입니다. 배포 속도를 높일 수 있습니다. 하지만 강력한 최적화나 코드 압축(minification)이 필요한 경우에는 기존의 빌드 파이프라인을 유지하는 것이 좋습니다.
핵심은 도구를 사용자의 구체적인 요구 사항에 맞게 활용하는 것입니다.