ROOT

앞선 강의 내용 L.entries = function *(obj) { for (const k in obj) yield [k, obj[k]]; }; const join = curry((sep = ',', iter) => reduce((a, b) => `${a}${sep}${b}`, iter)); const queryStr = pipe( L.entries, L.map(([k, v]) => `${k}=${v}`), join('&') ); console.log(queryStr({ limit: 10, offset: 10, type: 'notice' })); 앞서 배웠던 join 함수는 reduce 계열의 함수라고 볼 수 있다. 즉, reduce로 만들 수 있는 함수인 것이다. entries의 경우는 map을 통해..
이전 강의 내용 const queryStr = pipe( Object.entries, map(([k, v]) => `${k}=${v}`), reduce((a, b) => `${a}&${b}`) ); reduce를 보면 Array에 있는 join 함수와 같은 결과물을 반환한다. 그런데 Array의 join 메서드는 Array prototype에만 붙어있는 메서드다. 이때, reduce는 이터러블 객체를 순회하면서 값을 join하기에 조금 더 다형성이 높은 함수라고 볼 수 있다. Join 함수 const join = curry((sep = ',', iter) => reduce((a, b) => `${a}${sep}${b}`, iter)); const queryStr = pipe( Object.entries,..
reduce나 take는 하나의 결과를 만드는 함수이다. 이에 반해 map, filter는 배열이나 이터러블한 모나딕한 값에 원소들에게 함수들을 합성해 놓는 역할을 하고, reduce나 take는 원소들을 꺼내서 연산을 진행하기에, 최종적으로 결과를 만드는 함수다. map이나 filter 같은 함수는 지연성을 가질 수 있는 함수라고 볼 수 있고, reduce 같은 함수는 연산을 시작하는 시작점을 알리는 함수라고 볼 수 있다. map, filter를 반복하다가 reduce 같은 함수로 연산을 시켜서 함수를 종료하는 등으로 중간에 연산을 시작한다. 함수형으로 작업할 때, map이나 filter로 정제하다가 reduce로 값을 뽑아내도록 사고하는 것이 중요하다. map, filter, reduce로 함수 생성..
· Node.js
Turborepo 도입기 디프만에서 프로젝트를 진행하려고 하는데, 서버 언어로 TypeScript를 사용하고 있기 때문에 프론트엔드와 함께 레포지터리를 사용하기에 용이했다. 그래서 Yarn Berry를 통해서 monorepo를 구축할 계획이었다. 프론트와 백 모두 익숙하신 분께서 모노레포를 모두 구축해주셨고 이를 활용해서 프로젝트를 디벨롭 하고자 했다. 백엔드와 프론트엔드 모두 세팅이 안정적으로 완료됐지만, Next.js의 Vercel 배포가 Yarn Berry에서는 잘 동작하지 않는다는 것을 알게 됐고, 이를 대체하고자 Turborepo를 통해 모노레포를 구축하고자 했다. Turborepo란? 공식 문서 설명에 따르면, JavaScript나 TypeScript 코드를 위해 최적화된 빌드 시스템이라고 한..
턴태
'분류 전체보기' 카테고리의 글 목록 (7 Page)