토비의 스프링 Vol.1 / Vol.2

1

토비의 스프링 Vol.1 / Vol.2에 대한 나의 느낌은 ‘매우 훌륭하다’이다. 정말로 오랜만에 좋은 책을 만났다. ‘Effecitve Java’ 이후로 혹은 어릴적 슬램덩크 첫 장을 펼치고 마지막 권을 읽었을 때 느껴지던 그 시절의 느낌이 떠오를 정도로 짜릿하게 기분이 좋은 책이다.

무엇보다 토비 이일민님에게 감사의 말씀 올리고 싶다. 그리고 이런 좋은 책을 출판해준 에이콘에도 감사의 박수를 보낸다. 하지만 ‘분권’으로 출판한 것에 대해선 아쉽다. 왜냐하면 들고 다니기 너무 버겁기 때문이다. 그렇다고 책상에 좁은 나에게 책상에 펼쳐놓고 보기에도 많이 아쉽다. 자바스크립트의 코뿔소 책마냥 이러지도 저러지도 못해서 아쉽기만 하다.

순전히 이 책을 완독할 수 있었던 이유는 내용이 좋았기 때문이다. 정말로 저자인 이일민님에게 감사의 말씀 올린다. 이 건 다 ‘잘 쓰여진’ 책 덕분이다.

리뷰에 앞서, 결론부터 말하고 싶다. 스프링 문법이 필요하다면 ‘Vol.2’를 구매해야 한다. 스프링의 작동방법과 원리를 알고 싶다면 ‘Vol.1’을 구매해서 보자. 분권 되어있기 때문에 자신이 필요로 하는 부분부터 구매해서 보도록 노력하자.

그리고 ‘토비의 스프링’에 대한 나의 생각이 듣고 싶다면 좀 더 아래로 스크롤을 내려보자.

그리고 사족인데, 토비의 스프링을 읽는다면, 시중에 나온 스프링 서적은 쉽게 읽을 수 있다. 이제 당신이 해야 할 일은 스프링의 변경사항을 챙기는 것이다. 메이븐에서 그래들로 변경되는 순간이 다가오고 있으니까…(Winter Is Coming!) 변화가 무섭도록 빠르다.

2.

본인은 자바 입문자에게 ‘패턴’에 대한 공부를 절대로 권하지 않는다. 심지어 ‘패턴’공부를 하지 말라고 권한다. 왜냐하면 자바의 기초 문법에 대한 이해도 없는데, 패턴을 공부해서 얻을 수 있는게 없기 때문이다.

무엇보다 패턴을 공부한다고 해서 프로그램을 더 잘 만들 수 있는건 아니다. 최동원 투수(1958년 5월 24일 ~ 2011년 9월 14일)의 투구폼을 10년간 지켜본다고 해서 최동원 선수 만큼 던질 수 있는 것은 아니다. 문제는 지켜보는게 아니라 공을 ‘던지는’ 것이다. 패턴 공부만 해서 ‘실력’이 늘지 않는다. 그냥 아는게 많아진다. 입코딩의 시작은 쓸데없는 패턴공부와 함께 시작하게 된다.

기본적으로 자바 문법에 대한 이해도부터 높이는게 중요하다. 자바는 설계의 언어다. 설계를 잘하기 위해선 자신이 쓸 수 있는 재료에 대한 수준높은 접근이 반드시 필요하다. 절대적으로 필요한 것은 재료에 대한 이해다.

쉽다, 쉽다, 쉽다고 말하는 자바 문법은 생각처럼 쉽지도 않을 뿐더러 쉽다면 정말로 자바 프로그램을 기가막히게 잘 만들 수 있어야 한다. ‘패턴’이나 ‘리펙토링’ 부터 공부하는 만행을 저질러서는 곤란하다. 모든 수학의 기초는 더하기 뺴기를 잘해야 한다. 그래야 곱하기를 잘 할 수 있고, 적분을 할 수 있다. 기본적인 산수가 안되면 미적분 따위는 불가능 한 일이다.

모든 패턴 공부의 시작은 작은 프로젝트를 진행하던가 아님 중규모 이상의 오픈 프로젝트 리딩을 겸해서 같이 하는것이 좋다. 그래야 한다. 패턴이름만 남발하는 이상한 개발자가 되지 않아야 하기 때문이다. 패턴 공부는 실전 코드와 같이 병행해서 읽어야 한다.

이런 점에서 ‘토비의 스프링 3.1’은 훌륭한 책이다. 이 책은 작은 프로그램을 만들면서 시작한다. 아무짝에 쓸모없는 예제를 만드는 것이 아니라 단순한 프로그램을 하나 만들고, 만들어진 프로그램에 패턴을 적용하거나 리펙토링을 수행한다. 그리고 빼먹지 않고 테스트를 진행한다.

대부분의 교재는 ‘토비 책’ 처럼 만들어야 한다. 테스트를 수행하는 챕터를 따로 두고 있을만큼 테스트에 대해서 엄격하게 진행한다. 테스트와 리팩토링까지 수행된 프로그램을 기준으로 스프링이 가진 다양한 기능을 적용하는 형태로 진행되다. 스프링은 기존의 코드를 도와주는 코드로 구성되어있다는 것을 느낄 수 있다. 느낌이전에 코드로 말하고 있기 때문에 의심의 여지가 없다.

전체 분량을 100으로 놓고 봤을 때, 기존 자바코드와 패턴을 수정하는 분량이 60이 넘고, 나머지 40은 스프링에 관련된 내용들을 설명하고 있다. Vol.1의 내용이 ‘스프링의 이해와 원리’이기 때문에 ‘원론’적인 내용들이 많이 나오지만 여타의 서적에 비해서 ‘매우 현실적(코드!)’이고 ‘직관적(그림)’이다.

일단 다른 책에 비해서 ‘코드’로 말하고 있다는 점에서 100점 만점에 1000점을 주고 싶은 정도로 눈물나게 고마운 책이다. 스프링을 배우지 않더라도 꼭 읽어볼 만한 책이고 읽기를 강요하고 싶을 정도다. 테스트 부분만 따로 놓고 읽어도 실력 향상에 많은 도움이 될 것으로 생각된다.

그러나 Vol.1의 단점은 ‘스프링’에 대한 내용이 ‘많지’ 않다. 왜냐하면 스프링에 관련된 문법은 Vol.2에 있기 때문이다. 당연히 Vol.2에 대한 단점은 스프링의 원리에 대한 소개가 부족하다는 점이다. 이런 점은 Vol.1에서 보완해주고 있다.

분책된 것에 대해서 아쉽게 생각한다. 들고 다닐 때 엄청 불편하다. 그것을 제외하곤 매우매우 좋은 책이다.

사고, 읽고, 코딩하라! 그리고 생각하자!

Written on November 5, 2013