함수형 코틀린
도서명:함수형 코틀린
저자/출판사:마리오,아리아스,리부,카크라보티/에이콘출판
쪽수:416쪽
출판일:2019-01-31
ISBN:9791161752631
목차
1장. 코틀린: 데이터 타입, 오브젝트, 클래스
__클래스
____속성
____메소드
__상속
__추상 클래스
__인터페이스
__오브젝트
____오브젝트 선언
____컴패니언 오브젝트
__제네릭
__타입 앨리어스
__Nullable 타입
____null 확인
____null이 아닌 타입 확인
____안전 호출
____엘비스(?:) 연산자
____(!!) 연산자
__코틀린의 타입 시스템
____Any 타입
____최소 공통 타입
____Unit 타입
____Nothing 타입
__기타 타입
____데이터 클래스
____주석
____열거형
__정리
2장. 함수형 프로그래밍 시작
__함수형 프로그래밍이란?
__기본 개념
____일급 함수 및 고차 함수
____순수 함수
____재귀 함수
____느긋한 계산법
__함수적 컬렉션
__함수형 리스트 구현
__정리
3장. 불변성: 중요
__불변성이란?
____코틀린에서 불변성 구현
____var와 val의 차이
____컴파일 타임 상수
____불변성의 종류
__불변 컬렉션
__불변성의 장점
____스레드 안전성
____낮은 커플링
____참조 투명성
____실패 원자성
____캐싱
____컴파일러 최적화
____순수 함수
__불변성의 단점
__정리
4장. 함수, 함수 타입, 부수 효과
__코틀린의 함수
____함수에서 두 개의 값 반환
____확장 함수
____기본 인수
____중첩 함수
__함수형 프로그래밍에서의 함수 타입
__람다
____속성으로서의 함수
__고차 함수
__순수 함수와 부수 효과
____부수 효과
____순수 함수
__정리
5장. 함수 심화 학습
__단일 표현 함수
__파라미터
____수정자 vararg
____람다
____명명된 파라미터
____기본 파라미터
__확장 함수
____확장 함수와 상속
____충돌하는 이름을 가진 확장 함수
____오브젝트용 확장 함수
__중위 함수
__연산자 오버로딩
____바이너리 연산자
____Invoke
____인덱싱된 접근
____Unary 연산자
__타입 안전 빌더
____DSL 생성
__인라인 함수
____인라인 제한
__재귀 및 코리커젼
__정리
6장. 코틀린의 델리게이트
__위임 소개
____위임의 이해
__코틀린의 델리게이트
__속성 위임(표준 델리게이트)
____Delegates.notNull 함수와 lateinit
____느긋한 함수
____Delegates.Observable를 사용해 속성 값 변경 관찰
____거부의 힘: Delegates.vetoable
__위임된 맵
__커스텀 위임
__로컬 델리게이트
__클래스 위임
__정리
7장. 코틀린을 사용한 비동기 프로그래밍
__코루틴 소개
____JVM 스레드 이해
____Hell, coroutine world!
__실제 코루틴 사용
____동기 구현
____콜백
____자바 퓨처
____코버넌트를 통한 프로미스
____코루틴
____코루틴 컨텍스트
__채널
____채널 파이프라인
__변경 가능한 상태 관리
____컨텍스트 전환
____스레드 안전 구조체
____뮤텍스
____액터
__정리
8장. 코틀린의 컬렉션과 데이터 작업
__컬렉션 소개
____컬렉션 프레임워크의 장점
__List와 MutableList
__Set과 MutableSet
__Map과 MutableMap
__컬렉션의 데이터 작업
____map 함수
____filter 함수
____flatMap 함수
____drop 함수
____take 함수
____zip 함수
__컬렉션 그룹화
__정리
9장. 함수형 프로그래밍과 리액티브 프로그래밍
__FP와 OOP 결합
__함수형 리액티브 프로그래밍
____리액티브 매니페스토
____코틀린의 함수형 리액티브 프레임워크
__RxKotlin 시작
____RxKotlin 다운로드 및 설정
____RxJava 푸시 메커니즘과 풀 메커니즘 비교
__Observables
____Observable의 작동 방식
__Observable.create 메소드
__Observable.from 메소드
__Iterator
.toObservable
__Subscriber: Observer 인터페이스
__구독 및 폐기
__정리
10장. 펑터, 어플리커티브, 모나드
__펑터
__모나드
__어플리커티브
__정리
11장. 코틀린에서 스트림 작업
__스트림 소개
__컬렉션과 스트림
__스트림 작업
__프리미티브 스트림
__스트림 팩토리 메소드
____스트림 빌더
____빈 스트림 생성: Stream.empty()
____요소를 전달해 스트림 만들기: Stream.of()
____스트림 생성: Stream.generate()
__컬렉터와 Stream.collect: 스트림 수집
____Collectors.toList(), Collectors.toSet(), Collectors.toCollection()
____맵에 수집: Collectors.toMap()
____문자열 스트림의 결합: Collectors.joining()
____스트림 요소 그룹화: Collectors.groupingBy()
__정리
12장. 애로우 시작
__함수 합성
__부분 애플리케이션
____바인딩
__리버스
__파이프
__커링
____커링과 부분 애플리케이션의 차이점
__논리 부정
__메모이제이션
__부분 함수
__항등과 상수
__옵틱스
____애로우 코드 생성 설정
____렌즈 생성
__정리
13장. 애로우 타입
__Option
__애로우의 타입 계층
__Either
__모나드 트랜스포머
__Try
__State
____State가 있는 코리커젼
__정리
부록. 코틀린 퀵 스타트
__코틀린 작성 및 실행
____코틀린 온라인
____콘솔에서 하기
____그래들 사용
____IntelliJ IDEA나 안드로이드 스튜디오 사용
__기본 코틀린 구문
____일반 기능
____제어 구조
__코틀린 Koans