서브메뉴

본문

자바 8 인 액션 (람다, 스트림, 함수형 프로그래밍으로 새로워진 자바 마스터하기)
자바 8 인 액션 (람다, 스트림, 함수형 프로그래밍으로 새로워진 자바 마스터하기)
저자 : 라울-게이브리얼 우르마|마리오 푸스코|앨런 마이크로프트
출판사 : 한빛미디어
출판년 : 2015
ISBN : 9788968481796

책소개

『자바 8 인 액션』은 함수형 언어의 영감을 받아 자바 8에 추가된 람다, 스트림, 함수형 프로그래밍, 병렬화와 공유 가변 데이터, 동작 파라미터화 등의 주요 기능을 자바 개발자에게 알려준다. 책은 실전에 유용한 코드로 람다를 설명한다. 그리고 새로운 스트림 API를 설명하며 기존의 컬렉션 기반 코드를 스트림 API로 쉽게 이해하고 유지보수할 수 있는 코드로 개선하는 방법을 살펴본다. 또한 디폴트 메서드, Optional, CompletableFuture, 새로운 Date, Time API 등 다양한 자바 8의 주요 기능도 설명하고 있다.
[교보문고에서 제공한 정보입니다.]

출판사 서평

자바 8의 새로운 기능은 자바 1.0이 나온 이후 18년을 통틀어 가장 큰 변화다. 기존의 자바 코드 모두 그대로 사용하면서도 새로운 기능과 새로운 문법과 새로운 디자인 패턴으로 더 명확하고, 간결한 코드를 구현할 수 있다. 이 책은 함수형 언어의 영감을 받아 자바 8에 추가된 람다, 스트림, 함수형 프로그래밍, 병렬화와 공유 가변 데이터, 동작 파라미터화 등의 주요 기능을 자바 개발자에게 알려준다.

출판사 리뷰

★ 완전히 새로운 자바 8의 기능을 속 시원하게 배우자!

실전에 유용한 코드로 람다를 설명한다. 그리고 새로운 스트림 API를 설명하며 기존의 컬렉션 기반 코드를 스트림 API로 쉽게 이해하고 유지보수할 수 있는 코드로 개선하는 방법을 살펴본다. 또한 디폴트 메서드, Optional, CompletableFuture, 새로운 Date, Time API 등 다양한 자바 8의 주요 기능도 설명한다. 자바 8의 새로운 기능에 골머리가 아팠다면 지금 당장 이 책을 선택하자!

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

★ 이 책의 구성
이 책은 ‘기초’, ‘함수형 데이터 처리’, ‘효과적인 자바 8 프로그래밍’, ‘자바 8의 한계를 넘어서’로 분류되어 있다. 특별한 이유가 없다면 각 장은 앞 장의 내용을 이용하는 형식으로 집필되어 있으므로 순서대로 읽을 것을 강력하게 권한다. 대부분의 장에는 직접 실습할 수 있도록 다양한 퀴즈를 포함한다.

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

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

_3부는 자바 8을 더 효과적으로 사용하고, 우리의 코드를 좀 더 최신식으로 개선할 수 있는 다양한 자바 8 관련 내용을 설명한다.

_4부에서는 자바로 효과적인 함수형 프로그래밍을 구현하는 방법을 설명한다. 또한 자바 8의 기능을 스칼라와 비교한다.

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

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

추천평
“저자는 왜 우리가 함수형 프로그래밍을 해야 하는지 차근차근 1장부터 안내를 해주고 있습니다. 제가 가장 좋아하고 백미라고 생각한 부분은 13장과 14장입니다. 자바 8 이전의 자바로 개발을 하며 좀처럼 접하지 않았던 참조 투명성이나 고차원 함수 등의 개념을 이해하는 데 좋은 가이드가 되어줄 것입니다.”
양수열, 자바 챔피언

“단시간에 효과적으로 학습할 수 있는 다양한 예제를 포함하는 정말 멋진 자바 8 가이드입니다.”
제이슨 리, 오라클

“세계 최고의 자바 8 가이드가 나왔습니다!”
윌리엄 휠러, ProData Computer Systems

“새로운 스트림 API, 람다 예제는 정말 유용하네요.”
스티브 로저스, CGTek, Inc.

“자바 8의 함수형 프로그래밍을 배우려는 사람이라면 꼭 사야 할 책입니다.”
마유르 S. 파틸, MIT Academy of Engineering
[교보문고에서 제공한 정보입니다.]

목차정보



1장. 자바 8을 눈여겨봐야 하는 이유
__1.1 왜 아직도 자바는 변화하는가?
__1.2 자바 함수
__1.3 스트림
__1.4 디폴트 메서드
__1.5 함수형 프로그래밍에서 가져온 다른 유용한 아이디어
__1.6 요약

2장. 동작 파라미터화 코드 전달하기
__2.1 변화하는 요구사항에 대응하기
__2.2 동작 파라미터화
__2.3 복잡한 과정 간소화
__2.4 실전 예제
__2.5 요약

3장. 람다 표현식
__3.1 람다란 무엇인가
__3.2 어디에, 어떻게 람다를 사용할까?
__3.3 람다 활용: 실행 어라운드 패턴
__3.4 함수형 인터페이스 사용
__3.5 형식 검사, 형식 추론, 제약
__3.6 메서드 레퍼런스
__3.7 람다, 메서드 레퍼런스 활용하기!
__3.8 람다 표현식을 조합할 수 있는 유용한 메서드
__3.9 비슷한 수학적 개념
__3.10 요약



4장. 스트림 소개
__4.1 스트림이란 무엇인가?
__4.2 스트림 시작하기
__4.3 스트림과 컬렉션
__4.4 스트림 연산
__4.5 요약

5장. 스트림 활용
__5.1 필터링, 슬라이싱
__5.2 매핑
__5.3 검색과 매칭
__5.4 리듀싱
__5.5 모든 기법 활용
__5.6 숫자형 스트림
__5.7 스트림 만들기
__5.8 요약

6장. 스트림과 데이터 수집
__6.1 컬렉터란 무엇인가?
__6.2 리듀싱과 요약
__6.3 그룹화
__6.4 분할
__6.5 Collector 인터페이스
__6.6 커스텀 컬렉터를 구현해서 성능 개선하기
__6.7 요약

7장. 병렬 데이터 처리와 성능
__7.1 병렬 스트림
__7.2 포크/조인 프레임워크
__7.3 Spliterator
__7.4 요약



8장. 리팩토링, 테스팅, 디버깅
__8.1 가독성과 유연성을 개선하는 리팩토링
__8.2 람다로 객체지향 디자인 패턴 리팩토링하기
__8.3 람다 테스팅
__8.4 디버깅
__8.5 요약

9장. 디폴트 메서드
__9.1 변화하는 API
__9.2 디폴트 메서드란 무엇인가?
__9.3 디폴트 메서드 활용 패턴
__9.4 해결 규칙
__9.5 요약

10장. null 대신 Optional
__10.1 값이 없는 상황을 어떻게 처리할까?
__10.2 Optional 클래스 소개
__10.3 Optional 적용 패턴
__10.4 Optional을 사용한 실제 예제
__10.5 요약

11장. CompletableFuture: 조합할 수 있는 비동기 프로그래밍
__11.1 Futures
__11.2 비동기 API 구현
__11.3 비블록 코드 만들기
__11.4 비동기 작업 파이프라인 만들기
__11.5 CompletableFuture의 종료에 대응하는 방법
__11.6 요약

12장. 새로운 날짜, 시간 API
__12.1 LocalDate, LocalTime, Instant, Duration, Period
__12.2 날짜 조정, 파싱, 포매팅
__12.3 다양한 시간대와 캘린더 활용 방법
__12.4 요약



13장. 함수형 관점으로 생각하기
__13.1 시스템 구현과 유지보수
__13.2 함수형 프로그래밍이란 무엇인가?
__13.3 재귀와 반복
__13.4 요약

14장. 함수형 프로그래밍 기법
__14.1 함수는 모든 곳에 존재한다
__14.2 영속 자료구조
__14.3 스트림과 게으른 평가
__14.4 패턴 매칭
__14.5 기타 정보
__14.6 요약

15장. OOP와 FP의 조화: 자바 8과 스칼라 비교
__15.1 스칼라 소개
__15.2 함수
__15.3 클래스와 트레이트
__15.4 요약

16장. 결론 그리고 자바의 미래
__16.1 자바 8의 기능 리뷰
__16.2 자바의 미래
__16.3 결론

부록 A 기타 언어 업데이트
부록 B 기타 라이브러리 업데이트
부록 C 스트림에 여러 연산 병렬로 실행하기
부록 D 람다와 JVM 바이트코드
[교보문고에서 제공한 정보입니다.]