함수형 반응형 프로그래밍 (FRP 입문자를 위한 종합 안내서)

함수형 반응형 프로그래밍 (FRP 입문자를 위한 종합 안내서)

$33.00
Description
함수형 반응형 프로그래밍에 관한 최초의 종합 안내서
프로그램은 ‘어떻게’가 아니라 ‘무엇’을 기술하는 선언적인 문서여야 한다는 주장을 받아들이는 사람이 점점 늘고 있다. 이런 흐름은 함수형 언어의 부흥으로 이어졌다. 함수형 언어로는 프로그램을 더 선언적인 방식으로 작성할 수 있고, 이를 이벤트 처리에 결합한 것이 함수형 반응형 프로그래밍(FRP)이다. 지난 수십 년 동안 이벤트 처리 인프라를 책임진 관찰자 패턴은, 한편으로는 버그의 온상이 되기도 했다. FRP는 관찰자 패턴의 잠재적 버그 원인을 근본적으로 차단하여 더 복잡한 시스템으로 쉽게 확장할 수 있도록 해준다. 이 책의 저자는 FRP 프레임워크인 소듐(Sodium)의 창시자로서, FRP의 기초부터 기존 프로젝트를 점진적으로 FRP 시스템으로 탈바꿈시키는 방법까지 친절히 안내한다.
저자

스티븐블랙히스

저자스티븐블랙히스(StephenBlackheath)는뉴질랜드의파머스턴노스근처에산다.다수의이벤트기반상업프로그램을만들었으며2007년경함수형프로그래밍에입문해서오픈소스소듐(Sodium)FRP시스템을만들었다.바둑을좋아한다.

목차

1장.듣기를멈추자!
1.1프로젝트,복잡도의벽에부딪치다
1.2함수형반응형프로그래밍이란?
1.3FRP가적합한분야와현재상황
1.4대화형애플리케이션:이벤트가뭐야?
1.5상태기계분석의어려움
1.6버그없는대화형애플리케이션
1.7리스너는이벤트처리의기둥.하지만...
1.8리스너의여섯가지재앙퇴치하기
1.9그냥리스너만고쳐서사용하지않는이유
1.10“재시작해봤어?”또는상태가문제가되는이유
1.11FRP의장점:복잡도다루기
1.12FRP는어떻게작동하는가?
1.13패러다임전환
1.14의존성관점에서생각하기
1.15선언적으로생각하기:이프로그램은무엇인가?
1.16FRP,개념적이해vs.조작적이해
1.17함수형프로그래밍을이벤트기반코드에적용하기
1.18요약

2장.FRP의핵심
2.1스트림타입:이벤트의흐름
2.2맵기본요소:값변환하기
2.3FRP시스템의구성요소
2.4참조투명성이필요하다
2.5Cell타입:시간에따라변하는값
2.6merge기본연산:스트림합치기
2.7hold기본연산:셀의상태유지하기
2.8snapshot기본연산:셀의값캡처하기
2.9hold와snapshot으로루프를만들어서누적기구현하기
2.10filter기본연산:원하는경우에만이벤트전달하기
2.11lift기본연산:셀조합하기
2.12never기본연산:결코발사되지않는스트림
2.13참조투명성관련권장사항
2.14FRP커닝페이퍼
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.8POS시스템과통신하기
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장.웹에서의FRP
6.1RxJS
6.2Observable
6.3RxJS,Kefir.js,Flapjax에서상태유지하기
6.4combineLatest로두Observable의마지막상태얻기
6.5뜨거운Observable만들기
6.6예제:FRP방식으로자동완성기능만들기
6.7RxJS/소듐치트시트
6.8정적타입지정을선호함
6.9요약

7장.스위치연산
7.1sample기본연산:셀의값얻기
7.2switch
7.3switch의용례1:좀비즈
7.4switch로게임캐릭터변환하기
7.5switch의용례2:게임캐릭터생성과제거
7.6큰merge의효율
7.7게임캐릭터와RxJS의효율
7.8switch의용례3:잘못된상태제거하기
7.9switch의용례4:장면전환
7.10요약

8장.조작적인기본연산
8.1FRP코드와프로그램의나머지부분연결하기
8.2지연연산으로루프문제해결하기
8.3트랜잭션
8.4셀에서update나value를사용해스트림얻기
8.5split기본연산으로새로운트랜잭션컨텍스트만들기
8.6규모확장가능한대상지정
8.7요약

9장.연속적인시간
9.1시간을래스터화하기
9.2시간함수로위치표현하기
9.3애니메이션루프
9.4시간측정하기
9.5요약

10장.패러다임간의전투
10.1전통적인상태기계vs.FRPvs.액터모델
10.2시프트키를눌러서축을고정하는특징추가하기
10.3개선:시프트키로문서갱신하기
10.4요약

11장.실전프로그래밍
11.1I/O다루기
11.2프라미스/퓨처
11.3분산처리
11.4단위테스트
11.5요약

12장.도우미와패턴
12.1조용히시키기:중복값제거
12.2게임일시정지하기
12.3정션또는클라이언트레지스트리
12.4변경할수있는원격값
12.5영속성
12.6고유ID생성하기
12.7FRP기반의GUI시스템
12.8요약

13장.리팩터링
13.1리팩터링을할까,하지말까?
13.2드래그앤드롭예제
13.3특징추가하기:드래깅대상원소그리기
13.4버그수정하기:클릭이드래그로취급됨
13.5FRP:봄바람같은리팩터링
13.6요약

14장.기존프로젝트에FRP추가하기
14.1FRP가도움되는분야는어디인가?
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.6FRP데이터베이스애플리케이션
15.7시각화와디버깅도구
15.8시각적프로그래밍
15.9리팩터링도구
15.10요약

부록A.소듐API
부록B.이벤트처리의여섯가지재앙
부록C.FRP시스템간의비교
부록D.관리자를위한조언
부록E.소듐의표시적의미

출판사 서평

함수형?반응형?그개념부터활용까지
이책은FRP의개념과실제사용법을차근차근설명해주는훌륭한책이다.FRP의근본이되는프로그래밍개념은사실어렵지않다.이책은유머를곁들여그런개념을흥미진진하게설명하면서,실무경험에서우러난조언과다양한예제를통해독자가FRP방법론에익숙해지도록도와준다.FRP에관심이많은독자라면이책을꼭읽어야한다.
-‘옮긴이의말’중에서

★주요내용
●데이터와이벤트를바라보는새로운시각
●자바와자바스크립트에서의FRP기법
●한번에하나씩,관찰자에서리스너제거하기
●소듐,RxJS,Kefir.js등의FRP라이브러리맛보기

추천사
“이책은함수형반응형프로그래밍에관한최초의종합안내서라할수있다.두저자는엄청난열정으로FRP의기본개념과다양한예제,그리고실전에서자주사용하는여러패턴을친절하게알려준다.”
하인리히아펠무스,리액티브-바나나FRP라이브러리창시자

“이론과실습을적절히조합한제대로된튜토리얼이다.”
장-프랑수아모랭,라발대학교

“함수형프로그래밍과반응형프로그래밍을조합해모던한소프트웨어를개발하도록안내하는훌륭한지침서다.”
윌리엄E.휠러,웨스트코퍼레이션