logo
logo
x
바코드검색
BOOKPRICE.co.kr
책, 도서 가격비교 사이트
바코드검색

인기 검색어

실시간 검색어

검색가능 서점

도서목록 제공

Programming in Scala 3/e

Programming in Scala 3/e

(창시자가 직접 집필한 스칼라 언어의 바이블)

마틴 오더스키, 렉스 스푼, 빌 베너스 (지은이), 오현석, 반영록, 이동욱(네피림) (옮긴이)
  |  
에이콘출판
2017-05-23
  |  
50,000원

일반도서

검색중
서점 할인가 할인률 배송비 혜택/추가 실질최저가 구매하기
yes24 로딩중
교보문고 로딩중
영풍문고 로딩중
인터파크 로딩중
11st 로딩중
G마켓 로딩중
쿠팡 로딩중
쿠팡로켓 로딩중
notice_icon 검색 결과 내에 다른 책이 포함되어 있을 수 있습니다.

중고도서

검색중
로딩중

e-Book

검색중
서점 정가 할인가 마일리지 실질최저가 구매하기
로딩중

책 이미지

Programming in Scala 3/e

책 정보

· 제목 : Programming in Scala 3/e (창시자가 직접 집필한 스칼라 언어의 바이블)
· 분류 : 국내도서 > 컴퓨터/모바일 > 프로그래밍 언어 > 프로그래밍 언어 기타
· ISBN : 9788960777736
· 쪽수 : 872쪽

책 소개

스칼라는 여러 함수 언어적 기법과 객체지향 기법을 한데 잘 녹여서 루비나 파이썬 같은 동적 언어 못지않게 간결하면서 풍부한 표현력을 가진 언어다. 스칼라를 만든 마틴 오더스키 등이 집필한 이 책은 스칼라의 다양한 측면을 완벽하게 설명한다.

목차

1장. 확장 가능한 언어
__1.1 여러분의 마음에서 점점 자라가는 언어
__1.2 스칼라의 확장성이 가능한 이유
__1.3 왜 스칼라인가
__1.4 스칼라의 뿌리
__1.5 결론

2장. 스칼라 첫걸음
__2.1 1단계: 스칼라 인터프리터 사용법을 익히자
__2.2 2단계: 변수를 정의해보자
__2.3 3단계: 함수를 정의해보자
__2.4 4단계: 스칼라 스크립트를 작성해보자
__2.5 5단계: while로 루프를 돌고, if로 결정해보자
__2.6 6단계: foreach와 for를 사용해 이터레이션해보자
__2.7 결론

3장. 스칼라 두 번째 걸음
__3.1 7단계: 배열에 타입 파라미터를 지정해보자
__3.2 8단계: 리스트를 사용해보자
__3.3 9단계: 튜플을 사용해보자
__3.4 10단계: 집합과 맵을 써보자
__3.5 11단계: 함수형 스타일을 인식하는 법을 배우자
__3.6 12단계: 파일의 내용을 줄 단위로 읽자
__3.7 결론

4장. 클래스와 객체
__4.1 클래스, 필드, 메소드
__4.2 세미콜론 추론
__4.3 싱글톤 객체
__4.4 스칼라 애플리케이션
__4.5 App 트레이트
__4.6 결론

5장. 기본 타입과 연산
__5.1 기본 타입
__5.2 리터럴
__5.3 문자열 인터폴레이션
__5.4 연산자는 메소드다
__5.5 산술 연산
__5.6 관계 연사과 논리 연산
__5.7 비트 연산
__5.8 객체 동일성
__5.9 연산자 우선순위와 결합 법칙
__5.10 풍부한 래퍼
__5.11 결론

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.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 자신만의 값 클래스 정의
__11.5 결론

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 명세로 테스트하기
__14.5 프로퍼티 기반 테스트
__14.6 테스트 조직과 실행
__14.7 결론

15장. 케이스 클래스와 패턴 매치
__15.1 간단한 예
__15.2 패턴의 종류
__15.3 패턴 가드
__15.4 패턴 겹침
__15.5 봉인된 클래스
__15.6 Option 타입
__15.7 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장. 컬렉션 자세히 들여다보기
__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 결론

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 스칼라와 자바를 함께 컴파일하기
__31.5 자바 8과 스칼라 2.12의 통합
__31.6 결론

32장. 퓨처와 동시성
__32.1 낙원의 골칫거리
__32.2 비동기 실행과 Try
__32.3 Future의 사용
__32.4 Future 테스트
__32.5 결론

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 결론

저자소개

마틴 오더스키 (지은이)    정보 더보기
스칼라 언어의 창시자다. 스위스 로잔 EPFL의 교수이며, 타입세이프 사(Typesafe Inc.)의 공동 창업자다. 프로그래밍 언어와 시스템 분야에서 일해왔으며, 주로 객체지향과 함수형 프로그래밍을 조합하는 분야를 연구해왔다. 2001년 이후, 스칼라를 설계하고 구현하고 다듬는 일에 집중해왔다. 이전에는 자바 제네릭스 설계자의 일원으로 자바 개발에 영향을 미쳤으며, 현재 사용 중인 javac 참조 컴파일러를 맨 처음 작성한 프로그래머다. ACM의 펠로우f(ellow)이기도 하다.
펼치기
렉스 스푼 (지은이)    정보 더보기
셈믈(Semmle)의 소프트웨어 엔지니어다. EPFL에서 박사 후 과정(post-doc)으로 2년간 스칼라를 사용했다. 조지아텍(Georgia Tech)에서 전산학 박사학위를 받았으며, 동적 언어에 대한 정적 분석 분야를 전공했다. 렉스는 스칼라와 더불어 다양한 프로그래밍 언어를 사용한 경험이 있다. 스몰토크(SmallTalk) 같은 동적언어부터 로직블록스(LogicBlox)를 뒷받침하는 논리언어인 X10 등을 경험했다. 현재 아내와 함께 애틀랜타에서 고양이 두 마리, 치와와, 거북이와 함께 살고 있다.
펼치기
빌 베너스 (지은이)    정보 더보기
아티마 개발자 웹사이트를 출판하는 회사인 아티마(Artima, Inc.)의 회장이며, 에스컬레이트 소프트웨어 유한회사(Escalate Software), LLC.의 공동 창립자다. 「자바월드(JavaWorld)」 잡지에 실리는 그의 유명한 칼럼은 자바 내부, 객체지향 설계, Jini 등을 다룬다. Jini가 태동할 무렵부터 Jini 커뮤니티에서 계속 활동해왔으며 Jini 커뮤니티의 서비스UIServiceUI 프로젝트를 이끌어왔다. 서비스UI는 Jini 서비스에 대한 사용자 인터페이스로 일종의 산업표준처럼 쓰이고 있다. 또한 스칼라와 자바 개발자를 위한 오픈소스 테스트 도구인 스칼라테스트(ScalaTest)의 설계자이자 리드 프로그래머이기도 하다.
펼치기
오현석 (옮긴이)    정보 더보기
모빌리티42 이사로 일하면서 매일 고객의 요청에 따라 코드를 만드는 현업 개발자다. 어릴 때 처음 컴퓨터를 접하고 매혹된 후 경기과학고, KAIST 전산학과(프로그래밍 언어 전공 석사)를 거치면 서 계속 컴퓨터를 사용해왔다. 직장에서는 주로 코틀린이나 자바를 사용한 서버 프로그래밍을 하고, 주말이나 여가 시간에는 번역을 하거나 공부를 하면서 즐거움을 찾는다. 시간이 아주 많이 남 을 때는 시뮬레이션 게임을 즐기면서 머리를 식히고, 어떻게 하 면 막내 자식을 프로그래밍의 세계로 끌어들일 수 있을지를 고 민하는 아빠이기도 하다. 『코어 파이썬 애플리케이션 프로그래밍』(에이콘, 2014)을 시작으로 『코틀린 함수형 프로그래밍』(에이콘, 2023), 『아토믹 코틀린』(길벗, 2023), 『코딩 좀 아는 사람』(윌북, 2023) 등 30여 권의 책을 번역했다.
펼치기
반영록 (옮긴이)    정보 더보기
뉴욕대(NYU)에서 컴퓨터 사이언스 석사 학위를 받았다. 학부 시절부터 여러 함수형 언어에 관심이 많았고 2012년에 스칼라를 알게 돼 공부하기 시작했으며, 현업에서 애플리케이션 서버 개발에 스칼라를 많이 사용했다. 현재는 카카오에서 기계 번역 연구 및 개발에 참여하고 있다.
펼치기
이동욱(네피림) (지은이)    정보 더보기
LG CNS와 SK Planet에서 SI 업무, 전문 강사, 프레임워크 개발 등을 담당했습니다. 이후 소프트웨어 제품을 출시하려던 목표를 이루고자 스타트업 현장으로 자리를 옮겨 100만 사용자의 글로벌 여행 기록 서비스 VOLO, 와인 배송 서비스인 와인포인트의 개발을 리딩했습니다. 현재 데이블의 스페이스비전그룹에서 컴퓨터 비전 기반의 옥외 광고 플랫폼 구축을 담당하고 있습니다. _현) 데이블 스페이스비전그룹 테크니컬 디렉터 _전) 와인포인트 CTO _전) SK플래닛 사내 벤처 VOLO 공동 창업자 _전) 한국 스칼라 사용자 모임(라스칼라코딩단) 설립·운영
펼치기

책속에서

이 책을 그냥 쭉 읽어보는 것만으로도 스칼라에 대한 많은 것을 배울 수 있다. 하지만 좀 더 노력한다면 스칼라를 더 빠르고 완벽하게 익힐 수 있을 것이다.
무엇보다도 이 책이 제공하는 다양한 프로그래밍 예제의 이점을 살릴 수 있을 것이다. 직접 예제를 타이핑해보는 것은 마음이 코드를 한 줄 한 줄 따라가게 만드는 한 가지 방법이다. 코드를 여러 가지로 변형해보는 것은 예제를 더 재미있게 만들고, 각 동작을 제대로 이해했는지 확인할 수 있는 방법이기도 하다.
두 번째로, 여러 온라인 포럼에 들어가 보라. 이를 통해 여러분을 비롯한 스칼라 사용자들이 서로 도울 수 있다. 수많은 메일링 리스트, 토론 포럼, 채팅 방, 위키, 스칼라 관련 글 등이 있다. 필요한 정보를 제공하는 곳에서 시간을 보내라. 그렇게 하면 작은 문제 때문에 허비하는 시간이 훨씬 줄어서 더 중요하고 어려운 문제를 푸는 데 시간을 쓸 수 있을 것이다.
마지막으로 책을 충분히 읽었다면 스스로 프로그래밍 프로젝트를 만들어보라. 작은 프로그램을 바닥부터 만들어보고, 더 큰 프로그램에 들어가는 애드인(add-in)을 만들어보라. 책을 읽기만 해서는 그리 멀리 나아갈 수 없다.
- 저자 서문


추천도서

이 포스팅은 쿠팡 파트너스 활동의 일환으로,
이에 따른 일정액의 수수료를 제공받습니다.
도서 DB 제공 : 알라딘 서점(www.aladin.co.kr)
최근 본 책