본문으로 건너뛰기

ADR-001: OXC 파서 선택

상태

Accepted

컨텍스트

TypeScript/JavaScript API 문서 생성을 위해 소스 코드를 파싱하는 도구가 필요하다. 후보:

  • TypeScript Compiler API (tsc): 완전한 타입 정보 제공, 하지만 느리고 메모리 소비 큼
  • Babel: 성숙한 생태계, 하지만 느림 (~50ms/파일)
  • SWC: Rust 기반, 빠르지만 JSDoc 파싱 지원 부족
  • OXC (oxc-parser): Rust NAPI 바인딩, 가장 빠른 JS/TS 파서, ESTree 호환 AST

결정

oxc-parser를 선택한다.

  • Rust NAPI 바인딩으로 네이티브 속도 파싱 (Babel 대비 10-50x)
  • parseSync() API로 AST + comments 배열을 동기적으로 반환
  • ESTree 호환 AST 포맷
  • 활발한 OXC 커뮤니티 (20K+ GitHub stars)

결과

  • JSDoc 파싱은 별도 처리 필요 (OXC는 comments 배열만 제공)
  • 타입 리졸빙 불가 (향후 tsgo 연동으로 해결 예정)
  • 선언 시그니처는 소스 텍스트에서 직접 추출