티스토리 뷰
프론트엔드에서 많이 사용되는 lodash. 몇 년을 들어왔지만 막상 정의하려 하니 뭐라고 정의할지 모르겠는 막막함에 갇혔다.(아무도 정의하라고 한 적 없음) 그래서 정리해보는 로다쉬! 혹은 로대쉬?
https://lodash.com/
lodash란?
모듈화, 성능 등을 제공하는 JS 유틸리티 라이브러리이다.
js를 기반으로 하기 때문에 JS의 기본 기능과 유사한 기능들도 많지만 그 외의 기능들도 포함되어있으며, 결론적으로 매우 쉽게 array/object등을 컨트롤 할 수 있고, 성능도 native보다 빠르다.(고 하는데, 사실 잘 공감은 안간다)
왜 lodash를 사용해야 하는가.
- 기존 JS 메서드 작성 코드보다 더 간결함.
- 기존 JS에서 지원하지 않는 다양한 메서드 존재.
퍼포먼스 측면에서 매우 좋음(이라고 한다)
lodash 메서드
lodash는 보통 _.어떤것의 형태로 많이 사용한다. 예를들어 이런식으로 말이다.
var users = [
{ 'user': 'barney', 'age': 36, 'active': true },
{ 'user': 'fred', 'age': 40, 'active': false }
];
_.filter(users, function(o) { return !o.active; });
// => objects for ['fred']
아마 ES6로 표현하면 이정도가 되지 않을까.
var users = [
{ 'user': 'barney', 'age': 36, 'active': true },
{ 'user': 'fred', 'age': 40, 'active': false }
];
users.filter((user) => user.active === true);
https://github.com/lodash/lodash
https://lodash.com/docs/4.17.15
update
lodash가 성능이 더 좋다는 이야기가 어디서 나왔는지 모르겠다. 공식 문서에도 퍼포먼스 이야기는 없다. 내 마음대로 es6가 더 빠르다고 결론 내리기로 하였다. 실제 테스트에서도 그렇고, 주변 실무자들도 로대시가 더 빠른 상황을 느낀적이 없다고 한다.
다만 성능적으로 우월하다는 믿을만한 근거를 찾으면 다시 업데이트 할 예정이다!
예전글이지만 어떤 분께서 성능 비교를 자세하게 해주셨다. 이 사이트를 보면 ES6가 거의 대부분 빠르다. 근데 다른 포스팅을 보면 lodash가 짱이라고 한다(?)
https://ljlm0402.netlify.app/javascript/performance/
'JavaScript > JS' 카테고리의 다른 글
history scrollRestoration으로 히스토리 복구 시, 자꾸 최상단으로 올라가는 버그를 무찌르자. (0) | 2022.09.06 |
---|---|
모바일 사파리에서는 pagehide/show를 사용할 것 (0) | 2022.08.30 |
js scroll을 부드럽게 만드는 방법 (+ 사파리 적용) (0) | 2022.08.02 |
onClick에 함수 혹은 화살표 함수 연결하기 (0) | 2022.07.28 |
history web API 종류가 이렇게나 많았다. 언제 쓰는거지? (0) | 2022.07.20 |
- Total
- Today
- Yesterday
- 프론트엔드
- 리코일
- storybookUI
- js테스트
- vue
- 리액트상태관리
- BFCache
- TIL
- 깃명령어
- 리액트
- 사파리
- 모바일사파리
- gitRebase
- 김민태
- 센트리
- npm
- Git
- sentry
- 깃
- 센트리모니터링
- 프론트앤드
- reacthook
- 자바스크립트
- frontend
- javascript
- react
- CSS
- 크롬
- 리액트훅
- js
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |