real_world_software_development-01

스프링을 사용하지 않고 자바로 어떻게 개발할 수 있나 궁금했었다. 실전 자바 소프트웨어 개발 책의 목록을 보게 되면 프레임워크를 따로 쓰지 않으면서 개발해나간다는 것을 알 수 있다.

책 자체의 길이는 솔직히 많은 내용을 담기에는 분량이 작은 것이 사실이다. 그러다보니 디자인 패턴에 대해 자세히 설명한다기 보다는 너네가 배운 디자인 패턴을 이렇게 적용할 수 있어 라는 식으로 설명하는 느낌이였다. 즉, 자바도 배웠고 디자인 패턴도 배웠는데 이건 어떻게 사용해야 하지? 하는 사람들에게 필요한 책이라는 생각이 들었다.

책 내용 자체도 어려운 편에 속하지는 않는다. 하지만 위에서 이야기했듯이 디자인 패턴을 아무것도 모른다면 생략되어 있는 내용들이 많아 읽는 도중에 막힐 수도 있을 것 같았다. 그래도 책 자체가 어렵지는 않아서 빠르게 한번 훝어보고 싶은 사람에게 어울릴 것 같다.

결론적으로 막 자바를 끝내서 이제 뭘 공부할까 고민하는 사람들 혹은 앞에서 이야기했지만 단순히 스프링부터 공부하면서 다른 원칙들을 잊은 채 스프링에서 제공된 함수만을 쓰면서 원리를 잊어버리고 사는 분들에게 추천하고 싶은 책이다. 하지만 이미 자바를 몇년 써왔거나 회사에서 테스트코드를 위주로 디자인 패턴을 적용하면서 사용하는 사람에게는 시간낭비일 수 있을 것 같으니 추천하지 않는다.

real_world_software_development-02

책에서 4가지 프로젝트로 배우지만 각 챕터의 구성은 비슷하다. 먼저 실제로 어떤 요구사항이 들어왔고 어떤 기능을 개발해야 할지 리스트를 정리한다. 그러면서 이 요구사항에서는 어떤 디자인 패턴을 적용해서 개발하는 것이 좋을지 설명하면서 하나하나 개발해 나간다. 그러다보니 처음에는 간단하게 하나의 클래스에서 KISS(Keep it small and simple) 원칙만을 지키면서 개발해나가지만 그 이후에는 DRY 원칙으로 시작해서 SOLID 원칙을 어떻게 지켜나가야 하는지에 대해 개발한다. 또한 뒷장으로 가게되면 TDD 개발 방법론을 이야기해주면서 함수형 프로그래밍에 대해서 간략하게 이야기햐고 끝이 난다.

이 책을 읽다보면 아 이런식으로 디자인 패턴들이 적용되고 있고 “스프링” 이란 프레임워크도 이런 원칙을 지키고 있겠구나 하는 생각이 들게 만들었었다. 다만 조금 아쉬웠던 점은 앞에서도 이야기했지만 생략되어서 이야기된거 같다는 생각이 많이 들었다는 점이였다.즉, 개인적으로는 다시 한번 개념을 공부한다는 생각으로 읽으니 재밌게, 빠르게 한번 읽어볼 수 있었지만 어떤 사람들에게는 조금 아쉬울수도 있지 않을가? 하는 생각이 들었다.

혹시 이 책을 구매하고자 하는 분이라면 “내가 디자인 패턴을 한번쯤 공부해 본 적이 있었는지” 생각해보고 그렇지 않다면 이 책을 읽으면서 디자인 패턴 용어가 나왔을 때 함께 볼 수 있는 개념서 정도 하나 함께 읽으면 좋을 것 같다고 생각한다.