[Lodash] Lodash란?
Lodash
Lodash는 개발을 하다 보면 한 번쯤은 들어보거나 접해볼 수밖에 없는 Javascript의 인기있는 라이브러리 중 하나이다.
나 역시 Lodash에 대해 아무것도 모르던 때가 있었는데도 불구하고 검색을 하다 보면 자연스레 알게 되었다.
Lodash는 배열, 숫자, 객체, 문자열 등으로 작업할 때 번거로움을 없애고 쉽게 다룰 수 있게끔 하는 데 사용된다.
그렇기에 보통 Lodash는 유틸용 라이브러리라고 봐도 무방하다.
하지만 하나 알아둬야 할게 Lodash를 많이 사용하긴 하지만 꼭 좋기만 한 건 아니다.
https://measurethat.net/Benchmarks/Show/6534/1/lodash-vs-es6-in-find-method
위 사이트는 Lodash와 같이 꼭 등장하는 바닐라 자바스크립트 메서드와의 성능 비교 사이트이다.
위 링크에는 find함수만 비교하는데 다른 메서드 역시 찾아볼 수 있으나 귀찮으니 본문 하단에 있는 참고글을 읽는 것을 추천한다.
사실 나 역시 순수 자바스크립트 메서드를 사용하는 것을 좋아하지만,
Lodash에는 순수 자바스크립트에서 지원하지 않는 "성능이 보장되어 있는" 다양한 메서드들이 존재하기에 무시할 수 없다.
(예를 들어 debounce, throttle 같은 게 사람들이 많이 사용하는 메서드가 아닌가 싶다.)
그래서 프로젝트마다 유틸 메서드를 만들어 사용할 수 있지만 쉽게 패키지 매니저를 통해 사용이 가능하기 때문에 많은 사람들이 Lodash를 사용하는 것이다.
Lodash 예제 코드들을 보게 되면 다들 "언더바(_).findIndex()"같은 방식으로 사용하는 것을 봤을 텐데,
언더바(_) 기호를 이용해서 메서드를 사용하기 때문에 명칭이 Lodash가 되었다고 한다.
(아 그렇다고 꼭 언더바를 사용할 필요는 없다 필요한 메서드만 골라서 import 해올 수 있기 때문에)
Lodash 설치하기
설치는 어렵지 않고 본문 하단에 공식 사이트가 있으니 공식 사이트를 참고해서 설치해도 된다.
npm i -g npm
npm i --save lodash
yarn add lodash
메서드를 새롭게 익힐 때마다 정리할 생각이지만 이왕 시작하는 김에 공식문서의 예제를 가져오고 마무리 짓겠다.
var users = [
{ 'user': 'barney', 'active': false },
{ 'user': 'fred', 'active': false },
{ 'user': 'pebbles', 'active': true }
];
_.findIndex(users, function(o) { return o.user == 'barney'; });
// => 0
// The `_.matches` iteratee shorthand.
_.findIndex(users, { 'user': 'fred', 'active': false });
// => 1
// The `_.matchesProperty` iteratee shorthand.
_.findIndex(users, ['active', false]);
// => 0
// The `_.property` iteratee shorthand.
_.findIndex(users, 'active');
// => 2