Outsider's Dev Story

Stay Hungry. Stay Foolish. Don't Be Satisfied.
RetroTech 팟캐스트 44BITS 팟캐스트

[Book] 토비의 스프링 3

토비의 스프링 3

토비의 스프링 3 - 10점
이일민 지음
에이콘출판

드디어 다 봤습니다. 사실 드디어라고 하기에는 너무 오랫동안 봤습니다 .동시에 여러가지를 하기도 하고 봄싹에서 하는 스터디의 교재로 하다보니 스터디 진도에 맞추면서 보다보니 6개월동안이나 책을 봐버렸네요. 1400페이지나 되니 책이 좀 두껍기는 하죠. 원래 계획은 한번 먼져 보고 스터디 진도는 계속 따라가는 거였는데 그렇게 되지는 못했습니다.

어쨌든 책은 정말 최고입니다. 아니 최고라는 말로도 부족할 정도입니다. 그 이전에 스프링 책을 웹 개발자를 위한 스프링 2.5 프로그래밍프로 스프링 2.5를 보았었는데 스프링에 대해서 감이 잘 안왔었습니다. 물론 이부분은 제가 스프링을 업무에서 만지고 있지 않았던 데다가 그냥 책만 보았지 따로 코딩하면서 연습해볼 기회가 없었던 부분도 더 크기는 했지만 보통은 책을 보면 어느정도 감이 오는데 스프링을 공부할 때는 계속 XML설정 얘기만 있는것 처럼 느껴지고 책을 다 보았는데도 어떻게 개발해야되는지도 감도 잘 안오고 했습니다만 이 "토비의 스프링 3"는 달랐습니다. 스프링이 가진 철학상 다양한 선택권을 주다보니 공부하는 입장에서는 더 헷갈릴 수 밖에 없었던 것이었는데(물로 그 사이에 공부하면서 어느정도 깨닫기는 했지만) 이 책에서 아주 명확하게 알려주고 있습니다.




이 책에서 토비님이 알려주려고 하는 것은 제가 느끼기에는 2가지인것 같습니다. 스프링이 구현하고 있는 자바에 대한 것과 그 철학을 바탕으로한 스프링의 사용법입니다. 그 부분에 따라 1부와 2부로 나누어져 있습니다.

1부는 스프링이 구현하고 있는 기술들에 대한 설명들이지만 결국은 자바에 대한 얘기이고 스프링이 다양한 부분에서 자바기술에서 가장 괜찮은 구현을 해내고 있다는 면에서 봤을때 현재 자바라는 기술을 어떻게 사용하면 잘 사용할 수 있는지에 대해서 설명하고 있습니다.(물론 당연히 스프링에 대한 설명부분도 있습니다.)그래서 시작은 아주 간단하게 DAO 클래스부터 해서 OOP에 원칙에 근거해서 어떻게 분리하고 왜 인터페이스를 도입해야 하고 IoC나 DI를 어떤 원리로 구현하고 어떤 이점이 있는지 찬찬히 설명해 주고 있습니다. 아주 이해하기 쉽게 일일이 코드로 예를 들어주면서 AOP라는 기술이 어떤 원리로 적용되고 예외처리는 어떻게 해야하며 서비스 추상화는 어떻게 해야하는지 일일이 설명해 주고 있습니다. 개인적으로 스프링을 사용하지 않는 개발자라고 하더라도 자바개발자라면 최소한 이 책의 1부를 읽고 학습한다면 크게 도움이 될 것이라고 생각합니다.

2부는 실제 스프링을 어떻게 사양하는지에 대한 레퍼런스 격인 성격을 가지고 있습니다. 다른 책을 볼때는 XML설정에 대한 나열이라 지루한 면도 있었는데(물론 그사이에 스프링이 애노테이션을 더 강화시킨 부분도 있지만요) 1부에서 각 기술이 뒤에서 어떻게 돌아가고 왜 그렇게 하는지를 설명했기 때문인지 레퍼런스라고 하더라도 지루하지 않고 갈 설정이나 사용법을 설명하는 중간에도 경험에서 우러나온 셜명들이 함께 있기 때문에 비교적 이해하기 쉽다고 느껴집니다.(비교적입니다.. 한번 읽었다고 스프링을 이해할리는 없죠 ㅎ)





이 책에서 가장 좋은 점은 아주 친절하다는 것입니다. 저는 아는 거랑 가르치는 것은 약간 다르다고 생각하는 편이고 잘 아는 사람이 잘 모르는 사람을 위해서 설명해 준다는 것은 쉽지 않다고 생각하는데 리차드 파인만이 "쉽게 설명할 수 없다면 그에 대한 지식이 모자라다는 것"이라고 말한 것을 증명이라도 하듯이 토비님은 스프링의 구현기술들을 완전히 이해하고 있다는 것이 느껴질 정도로 쉽고 친절하게 가르쳐 주고 있습니다. 그래서 스프링에 대한 공부는 이 책 한권이면 되겠다고 느껴질 정도라서 이 책에서 말하는 것만 연습해서 제대로 자신의 것으로 만들기만 해도 실력이 크게 향상 될 것 같습니다. 사실 이런 수준의 노하우를 5만원 정도에 얻을 수 있다는 건 거의 공짜가 아닌가 싶습니다. 책을 3년정도 쓰신 것으로 알고 있는데 이정도의 책이 나오려면 그만큼에 노력이 드는거구나 하는 생각이 듭니다.(기술에 대한 얘기는 아니지만 토비님의 "토비의 스프링 3이 나오기까지"시리즈를 읽어보시는 것도 재미있습니다.)

또한 단순히 기술을 가르치는 것 이상으로 개발자의 방향을 제시하시고자 하는 부분도 상당히 맘에 들고 있습니다. 스프링의 기술들을 설명하면서 책에서 전체적으로 강조하고 있는 것 중 하나가 Test입니다. 새로운 것을 배우기 위해서 하는 Learning test부터 개발에서 테스트가 얼마나 중요한지... 그리고 단순히 스프링의 API만 사용하는 개발자가 아니라 스프링의 철학을 이해하고 구현코드도 스프링의 철학을 담아서 개발하는 것이 왜 중요한지를 책 내내 강조해서 이 책을 통해서 공부하는 개발자들이 그냥 스프링만을 배우는 것이 아닌 개발자로써 배워야 하는 부분까지 포함하려고 했다는 부분에서 책을 읽는 내내 많은 생각이 들었습니다.



그전까지는 스프링은 왠지 막막하게 느껴졌었는데 그래도 한번 보고 나니까 스프링이 추구하고자 하는 철학을 상당부분 이해할 수 있게 되어 앞으로 학습의 방향을 잡는데 많은 도움이 되었습니다. 기술 서적들을 보면서 한번더 보면 좋겠다하는 책들이 좀 있기는 한데 이 책은 그것 이상으로 느껴집니다. 개인적으로 올해 반드시 한번 이 상은 더 보면서 직접 코딩해보면서 제것으로 만들어야 겠습니다.
2011/04/13 04:30 2011/04/13 04:30