이지스퍼블리싱에서 책을 제공받아 자유롭게 작성된 서평입니다.
- 저자 : 박은종
- 출간 : 이지스퍼블리싱, 2024
프로그래밍 언어는 많은것들을 가능하게 한다. 몇 가지 문법과 메소드와 컴파일과 인터프리터가 갖추어지면 그 법칙 속에서 짜여진 코드라는 글자를 통해 비서, 도구, 나만의 세상, 나아가 직업으로도 활동할 수 있는 수단으로 매우 매력적인 언어다. 세상에 수 많은 언어가 있고, 역사가 있으며, 유행도 있으며 오늘날에도 새로운 언어가 자리를 잡아가고 있다. 그 중에서도 Java는 95년 등장 이래 많은 철학과 세상의 변화를 받아들이고 여러 프로그래밍 언어들 속에서 살아남았다. 근래에는 훌륭한 웹 백엔드 언어로써, 혹은 훌륭한 객체지향 언어로써 적어도 한국에서는 손에 꼽는 프로그래밍 언어라고 해도 과언이 아니다.
개발자 직군의 대유행에 힘입어 프로그래밍 언어를 다루는 책은 수도 없이 많고, 손에 꼽는 언어인 Java 서적은 가히 한국에서 프로그래밍 언어 관련 서적 중 가장 많은 수의 책이 서점에 비치되어 있을것이라 말할 수 있다. 나 역시 개발자를 직업 삼기로 결정하고, 나아가 주 언어를 Java 를 하기로 마음먹고 수많은 Java 입문 서적들을 누비고 찾아다녔으나, 하나같이 사전식 나열의 1200p 짜리 책이거나 너무 깊은 내용을 다루는 책들밖에 없었다.
그러던 나에게 수 많은 입문서들 중에 이것이 내 눈에 들어왔고 택하게 되었다. 이 책의 초판을 만난지도 어느덧 5년이 지났다. 내가 ‘자바쟁이’ 가 되도록 첫 걸음을 사뿐하게 내딛게 해준 책이 바로 오늘의 ‘Do it! 자바 프로그래밍 입문’ 이다. 최근 개정판이 출간됐다는 반가운 소식을 접해, 이 글을 읽고 있는 여러분들에게 좋은 입문서를 소개하고자 한다.
Java 입문 서적으로 추천하는 이유는 두가지가 있다. 하나는 사전식이 아니라는 점이고 나머지 하나는 꼭 알아야할 내용들을 빠짐없이 꼭지에 달아 설명하고 있다는 점이다. 첫번째 사전식 책이란 언어의 스팩이나 내장 메소드들을 빼곡하게 적어놓고 하나씩 나열해가며 설명하는 책이다. 이런 책이 무조건 좋지 않다는 것은 아니고 주력 언어로써 익숙해 졌더라도 필요한 순간이 있긴 한데, 처음 배우는 입장에서는 지식을 연결하며 배워 가기엔 그다지 좋은 형식은 아닌것 같다는 생각을 늘 해왔다. 이 책은 언어 스팩과 관련된 내용들을 문장으로 풀어나가면서 그에 따라 파생되는 패턴이나 지식들도 같이 소개 한다. 가령 this
를 이야기 할 때 빌더 패턴을 같이 소개한다던가, Class
클래스를 설명 할때 리플랙션을 깊게는 아니지만 소개한다는 하는식으로 Java 개발자로써 학습해야나가야 하는 방향에 대해 좋은 길잡이을 해주고 있다. 두번째 꼭지에 대해서는 이 책만이 할 수 있는 최고의 컨텐츠가 아닐까 싶은데 ‘의존성 주입’, ‘Vector와 스레드’, ‘Functional Programming’ 과 같이 입문과정 이후에 무엇을 찾아가야 하는지 알려준다. 또한 적절한 챕터에서 IDE 를 다루는 꿀팁들도 꼭지에서 다루고 있는점은 이 책의 큰 장점이라 할 수 있다.
이전과 크게 달라진점은 실습을 하는 개발 도구가 변경됐다. 초판에서는 eclipse 를 사용하였는데, 이번 개정판에서는 2~3년 사이 많이 사용하는 IntelliJ 를 사용하여 학습을 시작한다. 사실 책을 보면 알겠지만 무엇으로 시작하든 상관없이 진행하지만, 개인적으로 2025년에 출간된 책이 eclipse 로 무언가를 하면 아무리 좋은 내용이여도 덮게 되는데 이런점은 잘 바꾼것 같다는 생각이 들었다.
또 내용면에서도 크게 추가된 두 주제가 있는데 하나는 Optional 이고 다른 하나는 Java Thread 다. 이전 초판에는 없었던 내용였지만 이번엔 추가가 되어 반가웠다. 특히 두 내용 다 이제 Java 개발자라면 몰라서는 안되는 매우 중요한 내용이다. 이전 초판에서는 두 내용이 없어 관련 내용을 학습하기 위해 다른 서적을 참고해야만 했는데 두 내용이 추가되었다. 오랜시간 공들여 배워도 쉽지 않은 이 주제를 풀어나가는 형식 또한 앞서 설명한 책의 큰 장점인 술술 읽히는 문장으로 문턱을 낮춰주고 있다. 특히 Java Thread 의 경우 임계 영역, 동기화, Thread Safe, 스케줄링, 대기 같은 초심자가 접근하기에 많이 생소한 내용들이 나온다. 그러나 책에서는 코드와 더불어 실행 다이어그램까지 소개해 한눈에 이해할 수 있도록 쉽게 설명하는 점이 좋았다.
정말 반가웠던 책이 내용이 보강되어 완전체가 된 모습을 보니 반가웠다. Java 입문 서적을 추천 할 때 이 책을 추천하고 싶다가도 이번에 추가된 내용 중 하나인 Optional 이 없어서 아쉬워서 주저했던 적이 있었는데, 이제는 자신있게 추천할 수 있을것 같다.
이지스퍼블리싱에서 책을 제공받아 자유롭게 작성된 서평입니다.