본문 바로가기

분류 전체보기

(14)
함수형 프로그래밍 - (3) map, filter, reduce Array 객체가 이터러블/이터레이터 프로토콜을 따른다는 점을 이용하여, Array 내부의 함수들을 구현해보면서 이터러블 객체를 순회하는 방법들에 대해 알아보겠다. 1. map Array.map() 함수를 Array 객체가 이터러블/이터레이터 프로토콜을 따르고 있다는 점을 이용해서 다음과 같이 구현할 수 있다. Array.map()은 인자로 함수를 받으므로, 동일하게 인자로 함수를 받도록 하고 이터러블한 객체를 추가로 받으면서 새로운 배열은 기존 원소들을 함수에 넣은 결과를 담은 새로운 배열을 반환하면 된다. const map = (f, iter) => { const res = []; for (const p of iter) { res.push(f(p)); } return res; }; 2. filter ..
함수형 프로그래밍 - (2) 순회와 Iterable/Iterator 프로토콜 1. for ... of 기존 ES5에서와 달리, ES6에서는 for ... of로 배열, Map, Set 등 다양한 데이터 구조를 순회할 수 있다. (가능하다면) // Array const arr = [1, 2, 3]; for (const a of arr) console.log(a); // Set const aSet = new Set([1, 2, 3]); for (const a of aSet) console.log(a); // Map const map = new Map([ ["a", 1], ["b", 2], ["c", 3] ]); for (const a of map) console.log(a); 단순히 for ... of가 각 데이터를 인덱싱을 통해 순회하는 것 처럼 보일 수 있는데, 인덱싱으로 데이터..
함수형 프로그래밍 - (1) 평가, 일급, 일급 함수, 고차 함수 1. 평가 코드가 평가되어 값을 만드는 것 // true console.log([1, 1 + 2 + 3] === [1, 5]); 2. 일급 (1) 값으로 다룰 수 있다. (평가) (2) 변수에 담을 수 있다. const a = 10; // 10 console.log(a); (3) 함수의 인자로 사용될 수 있다. const a = 1; const b = 2; const add = (a, b) => a + b; // 3 console.log(add(a, b)); (4) 함수의 결과로 사용될 수 있다. const a = 1; const b = 2; const add = (a, b) => a + b; const c = add(2, 3); // 5 console.log(c); 3. 일급 함수 (1) 함수를 값으로..
스트림 코딩 (Stream Coding) - (4) Transform * 이 글은 Mario Casciaro, Luciano Mammino가 저서한 서적을 참고한 게시글입니다. 서적 정보 : http://www.kyobobook.co.kr/product/detailViewKor.laf?mallGb=KOR&ejkGb=KOR&barcode=9788931464283 Node.js 디자인 패턴 바이블 - 교보문고 검증된 패턴과 기술을 이용한 수준 높은 Node.js | 이 책은 이미 Node.js를 처음 접한 후 이제 생산성, 디자인 품질 및 확장성 측면에서 최대한 활용하고자 하는 개발자를 대상으로 합니다. 이 책은 www.kyobobook.co.kr 지난 Writable 스트림에 이어 이번엔 transform 스트림에 대해 알아보도록 하겠다. 0. Duplex 스트림 Trans..
스트림 코딩 (Stream Coding) - (3) Writable * 이 글은 Mario Casciaro, Luciano Mammino가 저서한 서적을 참고한 게시글입니다. 서적 정보 : http://www.kyobobook.co.kr/product/detailViewKor.laf?mallGb=KOR&ejkGb=KOR&barcode=9788931464283 Node.js 디자인 패턴 바이블 - 교보문고 검증된 패턴과 기술을 이용한 수준 높은 Node.js | 이 책은 이미 Node.js를 처음 접한 후 이제 생산성, 디자인 품질 및 확장성 측면에서 최대한 활용하고자 하는 개발자를 대상으로 합니다. 이 책은 www.kyobobook.co.kr 이번엔 Writable 스트림에 대해 알아보자. 0. write(), end() Writable 스트림은 write()함수로 밀어..
스트림 코딩 (Stream Coding) - (2) Readable (Flowing vs non-Flowing) * 이 글은 Mario Casciaro, Luciano Mammino가 저서한 서적을 참고한 게시글입니다. 서적 정보 : http://www.kyobobook.co.kr/product/detailViewKor.laf?mallGb=KOR&ejkGb=KOR&barcode=9788931464283 Node.js 디자인 패턴 바이블 - 교보문고 검증된 패턴과 기술을 이용한 수준 높은 Node.js | 이 책은 이미 Node.js를 처음 접한 후 이제 생산성, 디자인 품질 및 확장성 측면에서 최대한 활용하고자 하는 개발자를 대상으로 합니다. 이 책은 www.kyobobook.co.kr 스트림 코어 모듈에서 사용하는 4가지 기본 추상 클래스 (Readable, Writable, Duplex, Transform) 중..
스트림 코딩 (Stream Coding) - (1) 버퍼(buffer)와 스트림(stream) * 이 글은 Mario Casciaro, Luciano Mammino가 저서한 서적을 참고한 게시글입니다. 서적 정보 : http://www.kyobobook.co.kr/product/detailViewKor.laf?mallGb=KOR&ejkGb=KOR&barcode=9788931464283 Node.js 디자인 패턴 바이블 - 교보문고 검증된 패턴과 기술을 이용한 수준 높은 Node.js | 이 책은 이미 Node.js를 처음 접한 후 이제 생산성, 디자인 품질 및 확장성 측면에서 최대한 활용하고자 하는 개발자를 대상으로 합니다. 이 책은 www.kyobobook.co.kr 이번엔 스트림 & 파이프 패턴에 대해 여러 글에 나누어 정리해보고자 한다. Node.js에서 굉장히 중요해 보이지만, 은근 다루기..
콜백(Callback)의 비동기 Control flow 패턴 (2) - 순차 반복(sequential iteration) * 이 글은 Mario Casciaro, Luciano Mammino가 저서한 서적을 참고한 게시글입니다. 서적 정보 : http://www.kyobobook.co.kr/product/detailViewKor.laf?mallGb=KOR&ejkGb=KOR&barcode=9788931464283 Node.js 디자인 패턴 바이블 - 교보문고 검증된 패턴과 기술을 이용한 수준 높은 Node.js | 이 책은 이미 Node.js를 처음 접한 후 이제 생산성, 디자인 품질 및 확장성 측면에서 최대한 활용하고자 하는 개발자를 대상으로 합니다. 이 책은 www.kyobobook.co.kr 지난 글에서는 웹 스파이더의 콜백 지옥을 해소하여 리팩토링하는 작업을 했었다. 이번엔 순차 반복(sequential iterati..
콜백(Callback)의 비동기 Control flow 패턴 (1) - 콜백 지옥(Callback Hell) * 이 글은 Mario Casciaro, Luciano Mammino가 저서한 서적을 참고한 게시글입니다. 서적 정보 : http://www.kyobobook.co.kr/product/detailViewKor.laf?mallGb=KOR&ejkGb=KOR&barcode=9788931464283 Node.js 디자인 패턴 바이블 - 교보문고 검증된 패턴과 기술을 이용한 수준 높은 Node.js | 이 책은 이미 Node.js를 처음 접한 후 이제 생산성, 디자인 품질 및 확장성 측면에서 최대한 활용하고자 하는 개발자를 대상으로 합니다. 이 책은 www.kyobobook.co.kr 콜백의 디자인 패턴에 대해 공부하면서 정리해보았다. 콜백 지옥부터 병렬실행, TaskQueue 적용 정도까지 살펴볼까 한다. 0...
모듈의 순환 종속성으로 알아보는 require() vs import * 이 글은 Mario Casciaro, Luciano Mammino가 저서한 서적을 참고한 게시글입니다. 서적 정보 : http://www.kyobobook.co.kr/product/detailViewKor.laf?mallGb=KOR&ejkGb=KOR&barcode=9788931464283 Node.js 디자인 패턴 바이블 - 교보문고 검증된 패턴과 기술을 이용한 수준 높은 Node.js | 이 책은 이미 Node.js를 처음 접한 후 이제 생산성, 디자인 품질 및 확장성 측면에서 최대한 활용하고자 하는 개발자를 대상으로 합니다. 이 책은 www.kyobobook.co.kr require와 import 함수(정확하게는 구문이 맞는 표현이지 싶다)의 차이에 대해 공부하게 되었는데, 이를 순환 종속성을 기..