백엔드
es-toolkit: How a Small Internal Library Became a Global Project
두줄요약
Toss는 lodash의 한계를 보완한 현대적 유틸리티 라이브러리 es-toolkit을 만들고 OSS로 확산시켰습니다. 호환 레이어와 성능 개선으로 대형 프로젝트 채택과 주간 2천만 다운로드를 달성했습니다.
핵심 내용
- Toss 내부 유틸리티 라이브러리 @toss/utils를 바탕으로 현대 웹 환경에 맞는 JavaScript 유틸리티 라이브러리 es-toolkit을 기획
- lodash의 구식 구조, 불필요한 레거시 브라우저 지원, ESM 미지원, tree-shaking 한계 문제를 줄여 성능과 번들 크기 개선
- 핵심 함수 구현만으로 함수별 2배 이상 최대 10배 이상 속도 향상, 일부는 30배 이상 번들 크기 감소
- es-toolkit/compat로 lodash와 유사한 인터페이스와 동작을 제공해 도입 장벽을 낮추고, 외부 OSS와 대형 프로젝트로 확산
적용해볼 점
- 레거시 호환 로직과 실제 필요 범위를 분리해 현대 환경에 맞게 재설계
- drop-in replacement와 호환 레이어로 마이그레이션 비용 완화
- OSS 생태계와의 연계를 통해 내부 도구를 외부 표준 후보로 성장