들어가기 전
가장 어려운 일은 도메인 전문가의 섬세한 관심사를 포착하고 효과적인 설계를 이끌어줄 명확한 모델을 발견하는 것.
궁극적으로, 도메인에 대한 심층적인 이해를 반영한 모델이 필요함
→ 이로 도메인 전문가의 사고방식과 좀 더 자연스럽게 융합되고 사용자의 요구에 기민하게 대응할 수 있는 소프트웨어를 개발할 수 있음
이 장에서는
- 이와 관련된 목표를 명확하게 제시
- 목표를 달성할 수 있는 프로세스를 기술한 후
- 애플리케이션의 요구사항뿐 아니라 개발자 본인의 요구사항까지도 충족하는 설계를 만들기 위한 원리와 패턴을 설명함
유용한 모델을 성공적으로 개발하기 위해 명심해야 할 세 가지 관건
- 정교한 도메인 모델은 만들 수 있으며, 노력을 들일 만한 가치가 있음
- 해당 도메인을 학습하는 개발자와 도메인 전문가의 긴밀한 참여와 반복적인 리펙터링 과정 없이 유용한 모델을 개발하는 것은 쉽지 않음
- 유용한 모델을 효과적으로 구현하고 사용하려면 정교한 설계 기술이 필요할지도 모름
리팩터링 수준
리팩터링: 소프트웨어의 기능을 수정하지 않고 설계를 다시 하는 것
- 사전에 모든 설계 결정을 내리기보다는 기존의 기능은 유지한 채 끊임없이 코드를 변경하면서 설계를 좀 더 유연하게 개선하거나 이애하기 쉽게 만듬