스크랩

구간

자바 람다 배우기 람다에 대해 이해하고 활용하기

원제 : Learning Java Lambdas

토비 웨슨 저 | 조승진 역 | 에이콘출판 | 2017년 08월

북트리

정가
$24.00
판매가
$17.50 (27%↓) 최저가 보상
적립금
$0.35 (2%P)
출고예상일
2026년 10월 08일 수령예상일 안내
북카트 담기 바로구매하기 위시리스트담기

평점 -  ·  리뷰 0

리뷰 쓰기

ISBN : 9791161750378 / 152쪽 189 x 237 (㎜)

이 상품에 궁금하신점이 있으세요? 1:1상담문의

추천inside
Adobe Flash Player 가져오기

이 분야의 베스트셀러

아래의 도서와 구매하시면 이 도서들의 적립금을 즉시적용해 드립니다.

  • 15,120
  • 27,000
  • 17,550
  • 21,420

책 소개

출판사 리뷰

★ 이 책에서 다루는 내용 ★ 람다와 함수형 인터페이스, 타입 추론처럼 람다를 지원하기 위한 기능들을 심도 있게 알아본다. ■ 최신 자바의 새로운 기능에 대한 개요 ■ 람다에 대한 심도 있는 내용과 그 배경, 문법, 상세 구현, 바람직한 적용 시점 및 방법 ■ 함수와 클래스의 차이점, 그리고 그것들과 람다의 관계 ■ 람다와 클로저 간의 차이점 ■ 다양한 새 기능들을 가능하게 하는 타입 추론에 대한 개선 사항 ■ 메소드 참조 사용법과 변수 범위에 대한 이해, 그리고 ‘유사 파이널(effectively final)’... ★ 이 책에서 다루는 내용 ★ 람다와 함수형 인터페이스, 타입 추론처럼 람다를 지원하기 위한 기능들을 심도 있게 알아본다. ■ 최신 자바의 새로운 기능에 대한 개요 ■ 람다에 대한 심도 있는 내용과 그 배경, 문법, 상세 구현, 바람직한 적용 시점 및 방법 ■ 함수와 클래스의 차이점, 그리고 그것들과 람다의 관계 ■ 람다와 클로저 간의 차이점 ■ 다양한 새 기능들을 가능하게 하는 타입 추론에 대한 개선 사항 ■ 메소드 참조 사용법과 변수 범위에 대한 이해, 그리고 ‘유사 파이널(effectively final)’ 의 개념 ■ 람다를 사용해 생성된 바이트코드의 특징 ■ 람다를 사용할 때 고려할 수 있는 예외와 모범적인 예외 처리 ★ 이 책의 대상 독자 ★ 애플리케이션을 새로 개발하는 경우든, 기존 자바 프로그램을 최신 자바 스타일로 변경하는 경우든 상관없이 이 책은 자바 플랫폼에서 함수형 프로그래밍의 장점을 취할 수 있도록 돕는다. ★ 옮긴이의 말★ 최근 들어 많은 수의 개발자들이 자바로 작성된 기존 프로젝트들을 버려야 할 것으로 취급하며 자바를 무시하는 경우를 많이 봤다. 이처럼 자바스크립트나 파이썬과 같이 동적 언어로 개발을 시작한 많은 개발자들에게 자바는 인기 있는 언어가 아닌 것 같다. 앞서 언급한 언어들은 모두 각 분야에서 뛰어난 언어임에 틀림없지만, 무조건적으로 특정 언어를 불호하는 것은 오해에서 비롯됐다고 생각한다. 선입견의 대부분은 목표를 달성하기 위해 소프트웨어 원칙을 지키지 않거나, 올바르지 않은 설계를 사용해 개발된 결과물을 접했기 때문이라 예상한다. 한마디로 그런 조직에서는 어떤 언어를 사용했다 하더라도 비슷한 비난을 피하긴 힘들었을 것이다. 자바는 다양한 플랫폼을 지원하는 동시에 많은 수의 개발자들이 다룰 수 있는 현존하는 가장 강력한 언어 중 하나임이 분명하다. 사용하는 곳이 늘어날수록 하위 호환을 지키는 것이 중요해졌기 때문에 빠른 속도로 새로운 기능을 추가하기가 어려웠고, 이것이 비난받는 원인이라 생각한다. 하지만 자바 역시 살아남기 위해 꾸준히 노력해왔다. 최근에 나타나는 그 대표적인 변화 중 하나가 람다다. 이미 람다가 출시된 지 몇 년이 지난 터라, 많은 개발자들이 실제 현장에서 람다를 즐겨 사용하는 것을 볼 수 있다. 하지만 람다는 단순히 컬렉션을 편리하게 다루기 위한 도구라기보다는 함수형 언어의 장점을 가져오길 원했던 자바 커뮤니티의 희망이 이뤄진 것이었고, 문법이 장황해 비판받았던 자바에게는 틀림없이 오아시스 같은 존재다. 개인적으로는 자바보다도 JVM 측면의 변화에 더 주목해야 한다고 생각한다. 많은 사람들이 자바의 미래에 대해 회의적이지만 JVM이 끝까지 살아남게 될 것이라는 데는대체로 동의한다. JVM 위에서 돌아가는 언어는 클로저, 스칼라, 그루비 등이며, 그 인기와 영향력이 나날이 높아지고 있다. JVM의 이런 인기는 속도를 중시하는 애자일이나 린 방법론을 사용하는 조직에서 기기 호환성을 지켜가며 높은 생산성을 보이기 때문이다. 자바 언어의 창시자인 제임스 고슬링도 이런 주장에 힘을 보탰다. “많은 사람들이 자바에 대해 주목하고 있는 상황에서 내가 이런 말을 하는 것은 다소 이상할 수도 있지만, 나는 자바에 대해 크게 신경 쓰지 않는다. 자바 에코시스템의 핵심은 바로 JVM이기 때문이다.” 이런 상황은 결과적으로 람다와 그 작동 원리를 JVM 수준에서 설명하는 이와 같은 책들을 더욱더 소중하게 만든다. 이 책을 통해 얻을 수 있는 지식들이 실무에 바로 적용 가능한 것들은 아니지만, 대학교 시절의 ‘프로그래밍 언어론’ 과목과 유사하게 각 언어들의 차이점에 대한 깊은 통찰을 제공함으로써 독자들로 하여금 단순한 코더가 아니라 철학을 가진 소프트웨어 엔지니어로서 성장할 수 있게 해주는 디딤돌이 될 것이다. 이 책을 번역하면서 많이 안다고 믿어왔던 내 자신에 대한 믿음이 깨졌고, 자바뿐만 아니라 함수형 프로그래밍 관련 지식까지 얻을 수 있어서 유익했다. 부디 독자들도 소중한 지식을 얻길 기원한다. 책의 내용 또는 번역에 관한 질문이나 의견은 개인 메일로 언제든지 환영한다.

저자 소개

최신 소프트웨어 개발, 그중에서도 함수형 객체지향 프로그래밍, 애자일, 린의 베스트 사례들을 전문으로 한다. 『Essential Acceptance Testing』(2013)을 저술했고, 정기적으로 블로그에 글을 올리면서 때로는 잡지에도 기고한다. 
15년 넘게 소프트웨어 산업의 일원이었고 자신이 하는 일을 사랑한다. 소프트웨어 개발에 대해 말하고 쓰는 것과 온라인으로 자신의 경험을 공유하는 것을 좋아한다.

역자 소개

미국과 한국을 거쳐 일본에서 개발자로 근무 중이다. 자바, 자바스크립트, 파이썬, 클로저, 분산 컴퓨팅, 함수형 언어, 알고리즘 등 소프트웨어 기술 전반과 그 문화에 많은 관심을 가지고 있다. www.tacogrammer.com에서 여러 가지 생각을 적고 있다.

머리말

★ 옮긴이의 말★

최근 들어 많은 수의 개발자들이 자바로 작성된 기존 프로젝트들을 버려야 할 것으로 취급하며 자바를 무시하는 경우를 많이 봤다. 이처럼 자바스크립트나 파이썬과 같이 동적 언어로 개발을 시작한 많은 개발자들에게 자바는 인기 있는 언어가 아닌 것 같다.
앞서 언급한 언어들은 모두 각 분야에서 뛰어난 언어임에 틀림없지만, 무조건적으로 특정 언어를 불호하는 것은 오해에서 비롯됐다고 생각한다. 선입견의 대부분은 목표를 달성하기 위해 소프트웨어 원칙을 지키지 않거나, 올바르지 않은 설계를 사용해 개발된 결과물을 접했기 때문이라 예상한다. 한마디로 그런 조직에서는 어떤 언어를 사용했다 하더라도 비슷한 비난을 피하긴 힘들었을 것이다.
자바는 다양한 플랫폼을 지원하는 동시에 많은 수의 개발자들이 다룰 수 있는 현존하는 가장 강력한 언어 중 하나임이 분명하다.
사용하는 곳이 늘어날수록 하위 호환을 지키는 것이 중요해졌기 때문에 빠른 속도로 새로운 기능을 추가하기가 어려웠고, 이것이 비난받는 원인이라 생각한다. 하지만 자바 역시 살아남기 위해 꾸준히 노력해왔다. 최근에 나타나는 그 대표적인 변화 중 하나가 람다다. 이미 람다가 출시된 지 몇 년이 지난 터라, 많은 개발자들이 실제 현장에서 람다를 즐겨 사용하는 것을 볼 수 있다. 하지만 람다는 단순히 컬렉션을 편리하게 다루기 위한 도구라기보다는 함수형 언어의 장점을 가져오길 원했던 자바 커뮤니티의 희망이 이뤄진 것이었고, 문법이 장황해 비판받았던 자바에게는 틀림없이 오아시스 같은 존재다.
개인적으로는 자바보다도 JVM 측면의 변화에 더 주목해야 한다고 생각한다. 많은 사람들이 자바의 미래에 대해 회의적이지만 JVM이 끝까지 살아남게 될 것이라는 데는대체로 동의한다. JVM 위에서 돌아가는 언어는 클로저, 스칼라, 그루비 등이며, 그 인기와 영향력이 나날이 높아지고 있다. JVM의 이런 인기는 속도를 중시하는 애자일이나 린 방법론을 사용하는 조직에서 기기 호환성을 지켜가며 높은 생산성을 보이기 때문이다.
자바 언어의 창시자인 제임스 고슬링도 이런 주장에 힘을 보탰다.
“많은 사람들이 자바에 대해 주목하고 있는 상황에서 내가 이런 말을 하는 것은 다소 이상할 수도 있지만, 나는 자바에 대해 크게 신경 쓰지 않는다. 자바 에코시스템의 핵심은 바로 JVM이기 때문이다.”
이런 상황은 결과적으로 람다와 그 작동 원리를 JVM 수준에서 설명하는 이와 같은 책들을 더욱더 소중하게 만든다. 이 책을 통해 얻을 수 있는 지식들이 실무에 바로 적용 가능한 것들은 아니지만, 대학교 시절의 ‘프로그래밍 언어론’ 과목과 유사하게 각 언어들의 차이점에 대한 깊은 통찰을 제공함으로써 독자들로 하여금 단순한 코더가 아니라 철학을 가진 소프트웨어 엔지니어로서 성장할 수 있게 해주는 디딤돌이 될 것이다.
이 책을 번역하면서 많이 안다고 믿어왔던 내 자신에 대한 믿음이 깨졌고, 자바뿐만 아니라 함수형 프로그래밍 관련 지식까지 얻을 수 있어서 유익했다. 부디 독자들도 소중한 지식을 얻길 기원한다. 책의 내용 또는 번역에 관한 질문이나 의견은 개인 메일로 언제든지 환영한다.

목차

1장. 도입
__모던 자바로의 길
____모던 자바의 기능들
2장. 람다 소개
__함수형 프로그래밍에서 람다(λ)
____1930년대와 람다 대수
____1950년대와 리스프
____람다란 무엇인가
__함수와 클래스
____최신 자바의 람다
____이론상의 차이점
____함수와 클래스
____몇 가지 세세한 차이점들
______점유 문법
______가려진 변수들
____요약
__람다(λ) 기본 문법
____문법 상세 내역
____요약
3장. 람다 깊이 이해하기
__함수형 인터페이스
____@FunctionalInterface
____상속
____다른 인터페이스 개선 사항들
____요약
__타입 추론 개선 사항
____자바의 타입 추론
____람다를 위한 대상 타이핑
______메소드 호출 시의 타입 인자
______연쇄 메소드 호출 시의 타입 인자
__메소드 참조
____예제
____메소드 참조의 유형
____생성자 참조
____정적 메소드 참조
____특정 객체의 인스턴스 메소드 참조
____람다가 뒤에 인스턴스를 생성하는 임의의 객체의 인스턴스 메소드 참조
____요약
__변수 범위
____유사 파이널
______파이널 우회
__예외 처리
____콜백 사용
____람다 작성 중의 예외 처리
____람다 호출자(람다 호출 시 에러 처리)
__람다 vs. 클로저
____기본적인 차이점
____기타 차이점들
____요약
____바이트코드 개요
____기술자
____메소드 시그니처 변환하기
____예제 코드들
____예제1
____예제2
____예제3
____예제4
____예제4(메소드 참조 사용)
____예제5
____요약

top