나에게 필요한 지식과 기술을 검색해 보세요.

프로그래밍 스칼라

실용적인 스칼라 활용법을 익히는 가장 확실한 실전 바이블 (2.11.x 버전 기반)

지은이

딘 왐플러, 알렉스 페인

옮긴이

오현석

출간일

2016.06.01

레벨

초중급

평점

4.1(7명)

정가

48,000

판매가

43,200

총 결제 금액

10%

43,200

적립 예정

2,160P

쪽수

776P

ISBN

9788968482755

브랜드

한빛미디어

입문자부터 고급 개발자까지, 모두가 기다린 실전 안내서

 

이 책은 다양한 코드 예제가 포함된 실전 바이블이다. 초보자와 고급 사용자를 한데 아우를 뿐 아니라, 실제 개발자들의 실용적 관심사에 초점을 맞추어 실전 활용법을 안내한다. 

 

2.11.x 버전에 대응한 최신 스칼라 언어의 특징부터 패턴 매칭, for 내장(comprehension), 고급 함수형 프로그래밍 등의 새로운 내용을 소개한다. 또한 스칼라 명령행 도구와 서드파티 도구, 라이브러리, IDE의 스칼라 지원에 대해 살펴보고, 그 과정에서 생산성을 발휘하는 방법을 제시한다.

 

 

detail2.jpg

 

출판사 리뷰

스칼라를 실전에 응용하는 방법을 알려주는 가장 확실한 안내서

 

최신 2.11.x 버전에 대응하는 이 책은 스칼라 초보자부터 고급 개발자 모두를 대상으로 스칼라 언어의 특징을 설명하고, 다양한 코드 예제와 설명을 제공하는 종합 안내서다. 스칼라 언어에 대해 총 4개 부 24개 장에 걸쳐 종합적으로 다루고, 다양한 예제 코드와 설명을 제공한다. 또 스칼라가 그 기반 플랫폼인 JVM의 고급 기능을 어떻게 활용하는지 보여주는 한편, 함수형 프로그래밍의 기초부터 고급 기법까지 심도 있게 설명한다. 독자는 스칼라를 활용해 즉각적으로 생산성을 개선할 수 있는 방법을 찾아낼 수 있을 것이다.

 

 

주요 내용

  • 간결하고 유연한 문법으로 빠르게 프로그래밍하기
  • 함수형 프로그래밍의 기초와 고급 기법 익히기
  • 함수 컴비네이터로 빅데이터 애플리케이션 작성하기
  • 트레이트 혼합을 활용하고, 데이터 추출에 패턴 매칭 사용하기
  • 함수형과 객체지향 프로그래밍 개념을 한데 묶는 정교한 타입 시스템 배우기
  • 액터 기반 동시성 모델 아카와, 비동기 코드 작성에 유용한 퓨처 다루기
  • 도메인 특화 언어(DSL) 개발법 이해하기
  • 확장성이 좋으면서 튼튼한 애플리케이션 설계 기법 배우기   

 

 

대상 독자

  • 스칼라를 처음 접하는 초보자부터 고급 프로그래머까지 전체를 아우르는 개발자층
  • 스칼라에 대한 전반적인 지식을 빠르게 얻고자 하는 경험 많은 개발자
  • 대규모의 기업용 애플리케이션이나 미들웨어 개발자

 

저자

목차

 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_ 마치며

 

리뷰

전체 평점

4.1

오탈자

  • 종이책286P1

    표기 오류

    밑에서부터 세 번째 줄

    2017-03-16
  • 종이책262P1

    표기 오류

    밑에서 9번째 줄

    2017-03-16
  • 종이책255P1

    표기 오류

    1번째 단락 4번째 줄

    2016-07-18
  • 종이책206P1

    표기 오류

    페이지 상단 코드의 첫번째 for comprehension

    2016-07-08
  • 종이책199P1

    내용 오류

    소스 코드 바로 밑 (1)번 항목에 대한 설명

    2016-07-07

48,000

10%

43,200