품목정보
발행일 | 2019년 08월 01일 |
---|---|
쪽수, 무게, 크기 | 692쪽 | 926g | 183*235*35mm |
ISBN13 | 9791162242025 |
ISBN10 | 1162242027 |
발행일 | 2019년 08월 01일 |
---|---|
쪽수, 무게, 크기 | 692쪽 | 926g | 183*235*35mm |
ISBN13 | 9791162242025 |
ISBN10 | 1162242027 |
옮긴이·지은이 소개 옮긴이의 말 지은이의 말 이 책에 대하여 표지 그림 소개 [ 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 바이트코드 |
전공 공부에 필요하기도 하고 개인적으로 Java 공부가 더 필요하다 생각해서 Java의 최신 버전을 다루는 책을 찾고 있었는데 이 책이 최신 Java를 다루고 설명도 자세한 것 같아서 마침 내가 원하던 것이라 구매했다. 책의 총 페이지는 692페이지로 프로그래밍 언어를 다루는 다른 책들처럼 무겁고 두께가 상당했다. 책의 구성은 Part 1부터 6까지 있고 각 Part안에 Chapter가 있어서 총 21개의 Chapter를 다룬다. 마지막에는 짧게 참고할 만한 부록이 있다.
먼저 Part 1은 기초 부분으로서 최근 프로그래밍 언어들의 변화 추세와 이에 대한 대응으로 최신 Java(Java 8, 9, 10, 11)에 나타난 변화를 요약해 소개하고 최신 Java의 대표적인 변화들 중 하나인 Lambda에 대해 소개하고 자세히 설명한다. 다음 Part 2는 함수형 데이터 처리로서 Stream을 다룬다. Stream의 소개부터 활용법, Stream을 이용한 데이터 수집 및 병렬 데이터 처리를 설명한다. Part 3은 앞에서 소개한 Stream과 Lambda를 이용해 효과적인 프로그래밍을 소개한다. 먼저 Java의 Collection API가 개선된 부분을 소개하고 기존 코드들을 Lambda와 Stream을 이용한 refactoring을 설명한다. 그리고 Lambda를 이용한 도메인 전용 언어를 다룬다.
다음 Part 4에서는 Java 8, 9에 추가된 새 기능들을 다룬다. 먼저 Optional Class를 다루고 새로 추가된 날짜와 시간에 관련된 API를 소개한다. 그리고 default method와 Java 9에 추가된 Module 시스템에 대해 설명한다. Part 5는 Java의 개선된 동시성에 관한 부분으로 개선된 병렬 프로그래밍으로 만드는 것을 다룬다. 그래서 리액티브 프로그래밍과 Java 9의 Flow API를 설명한다. 마지막 Part 6은 함수형 프로그래밍에 대한 소개와 Java로 이를 구현하는 방법을 소개한다. 끝에는 부록으로 Java의 기타 업데이트에 관한 내용을 설명한다.
일단은 한번 간단하게 쭉 읽어봤는데 내용도 많고 최신 Java에 대해 깊게 다루다보니 확실히 난이도가 높아서 금방 따라가기에 벅차긴 하다. Java를 전공 수업 때 한번 배워보고 최신 버전과 관련된 내용을 깊게 공부해보려고 이 책을 산건데 단순 Java의 기본 문법이나 API를 잘 다루는 것 외에도 디자인 패턴이나 프로그래밍 설계와 관련된 이론의 배경 지식을 깊게 알고 있어야 이 책을 공부하는데 도움이 될 것 같다. 물론 이 책에서 이해를 돕기 위해 자세한 설명과 그림이 같이 있고 예시 코드들도 많아서 하나씩 차근차근 따라간다면 괜찮을 것 같다. 난이도는 매우 높지만 어차피 공부하려고 구매한 책이니 여러 번 읽으면서 계속 공부를 하면 언젠가는 다 이해하고 익숙해질 것 같다.
C# 을 주로 이용을 해오다가 자바를 메인언어로써 사용을 하는 회사에서 일하게 된 지도
어느덧 거의 1년을 바라보고 있는 시점이다.
자바에 대한 전반적인 새로운 기능들을 빠르고 깊이 있는 부분들을 쉽게 이해할 수 있게 해주는
책이 무엇이 있을까 고민하다 이 책을 선택하였다.
이 책은 자바의 8부터의 주요 변경 사항들을 중심으로 설명을 한다.
마음에 들었던 점은
저자의 깊이있는 설명과 핵심을 관통하는 그림
번역을 한 분의 자연스러운 문장과 해석
이렇게 꼽을 수 있겠는데 이러한 점과 자바에 대한 호기심 그리고 현업에서 사용해야만 하는 의무도 있어서
재미있게 이 책을 읽을 수 있었다.
2020년 10월 말 현재 1년전 읽고 다시 이책을 다시 손에 들었다.
자바 11 인 액션은 아직도 나오지 않았다...
자바 8이 나왔지만 실무에선 쓸일이 여전히 없다. 오히려 코틀린이 대세로 떠오르며
쓸일이 없던 함수형 언어와 람다에 대하여 반대로 자바 관점에서 다시 공부하기 위해 손에 들었다.
'아..그때 그 내용이 이것이었군' 이라는 생각과 함께 새삼 내용이 참 알차고 좋은 책임을 느낀다.
착한(?) 설명, 이해하기 좋은 예제, 연습하기 좋은 연습문제 등.
람다와 이후 필요한 내용들을 보기 위해서라면, 3장 부터 다시 읽기 시작하면 된다. (나온지가 언젠데..)
필요한 부분들만 일단 찍어서 훑어 보고 인덱싱을 완료 했다.
이제 다시 읽으며 실습과 습득 공부를 시작해야 한다.
1년 지났다고 내용이 새롭다니..... 쓸일 없으면 잊어 버린다는 건 진실이다. (눈물 쓱..)
지금 시점이라면 함수형 언어가 이렇게나 뜬 상황이라면, 초보들은 반드시 이책으로 공부를 시작하라고 하고 싶다.
조금 어렵고 힘들다고 하여도.. 결국 다른 언어를 이해하는데, 그리고 현재 저 키워드를 이해하는데 많은 도움이 될 것이라고 생각한다.
읽으세요. 두번 읽고 세번 읽고 쭉쭉.. 틈틈히 읽어줍시다. 내것이 될 때 까지.