크로노스에 근무하고 있는 소프트웨어 엔지니어다. 자바 전문가이며, 루비와 Scala에도 관심이 있다. 이 책을 내놓기 전에 '스프링에 의한 웹 애플리케이션 슈퍼 샘플'과 'Seasar2에 의한 웹 애플리케이션 슈퍼 샘플'을 집필했다. 현재 블로그(http://d.hatena.ne.jp/jyukutyo)를 운영하고 있다.
009년 4월 어느 날, 저는 도쿄 시나가와에 있는 한 이자카야(다양한 안주를 비교적 값싸게 골라 먹을 수 있는 일본식 대중 술집)에 있었습니다. 평소 그곳 광경과 크게 다른 느낌을 받은 것은 스프링 프레임워크를 창시한 로드 존슨 씨가 바로 옆 테이블에 있었기 때문입니다. 이전에 쓴 '스프링에 의한 웹 애플리케이션 슈퍼 샘플'을 내놓은 지 벌써 4년이 지났습니다. 그 사이 스프링은 자바 개발 환경에서 필수 기술이 되었습니다. DI(Dependency Injection) 컨테이너는 한물가기는커녕 자바 개발 환경에서 필수 기술로 부상했습니다. DI는 이해하기 어려운 개념이고 DI 컨테이너는 시스템 베이스로 사용되는 기술입니다. 개발 현장에서 DI 컨테이너를 사용하고 있어도 그것을 의식하지 않기 때문에 왜 쓰는지, 어떤 장점이 있는지 느끼기 어렵습니다. 웹에서 DI를 검색하면 나오는 문장을 읽어봐도 이해하기 어렵다는 내용들이 많습니다. DI를 이해하는 방법은 DI를 이용한 프로그램을 만들고 직접 돌려보는 것입니다. 이것밖에는 방법이 없습니다. 이렇게 하면서 지금까지의 프로그램과 어떤 차이가 있는지 비교하면 보다 깊이 이해할 수 있습니다. 그러나 모르는 기술로 프로그램을 만들고, 지금까지 해왔던 작업들과 비교해 보는 것은 시간이 오래 걸리는 일입니다. 안 그래도 바쁜 엔지니어들에게 그렇게 하라고 하는 것은 무리한 요구라고 생각합니다. 이 책은 이런 엔지니어들에게 도움이 될 것이라고 자부하고 있습니다. 책은 샘플 애플리케이션을 만들고 실제로 돌려 보면서 DI에 대해 설명합니다. 웹사이트에 샘플 애플리케이션과 필요한 라이브러리는 모두 들어 있습니다. 이 책 한 권과 PC만 있으면 바로 DI와 스프링 공부를 시작할 수 있습니다. 스프링은 DI 컨테이너 기능 외에 다양한 활용 분야를 갖습니다. 관점 지향 프로그래밍(AOP), 웹 프레임워크, 데이터베이스 액세스, 시큐리티 프레임워크, 배치 프레임워크를 포함합니다. 하나하나가 정확하게 무엇인지 파악하는 것만도 만만치 않습니다.
이 책은 스프링 프로덕트 중 몇 개를 골라 샘플 애플리케이션을 만드는 것을 보여줍니다. 편리한 기능 사용 방법만 주목하지 않고 기본 기능을 하나씩 다뤄보면서 해당 프로덕트에 대한 개념을 천천히 설명하는 것을 목표로 하고 있습니다. 책을 다 보고 나면 DI의 장점뿐 아니라 실제 프로젝트에서 스프링 프로덕트 중 어떤 것을 사용해야 하는가에 대한 판단도 내릴 수 있을 것입니다. 전작을 집필한 것이 계기가 되어, 필자는 스프링을 창시한 로드 존슨 씨와 직접 이야기하는 기회를 가질 수 있었습니다(그것도 이자카야에서!). 선배 엔지니어의 호의로 존슨 씨 옆에 앉을 수 있었고, 서툰 영어지만 열심히 이야기 했습니다. 존슨 씨가 쓴 '실전 J2EE 시스템 디자인' (2003년 7월, 소프트뱅크 크리에이티브)에 강한 충격을 받아, 문자 그대로 시스템 디자인을 배우기 시작한 필자가 이렇게 존슨 씨와 이야기하는 대사건이 생기는 소프트웨어 엔지니어라는 직업은 얼마나 멋진 직업인지!
이 책을 집필하면서, 필자가 쓰는 책을 계속 담당했던 소프트뱅크 크리에이티브의 미츠다 하루오씨에 감사드립니다. 전작을 함께 집필한, 필자가 몸담고 있는 크로노스의 무라야마 마사히코씨, 오쿠 키요타카씨에게도 감사드립니다. 전작이 없었다면 이 책도 나오지 못했을 것입니다. 집필에 크케 협조해 준 아내에게도 항상 고맙다는 말을 전하고 싶습니다. 정말이지 가족들이 도와주지 않는다면 책을 쓰는 것은 불가능하다는 것을 다시 한번 느꼈습니다. 지금부터는 감사하는 마음을 행동으로 바꿔가겠습니다.