본문 바로가기
[Review]/Book

[도서 리뷰] Real-World Software Development(실전 자바 소프트웨어 개발)

by 해피빈이 2020. 8. 23.

> 진행에 앞서

자바는 내가 개발이라는 것에 진지하게 접했던 15년 전 이전부터 지금까지 꾸준히 사랑받아온 언어임에는 틀림이 없다. 리뷰를 하는 현 시점에도 서버 프로그래밍에서는 자바를 빼놓고 말하기는 어렵다. 프로그래밍의 패러다임이 발전해온 만큼 자바도 발맞추어 발전했으며, 그래서 자바를 이용해서 프로그래밍의 다양한 기법이나 원리에 대해서 익히는것이 가능하다는 이야기가 되기도 한다.

 

이러한 이야기를 장황하게 펼치면서 시작하는 것은 그만큼 자바라는 소재를 가지고 책을 접하긴 하지만, 이 책에서 다루고 있는 점이 결코 자바에만 국한되어 언급될만한 이야기는 아닐 수 있다는 것이다. 실재적인 관점으로 이해하기 쉽게 다룰 수 있지만, 이를 일반적인 관점으로 이끌어내어도 어울리는 부분으로 충분히 끌어낼 수 있다. 그러한 기대감으로 이 책을 보기 시작하였다.

 

> 책에 대한 간단한 정보

영문으로는 Real-World Software Development. 실전 자바 소프트웨어 개발이라는 책이다. 그리고 부제로는 4가지 프로젝트로 배우는 최신 자바 개발 기법으로 되어있다.

이 책에서는 소프트웨어 디자인과 아키텍처 중심으로 내용을 실어놓았으며, 그것들에 대한 원칙을 주로 언급하고 있다. 실제 프로젝트를 대상으로 하였으나, 단순히 어떤 프로젝트는 어떻게 진행할 수 있다는 따라하기에서 그치는 것이 아닌, 각 프로젝트를 통해 배울 수 있는 개발 원칙을 알리는데 주 목적이 있다는 것이다.

입출금 내역 분석기 및 확장, 문서 관리 시스템, 비즈니스 규칙 엔진, 트우터 및 확장. 이 네가지 프로젝트이다. 실제 주변에서 있을법한 프로젝트를 중심으로 진행하며 설명했기 때문에 편안하게 와 닿는데 노력했다는 점이 보였다.

이 책의 표지
이처럼 각 원칙을 언급한다. 원칙이 코드내에 반영되는 방식을 이해시킨다.
현재 안드로이드에서 개발방법론으로 빠지지 않고 등장하는 DI도 나온다.
엄청난 개념을 다루고 있음을 어필하는 뒷표지

 

 

> 괜찮은 부분

1. 다양한 설계 및 개발 원칙과 실제 코드의 접목

 

설계 및 개발 원칙은 이미 대학때 많이 배웠던 개발자가 많을 것이다. 하지만, 이 개발 원칙들을 가지고 실제 개발현장에 왔을 때 어떻게 쓰이는 것인지 제대로 이해하고 반영하는 개발자는 그리 많지 않을 것이다. 가령 SOLID라는 원칙이 있다고 할 때, 면접을 잘 보기 위해서는 SOLID를 외웠겠지만, 막상 필드에서는 이것을 잘 적용하기 위해 노력해도 쉽지 않고, 그것을 적용하려고 노력하는 사람 또한 찾기 쉽지 않다. 좋은 프로그래밍을 위해서는 필요한 지식임에는 틀림없기 때문에 이에 관해 최대한 녹아들게 이해시키려 했던 부분이 좋았다.

 

2. 개발의 기본부터 모던언어에 이르기까지 소재의 다양화

 

자바에서 쉽게 볼 수 있는 equals와 hashCode와 같은 부분은 많이 접하지만, 그 원리에 대해서는 가볍게 넘기며 개발을 진행하는 개발자들이 많을 것이다. 또한 람다와 스트림 등과 같은 함수형 프로그래밍에 도입되어 있는 방법들에 대해서도 잘 알지 못하면 실제 개발에서 활용하기 어렵다. 그래서 설계기법에 못지 않게 개발기법도 중요한 부분이 많은데 이러한 부분들을 다룸으로써 생각할 수 있는 기회를 제공하였다.

 

3. 실제 코드 위주의 설명으로 이해를 도모함

 

개발 서적이므로 코드가 포함되어있는 것은 어쩌면 당연할 것이다. 하지만, 코드 스니펫만으로 이루어진 것이 아닌, 프로젝트 단위로 코드를 실어놓았기 때문에, 이해를 돕는데 매우 중요한 역할을 담당하고 있다. 완전한 코드를 책에 다 실어놓지는 않았지만, github을 통하여 모든 코드를 제공받을 수 있으므로, 눈으로 확인하며 이해하는 데에는 문제가 없다. 실제 회사에서 개발할 때 볼법한 상황들이 많이 연출되어 있기 때문에 충분히 제공된 코드를 익히면서 이해를 한다면 많은 도움이 될 것으로 보인다.

 

> 아쉬운 부분

1. 많은 내용을 담기엔 부족한 분량

 

앞서 언급하였지만, 이 책에서는 정말 다양한 설계 및 개발 기법에 대하여 다루고 있다. 그런데 전체적인 지면이 적은 편이다. 그래서 각 개념에 대해서 정도의 차이는 있지만, 상세하게 다루고 있지는 않다. 정확히 말하자면 키워드의 나열에 가까운 느낌이다. 그래서 이러한 개념들을 어디선가 한번 쯤 접했다면, 그래도 다시 찾아보면서 알 수도 있겠지만, 처음 접한 단어들이라면 아마 책을 읽는데 상당한 시간이 소요될 것이라고 생각이 든다. 어쩌면 읽다가 포기할 수도 있다.

 

2. 각 개념 및 핵심정리가 보기 쉽지 않은 편

 

여기에서는 많은 개념을 다루고 있는데, 각 개념을 각 본문 중간중간에 심어놓았다. 그런데 그 개념을 각 단원별로 모아서 정리해놓고 있는 것은 아니다. 따라서 각 내용을 자세히 읽고 알아서 필요한 내용을 찾아서 정리하면서 읽어야 한다. 하지만, 시간이 부족하다면, 핵심을 읽고싶은 경우도 많지만 그런 때에 찾아서 읽기는 어려운 편이다. 이 책을 제대로 접하기 위해서는 시간을 적잖게 투자할 생각으로 대하는 편이 좋다.

 

> 개인적인 평점

- 가격: 8 / 10

- 내용: 9 / 10

- 디자인: 7 / 10

- 구성: 6 / 10

 

> 정보

저자: 라울-게이브리얼 우리마, 리처드 워버턴

옮긴이: 우정은

출판사: 한빛미디어

가격: 18,000원

전체 페이지: 216페이지

 

** 이 리뷰는 "한빛미디어"를 통해 도서를 제공받아 작성하였습니다.

반응형

댓글