지금 쓰고 있는 책의 제목을 애자일 스프링이라고 일단 생각하고 있다. 출판사로부터 최종 동의를 얻어야 하겠지만 이 이름이 마음에 든다.

사실 나는 그간 "애자일 프로그래밍을 위한 자바 어쩌고…" 하는 책들을 싫어했다. 애자일의 인기에 낑겨가려는 수작으로 보였다.

 

엉겹결에 스프링에 대한 책을 쓰기로 해놓고선 고민이 많이 됐다. 기존의 스프링 책 중에서 내 마음에 든 책은 단 한권도 없었기 때문이다. 누군가 스프링을 공부하겠다고 하면 적극 추천해 줄 책이 없었다. 다들 장단점이 있긴 했지만 마치 레퍼런스 북이거나 한두가지 스타일의 스프링 개발에 대한 튜토리얼과 같았다. 스프링을 오래 개발하면서 느낀 그 깊은 뭔가를 딱 느끼게 해줄 수 있는 책이 있었으면 좋겠다는 생각을 많이 했다.

 

그래서 그런 책을 쓰려고 했는데, 막상 쓰려고 보니 겁만 났다. 사실 뭔가를 좀 느끼고 알고 있는 것과 그것을 효과적으로 다시 전달하는 것은 정말 큰 차이가 있는 것을 알기 때문이다. 게다가 스프링은 책으로 쓰기엔 넘 방대하다. 방대한 내용을 다루는 책은 가볍기 쉽거나, 아니면 읽어도 무슨 내용인지 그 맥락을 파악하기 힘든 경우가 많다. 스프링은 그 자체로 그런 약점이 있다. 넘 욕심이 많은 프로젝트인지라 방대하기 때문이다.

 

그래도 그것을 관통하는 하나의 맥이 있을 것이고, 지향점이 있을 것이라고 생각했다. 그러던 중 애자일이라는 단어가 떠올랐다. 내가 스프링을 가르치고, 프로젝트를 진행하면서 가장 강조한 것이 무엇인지, 스프링을 통해서 배울 수 있는 것이 무엇인지를 설명하다보면 애자일이라는 단어와 그 이름으로 시작하는 방법론에서 말하는 것과 이상하리만큼 통하는 무엇이 보인다.

 

애자일이라는 이름의 기원에 관해서 마틴 파울러가 한 얘기를 보자면, 애자일은 "변화에 대한 적응과 대응"이라는 관점에서 애자일 운동의 가장 중요한 가치를 잘 담은 단어이기 때문에 선택했다고 한다. 애자일 방법론들이 가지는 공통의 시각을 잘 표현했다는 것이다.

스프링이 프레임워크이고, 프레임워크란 켄트 벡의 말대로 어떤 문제에 대한 생각의 방법이라고 한다면, 스프링이 풀고자 하는 문제, 즉 – 엔터프라이즈 개발의 복잡함에 대한 스프링의 시각은 바로 애자일이라는 단어를 통해서 느낄 수 있는 애자일 방법론의 시각과 유사하지 않을까 생각이 들었다.

단순함(simiplicity)과 테스트편의성(testability)은 스프링의 핵심철학을 가장 잘 표현하는 단어이다. 이것은 단순함을 필수불가결한 요소로 정의하고 있는 애자일선언의 원리 10항과 변화에 순응하고 기민하게 대응할 수 있어야 한다는 선언과 원칙을 위한 구체적인 실천방법의 대표격인 TDD류의 가치와 매우 잘 통한다고 볼 수 있다.

 

어쨌는 그래서 제목은 애자일 스프링으로 했고, 내용도 사실 이 두가지를 잘 살리는 스프링 개발이라는 부분에 집중하고 있다. 스프링을 제대로 잘 사용하자 이건데.. 음음.

 

어쩌면 애자일이라는 단어가 그냥 폼나서 쓴 것일지도 모르겠다. (  ")

© 2017 Toby's Epril Suffusion theme by Sayontan Sinha