나에게 필요한 지식과 기술을 검색해 보세요.

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

지은이

라울-게이브리얼 우르마, 마리오 푸스코, 앨런 마이크로프트

옮긴이

우정은

출간일

2015.03.19

레벨

초중급

평점

5(1명)

정가

28,000

판매가

25,200

총 결제 금액

10%

25,200

적립 예정

1,260P

쪽수

512P

ISBN

9788968481796

브랜드

한빛미디어

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


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

 

이 책의 내용

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

 

 

저자

목차

1부 기초

 

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 요약 

 


2부 함수형 데이터 처리


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 요약 

 


3부 효과적인 자바 8 프로그래밍


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 요약 

 


4부 자바 8의 한계를 넘어서


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 바이트코드 

리뷰

전체 평점

5

오탈자

  • 종이책131P1

    기술 오류

    List menu = Arrays.asList 의 항목

    2019-09-08
  • 종이책113P3

    기술 오류

    BiFunction 예시

    2019-08-07
  • 종이책113P3

    기술 오류

    BiFunction 예시

    2019-08-07
  • 종이책78P3

    기술 오류

    List eventNumbers = filter(numbers, (Integer i) -> i % 2 == 0 );

    2019-07-22
  • 종이책395P3

    내용 오류

    3번째 줄

    2019-03-29

28,000

10%

25,200