책 이미지

책 정보
· 분류 : 국내도서 > 컴퓨터/모바일 > 프로그래밍 언어 > 프로그래밍 언어 기타
· ISBN : 9788960776357
· 쪽수 : 892쪽
· 출판일 : 2014-11-28
책 소개
목차
1장 확장 가능한 언어
1.1 점점 여러분의 마음에서 자라가는 언어
1.2 스칼라의 확장성이 가능한 이유
1.3 왜 스칼라인가?
1.4 스칼라의 뿌리
1.5 결론
2장 스칼라 첫걸음
1단계: 스칼라 인터프리터 사용법을 익히자
2단계: 변수를 정의해보자
3단계: 함수를 정의해보자
4단계: 스칼라 스크립트를 작성해보자
5단계: while로 루프를 돌고, if로 결정해보자
6단계: foreach와 for를 사용해 이터레이션해보자
결론
3장 스칼라 두 번째 걸음
7단계: 배열에 타입 파라미터를 지정해보자
8단계: 리스트를 사용해보자
9단계: 튜플을 사용해보자
10단계: 집합과 맵을 써보자
11단계: 함수형 스타일을 인식하는 법을 배우자
12단계: 파일의 내용을 줄 단위로 읽자
결론
4장 클래스와 객체
4.1 클래스, 필드, 메소드
4.2 세미콜론 추론
4.3 싱글톤 객체
4.4 스칼라 애플리케이션
4.5 Application 트레이트
4.6 결론
5장 기본 타입과 연산
5.1 기본 타입
5.2 리터럴
5.3 연산자는 메소드다
5.4 산술 연산
5.5 관계 및 논리 연산
5.6 비트 연산
5.7 객체 동일성
5.8 연산자 우선순위와 결합 법칙
5.9 풍부한 래퍼
5.10 결론
6장 함수형 객체
6.1 분수 클래스 명세
6.2 Rational 생성
6.3 toString 메소드 다시 구현하기
6.4 선결 조건 확인
6.5 필드 추가
6.6 자기 참조
6.7 보조 생성자
6.8 비공개 필드와 메소드
6.9 연산자 정의
6.10 스칼라의 식별자
6.11 메소드 오버로딩
6.12 암시적 타입 변환
6.13 주의사항
6.14 결론
7장 내장 제어 구문
7.1 if 표현식
7.2 while 루프
7.3 for 표현식
7.4 try 표현식으로 예외 다루기
7.5 match 표현식
7.6 break와 continue 문 없이 살기
7.7 변수 스코프
7.8 명령형 스타일 코드 리팩토링
7.9 결론
8장 함수와 클로저
8.1 메소드
8.2 지역 함수
8.3 1급 계층 함수
8.4 간단한 형태의 함수 리터럴
8.5 위치 표시자 문법
8.6 부분 적용한 함수
8.7 클로저
8.8 특별한 형태의 함수 호출
8.9 꼬리 재귀
8.10 결론
9장 흐름 제어 추상화
9.1 코드 중복 줄이기
9.2 클라이언트 코드 단순하게 만들기
9.3 커링
9.4 새로운 제어 구조 작성
9.5 이름에 의한 호출 파라미터
9.6 결론
10장 상속과 구성
10.1 2차원 레이아웃 라이브러리
10.2 추상 클래스
10.3 파라미터 없는 메소드 정의
10.4 클래스 확장
10.5 메소드와 필드 오버라이드
10.6 파라미터 필드 정의
10.7 슈퍼클래스의 생성자 호출
10.8 override 수식자 사용
10.9 다형성과 동적 바인딩
10.10 final 멤버 선언
10.11 상속과 구성 사용
10.12 above, beside, toString 구현
10.13 팩토리 객체 정의
10.14 높이와 너비 조절
10.15 한데 모아 시험해보기
10.16 결론
11장 스칼라의 계층구조
11.1 스칼라의 클래스 계층구조
11.2 여러 기본 클래스를 어떻게 구현했는가?
11.3 바닥에 있는 타입
11.4 결론
12장 트레이트
12.1 트레이트의 동작 원리
12.2 간결한 인터페이스와 풍부한 인터페이스
12.3 예제: 직사각형 객체
12.4 Ordered 트레이트
12.5 트레이트를 이용해 변경 쌓아올리기
12.6 왜 다중 상속은 안 되는가?
12.7 트레이트냐 아니냐, 이것이 문제로다
12.8 결론
13장 패키지와 임포트
13.1 패키지 안에 코드 작성하기
13.2 관련 코드에 간결하게 접근하기
13.3 임포트
13.4 암시적 임포트
13.5 접근 수식자
13.6 패키지 객체
13.7 결론
14장 단언문과 단위 테스트
14.1 단언문
14.2 스칼라에서의 단위 테스트
14.3 실패 보고 시 더 많은 정보 제공하기
14.4 JUnit과 TestNG 사용
14.5 명세를 테스트로 사용하기
14.6 프로퍼티 기반 테스트
14.7 테스트 조직과 실행
14.8 결론
15장 케이스 클래스와 패턴 매치
15.1 간단한 예
15.2 패턴의 종류
15.3 패턴 가드
15.4 패턴 겹칩
15.5 봉인한 클래스
15.6 Option 타입
15.7 패턴은 어디에나
15.8 좀 더 큰 예제
15.9 결론
16장 리스트
16.1 리스트 리터럴
16.2 리스트 타입
16.3 리스트 생성
16.4 리스트 기본 연산
16.5 리스트 패턴
16.6 List 클래스의 1차 메소드
16.7 List 클래스의 고차 메소드
16.8 List 객체의 메소드
16.9 여러 리스트를 함께 처리하기
16.10 스칼라의 타입 추론 알고리즘 이해
16.11 결론
17장 컬렉션
17.1 시퀀스
17.2 집합과 맵
17.3 변경 가능 컬렉션과 변경 불가능 컬렉션 비교
17.4 컬렉션 초기화
17.5 튜플
17.6 결론
18장 상태가 있는 객체
18.1 무엇이 객체에 변경 가능한 상태를 부여하는가?
18.2 재할당 가능한 변수와 속성
18.3 사례 연구: 이산 이벤트 시뮬레이션
18.4 디지털 회로를 위한 언어
18.5 시뮬레이션 API
18.6 회로 시뮬레이션
18.7 결론
19장 타입 파라미터화
19.1 함수형 큐
19.2 정보 은닉
19.3 변성 표기
19.4 변성 표기 검사
19.5 하위 바운드
19.6 반공변성
19.7 객체의 비공개 데이터
19.8 상위 바운드
19.9 결론
20장 추상 멤버
20.1 추상 멤버 간략하게 돌아보기
20.2 타입 멤버
20.3 추상 val 변수
20.4 추상 var
20.5 추상 val 초기화
20.6 추상 타입
20.7 경로에 의존하는 타입
20.8 구조적 서브타이핑
20.9 열거형
20.10 사례 연구: 통화 변환
20.11 결론
21장 암시적 변환과 암시적 파라미터
21.1 암시적 변환
21.2 암시 규칙
21.3 예상 타입으로의 암시적 변환
21.4 호출 대상 객체 변환
21.5 암시적 파라미터
21.6 뷰 바운드
21.7 여러 변환을 사용하는 경우
21.8 암시 디버깅
21.9 결론
22장 리스트 구현
22.1 List 클래스 개괄
22.2 ListBuffer 클래스
22.3 실제 List 클래스
22.4 외부에서 볼 때는 함수형
22.5 결론
23장 for 표현식 다시 보기
23.1 for 표현식
23.2 n 여왕 문제
23.3 for 식으로 질의하기
23.4 for 표현식 변환
23.5 역방향 적용
23.6 for 일반화
23.7 결론
24장 스칼라 컬렉션 API
24.1 변경 가능, 변경 불가능 컬렉션
24.2 컬렉션 일관성
24.3 Traversable 트레이트
24.4 Iterable 트레이트
24.5 시퀀스 트레이트: Seq, IndexedSeq, LinearSeq
24.6 집합
24.7 맵
24.8 동기화한 집합과 맵
24.9 변경 불가능한 구체적인 컬렉션 클래스
24.10 변경 가능한 구체적인 컬렉션 클래스
24.11 배열
24.12 문자열
24.13 성능 특성
24.14 동일성
24.15 뷰
24.16 이터레이터
24.17 컬렉션 밑바닥부터 만들기
24.18 자바와 스칼라 컬렉션 변환
24.19 스칼라 2.7 코드를 2.8 이후로 마이그레이션하기
24.20 결론
25장 스칼라 컬렉션의 아키텍처
25.1 빌더
25.2 공통 연산 한데 묶기
25.3 새 컬렉션 통합
25.4 결론
26장 익스트랙터
26.1 예제: 전자 우편 주소 추출
26.2 익스트랙터
26.3 변수가 없거나 1개만 있는 패턴
26.4 가변 인자 익스트랙터
26.5 익스트랙터와 시퀀스 패턴
26.6 익스트랙터와 케이스 클래스
26.7 정규 표현식
26.8 결론
27장 애노테이션
27.1 애노테이션이 왜 필요한가?
27.2 애노테이션 문법
27.3 표준 애노테이션
27.4 결론
28장 XML 다루기
28.1 반 구조화 데이터
28.2 XML 개요
28.3 XML 리터럴
28.4 직렬화
28.5 XML 분석
28.6 역 직렬화
28.7 저장하기와 불러오기
28.8 XML에 대해 패턴 매치하기
28.9 결론
29장 객체를 사용한 모듈화 프로그래밍
29.1 문제
29.2 조리법 애플리케이션
29.3 추상화
29.4 모듈을 트레이트로 분리하기
29.5 실행 시점 링킹
29.6 모듈 인스턴스 추적
29.7 결론
30장 객체의 동일성
30.1 스칼라에서의 동일성
30.2 동일성 비교 메소드 작성
30.3 파라미터화한 타입의 동일성 정의
30.4 equals와 hashCode 요리법
30.5 결론
31장 스칼라와 자바의 결합
31.1 스칼라를 자바에서 사용하기
31.2 애노테이션
31.3 존재 타입
31.4 synchronized 사용
31.5 스칼라와 자바를 함께 컴파일하기
31.6 결론
32장 액터와 동시성
32.1 낙원의 골칫거리
32.2 액터와 메시지 전달
32.3 네이티브 스레드를 액터로 다루기
32.4 스레드 재활용을 통한 성능 향상
32.5 바람직한 액터 스타일
32.6 더 긴 예제: 병렬 이산 이벤트 시뮬레이션
32.7 결론
33장 콤비네이터 파싱
33.1 예제: 산술식
33.2 파서 실행
33.3 기본 정규 표현식 파서
33.4 또 다른 예제: JSON
33.5 파서의 결과
33.6 콤비네이터 파서 구현
33.7 문자열 리터럴과 정규 표현식
33.8 어휘 분석과 파싱
33.9 오류 보고
33.10 백트래킹과 LL(1)
33.11 결론
34장 GUI 프로그래밍
34.1 첫 번째 스윙 애플리케이션
34.2 패널과 레이아웃
34.3 이벤트 처리
34.4 예제: 섭씨/화씨 변환기
34.5 결론
35장 SCells 스프레드시트
35.1 화면 프레임워크
35.2 데이터 입력과 화면 표시 분리하기
35.3 식
35.4 식의 파싱
35.5 계산
35.6 연산 라이브러리
35.7 변경 전파
35.8 결론
부록 A 유닉스와 윈도우에서의 스칼라 스크립트 사용
부록 B 용어 해설
부록 C 참고 문헌