코스 이미지

ES6로 알아보는 동시성, 함수형 프로그래밍

소개

다음 강의를 기다려주세요.

가장 최근 기수는 5월 12일 개강을 시작으로, 원만하게 진행되고 있습니다. JS 기반의 함수형 프로그래밍에 대한 여러 정보는 유인동 강사님이 운영하시는 페이스북 그룹 함수형 자바스크립트 에서도 얻어보실 수 있으며, 추후 강의가 열리면 해당 그룹에도 안내가 될 예정입니다.

자바스크립트에 늘 약한 웹개발자들의 필수 통과의례 코스

ES6로 알아보는 동시성 & 함수형 프로그래밍

이것 만큼은 반드시 배워가는 강의

  • 라이브러리, 프레임워크의 도움 없이 순수 자바스크립트로 이커머스 웹사이트, 소셜미디어를 구축하는 법.
  • 코어 자바스크립트 응용력. 그 어떤 라이브러리도 사용하지 않고 순수 자바스크립트 문법(Vanilla JS)으로만 실습
  • 템플릿 리터럴, 태그, Map, WeakMap, 불변성 등을 활용한 최신 Vanilla JS 기반 웹 프로그래밍 방식
  • Promise, async/await, iterator/generator 의 다양한 응용 방법 및 실제 사례
  • 동시성/병렬적으로 동작해야 하는 복잡한 로직을 간결하게 리팩토링
  • 데이터베이스 트랜잭션, SQL 인젝션, 에러 핸들링, 에러 로깅(4주차 이후부터)

일정, 장소 정보

  • 기간: 2018-05-12(토) ~ 2018-06-30(토) 총 7주
  • 휴강: 2018-06-16(토) 1일 휴강
  • 일정: 7주동안 매 주 토요일 13:00 ~ 19:00, 총 42시간 진행
  • 장소: 강남역 쎄임페이지 Page3
  • 수강료: 105만 원(개강 당일까지 등록 가능)

지각, 결석이 벌써 걱정이신가요?

본 강의는 전량 화면 녹화를 통해 결제 완료한 수강생들에게 제공되며, 해당 동영상은 프로그래머스 웹사이트에서 열람할 수 있습니다. 또한 소스코드나 강의자료 등 강의를 위해 활용된 자료들은 저장소 & 페이스북 그룹 을 통해 공유됩니다. 지각과 결석은 무조건 피하면 좋지만 그러기 어려울 때, 도와드리겠습니다.

늘 새로운 것에 더 빨리 익숙해져야 하는 웹 개발자들의 숙명

HTTP2로의 전환, 더 많고 다양한 양상을 보이는 데이터 통신, 더욱 중요해지는 실시간성, 애니메이션이 가미된 UI, UX 등으로 인해 복잡도가 증대된 웹 개발의 영역에서 이제 한 웹 개발자에게 요구되는 능력은 비단 자바스크립트 소스코드 작성 능력뿐만이 아니라 함수형 프로그래밍에 대한 이해, 동시성, 비동기 프로그래밍에 대한 이해도 포함된다고 해도 과언이 아닙니다.

하지만, 아직 준비가 덜됐다면

이 강의 커리큘럼을 일단 따라오세요. 따라서 지금까지는 몰랐던 방식과 코딩 스타일을 익혀가세요. 그냥 좋은 내용을 전달하기만 한다고 여러분에게 얻어지는 것은 없기에, 실습 주제로는 프론트엔드와 백엔드 개발에서 실제로 일어나는 문제들을 해결하는 것에 집중합니다.

커리큘럼과 주의사항을 확인해보세요.

웹 개발자를 위한 강의입니다!

현직 웹 프로그래머를 대상으로 하는 강의이므로 JS 기초 문법 및 개념을 다루지 않음. 또한 웹 개발에서는 HTTP Server/Client, SQL, HTML, CSS 등의 기초 사용법이나 문법 등을 다루지 않음. 자바스크립트 경험만 없는 웹 개발자가 수강을 원할 경우 사전 학습을 진행하면 가능함.

주차 큰 주제와 상세한 내용
1
  1. ES6 / 함수형 프로그래밍 / 비동기 프로그래밍 소개:
    • 실무 코드 사례를 통해 이런 코딩 스타일이 왜 필요한지 알아보기
    • 같은 문제를 해결하는 다른 몇 가지 방법들 사례 확인
  2. ES6 자세히 들여다보기:
    • 자바스크립트의 타입
    • iterator/generator
    • for of, 전개 연산자
    • 함수와 함수 타입
  3. 함수형 프로그래밍:
    • Haskell, Clojure 스타일 알아보고 직접 구현하기
    • ADT 계열 / Lisp 계열의 컨셉과 구조 알아보기
    • 자바스크립트에서의 함수형 프로그래밍
  4. 컬렉션 중심 프로그래밍:
    • 컬렉션을 다루는 함수들의 계층 구조
    • map, filter, reduce, find
    • 데이터가 아닌 코드를 컬렉션으로 다루기
2
  1. 메타 프로그래밍:
    • 표현식과 화살표 함수를 이용한 표현력 좋은 함수 만들기
    • 코드를 코드로 제어하는 방법
    • 파이프라인
  2. 비동기/동시성 프로그래밍 기반 '제대로' 하기:
    • Promise, async/await
    • iterator / generator
    • 재귀와 표현식
  3. 함수형 동시성 프로그래밍:
    • 데이터 흐름 기반 프로그래밍
    • 동시 실행 값으로 다루기
    • 순차적 / 동시적 / 병렬적 처리
    • Fluture, async, blubird, RxJS, js-csp
    • 여러가지 비동기 프로그래밍 해법들, 그리고 비교 분석
3
  1. 예외 처리:
    • 동기/비동기 상황에서의 예외처리
    • 흐름 기반 예외처리
    • 에러 핸들링 전략 명확히 세우기
  2. 클래스 없이 프로그래밍 하기:
    • 함수 조합, 파이프라인, 커링, 화살표 함수, 전개 연산자
    • 네임 스페이스와 모듈화
    • 값 복사, 확장
    • 모델 vs. 기본 객체
  3. 함수형으로 프론트엔드 실무 코드 문제 해결하기:
    • 템플릿 리터럴, 태그
    • 비동기를 지원하는 템플릿 엔진 만들기
    • 이벤트 핸들링/이벤트 델리게이트
    • Alert, Confirm, Loading, Dialog, Picker, fetch, Canvas
4
  1. 함수형으로 백엔드 실무 코드 문제 해결하기:
    • 데이터베이스 PostgreSQL CRUD
    • 데이터베이스 ORM 구현하기
    • 복잡한 마이그레이션, 중첩 구조의 복잡한 데이터 다루기
  2. 함수형 + Vanilla JS(ES6)로 커머스서비스 프론트엔드 / 백엔드 개발하기(6주차까지 쭉)
    • 상품 등록, 상품 목록
5
  1. 프론트엔드 상태 관리
  2. JSON Selector
  3. 세션 관리, 장바구니 담기
  4. 웹 서버 늘리기, Redis를 활용한 세션 분산 처리
  5. 주문하기
6
  1. 데이터베이스 트랜젝션, 에러 핸들링, 인덱스
  2. 주문 내역, 상품 필터 / 더보기 / 검색 / 복잡한 쿼리
  3. PostgreSQL jsonb 타입 쿼리
7
  1. 함수형 + Vanilla JS(ES6)으로 SNS 프론트엔드 / 백엔드 개발하기
    • 글 작성 / 사진 업로드 / 사진 리사이징 / 글 수정
    • 댓글 작성 / 삭제 / 댓글 더보기
    • 좋아요 기능 구현
    • 데이터베이스 SQL 인젝션
    • 끝!

Q. 누가 들어야 합니까?

A. 코어 자바스크립트에 취약한 분, 외부 소스의 도움 없이는 개발이 힘든 분, 비동기 / 함수형 프로그래밍에 익숙하지 않은 모든 분들이 들어야 합니다.


코어 자바스크립트에 취약한 웹 개발자

웹 개발의 복잡성이 증가하고, 유저들이 편하게 또 보기 좋게 여기는 UI의 기준도 점점 상향되면서 자연스레 웹 개발자들에게 요구되는 역량이 심화되었습니다. 특히 JS를 잘 다루느냐, 아니냐가 관건이죠.
우리 강의에서는 외부 라이브러리나 프레임워크의 도움을 받지 않고 이커머스, SNS 웹사이트를 구축하는 과정을 거치기 때문에 JS에 취약하다고 느껴왔다면 큰 도약의 기회가 될 것입니다.

비동기 방식, 함수형 프로그래밍에 자신 없는 웹 개발자

비동기 방식에 익숙하지 않아 Node.js 기반의 프로젝트 진행 시 어려움이 있고, 새로운 개념을 배워야 한다는 것 자체에 허덕이고 있다면 이 7주 여정이 최고의 선택입니다.
기존에 비동기 방식으로 짜여있지 않았던 코드를 효율적으로 리팩토링하는 방법을 다루기에, 그 과정에서 자연스레 코드를 통해 비동기 방식과 함수형 프로그래밍의 장점을 체득하게 됩니다. 한 번 알면, 빠져나오지 못할거에요.

라이브러리, 프레임워크 없이는 개발이 힘든 모든 분

너무 좋은 외부 라이브러리와 프레임워크가 이미 많은 상황이기에, 뭔가를 개발할 때 남들이 만들어 둔 것을 잘 조합하여 활용하는 것도 중요한 능력입니다. 그러나 기존의 외부 소스들의 도움을 더이상 받기 어려운 상황이 발생했을 때 결국 무엇이 중요할까요? 코어 개발 능력입니다. 우리 강의에서는 코어 자바스크립트 역량 강화를 위해 당신에게 필요한 대부분의 것을 최대한 전달하겠습니다.

Q. 누가 가르칩니까?

A. 주제가 주제인 만큼 시니어 실무자의 생생한 강의가 필요합니다. 마플 CTO이자 JS기반의 함수형 프로그래밍 선구자인 유인동님을 소개합니다.


강사 사진

유인동 강사님

풍부한 실무 경험을 다수에게 공유하여 개발 생태계에 기여하고픈 개발자. Clojure, Elixir, Haskell 등이 가진 패러다임과 주요 기능을 JS에 맞게 재해석한 함수형 프로그래밍을 전파하고, 코어 자바스크립트 역량 강화에 집중하는 개발자.

  • 마플 CTO (http://www.marpple.com)
  • FunctionalES, Partial.js, Don.js 등 함수형 자바스크립트 라이브러리 개발
  • '함수형 자바스크립트 프로그래밍' 저자
  • 자바스크립트 관련 다수 특강과 동영상 강의 제작
  • 카카오, 엔씨소프트 오픈마루 스튜디오 개발자
GitHub Blog
강사 사진

하조은 조교님

가치 있는 일을 찾아 사람 모으는 일을 좋아하는 개발자. 주로 사용하는 언어는 JS, 함수형 프로그래밍을 실무에 활용 중. 뜻깊고 '가치있는' 이번 강의에서도 보조 강사님으로서 수강생들을 이끌 예정.

  • 마플 소프트웨어 개발자
  • 함수형 자바스크립트 오픈소스 멤버
  • AHATYD 웹 개발자
  • 함수형 JS 스터디 진행
GitHub Blog

아주 유용한 참고자료들

강의 목록

파트2. 2주차(2018-05-19)

질문 & 답변