08 도약

Breakthrough

  도약 ≒ 심층 모델 찾기

리팩터링의 효과는 선형적으로 증가하지 않는다. (계단식)
리팩터링은 레거시 시스템이 퇴보하는 것을 막는 최전선에 놓여 있다.
(저자가 말하는) 이런 부류의 도약은 기법이 아니다. 그것은 사건이다. 중요한 문제는 무슨 일이 일어나고 있는지 인식하고 이를 어떻게 처리할지 결정하는 것이다.
이런 도약을 하려면 도메인을 완전히 이해한 상태에서 Ubiquitous Language를 사용하고, 모델을 개선하는 과정에 나타난다.

리팩터링의 근본적인 취지는
항상 모든 것이 정상적으로 작동하는 상태를 유지하면서
작은 단계를 밟아가며 코드를 개선해야 한다는 점이다.

도약에 관한 일화

기회

심층 모델로 도약할 수 있는 기회가 찾아올 때 우리는 종종 두려움을 느낀다.
그러한 변화는 대부분의 리팩터링에 수반되는 것보다 더 큰 기회와 더 큰 위험을 수반한다. 그리고 시점이 적절하지 못할 수도 있다.

달라지기를 염원하는 만큼 진행 과정이 순탄한 것은 아니다.
진정으로 심층적인 모델로 나아가려면 근본적인 사고방시의 전환이 필요하며 설계의 대부분을 수정해야 한다.
많은 프로젝트에서는 모델과 설게에서 나타나는 가장 중요한 발전은 이러한 도약을 거쳐 이뤄진다.

pp213

기본에 집중하라

도약을 위해 프로젝트 진행을 정지한 채 마비상태에 빠져서는 안 된다.
일반적으로 수많은 적정 규모의 리팩터링을 수행하고 나서야 도약이 나타나기 때문이다.

도약이 등장할 수 있는 무대를 마련하려면 지식탐구와 함께 인내심을 가지고 Ubiquitous Langugage를 만드는 일에 집중해야 한다.
중요한 도메인 개념을 조사하고 그러한 개념을 모델내에 명시적으로 표현한다. (9장)
유연해지도록 설계를 정제한다. (10장)
모델의 정수를 추출한다. (15장)

후기 : 연이은 새로운 통찰력의 출현

심층 모델로의 진정한 도약을 거치고 나면
새로운 설계의 명확성과 단순함이
새로운 Ubiquitous Langugage를 기반으로 한 개선된 의사소통과 결합되어
또 다른 모델링 도약으로 이어지는 사례가 자주 발생한다.

domain-driven_design/part_3_refactoring_toward_deeper_insight/08_breakthrough.txt · Last modified: 2024/02/17 15:53 by ledyx