함수형 프로그래밍과 JavaScript ES6+

함수형 프로그래밍과 JavaScript ES6+

(28개의 수강평)

817명의 수강생
55,000원
지식공유자 · 유인동
71회 수업 · 총 8시간 7분 수업
평생 무제한 시청
수료증 발급 강의
수강 난이도 '초급, 중급'

이런 걸 배울 수 있어요

  • 함수형 프로그래밍 방법론
  • 최신 Javascript 프로토콜들의 의미와 사용법
  • 동시성, 지연성, 함수 합성.. 등 고급 프로그래밍 기법들
  • 비동기, 에러 핸들링 방법론

함수형 프로그래밍과 JavaScript ES6+

ES6+와 함수형 프로그래밍을 배울 수 있는 강의입니다. 이 강좌에서는 ES6+의 이터러블/이터레이터/제너레이터 프로토콜을 상세히 다루고 응용합니다. 이터러블을 기반으로한 함수형 프로그래밍, map/filter/reduce, 파이프라인, 제너레이터를 통한 지연 평가, Promise 합성, 동시성/병렬성, async/await와 비동기 에러 핸들링 등을 배울 수 있습니다. 이 강좌를 습득하고 연습하여 중급 자바스크립트 개발자로 성장하세요!

도움이 되는 분들

  • 함수형 프로그래밍을 배우고 싶은 분
  • ES6+의 기술들을 깊게 다뤄보고 싶은 분
  • 이터러블/이터레이터/제너레이터가 어려웠던 분
  • 비동기 프로그래밍을 능숙하게 하고 싶은 분
  • 지연성/동시성/병렬성에 대해 상세히 알고 싶은 분
  • 에러 핸들링을 어떻게 해야 하는지 어려웠던 분
  • 간결하고 우아한 코드를 작성하고 싶은 분

지식 공유자 한마디

'SICP(컴퓨터 프로그램의 구조와 해석)'나, '프로그램 디자인 어떻게 할 것인가' 같은 책들은 리스프의 매력과 함수형 프로그래밍의 이점을 한 껏 전달주며, '클로저 프로그래밍의 즐거움]'은 클로저와 함수형 프로그래밍이 즐겁다 말합니다. 저는 ES6+도 못지 않게 매력적인 언어라고 생각합니다. ES6+에서의 함수형 프로그래밍이 가진 매력과 이점을 전달하고 싶어 이 강의를 제작하게 되었습니다. 자바스크립트가 ES6+가 되면서 개발자들이 언어를 가지고 놀 수 있는 재밌는 규약들이 많이 만들어졌습니다. 또한 ES6+는 높은 수준의 함수형 프로그래밍을 할 수 있는 많은 기반을 갖추고 있습니다.

함수형 프로그래밍은 복잡한 문제를 간결한 코드로 해결하는 동시에 함수/비동기/지연성/동시성 등을 값으로 다뤄 적절한 시점에 평가하는식으로 높은 효율성을 얻는 특별한 아이디어들을 가지고 있습니다. 그리고 이것들은 너무나 재밌습니다. 이 강의에도 재밌는 코드들을 많이 담았습니다. 그 중 제너레이터를 통해 만든 지연된 이터레이터와 Promise를 합성한 코드가 특히 그렇다고 생각합니다. 이를 기반으로 Clojure의 코어 라이브러리인 reducers 같은 함수 세트도 ES6+로 구성해봅니다. 

이 자바스크립트 코드들은 아주 짧고 간결하며 잘 동작합니다! 좋은 표현력으로 무장한 ES6+와 간결하고 유연한 코드를 제공하는 함수형 프로그래밍을 즐겨보세요. :)
함수형 프로그래밍함수형 프로그래밍

기존에 올라온 무료 강의와 무엇이 다른가요?

약 8시간 7분의 내용 중 기존 강의와 중복되는 내용은 총 62분 정도이며, 나머지 7시간의 내용은 모두 새로운 내용입니다. 집필한 책에도 없는 내용이며, 모두 완전히 새로운 코드들 입니다. 그렇다고 기존 강의를 들으실 필요는 없습니다. 기존 강의 내용에서 군더더기를 덜어내고 62분으로 압축했습니다. 62분의 내용에서도 코드는 완전히 새로운 코드입니다. 커리큘럼을 통해 확인해보시면 됩니다! :)

연관된 강좌



수강 대상

  • 함수형 프로그래밍을 배우고 싶은 분
  • ES6+의 기술들을 깊게 다뤄보고 싶은 분
  • 이터러블/이터레이터/제너레이터가 어려웠던 분
  • 비동기 프로그래밍을 능숙하게 하고 싶은 분
  • 지연성/동시성/병렬성에 대해 상세히 알고 싶은 분
  • 에러 핸들링을 어떻게 해야 하는지 어려웠던 분

선수 지식

  • JS 에 대한 기본 지식이 있는 분
  • 고급 프로그래머로 성장하고 싶은 분
  • 비동기, 에러 처리에 어려움을 느끼는 개발자

지식공유자 소개

  • 현재 MARPPLE CTO
  • 전 카카오, 엔씨소프트 오픈마루 스튜디오 개발자
  • 함수형 라이브러리리 FxJS 개발
  • 함수형 데이터베이스 쿼리 빌더 MQL.js 개발
  • 함수형 DOM 조작 라이브러리 FxJS-DOM 개발
  • 저서 함수형 자바스크립트 프로그래밍
  • 함수형 자바스크립트 페이스북 그룹 운영
  • 네이버, 카카오 페이지 등 함수형 프로그래밍 기술 교육, 기업 출강
  • 다수의 온/오프라인 강의

교육과정

모두 펼치기 71 강의 8시간 7분
섹션 0. 함수형 자바스크립트 기본기
4 강의 11 : 00
강의자료
평가와 일급
03 : 00
일급 함수
02 : 00
고차 함수
06 : 00
섹션 1. ES6에서의 순회와 이터러블:이터레이터 프로토콜
4 강의 31 : 00
기존과 달라진 ES6에서의 리스트 순회
03 : 00
Array, Set, Map을 통해 알아보는 이터러블/이터레이터 프로토콜
16 : 00
사용자 정의 이터러블, 이터러블/이터레이터 프로토콜 정의
10 : 00
전개 연산자
02 : 00
섹션 2. 제너레이터와 이터레이터
3 강의 13 : 00
제너레이터와 이터레이터
04 : 00
odds
07 : 00
for...of, 전개 연산자, 구조 분해, 나머지 연산자
02 : 00
섹션 3. map, filter, reduce
7 강의 37 : 00
map
06 : 00
이터러블 프로토콜을 따른 map의 다형성 1
06 : 00
이터러블 프로토콜을 따른 map의 다형성 2
03 : 00
filter
05 : 00
reduce
07 : 00
reduce 2
02 : 00
map+filter+reduce 중첩 사용과 함수형 사고
08 : 00
섹션 4. 코드를 값으로 다루어 표현력 높이기
5 강의 21 : 00
go
05 : 00
pipe
04 : 00
go를 사용하여 읽기 좋은 코드로 만들기
02 : 00
go+curry를 사용하여 더 읽기 좋은 코드로 만들기
07 : 00
함수 조합으로 함수 만들기
03 : 00
섹션 6. 지연성 1
11 강의 71 : 00
range와 느긋한 L.range
13 : 00
range와 느긋한 L.range 테스트
02 : 00
take
06 : 00
제너레이터/이터레이터 프로토콜로 구현하는 지연 평가
04 : 00
L.map
04 : 00
L. filter
02 : 00
range, map, filter, take, reduce 중첩 사용
16 : 00
L.range, L.map, L.filter, take 의 평가 순서
14 : 00
엄격한 계산과 느긋한 계산의 효율성 비교
05 : 00
map, filter 계열 함수들이 가지는 결합 법칙
03 : 00
ES6의 기본 규악을 통해 구현하는 지연 평가의 장점
02 : 00
섹션 7. 지연성 2
10 강의 66 : 00
결과를 만드는 함수 reduce, take
03 : 00
queryStr 함수 만들기
04 : 00
Array.prototype.join 보다 다형성이 높은 join 함수
08 : 00
take, find
08 : 00
L.map, L.filter로 map과 filter 만들기
06 : 00
L.flatten, flatten
06 : 00
yield *, L.deepFlat
L.flatMap, flatMap
12 : 00
2차원 배열 다루기
06 : 00
이터러블 중심 프로그래밍 실무적인 코드
13 : 00
섹션 8. 비동기:동시성 프로그래밍 1
7 강의 69 : 00
callback과 Promise
07 : 00
비동기를 값으로 만드는 Promise
06 : 00
값으로서의 Promise 활용
08 : 00
합성 관점에서의 Promise와 모나드
16 : 00
Kleisli Composition 관점에서의 Promise
16 : 00
go, pipe, reduce에서 비동기 제어
13 : 00
promise.then의 중요한 규칙
03 : 00
섹션 9. 비동기:동시성 프로그래밍 2
10 강의 86 : 00
지연 평가 + Promise - L.map, map, take
12 : 00
Kleisli Composition - L.filter, filter, nop, take
16 : 00
reduce에서 nop 지원
09 : 00
지연 평가 + Promise의 효율성
03 : 00
지연된 함수열을 병렬적으로 평가하기 - C.reduce, C.take [1]
11 : 00
지연된 함수열을 병렬적으로 평가하기 - C.reduce, C.take [2]
14 : 00
즉시 병렬적으로 평가하기 - C.map, C.filter
03 : 00
즉시, 지연, Promise, 병렬적 조합하기
08 : 00
코드 간단히 정리
03 : 00
Node.js에서 SQL 병렬 평가로 얻은 효율
07 : 00
섹션 10. 비동기:동시성 프로그래밍 3
8 강의 62 : 00
async:await
11 : 00
[QnA] Array.prototype.map이 있는데 왜 FxJS의 map 함수가 필요한지?
11 : 00
[QnA] 이제 비동기는 async:await로 제어할 수 있는데 왜 파이프라인이 필요한지?
20 : 00
[QnA] async:await와 파이프라인을 같이 사용하기도 하는지?
02 : 00
[QnA] 동기 상황에서 에러 핸들링은 어떻게 해야하는지?
05 : 00
[QnA] 비동기 상황에서 에러 핸들링은 어떻게 해야하는지?
04 : 00
[QnA] 동기/비동기 에러 핸들링에서의 파이프라인의 이점은?
09 : 00
마무리하며

공개 일자

2018년 12월 8일 (마지막 업데이트 일자 : 2019년 1월 15일)

수강 후기

4.9
28개의 수강평
조현우 Jo 6달 전
반복적인 코딩이 아닌 진짜 코딩을 하고 싶은 분들에게 추천합니다.
유인동 프로필

유인동 6달 전
추천해주셔서 고마워요 :)

임성훈 2달 전
강의는 짧고 간결하고 군더더기가 없습니다. 근데 그깊이는 정말 최고입니다... 이짧은강의에 얼마나 많은 고민과 준비가 있는지 느껴지며 근본적으로 접근하여 이해하기도 매우좋습니다.
유인동 프로필

유인동 2달 전
ㅠㅡㅠ 감동이네요. 감사합니다!

지식공유자 되기
많은 사람들에게 배움의 기회를 주고,
경제적 보상을 받아보세요.
지식공유참여
기업 교육을 위한 인프런
“인프런 비즈니스” 를 통해 모든 팀원이 인프런의 강의들을
자유롭게 학습하는 환경을 제공하세요.
인프런 비즈니스