3부. 더 심층적인 통찰력을 향한 리팩터링 (8장 도약)

16
3부. 더 심층적인 통찰력을 향한 리팩터링 8장. 도약

Transcript of 3부. 더 심층적인 통찰력을 향한 리팩터링 (8장 도약)

Page 1: 3부. 더 심층적인 통찰력을 향한 리팩터링 (8장 도약)

3부. 더 심층적인 통찰력을

향한 리팩터링

8장. 도약

Page 2: 3부. 더 심층적인 통찰력을 향한 리팩터링 (8장 도약)

3부 목표

● 도메인에 대한 심층적인 이해를 반영한 모델

● 도메인 전문가의 사고방식과 좀더 자연스럽게 융합되고 사용자의 요구에 기민하게 대응 할 수 있는 소프트웨어를 개발.

Page 3: 3부. 더 심층적인 통찰력을 향한 리팩터링 (8장 도약)

모델을 성공적으로 개발하기 위한 조건

1. 정교한 도메인 모델은 만들 수 있으며 노력을 들일만한 가치가 있다.

2. 개발자와 도메인 전문가의 긴민할 협조 및 반복적인 리팩터링 과정없이 유용한 모델을 개발하기 쉽지않다.

3. 유용한 모델을 효과적으로 구현하고 사용하려면 정교한 설계 기술이 필요할지도 모른다.

Page 4: 3부. 더 심층적인 통찰력을 향한 리팩터링 (8장 도약)

리팩터링 수준

● 리팩터링이란 소프트웨어의 기능을수정하지 않고 설계를 다시 하는것을 의미.

● 리팩터링의 목표는 코드 이해는 기본이고, 도메인 전문가와 의사소통에 이를 연관시키는것.

Page 5: 3부. 더 심층적인 통찰력을 향한 리팩터링 (8장 도약)

심층 모델

● 전통적인 객체 분석 방법은 요구사항에 서술된 명사와 동사를 식별○ 명사는 초기의 객체이름.○ 동사는 객체의 메소드.

● 심층 모델이란 도메인의 피상적인 측면은 배제하고 도메인 전문가의 주요 관심사와 가장 적절한 지식을 알기 쉽게 표현하는 모델.

Page 6: 3부. 더 심층적인 통찰력을 향한 리팩터링 (8장 도약)

심층모델 / 유연한 설계

● 유연한 설계란 더 사용하기 쉽게 만들어 주는 설계 특성.

● 모델링과 설계접근법을 따른다면 많은 시행착오를 겪을 수 도 있지만 결과적으로 설계를 변경하기 쉬워지고 반복적인 변경을 통해 유연한 설계에 도달.

● Model Driven Design을 지탱하는 두개의 축○ 심층모델○ 유연한 설계

Page 7: 3부. 더 심층적인 통찰력을 향한 리팩터링 (8장 도약)

도약

● 리팩터링 효과는 선형적으로 증가하지 않는다.

● 심층 모델은 한번에 하나의 객체를 대상으로 하는 각종 소규모 리팩터링과정을 거치면서 모습을 드러낸다.

● 복잡성이 사라지는 순간 모델의 융통성과 표현력이 높아진다.

● 도약은 기법이 아니고 사건이다.

Page 8: 3부. 더 심층적인 통찰력을 향한 리팩터링 (8장 도약)

예제 #1

● Facility : 대출 총액

● Loan : 채권자

● Investment : 채권자의 지분관리

● Loan Investment : 특정 투자자의 대출 분담액

Page 9: 3부. 더 심층적인 통찰력을 향한 리팩터링 (8장 도약)

예제 #2

Page 10: 3부. 더 심층적인 통찰력을 향한 리팩터링 (8장 도약)

예제 #3

Page 11: 3부. 더 심층적인 통찰력을 향한 리팩터링 (8장 도약)

예제 #4

Page 12: 3부. 더 심층적인 통찰력을 향한 리팩터링 (8장 도약)

예제 #5

Page 13: 3부. 더 심층적인 통찰력을 향한 리팩터링 (8장 도약)

예제 #6

Page 14: 3부. 더 심층적인 통찰력을 향한 리팩터링 (8장 도약)

예제 #7

Page 15: 3부. 더 심층적인 통찰력을 향한 리팩터링 (8장 도약)

● 변화는 리팩터링에 수반되는 것보다 더 큰 기회와 더 큰위험을 수반한다.

● 시점이 적절하지 못 할 수 있다.● 과정이 순탄한것이 아니다.● 근본적인 사고방식의 전환이 필요하며 설계

의 대부분을 수정해야한다.

기회

Page 16: 3부. 더 심층적인 통찰력을 향한 리팩터링 (8장 도약)

기본에 집중하라

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

● 끊임없는 지식탐구와 함께 인내심을 가지고 UBQUITOUS LANGUAGE를 만드는일에 집중.