lodash(로다시, 로다쉬)란
Lodash(로다시)는 함수형 프로그래밍 패러다임을 이용하여
공통 프로그래밍 작업에 대한 유틸리티 기능을 제공하는 자바스크립트 라이브러리입니다.
lodash는 2012년에 underscore.js 로부터 포크된 프로젝트입니다.
공식홈페이지는 lodash.com 이며, MIT 라이센스 입니다.
repository 주소는 https://github.com/lodash
입니다.
lodash 기능
유틸리티 - 유형 결정 및 수학 연산 단순화와 같은 공통 프로그래밍 작업을 단순화하는 데 사용됩니다.
기능 - 바인딩, 장식, 구속, 스로틀링, 디바운싱, 카레, 포인터 변경을 단순화합니다.
문자열 - 트리밍, 대문자 변환, camel 케이스 등 기본적인 문자열 연산을 수행하기 위한 변환 기능입니다.
배열 - 생성, 분할, 결합, 수정 및 압축
수집 - 반복, 정렬, 필터링, 분할 및 구축
객체 - 액세스, 확장, 병합, 기본값 및 변환
Seq - 체인링, 랩핑, 필터링 및 테스트.
lodash 설치방법
//브라우저에서 사용시
<script src="https://cdn.jsdelivr.net/npm/lodash@4.17.21/lodash.min.js"></script>
//npm을 이용한 설치방법
$ npm i -g npm
$ npm i --save lodash
lodash 주요 사용법
lodash는 _ 의 메소드를 사용하면 됩니다.
예를들면 _.concat(..) 과 같은 식으로 사용합니다.
구체적으로 어떤 메소드들이 있는지 살펴보겠습니다.
// array 연결하기
var array = [1];
var other = _.concat(array, 2, [3], [[4]]);
console.log(other);
// => [1, 2, 3, [4]]
// 합집합
_.union([2], [1, 2]);
// => [2, 1]
//필터링
var users = [
{ 'user': 'barney', 'age': 36, 'active': true },
{ 'user': 'fred', 'age': 40, 'active': false }
];
_.filter(users, function(o) { return !o.active; });
// => objects for ['fred']
// 배열중 원하는 객체 찾기
var users = [
{ 'user': 'barney', 'age': 36, 'active': true },
{ 'user': 'fred', 'age': 40, 'active': false },
{ 'user': 'pebbles', 'age': 1, 'active': true }
];
_.find(users, function(o) { return o.age < 40; });
//메소드를 curry로 바꾸기
var abc = function(a, b, c) {
return [a, b, c];
};
var curried = _.curry(abc);
curried(1)(2)(3);
// => [1, 2, 3]
//debounce 사용하기
jQuery(element).on('click', _.debounce(sendMail, 300, {
'leading': true,
'trailing': false
}));
//came case 형태로 문자열 바꾸기
_.camelCase('Foo Bar');
// => 'fooBar'
총평
많이들 사용하는것으로 보이나, 개인적으로는 잘 사용하지 않습니다.
프로젝트들을 진행하면서 구글링하며 나온 샘플 코드등에도 거의 없고,
어떤 기능이 있는지 몰라 일일이 찾아봐야하는 번거로움이 있어서 사용하지는 않고 있습니다.
기회가 된다면 도입은 해보겠지만, 앵간하면 바닐라 자바스크립트만으로도 가능하거나 내가 함수를 빠르게 작성하여 사용하는게 생산성에 더 좋지는 않을까 싶기도 합니다.
댓글