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

한빛출판네트워크

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

  • 저자 : 라울-게이브리얼 우르마 , 마리오 푸스코 , 앨런 마이크로프트
  • 번역 : 우정은
  • 출간 : 2015-03-19
  • 페이지 : 512 쪽
  • ISBN : 9788968481796
  • 물류코드 :2179
초급 초중급 중급 중고급 고급
5점 (1명)
좋아요 : 49

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


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

 

이 책의 내용

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

 

 

저자

라울-게이브리얼 우르마

UK의 데이터 과학자와 개발자를 선도하는 교육 커뮤니티인 케임브리지 스파크의 공동 창업자다. 2017년에 자바 챔피언으로 임명되었다. 다수의 스타트업 프로젝트를 포함해 구글, 이베이, 오라클, 골드만삭스 등의 회사와 함께 일했다. 케임브리지 대학교에서 컴퓨터 과학 박사 학위를 마쳤다. 임페리얼 칼리지 런던의 석사 학위를 보유하고 있으며 우등생으로 졸업했고 다수의 기술 혁신 수상 경력이 있다. 국제 컨퍼런스에서 100회 이상의 기술 강연을 했다.

 

저자

마리오 푸스코

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

저자

앨런 마이크로프트

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

역자

우정은

2003년 컴퓨터 공학과를 졸업하고 벨록스소프트에 입사하면서 임베디드 소프트웨어 분야에 발을 디디게 되었다. 그 후 LG전자 단말연구소를 거쳐, 현재는 썬 마이크로시스템즈(Sun Microsystems)에서 Java Licensee Engineer로 근무하고 있다. 주로 자바 가상머신(virtual machine), 임베디드 디바이스에 탑재되는 자바 플랫폼과 관련된 일을 하였다. 아이폰의 매력에 빠져들면서 번역 및 개발을 취미로 삼게 된다.

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

  • 자바 9이 나온지 수개월이 지나가는 시점에 자바 8을 리뷰하고 있는게 좀 우스울수도 있지만, 리뷰를 해보려고 한다. 자바 9이 나온지 아직 시간이 많이 지난것이 아니라서 프로덕션 런타임으로 결정하기엔 시기상조라고 본다. 그래서 지금이라도 자바 8을 살펴보는 사람들에게 이 리뷰가 도움이 됐으면 한다.

    결론부터 말하면, 자바 8을 잘 사용하고 싶은 사람들 모두에게 권하고 싶은 책이다. 책을 처음부터 순서대로 읽으면 잘 짜여진 이야기를 읽는 느낌이 든다.
    1부에서는 컴퓨터의 하드웨어 발전 방향이 변함에 따라, 병렬프로그래밍의 중요성이 커지고, 자바가 함수형 프로그래밍이라는 새로운 패러다임을 받아들이게 된 이유를 차례대로 알 수 있었다.

    2부에는 이어서 스트림 API에 대해 자세히 설명한다. 기존의 명령형 프로그래밍 코드와 스트림으로 리팩토링된 코드를 비교하면서 스트림 API를 통해 명료하고 짧아진 코드를 확인해 볼 수 있다.

    3부에서는 Optional, 디폴트 메서드, CompletableFuture, 새로운 DateTime 라이브러리를 소개한다. 이들 라이브러리는 이전 자바에 비해 훨씬 강력한 기능들을 제공하기 때문에 꼭 봐야한다. 나아가 객체지향에서 자주 쓰이던 디자인 패턴이 함수형 프로그래밍을 사용하면 어떻게 간단히 구현될 수 있는지 보여준다.

    4부에서는 함수형 프로그래밍을 살펴보고, JVM위에서 돌아가는 함수형 프로그래밍 언어 스칼라와 자바를 비교한다. 또 흥미로운 내용을 부록에 넣어두었는데 이것들은 시간이 될 때마다 읽으려고 한다.

    책 전체에 걸쳐서 코딩 퀴즈와 예제가 많기 때문에 하나씩 실제로 따라해본다면 자바의 새로운 기능에 적응하기 쉬울 것이다. CompletableFuture나 LocalDateTime 같은 경우는 기존 라이브러리에 비해 훨씬 좋아졌으니 꼭 실습해보기를 바란다.

    함수형 프로그래밍이 조금 생소했기에 책을 읽는데 시간이 좀 걸렸지만 읽을 가치가 있는 책이었다.

부록/예제소스
자료명 등록일 다운로드
DOWNLOAD 예제소스 2019-07-25 다운로드
결재하기
• 문화비 소득공제 가능
• 배송료 : 0원배송료란?

배송료 안내

  • 책, 아이템 등 상품을 3만원 이상 구매시 무료배송
  • 브론즈, 실버, 골드회원이 주문하신 경우 무료배송

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

닫기

리뷰쓰기

닫기
* 도서명 :
자바 8 인 액션 : 람다, 스트림, 함수형 프로그래밍으로 새로워진 자바 마스터하기
* 제목 :
* 별점평가
* 내용 :

* 리뷰 작성시 유의사항

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

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

오탈자 등록

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

도서 인증

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

* 회원가입후 도서인증을 하시면 마일리지 500점을 드립니다.

* 한빛 웹사이트에서 구입한 도서는 자동 인증됩니다.

* 도서인증은 일 3권, 월 10권, 년 50권으로 제한됩니다.

* 절판도서, eBook 등 일부 도서는 도서인증이 제한됩니다.

닫기

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

자료실