06
10

무엇을 상상하든 그 이상을 보게되는 Javascript

1. lodash?

  • 데이터 처리를 위해 다양한 함수를 가지고 있는 라이브러리이다.
  • 배열을 반복시키거나, 객체 형태의 데이터를 정렬하거나 하는 등의 작업을 쉽게 할 수 있다.

2. 예시

예시1 : gropBy(array | object, 규칙)

groupBy([6.1, 4.2, 6.3], Math.floor);
// => { '4': [4.2], '6': [6.1, 6.3] }
 
groupBy(['one', 'two', 'three'], 'length');
// => { '3': ['one', 'two'], '5': ['three'] }

예시 2 : join(array, '사이에 넣어줄 string')

join(['a', 'b', 'c'], '~');
// => 'a~b~c'
  • 이와 같은 다양한 함수들이 존재한다. 그래서 처리하기 괴로운 데이터 형태로 백엔드에서 넘겨받는다고 하더라도 찰떡같이 잘 바꿔 사용하면 된다.

3. 단점

  • 용량이 커서 사용하지 않는 경우가 있다고 한다...! (친구 개발자 프로젝트에서는 사용할 때 그런 이슈가 있었다고 하는데, 잘 모르겠다. 함수 덩어리들이 용량이 커봐야 그리 크지 않을 것 같다.)
  • 나중에 알고리즘 문제 풀때 답답하다. 데이터를 받으면 lodash 함수부터 생각난다. (요즘에는 면접 때도 Ai 한테 물어보고 하는 경우도 있다고 하니 뭐 비슷한 경우가 아닐까? 오히려 이쪽이 더 낫지 않나...? 하는 개인적인 생각)

4. 그래서 어떻게 사용할 것인가?

  • 물론 프로젝트에서는 이렇게 저렇게 잘 사용하면 된다. 하지만...?
직접 lodash 함수를 구현해 본다면...?
  • 실무에서 쓰기 좋은 함수들의 모음 -> 만약, 실무에서 쓰지 못 하는 프로젝트를 만난다면? -> 직접 구현!
  • 실무에서 적용시키기 어렵고 복잡한 알고리즘 문제들보다 더 활용도가 높을 것이다!라는 결론이다.

5. 연습하는 법

  1. https://lodash.com/docs 로 접속한다.
  2. 스크롤을 랜덤으로 쭉 내린다 (순서대로 하는 것은 추천하지 않는다. 데이터 형태별로 순차로 적혀있어서 배열과 객체를 섞어서 하는 게 더 헷갈리고 도움이 된다.)
  3. 아무 함수나 찝고 함수를 하나 만들고, 예시와 똑같이 동작하도록 만든다.
  4. 시간이 남거나 기회가 된다면 실무처럼 똑같은 환경이라고 생각하고 만든다. 예를 들어, for 문을 사용하지 않는다거나, map을 reduce로 바꾸어 최적화시킨다거나, if문이 중첩 될 경우 삼항연산자로 바꾼다거나 하는 등으로 말이다.
COMMENT