es-toolkit: How a Small Internal Library Became a Global Project
박서진/이다용 · 토스 · 토스 기술 블로그
소개
*This is the English version of a previously published article. Hello! We're Sojin Park, Head of Frontend Engineering at Toss, and Dayong Lee, Frontend Developer at Toss Bank. Today, we'd like to share the story of es-toolkit: how it started as a small utility function library inside Toss and grew i...
AI 핵심 요약
토스 팀은 lodash의 오래된 코드, 불필요한 레거시 브라우저 대응, 트리 셰이킹 제약과 자체 유틸리티 라이브러리의 유지보수 부담을 해결하기 위해 es-toolkit을 만들었다. 현대 브라우저의 내장 기능을 활용하고 불필요한 로직을 제거해 성능과 번들 크기를 개선했으며, lodash와 동작·인터페이스를 맞춘 es-toolkit/compat을 제공해 기존 프로젝트가 import 변경만으로 전환할 수 있도록 했다. 커뮤니티 기여와 Storybook, Mermaid, Yarn Berry, Recharts 등의 도입을 거치며 프로젝트가 확산됐고, 주간 npm 다운로드는 2천만 회를 넘어섰다. 팀은 앞으로도 최신 JavaScript 환경과 서버 런타임에 필요한 기능을 추가하되, 80% 이상의 사용 사례를 작고 빠르게 지원한다는 원칙을 이어가려 한다.
- 레거시 브라우저 대응 코드와 자체 구현 로직을 덜어내고, 현대 브라우저의 내장 기능을 활용하면 성능과 번들 크기를 함께 개선할 수 있다.
- lodash와 호환되는 인터페이스를 유지하면서 내부 구현만 바꾸는 호환 계층은 기존 프로젝트의 마이그레이션 부담을 낮춘다.
- 유틸리티 함수는 엣지 케이스가 많으므로, 직접 유지보수하기보다 검증된 공통 라이브러리를 활용하는 편이 부담을 줄일 수 있다.
- 오픈소스 프로젝트에 작은 PR부터 꾸준히 참여하고 리뷰를 받는 과정은 인터페이스 설계와 JavaScript를 익히는 기회가 된다.
비슷한 학습 자료
2. Beyond Our Expertise
한주연 · 토스 기술 블로그
How Documents Find Developers at Toss
한주연 · 토스 기술 블로그
es-toolkit, 사내 작은 라이브러리가 전세계적인 라이브러리가 되기까지
박서진/이다용 · 토스 기술 블로그
97% Smaller, 2x Faster: How es-toolkit Reached 10 Million Weekly Downloads
문동욱 · 토스 기술 블로그
CommonJS와 ESM에 모두 대응하는 라이브러리 개발하기: exports field
장호승 · 토스 기술 블로그
JSCodeShift로 기술 부채 청산하기
박지우 · 토스 기술 블로그