프로그래밍 스칼라
도서명:프로그래밍 스칼라
저자/출판사:딘,왐플러/한빛미디어
쪽수:776쪽
출판일:2016-06-01
ISBN:9788968482755
목차
Part 1_스칼라와의 만남
1장. 빠른 출발: 스칼라 소개
__1.1_ 왜 스칼라인가?
__1.2_ 스칼라 설치하기
__1.3_ 스칼라 맛보기
__1.4_ 동시성 맛보기
__1.5_ 마치며
2장. 입력은 조금만, 일은 더 많이
__2.1_ 세미콜론
__2.2_ 변수 정의
__2.3_ 범위
__2.4_ 부분 함수
__2.5_ 메서드 선언
__2.6_ 타입 정보 추론하기
__2.7_ 예약어
__2.8_ 리터럴 값
__2.9_ Option, Some, None: null 사용 피하기
__2.10_ 봉인된 클래스 계층
__2.11_ 파일과 이름공간으로 코드 구조화하기
__2.12_ 타입과 멤버 임포트하기
__2.13_ 추상 타입과 매개변수화한 타입
__2.14_ 마치며
3장. 기초를 튼튼히
__3.1_ 연산자 오버로딩?
__3.2_ 빈 인자 목록이 있는 메서드
__3.3_ 우선순위 규칙
__3.4_ 도메인 특화 언어
__3.5_ 스칼라 if 문
__3.6_ 스칼라 for 내장
__3.7_ 다른 루프 표현
__3.8_ 조건 연산자
__3.9_ try, catch, finally 사용하기
__3.10_ 이름에 의한 호출과 값에 의한 호출
__3.11_ 지연값
__3.12_ 열거값
__3.13_ 문자열 인터폴레이션
__3.14_ 트레이트: 스칼라 인터페이스와 혼합
__3.15_ 마치며
Part 2_ 기본기 다지기
4장. 패턴 매칭
__4.1_ 단순 매치
__4.2_ 매치 내의 값, 변수, 타입
__4.3_ 시퀀스에 일치시키기
__4.4_ 튜플에 일치시키기
__4.5_ 케이스 절의 가드
__4.6_ 케이스 클래스에 일치시키기
__4.7_ 가변 인자 목록과 일치시키기
__4.8_ 정규 표현식과 일치시키기
__4.9_ 케이스 절의 변수 바인딩에 대해 더 살펴보기
__4.10_ 타입 일치에 대해 더 살펴보기
__4.11_ 봉인된 클래스 계층과 매치의 완전성
__4.12_ 패턴 매칭의 다른 사용법
__4.13_ 패턴 매칭에 대한 설명을 마치며
__4.14_ 마치며
5장. 암시
__5.1_ 암시적 인자
__5.2_ 암시적 인자를 사용하는 시나리오
__5.3_ 암시적 변환
__5.4_ 타입 클래스 패턴
__5.5_ 암시와 관련된 기술적 문제
__5.6_ 암시 해결 규칙
__5.7_ 스칼라가 기본 제공하는 암시
__5.8_ 암시를 현명하게 활용하기
__5.9_ 마치며
6장. 스칼라 함수형 프로그래밍
__6.1_ 함수형 프로그래밍이란 무엇인가?
__6.2_ 스칼라 함수형 프로그래밍
__6.3_ 재귀
__6.4_ 꼬리 호출과 꼬리 호출 최적화
__6.5_ 부분 적용 함수와 부분 함수
__6.6_ 함수의 커링과 다른 변환
__6.7_ 함수형 데이터 구조
__6.8_ 순회하기, 연관시키기, 걸러내기, 접기, 축약하기
__6.9_ 왼쪽 순회와 오른쪽 순회
__6.10_ 콤비네이터: 가장 뛰어난 소프트웨어 컴포넌트 추상화
__6.11_ 복사에 드는 비용은 어떤가?
__6.12_ 마치며
7장. for 내장
__7.1_ 돌아보기: for 내장의 기본 요소
__7.2_ for 내장: 내부 동작
__7.3_ for 내장의 변환 규칙
__7.4_ Option과 다른 컨테이너 타입
__7.5_ 마치며
8장. 스칼라 객체지향 프로그래밍
__8.1_ 클래스와 객체의 기초
__8.2_ 참조 타입과 값 타입
__8.3_ 값 클래스
__8.4_ 부모 타입
__8.5_ 스칼라에서의 생성자
__8.6_ 클래스의 필드
__8.7_ 입력 검증하기
__8.8_ 부모 클래스 생성자 호출하기(그리고 좋은 객체지향 설계)
__8.9_ 내포된 타입
__8.10_ 마치며
9장. 트레이트
__9.1_ 자바 8의 인터페이스
__9.2_ 믹스인으로서의 트레이트
__9.3_ 트레이트 쌓기
__9.4_ 트레이트 만들기
__9.5_ 클래스를 쓸 것인가 트레이트를 쓸 것인가?
__9.6_ 마치며
10장. 스칼라 객체 시스템 I
__10.1_ 매개변수화한 타입: 상속에 따른 변성
__10.2_ 스칼라 타입 계층구조
__10.3_ Nothing(그리고 Null)에 대한 더 많은 내용
__10.4_ Product, 케이스 클래스, 튜플
__10.5_ Predef 객체
__10.6_ 객체의 동등성
__10.7_ 마치며
11장. 스칼라 객체 시스템 II
__11.1_ 클래스와 트레이트의 멤버 오버라이딩하기
__11.2_ 객체의 상속 계층을 선형화하기
__11.3_ 마치며
12장. 스칼라 컬렉션 라이브러리
__12.1_ 제네릭, 변경 가능, 변경 불가능, 동시성, 병렬 컬렉션, 아이고!
__12.2_ 컬렉션 선택하기
__12.3_ 컬렉션 라이브러리의 설계 방식
__12.4_ 값 타입을 위한 특화
__12.5_ 마치며
13장. 가시성 규칙
__13.1_ 공개: 기본 가시성
__13.2_ 가시성 지정 키워드
__13.3_ 공개 가시성
__13.4_ 보호 가시성
__13.5_ 비공개 가시성
__13.6_ 영역 지정 비공개와 영역 지정 보호 가시성
__13.7_ 가시성에 대한 마지막 고찰
__13.8_ 마치며
Part 3_ 기초를 넘어서
14장. 스칼라 타입 시스템 I
__14.1_ 매개변수화한 타입
__14.2_ 타입 바운드
__14.3_ 맥락 바운드
__14.4_ 뷰 바운드
__14.5_ 추상 타입 이해하기
__14.6_ 자기 타입 표기
__14.7_ 구조적 타입
__14.8_ 복합 타입
__14.9_ 존재 타입
__14.10_ 마치며
15장. 스칼라 타입 시스템 II
__15.1_ 경로에 의존하는 타입
__15.2_ 의존적 메서드 타입
__15.3_ 타입 투영
__15.4_ 값에 대한 타입
__15.5_ 고계 타입
__15.6_ 타입 람다
__15.7_ 자기 재귀 타입: F-바운드 다형성
__15.8_ 마치며
16장. 고급 함수형 프로그래밍
__16.1_ 대수적 데이터 타입
__16.2_ 카테고리 이론
__16.3_ 마치며
Part 4_ 고급 주제 및 실전 응용
17장. 동시성 프로그래밍 도구
__17.1_ scala.sys.process 패키지
__17.2_ 퓨처
__17.3_ 액터를 활용해서 튼튼하고 확장성 있는 동시성 프로그래밍하기
__17.4_ 아카: 스칼라를 위한 액터
__17.5_ 피클링과 스포어즈
__17.6_ 반응형 프로그래밍
__17.7_ 마치며
18장. 스칼라를 활용한 빅데이터
__18.1_ 빅데이터: 간략한 역사
__18.2_ 스칼라로 맵리듀스 개선하기
__18.3_ 맵리듀스를 넘어서
__18.4_ 수학을 위한 카테고리
__18.5_ 스칼라 기반 데이터 도구 목록
__18.6_ 마치며
19장. 스칼라 동적 호출
__19.1_ 동기를 불어넣는 예제: 루비 온 레일즈의 ActiveRecord
__19.2_ Dynamic 트레이트를 사용해서 스칼라에서 동적 호출하기
__19.3_ DSL에서 고려할 점
__19.4_ 마치며
20장. 스칼라 도메인 특화 언어
__20.1_ 예제: 스칼라를 위한 XML과 JSON DSL
__20.2_ 내부 DSL
__20.3_ 파서 콤비네이터를 활용한 외부 DSL
__20.4_ 내부 DSL과 외부 DSL에 대한 마지막 고찰
__20.5_ 마치며
21장. 스칼라 도구와 라이브러리
__21.1_ 명령행 도구
__21.2_ 빌드 도구
__21.3_ IDE나 텍스트 편집기와 통합하기
__21.4_ 스칼라로 테스트 주도 개발하기
__21.5_ 서드파티 라이브러리
__21.6_ 마치며
22장. 자바 상호 운용성
__22.1_ 자바에서 정의한 이름을 스칼라 코드에서 사용하기
__22.2_ 자바와 스칼라 제네릭스
__22.3_ 자바빈즈 프로퍼티
__22.4_ AnyVal 타입과 자바 기본 타입
__22.5_ 자바 코드로 변환한 스칼라 이름
__22.6_ 마치며
23장. 애플리케이션 설계
__23.1_ 그 동****배운 내용 복습
__23.2_ 애노테이션
__23.3_ 모듈로서의 트레이트
__23.4_ 디자인 패턴
__23.5_ 계약에 의한 설계를 활용해서 더 좋게 설계하기
__23.6_ 파르테논 구조
__23.7_ 마치며
24장. 메타프로그래밍: 매크로와 리플렉션
__24.1_ 타입을 이해하기 위한 도구
__24.2_ 실행 시점 리플렉션
__24.3_ 스칼라의 고급 실행 시점 리플렉션 API
__24.4_ 매크로
__24.5_ 마치며