.map: 배열의 각 요소에 함수를 적용한 결과를 모아 새로운 배열을 생성한다.
.filter: 조건에 맞는 요소만을 모아 새로운 배열을 생성한다.
.find: 조건에 맞는 첫 번째 요소를 반환한다.
.reduce: 배열의 각 요소를 누적하여 하나의 값으로 만든다.
.assign: 여러 객체를 하나로 합친다.
.keys: 객체의 모든 키를 배열로 반환한다.
_.values: 객체의 모든 값을 배열로 반환한다.
.debounce: 함수가 너무 자주 호출되지 않도록 지연시키는 함수이다.
.throttle: 일정 시간 동안 함수가 한 번만 호출되도록 제한하는 함수이다.
.bind: 함수의 this 컨텍스트를 고정한다.
.curry: 함수를 커링하여 인자를 부분적으로 적용할 수 있게 한다.
1: 배열 처리
import _ from 'lodash';
let users = [
{ 'user': 'barney', 'age': 36, 'active': true },
{ 'user': 'fred', 'age': 40, 'active': false }
];
let activeUsers = _.filter(users, (user) => user.active);
console.log(activeUsers);
// => [{ 'user': 'barney', 'age': 36, 'active': true }]
2: 객체 조작
import _ from 'lodash';
let object = { 'a': 1, 'b': 2 };
let other = { 'b': 3, 'c': 4 };
let combined = _.assign(object, other);
console.log(combined);
// => { 'a': 1, 'b': 3, 'c': 4 }
3: 함수 디바운스
import _ from 'lodash';
function expensiveOperation() {
console.log('Expensive Operation!');
}
let debouncedExpensiveOperation = _.debounce(expensiveOperation, 2000);
window.addEventListener('resize', debouncedExpensiveOperation);
다양한 유틸리티 함수 제공: lodash는 배열, 객체, 문자열, 함수 등을 다루는데 필요한 수많은 유틸리티 함수를 제공한다. 이로 인해 개발자는 일반적인 작업을 위해 직접 함수를 작성할 필요가 없어진다.
체인 메서드를 통한 간결한 코드 작성: lodash의 체인(Chain) 기능을 사용하면 여러 작업을 한 줄의 코드로 연결하여 가독성 높은 코드를 작성할 수 있다.
성능 최적화: lodash는 내부적으로 성능 최적화가 잘 되어있어, 특히 대량의 데이터를 다룰 때 유리하다.
함수형 프로그래밍 지원: lodash는 함수형 프로그래밍을 지원한다. 불변성과 순수 함수 등의 개념을 적용할 수 있어, 코드의 안정성과 테스트 용이성을 높일 수 있다.
광범위한 호환성: lodash는 다양한 브라우저와 Node.js 환경에서 널리 사용될 수 있도록 설계되었다.
파일 크기: lodash의 전체 라이브러리를 포함하면 파일 크기가 커질 수 있다. 하지만 이는 필요한 함수만을 개별적으로 import하는 방식으로 해결할 수 있다.
자바스크립트의 내장 함수와의 중복: ES6 이후로 JavaScript가 많은 유틸리티 기능을 내장하게 되면서 lodash의 일부 기능이 중복될 수 있다. 예를 들어, Array.map, Array.filter 등은 lodash 없이도 사용할 수 있다.
학습 곡선: lodash의 다양한 기능과 체인 메커니즘을 효과적으로 사용하기 위해서는 일정 수준의 학습이 필요하다.
빠른 JavaScript 환경 변화: JavaScript 생태계의 빠른 변화와 새로운 기능의 추가로 인해, lodash의 일부 기능이 구식이 되거나 덜 필요해질 수 있다.
lodash는 이렇게 다양한 시나리오에서 JavaScript 개발을 더 효율적으로 만들어 준다. lodash의 함수들은 단순하지만 강력하여, 코드의 가독성과 유지보수성을 크게 향상시킬 수 있다. 다양한 함수를 실험하고 적용해보며 lodash의 전체적인 사용법을 익히는 것이 좋다.