피드로 돌아가기
Dev.toFrontend
원문 읽기
Zero-Dependency, 0.39kb의 Type-Inferred 기반 i18n 아키텍처
Kotori, strongly typed and modular i18n library for React
AI 요약
Context
기존 i18n 라이브러리의 거대한 중앙 집중형 딕셔너리 구조로 인한 번들 크기 증가 및 런타임 타입 에러 발생 가능성 상존. 별도의 JSON 스키마 관리나 Codegen 과정이 유발하는 개발 워크플로우의 마찰 및 유지보수 비용 증가.
Technical Solution
- TypeScript Template Literal Types를 활용하여 기본 언어 문자열을 Type Contract로 정의하는 Type-Inferred Variables 설계
- 모든 지원 언어 간 변수 일치 여부를 컴파일 타임에 검증하여 런타임 String Typo 및 누락 변수 버그 원천 차단
- 중앙 집중식 저장소 대신 컴포넌트 단위의 Local Definition 방식을 채택하여 번들러의 Native Code-splitting 최적화 유도
- Global State 기반의 언어 상태 관리와 Localized Translation 정의를 결합한 하이브리드 구조 설계
- 외부 의존성 및 스키마 파일 없이 Pure TypeScript만으로 작동하는 Zero-Config 아키텍처 구현
실천 포인트
1. i18n 도입 시 JSON 파일 기반 관리 대신 TypeScript 타입을 활용한 컴파일 타임 검증 가능 여부 검토
2. 전체 번들 크기 최적화를 위해 중앙 집중형 딕셔너리를 Feature 단위의 분산 정의 구조로 전환 고려
3. Codegen 단계가 없는 Zero-Config 설정으로 DX(Developer Experience) 개선 방안 모색