# 함수 특징 (4)
출처: https://medium.com/ibare-story/e252506f8525
17. 클로저
- 함수와 함수가 접근할 수 있는 주변 환경으로 구성된 특별한 개념
- 함수 multiple은 익명 함수를 반환
- 반환되는 익명 함수의 바깥 함수 multiple을 걷어내면 보통의 익명 함수를 할당하는 대입문과 같다
- 지역 변수 x는 multiple을 호출하고 반환해도 존재하며 그 값은 익명 함수가 반환되는 시점의 x값인 1이다
=> 이것이 클로저!!
18. 콜백 함수
- 자바스크립트의 함수는 1급 함수로서 변수에 할당 가능
=> 함수를 함수의 인수로 전달할 수 있다는 의미
- 함수의 호출이 비동기 방식으로 작동되어야 할 때 이 콜백 함수를 이용
- 인수로 받은 함수를 콜백 함수라 함
=> 특정 시간 이후에 호출되어야 하거나,
=> 네트워크 자원을 호출하여 반환값을 받는것,
=> 특정 이벤트가 발생했을 때 호출되어야 하는 함수(이벤트 핸들러)와 같이 함수 호출의 시기를 호출하는 시점에 특정할 수 없을때
콜백 함수 패턴이 유용하게 쓰임
19. 콜백 지옥
- 간단한 비동기 작업은 콜백 패턴이 좋다
- 비동기 작업이 중첩되는 상황에서는 nono
- 백앤드 자바스크립트인 node 어플리케이션에서 콜백과 콜백이 중첩되는 상황 자주 발생
=> 비동기가 중첩된 흐름 제어는 콛의 가독성을 떨어뜨리고
=> 테스트를 어렵게 만든다
20. 흐름 제어 라이브러리
- 비동기 콜백과 흐름 제어(병렬 실행, 순차 실행)를 구현하기 위해 중첩된 콜백을 사용하지 않아도 되는 여러 대안 라이브러리가 존재함
1) async https://github.com/caolan/async
2) step https://github.com/creationix/step
3) q https://github.com/kriskowal/q
4) when https://github.com/cujojs/when
5) RSVP https://github.com/tildeio/rsvp.js
21. Promise & Generator
- 비동기 흐름 제어 코드를 직관적이고 아름답게 작성할 수 있도록 지원하는 자바스크립트의 네이티브 구현
=> ES 6 스펙으로 구현
=> 최신 브라우저와 node에서 동작
=> 자세한 내용은 아래 링크 참조
* JavaScript Promises
'javascript' 카테고리의 다른 글
객체 공부 (2) (0) | 2017.09.13 |
---|---|
객체 공부 (0) | 2017.09.13 |
함수의 특징 (3) (0) | 2017.09.12 |
함수의 특징 (2) (0) | 2017.09.12 |
함수의 특징 (1) (0) | 2017.09.12 |