번들 사이즈 97% 감소, 성능은 극대화—국산 오픈소스가 글로벌 표준이 된 비결
토스(Toss) 내부에서 시작해 전 세계 프론트엔드 생태계를 뒤흔든 차세대 유틸리티 라이브러리 es-toolkit의 개발 여정을 다룹니다. 레거시와의 결별을 통해 얻은 압도적인 성능 지표와 커뮤니티의 힘으로 글로벌 오픈소스로 성장한 과정을 시니어 엔지니어의 시각에서 공유합니다.
프로젝트의 성능 최적화와 번들 다이어트가 고민이라면 지금 바로 es-toolkit 도입을 검토하세요. 특히 기존 lodash 의존성이 높다면 compat 레이어를 통해 리스크 없이 점진적으로 교체하는 방식을 추천합니다.
기존의 lodash는 Internet Explorer와 같은 레거시 브라우저 지원을 위한 방어적 로직과 구식 코드 구조를 유지하고 있어 현대적인 웹 환경에서 불필요하게 무겁고 느렸다. 또한 ESM(ECMAScript Modules) 미지원으로 인해 사용하지 않는 코드를 제거하는 트리 쉐이킹이 어려워 번들 사이즈 최적화에 걸림돌이 되었다.
현대적 브라우저가 기본 제공하는 API를 활용해 성능을 극대화하고 ESM 기반으로 설계된 es-toolkit을 개발하였다. 특히 기존 lodash 사용자들이 코드 수정 없이 바로 전환할 수 있도록 인터페이스와 동작을 동일하게 맞춘 호환성 레이어인 'es-toolkit/compat'을 제공하여 도입 장벽을 낮추었다.
lodash 대비 실행 속도는 최소 2배에서 최대 10배 이상 향상되었으며, 일부 함수에서는 번들 사이즈가 30배 이상 줄어드는 성과를 거두었다. 그 결과 주간 2,000만 회 이상의 다운로드를 기록하고 Yarn Berry, Storybook 등 글로벌 주요 프로젝트에 채택되는 등 전 세계적인 영향력을 확보했다.
Trade-off
주요 유스케이스와 현대적인 표준에 집중하기 위해 lodash가 처리하던 수많은 에지 케이스를 생략할 수 있으나, 이는 compat 레이어를 통해 보완되고 있다. 다만 모든 lodash 기능을 1:1로 완벽히 대체하기 위해서는 라이브러리 유지보수 측면에서 지속적인 노력이 요구된다.
빌드 과정에서 사용되지 않는 코드를 제거하여 최종 결과물의 크기를 줄이는 최적화 기술입니다.
라이브러리가 별도로 구현하던 복잡한 로직을 현대 브라우저가 표준으로 제공하는 내장 함수로 대체하는 방식입니다.
기존 라이브러리를 제거하고 새로운 라이브러리를 도입할 때 추가적인 코드 수정 없이 바로 작동하는 교체 방식을 의미합니다.






