(책리뷰) Java9 모듈 프로그래밍

Java 9 모듈프로그래밍

제목 : Java 9 모듈프로그래밍
부제 : 자바 모듈 프로그래밍으로 재사용 가능하고 관리하기 쉬운 코드 작성하기
저자 : 코시크 코타갈(Koushik Kothagal)
역자 : 유동환

아직 많은 자바 프로젝트에서 jdk 1.8 로 넘어가지 못하고 있을 것 같다. 그만큼 1.8에 추가된 functional interface나 lamda의 개념은 기존의 프로그래밍 방식과 많이 달랐을 것이다. 이런 시점에 java 9 이 릴리즈 된지도 벌써 반년이 넘었다. 자바9에서 추가되거나 개선된 기능은 여러가지 가 있지만 가장 큰 변화는 모듈화(Modularity) 일 것이다.

OOP에 익숙한 자바 개발자 입장에서 1.8의 함수형 프로그래밍 개념 보다는 모듈 프로그래밍이 그나마 더 친숙하게 다가올 수 있을 것 같다. 하지만 모듈을 어떻게 만들고 어떻게 다뤄야 하는지 익숙해 지기는 쉽지 않아 보인다. 오히려 1.8로 넘어가는 것 보다 9가 자리잡는데 더 오랜 시간이 걸릴 수 도 있을 것 같다는 생각이 든다. 그래도 “Java 9 모듈프로그래밍” 책이 매우 좋은 가이드가 되어 줄 것 같다.

일단 번역서임에도 불구하고 번역의 느낌이 별로 없다. 책 전체를 보면서 한 두문장을 제외하고는 딱히 애매한 부분이 없었다. 용어도 영어를 알파벳 그대로 옮길지, 한국어로 표현할지, 번역해서 표현할 지 매우 잘 선택한 것 같다. 개발자가 익숙한 단어를 다르게 표현되는 경우에 읽다가 흐름이 끊기는 경우가 많은데, 아마도 역자가 개발을 꽤 오래 한 것 같다. 오탈자도 거의 없는 느낌이다. 눈에 띄게 발견한 것도 한단어 정도?

이 책이 전달하고자 하는 목적은 명확하다. “모듈이란 무엇이고 왜 사용해야 하는가.”
이 내용 말고는 다른 사족이 붙어있지 않다. 처음 부터 끝까지 모듈만 집중해서 전달한다. 예제 코드도 매우 단순하고 짧다. 단순한 예제가 step by step으로 점진적으로 나아간다.
무엇보다 좋았던 점은 모듈이라는 개념이 나올 수 밖에 없었는지 설명을 하며 책이 시작하는 것이다. 매우 간단한 예제와 Java API를 모듈화하는 Jigsaw 프로젝트를 통해 간결하고 명확하게 전달해 준다.

기존 코드에 어떤 문제가 있었는지, 그래서 모듈이 무엇이고 왜 필요한지, 모듈화를 위해 어떤 것들이 추가되었는지, 어떤 철학을 가지고 모듈화를 해야하는지, 기존 코드를 어떻게 마이그레이션 하는지 순으로 내용이 진행된다.
앞의 내용을 이해한 상태에서 다음 장으로 넘어가야 한다.
그래서 뒤로 갈 수록 조금씩 내용이 어려워 지는 느낌이다.
각 장에서 다루는 세부내용은 출판사 리뷰를 보면 좋을 것 같다.

당장 java 9를 사용할 계획이 없더라도 6,7장 정도까지는 부담없이 볼 수 있고, java9를 사용하지 않더라도 보면 좋은 내용들이 많다. 캡슐화에 대해서 많은 부분에서 다루고 있다.

다 보고나면 뭔가 배운 것 같은 느낌을 주는 책이다. 그냥 추가된 API를 훑는 것이 아니라, 저자의 경험과 철학을 조금은 담은 느낌이다.

단, 모듈 프로그래밍의 다양하고 상세한 예제를 보고 싶거나, Java9 의 새로운 기능을 전반적으로 알고 싶은 사람에게는 조금은 지루 할 수도 있다.

Share