메뉴 바로가기 검색 및 카테고리 바로가기 본문 바로가기

한빛출판네트워크

프로그래밍 스칼라

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

한빛미디어

번역서

절판

  • 저자 : 딘 왐플러 , 알렉스 페인
  • 번역 : 오현석
  • 출간 : 2016-06-01
  • 페이지 : 776 쪽
  • ISBN : 9788968482755
  • 물류코드 :2275
  • 초급 초중급 중급 중고급 고급
4.1점 (7명)
좋아요 : 46

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

 

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

 

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

 

 

detail2.jpg

 

딘 왐플러 저자

딘 왐플러

타입세이프 사의 빅데이터 제품 아키텍트다. 그는 스칼라와 함수형 프로그래밍이 빅데이터 애플리케이션에 이상적인 도구라고 늘 주장해온 옹호자다. 딘은 『하이브 완벽 가이드』의 공저자며, 『자바 개발자를 위한 함수형 프로그래밍』(이상 한빛미디어)의 저자다. 그는 여러 오픈 소스 프로젝트에 기여했으며, 다양한 기술 콘퍼런스와 시카고 지역의 여러 사용자 그룹을 함께 조직했다.

알렉스 페인 저자

알렉스 페인

초기 단계의 스타트업과 주로 작업하는 개발자이자 저술가며 엔젤 투자가다. 그는 트위터의 플랫폼 리드로 스칼라를 사용했고, 온라인 뱅킹 서비스인 심플 사의 CTO로 스칼라 제품을 출시했다. 알렉스는 새로운 프로그래밍 언어와 개발 도구를 보여주는 연례 ‘최신 언어 콘퍼런스’를 조직했다.

오현석 역자

오현석

모빌리티42 이사로 일하면서 매일 고객의 요청에 따라 코드를 만드는 현업 개발자다. 어릴 때 처음 접한 컴퓨터에 매료된 후 경기과학고등학교, KAIST 전산학 학사와 프로그래밍 언어 전공 석사를 취득하며 계속 컴퓨터를 사용했다. 직장에서는 주로 코틀린이나 자바를 사용한 서버 프로그래밍을 하고, 주말이나 빈 시간에는 번역을 하거나 공부하면서 즐거움을 찾는다. 『코어 파이썬 애플리케이션 프로그래밍』(에이콘, 2014)을 시작으로 『배워서 바로 쓰는 스프링 프레임워크』(2020), 『러닝 리액트(2판)』(2021), 『고성능 파이썬(2판)』(이상 한빛미디어, 2021) 등 30권 이상의 책을 번역했다.

 

 

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

 

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

 

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

 

 

주요 내용

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

 

 

대상 독자

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

 

솔직하게 털어놓자면, 1장 소개 부터 쉽지 않았다. 축약형은 익숙하지 않아서 거듭 읽어야 했고 동시성을 다룬 부분은 모르는 것 * 모르는 것 승수효과가 나서 그냥 예제 코드를 따라 해보는 데에 그쳤다.

1장이 맛보기라고 했는데 맛보기가 아니고 스칼라 자랑같았다.

1장에서 혼이 나가서 그런가 2장에서는 코드는 조금씩 눈에 들어왔다. 하지만 예제를 이어서 바꿔나가는 걸 보노라면 끊임없이 ‘우아한 표현’을 지도하는 선생님이 등 뒤에 서 있는 기분이었다. 3장까지도 기초란다. 도메인 특화 언어를 소개할 때는 ‘아 이거 진짜 자랑이구나’ 싶었다. try-catch-finally 는 제목만 보고도 너무 반가웠다. 조금이라도 아는 게 나와서;ㅅ;

예제를 따라하면서 조금씩 바꿔보는 편인데 2부 들어가서는 예제를 바꿀 엄두가 안났다. 30% 정도 실제로 예제만 따라 했을 뿐 내용을 제대로 이해하지는 못한 것 같다.

 

하지만 내게 어렵다는 것과는 별개로, 책은 매끄러웠다. 

번역은 어색함이 없었고, 예제는 눈에 잘 안들어 오지만 실행시켜 보면 아, 이럴 수도 있구나 하고 놀라곤 했다. 역시 프로그래머는 백문이 불여일타인 것일까. 책 서문에도 이럴 때는 이렇게 표기하겠다고 잘 써 두기도 했고 코딩폰트도 괜찮았다. 원본을 본 적이 없어서 모르겠지만 거의 흑백인 책에(grayscale?) 코드도 잔뜩 있는데 이정도로 만들기 어려웠을 것 같다.

책에 아쉬운 점이라면, 첫 장을 스칼라 자랑(?)으로 시작한 것과 압도하는 지식량으로 겁먹기 쉽다는 점(…) 하지만 일단 곁에 있으면 네가 이해할 때 까지 가르쳐주고야 말겠다는 선생님이 있는 기분이라 든든하긴 하다. 

 

 

이 책으로 곧 스터디도 꾸려진다고 하니까, 스터디에서 다시 한 번 천천히, 숨을 고르면서 습득해보려고 한다. 혼자 가면 멀리 못가니 함께 가려고 :)

https://brunch.co.kr/@daejin/21

 

O' Reilly 책들 중 "Learning"로 시작하는 책에 비해 "Programming"으로 시작하는 책들은 깊이있는 내용을 다루기 때문에 학습곡선이 큰 편입니다. Porgramming Scala도 예외는 아닙니다.

 

지금부터 다룰 예제는 이렇게 일찍 다루기에는 약간 벅차다.

 

첫 장부터 상당히 어렵게 느껴졌습니다. 개발언어 관련 책은 내용을 정확히 이해하지 않아도 예제를 여러번 수행해보면 내용보다 더 명확히 이해가 되는 경우가 많이 있습니다. 하지만 초반 예제부터 동시성 맛보기, Future 맛보기로 시작하는 이 책 예제에서는 그런 도움을 받을 수 없었습니다. 대신 물음표만 머리속에 가득 남았던 것으로 기억합니다.

 

Part I 스칼라와의 만남

 

Part I은 스칼라의 핵심적인 특징을 설명하고 있습니다. 그 핵심을 놓치게 되면 소스가 점점 모호해져 결국은 이해가 불가능했습니다. 그 때마다 "Part I"여기로 다시 돌아왔습니다. 제가 정확히 이해하지 못해서 돌아왔던 부분은 다음과 같습니다.

 

59페이지, 매개변수화한 타입 지정할 때 각괄호[]를 사용한다는 사실 : 어느순간부터 [A]와 같이 배열도 아닌 이상한 문법이 보인다면, 59페이지를 다시 보시길 바랍니다. CPP, Java에 익숙한 개발자들은 제네릭으로 알고 있는 꺽쇠<> 표기법을 Scala에서는 각괄호[]를 사용합니다. 그리고 제네릭이 아닌 매개변수화한 타입이라고 부릅니다. 지금 생각해보면 제네릭이라는 모호한 표현보다, "매개변수화한 타입지정" 이라는 표현이 더 명확하고 설명적인 것 같습니다.

 

91페이지, 2.5.2 인자 목록이 여러 있는 메서드 : 함수명 뒤에 이해가 되지 않는 ()(), 혹은 (){} 등이 나타난다면 91페이지를 다시 봐야합니다. 스칼라는 함수 본문을 변수 값 대입하듯이 =(등호)를 사용합니다. 함수명과 =(등호) 사이에있는 (), {}는 모두 함수에 넘겨지는 인자(파라메터)입니다. ()에 인자를 넣고, 바로 뒤 {}에 람다 함수를 넣게되면 일반적인 다른언어의 함수정의와 비슷하게 보여 정확히 알고 있지 않으면 혼란스러울 수 있습니다.

 

s.draw(Point(1.0, 2.0)){str => println(s"ShapesDrawingActor: $str")}

 

함수를 정의한 것이 아니라 draw에 Point(1.0, 2.0), str => println(s"ShapesDrawingActor: $str") 인자를 전달한 것입니다.

 

120페이지, 2.9 Option, Some, None : 이 장은 충분히 이해하고 넘어갔다고 생각했는데, 여러번 읽었습니다.

 

그 외에 _ 위치지정자, 중위 표기법, 콜론(:) 등은 아직도 소스에서 나타나면 눈에 어색하네요.

 

 

Part 2 기본기 다지기

 

Part 1에서 충분한 기본기가 생겼다면, "4장 패턴 매칭"과 "5장 암시"에서 이 책의 진가를 서서히 느낌 수 있도록 구성되어 있습니다. 그리고 "6장 스칼라 함수형 프로그램밍"은 갑자기 저자가 바뀌었나 생각될 정도로 쉽고 자세하게 작성되어 있습니다. 하지만 함수형 프로그램밍의 재미를 알기에는 조금 부족했던 것 같습니다.

( 참 저자가 두명입니다. 누가 몇 장을 썼는지 궁금하네요. )

 

이후 for 내장, 객체지향 프로그램밍, 트레이트, 객체 시스템, 컬렉션 라이브러리를 다루고 있습니다.

 

Part 3,4

 

Part 2까지 완독했다면, Part 3는 정말 깊이 있는 내용을 다루기 시작한다. 스칼라의 타입시스템, 함수형 프로그램밍의 카테고리, 펑터, 모나드 다루고 있습니다.

 

Part 4에서는 Part 1에서 맛보기만 보여줬던 Future, Akka를 다시 설명하며, 빅데이터, 동적 호출, 도메인 특화언어 등을 설명합니다.

 

"21 스칼라 도구와 라이브러리"는 Part 4에 있는게 조금 이상합니다. 오히려 가능한 빨리 읽어서 코드작성시 도움이 되도록 하는 것이 좋아보입니다.

 

단점, 메소드 설명을 위한 '단축url'

 

종종 ()를 감싸서 나오는 단축url은 글을 읽는데 너무 방해되는 요소였습니다. 특히 스칼라 함수명 뒤에 괄호()는 다른언어에 비해 조금 더 신경쓰이기 때문에, 이 단축url은 절 충분히 괴롭혔던 것 같습니다. 미주나, 각주로 처리했으면 좋지않았을까 생각합니다. 그리고 책을 읽고 실제 개발을 할 때 스칼라 문서를 찾는 방법을 알고있어야하는데, 단축url은 그런 학습 및 경험에 대한 방해되는 요소라고 생각합니다. 또한 추후 url이 바뀌거나 언어가 버전업되었을 때 잘못된 정보가 종이로 영원히 남아 있을 수도 있겠네요.

 

오랜만에 두꺼운 책을 소화한 것 같습니다. 보통 예제 하나하나 손으로 쳐가며 천천히 읽어보는데, 리뷰기간이 정해져 있어 Part 3, 4장은 정상적으로 소화하지 못했습니다.

 

Programming in Scala을 반쯤 읽고있는 중에 이 책을 받았습니다. 그래서 읽기를 잠시 중단하고 이 책부터 읽기를 시작했습니다. Programming in Scala에 비해 Programming Scala에서는 문장이 잘 이해가 안되어 몇 번이나 다시 읽었습니다.

 

하지만 지금 다시 생각해보면 Programming Scala이 여러가지 측면에서 조금 더 깊은 이해를 요하고 있기때문이라고 생각합니다. 앞으로 스칼라가 얼마나 인기를 얻게 될지는 모르겠지만 어느분의 말처럼, 곁에 두고있으면 분명 도움이 될꺼라 생각합니다.

 

본 리뷰는 한빛미디어에서 제공된 책으로 작성되었습니다.

[스칼라]

 

스칼라는 함수형 언어다. 그러나 호환성과 대중성을 위해 객체지향 언어의 특징과 문법을 상당수 유지했다. 스칼라는 문제가 있을 때 단 하나의 풀이방식을 취하려는 언어들과는 다르다. 작성자의 수준과 취향에 따라 다양한 해법이 존재한다. 심지어는 함수형 언어의 특징을 전혀 사용하지 않고도 코딩할 수 있다. 사용자의 이해 정도에 따라 구현하는 방식이 천차만별이다. 인터넷에 널린 정보로는 왕도를 찾기 힘든 이유다.

 

흔히 제대로 된 가이드가 없으면 삽질(?)하기 좋은 언어로 스칼라를 꼽는다. 대학에서 이론에 기반을 두고 만든 언어이므로, 함수형 이론이나 타입 시스템 등의 개념 하나하나를 너무 깊이 파고 들어가면 마치 미궁에 빠진 것처럼 오래 헤매게 되는 경우가 다반사다. 이 책으로 스칼라 세계에 들어온다면 그런 부작용을 최소화할 수 있다. 이 책은 개념 설명과 실용성에 균형을 잘 맞췄다. 짧게 구성된 한 장(Chapter)에서 개념을 먼저 배우고 짧은 예제를 REPL을 활용해서 실행하다 보면 자연스럽게 이해하게 된다. 실무의 어떤 맥락에서 실제 활용될 수 있을지에 대한 많은 팁을 제공함은 물론이다. 

 

 

[디자인/편집]

 

여백, 글씨체, 줄 간격, 본문의 글씨 크기 등 기본적인 편집은 흠잡을 만한 부분이 없다. IT 출판의 명가 한빛미디어답게 읽기 좋은 구성이다. 다만, 도서 내 코드 예제에 line number를 추가하고 예제번호를 달았더라면 더 좋았을 것이다. 예제파일도 장/절 구분을 해서 따로 묶었어야 했다. 현재는 폴더와 파일이 전부 영문 키워드만으로 구성되어 있다. 책을 읽다가 해당 코드를 빠르게 찾아서 실행해보고 싶을 때, 예를 들면, concurrency 폴더 안에 async 폴더 안에 async.sc 파일을 일일이 들어가서 찾아서 실행해야 한다. 책을 덮고 관련 내용을 찾아볼 때도, 정확한 영문 키워드가 기억나지 않으면 파일을 찾을 수가 없다. 여간 불편한 게 아니다. 

 

 

[번역]

 

본 도서의 역자는 KAIST에서 전산학을 공부했으며 현재 호주에 거주 중인 개발자이다. 또한, IT 전문번역자로서 또 다른 스칼라 바이블인 Programming in Scala 번역에 참여했던 경력이 있다. 번역은 깔끔하고 완성도가 높다. 한글과 구성방식이 정반대인 영어 문장에 대한 대폭적인 의역보다는, 원서의 내용을 가능한 한 변경하지 않으면서도 한국말로 이해하기 쉽도록 구성했다. 또한, 국내에서 가장 신뢰할만한 스칼라 커뮤니티인 [라 스칼라 코딩단]에서 번역자와 함께 도서 전반에 걸쳐 많은 고민을 한 흔적이 보인다. 적어도 이 책은 추천사의 표현대로 "번역서를 읽다 도저히 이해가 되지 않는 부분을 만나, 번역의 질을 의심하는 일"은 많지 않을 것 같다. 

 

 

[총평]

 

책은 생각보다 두껍고 수준이 높다. 770페이지의 책이지만 체감으로는 한 900페이지가량 되는 것 같다. 초급자를 위한 책은 아니다. 어떻게 보면 당연하다. 스칼라는 프로그래밍 입문자를 위한 언어가 아니기 때문이다. 충분한 시간을 투자해서 제대로 이해해야만 활용할 수 있는 언어이다. 이 책은 좋은 저술, 열정적인 번역, 깔끔한 편집의 조합으로 스칼라 바이블로 손꼽을만하다. 스칼라를 능숙하게 다루는 데는 많은 노력이 필요하지만, 그 시간은 가치 있다. 무엇보다도 스칼라는 그 자체로 매력적인 언어로, 실제 사용하는 언어가 무엇인지와 관계없이 함수형 패러다임에 대한 많은 통찰을 얻을 수 있기 때문이다. 

 

프로그래밍 스칼라 -한빛 미디어- Disclaimer: 먼저 한빛 리더스에 선정해 되었고, 의무적으로 해야만 하는 리뷰이지만,최대한 공정하고 객관적으로 그리고 능동적으로 리뷰를 진행하겠습니다. 책을 무료로 배송 받긴 하였지만, 저는 필자와 출판사쪽과는 아무 커넥션이 없음을 알려 드립니다.

 

 

 

 

Background: 먼저 전공은 Computer Science 학사, 필드에서 일을 한지는 6년차, 학부때 코딩 경험까지 포함하면 12년 정도이며, 현재는 기술 기반 스타트업을 운영하고 있습니다. 필드에서 프리랜서 혹은 A.A. 정도의 role 을 수행하였음을 밝혀 둡니다. 클로저라든지 lisp 라든지, haskell 같은 순수 함수형 랭귀지를 계속해서 활용하려고 노력하는 중입니다. Node.js + React.js 같은 js 기반의 Resume 온라인 관리 도구 http://www.commitcareer.com 을 개발하고 있습니다.

 

 

 

 

대상독자: Scala 를 master? 레벨로 올려줄 수 있는 수준있는 설명과 활용법에 관한 휼룡한 책이라고 생각합니다. (하지만 이 책이 scala 를 처음 접하는 분에게 적합하지 않다는 점도 알려드립니다.)

 

 

 

 

리뷰:

먼저 저의 학습 스타일(?)에 대해 알려드리고 시작을 하는게 좋을것 같습니다.

저는 프로그래밍 랭귀지를 공부할때 구입할 수 있는(?) 책들은 다 구입해서 읽어봅니다.(수능을 볼때 부터 들인 습관입니다….) 

 

장점으로는 읽다보면 중요한 개념들이 여러책에서 반복되는 걸 느낄 수(?) 있습니다.

당연한 말이지만 프로그래밍 언어에서 중요한 개념은 어떤 책이라도 반복되게 마련이지요.

또 다른 장점으로는 가령 a라는 개념을 여러책에서 다양한 관점으로 설명을 듣게 된다는 점이지요.

골고루 다양한 시각에서 개념들을 바라보는 통찰력을 느낄 수 있어서 좋아하는 학습법인데요.

아마 저는 scala 를 2014년 부터 공부했고 함수형 랭귀지들을 접하면서 더욱 더 scala 에 대한 

이해가 깊어진 케이스 입니다. (물론 구입할 수 있는 scala 책들은 거의 구입했습니다..;)

 

PROS.

이 책의 구성은 크게 함수형에 대한 내용부터 시작합니다.

그 후 8장에서 OOP 에 대한 내용이 시작됩니다.

4장, 5장은 어렵습니다만 중요한 주제입니다.

제가 먼저 읽어본 책 중 “빠르게 시작하는 스칼라” 책과 Martin Odersky 의 책과 비교를 해보자면, “빠르게”는 그냥 쿨하게 리뷰한다는 식으로 쭉 보면 아 이게 이런 얘기구나 하고 이해가 가는 느낌이고(난이도가 높지 않다는 뜻입니다.), Martin Odersky 의 책을 보면 아 역시 교수 출신이라 아카데믹 하구나.. 아 책이 두껍구나.. 이 개념은 실제 코드에서 어떻게 쓰이는 걸까.. 하는 생각들이 남는 반면에, 이 책의 장점은 코드를 이용해 유용한! 실제 사례를 바탕으로 그것도 고급주제를 가지고! 여러 다양한 내용들이 이어집니다.

 

사실 java 로도 함수형처럼 쓰려고 노력을 하면 그렇게 코드를 짤 수(?)도 있습니다.

또 javascript 로 OOP 처럼 쓰려고 노력을 하면 그렇게 코드를 짤 수(?)도 있습니다.

하지만 둘다 어색 하겠죠?

 

그럼 scala 는 뭐냐..네 scala 는 함수형에서도 몇가지 패러다임을 가져왔고, OOP 의 패러다임도 가져왔기에, 맘만 먹으면 간결하게 함수형 패러다임에 가깝게 코드 작성이 가능하고, OOP 의 패러다임에 가깝게도 코딩이 가능한 패러다임을 가진 언어다라고 정의 하면 좋을것 같습니다.

 

그래서 이책에서도 함수형에 해당하는 scala 의 기능을 앞쪽에 배치하고, OOP 에 대한 내용은 조금 뒤쪽에 배치를 해둔 센스를 알 수 있습니다. 독자가 함수형 언어를 경험하지 않았다면 scala 의 언어 스펙이 어떤게 함수형 언어에서 가져왔을지 모르니까 구분한게 아닌가 생각도 됩니다. (Lisp 에서 가져온 패턴매칭이나 가비지컬렉션등등이 있겠군요.)

 

CONS.

 

항상 그렇지만 조금이라도 난이도 있는 책들이 왜 난이도 때문에 단점이 되어야 하는지 모르겠습니다. 

scala 에 대한 고급주제도 잘 설명하였고, 이 정도면 scala master 레벨로 가는데 많은 도움이 되는 책이라고 생각합니다.

전자책이 없다는게 단점은 아니겠고.. 저는 읽으면 적어도 실력이 오를 수 있는 책들이 시중에 번역이 안되서 원서를 구해 읽는 불편함을 항상 느끼고 있기 때문에 단 하나의 단점도 없이 만족 한다라고 결론 내리고 싶습니다.

 

CONCLUSION.

함수형 언어에서 극혐(?)으로 여기는 게 변수입니다.

언제 어떻게 변할지 모르는 변수야 말로 side effect 의 근본 원인이라고 보고 있지요.

해서 변수 바인딩을 한번 하면 값을 변경할 수 없게 막아버리는 함수형 랭귀지들의 특징이 있습니다. 하지만 scala 는 그런거 없습니다. 그냥 다 허용합니다.

그래도 값을 대입을 해야하는 상황이 오면 함수형 랭귀지들은 나름대로의 방법을 가지고 좀 더 조심스럽게 처리를 합니다.

어찌보면 함수형언에 입장에서 OOP 는 좀 위험하다? 라고 생각을 할수 도 있겠지요.

패러다임의 문제인데 정답은 없습니다.

사설이 길었는데요.

“빠르게” -> Martin Odersky -> 이 책 순으로 보시면 좋을것 같습니다.

그럼 당신도 scala master 레벨에 다다를수 있을거라 확신합니다!

 

프로그래밍 스칼라 (2판)

 

 - 실용적인 스칼라 활용법을 익히는

 

   가장 확실한 실전 바이블 (2.11.x 버전 기준)

 

 

 프로그래밍에 대한 관심을 두다 보면, 

 

다양한 프로그래밍 언어를 접할 수 있습니다.

 

물론 많은 사람들이 사용하는,

 

혹은 주변에서 좀 쉽게 접할 수 있는 언어라는 것들은

 

개개인에 따라 다를 수 있지만, 

 

최근에는 '함수형 언어'라는 말을 좀 여러곳에서 들었습니다. 

 

절차지향이라는 둥, 객체지향이라는 둥 

 

어쩌면 정확히 개념을 알지도 못하면서 

 

듣거나 떠들었을지도 모를 

 

여러가지 언어들을 맛보고 사용해 보기도 했지만, 

 

최근에는 함수형 언어에 대한 관심이 

 

이전의 어느 때 보다도 더 늘어난것 같습니다. 

 

 

함수형 언어에 대한 실체는 잘 모르겠지만, 

 

어쨌든 함수형 언어와 관련된 책은 

 

몇 권 본 것 같습니다. 

 

LISP 에 대한 입문서도 읽어봤고, 

 

이 책에서 알려주고 있는-이 책은 아닌-스칼라 언어에 대한 

 

다른 책도 봤습니다. 이전에 봤던 책은 얇은 두께에 

 

부담없이 읽을 수 있도록 난이도 또한 어렵지 

 

않게 만들어진 입문서였습니다. 

 

그 책에서는 스칼라에 대한 낯설음을 약간 해소할 수 있었고, 

 

좀 더 넓고 깊은 스칼라에 세계를 알아보기 위해 

 

이 책을 선택했습니다. 

 

 

 

1. 이 책의 특징을 살펴보면 다음과 같습니다.

 

 

우선 가장 간단하게는 (혹은 당연하게는),

 

이 책의 제목과 부제에 나온 것 처럼

 

'실용적인' 스칼라 활용법을 익히기 위한 책입니다.

 

이는 상당히 중요한 이 책의 특징이라고 생각합니다.

 

어떤 프로그래밍 책의 경우, '실용적인' 측면보다는, 

 

학문적인 측면이나, 이론적인 측면 혹은 정책이나 역사 등 

 

다른 곳에 촛점을 맞추었을 수 있는데요. 

 

프로그래밍 언어에 대한 실용적인 활용법을 

 

목표로 하고 있다는 점에서, 프로그래밍 언어를 익히는데 

 

좀 더 흥미롭게 다가갈 수 있었습니다. 

 

 

둘째로는 이 책의 특징 혹은 난이도나 대상 독자를 확인할 수

 

있는 다음 문장으로 대신할 수 있습니다. 

 

'이 책은 스칼라에 대한 전반적인 지식을 빠르게 얻고

 

싶어하는 경험 많은 개발자에게 적합하다' (13쪽) 

 

라고 적혀있습니다. 

 

프로그래밍에 대한 기본적인 경험이 있어야만 책을 좀 더 

 

쉽고 효율적으로 읽어나갈 수 있다는 것을 알 수 있는데요

 

실제로 이 책에서는 독자가 객체지향 프로그래밍을 잘 알고 있다고

 

가정하고 설명해 나갑니다. 

 

 프로그래밍을 처음 배우는 초보자라면, 그다지 권하고 싶지 않습니다. 

 

엄청나게 어려운 것은 아니지만, 효율성이라는 측면에서 다른 것을 

 

먼저 학습해 보는 것도 나쁘지 않을 것 같습니다. 

 

 

 

2. 기본적인 내용을 먼저 읽다

 

 

이 책은 전체 4부로 구성되어 있습니다. 

 

그 중 앞의1, 2부가 기초적인 내용이고, 

 

3, 4부가 좀 더 어려운 내용입니다. 

 

실제 이 책의 분량을 확인해 보면, 2부가 45%정도 됩니다. 

 

특정 프로그래밍 언어(스칼라)에 대한 학습을 하는 것이다보니

 

어쩌면 당연할 수도 있을 것 같습니다. 

 

 저 또한 스칼라에 대한 '실용적인' 쓰임새에 관심을 두다 보니 

 

1, 2부 읽어 보고, 3부는 넘어가고, 4부는 21장을 우선 읽었습니다. 

 

제 생각으로는 1부 1장 -> 4부 21장 -> 1부 2장 이후 이런 순서로 

 

읽는 것이 좋을 것 같습니다. 

 

기본적인 환경 설정에 대한 내용 (1부 1장)은 

 

실습을 위해 필요하므로 자연스럽게 읽겠지만, 

 

스칼라 도구와 라이브러리 (4부 21장)에 대한 설명은 

 

책의 뒷부분에 나오기 때문에, 나중에 읽게 되기 쉬운데요

 

환경설정하면, 개발 환경에 대한 고민을 먼저 해보는 것도 

 

나쁘지 않을 것 같습니다. 

 

 

 

3. 스칼라 프로그래밍에 대한 초보자로서의 아쉬움

 

 이런 바이블류의 책을 읽으면서 느끼는 아쉬움은 바로 

 

샘플 코드에 대한 것입니다. 

 

물론 각각의 기능에 대한 샘플 코드가 있어서,

 

개별 기능을 확인하는데 도움을 받을 수 있습니다.  

 

 하지만 개인적으로는, 단순 기능 확인 수준의

 

예제 코드보다는 좀 더 크고

 

초보자에게 너무 크지 않은

 

일종의 '미니 프로젝트' 형식의 예제가

 

좀 더 있었더라면 하는 아쉬움이 남습니다. 

 

 

 

스칼라는 최근 유행하는 함수형 언어의 특징을 맛 볼 수 있는

 

대표적인 언어입니다. 실제로 많은 곳에서 실제 서비스 개발에 

 

사용중인 살아있는 언어라고 할 수 있는데요. 

 

스칼라의 실용적인 사용법을 확인해보고 싶은 분들에게 

 

도움이 되리라 생각합니다.

 

 

 

스칼라 라는 이름이 다소 낯설수도 있지만,

스칼라는 요즘 뜨고 있는 함수형 언어 중에 하나이다.

 

우리가 기존에 쓰고 있는 명령어형 언어는

흔히 얘기하는 폰노이만 구조에 기반하여 컴파일러를 통해 변수, 조건문, 반복문 등을 순차적으로 처리하는 언어이고

 

함수형 언어는 인터프리터 타입으로 함수에 기반한 언어이다.

 

 

 

함수형 언어에 관심을 갖게 된것은 동생 때문인데,

컴퓨터 사이언스 전공도 아닌 녀석이 하스켈 한다고 맨날 물어보길래,

함수형 언어에 대해서는 잘 몰라서 공부해야지 라고만 두고 아직까지 미뤄두고 있었다.

 

이번 기회에 간단하게라도 공부를 해두면 좋을듯 싶어 주저 없이 책을 골랐다.

 

물론 우리나라는 하스켈 보단 스칼라 사용율이 높다고 한다.

 

이책은 프로그래밍 입문서이긴 하나 어느정도의 고급서의 내용도 포함하고 있는 책이다.

 

다른 언어의 입문서들 처럼,

스칼라 언어 문법과 함께 예제들이 나열되어있고,

다른 언어들과 크게 다르진 않은듯 하다.

 

그리고 실제 함수형 언어와 명령어형 언어의 가장 큰차이점이라고 느껴지는

변수 사용에 대한 부분과 함수 등에 대해 많은 페이지를 할당했다는 것이 가장 좋게 느껴지는 부분이다.

(어찌 보면 당연한건가?)

 

그리고 바로 현업에 대한 예시가 될수 있는

맵리듀스 연동 이라던지 동적 호출이나 XML 처리법에 대해 다루는 것도 상당히 친절한 책이라고 느껴지는 부분이다.

 

새로운 언어의 바이블까진 아니지만 입문서로는 충분하다고 생각이 된다.

 

다만, 지금 나로서는 스칼라를 어떻게 써먹을지가 고민이 될 뿐이다.

7월 07일 리뷰 - 리뷰자 김종욱


 

클로버프로그래밍 스칼라

딘 왐플러, 알렉스 페인 저, 오현석 옮김


 새로운 언어를 배울때에는 처음에 읽을 책을 가장 신중하게 선택해야 된다. 왜냐하면 처음 가닥을 잘못 잡으면 추후의 학습 방향성은 바다로 가야 할 것이 산으로 갈 수 있기 때문이다. '프로그래밍 스칼라' 이 책은 나름 바이블 구조를 가지고 있는 책으로 "스칼라"라는 새로운 언어를 배우고자하는 사람들의 갈증을 채워주기에 충분한 책이었다. 



 

거래 명세표에 의해서 원래 겉표지에 그려져 있던 동물이 가려져 있는 사진이다. 나름 동물이 귀엽게 생겨서 계속 보고 있으면 나도 모르게 빠져들게 되는 신기한 동물 사진이었다. 개인적으로 이런 컨셉의 겉표지를 좋아하는 블로거이기 때문에 처음 책을 펼치는 순간부터 책을 닫는 그 순간까지 굉장히 산뜻하게 책을 읽을 수 있었다.


 '스칼라'라는 언어는 굉장히 생소하지만 누구나 한번쯤 들어봤을 그러한 언어이다. "스칼라"라는 언어는 객체 지향적인 프로그래밍 언어와 함수형 프로그래밍 언어의 요소가 결합된 새로운 다중 패러다임 적인 언어이다. 따라서 이러한 양쪽의 특성을 다가지고 있는 위 언어는 자바의 어떠한 API에도 그대로 적용하거나 혹은 스칼라의 형식에 맞춰서 바로바로 적용할 수 있는 놀라운 특징을 가지고 있다. 따라서 이러한 특징들에 대해서 조금씩 논해보도록 하겠다.


 해당 도서는 한빛 미디어 홈페이지에서 아래의 컬럼 순으로 들어가면 찾아 볼 수 있다.


한빛미디어 >  > 프로그래밍 스칼라- 

한빛미디어 > 새로나온 책 프로그래밍 스칼라 -  


 

아래 링크는 '프로그래밍 스칼라'에 대한 책 소개와 정보를 설명해주는 한빛미디어 홈 페이지의 URL이다.

어떤 독자를 위한 책인가】

'프로그래밍 스칼라'는 "스칼라"라는 언어를 처음으로 공부하고자 하는 입문자나 혹은 지금까지 배운 스칼라의 내용을 좀 더 정리하고자 하는 사람, 혹은 옆에 두고 틈틈히 참고서로 쓰고자하는 사람들에게 도움이 되는 책이다. 책의 불량만 보더라도 상당히 두꺼운 것이, 얼마나 많은 내용들이 해당 책에서 다루어졌을지 지레 짐작 할 수 있다. 따라서 본 블로거의 생각에는 전 연령대 그리고 직업을 막론하고 스칼라에 관심있는 독자라면 누구든 읽어도 상관 없다고 생각된다. 하지만 읽기 전에 최소한 자바나, 함수형 언어의 특징 등은 알고 있어야 읽는데에 있어서 수월할 것이라 사료된다.

 


 

【책의 구성】'프로그래밍 스칼라'의 책 내용은 어떠한 구성인가?


망치 '프로그래밍 스칼라'의 책 순서는 아래의 "더 보기"에 잘 설명 되어있다.( 왜 여기서 전부 언급하지 않냐면 너무 방대하기 때문이다.)

 프로그래밍 스칼라 책의 내용은 크게 언어를 설치하는 것부터 언어가 어떤 형식을 가지는지 그리고 이를 이용하기 위한 방법과 도구 라이브러리 설명 법등을 설명하고 있다. 따라서 이에 대해서 궁금하다면 아래의 목차를 참고하시기 바란다. (책의 성격이 너무 바이블 적이다 보니, 각장의 성격 역시 차례의 소제목에 굉장히 잘 나타나있다.)


 


 망치 '프로그래밍 스칼라' 리뷰 마치며


 - 블로거의 경우 프로그래밍을 근 15년 전부터 시작했다. 그 시절에 언어라고는 C언어 그리고 C보다 저급한 어셈블, 기타 등등(지금은 잘 기억이 안나므로 패스하도록 하겠다.)의 언어를 배웠다. 물론 가물 가물 하지만 객체 지향 언어도 시간이 좀 지나고 나서 생겼던 것 같다. 위의 언어들의 공통적인 성격은 거의 C언어적인 특징을 모든 언어가 가지고 있기 때문에 C언어만 잘해도 본전 이상은 뽑을 수 있었다는 것이다. 물론 극단적으로 다른 표현을 사용하는 언어도 있지만 대체로는 C언어의 성격과 비슷했다. 하지만 요즘의 언어들은 너무나 다양하고 그 종류 역시 엄청나게 많다. 이러한 현실 속에서 프로그래머 어떤 언어를 자신의 주무기로 삼을지는 굉장히 복잡하고 어려운 문제가 아닐 수 없다. "프로그래밍 스칼라"를 전부 읽으며 블로거는 한 가지 확실한 생각이 들었다. 자신이 마음에 드는 언어를 선택해서 끝장을 보라는 것이다. 왜냐하면 어떤 언어를 선택하든 장단점은 분명 존재한다. 따라서 자신이 추구하는 가치와 이상적인 스타일에 가장 근접한 언어를 여러분이 선택하여 학습하길 권한다.


【프로그래밍 스칼라를 읽으며…….】

  언어라는 것은 시간이 지나면 변한다. 이러한 언어는 우리 인간이 살아가면서 사용하는 실생활 언어 역시 포함한다. 따라서 컴퓨터에서 사용되는 언어 역시 당연히 변할 수 밖에 없다. 하루가 빨리 변화하는 세상 속에서 이러한 모든 변화를 수용한 다는 것은 굉장히 피로하고 힘든일이 아닐수 없을 것이다. 하지만 이러한 변화 속에서도 절대로 변하지 않는 언어가 있으니 그것은 바로 우리 자신이 가지고 있는 마음의 언어이다. 만약 지금 여러분이 하루가 다르게 변화하는 현실에 몹시 지치고 피로해 있다면, 바로 지금 그 순간이 우리 자신이 가지고 있는 마음의 언어를 사용할 때이다.


 

【점수…….】

구성 : ★★★★☆ 내용:★★★★★  디자인: ★★★★☆ 전문성 : ★★★★★

 

 

 


 

#본 리뷰는 리뷰자 김종욱의 저작권에 귀속되므로 참고시 참고 URL과 명시를 저작자에게 알려주시길 바랍니다.

#본 리뷰의 점수 및 평가 내용은 김종욱 리뷰자의 한정된 것이므로 확정된 답이 안임을 명시합니다.

#학습과 관련된 질문과 문제에 대한 질문은 일절 받지 않습니다. 스스로 찾아서 학습하는 것 그것이야 말로 진정한 학습자입니다. 


 

######  감사합니다  ######   

결제하기
• 문화비 소득공제 가능
• 배송료 : 2,000원배송료란?

배송료 안내

  • 20,000원 이상 구매시 도서 배송 무료
  • 브론즈, 실버, 골드회원이 주문하신 경우 무료배송

무료배송 상품을 포함하여 주문하신 경우에는 구매금액에 관계없이 무료로 배송해 드립니다.

닫기

리뷰쓰기

닫기
* 상품명 :
프로그래밍 스칼라
* 제목 :
* 별점평가
* 내용 :

* 리뷰 작성시 유의사항

글이나 이미지/사진 저작권 등 다른 사람의 권리를 침해하거나 명예를 훼손하는 게시물은 이용약관 및 관련법률에 의해 제재를 받을 수 있습니다.

1. 특히 뉴스/언론사 기사를 전문 또는 부분적으로 '허락없이' 갖고 와서는 안됩니다 (출처를 밝히는 경우에도 안됨).
2. 저작권자의 허락을 받지 않은 콘텐츠의 무단 사용은 저작권자의 권리를 침해하는 행위로, 이에 대한 법적 책임을 지게 될 수 있습니다.

오탈자 등록

닫기
* 도서명 :
프로그래밍 스칼라
* 구분 :
* 상품 버전
종이책 PDF ePub
* 페이지 :
* 위치정보 :
* 내용 :

도서 인증

닫기
도서명*
프로그래밍 스칼라
구입처*
구입일*
부가기호*
부가기호 안내

* 온라인 또는 오프라인 서점에서 구입한 도서를 인증하면 마일리지 500점을 드립니다.

* 도서인증은 일 3권, 월 10권, 년 50권으로 제한되며 절판도서, eBook 등 일부 도서는 인증이 제한됩니다.

* 구입하지 않고, 허위로 도서 인증을 한 것으로 판단되면 웹사이트 이용이 제한될 수 있습니다.

닫기

해당 상품을 장바구니에 담았습니다.이미 장바구니에 추가된 상품입니다.
장바구니로 이동하시겠습니까?

자료실

최근 본 상품1