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

모던 자바 인 액션 : 람다, 스트림, 함수형, 리액티브 프로그래밍으로 새로워진 자바 마스터하기

한빛미디어

번역서

판매중

  • 저자 : 라울-게이브리얼 우르마 , 마리오 푸스코 , 앨런 마이크로프트
  • 번역 : 우정은
  • 출간 : 2019-08-01
  • 페이지 : 692 쪽
  • ISBN : 9791162242025
  • eISBN : 9791162248393
  • 물류코드 :10202
  • 초급 초중급 중급 중고급 고급
1 2 3 4 5
4.7점 (31명)
좋아요 : 23

책소개

자바 1.0이 나온 이후 18년을 통틀어 가장 큰 변화가 자바 8 이후 이어지고 있다. 자바 8 이후 모던 자바를 이용하면 기존의 자바 코드 모두 그대로 쓸 수 있으며, 새로운 기능과 문법, 디자인 패턴으로 더 명확하고 간결한 코드를 구현할 수도 있다. 이 책은 함수형 언어의 영감을 받아 자바 8, 9, 10에 추가된 람다, 스트림, 함수형 프로그래밍, 자바 모듈 시스템, 병렬화와 공유 가변 데이터, 동작 파라미터화 등의 주요 기능을 자바 개발자에게 알려준다. 수정처럼 투명한 예제와 꼼꼼한 정보 제공으로 여러분의 노력에 보답할 것이다. 이 책은 『자바 8 인 액션』의 개정판으로서 1, 8, 10, 4, 17, 21장은 신규 추가되거나, 그에 준하는 큰 수정이 있었다. 부록을 뺀 나머지 모든 장도 수정 보강되었다.

 

<이 책의 구성>

이 책은 크게 ‘기초’, ‘함수형 데이터 처리’, ‘스트림과 람다를 이용한 효과적 프로그래밍’, ‘매일 자바와 함께’, ‘개선된 자바 동시성’, ‘함수형 프로그래밍과 자바 진화의 미래’ 여섯 가지 내용으로 구성되었다. 처음 1부와 2부에서 소개하는 장들은 순서대로 읽어야 앞뒤 문맥을 이해할 수 있으며 나머지 네 개 부는 각각 독립적인 내용으로 구성되어 있으므로 어떤 순서로든 읽을 수 있다. 대부분의 장에는 직접 실습할 수 있도록 다양한 퀴즈를 포함했다.

 

1부 : 자바 8을 처음 접하는 독자에게 적합한 내용을 다루는 세 개 장을 제공한다. 1부를 끝낼 즈음엔 람다 표현식이 무엇인지 이해할 수 있고, 람다를 이용해서 변화하는 요구사항에 쉽게 대응할 수 있는 간결하면서도 유연한 코드를 구현할 수 있게 될 것이다.

 

2부 : 새로운 스트림 API를 자세히 설명한다. 2부를 끝내면 스트림이 무엇이며, 스트림을 이용해서 데이터 컬렉션을 처리하는 간결하고 효율적인 애플리케이션을 구현하는 방법을 알게 될 것이다.

 

3부 : 자바를 더 효과적으로 사용하고 최신 기법으로 코드를 개선하는 데 도움을 주는 다양한 자바 8, 자바 9 관련 내용을 살펴본다. 가능한 최신의 프로그래밍 개념을 설명하는 것이 목표로 이 책의 다른 부분에서는 3부에서 다룬 내용을 활용하지는 않는다.

 

4부 : 프로젝트를 구성하는 코드를 더 쉽고 안정적으로 만들 수 있도록 자바 8과 자바 9에 추가된 다양한 새 기능을 살펴본다.

 

5부 : 6장과 7장에서 설명한 스트림을 이용한 쉬운 병렬 처리 방법에서 한 걸음 더 나아가 자바로 병렬 프로그래밍을 구조화하는 고급 기법을 살펴본다.

 

6부 : 주제를 조금 전환해 스칼라와 자바 8의 기능을 비교하면서 효과적으로 함수형 프로그래밍을 자바로 구현하는 방법을 살펴본다.

 

부록 : 부록 A에서는 책에서 살펴보지않은 자바 8 언어의 작은 특징을 요약한다. 부록 B에서는 유용하게 사용할 수 있도록 자바 라이브러리에 추가된 기능을 설명한다. 부록 C에서는 2부의 연장으로 스트림의 고급 사용법을 설명한다. 부록 D에서는 자바 컴파일러가 람다 표현식을 구현한 내막을 설명한다.

 

 

<이 책의 내용>

  • 자바 8, 자바 9, 자바 10 의 강력한 새로운 기능을 사용하는 방법
  • 멀티코어를 효과적으로 활용하는 애플리케이션을 구현하는 방법
  • 리팩토링, 테스팅, 디버깅
  • 함수형 프로그래밍 적용
  • 퀴즈, 기습 질문, 업데이트 내용을 담은 부록

 

상세이미지_700.jpg

 

저자소개

라울-게이브리얼 우르마 저자

라울-게이브리얼 우르마

영국 데이터 과학자와 개발자를 선도하는 교육 커뮤니티인 케임브리지 스파크 공동 창업자로 변환 데이터 과학, AI 교육, 경력 개발 분야의 리더다. 케임브리지 대학교에서 컴퓨터 과학 박사 학위를 수료했다. 임페리얼 칼리지 런던 석사 과정에서 다수의 기술 혁신상을 수상하고 수석 졸업했다. 관심 연구 분야는 프로그래밍 언어, 컴파일러, 소스코드 분석, 머신러닝, 교육이다. 2017년에 자바 챔피언으로 임명되었다. 자바, 파이썬, AI, 비즈니스 등 다양한 분야의 국제적 연사로 활동했다. 여러 스타트업 프로젝트를 포함해 구글, 이베이, 오라클, 골드만삭스 등의 회사와 함께 일했다. 『모던 자바 인 액션』(한빛미디어, 2019)을 비롯한 책을 집필했다.

 

마리오 푸스코 저자

마리오 푸스코

레드햇에서 Drools 코어 개발, 제이보스(JBoss) 룰 엔진 관련 작업을 담당하는 선임 개발 엔지니어다. 미디어에서 금융에 이르는 다수의 기업 프로젝트에 자바 개발자로(또는 리더로) 참여했다. 함수형 프로그래밍과 도메인 전용 언어에 관심이 많다. 자신의 관심 분야를 활용해서 오픈소스 라이브러리인 lambdaj를 만들었다. lambdaj는 컬렉션을 제어할 수 있는 국제적 자바 DSL을 제공하며, 자바에 함수형 프로그래밍을 제공하는 것을 목표로 한다.

앨런 마이크로프트 저자

앨런 마이크로프트

케임브리지 대학교 컴퓨터 실험실의 컴퓨팅 교수로 1984년부터 교수회의 멤버를 역임했다. 프로그래밍 언어와 시스템 유럽 연합의 공동창업자인 로빈슨 대학교 회원이며, 라즈베리 파이 재단의 이사 겸 회원이다. 수학(케임브리지), 컴퓨터과학(에든버러) 학위를 갖고 있다. 100여 편의 연구 저서를 집필했으며 20명이 넘는 박사 과정 학생을 지도했다. 프로그래밍 언어와 의미해석규칙, 최적화, 구현 등이 주요 연구 분야다. AT&T 실험실, 인텔 연구소에서 일했던 적이 있으며 노르크로프트(Norcroft)라는 이름의 ARM C 컴파일러를 만들었던 코드미스트(Codemist) 유한회사에서도 일한 경험이 있다.

우정은 역자

우정은

인하대학교 컴퓨터공학과를 졸업하고 LG전자, 썬 마이크로시스템즈, 오라클 등에서 모바일 제품 관련 개발을 했다. 뉴질랜드 웰링턴에 있는 Xero에서 모바일 앱을 개발하다가 현재는 DevOps 팀에서 새로운 인생을 즐기고 있다. 2010년 아이폰의 매력에 빠져들면서 번역과 개발을 취미로 삼고 꾸준히 서적을 번역한다. 옮긴 책으로는 『플러터 인 액션』, 『처음 배우는 스위프트』, 『실전 자바 소프트웨어 개발』, 『모던 자바 인 액션』, 『실무자를 위한 그래프 데이터 활용법』(이상 한빛미디어) 등이 있다.

 

목차

옮긴이·지은이 소개

옮긴이의 말

지은이의 말

이 책에 대하여

표지 그림 소개

 

[ PART I 기초 ]

 

CHAPTER 1 자바 8, 9, 10, 11 : 무슨 일이 일어나고 있는가?

1.1 역사의 흐름은 무엇인가?

1.2 왜 아직도 자바는 변화하는가? 

1.3 자바 함수

1.4 스트림

1.5 디폴트 메서드와 자바 모듈

1.6 함수형 프로그래밍에서 가져온 다른 유용한 아이디어

1.7 마치며

 

CHAPTER 2 동작 파라미터화 코드 전달하기

2.1 변화하는 요구사항에 대응하기

2.2 동작 파라미터화

2.3 복잡한 과정 간소화

2.4 실전 예제

2.5 마치며

 

CHAPTER 3 람다 표현식

3.1 람다란 무엇인가?

3.2 어디에, 어떻게 람다를 사용할까?

3.3 람다 활용 : 실행 어라운드 패턴

3.4 함수형 인터페이스 사용

3.5 형식 검사, 형식 추론, 제약

3.6 메서드 참조

3.7 람다, 메서드 참조 활용하기

3.8 람다 표현식을 조합할 수 있는 유용한 메서드

3.9 비슷한 수학적 개념

3.10 마치며

 

[ PART II 함수형 데이터 처리 ]

 

CHAPTER 4 스트림 소개

4.1 스트림이란 무엇인가?

4.2 스트림 시작하기

4.3 스트림과 컬렉션

4.4 스트림 연산

4.5 로드맵

4.6 마치며

 

CHAPTER 5 스트림 활용

5.1 필터링

5.2 스트림 슬라이싱

5.3 매핑

5.4 검색과 매칭

5.5 리듀싱

5.6 실전 연습

5.7 숫자형 스트림

5.8 스트림 만들기

5.9 마치며

 

CHAPTER 6 스트림으로 데이터 수집

6.1 컬렉터란 무엇인가?

6.2 리듀싱과 요약

6.3 그룹화

6.4 분할

6.5 Collector 인터페이스

6.6 커스텀 컬렉터를 구현해서 성능 개선하기

6.7 마치며

 

CHAPTER 7 병렬 데이터 처리와 성능

7.1 병렬 스트림

7.2 포크/조인 프레임워크

7.3 Spliterator 인터페이스

7.4 마치며

 

[ PART III 스트림과 람다를 이용한 효과적 프로그래밍 ]

 

CHAPTER 8 컬렉션 API 개선

8.1 컬렉션 팩토리

8.2 리스트와 집합 처리

8.3 맵 처리

8.4 개선된 ConcurrentHashMap

8.5 마치며

 

CHAPTER 9 리팩터링, 테스팅, 디버깅

9.1 가독성과 유연성을 개선하는 리팩터링

9.2 람다로 객체지향 디자인 패턴 리팩터링하기

9.3 람다 테스팅

9.4 디버깅

9.5 마치며

 

CHAPTER 10 람다를 이용한 도메인 전용 언어

10.1 도메인 전용 언어

10.2 최신 자바 API의 작은 DSL

10.3 자바로 DSL을 만드는 패턴과 기법

10.4 실생활의 자바 8 DSL

10.5 마치며

 

[ PART IV 매일 자바와 함께 ]

 

CHAPTER 11 null 대신 Optional 클래스

11.1 값이 없는 상황을 어떻게 처리할까?

11.2 Optional 클래스 소개

11.3 Optional 적용 패턴

11.4 Optional을 사용한 실용 예제

11.5 마치며

 

CHAPTER 12 새로운 날짜와 시간 API

12.1 LocalDate, LocalTime, Instant, Duration, Period 클래스

12.2 날짜 조정, 파싱, 포매팅

12.3 다양한 시간대와 캘린더 활용 방법

12.4 마치며

 

CHAPTER 13 디폴트 메서드

13.1 변화하는 API

13.2 디폴트 메서드란 무엇인가?

13.3 디폴트 메서드 활용 패턴

13.4 해석 규칙

13.5 마치며

 

CHAPTER 14 자바 모듈 시스템

14.1 압력 : 소프트웨어 유추

14.2 자바 모듈 시스템을 설계한 이유

14.3 자바 모듈 : 큰 그림 

14.4 자바 모듈 시스템으로 애플리케이션 개발하기

14.5 여러 모듈 활용하기

14.6 컴파일과 패키징

14.7 자동 모듈

14.8 모듈 정의와 구문들

14.9 더 큰 예제 그리고 더 배울 수 있는 방법

14.10 마치며

 

[ PART V 개선된 자바 동시성 ]

 

CHAPTER 15 CompletableFuture와 리액티브 프로그래밍 컨셉의 기초

15.1 동시성을 구현하는 자바 지원의 진화

15.2 동기 API와 비동기 API

15.3 박스와 채널 모델

15.4 CompletableFuture와 콤비네이터를 이용한 동시성

15.5 발행-구독 그리고 리액티브 프로그래밍

15.6 리액티브 시스템 vs 리액티브 프로그래밍

15.7 마치며

 

CHAPTER 16 CompletableFuture : 안정적 비동기 프로그래밍

16.1 Future의 단순 활용

16.2 비동기 API 구현

16.3 비블록 코드 만들기

16.4 비동기 작업 파이프라인 만들기

16.5 CompletableFuture의 종료에 대응하는 방법

16.6 로드맵

16.7 마치며

 

CHAPTER 17 리액티브 프로그래밍

17.1 리액티브 매니패스토 

17.2 리액티브 스트림과 플로 API

17.3 리액티브 라이브러리 RxJava 사용하기

17.4 마치며

 

PART VI 함수형 프로그래밍과 자바 진화의 미래

 

CHAPTER 18 함수형 관점으로 생각하기

18.1 시스템 구현과 유지보수

18.2 함수형 프로그래밍이란 무엇인가?

18.3 재귀와 반복

18.4 마치며

 

CHAPTER 19 함수형 프로그래밍 기법

19.1 함수는 모든 곳에 존재한다

19.2 영속 자료구조

19.3 스트림과 게으른 평가

19.4 패턴 매칭

19.5 기타 정보

19.6 마치며

 

CHAPTER 20 OOP와 FP의 조화 : 자바와 스칼라 비교

20.1 스칼라 소개

20.2 함수

20.3 클래스와 트레이트

20.4 마치며

 

CHAPTER 21 결론 그리고 자바의 미래

21.1 자바 8의 기능 리뷰

21.2 자바 9 모듈 시스템

21.3 자바 10 지역 변수형 추론

21.4 자바의 미래

21.5 더 빠르게 발전하는 자바

21.6 결론

 

부록

_APPENDIX A 기타 언어 업데이트 

_APPENDIX B 기타 라이브러리 업데이트 

_APPENDIX C 스트림에 여러 연산 병렬로 실행하기 

_APPENDIX D 람다와 JVM 바이트코드 

출판사리뷰

완전히 새로워진 자바 8, 9, 10의 기능을 속 시원하게 배우자!

이 책은 자바 최신 기능을 애플리케이션에 실용적으로 적용하는 방법을 알려준다. 수정처럼 투명한 예제와 꼼꼼한 정보 제공으로 여러분의 노력에 보답할 것이다. 또한 기존 핵심 자바의 지식뿐 아니라 스트림 API, 자바 모듈 시스템 같은 최신 추가 기능, 동시성의 새로운 접근 방법, 함수형 개념 등 읽기 쉽고 유지보수하기 쉬운 코드를 구현하는 데 어떻게 도움이 되는지 배울 수 있다.

 

 

왜 새로운 기능을 사용해야 할까?

예를 들어 새로 추가된 기능 중에서 람다를 이용하면 좀 더 간결한 자바 프로그램을 구현할 수 있다. 대부분의 독자는 이미 이벤트 핸들러, 콜백 등을 이용해 어떤 이벤트가 발생했을 때 호출될 메서드를 포함하는 객체를 등록해본 경험이 있을 것이다. 람다라면 더 다양한 분야에서 이 기능을 사용할 수 있다. 즉 람다와 람다의 친구인 메서드 레퍼런스로 어떤 동작 중 실행될 수 있는 코드나 메서드를 간단하게 인수로 전달할 수 있다. 결국 독자 여러분이 생각했던 것보다 이와 같은 기능이 자주 사용(메서드를 코드로 파라미터화하는 것뿐 아니라 새로운 스트림 API를 이용해 데이터를 수집하는 복잡한 쿼리에 이르기까지)된다는 것을 확인하게 될 것이다.

 

<추천평>

“최신 자바 기능을 완벽하고 훌륭한 예제와 함께 실용적으로 소개했습니다.”

_올렉산드 만드리크, EPAM 시스템스

 

“단순하고 아름답게 자바 8, 자바 9을 실용적으로 설명했어요.”

_디팍 바스카란, 세일즈포스닷컴

 

“스트림, 동시성, 리액티브를 다양한 활용 사례와 예제로 설명합니다.”

_롭 파체코, 시놉시스

독자리뷰

오탈자 보기

부록/예제소스

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

배송료 안내

  • 20,000원 이상 구매시 도서 배송 무료
  • 브론즈, 실버, 골드회원 무료배송
닫기

리뷰쓰기

닫기
* 상품명 :
모던 자바 인 액션 : 람다, 스트림, 함수형, 리액티브 프로그래밍으로 새로워진 자바 마스터하기
* 제목 :
* 별점평가
1 2 3 4 5
* 내용 :

* 리뷰 작성시 유의사항

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

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

오탈자 등록

닫기
* 도서명 :
모던 자바 인 액션 : 람다, 스트림, 함수형, 리액티브 프로그래밍으로 새로워진 자바 마스터하기
* 구분 :
* 상품 버전
종이책 PDF ePub
* 페이지 :
* 위치정보 :
* 내용 :

도서 인증

닫기
도서명*
모던 자바 인 액션 : 람다, 스트림, 함수형, 리액티브 프로그래밍으로 새로워진 자바 마스터하기
구입처*
구입일*
부가기호*
부가기호 안내

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

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

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

닫기

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