한국의 마틴 파울러가 되기
동료가 스윔레인으로 구분한 업무 흐름도를 그렸습니다. 특정 표기법 형식을 따른 것이 아니라 일의 순서와 시간의 흐름이 좌에서 우로 가는 방향을 기준으로 자유롭게 내용을 표현한 그림입니다.
보통 이렇게 그리면 행위자 위주로 그리기 쉽습니다. 그래서, 객체라고 하는 인위적인 정의를 하기보다는 일을 풀어가는 맥락을 표현하는 형태가 되기 쉽습니다.
이제 일의 중심이 되는 개념을 정의합니다. 지난 글에서 제가 붉은색 바운더리(경계)를 지은 부분이 후보입니다.
이렇게 경계를 지어 소프트웨어 덩어리에 일을 할당하는 행위가 설계를 구성하는 주요 의사결정 중 하나입니다.
동료가 제가 붉은색으로 범주를 지은 해당 영역에 대해 다시 그린 내용은 다음과 같습니다. 의사결정 트리 같기도 하고, 아주 오래전에 쓰이던 플로우 다이어그램 형상 같기도 합니다.
제가 동료가 그린 그림에서 다시 경계를 추가합니다. 핵심 개념을 포착하는 일은 보통은 상당한 노하우를 요구합니다. 그래서 3년 정도 훈련한 동료에게 맡기는 대신에 제가 20년 동안 경험하며 쌓인 직관을 활용하여 객체의 경계를 조정해 나갑니다.
제가 동료의 상황에 맞춰서 안내한 방법과 앞으로 전개할 방식을 글로 써 봅니다. 제 머릿속에 있던 작전을 동료도 같이 보게 하는 것이죠.
<대상이 되는 사태의 주요 내용을 한 장에 담다>편에서 설명했던 On the Same Page 기법을 반복하는 것으로도 볼 수 있습니다.
2. 대상과 조건 그리고 자기 속도에 부합하는 조건 만들기
4. 기술 부채를 Code Smell로 관리할 수 있는가?
6. 설계 요소의 사분면
7. 입자와 파동의 이중성을 소프트웨어 설계에 응용하기
8. 즉흥적으로 그린 그림에 입자와 파동 이중성 적용하기
13. 설계는 변화에 대한 준비인가?