스프링 기술의 외국 서적의 번역본이 아닌 우리나라 저자로서 쓰인 스프링 책의 표본이라 할 수 있는 토비의 스프링3.1
알라딘 중고서점에서 산 이후로 그 책의 두께와 압도적인 옛날스러움?에 경악스러웠다. 목차만 봐도 이게 이렇게 길게 얘기할 거리인가? 했던 생각이 난다. DI와 IoC 얘기하는 게 이렇게 길게 할애한다는 게 그당시엔 이해가 되지 않았다.
옛날 JDBC 이야기도 눈살을 찌푸렸다. JDBC탬플릿도 잘 안쓰다 보니 옛날 서블릿 쓰던 시절 DB Contection을 건드릴 때 Dao라는 DB접근 클래스에 이렇게 추상화 기술을 쓰면 이래서 좋다! 이래서 개발자가 편하다! 하는 얘기가 그 때 당시에는 공감이 잘 안가서 그랬을 거다.
그당시엔 내 상황이 어땠냐면, 바로바로 기술을 접목시켜야 했던 프로젝트 진행시기인지라 책을 고를 때도 바로 접목시켜서 적용할 코드가 있는지 없는지가 중요했다.
사실 지금에서야 보면 이 책이 썩 좋아 보이지 않았다.
하지만 시간이 지나서 스프링의 기초가 서지 않는 다는 느낌이 계속 받으면서 내심 한번은 저 책의 근본적인 기술의 깊이를 머리로 채워야겠다고 다짐?을 한적이 있었다. 언젠간 읽어야 겠다는 각오는 시간이 좀체 나지 않았다.
이제야 취준생 신분으로 다시 돌아오고 이 책을 한번 정복할 시간이 없다는 핑계는 없어졌다.
일단 시작은 중간중간 써봤던 부분부터 스키밍을 하면서 보게 되었다.
DI(의존관계 주입)
,
오브젝트 팩토리
,
Autowired
,
Transaction
,
JUnit
...
같은 것들에서 글들을 계속 읽어봤다. 알던 부분들이니까 말이다.
이외로 생각보다 너무 좋았다. 확실히 그 인상이 안좋았던 당시에는 옛날 기술만 보는 것과 동시에 오래된 래거시한 code들만 보여서 싫증을 느꼈는데 기술의 깊이를 이해하고자 하는 갈증에 있던 나에게 insight를 많이 준 것 같다.
스프링이 그옛날 Java EE의 지금에서는 당연한 추상화 기술들을 쓰지 않고 한땀한땀 구현체랑 같이 설정하는 것에서 로드 존슨이 이 아니다 싶어서 만든 프레임워크 라는 것부터 시작하는 history의 입담이 참 재밌게 느껴졌다.
개념적으로 갑자기 연결되는 부분들이 많았다. 실제 개발을 할 때 내가 이게 제대로 설정하고 한건가? 하는 의문점이 많이 들때가 많았다. 그 의문점들 target 삼아서 이 책을 본다면 생각보다 몰랐던 점들이 많이 보일 것이다. 이 책은 그런 책이다.
그리고 책 전반에 걸쳐 저자가 스프링에 대한 애정이 남달라 보인 게 보였다.
정리하면, 스프링은 이런 목적으로 만들어진 것이다라고 말한다.
객체지향설계(OOP)
리팩토링
테스트주도개발(TDD)
그전에 읽었던 로버트 C.마틴의 <클린코드>, <클린 아키텍쳐>의 얘기들이 많이 녹아져 있는 게 보였다. 이게 스프링이라는 프레임워크가 목적하는 바와 너무나 닮아 있다는 게 신기했다.
늘 느끼지만 소프트웨어의 좋은 책들은 테스트에 대한 중요성을 빠트리지 않고 있다.
지금 개인 프로젝트를 준비하면서 테스트가 정말 안돌아간다. 이럴 때 이 책을 읽고 다시 Testcode에 심열을 더 기울이자는 다짐을 다시 한번 해본다.
이 책을 추천하는 사람
스프링 프레임워크를 얇게 배워 기술의 깊이에 목마른 사람
이 책을 추천하지 않는 사람
일단 스프링을 처음 접하는 사람
이 사람들한테는 개인적으로 추천하는 책은 <스프링 입문을 위한 자바 객체 지향의 원리와 이해> 책을 더 추천한다.
책 : <토비의 스프링 3.1 vol1>
이일민