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

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

(11개의 수강평)

398명의 수강생
42% 할인 26일 남음

44,000원77,000원

유인동
평생
초급, 중급
수료증
71개 수업, 총 8시간 7분
Wishlist

함수형 프로그래밍과 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분의 내용에서도 코드는 완전히 새로운 코드입니다. 커리큘럼을 통해 확인해보시면 됩니다! :)

연관된 강좌



지식공유자 소개

유인동

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

교육과정

함수형 자바스크립트 기본기
강의자료
평가와 일급
03 : 00
일급 함수
02 : 00
고차 함수
06 : 00
ES6에서의 순회와 이터러블:이터레이터 프로토콜
기존과 달라진 ES6에서의 리스트 순회
03 : 00
Array, Set, Map을 통해 알아보는 이터러블/이터레이터 프로토콜
16 : 00
사용자 정의 이터러블, 이터러블/이터레이터 프로토콜 정의
10 : 00
전개 연산자
02 : 00
제너레이터와 이터레이터
제너레이터와 이터레이터
04 : 00
odds
07 : 00
for...of, 전개 연산자, 구조 분해, 나머지 연산자
02 : 00
map, filter, reduce
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
코드를 값으로 다루어 표현력 높이기
go
05 : 00
pipe
04 : 00
go를 사용하여 읽기 좋은 코드로 만들기
02 : 00
go+curry를 사용하여 더 읽기 좋은 코드로 만들기
07 : 00
함수 조합으로 함수 만들기
03 : 00
장바구니 예제
총 수량, 총 가격
09 : 00
HTML로 출력하기
11 : 00
지연성 1
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
지연성 2
결과를 만드는 함수 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
비동기:동시성 프로그래밍 1
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
비동기:동시성 프로그래밍 2
지연 평가 + 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
비동기:동시성 프로그래밍 3
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
마무리하며

수강 후기

5.0
11개의 수강평
함돈범 20일 전
좋은강의 감사합니다.
유인동 프로필

유인동 20일 전
재밌게 들어주셔서 고맙습니다.

iternity 2달 전
정말 좋은 강의였습니다. 저는 컴퓨터 학부나와서 그저 학교수업만 따라가고 졸업해서 뒤늦게 js에 흥미를 느껴서 입문하고 강의를 듣고있는 학생인데요. 이 강의를 들으면서 학부때 숙제하듯이 마지못해 하던 언어수업과 남는것도 없었던 코딩이 이렇게 멋있게 보이게 되서 감탄했습니다. 그야말로 인생이 바뀐것같네요. 저는 함수형 프로그래밍 패턴이 앞으로의 패러다임이 될것같아 이쪽을 더 열심히 파보고싶은데요. 개발쪽에 대해 아는 게 그다지 많지않은데 이쪽에서 이런 개발을하면서 취업하기 위해서는 어떤 공부를 하면 좋을까요? 너무 막연한 질문을 해서 죄송합니다.
유인동 프로필

유인동 2달 전
감동이네요. 인생이 바뀐 것 같으시다고 해주시다니.. 강의를 만든 것이 정말 큰 보람으로 다가오네요. 저도 개인적인 생각으로는 조직에 따라 함수형 스타일을 코드로 어느 부분까지 커버할 것인가는 차이가 있겠지만 보편적으로는 제어문 부분에 대해서는 함수형 프로그래밍이 거의 대체할 것으로 생각합니다. 취업을 위해서는 함수형 외에도 다양하게 공부해보실 것을 추천합니다. 그리고 언어적으로는 html, css, js, sql, nodejs 정도는 공부하시는게 좋습니다. 개발이 재밌고 멋지게 보인다면 정말 훌륭한 개발자가 되실거라 생각됩니다! 화이팅!

마상범 마 2달 전
인생 강좌입니다. 정말 인생 강좌라고 할 수 있습니다. 함수형 프로그래밍에 대해서 공부하기도 막막하고 적용하기도 막막했는데 이 강좌를 듣고 눈이 떠진거같습니다. 정말 감사합니다!
유인동 프로필

유인동 2달 전
눈이 떠지셨군요! 정말 고맙습니다. 함수형 프로그래밍과 함께 즐거운 코딩 생활 되세요 :)

차현진 3달 전
고맙습니다!!! 강좌를 계속 반복하면서 듣고 있습니다. 제가 짰던 코드를 보니 너무 부끄러워집니다. 막연하게만 생각했던 추상화 레벨이나, 비동기+지연 처리에 대해서 "일단"은 제 스스로에게 문제 의식을 불러 일으켰습니다. 혹시 추천해 주실만한 함수형 개념이 제대로 구현된 javascript open source 프로젝트가 있을까요? 실무 위주의 다음 강좌도 기대되네요.
유인동 프로필

유인동 3달 전
리뷰 고맙습니다. 저도 예전에 제가 작성한 코드를 보면 항상 부끄럽습니다. 새 강의도 기대해주신 다니 감사하네요. 함수형 자바스크립트 오픈소스는 아래 프로젝트를 소개해드리고 싶습니다. https://github.com/marpple/FxJS 고맙습니다.

홍석훈 4달 전
이젠 비동기도 함수형으로 가능하네요 동기코드만 함수형으로 짜고, 비동기는 삽질 잔뜩하면서 이쁘게 만들기 힘드네. 자바스크립트의 한계인가 생각했습니다. 역시 실력의 문제였네요. 비동기도 이런 간단(?)한 아이디어로 함수형으로 개발이 가능했다니... 강의 보면서 이거 최적화 시킬때는 어려운 부분도 있겠는걸, 결국 그런 부분은 넘어가는구나 의심을 하고 저 나름데로 요상하게 문제해결을 해봤는데, 후반부 가니깐 아름답게 해결을 하시더군요. 저의 기본기의 부족을 절실히 느꼈습니다. 강의보면서 조금씩 실무에 적용하는데, 아주 큰 도움이 됩니다. 우선 버그가 엄청줄었고, 테스트코드 만들기도 너무나도 쉬워졌습니다. 좋은 강의 감사드립니다.
유인동 프로필

유인동 4달 전
강의를 상세히 들어주셨네요! 경험을 함께 적어주시고 강의를 통해 개선된 부분도 있다 말씀해주시니, 강의를 제작한 것에 대해 정말 큰 보람을 느낍니다. 상세히 들어주시고 실무에 적용한 사례까지.. 정말 고맙습니다.

Gunho Lee 4달 전
좋은 강의 감사합니다. 자바스크립트(ES6)가 기본적으로 제공하는 표준 기능만으로도 복잡한 현실 문제를 잘 해결할 수 있다는 데 놀랐습니다. 강의를 따라가면 함수형 프로그래밍을 위한 라이브러리 하나를 만든 셈이 됩니다. 해당 라이브러리로 현실 세계의 복잡한 문제를 쉽게 풀어나갈 수 있고 무엇보다 매우 가볍게 해당 코드를 구성했다는 것이 놀라웠습니다. 항상 좋은 강의 감사합니다.
유인동 프로필

유인동 4달 전
인사이트가 있는 리뷰 정말 고맙습니다. ES6의 이터러블과 제너레이터, Promise를 잘 조합하면 복잡한 문제를 정말 쉽고 간결하게 풀 수 있다는 것을 전달하고 싶었는데, 전달하고 싶었던 내용이 전달이 되었다고 하니 정말 기쁩니다. 다음 강의는 현실 문제들을 해결하는 사례들을 더 많이 담은 컨텐츠로 구성해보려고 하고 있습니다. 고맙습니다.

정재윤 4달 전
새로운 세상. 새로운 세상에 초대해 주셔서 감사합니다
유인동 프로필

유인동 4달 전
강의 모두 잘 들어주셔서 고맙습니다. :>

hjoo 4달 전
자바스크립트의 바이블 같은 강좌 입니다. 저만보게 비공개 하고 싶은 강좌 입니다..ㅋㅋㅋㅋㅋㅋㅋㅋ 농담이 섞여 있긴 하지만, 그 정도로 저만 보고 싶은 좋은 강좌 입니다. JS 개발자로서, 그리고 JS 개발자가 아니라도 보편적으로 좋은 코드를 남기고 싶은 개발자로서 꼭 봐야할 바이블 같은 강좌라고 생각합니다. 함수에 대한 기본 개념을 정확히 잡아줘 프로그래밍시 좀 더 수학적으로? 원자 단위로 사고할 수 있게 방향을 잡아주는 점이 특히 좋았구요. 그리고 지연성, 동시성에 대한 정확한 개념을 알려주는 부분도 개인적으로 큰 도움이 되었습니다. 지금 놓여진 기능을 완수해야 되는 임무 이상의 더 좋은 코드를 만들고 효율적인 프로그래밍을 하고 싶은 사람이라면 꼭 들어보고 참고해봐야 할 강좌라고 생각이 듭니다. 우짜든 꼭 들어볼만한 강좌입니다. 특히 JS 개발자는 세번 들으세요. 세번 들은 사람은 인프런에 꼭 지원해 주세요.
유인동 프로필

유인동 4달 전
자바스크립트의 바이블까지는 전혀 아니지만 ㅠ 강의 들어주시고 좋게 평가해주셔서 정말 감사합니다. :)

임형빈 4달 전
좋은 강좌입니다. 특히 지연평가와 동시성 프로그래밍 부분에 대해서 잘 모르고 있었는데 개념적으로도 실제 사용예에서도 아주 좋았습니다.
유인동 프로필

유인동 4달 전
지연성과 동시성 프로그래밍 부분을 잘 익히게 되면 프로그래밍이 더 재밌어지는 것 같습니다. 강의 들어주셔서 정말 감사합니다.

박시중 박 5달 전
휼륭합니다. 자바스크립트에 대한 더 깊은 이해 뿐만 아니라, 비동기에 대한 이해까지.. 그리고 함수형프로그래밍의 장점 및 편리함을 즉각 사용할 수 있도록 도와줍니다. 고급 개발자로의 발돋움을 위해서는 꼭 접해야만 하는 느낌.
유인동 프로필

유인동 4달 전
고맙습니다. 도움이 되었다 하시니 다행입니다. 앞으로도 많은 컨텐츠 공유할 수 있도록 하겠습니다. :)

서상연 5달 전
ES6에서 함수형 프로그래밍에 대해서 잘 배웠습니다. 이전의 함수형프로그램밍 강의와 저서하신 도서를 보면서 자바스크립트에서 함수형 프로그램밍에 대해서 잘 배웠습니다. 이번강의도 기대한것 이상으로 함수형 프로그램밍과 또한 ES6에서 기존에 작성했던 함수들이 보다 더 쉽게 풀어지는지 알아볼수 있었습니다. 실제 업무에서 적용하는 예제 중심의 강의도 기대해 보겠습니다. 강의 잘 들었습니다.
유인동 프로필

유인동 5달 전
고맙습니다! 영상이 그래도 짧지 않은 시간인데 벌써 다 들어주시다니 정말 감사합니다. 이전 강의와 책까지 봐주셨다니 정말 감사하네요. 말씀 주신대로 차차 함수형 ES6+와 바닐라JS를 기반으로하는 프론트엔드 프로그래밍과, Node.js에서 자바스크립트의 내장 값을 기반으로한 데이터 베이스와 뷰를 다루는 백엔드 프로그래밍 등도 다뤄갈 예정입니다. 아래 링크는 올해초쯤에 온라인 방송으로 가볍게 진행했던 내용인데, 라이브러리나 프레임워크 없이 ES6+와 Web APIs(바닐라JS)로 간단한 이슈 트래커 앱을 만드는 방송입니다. https://github.com/indongyoo/issue-tracker-prototype 잘 정제된 컨텐츠를 만들기까지는 오래걸릴거 같아 링크를 남겨둡니다. 감사합니다.