📦

lodash 꼭 써야 할까? 가벼운 대안 라이브러리 추천!

Updated
2025/03/19 09:47
Category
Library
Tags
JavaScript
2 more properties
외부 라이브러리 사용이 많은 lodash. 바로 쓰기 편하고 평가가 높은 라이브러리이지만, 모든 프로젝트에서 무조건 사용하는 것이 좋은 선택일지는 고민이 따릅니다.
이 글에서는 lodash의 성능 문제 여부와, 대안으로 고려할 만한 가벼운 유틸리티 라이브러리들을 소개해 드립니다.

lodash, 성능에 무시해도 될 수준일까?

결론부터 말하면 lodash 자체는 잘 최적화되어 있어 심각한 성능 문제는 없습니다. 다만 사용 방식에 따라 퍼포먼스 저하가 발생할 수 있습니다.

주의해야 할 상황:

lodash 전체 import (import _ from 'lodash') → 번들 크기 증가
_.cloneDeep, _.merge 같은 깊은 복사 함수 반복 사용 → 대규모 데이터 처리에서 성능 저하
체이닝을 과하게 사용해 불필요한 연산 증가
React, Vue에서 렌더링 단계에 무분별하게 사용 → 렌더링 성능 문제
필요한 함수만 개별 import하고, 사용 위치와 빈도를 조절하면 대부분 문제는 발생하지 않습니다.

lodash 대안 라이브러리 TOP 4

Ramda

함수형 프로그래밍(FP) 지향
불변성 유지, 커링, 함수 조합에 최적화
lodash보다 함수형 처리에 더 적합
import { map } from 'ramda' map(x => x * 2, [1, 2, 3]) // [2, 4, 6]
JavaScript
복사

Nano-lodash

lodash 주요 기능을 가볍게 재구현
번들 크기 2KB 내외로 매우 가볍고 빠름
import cloneDeep from 'nano-lodash/cloneDeep'
JavaScript
복사

Just

특정 함수별로 Zero dependency 제공
필요한 함수 하나만 import 가능
import debounce from 'just-debounce-it'
JavaScript
복사

lodash-es

lodash의 ES module 버전
tree-shaking이 가능해 개별 import로 번들 크기 최소화
import debounce from 'lodash-es/debounce'
JavaScript
복사

네이티브 JS API + 유틸 함수 직접 작성

최근 브라우저 내장 기능이 강력해져서:
map, filter, reduce, Object.assign, structuredClone
debounce, throttle 등은 10~20줄 내외로 간단히 직접 구현 가능

상황별 추천 정리

상황
추천
불변성 + 함수형 가치 중심
Ramda
lodash 대체로 가벼운 크기 선호
nano-lodash, Just
lodash 문법에 익숙
lodash-es
의존성 최소화 + 성능 최대화
네이티브 API + 직접 작성