장바구니 담기 close

장바구니에 상품을 담았습니다.

자바 개발자를 위한 스칼라 프로그래밍

자바 개발자를 위한 스칼라 프로그래밍 acorn+PACKT 시리즈

  • 토마스 알렉산더
  • |
  • 에이콘출판
  • |
  • 2015-04-30 출간
  • |
  • 340페이지
  • |
  • 188 X 235 X 20 mm /826g
  • |
  • ISBN 9788960777002
★★★★★ 평점(10/10) | 리뷰(1)
판매가

30,000원

즉시할인가

27,000

배송비

무료배송

(제주/도서산간 배송 추가비용:3,000원)

수량
+ -
총주문금액
27,000

※ 스프링제본 상품은 반품/교환/환불이 불가능하므로 신중하게 선택하여 주시기 바랍니다.

출판사서평

★ 요약 ★

이 책은 자바(Java)에서 스칼라(Scala)로 갈아타거나 기존 자바 프로젝트를 스칼라로 확장하려는 자바 개발자가 빠른 시간 내에 스칼라를 익혀 현업에 적용할 수 있도록, 스칼라의 핵심 기능에 대해 다양한 실습 예제를 중심으로 소개한다. 자세한 내용을 담은 두꺼운 교과서나 레퍼런스는 부담스럽고, 자바 관점에서 스칼라의 핵심 기능과 프로그래밍 기법을 단기간에 익히려는 자바 프로그래머에게 유용한 주제로 구성됐다.
스칼라의 문법과 기본 개념, 그리고 자바와 다른 점을 중점적으로 소개한 다음, 곧바로 실제 동작하는 애플리케이션을 만들어보면서, 스칼라에서 흔히 사용하는 타입세이프(Typesafe)나 아카(Akka), 플레이(Play) 프레임워크와 새롭게 떠오르는 슬릭(Slick) 프레임워크에 대해 예제와 함께 하나씩 소개한다.

★ 이 책에서 다루는 내용 ★

■ 스칼라 에코시스템
■ 자바에서 스칼라로 옮겨가는 방법
■ 플레이 프레임워크를 이용한 웹 개발
■ 스칼라의 테스팅 프레임워크로 데이터를 검사하는 방법
■ 스칼라에서 XML과 JSON 다루기
■ 스칼라 문법 익히기
■ 자바 프로젝트에서 스칼라 병행 사용
■ 타입세이프(Typesafe) 기술을 이용한 반응형 웹 개발
■ 아카(Akka) 프레임워크, 플레이(Play) 프레임워크뿐만 아니라, 최근 떠오르는 슬릭(Slick) 프레임워크 사용법
■ 빅데이터 관련 기술

★ 이 책의 대상 독자 ★

자바 EE 기반의 시스템을 개발하고 있는 자바 아키텍트 또는 자바 프로그래머로서, 업무에 스칼라 언어를 적용하고자 하는 이를 위한 책이다. 당장 실전에 써먹을 수 있도록, 실제 예제를 바탕으로 설명한다. 스칼라를 잘 모르더라도 쉽게 따라갈 수 있도록 집필했다.

★ 이 책의 구성 ★

1장, ‘스칼라 맛보기’에서는 JVM(Java Virtual Machine)에 대해 간략히 소개하고, 자바가 현재의 위치까지 올 수 있게 해준 핵심 기능을 소개한다. 그런 다음, 프로그램을 대화형으로 작성하게 해주는 강력한 도구인 스칼라 REPL(Read Eval Print Loop)을 사용해 코드를 직접 작성해보면서, 스칼라에서 제공하는 몇 가지 강력한 구문을 소개하고, 이를 통해 코드를 직관적으로 표현할 수 있을 뿐만 아니라 구현의 효율성도 높일 수 있음을 직접 확인해본다.

2장, ‘코드 연동’에서는 자바와 스칼라를 같은 코드 베이스에서 서로 연동하는 방법에 대해 소개한다. 그중에서도 특히 자바와 스칼라의 컬렉션을 서로 연동하고, 기존에 자바로 제공되는 라이브러리를 스칼라에서 쓰기 위한 방법을 중심으로 설명한다. 이 과정에서 스칼라 언어에서 권장하는 코딩 스타일과, 오랜 기간 동안 정립된 자바의 코딩 스타일에 대해서도 비교해본다.

3장, ‘스칼라 에코시스템’에서는 스칼라 프로그래밍에 관련된 여러 가지 도구와 에코시스템에 대해 소개한다. 이들 중 대부분은 자바로부터 물려받은 것이다. 특히 메이븐 같은 빌드 도구와 이클립스 같은 IDE는 자바에서 사용하던 것을 그대로 사용한다. 개발 주기에서 핵심적인 도구뿐만 아니라, 스칼라에서만 제공하는 SBT나 스칼라 워크시트, 그리고 타입세이프 액티베이터와 여기서 제공하는 템플릿에 대해서도 소개한다.

4장, ‘테스팅 도구’에서는 앞 장에서 소개한 스칼라 개발에 핵심적인 도구와 함께 유닛 테스트와 통합 테스트, 기능 테스트 등을 속성 중심으로 자동화된 방식으로 수행하기 위한 도구들을 소개한다.

5장, ‘플레이 프레임워크’에서는 플레이(Play) 프레임워크에 대해 자세히 살펴본다. 플레이에서 제공하는 뛰어난 기능 몇 가지를 예제를 통해 살펴보고, 기존 서블릿이나 J2EE 모델로 작성한 코드를 플레이 프레임워크로 전환하는 방법도 소개한다.

6장, ‘데이터베이스 사용 방법과 ORM의 미래’에서는 관계형 데이터베이스로 데이터의 영속성을 보장하는 방법에 대해 소개한다. 이 과정에서 기존에 잘 정립된 JPA나 하이버네이트 같은 기술을 활용할 수도 있고, 슬릭(SLICK, Scala Language-Integration Connection Kit)처럼 새로운 기술을 사용할 수도 있다. 슬릭의 내부를 보면 스칼라 언어에서 제공하는 강력한 기능을 그대로 활용하고 있는 것을 볼 수 있다. 또한 자바 프로젝트를 스칼라로 전환하도록, 기존 관계형 데이터베이스에 리버스 엔지니어링을 적용하여 플레이 프레임워크용 CRUD 애플리케이션을 작성하는 방법에 대해서도 소개한다.

7장, ‘웹 서비스에서 시스템 연동’에서는 최근 자바 애플리케이션 개발과 관련하여 흔히 언급되는, SOAP, XML, REST, JSON과 같은 웹 서비스 관련 기술에 대해 소개한다. 웹 서비스를 이용해 스칼라에서 외부 시스템을 연동하는 방법과 각각의 장점에 대해 예제를 통해 살펴본다.

8장, ‘비동기와 동시성’에서는 개발하는 과정에 마주치게 될 비동기와 동시성 문제를 스칼라에서 처리하는 방법에 대해 설명한다. 흔히 성능을 높이기 위해 비동기로 호출하거나 동시에 실행되도록 코드를 작성한다. 이 장에서는 이러한 비동기와 동시성 관련 코드를 작성할 때 발생하는 복잡도를 스칼라에서 쉽게 관리할 수 있다는 점을 예제와 함께 확인해본다. 또한 동시성 애플리케이션을 간편하게 개발하게 해주는 툴킷인 아카(Akka) 프레임 워크에 대해서도 소개한다.

9장, ‘반응형 웹 애플리케이션’에서는 8장에서 설명한 내용을 기반으로 최근 주목받고 있는 반응형 웹 애플리케이션을 소개한다. 반응형 웹 앱이 기존 웹 앱과 다른 점은 사용자에게 정보를 보낼 수 있고, 처리량의 변화에 유연하게 대처하고, 오류가 발생할 때 쉽게 복구하여 좀 더 역동적으로 동작한다는 점이다. 이 장에서는 지금까지 설명한 기능뿐만 아니라, 최근 부상하고 있는 웹 소켓과 같은 기술을 활용하여 플레이 프레임워크로 반응형 애플리케이션을 만들어본다.

10장, ‘스칼라의 고급 기능’에서는 웹 개발에 대한 최근 추세와 향후 전망에 대해 설명하면서 이 책을 마무리한다. 예를 들어 자바 개발자는 좋든 싫든 클라이언트를 개발할 때 자바스크립트를 다뤄야 할 일이 많아지고 있다. 최근에는 DSL(Domain Specific Language)도 주목받고 있다. 자바에서는 DSL을 제공하기가 쉽지 않다.

★ 저자 서문 ★

이 책은 자바 프로젝트를 스칼라로 옮겨가거나 스칼라와 혼용하는 방법에 대해, 실제 환경에서 사용할 수 있는 예제를 통해 단계 별로 설명하고 있다.
먼저 스칼라 문법과 에코시스템에 대해 소개한 다음, 액터 기반의 아카 프레임워크나 플레이 웹 프레임워크, 최근 떠오르는 슬릭 프레임워크를 비롯한 여러 가지 타입세이프 기술을 활용하여 반응형 웹을 작성하는 방법에 대해 설명한다. 그런 다음, 이렇게 작성한 코드에 대해 단위 테스트, 통합 테스트, 기능 테스트에 필요한 여러 가지 도구를 소개하고, 외부 시스템과 스칼라를 통합하는 방법과 이를 통해 얻을 수 있는 장점을 보여준다.
스칼라의 기초적인 문법을 익히는 것부터, 최신 반응형 애플리케이션을 작성하기까지, 복잡한 문제에 대해 간결하고 유지하기 좋은 솔루션을 만드는 데 필요한 기법을 소개하면서 여러분의 프로그래밍 실력을 한층 높여줄 것이다.

★ 옮긴이의 말 ★

최근 스칼라에 대한 관심이 부쩍 늘어난 것을 느낄 수 있습니다. C나 자바 같은 명령형 언어를 선호하고, 스칼라처럼 생소한 함수형 언어가 인기를 얻기 힘든 국내 분위기에 비춰볼 때, 생각보다 빠르게 퍼져 나가는 것 같습니다.
스칼라에 관한 책이 많이 나와 있지만, 기존에 자바를 주력 언어로 사용하던 개발자가 빠르게 스칼라로 갈아탈 수 있도록, 자바와 다른 점을 알려주고, 자바 코드와 섞어서 프로젝트를 개발하기 위한 방법을 간결하게 설명하는 점이 이 책의 두드러진 특징인 것 같습니다. 어느 정도 내공이 있어서 두꺼운 교과서나 레퍼런스 형태의 책은 부담스럽고, 스칼라의 핵심만 재빨리 익히려는 자바 프로그래머가 읽기 쉽게 구성되어 있습니다.
다른 책을 번역할 때도 그랬지만, 최대한 번역서라는 느낌을 받지 않도록 억지스런 한글 용어나 어색한 한자어 표현을 가급적 자제하고, 개발자의 입장에서 내용에 집중하는 데 방해되지 않고 술술 읽을 수 있도록 번역하고자 노력했습니다. 원서는 어느 정도 배경 지식을 갖춘 독자를 대상으로 집필했는데, 번역하는 과정에서 초보자 입장에서 언뜻 이해하기 힘든 부분에 가급적 설명을 보충했습니다.

목차

1장 스칼라 맛보기
__자바 프로젝트에서 스칼라를 사용하면 좋은 점
______간결하면서도 풍부한 표현력
______높은 생산성
______자바와 찰떡 궁합
______뛰어난 비동기 및 동시성 처리
__REPL로 배우는 스칼라 문법
______변수 선언
______클래스 정의
______case 클래스
__컬렉션 연산
______기본 타입으로 구성된 컬렉션 변환
______복잡한 오브젝트에 대한 컬렉션
__________filter와 partition
__________튜플
__________맵
__________Option
__________패턴 매칭 맛보기
__________map 메소드
__________스트링 인터폴레이션
__________groupBy 메소드
__________foldLeft 메소드
__정리

2장 코드 연동
__데이터베이스를 이용한 REST API 생성
______샘플 데이터베이스
______메이븐 프로젝트 만들기
______JPA 엔티티와 REST 웹 서비스 생성
______프로젝트 실행하고 테스트하기
______자바 코드에 대한 유닛 테스트 추가
__스칼라로 테스트 코드 작성하기
__자바 메이븐 프로젝트에서 스칼라를 사용하도록 설정
__스칼라와 자바 코드의 연동
______컬렉션 타입 변환
______자바빈 스타일의 프로퍼티
______스칼라와 자바의 객체지향 지원 방식
______자바 인터페이스를 개선한 스칼라 트레잇
______오브젝트 선언
______컴패니언 오브젝트
______예외 처리
__자바와 스칼라의 코딩 스타일 차이점
______코드 레이아웃 다듬기
______명명 규칙
__정리

3장 스칼라 에코시스템
__자바 IDE로 구축하는 스칼라 IDE
__SBT 빌드
______SBT 살펴보기
__________예제 프로젝트 생성
__________이클립스와 인텔리제이 IDEA, 넷빈즈에 프로젝트 임포트하는 방법
__________서블릿 컨테이너에서 실행할 웹 애플리케이션 만들기
______sbt-assembly로 하나의 .jar 파일로 만들기
______Scalariform으로 코드 포맷팅
__스칼라 워크시트
__HTTP 다루기
______스칼라의 for 문
__타입세이프 액티베이터의 활용
______타입세이프 액티베이터에서 제공하는 템플릿으로
______애플리케이션 만들기
__REPL을 스크립트 엔진으로 활용
__정리

4장 테스팅 도구
__ScalaTest로 테스트 작성
______BDD 스타일 테스팅
______기능 테스트
______ScalaMock으로 모킹하기
__ScalaCheck을 이용한 테스팅
__정리

5장 플레이 프레임워크
__classic 플레이 배포 버전 시작하기
__타입세이프 액티베이터 시작하기
__플레이 애플리케이션의 구조
______프레임워크의 구성
______요청-응답 사이클
______컨트롤러에서 요청 처리
______뷰 렌더링
__플레이에서 인증 처리
__플레이 프레임워크 활용 팁
______플레이에서 디버깅하기
______버전 컨트롤 관련 사항
__정리

6장 데이터베이스 사용 방법과 ORM의 미래
__하이버네이트나 JPA와 같은 ORM 기술의 활용
__스칼라에서 JPA 사용하기
__플레이 프레임워크에서 persistence 처리하기
______Anorm을 이용한 간단한 예제
__ORM 대신 사용할 수 있는 기술
__슬릭 소개
__플레이 애플리케이션 스캐폴딩하기
______테스트 데이터 임포트하기
______H2browser로 데이터베이스 시각화하기
______앱 생성 관련 코드 분석
______playcrud 유틸리티의 한계
__정리

7장 웹 서비스에서 시스템 연동
__스칼라에서 XML 데이터 바인딩하기
______SOAP 웹 서비스를 통해 scalaxb 구동하기
__XML과 JSON 다루기
______XML 다루기
______JSON 다루기
______플레이 프레임워크에서 제공하는 JSON 라이브러리
__XML과 JSON으로 전달된 플레이 요청 처리하기
______JSON으로 플레이 응답 흉내내기
______플레이에서 웹 서비스 호출하기
__정리

8장 비동기와 동시성
__동시성의 구성 요소
__Async 라이브러리: SIP-22-Async
______웹 서비스 조합
______await 구문을 사용하지 않고 서비스 연결하기
__아카 살펴보기
______액터 모델의 이해
______동작 변경
______메시지 처리에 실패했을 경우
______액터 시스템 테스트
______이 장에서 다루지 못한 Akka의 기능
__정리

9장 반응형 웹 애플리케이션
__반응형 애플리케이션의 정의
__반응형 스트림 처리
______플레이에서 제공하는 Iteratee 패턴
______Enumerator를 Enumeratee에 적용하기
__플레이에서 제공하는 Iteratee와 웹소켓 사용하기
__액티베이터 템플릿으로 반응형 웹 애플리케이션 만들기
______반응형 주가 정보 애플리케이션
______반응형 실시간 검색
______Play-Akka-Angular-WebSocket 템플릿
__Actor Room 프로젝트
__정리

10장 스칼라의 고급 기능
__몽고DB
______카스바
______맵리듀스 사용하기
__빅데이터 맛보기
__스칼라의 DSL
______내장형 DSL
______파서 컴비네이터로 외장형 DSL 만들기
__Scala.js
__마지막 팁
______REPL에서 복사하고 붙여넣기
______REPL에서 코드 실행 시간 측정
__정리

저자소개

저자 토마스 알렉산더 (Thomas Alexandre)는 데브코드(DevCode)의 시니어 컨설턴트로 일하고 있으며, 전문 분야는 자바와 스칼라 소프트웨어 개발이다. 기술에 대한 열정이 풍부하고, 지식을 나누는 데 적극적이며, 새로운 오픈 소스 소프트웨어와 표준을 적용해 코드의 효율성을 높이는 방법을 연구하는 데 전념하고 있다. 15년 이상의 자바 개발 경력을 갖고 있으며, 최근에는 그루비(Groovy)나 스칼라(Scala)처럼 새롭게 떠오르는 언어와 웹 프레임워크에도 관심이 많다. 프랑스의 릴(Lille) 대학에서 전산학으로 박사를 받았으며, 박사후 과정으로 카네기 멜론 대학(Carnegie Mellon University)에서 보안과 E-커머스 분야로 2년간 연구한 바 있다.
스칼라의 창시자들이 만든 타입세이프 사의 공인 트레이너 자격도 보유하고 있다.

도서소개

[자바 개발자를 위한 스칼라 프로그래밍]은 자바(Java)에서 스칼라(Scala)로 갈아타거나 기존 자바 프로젝트를 스칼라로 확장하려는 자바 개발자가 빠른 시간 내에 스칼라를 익혀 현업에 적용할 수 있도록, 스칼라의 핵심 기능에 대해 다양한 실습 예제를 중심으로 소개한다. 책은 당장 실전에 써먹을 수 있도록, 실제 예제를 바탕으로 설명한다.

교환 및 환불안내

도서교환 및 환불
  • ㆍ배송기간은 평일 기준 1~3일 정도 소요됩니다.(스프링 분철은 1일 정도 시간이 더 소요됩니다.)
  • ㆍ상품불량 및 오배송등의 이유로 반품하실 경우, 반품배송비는 무료입니다.
  • ㆍ고객님의 변심에 의한 반품,환불,교환시 택배비는 본인 부담입니다.
  • ㆍ상담원과의 상담없이 교환 및 반품으로 반송된 물품은 책임지지 않습니다.
  • ㆍ이미 발송된 상품의 취소 및 반품, 교환요청시 배송비가 발생할 수 있습니다.
  • ㆍ반품신청시 반송된 상품의 수령후 환불처리됩니다.(카드사 사정에 따라 카드취소는 시일이 3~5일이 소요될 수 있습니다.)
  • ㆍ주문하신 상품의 반품,교환은 상품수령일로 부터 7일이내에 신청하실 수 있습니다.
  • ㆍ상품이 훼손된 경우 반품 및 교환,환불이 불가능합니다.
  • ㆍ반품/교환시 고객님 귀책사유로 인해 수거가 지연될 경우에는 반품이 제한될 수 있습니다.
  • ㆍ스프링제본 상품은 교환 및 환불이 불가능 합니다.
  • ㆍ군부대(사서함) 및 해외배송은 불가능합니다.
  • ㆍ오후 3시 이후 상담원과 통화되지 않은 취소건에 대해서는 고객 반품비용이 발생할 수 있습니다.
반품안내
  • 마이페이지 > 나의상담 > 1 : 1 문의하기 게시판 또는 고객센터 1800-7327
교환/반품주소
  • 경기도 파주시 문발로 211 1층 / (주)북채널 / 전화 : 1800-7327
  • 택배안내 : CJ대한통운(1588-1255)
  • 고객님 변심으로 인한 교환 또는 반품시 왕복 배송비 5,000원을 부담하셔야 하며, 제품 불량 또는 오 배송시에는 전액을 당사에서부담 합니다.