Javascript에서 배열을 편면화하는 가장 효율적인 방법 spread operator (...)와 "reduce"를 이용하는 방법이다. let nestedArray = [[1, 2, 3], [4, 5, 6], [7, 8, 9]];let flattenedArray = nestedArray.reduce((acc, val) => [...acc, ...val], []);console.log(flattenedArray); // [1, 2, 3, 4, 5, 6, 7, 8, 9] 예제에서 "reduce"는 배열의 누적기 "acc"와 현재 값 "val"를 가져오는 콜백 함수를 사용한다.spread operator는 "val" 의 값을 처음에는 빈 배열 []인 누적기 "acc"에 연결하는 데 사용된다.각 반복의 결과..
fp-ts? fp-ts Functional programming in TypeScript는 TypeScript의 함수형 프로그래밍을 위한 라이브러리이다. TypeScript 표준 라이브러리에 없는 일반적인 데이터 구조와 함수형 추상화 모음을 사용할 수 있도록 도와준다. fp-ts의 장점 fp-ts를 사용하는 주요 장점은 불변성, 합성, 고차 함수와 같은 함수형 프로그래밍 기술을 촉진하여 안전하고 유지 보수가 용이한 코드를 쉽게 작성할 수 있도록 해준다. 이에 더해 fp-ts는 TypeScript의 type 시스템을 활용하여 강력한 typing을 제공하고 특정 type의 런타임 오류를 방지한다. fp-ts에서 제공하는 주요 기능 부수효과 처리와 연산 체인을 위한 Monad 및 Monad Transforme..
NPM (Node Package Manager)? npm (노드 패키지 매니저/Node Package Manager)은 자바스크립트 프로그래밍 언어를 위한 패키지 관리자이다. 자바스크립트 런타임 환경 Node.js의 기본 패키지 관리자이다. 명령 줄 클라이언트(npm), 그리고 공개 패키지와 지불 방식의 개인 패키지의 온라인 데이터베이스(npm 레지스트리)로 이루어져 있다. 이 레지스트리는 클라이언트를 통해 접근되며 사용 가능한 패키지들은 npm 웹사이트를 통해 찾아보고 검색할 수 있다. 패키지 관리자와 레지스트리는 npm사에 의해 관리된다. npm을 이용한 패키지 설치 $ npm install install 대신 i를 약어로 사용이 가능 → $ npm i 에는 설치할 패키지 명을 적는다. 만약 특정한 ..
Map() Map()은 Javascript ES6의 key-value 쌍의 컬렉션이다. key는 중복될 수 없다. key를 이용해 값을 찾거나(get), 설정(set)할 수 있다. key로 사용할 수 있는 데이터 형은 string, symbol, object, function이며 number는 사용할 수 없다. 엔트리 조회와 추가 - map.get(), map.set() const menu = new Map() menu.set('001', {code: "001", name: "콜라"}) menu.set('002', {code: "002", name: "환타"}) console.log(menu.get('001'))// {code: '001', name: '콜라'} // const lastName = new..
Set()Array.from과 spread syntax인 ...을 사용 가능하다.const x = new Set([ 1, 2, 3, 4 ]);const y = Array.from(x);console.log(y); // = [ 1, 2, 3, 4 ]const z = [ ...x ];console.log(z); // = [ 1, 2, 3, 4 ] Met()map도 Array.from과 spread syntax(...)의 사용이 가능하다.const map = new Map([[ 1, 'one' ],[ 2, 'two' ]]);const newArr1 = [ ...map ]; const newArr2 = Array.from( map );console.log(newArr1); // [[ 1, 'one' ],..
여태 express 길게 공부해왔다. 자유도는 정말 좋았지만 뭔가 딱딱함? 이 느껴지지 않았다. 그래서 NestJS라는 것을 알고 이를 공부해보려고 한다. 사실 TypeScript 공부도 이를 위한 빌드업이라고 할까...? 우선 NestJS란 뭔지 공식 사이트에서 간단하게 알아봤다.Nest (NestJS)는 효율적이고 확장 가능한 Node.js 서버 측 애플리케이션을 구축하기 위한 프레임워크입니다.이것은 알겠다. 큰 특징은 다음에 있다. - 프로그레시브 자바스크립트 사용- TypeScript로 빌드되고 완벽하게 지원- OOP (객체 지향 프로그래밍 Object Oriented Programming)- FP (함수형 프로그래밍 Functional Programming)- FRP (함수형 반응형 프로그래밍 ..