이 상품은 구매 후 지원 기기에서 예스24 eBook앱 설치 후 바로 이용 가능한 상품입니다.
|
1장. 듣기를 멈추자!1.1 프로젝트, 복잡도의 벽에 부딪치다1.2 함수형 반응형 프로그래밍이란?1.3 FRP가 적합한 분야와 현재 상황1.4 대화형 애플리케이션: 이벤트가 뭐야?1.5 상태 기계 분석의 어려움1.6 버그 없는 대화형 애플리케이션1.7 리스너는 이벤트 처리의 기둥. 하지만...1.8 리스너의 여섯 가지 재앙 퇴치하기1.9 그냥 리스너만 고쳐서 사용하지 않는 이유1.10 “재시작해봤어?” 또는 상태가 문제가 되는 이유1.11 FRP의 장점: 복잡도 다루기1.12 FRP는 어떻게 작동하는가?1.13 패러다임 전환1.14 의존성 관점에서 생각하기1.15 선언적으로 생각하기: 이 프로그램은 무엇인가?1.16 FRP, 개념적 이해 vs. 조작적 이해1.17 함수형 프로그래밍을 이벤트 기반 코드에 적용하기1.18 요약2장. FRP의 핵심2.1 스트림 타입: 이벤트의 흐름2.2 맵 기본 요소: 값 변환하기2.3 FRP 시스템의 구성요소2.4 참조 투명성이 필요하다2.5 Cell 타입: 시간에 따라 변하는 값2.6 merge 기본 연산: 스트림 합치기2.7 hold 기본 연산: 셀의 상태 유지하기2.8 snapshot 기본 연산: 셀의 값 캡처하기2.9 hold와 snapshot으로 루프를 만들어서 누적기 구현하기2.10 filter 기본 연산: 원하는 경우에만 이벤트 전달하기2.11 lift 기본 연산: 셀 조합하기2.12 never 기본 연산: 결코 발사되지 않는 스트림2.13 참조 투명성 관련 권장 사항2.14 FRP 커닝 페이퍼2.15 요약3장. 자주 쓰는 위젯 만들기3.1 독립 SWidget인 스피너3.2 폼 입력 검증3.3 요약4장. 실제 애플리케이션 작성하기4.1 주유 펌프 예제4.2 주유 펌프 예제 실행하기4.3 코드, 세상을 만나다4.4 주유 흐름의 생애 주기4.5 이렇게 하는 것이 실제로 더 좋은가?4.6 주유한 연료량 계산하기4.7 주유한 연료의 가격 표시하기4.8 POS 시스템과 통신하기4.9 모듈성을 보여주는 예: 키패드 모듈4.10 모듈성에 대한 노트4.11 현재 주유 금액 추가하기4.12 이번 장에서 배운 내용4.13 요약5장. 새로운 개념5.1 전설의 폰 노이만 기계를 찾아서5.2 합성성5.3 합성성 부족을 보여주는 예5.4 합성성: 모든 종류의 버그 없애기5.5 믿는 도끼에 발등 찍히지 않기: 불변 값 사용5.6 의도의 명확성5.7 저렴한 추상화의 결과5.8 요약6장. 웹에서의 FRP6.1 RxJS6.2 Observable6.3 RxJS, Kefir.js, Flapjax에서 상태 유지하기6.4 combineLatest로 두 Observable의 마지막 상태 얻기6.5 뜨거운 Observable 만들기6.6 예제: FRP 방식으로 자동 완성 기능 만들기6.7 RxJS/소듐 치트 시트6.8 정적 타입 지정을 선호함6.9 요약7장. 스위치 연산7.1 sample 기본 연산: 셀의 값 얻기7.2 switch7.3 switch의 용례 1: 좀비즈7.4 switch로 게임 캐릭터 변환하기7.5 switch의 용례 2: 게임 캐릭터 생성과 제거7.6 큰 merge의 효율7.7 게임 캐릭터와 RxJS의 효율7.8 switch의 용례 3: 잘못된 상태 제거하기7.9 switch의 용례 4: 장면 전환7.10 요약8장. 조작적인 기본 연산8.1 FRP 코드와 프로그램의 나머지 부분 연결하기8.2 지연 연산으로 루프 문제 해결하기8.3 트랜잭션8.4 셀에서 update나 value를 사용해 스트림 얻기8.5 split 기본 연산으로 새로운 트랜잭션 컨텍스트 만들기8.6 규모 확장 가능한 대상 지정8.7 요약9장. 연속적인 시간9.1 시간을 래스터화하기9.2 시간 함수로 위치 표현하기9.3 애니메이션 루프9.4 시간 측정하기9.5 요약10장. 패러다임 간의 전투10.1 전통적인 상태 기계 vs. FRP vs. 액터 모델10.2 시프트 키를 눌러서 축을 고정하는 특징 추가하기10.3 개선: 시프트 키로 문서 갱신하기10.4 요약11장. 실전 프로그래밍11.1 I/O 다루기11.2 프라미스/퓨처11.3 분산 처리11.4 단위 테스트11.5 요약12장. 도우미와 패턴12.1 조용히 시키기: 중복 값 제거12.2 게임 일시 정지하기12.3 정션 또는 클라이언트 레지스트리12.4 변경할 수 있는 원격 값12.5 영속성12.6 고유 ID 생성하기12.7 FRP 기반의 GUI 시스템12.8 요약13장. 리팩터링13.1 리팩터링을 할까, 하지 말까?13.2 드래그 앤 드롭 예제13.3 특징 추가하기: 드래깅 대상 원소 그리기13.4 버그 수정하기: 클릭이 드래그로 취급됨13.5 FRP: 봄바람 같은 리팩터링13.6 요약14장. 기존 프로젝트에 FRP 추가하기14.1 FRP가 도움되는 분야는 어디인가?14.2 불변 데이터 구조로 바꾸기14.3 콜백을 대체하는 스트림14.4 큰 트랜잭션 안에서 프로그램 초기화하기14.5 정션/클라이언트 레지스트리 사용으로 확장성 모듈 만들기14.6 셀이 변경 가능한 변수를 대치할 수 있다14.7 요약15장. 앞으로의 방향15.1 성능15.2 성능 개선과 임베디드 시스템을 위한 FRP 사전 컴파일15.3 병렬성15.4 문법 개선15.5 표준화와 코드 재사용15.6 FRP 데이터베이스 애플리케이션15.7 시각화와 디버깅 도구15.8 시각적 프로그래밍15.9 리팩터링 도구15.10 요약부록 A. 소듐 API부록 B. 이벤트 처리의 여섯 가지 재앙부록 C. FRP 시스템 간의 비교부록 D. 관리자를 위한 조언부록 E. 소듐의 표시적 의미8. 관련 서적 (제목 ISBN) 함수형 사고 / 9788968482960 브루스 테이트의 세븐 랭귀지 / 9788968481857 자바 8 인 액션 / 9788968481796
|
오현석의 다른 상품
|
함수형 반응형 프로그래밍에 관한 최초의 종합 안내서 프로그램은 ‘어떻게’가 아니라 ‘무엇’을 기술하는 선언적인 문서여야 한다는 주장을 받아들이는 사람이 점점 늘고 있다. 이런 흐름은 함수형 언어의 부흥으로 이어졌다. 함수형 언어로는 프로그램을 더 선언적인 방식으로 작성할 수 있고, 이를 이벤트 처리에 결합한 것이 함수형 반응형 프로그래밍(FRP)이다. 지난 수십 년 동안 이벤트 처리 인프라를 책임진 관찰자 패턴은, 한편으로는 버그의 온상이 되기도 했다. FRP는 관찰자 패턴의 잠재적 버그 원인을 근본적으로 차단하여 더 복잡한 시스템으로 쉽게 확장할 수 있도록 해준다.이 책의 저자는 FRP 프레임워크인 소듐(Sodium)의 창시자로서, FRP의 기초부터 기존 프로젝트를 점진적으로 FRP 시스템으로 탈바꿈시키는 방법까지 친절히 안내한다. 주요 내용 데이터와 이벤트를 바라보는 새로운 시각 자바와 자바스크립트에서의 FRP 기법 한 번에 하나씩, 관찰자에서 리스너 제거하기 소듐, RxJS, Kefir.js 등의 FRP 라이브러리 맛보기
|