본문내용 바로가기
MD의선택 무료배송 소득공제

Programming in Scala 창시자가 직접 집필한 스칼라 언어의 바이블

2판
마틴 오더스키 , 렉스 스푼 , 빌 베너스 지음 | 오현석 , 이동욱 , 반영록 옮김 | 에이콘출판 | 2014년 11월 28일 출간

이 책의 다른 상품 정보

  • 정가 : 50,000원
    판매가 : 45,000 [10%↓ 5,000원 할인]
  • 혜택 :
    [기본적립] 2500원 적립 [5% 적립] [추가적립] 5만원 이상 구매 시 2,000원 추가적립 안내 [회원혜택] 회원 등급 별, 3만원 이상 구매 시 2~4% 추가적립 안내 [리뷰적립] 리뷰 작성 시 e교환권 최대 300원 추가적립 안내
  • 추가혜택 : 포인트 안내 도서소득공제 안내 추가혜택 더보기
  • 배송비 : 무료 배송비 안내
  • 도서상태 : 절판
상품상세정보
ISBN 9788960776357(8960776351)
쪽수 892쪽
크기 188 * 250 * 13 mm /192g 판형알림
이 책의 원서/번역서 Programming in Scala: A Comprehensive Step-by-Step Guide, 2nd Edition / Martin Odersky

책소개

이 책이 속한 분야

『Programming in Scala』은 함수, 트레이트, 암시적 변환, 모듈 등 스칼라의 기본 문법과 컬렉션 사용법, 컬렉션의 내부 구조, 객체지향 및 함수 프로그래밍을 활용하는 방법과 액터, 자바와의 조합, 파싱, GUI 프로그래밍 같은 응용을 다룬 책이다.

목차

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 참고 문헌

출판사 서평

★ 요약 ★

스칼라(Scala)는 함수 값(클로저) 등의 여러 함수 언어적 기법과 객체지향, 트레이트 등의 객체지향 기법을 한데 잘 녹여서, 루비나 파이썬 같은 동적 언어 못지않게 간결하면서 풍부한 표현력을 가진 언어다. 스칼라를 만든 마틴 오더스키 등의 저자가 집필한 이 책은 이러한 스칼라의 다양한 측면을 완전하게 설명한 스칼라 언어의 바이블이다.
이 책은 함수, 트레이트, 암시적 변환, 모듈 등 스칼라의 기본 문법과 컬렉션 사용법, 컬렉션의 내부 구조, 객체지향 및 함수 프로그래밍을 활용하는 방법을 다룬다. 그리고 액터... 더보기

Klover 리뷰 (0)

북로그 리뷰 (0) 쓰러가기

북로그 리뷰는 본인 인증 후 작성 가능합니다.
책이나 타인에 대해 근거 없이 비방을 하거나 타인의 명예를 훼손할 수 있는 내용은 비공개 처리 될 수 있습니다.
※ 북로그 리뷰 리워드 제공 2021. 4. 1 종료

문장수집 (0) 문장수집 쓰기 나의 독서기록 보기
※구매 후 문장수집 작성 시, 리워드를 제공합니다. 안내

교환/반품/품절안내

※ 상품 설명에 반품/교환 관련한 안내가 있는 경우 그 내용을 우선으로 합니다. (업체 사정에 따라 달라질 수 있습니다.)

교환/반품/품절안내
반품/교환방법 마이룸 > 주문관리 > 주문/배송내역 > 주문조회 > 반품/교환신청 ,
[1:1상담>반품/교환/환불] 또는 고객센터 (1544-1900)

※ 오픈마켓, 해외배송주문, 기프트 주문시 [1:1상담>반품/교환/환불]
    또는 고객센터 (1544-1900)
반품/교환가능 기간 변심반품의 경우 수령 후 7일 이내,
상품의 결함 및 계약내용과 다를 경우 문제점 발견 후 30일 이내
반품/교환비용 변심 혹은 구매착오로 인한 반품/교환은 반송료 고객 부담
반품/교환 불가 사유
  • 소비자의 책임 있는 사유로 상품 등이 손실 또는 훼손된 경우
    (단지 확인을 위한 포장 훼손은 제외)
  • 소비자의 사용, 포장 개봉에 의해 상품 등의 가치가 현저히 감소한 경우
    예) 화장품, 식품, 가전제품(악세서리 포함) 등
  • 복제가 가능한 상품 등의 포장을 훼손한 경우
    예) 음반/DVD/비디오, 소프트웨어, 만화책, 잡지, 영상 화보집
  • 소비자의 요청에 따라 개별적으로 주문 제작되는 상품의 경우 ((1)해외주문도서)
  • 디지털 컨텐츠인 eBook, 오디오북 등을 1회 이상 다운로드를 받았을 경우
  • 시간의 경과에 의해 재판매가 곤란한 정도로 가치가 현저히 감소한 경우
  • 전자상거래 등에서의 소비자보호에 관한 법률이 정하는 소비자 청약철회 제한 내용에
    해당되는 경우
(1) 해외주문도서 : 이용자의 요청에 의한 개인주문상품으로 단순변심 및 착오로 인한 취소/교환/반품 시 ‘해외주문 반품/취소 수수료’ 고객 부담 (해외주문 반품/취소 수수료 : ①서양도서-판매정가의 12%, ②일본도서-판매정가의 7%를 적용)
상품 품절 공급사(출판사) 재고 사정에 의해 품절/지연될 수 있으며, 품절 시 관련 사항에 대해서는
이메일과 문자로 안내드리겠습니다.
소비자 피해보상
환불지연에 따른 배상
  • 상품의 불량에 의한 교환, A/S, 환불, 품질보증 및 피해보상 등에 관한 사항은
    소비자분쟁해결 기준 (공정거래위원회 고시)에 준하여 처리됨
  • 대금 환불 및 환불지연에 따른 배상금 지급 조건, 절차 등은 전자상거래 등에서의
    소비자 보호에 관한 법률에 따라 처리함
바로가기
  • 우측 확장형 배너 2
  • 우측 확장형 배너 2
최근 본 상품