hji7***
2019-10-13

자바 1.0이 나온 이후 18년을 통틀어 가장 큰 변화가 자바 8 이후 이어지고 있다. 자바 8 이후 모던 자바를 이용하면 기존의 자바 코드 모두 그대로 쓸 수 있으며, 새로운 기능과 문법, 디자인 패턴으로 더 명확하고 간결한 코드를 구현할 수도 있다.
책을 읽다가 보면, 책들을 분류하는 개인만의 기준이 생기게 됩니다.
저는 "읽고 싶은 시간"이라는 기준이 있습니다.
먼저 빠르게 읽고 싶은 책들이 있습니다.
책의 내용이 박약하거나, 번역이 형편없거나 이런 이유로 읽는 시간이 아까운 그런 책들입니다.
빨리 읽어 버리고 다음 책을 찾아야 겠다는 생각이 간절하죠
또는 책을 읽는 목표에 부합하지 않는 책이라는 것을 늦게 깨달은 경우 역시 빨리 읽어내려가게 됩니다.
하지만 책의 내용이 너무 박진감 넘쳐서
그 놀라운 아이디어들을 빨리 들어보고 싶은 경우,
책을 빨리 읽고 싶게 됩니다.
되도록이면 천천히 읽고 싶은 책도 있습니다.
저자의 식견이 너무 뛰어나서, 책 어느 구석에 숨겨져 있을지 모를 식견을 놓칠까봐 천천히 되새기면서 읽어보고 싶은 그런 책들입니다.
너무 빨리 읽으면 이런 식견들을 이해하고 넘어가지 못할까봐 조심스러워지고
기억하고 싶은 것들을 너무 한꺼번에 보게 된다면, 책을 덮고 나중에 읽는 것이 오히려 바람직하다고 생각하게 됩니다.
이런 책들에 경우 읽고 나서 책의 내용을 정리할 때, 가끔 곤욕을 치루지만 ... ( 너무 많은 곳을 남겨 놓겠다고 표시해서, 타이핑이 힘듭니다. )
그래도 읽은 후 좋은 느낌이 꽤 오래 유지되고, 추후 동료들에게도 적극 추천하게 됩니다.
그리고, 다시 보고 싶은 책들이 있습니다.
가끔 탁월한 저서들을 만나게 되는데요.
이런 책들은 한번 읽고는 스스로 저자의 생각을 이해했다고 확신 할 수 없습니다.
이런 경우는 책을 다시 읽고 싶게 됩니다.
일년쯤 간격으로 3번을 다시 읽은 책도 있었습니다.
마지막으로 오래 곁에 두고 여기 저기 들쳐 보고 싶은 책들이 있습니다.
프로그래밍 언어의 문법을 설명한 책에 경우
단순히 문법 설명뿐만 아니라 그 언어가 지향하는 패러다임에 대해서도 잘 설명했다면,
이런 책은 곁에 두고 오래 봐야 합니다. 그래서 이 언어의 철학을 몸에 익히는 것이 필요하죠.
이 책은 ...
이 책은 되도록이면 천천히 읽고 난 다음,
오래 곁에 두고 여기저기 들쳐 보고 싶은 그런 책입니다.
저자의 식견이 상당히 놀라울 뿐만 아니라 그 내용이 자바의 함수지향적 요소들을 상당히 깊이 이해한 상태에서 설명해주고 있기 때문입니다.
저자는 자바 8 부터 추가 되기 시작한 함수지향적 요소들을 하나씩 설명해 나가고 있는데요. 그 설명과 관점이 상당히 탁월합니다. 만약 자바함수지향적 요소들에 대해서 이해하고 싶다면 이 책 하나로 충분하다고 이야기 하고 싶습니다
2016년쯤까지,
소프트웨어 개발자들에게는 불문율 같은 것이 있었습니다.
"CPU가 좋아지면 소스코드 최적화가 그리 큰 의미가 없다"는 것입니다.
"무어의 법칙"에 따라 CPU 속도는 급진적으로 빨라 질텐데 소스코드 레벨에서 속도를 빠르게 하는 것은 어쩌면 그리 큰 의미를 가진 일이 아니었을 테니까요.
하지만, 2016년쯤, 인텔은 "무어의 법칙(제품개발 계획)"을 포기하게 됩니다.
즉, CPU 코어 하나의 속도를 늘리는 방식이 아니라 CPU 코어 개수를 늘리는 방식으로 CPU 제품 개발 계획이 변경 된 것입니다.
따라서 소프트웨어의 속도를 향상 시키기 위해서는 "소프트웨어 레벨의 속도개선 방법"이 필요하게 되었습니다.
가장 타당한 방식은 함수지향 패러다임의 도입입니다.
개발자들은 함수지향적으로 코딩을 해서 각 함수를 여러 코어에 나눠 줄 수 있도록 만들고, JVM과 같은 가상머신 단에서 함수들을 여러 코어에 나눠주는 로직을 가지게 하는 것입니다.
이런 기술적인 흐름을 이해하고 있었던 선각자들은 자바 언어 그룹에서 함수지향적 요소를 추가할 것을 상당히 강력하게 요구하고 있었다고 합니다.
물론 자바는 뒤 늦게 8버전부터 이를 수용하여 업그레이드하기 시작했습니다.
따라서,
본인이 자바 개발자라면, 이 책을 읽는 것은 "필수" 항목에 해당한다는 것을 이해 해야 합니다.