Thumbnail
BEST
개발 · 프로그래밍 프로그래밍 언어

함수형 프로그래밍과 JavaScript ES6+ 응용편 대시보드

(4.9)
100개의 수강평 ∙  3,063명의 수강생

44,000원

지식공유자: 유인동
총 48개 수업 (6시간 2분)
수강기한: 
무제한
수료증: 발급
난이도: 
입문
-
초급
-
중급이상
지식공유자 답변이 제공되는 강의입니다
폴더에 추가 공유

중급자를 위해 준비한
[웹 개발, 프로그래밍 언어] 강의입니다.

이 강좌는 함수형 프로그래밍과 JavaScript ES6+의 시리즈 강좌로 다양한 응용 사례를 다룹니다.

✍️
이런 걸
배워요!
함수형 프로그래밍
이터러블 프로그래밍
동시성 프로그래밍
프론트엔드에서 함수형 프로그래밍 응용하기
백엔드에서 함수형 프로그래밍 응용하기

생산성을 높이는 함수형 코드 작성!
이터러블 프로그래밍을 응용해요 👊

무엇을 배우나요? 📖

자바스크립트는 ES6+가 되면서 언어에서 이터러블 프로토콜을 특별히 강조하고 있습니다. 이터러블 프로그래밍을 통해 명령형 코드를 대체합니다. 심볼/이터러블/이터레이터/제너레이터, Promise/async/await 등의 프로토콜이 강조되고 있습니다. 이후 버전에서도 async/await/for...await-of/Async Iterator 등으로 프로토콜이 발전하고 있습니다.

이 강의는 '함수형 프로그래밍과 JavaScript ES6+'의 후속 강의로 함수형 프로그래밍, 이터러블 프로그래밍을 다양하게 응용합니다. 이 강의를 들으면 에러가 나기 쉬운 i++, j++, if, for, break 등의 명령형 코드를 더이상 작성하지 않을 수 있습니다. 에러율이 적으며, 생산성이 높고, 아름다운 표현력을 가진 함수형 코드를 작성해보세요!




자바스크립트에서의 이터러블 프로그래밍의 장점 💡

  • 언어 차원에서 지원하는 프로토콜을 통해 만들어지는 코드이기에 조합성이 높습니다.
  • 언어 차원에서 지원하는 에러 핸들링을 사용할 수 있습니다.
  • 비동기/동시성 프로그래밍을 보다 안전하고 쉽게 할 수 있습니다.
  • 코드 양을 최소화할 수 있습니다(트랜스파일링을 하면서도 변환되는 코드의 양을 최소화할 수 있는 아이디어도 가지고 있습니다).

 ES5 문법 프로그래밍의 불편함 🥲

  • i++, j++, if, for, break, 상태 변경에 의존한 코드는 버그가 생기기 쉽습니다.
  • 기능 발전, 기획 변경에 대응하다보면 버그가 발생되기 쉬워 유지보수가 어렵습니다.
  • 개발자마다 선호하는 코드 스타일이 다르고, 서로의 코드를 해석하기 어렵습니다.
  • 항상 로직을 새로 작성해야하고, 그에 따른 테스트 케이스도 많아져 생산성이 떨어집니다.

지식공유자 한마디 😀

2008년도 쯤 부터 리습, 이터러블, 리액티브 등을 기반으로한 클로저, 엘릭서, 스칼라와 같은 다양한 함수형 언어들이 생겨나고, 다른 언어들에서는 많은 관련 라이브러리들이 생겨나더니, 최근에 이르러서는 현업에서 가장 많이 사용되는 자바, 스위프트, 코틀린, 자바스크립트 등에 람다가 적용되고, 스트림 혹은 이터러블이라는 이름으로 언어 자체에 LISP 혹은 FP가 도입되었습니다. 더 다양한 상황에서 함수형 프로그래밍이나 이터러블 프로그래밍이 필요하다는 인식이 퍼지고 있고, 이러한 기술들이 실무에서 자연스럽게 사용되고 있습니다.

함수형/이터러블 프로그래밍이 모든 언어에 적용되고 있는 것은 실제적인 가치 때문입니다. 이터러블 프로그래밍은 문제를 작게 만들고 조합성을 높이는데 좋은 도구입니다. 이제는 거의 대부분의 언어에 적용되면서 이 방법은 탈 언어적인 해결책이 되었습니다.

특히 자바스크립트는 이터러블/이터레이터/제너레이터/심볼 등을 기반으로 매우 뛰어난 프로토콜을 가지고 있습니다. 이러한 프로토콜은 개발자로 하여금 언어를 다루라고 이야기하고 있습니다. ES6+의 진짜 매력은 이 '이터러블 프로토콜'이라고 생각합니다. 이터러블 프로그래밍은 생산성을 높이고, 오류율을 줄이고, 유지보수가 용이한 코드를 작성할 수 있게 하는 아주 훌륭한 도구입니다.


예제 코드 📜


관련 강의 🧑‍🏫

함수형 프로그래밍과 javascript ES6+
ES6+의 이터러블/이터레이터/제너레이터/동시성 프로그래밍에 대해 상세히 다룹니다. 
함수형/이터러블 프로그래밍에 대해 익숙하지 않다면 이 강의를 먼저 들어주세요!
 
 
 
 
 
 
 

이런 분들께 추천드려요!

🎓
학습 대상은
누구일까요?
함수형 프로그래밍을 배우고 싶은 분
이터러블 프로그래밍 응용법을 알고 싶은 분
함수형/이터러블/동시성 실제 사용 사례가 궁금한 분
간결하고 우아한 코드를 작성하고 싶은 분
JS 개발자로서 한 단계 도약하고 싶은 분
📚
선수 지식,
필요할까요?
함수형 프로그래밍과 JavaScript ES6+ 인프런 강의
ES6+ 기본 문법
이터러블/이터레이터/제너레이터

안녕하세요
유인동 입니다.
유인동의 썸네일
커리큘럼 총 48 개 ˙ 6시간 2분의 수업
이 강의는 영상이 제공됩니다. 미리보기를 통해 콘텐츠를 확인해보세요.
섹션 0. 이터러블 프로그래밍 혹은 리스트 프로세싱 (L i s p)
들어가며 03:54
홀수 n개 더하기 02:46
if를 filter로 07:38
값 변화 후 변수 할당을 map으로 01:07
break를 take로 00:52
축약 및 합산을 reduce로 08:33
while을 range로 미리보기 06:46
효과를 each로 구분 02:04
추억의 별 그리기 미리보기 07:12
추억의 구구단 03:20
섹션 1. 명령형 습관 지우기 - 만능 reduce? No!
reduce + 복잡한 함수 + acc 보다 map + 간단한 함수 + reduce 08:00
reduce 하나 보다 map + filter + reduce 04:49
query1, query2 08:15
query3, query4 09:26
queryToObject 05:17
섹션 2. 안전한 합성에 대해
map으로 합성하기 03:02
find 대신 L.filter 써보기 09:02
섹션 3. 객체를 이터러블 프로그래밍으로 다루기
들어가며 02:53
values 05:13
entries 04:17
keys 01:40
어떠한 값이든 이터러블 프로그래밍으로 다루기 09:50
object 09:09
mapObject 04:47
pick 미리보기 08:06
indexBy 06:05
indexBy 된 값을 filter 하기 05:29
섹션 4. 객체지향과 함께 사용하기 - 사용자 정의 객체를 이터러블 프로그래밍으로
Map, Set, NodeList 04:44
Model, Collection 클래스 만들어서 이터러블 프로토콜 지원하기 미리보기 16:38
Product, Products - 메서드를 함수형으로 구현하기 10:44
섹션 5. 시간을 이터러블로 다루기
range와 take의 재해석 14:41
takeWhile, takeUntil 07:25
자동차 경주 - 할 일들을 이터러블(리스트)로 바라보기 10:39
아임포트 결제 누락 처리 스케쥴러 - API 설명 06:25
아임포트 결제 누락 처리 스케쥴러 - 결제된 내역 가져오기 14:39
아임포트 결제 누락 처리 스케쥴러 - 가맹점 DB의 주문서 가져오기 04:52
아임포트 결제 누락 처리 스케쥴러 - 비교 후 결제 취소 API 실행하기 06:03
아임포트 결제 누락 처리 스케쥴러 - 반복 실행하기 10:04
섹션 6. 프론트엔드에서 함수형/이터러블/동시성 프로그래밍
ES6 템플릿 리터럴 활용 01:47
이미지 목록 그리기 18:45
아이템 지우기 12:19
커스텀 confirm 창과 Promise 15:39
클래스를 대신 함수로 하는 추상화 17:29
이미지 동시성 다루기 09:15
동시성 부하 조절 11:43
고차 함수로 더 작게 나누어 재사용성 높이기 - 데이터형 없애기 06:00
상위 스코프 변수를 사용하는 함수와 아닌 함수들 쪼개기 미리보기 03:47
DOM을 다루는 고차 함수 08:57
강의 게시일 : 2019년 05월 12일 (마지막 업데이트일 : 2019년 05월 20일)
수강평 총 100개
수강생분들이 직접 작성하신 수강평입니다.
4.9
100개의 수강평
5점
4점
3점
2점
1점
VIEW 추천 순 최신 순 높은 평점 순 낮은 평점 순 평점 순 높은 평점 순 낮은 평점 순
girili60 thumbnail
5
정말 매력적인 함수형 프로그래밍..!! 정말 좋은 강의에요! 백번추천!
2021-11-26
지식공유자 유인동
fxts 도 관심가져주세요!! :)
2021-11-26
hellofrontdev thumbnail
5
"다음에 나올 강의 마저 기다려지는 최고의 강의" 처음 들을 때는 이게 뭘까? 어떻게 돌아가는거지? 라는 의문 한 가득이지만 코드 하나하나를 음미하다보면 자바스크립트 언어의 매력에 푹 빠지게 되고 짜임새있는 강의와 전달력에 흠뻑 빠지게 됩니다. 얼릉 강사님께서 여유가 생기셔서 다음 강좌를 만들어주시길 학수고대하고 있습니다. (다음에는 실제 프로젝트를 함께 만들어보는 강의가 추가되었으면 좋겠어요!)
2020-10-27
지식공유자 유인동
너무 감사한 리뷰네요. 여유가 되었을때 꼭 준비하도록 하겠습니다 :)
2020-10-27
Kunho Lee thumbnail
5
함수형 자바스크립트의 실제 적용 사례를 볼 수 있어서 좋았습니다. 실무에서 해결해야 할 법한 상황을 함수형 프로그래밍을 적용하여 보기 좋고 읽기 쉬운 코드로 해결해 나가는 걸 보니 함수형 프로그래밍을 더 구체적으로 느낄 수 있었습니다. 다음 강의에서는 특정 서비스, 어플리케이션을 함수형 프로그래밍을 적용하여 만들 때 어떻게 설계하고 의존성은 어떻게 관리하는 지 같은 내용을 가르쳐주시면 좋을 것 같습니다. 좋은 강의 감사합니다 :)
2019-11-13
지식공유자 유인동
상세한 리뷰 감사해요. 열심히 만든 기쁨이 있네요! 좋은 후속 컨텐츠도 말씀주신대로 꼭 잘 만들어볼께요 :)
2019-11-14
iternity thumbnail
5
이전강의를 듣고 배운 개념들을 적용해서 함수형 라이브러리를 이용하여 코딩해봤지만 보조함수가 길어지고 명령형 코드를 단순히 보조함수에 옮겨놓은게 아닌가.. 명령형코드가 go에 제어문을 때려박은 함수로 바뀌었을 뿐인듯한 느낌을 지울수가없었습니다. 이 강의를 듣고나서야 map, filter, reduce를 바라보는 다른 시점, 이터러블/이터레이터를 위의 함수로 감싸 모나드를 통한 안전한 함수합성, 재사용성이 높은 함수를 추출하여 추상화하여 계속 사용하는 테크닉 등 이전강의만 듣고 무작정 코딩에 달려들었을때 부족한 2%를 채워줄만한 강의였다고 생각합니다. 아직 이 강의를 완벽하게 소화한건 아니지만 몇번이고 반복해서 들으면서 공부하겠습니다. 좋은 강의 감사합니다.
2019-05-23
지식공유자 유인동
전달하고 싶었던 내용들을 많이 짚어주셨네요. :) 고맙습니다. 화이팅!
2019-05-23
이성필 thumbnail
5
단숨에 끝까지 달려왔습니다. 정말 유익하고 재밌었습니다. 실무에 적용하기 위해 연습이 필요하겠지만, 처음 addMaker함수를 만들듯이 조금씩 적용해 나가면 되지 않을까 생각하고 있습니다. 감사합니다. 앞으로도 좋은 강의 부탁드립니다! 수고하셨습니다!
2019-08-15
지식공유자 유인동
헛 단숨에! 재밌게 들으셨다니 감사합니다. 좋은 내용 전달할 수 있도록 하겠습니다. :>
2019-08-15