IT EXPERT, J2EE 웹 애플리케이션 설계와 구현: 레거시 시스템을 웹으로
개발자라면 웹 시스템을 구축하는 데 있어서 분석, 설계, 개발을 따로 하고 OOP 언어의 장점을 제대로 활용하지 못해 원래 목표했던 시스템과는 다른 엉뚱한 결과가 나왔던 경험이 한번 쯤은 있었을 것이다. 이 책에서는 저자의 성공적인 웹 기반 업무 시스템 구축과 강의 경험을 바탕으로 단편적인 지식 전달이 아닌 실제 프로젝트 수행에 필요한 모든 절차와 기술을 조화롭게 적용하는 방법을 프로젝트 진행 순서에 맞춰 현장감 있게 전달한다.
거의 모든 개발자들이 한 번씩은 “MVC 모델”이라는 말을 들어보았을 것이다. 각 단어가 무엇을 의미하는지는 모른다 하더라도 이 모델이 주장하고 있는 바는 Model, View, Control를 분리하라는 것이다. 그리고 원서에서 대형 프로젝트를 가정하는 경우, 각 파트를 담당하는 사람들은 서로 다른 사람이라는 것을 무의식적으로 전제하고 있다. 그리고 프로젝트의 각 단계를 수행하는 사람들도 다르다는 것을 가정하고 있다. 그러나 나는 수행했던 프로젝트 중에 절반 이상에서 분석, 설계, 개발, 구현을 모두 담당했다. 경험에 비추어 볼 때 대부분의 프로젝트에서는 업무를 나눌지언정 Model, View, Control은 한 사람이 담당한다. 이런 상황에서는 이 책이 매우 유용하다. 전 개발과정에 대한 상세한 설명을 제공하고 있기 때문이다. 또한 프리젠테이션부터 데이터베이스까지의 내용도 유기적으로 포함하고 있다. 내가 필자에 대해 감탄하는 또 다른 이유는 기술적인 설명 뿐 아니라 업무적인 설명이 자세하다는 것이다. 적어도 나에겐 얼마나 지루하고 하기 싫은 작업인지 모른다.
목차에서도 알 수 있듯이 이 책은 세부적인 내용까지 담고 있다. 기능별(조회, 입력, 수정/삭제) 모델링 뿐 아니라 업무별 모델링도 제공하고 있다. 실제 프로젝트에서 그대로 사용할 수 없다 하더라도 사용자 권한, 코드 관리, 데이터 유효성 체크, 엑셀 연동, 배치 작업 같이 피할 수 없는 업무에 대한 부분도 자세하게 다루고 있다. 책 전체를 읽지 않더라도 이러한 문제에 대해 고민하고 있는 사람들은 그 부분만 따로 참고해도 될 것이다.
책에서는 프로젝트 수행시 유념해야할 몇 가지 지침을 제공하고 있다. “위험요소를 프로젝트 초기에 파악하라, 파일럿 프로젝트를 먼저 시행하라, 알맞은 방법론을 선택하라.” 이러한 내용은 주로 프로젝트 매니저를 대상으로 한 말일 것이다. 이 책의 주요 독자가 개발자임에도 불구하고 프로젝트 수행시 그들을 위한 조언은 별로 없다. 책 전체가 조언이라면 할 말 없지만. 나의 신조는 “믿지 마라”이다. “아무도 믿지 말고, 이 책을 포함해서 아무리 유명한 책이라 하더라도 믿지 말고, 자신이 개발한 소스도 믿지 마라.” 그래서 나는 모든 책에 대해서 비판적인지도 모른다. 이 책도 여전히 나의 비판을 피할 수 없다. 그건 내가 책을 써도 마찬가지일 것이다. 그러나 여기서는 나의 비판을 다른 독자들의 판단에 맡겨두련다. 그래도 내가 나쁜 책을 좋은 책으로 속였다고 하지는 못할 것이다.