JavaScript

    [lodash] orderBy, groupBy

    [lodash] orderBy, groupBy

    lodash.. lodash... 이제는 자바스크립트로 비즈니스 로직을 구현하다보니 lodash 없으면 어쨌을까 싶다.... 최근 회사 통계 데이터를 select해와서 가공하는 데 제목에 있는 함수들을 사용했었다. 저번에 SQL의 order by와 group by에 대해 포스팅했는데 이번엔 데이터 collection들도 똑같이 구현할 수 있는 lodash orderBy와 groupBy에 대해 알아볼 것이다. 현재 사이드 프로젝트에서 사용할 게시글 조회 API를 일부 수정하여 보기 좋은 response 데이터로 예시를 들것이다. "data": [ { "id": 1, "title": "test1", "content": "Im king", "viewCount": 10, "likeCount": 5 }, { "i..

    Javascript - dayjs 라이브러리

    Javascript - dayjs 라이브러리

    회사에서 글로벌 서비스 개발 중 dayjs를 지겹게 사용해서 내가 기록용으로 포스팅하려한다. 각 나라마다 timezone에 맞도록 Datetime을 시간을 변경하고 통계 데이터를 쌓고, 조회해야 해서 기존에 사용하던 moment(이제 개발 중단되서 지원안함)를 사용안하고 dayjs를 활용한다. 그리고 또, Mysql DB 시간도 우리나라 시간 KST와 안 맞는 케이스도 있다(UTC로 들어가는 걸로 앎). 설정에 따라 createdAt 등 시간 조정이 가능하다. UTC 기준 우리나라 시간(KST)이랑 +9시간 차이 나고 EST 같은 경우 -4시간 차이난다. dayjs 공식 사이트 https://day.js.org/ npm install --save dayjs sudo npm install --save da..

    [Async] waterfall, parallel로 흐름 제어

    [Async] waterfall, parallel로 흐름 제어

    이전 포스팅한 async 정의에 대해 다뤄봤고 이번엔 async에서 자주 사용하는 메서드를 알아볼 것이다. 1. waterfall waterfall 함수는 비동기 함수를 순차적으로 실행하지만 각 작업의 결과를 다음 작업으로 넘겨주어 최종적으로 결과값을 return 한다. async.waterfall(작업리스트, 완료 콜백) 이 그림은 비동기 함수 asyncfunctionaA, asyncfunctionB,asyncfunctionC 를 순차적으로 실행하고, 각 단계에서 다온 리턴값을 다음 단계로 넘기는 waterfall 흐름의 개념을 표현하고 있다. 각각의 단계에서 처리되는 함수를 async에서는 task라고 정의한다. 이 task가 모두 수행이 끝나면, 맨 마지막에 정의된 callback 함수가 수행된다...

    [lodash] map VS each 알고쓰자

    lodash 라이브러리에서 collection 중에 map과 each가 있다. 일단 map의 간단한 정의를 알아보자 _.map(list, iteratee, [context]) list: colletion으로써, 배열이나 객체가 될 수 있다. iteratee: list의 각 element(value)를 변형시키는 함수이다. [context]: iteratee 함수에서 this로 바인딩 되는 것이다.(생략가능) list의 각 element(value)를 iteratee 함수를 돌려, 값을 변형시키고, 변형된 값을 배열의 형태로 리턴한다. list 내에 데이터 즉, 배열이나 객체 타입 변수가 들어오고, iteratee는 list에 있는 데이터 element를 꺼내와 변형하는 함수다. 코드를 예를 들어서 설명할..

    [lodash] lodash 라이브러리란?

    방금 Async 모듈을 포스팅하면서 "OK, 순차처리, 병렬처리하는 비동기 처리 방식인건 알았어. 근데 프로세스 내에서 처리하는 방식은 어떻게 되는데?" 라는 의문이 들거다. 회사를 다니면서 이 _.(lodash)는 뭐야? 했었다. 이 라이브러리는 주로 _라는 변수명을 작성하는데 _.map, _.compact, _.each 등등 javascript 내에서 사용되는 handling 라이브러리다. 주로 어떤 걸 handling 하나? 보통 Array, collection, date, object 등등 데이터의 구조를 쉽게 다루고 조작하는 데에 사용된다. https://lodash.com/docs/4.17.15 Lodash Documentation _(value) source Creates a lodash o..