책 이미지

책 정보
· 분류 : 국내도서 > 컴퓨터/모바일 > 프로그래밍 언어 > 자바
· ISBN : 9788966187270
· 쪽수 : 260쪽
· 출판일 : 2014-05-19
책 소개
목차
헌사
추천평
저자 서문
역자 서문
1장 ▶ 람다 표현식
01 왜 람다인가?
02 람다 표현식 문법
03 함수형 인터페이스
04 메서드 레퍼런스
05 생성자 레퍼런스
06 변수 유효 범위
07 디폴트 메서드
08 인터페이스의 정적 메서드
연습문제
2장 ▶ 스트림 API
01 반복에서 스트림 연산으로
02 스트림 생성
03 filter, map, flatMap 메서드
04 서브스트림 추출과 스트림 결합
05 상태 유지 변환
06 단순 리덕션
07 옵션 타입
- 옵션 값 다루기
- 옵션 값 생성하기
- flatMap을 이용해 옵션 값 함수 합성하기
08 리덕션 연산
09 결과 모으기
10 맵으로 모으기
11 그룹핑과 파티셔닝
12 기본 타입 스트림
13 병렬 스트림
14 함수형 인터페이스
연습문제
3장 ▶ 람다를 이용한 프로그래밍
01 지연 실행
02 람다 표현식의 파라미터
03 함수형 인터페이스 선택
04 함수 리턴
05 합성
06 지연
07 연산 병렬화
08 예외 다루기
09 람다와 제네릭
10 모나드 연산
연습문제
4장 ▶ JavaFX
01 자바 GUI 프로그래밍의 간략한 역사
02 Hello, JavaFX!
03 이벤트 처리
04 JavaFX 프로퍼티
05 바인딩
06 레이아웃
07 FXML
08 CSS
09 애니메이션과 특수 효과
10 화려한 컨트롤
연습문제
5장 ▶ 새로운 날짜 및 시간
01 타임 라인
02 지역 날짜
03 날짜 조정기
04 지역 시간
05 구역 시간
06 포맷팅과 파싱
07 레거시 코드와 상호 동작
연습문제
6장 ▶ 병행성 향상점
01 원잣값
02 ConcurrentHashMap 향상점
- 값 업데이트하기
- 벌크 연산
- 집합 뷰
03 병렬 배열 연산
04 완료 가능한 퓨처
- 퓨처
- 퓨처 합성하기
- 합성 파이프라인
- 비동기 연산 합성하기
연습문제
7장 ▶ Nashorn 자바스크립트 엔진
01 명령행에서 Nashorn 실행
02 자바에서 Nashorn 실행
03 메서드 호출
04 객체 생성
05 문자열
06 숫자
07 배열 작업
08 리스트와 맵
09 람다
10 자바 클래스 확장과 자바 인터페이스 구현
11 예외
12 셸 스크립팅
- 셸 명령 실행하기
- 문자열 인터폴레이션
- 스크립트 입력
13 Nashorn과 JavaFX
연습문제
8장 ▶ 그 외 여러 가지 주제
01 문자열
02 숫자 클래스
03 새로운 수학 함수
04 컬렉션
- 컬렉션 클래스에 추가된 메서드
- 비교자
- Collections 클래스
05 파일 작업
- 행 스트림
- 디렉터리 엔트리 스트림
- Base64 인코딩
06 애너테이션
- 반복 애너테이션
- 타입 사용 애너테이션
- 메서드 파라미터 리플렉션
07 기타 작은 변경 사항
- 널 검사
- 지연 메시지
- 정규 표현식
- 로케일
- JDBC
연습문제
9장 ▶ 혹시 놓쳤을 수도 있는 자바 7 기능
01 예외 처리 변경 사항
- try-with-resources 문
- 생략 예외
- 여러 예외 잡기
- 더 쉬운 리플렉션 메서드 예외 처리
02 파일 작업
- 경로
- 파일 읽기 및 쓰기
- 파일과 디렉터리 생성하기
- 파일 복사, 이동, 삭제하기
03 equals, hashCode, compareTo 메서드 구현
- 널 안전 동등성 테스트
- 해시 코드 계산하기
- 숫자 타입 비교하기
04 보안 요구 사항
05 기타 변경 사항
- 문자열을 숫자로 변환하기
- 전역 로거
- 널 검사
- ProcessBuilder
- URLClassLoader
- BitSet
연습문제
저자소개
리뷰
책속에서
얼마 전 자바 8이 정식으로 발표되었다. 자바 8에는 수많은 자바 개발자들이 오랫동안 기다려온 람다가 드디어 추가되었다. 자바 1.1에서 1.2로, 자바 1.4에서 자바 5로 넘어갈 때처럼, 다시 한 번 언어 사양과 라이브러리에서 큰 변화와 도약을 맞이했고 이제야 자바의 진정한 새 버전이 나온 것 같다.
최근 몇 년간 빅데이터와 병렬 처리의 중요성이 더욱 부각되면서 리스프와 스칼라 같은 함수형 프로그래밍 언어 또한 조명을 받게 되었다. 자연스레 자바 언어에서도 함수형 언어의 장점을 도입하려는 노력이 계속되어 왔고, 드디어 결실을 맺게 된 것이다.
자바만의 객체지향 철학과 일관성을 고수하면서 제약이 따르는 건 사실이지만, 람다의 등장으로 이제 자바에서도 그럴듯한 함수형 프로그래밍이 가능해졌다. 특히, 람다의 지원으로 더 강력해진 컬렉션 라이브러리와 새로운 스트림 API 덕분에 자바 SE 환경에서도 작업 성격에 따라 맵/리듀스 방식으로 자연스럽게 순차 또는 병렬 처리를 할 수 있다는 점이 가장 주목할 만한 부분이다. 물론 스트림 API를 사용할 때 외부 순회보다는 내부 순회 방식을 이용하며, 작업 수행 방법이 아니라 수행할 작업을 명시한다는 점을 이해하고 있어야 한다.
오랫동안 자바 개발자들을 괴롭혀온 날짜/시간과 관련해서는 새로운 표준 날짜 및 시간 API가 추가되어 더는 Joda Time 같은 서드 파티 라이브러리에 의존하지 않아도 된다. 실제로 Joda Time의 일부 문제를 해결한 버전으로 믿고 쓸 수 있는 라이브러리다.
한편 JavaFX가 스윙을 대체하면서 더 쉽고 유연하면서도 풍부한 기능을 제공한다. 특히, WebKit, GStreamer를 통한 웹 뷰, 비디오 뷰 지원과 애니메이션 처리의 용이함은 잊혀져가는 자바 데스크톱 기술의 마지막 희망이 되어줄지도 모르겠다.
Rhino의 후속으로 Nashorn이라는 고성능 자바스크립트 엔진이 등장했다. 성능은 물론 자바와의 상호 동작, ECMAScript 표준 준수 등 여러 면에서 개선되었다. 이외에도 종종 간단한 스크립팅이 필요할 때 별도로 셸이나 파이썬 등을 이용했는데, Nashorn의 스크립팅 확장을 이용하면 자바 안에서 셸 스크립팅이 가능하다는 점도 반가운 특징이다.
이 책은 자바 8에 새로 추가된 기능과 개념의 핵심을 빠르고 간결하게 설명한다. 그러면서도 가장 활용도가 높고 기대를 한 몸에 받고 있는 람다에 관해서는 충분히 자세하게 다루고 있고, 책 전반에 걸쳐 다양한 활용법을 제시해주고 있다. 또한, 적재적소에서 가려운 곳을 긁어주고 있어서 기대보다 많은 정보를 얻을 수 있다. 아울러 함수형 프로그래밍을 강조하기 위해 책 곳곳에서 함수형 표현을 사용하고 있다는 점도 주목하기 바란다.
가능하면 원문의 의미를 잘 전달하고자 노력했지만 얇은 책임에도 불구하고 역시 그리 녹록한 일은 아닌 것 같다.
아무쪼록 독자들이 이 책을 통해 자바 8의 새로운 기능들을 빠르게 이해하고, 객체지향 기반에 함수형 사고를 더해 실전에서 효과적으로 활용할 수 있게 된다면 역자로서 더 바랄 것이 없겠다.
- 옮긴이 서문 중에서