제목 : 자바 람다 배우기 : 람다에 대해 이해하고 활용하기
저자 : 토비 웨슨
추천 : ★★★★☆
자바8부터 추가된 람다에 대해서만 다루는 책은 그동안 없었던걸로 기억한다.
보통 두꺼운 자바 문법서에서 한 챕터를 할당해서 설명하는 책이 많았을 것이다.
사실 나는 자바의 기초 문법은 이미 학습한 상태이기도 해서 따로 기초 문법서를 구매할 생각은 없었는데, 우연히 서점에서 이 책을 발견했다.
람다만 다루는 책이라니..
내가 알고 있던 람다에 대한 지식을 엎어버릴 만한 반전이 있을 것 같은 느낌이 들어서 바로 구매했다.
우선 책이 엄청 얇다. (물론 개발 서적 치고 얇다)
152쪽.. 가볍게 읽기 너무 좋다.
그리고 번역도 비교적 깔끔하게 되어 있어서 읽는데에 번역 때문에 스트레스 받거나 시간이 지체된 적은 없었던 것 같다.
내용은 우리가 이미 알고 있는 람다 문법에 대한 전반적인 설명이지만, 이 책은 람다가 단순히 자바8 이전에 사용되던 익명 객체 생성 코드를 가독성 좋게 바꿔주는 문법이라고 평가받는것을 거부한다. 매우 강하게.
나도 그동안 익명 객체 생성 코드 대신, 람다를 사용하면 코드가 깔끔해지지만 실제론 람다도 익명 객체 처럼 객체로 만들어진다 라고 알고 있었는데.. 충격이였다.
그렇다면 자바에서 람다는 객체로 안만들어진단 말인가?
근데 우리는 코드 레벨에서 람다를 객체 처럼 사용한다.
뭔가 이상하다.
다행히 책에서 말 뿐만 아니라 실제로 익명 객체를 사용한 예제와 람다를 사용한 예제의 바이트코드를 비교해준다.
바이트코드에 대한 간략한 설명도 있어서 같이 보면서 이해하기 쉬웠다.
바이트코드를 보니.. 진짜 람다는 객체 생성 명령문이 없었다!
static 메소드와 유사하게 함수에 대한 정의를 Heap 영역의 Perm Gen 에 저장해놓고 가져다 쓰는 것이다.
이 주제로 한번 포스트를 할 예정이다.
또한 개발에 있어서 람다를 사용할 때 발생할 수 있는 문제와 해결법을 제시해주는데 사실 책이 얇은 이유가 있었다.
그렇게 넓게 다루진 않는다.
하지만 람다 지식을 정리도 할겸, 그리고 몰랐던 내용을 얻어서 너무 잘 샀다는 생각이 든다.
'Book > Review' 카테고리의 다른 글
네이버 vs 카카오 솔직 리뷰 (0) | 2022.11.20 |
---|---|
모던 자바 인 액션 솔직 리뷰 (0) | 2022.11.11 |
삼성페이 이야기 솔직 리뷰 (0) | 2022.11.11 |
데이터는 어떻게 인생의 무기가 되는가 솔직 리뷰 (0) | 2022.11.06 |