Skip to content

ES6+, 함수형 프로그래밍, 비동기, 동시성 프로그래밍

Notifications You must be signed in to change notification settings

baewang/FunctionalES

 
 

Repository files navigation

FunctionalES

ES6+, 함수형 프로그래밍, 비동기, 동시성 프로그래밍

소스코드 보기

목차

  1. 들어가며
    • ES6, 함수형 프로그래밍, 비동기/동시성 프로그래밍
    • ES6+
    • 함수형 프로그래밍
    • 비동기/동시성 프로그래밍
  2. 타입과 값
    • 7가지 내장 타입으로 바라보기
    • 자바스크립트에서의 객체
    • JSON 데이터 타입
    • Iterable, Iterator
    • Symbol.iterator
    • Promise
  3. 함수형 프로그래밍 관점에서 바라본 자바스크립트의 값
    • 자바스크립트에서의 함수형 프로그래밍을 위한 타입과 값
    • JSON 데이터 타입
    • undefined
    • 열거 가능한 값, 컬렉션
    • 컬렉션 순회
    • 불변성
    • 함수와 화살표 함수
    • Promise
  4. 컬렉션 중심 프로그래밍
    • 컬렉션
    • 3개의 대표 함수 map, reduce, findVal
    • map 함수
    • reduce 함수
    • findVal 함수
  5. 코드를 컬렉션으로 다루기
    • pipe, go
    • match
    • 함수를 값으로 다루면서 원하는 시점에 평가하기
    • or, and
  6. 비동기, 동시성, 병렬성 프로그래밍
    • 들어가기 앞서 Promise, async/await에 대해
    • Promise는 콜백 지옥을 해결한 것일까?
    • promise.then(f)의 규칙
    • Promise 체인
    • then :: Promise p => (a -> b | p b) -> a | p a -> b | p b
    • then에 커링 적용하기
    • 파이프라인
    • 이미지 동시에 모두 불러온 후 DOM에 반영하기
    • mapC와 limit
    • 쇼트트랙 계주 - 순서대로 실행하기
    • 동시적으로 혹은 순차적으로
    • async/await는 은총알인가?
    • 병렬적으로 동작할 수 없는 async/await
    • 더 많은 함수들
  7. 예외 처리
    • ES6+의 3가지 예외
    • pipe().nullable()
    • pipe().error()
    • pipe().exception() ()
    • 여러가지 달기
    • pipe().error().complete()
    • 다른 컬렉션 조작 함수들과의 조합
    • 비동기를 지원하지 않는 함수에서 발생한 예외 처리 실패
    • 동기/비동기를 함께 지원하는 함수의 필요성
    • 정리
  • 부록. 클래스 없이 코딩하기

    • 나머지 매개변수와 전개 연산자, 그리고 부분 적용
    • 장바구니
    • 정리
  • 부록. 깊은 값 조회

    • 복잡한 값을 조회할 때 중간에 nullable을 만나도 에러 피하기
    • key를 알 수 없을 때, {} # function object로 조회하기
  • [부록. 메모이제이션]

    • 예정
  • [부록. 튜플]

    • 예정
  • [부록. 템플릿 리터럴]

    • 예정
  • [...]

    • 예정
  • [...]

    • 예정
  • 부록. 질문 답변

    • 이슈에 올라오거나 개인적으로 오는 질문 계속 추가할 예정입니다.
  • API

    • 진행 중

About

ES6+, 함수형 프로그래밍, 비동기, 동시성 프로그래밍

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • HTML 72.3%
  • JavaScript 26.6%
  • CSS 1.1%