2장. 의사소통과 언어 사용

15
의사소통과 언어 사용 박기덕

Upload: kidoki

Post on 03-Jul-2015

326 views

Category:

Documents


7 download

DESCRIPTION

Domain Driven Design

TRANSCRIPT

Page 1: 2장. 의사소통과 언어 사용

의사소통과 언어 사용

박기덕

Page 2: 2장. 의사소통과 언어 사용

목차

1. 도메인 모델이란?

2. UBIQUITOUS LANGUAGE의 필요성

3. UBIQUITOUS LANGUAGE의 특징

4. UBIQUITOUS LANGUAGE의 정의

5. 의사소통을 통한 모델링

6. 다이어그램

7. 글로 작성한 설계 문서

8. 실행 가능 한 기반

Page 3: 2장. 의사소통과 언어 사용

도메인 모델이란?

● 도메인 모델이란 프로젝트에 참여한 사람들의 머릿속에 축전된 개념을 모아 놓은 것이다.

● 모델 기반 언어 소통은 UML상의 다이어그램으로 한정되어서는 안된다.

● 모델을 가장 효과적으로 사용하기 위해서는 모든 의사소통 수단에 스며들어야 한다.

Page 4: 2장. 의사소통과 언어 사용

UBIQUITOUS LANGUAGE의 필요성

● 도메인 전문가○ 개발에 사용되는 기술적인 전문용어 미숙○ 전문 용어(도메인 언어) 능숙○ 자신이 원하는 바를 모호하게 설명

● 개발자○ 개발에 사용되는 기술적인 전문용어 능숙○ 전문 용어 (도메인 언어) 미숙○ 도메인 전문가가 알 수 없는 추상화 구현

Page 5: 2장. 의사소통과 언어 사용

UBIQUITOUS LANGUAGE의 필요성

● 공통언어가 없는 환경에서는 개발자와 도메인 전문가는 자신의 언어를 상대에게 번역해야 한다.

● 번역은 의사소통을 무디게 하고, 지식 탐구를 빈약하게 만든다.

● 일부 사람들만 쓰는 언어는 공통 언어가 될 수 없다.

Page 6: 2장. 의사소통과 언어 사용

UBIQUITOUS LANGUAGE의 특징

● 클래스와 주요한 연산의 이름이 있다.

● 모델 내에서 명시적으로 드러나는 규칙을 토론하기 위한 용어가 포함 된다.

● 개발자와 도메인 전문가간의 의사소통 뿐만 아니라, 도메인 전문가들 간의 요구 사항, 개발 계획, 기능에 대한 의사소통에도 언어를 제공 해야 한다.

Page 7: 2장. 의사소통과 언어 사용

UBIQUITOUS LANGUAGE의 특징

● 모델을 언어의 근간으로 사용하라.○ 팀내 의사소통과 코드○ 다이어그램과 문서○ 특히, 서로 대화할 때

● 새로운 모델에 맞게끔 클래스, 메소드, 모듈의 이름을 리팩토링 하라.

● 도메인 전문가는 부정확한 용어나 구조에 대해 반대의사를 표명하며, 개발자는 설계를 어렵게 하는 모호함과 불일치에 대해 의논하라.

Page 8: 2장. 의사소통과 언어 사용

UBIQUITOUS LANGUAGE의 정의

Page 9: 2장. 의사소통과 언어 사용

도메인 모델 예제

● 2-2의 모델이 의사 소통 시 공통된 모델의 용어를 사용 할 수 있다.

● 2-1 모델에 비해 2-2에서 모델 객체를 통해 명확하고 구체적으로 표현 가능

Page 10: 2장. 의사소통과 언어 사용

의사소통을 통한 모델링

● 대부분의 사람들은 의사소통 시 도메인 모델의 언어를 사용하지 않는다.

● 의사소통 시 모델 언어를 사용하며, 표현해야 할 것들을 더 쉽게 말하는 방법을 찾고, 모델에 반영하라.

● "Routing Service에 출발지, 목적지, 도착 시간을 전달하면 화물이 멈춰야 할 지점을 찾고, 음.. 그것을 데이터베이스에 삽입한다" (모호하고 기술적임)

● "출발지, 목적지, 등등... 이것들을 모두 Routing Service에 넣으면 필요한 것이 모두 담긴 Itinerary를 돌려받는다" (좀 더 완전해졌지만 , 장황함)

● "Routing Service는 Route Specification을 만족하는 Itinerary를 찾는다" (간결함)

Page 11: 2장. 의사소통과 언어 사용

다이어그램

● UML 다이어그램은 객체간의 관계를 전달하고, 상호작용을 보이는데 적절하다. 그러나 객체의 개념적 정의를 전달하진 못한다.

● 다이어그램은 모델이 아니다.

● 다이어그램은 의사소통과 설명의 수단이다.

Page 12: 2장. 의사소통과 언어 사용

글로 작성한 설계 문서

● 문서는 코드와 말을 보완하는 역활을 해야 한다.

● 문서는 유효한 상태를 유지하고, 최신 내용을 담고 있어야 한다.

● 문서는 프로젝트 활동과 관련을 맺고 있어야 한다.

Page 13: 2장. 의사소통과 언어 사용

실행가능한 기반

● 올바르게 실행되는 코드 뿐만 아니라 올바른 의미를 전달하는 코드를 작성해야 한다.

● 코드에 사용된 언어는 도메인 모델에서 사용된 언어과 같아야 한다.

Page 14: 2장. 의사소통과 언어 사용

설명을 위한 도메인 모델 예제

● 2-4의 경우 도메인 전문 지식이 없다면 이해하는데 어려움이 발생 한다.

● 2-5의 경우 클래스 다이어그램과 상세하게 대응하지는 않지만 도메인의 핵심 개념을 설명하는데 도움을 준다.

● 두개의 모델을 활용 해 체계적이며 이해하기 쉬운 모델을 작성 할 수 있다.

Page 15: 2장. 의사소통과 언어 사용

결론

● 도메인 모델을 작성 할때는 공통 언어를 필요로 한다.

● 모든 의사소통에 도메인 모델 용어를 사용해야 한다.

● 하나의 모델이 구현, 설계, 의사소통의 기초가 되야 한다.