자바스크립트 비동기적 프로그래밍

2018-02-28

자바스크립트 애플리케이션은 단일 스레드에서 동작한다. 즉, 자바스크립트는 한 번에 한 가지 일만 할 수 있다. 자바스크립트가 싱글 스레드라고 할 수 있는 일이 제한된다고 느낄지도 모르지만, 사실 멀티스레드 프로그래밍에서 겪어야 하는 골치 아픈 문제를 신경쓰지 않아도 된다는 장점이 있다. 물론 부드럽게 동작하는 소프트웨어를 만들기 위해서는 사용자의 입력 뿐만 아니라 여러 문제를 비동기적 관점에서 생각해야 한다. 자바스크립트의 비동기적 프로그래밍에는 뚜렷이 구분되는 세 가지 패러다임이 있다. 이는 콜백, 프로미스(promise), 제너레이터이다.

Read More

자바스크립트 함수와 추상적 사고

2018-02-27

1. 자바스크립트 함수 특징

  • 함수를 가리키는 변수를 만들어 별명을 정할 수 있다.
  • 배열에 함수를 넣을 수 있다. 물론 다른 타입의 데이터와 섞일 수 있다
  • 함수를 객체의 프로퍼티로 사용할 수 있다
  • 함수를 함수에 전달할 수 있다
  • 함수가 함수를 반환할 수 있다
  • 함수를 매개변수로 받는 함수를 반환할 수 있다.

Read More

자바스크립트 이터레이터와 제너레이터

2018-02-26

1. 이터레이션 프로토콜

1-1. iterable

이터러블은 순회 가능한 자료 구조이다. Symbol.iterator를 key로 사용한 메서드를 구현하는 것에 의해 순회 가능한 자료구조인 이터러블이 된다.

ES6에서 제공하는 빌트인 이터러블은 아래와 같다.

  1. Array: Array.prototype[Symbol.iterator]
  2. String: String.prototype[Symbol.iterator]
  3. Map: Map.prototype[Symbol.iterator]
  4. Set: Set.prototype[Symbol.iterator]
  5. DOM data structures: NodeList.prototype[Symbol.iterator], HTMLCollection.prototype[Symbol.iterator]
Read More