Book2009. 3. 14. 09:49

리팩토링 데이터베이스: 진화적 데이터베이스 디자인
Scott W. Ambler/정원혁 | 위키북스 | 번역서 | 2007-06-29
종합평점 
도서수준 
2007년 기술 생산성부문에서 졸트상을 받은 책으로 올해 초 원서와 여름에 번역서 2번을 읽었는데 감상이 다릅니다.
 
처음 읽었을때는 아주 황당했던 책으로 이봐~ 이런걸 누가 몰라. 초보적인 SQL이구만
(지금 생각해보니 파울러의 리팩토링을 처음 읽었을때도 같은 생각을 했습니다. )
몇장씩 챕터별로 나누어져 있었기 때문에 매우 빠르게 읽을수 있어 금방 읽고 치워버렸습니다. 
그런데 얼마전에 기존에 전혀 접해보지 않은 분야의 모델링을 하게 되었을 때
초기에 좋은 모델링을 하기가 얼마나 어려운가를 생각하게 되었습니다.
 
흔한 현실의 변명처럼 기초자료는 충분하지 못하고 참조가능한 예제도 없고
게다가 모델러 스스로가 익숙하지 못한 도메인에서 일할때 
기존의 지식과 규칙들은 그리 크게 도움이 되지 못하며
전혀 모르는 도메인 외계어와 의미를 알수없는 약어, 데이타들이 수백개의 표들로 이루어진 정보로 변해야 할때,
충분할만큼 완전하며 미리 예측가능한 ERD를 만드는건 매우 어려운 상황에서 무심코 다시 이 책을 읽게 되었을때
이책의 논리는 아주 합리적이며 이성적으로 보였습니다.
 
이전에 변수 이름 바꾸기 같은 리팩토링의 방법을 몰라서 안한게 아닌것처럼
진화적 데이타베이스의 SQL을 몰라서 안한게 아니었지만 책을 읽고 조금 더 많은 생각을 하게되었습니다.
 
 
하지만 리팩토링을 강력히 주장하는 XP의 약점중의 하나로 자주 지목되는
수행하는 사람의 질적인 문제로 다시 돌아가지 않을 수 없습니다. 
유명한 미국의 물리학자인 파인만은 어떤 교육방법이 기존 방법보다 더 낫다는 걸 증명하려면
실험이 새로운 교육방법을 주장하는 교사가 아닌 기존의 평범한 교사가 수행하여 비교해야 한다고 말한곤 했습니다.
 
왜냐하면 이미 잘 알고 있고 새로운 방법을 충분히 이해하며 기존 방법의 장단점을 분석하여 이해하는 교사는
어떤 방법을 쓰느냐와는 상관없이 기존방법에 비해서 비교실험에서 우위를 나타내는게 당연하므로
기존의 평범하고 대다수를 차지하는 평범한 교사가 잘 이해하지 못하는 새로운 방법으로 시도했을때 비교우위가 나타나야지
그 교육방법이 더 좋은 방법으로 말할 수 있기 때문입니다.
 이 경우 사실은 교사라는 사람의 변수에 의해 나타난 효과가,
x방법이라는 변수가 효과에 영향을 미친걸로 오해되기 쉽습니다.
 
이 책을 읽고 "DB모델도 유연하게 변경할수 있다"라고 생각하는게 아니라
"위 책에서 보듯이 DB모델은 언제든 수정가능하기 때문에 괜찮을 거다"라는 변명거리로 사용된다면,
대다수의 소규모의 팀으로 제작되는 소프트웨어에서
해당 프로젝트의 재앙에 이 책은 아마 기름을 뿌리는 효과가 될지도 모릅니다. 
 
다소 허망하지만
좋은 프로그래가 어떤 기법을 쓰느냐와 상관없이 좋은 프로그램을 만드는 것과 같이
좋은 모델러는 어떤 기법을 쓰느냐와 상관없이 좋은 모델을 만듭니다.
 
이 책이 좋은 모델러를 만드는데 기여할수는 있겠지만
책의 방법을 따른다고 "해당 프로젝트의 기간"내에서 좋은 모델이 만들어지지는 않을 것 같습니다.
 
마틴파울러의 리팩토링책이 그러했던 것처럼
단지 우리는 실수를 통해 더 빠른 피드백을 얻고 더 많은 생각을 하게 됨으로써
조금씩이나마 조금 더 나은 모델러로 성장하여 "다음 프로젝트에서는" 조금 더 나은 모델을 만들수 있을것입니다.

'Book' 카테고리의 다른 글

Ajax Design Patterns  (0) 2009.02.10
소프트웨어 컨플릭트 2.0 : 시대를 뛰어넘는 즐거운 논쟁  (0) 2009.02.10
프로그래밍 심리학  (0) 2009.02.10
추천 도서  (0) 2009.01.16
Javascript: The Definitive Guide  (0) 2009.01.11
Posted by bleujin