SlideShare a Scribd company logo
1 of 26
Domain Driven Design 03 모델과 구현의 연계 아.꿈.사 Study 2011. 09. 03 김한솔 itsfitsol@gmail.com
기술 분석가와 도메인 전문가가 도출한 모델 개발자가 즉흥적으로 만든설계 이 둘간의 차이를 좁혀 모델 = 설계 를 만들자.
모델 주도 설계 (Model Driven Design) 모델링 패러다임과 도구 지원 내부 드러내기 : 왜 모델이 사용자에게 중요한가 실천적 모델러(Hands-On Modeler)
모델 주도 설계 (Model Driven Design) 모델링 패러다임과 도구 지원 내부 드러내기 : 왜 모델이 사용자에게 중요한가 실천적 모델러(Hands-On Modeler)
모델 주도 설계 (Model Driven Design) 분석 모델 (Analysis Model) 업무 도메인의 개념만을 체계화 하고자 분석한 결과물. 이해하기 위한 수단으로만 간주되어 실제 설계로 이어지지 않는다. 	DDD 에서 모델과 설계의 연결로는 적합하지 않다. 중요한 발견은 설계/구현 도중에 나타난다.
모델 주도 설계 (Model Driven Design) 설계 / 모델 느슨한 대응 ▶ 모델가치가 없다. 소프트웨어의 정확도 감소. 설계 / 모델 복잡한 대응 ▶이해하기 어렵다. 설계 변경시 유지보수가 어렵다. 핵심만 뽑아내서 적당하게 합시다.
모델 주도 설계 (Model Driven Design) 도메인 모델을 있는 그대로 반영.  	Ubiquitous Language 를 지원. 분석, 설계 두가지 측면을 충분히 만족하는 단일 모델만들기. 기본적으로 사용한 용어 도출. (코드 작성시 사용) 모델링 패러다임을 지원하는 개발 도구와 언어 필요.
모델 주도 설계 (Model Driven Design) 모델링 패러다임과 도구 지원 내부 드러내기 : 왜 모델이 사용자에게 중요한가 실천적 모델러(Hands-On Modeler)
모델링 패러다임과 도구 지원 모델 패러다임 설계 밀접한 대응을 위해서는 패러다임이 필수적!!
모델링 패러다임과 도구 지원 모델 패러다임 설계 객체지향 프로그래밍!! 개념적 모델과 직접적으로 유사한 객체와 관계를 만들 수 있다.
모델링 패러다임과 도구 지원 절차적인 방식의 치명적 단점. 프로그래머가 도메인의 개념을 생각할 수는 있으나 프로그램 자체에 도메인 모델이 들어가 있지 않다. 	P53. 예제 (절차적인 방식에서 모델 주도적인 방식으로)
모델 주도 설계 (Model Driven Design) 모델링 패러다임과 도구 지원 내부 드러내기 : 왜 모델이 사용자에게 중요한가 실천적 모델러(Hands-On Modeler)
내부 드러내기 : 왜 모델이 사용자에게중요한가 	MS IE 의 즐겨찾기 예. 사용자 ▶세션간 지속되는 웹사이트 이름 목록 구현 ▶		URL 이 저장된 파일로 간주 파일의 이름을 목록에 추가 결과 ▶즐겨찾기이름에 / : * ? “ < > | 등의 문자 포함 불가
내부 드러내기 : 왜 모델이 사용자에게중요한가 문제점 ▶ 사용자 모델 / 구현 모델 달라 혼란 초래. 해결방안1 ▶구현 모델을 사용자에게 알리고 대안모델 제거. 해결방안2 ▶ 구현과 다른 새로운 규칙을 만들어 새로운 모델 제공. 결론 ▶ 실제 사용자의 관심사를 반영한 모델에 기반을 두면 사용자가 일관성있고 예상 가능한 행위를 할것이다.
모델 주도 설계 (Model Driven Design) 모델링 패러다임과 도구 지원 내부 드러내기 : 왜 모델이 사용자에게 중요한가 실천적 모델러(Hands-On Modeler)
실천적 모델러(Hands-On Modeler) 제조업 숙련된 엔지니어 ▶ 제품 설계 노동자 ▶제품 조립
실천적 모델러(Hands-On Modeler) 제조업 == 소프트웨어 개발업 ?? 숙련된 엔지니어 ▶ 제품 설계 노동자 ▶제품 조립 팀장님 ▶소프트웨어 설계 나 ▶Copy & Paste
실천적 모델러(Hands-On Modeler) 제조업 == 소프트웨어 개발업 ?? 숙련된 엔지니어 ▶ 제품 설계 노동자 ▶제품 조립 팀장님 ▶소프트웨어 설계 나 ▶			Copy & Paste
실천적 모델러(Hands-On Modeler) 프로그래머가 모델을 모른다면… 모델은 소프트웨어와 무관해진다. 코드변경이 곧 모델변경 이라는걸 모른다면… 리팩토링은모델을 강화가 아닌 약화 시킨다. 모델러가구현 프로세스와 분리됐을 경우… 구현상의 제약조건이 모델에 반영되지 못한다. 숙련된 설계자의 지식과 솜씨가 전달되지 못한다.
실천적 모델러(Hands-On Modeler) 팀내 모든 팀원들은 자신의 일차적 직무와는 상관없이 모델과 코드를 둘다 알아야 한다. 	Ubiquitous Language 를 활용해 도메인 이해에 적극 참여해야 한다.
Conclusion.
모델 주도 설계 (Model Driven Design) 모델링 패러다임과 도구 지원 내부 드러내기 : 왜 모델이 사용자에게 중요한가 실천적 모델러(Hands-On Modeler) 분석과 설계 모두를 만족하는 단일 모델을 만들자.
모델 주도 설계 (Model Driven Design) 모델링 패러다임과 도구 지원 내부 드러내기 : 왜 모델이 사용자에게 중요한가 실천적 모델러(Hands-On Modeler) 1. 패러다임은 객체지향 프로그래밍이 갑. 2. 도메인의 핵심 개념을 잘 뽑아 내자.
모델 주도 설계 (Model Driven Design) 모델링 패러다임과 도구 지원 내부 드러내기 : 왜 모델이 사용자에게 중요한가 실천적 모델러(Hands-On Modeler) 사용자의 Needs 를 반영하는 모델을 만들어야 뒤끝이 없다.
모델 주도 설계 (Model Driven Design) 모델링 패러다임과 도구 지원 내부 드러내기 : 왜 모델이 사용자에게 중요한가 실천적 모델러(Hands-On Modeler) 1. 모든 팀원들이 Ubiquitous Language 를 통해  코드와 도메인 이해를 다 해야 한다. 2. 팀원 모두가 코드==모델 임을 인식해야 한다. 3. 나도 팀장님과 똑같은 위치다.
끝

More Related Content

Similar to 110903_아꿈사_DDD_03

Whats 사업계획서
Whats 사업계획서Whats 사업계획서
Whats 사업계획서종현 정
 
사용자중심
사용자중심사용자중심
사용자중심지현 이
 
퍼소나로 완성하는 인터랙션 디자인
퍼소나로 완성하는 인터랙션 디자인퍼소나로 완성하는 인터랙션 디자인
퍼소나로 완성하는 인터랙션 디자인정인 주
 
사용자중심
사용자중심사용자중심
사용자중심지현 이
 
인터랙션 디자인 1310585 최하늘
인터랙션 디자인  1310585 최하늘인터랙션 디자인  1310585 최하늘
인터랙션 디자인 1310585 최하늘하늘 최
 
인터랙션 디자인 3장 조현영
인터랙션 디자인 3장 조현영인터랙션 디자인 3장 조현영
인터랙션 디자인 3장 조현영Hyunyoung Cho
 
데이터아키텍트가 비즈니스 업무 부서와 협업하기 위해 알아야 할 다섯가지
데이터아키텍트가 비즈니스 업무 부서와 협업하기 위해 알아야 할 다섯가지데이터아키텍트가 비즈니스 업무 부서와 협업하기 위해 알아야 할 다섯가지
데이터아키텍트가 비즈니스 업무 부서와 협업하기 위해 알아야 할 다섯가지Devgear
 
제품 서비스디자인 강의계획서 2학기 ot 수정본2
제품 서비스디자인 강의계획서 2학기 ot 수정본2제품 서비스디자인 강의계획서 2학기 ot 수정본2
제품 서비스디자인 강의계획서 2학기 ot 수정본2Young Choi
 
1st.Lecture.Introduction.pdf
1st.Lecture.Introduction.pdf1st.Lecture.Introduction.pdf
1st.Lecture.Introduction.pdfJeongeun Kwon
 
프로덕트 매니저 8년의 경험
프로덕트 매니저 8년의 경험프로덕트 매니저 8년의 경험
프로덕트 매니저 8년의 경험Jihye OK
 
1st.Lecture.Introduction.pdf
1st.Lecture.Introduction.pdf1st.Lecture.Introduction.pdf
1st.Lecture.Introduction.pdfJeongeun Kwon
 
애자일 개발 프로세스를 이용한 고품질 소프트웨어 개발
애자일 개발 프로세스를 이용한 고품질 소프트웨어 개발애자일 개발 프로세스를 이용한 고품질 소프트웨어 개발
애자일 개발 프로세스를 이용한 고품질 소프트웨어 개발Jaehoon Oh
 
계원예술대학교 2014 서비스디자인 강의계획서
계원예술대학교 2014 서비스디자인 강의계획서계원예술대학교 2014 서비스디자인 강의계획서
계원예술대학교 2014 서비스디자인 강의계획서Young Choi
 
[IMR2014]WEEK08
[IMR2014]WEEK08[IMR2014]WEEK08
[IMR2014]WEEK08JY LEE
 
Innovation 3 3.stages of new product development
Innovation 3 3.stages of new product developmentInnovation 3 3.stages of new product development
Innovation 3 3.stages of new product development정명훈 Jerry Jeong
 
개발자, 성장하는 '척' 말고, 진짜 성장하기
개발자, 성장하는 '척' 말고, 진짜 성장하기개발자, 성장하는 '척' 말고, 진짜 성장하기
개발자, 성장하는 '척' 말고, 진짜 성장하기Donghyun Cho
 
서울과학기술대학교 2014 서비스디자인 강의계획서
서울과학기술대학교 2014 서비스디자인 강의계획서서울과학기술대학교 2014 서비스디자인 강의계획서
서울과학기술대학교 2014 서비스디자인 강의계획서Young Choi
 
7th.Lecture.UI.Design.and.Middle.Team.Assignment.Guideline.pdf
7th.Lecture.UI.Design.and.Middle.Team.Assignment.Guideline.pdf7th.Lecture.UI.Design.and.Middle.Team.Assignment.Guideline.pdf
7th.Lecture.UI.Design.and.Middle.Team.Assignment.Guideline.pdfJeongeun Kwon
 
[디프만 6기] 디자인만 할 줄 아는 시대는 끝났다.
[디프만 6기] 디자인만 할 줄 아는 시대는 끝났다.[디프만 6기] 디자인만 할 줄 아는 시대는 끝났다.
[디프만 6기] 디자인만 할 줄 아는 시대는 끝났다.DongYoung Kim
 
새내기들을 위한 IT직장이야기
새내기들을 위한 IT직장이야기새내기들을 위한 IT직장이야기
새내기들을 위한 IT직장이야기수보 김
 

Similar to 110903_아꿈사_DDD_03 (20)

Whats 사업계획서
Whats 사업계획서Whats 사업계획서
Whats 사업계획서
 
사용자중심
사용자중심사용자중심
사용자중심
 
퍼소나로 완성하는 인터랙션 디자인
퍼소나로 완성하는 인터랙션 디자인퍼소나로 완성하는 인터랙션 디자인
퍼소나로 완성하는 인터랙션 디자인
 
사용자중심
사용자중심사용자중심
사용자중심
 
인터랙션 디자인 1310585 최하늘
인터랙션 디자인  1310585 최하늘인터랙션 디자인  1310585 최하늘
인터랙션 디자인 1310585 최하늘
 
인터랙션 디자인 3장 조현영
인터랙션 디자인 3장 조현영인터랙션 디자인 3장 조현영
인터랙션 디자인 3장 조현영
 
데이터아키텍트가 비즈니스 업무 부서와 협업하기 위해 알아야 할 다섯가지
데이터아키텍트가 비즈니스 업무 부서와 협업하기 위해 알아야 할 다섯가지데이터아키텍트가 비즈니스 업무 부서와 협업하기 위해 알아야 할 다섯가지
데이터아키텍트가 비즈니스 업무 부서와 협업하기 위해 알아야 할 다섯가지
 
제품 서비스디자인 강의계획서 2학기 ot 수정본2
제품 서비스디자인 강의계획서 2학기 ot 수정본2제품 서비스디자인 강의계획서 2학기 ot 수정본2
제품 서비스디자인 강의계획서 2학기 ot 수정본2
 
1st.Lecture.Introduction.pdf
1st.Lecture.Introduction.pdf1st.Lecture.Introduction.pdf
1st.Lecture.Introduction.pdf
 
프로덕트 매니저 8년의 경험
프로덕트 매니저 8년의 경험프로덕트 매니저 8년의 경험
프로덕트 매니저 8년의 경험
 
1st.Lecture.Introduction.pdf
1st.Lecture.Introduction.pdf1st.Lecture.Introduction.pdf
1st.Lecture.Introduction.pdf
 
애자일 개발 프로세스를 이용한 고품질 소프트웨어 개발
애자일 개발 프로세스를 이용한 고품질 소프트웨어 개발애자일 개발 프로세스를 이용한 고품질 소프트웨어 개발
애자일 개발 프로세스를 이용한 고품질 소프트웨어 개발
 
계원예술대학교 2014 서비스디자인 강의계획서
계원예술대학교 2014 서비스디자인 강의계획서계원예술대학교 2014 서비스디자인 강의계획서
계원예술대학교 2014 서비스디자인 강의계획서
 
[IMR2014]WEEK08
[IMR2014]WEEK08[IMR2014]WEEK08
[IMR2014]WEEK08
 
Innovation 3 3.stages of new product development
Innovation 3 3.stages of new product developmentInnovation 3 3.stages of new product development
Innovation 3 3.stages of new product development
 
개발자, 성장하는 '척' 말고, 진짜 성장하기
개발자, 성장하는 '척' 말고, 진짜 성장하기개발자, 성장하는 '척' 말고, 진짜 성장하기
개발자, 성장하는 '척' 말고, 진짜 성장하기
 
서울과학기술대학교 2014 서비스디자인 강의계획서
서울과학기술대학교 2014 서비스디자인 강의계획서서울과학기술대학교 2014 서비스디자인 강의계획서
서울과학기술대학교 2014 서비스디자인 강의계획서
 
7th.Lecture.UI.Design.and.Middle.Team.Assignment.Guideline.pdf
7th.Lecture.UI.Design.and.Middle.Team.Assignment.Guideline.pdf7th.Lecture.UI.Design.and.Middle.Team.Assignment.Guideline.pdf
7th.Lecture.UI.Design.and.Middle.Team.Assignment.Guideline.pdf
 
[디프만 6기] 디자인만 할 줄 아는 시대는 끝났다.
[디프만 6기] 디자인만 할 줄 아는 시대는 끝났다.[디프만 6기] 디자인만 할 줄 아는 시대는 끝났다.
[디프만 6기] 디자인만 할 줄 아는 시대는 끝났다.
 
새내기들을 위한 IT직장이야기
새내기들을 위한 IT직장이야기새내기들을 위한 IT직장이야기
새내기들을 위한 IT직장이야기
 

110903_아꿈사_DDD_03

  • 1. Domain Driven Design 03 모델과 구현의 연계 아.꿈.사 Study 2011. 09. 03 김한솔 itsfitsol@gmail.com
  • 2. 기술 분석가와 도메인 전문가가 도출한 모델 개발자가 즉흥적으로 만든설계 이 둘간의 차이를 좁혀 모델 = 설계 를 만들자.
  • 3. 모델 주도 설계 (Model Driven Design) 모델링 패러다임과 도구 지원 내부 드러내기 : 왜 모델이 사용자에게 중요한가 실천적 모델러(Hands-On Modeler)
  • 4. 모델 주도 설계 (Model Driven Design) 모델링 패러다임과 도구 지원 내부 드러내기 : 왜 모델이 사용자에게 중요한가 실천적 모델러(Hands-On Modeler)
  • 5. 모델 주도 설계 (Model Driven Design) 분석 모델 (Analysis Model) 업무 도메인의 개념만을 체계화 하고자 분석한 결과물. 이해하기 위한 수단으로만 간주되어 실제 설계로 이어지지 않는다. DDD 에서 모델과 설계의 연결로는 적합하지 않다. 중요한 발견은 설계/구현 도중에 나타난다.
  • 6. 모델 주도 설계 (Model Driven Design) 설계 / 모델 느슨한 대응 ▶ 모델가치가 없다. 소프트웨어의 정확도 감소. 설계 / 모델 복잡한 대응 ▶이해하기 어렵다. 설계 변경시 유지보수가 어렵다. 핵심만 뽑아내서 적당하게 합시다.
  • 7. 모델 주도 설계 (Model Driven Design) 도메인 모델을 있는 그대로 반영. Ubiquitous Language 를 지원. 분석, 설계 두가지 측면을 충분히 만족하는 단일 모델만들기. 기본적으로 사용한 용어 도출. (코드 작성시 사용) 모델링 패러다임을 지원하는 개발 도구와 언어 필요.
  • 8. 모델 주도 설계 (Model Driven Design) 모델링 패러다임과 도구 지원 내부 드러내기 : 왜 모델이 사용자에게 중요한가 실천적 모델러(Hands-On Modeler)
  • 9. 모델링 패러다임과 도구 지원 모델 패러다임 설계 밀접한 대응을 위해서는 패러다임이 필수적!!
  • 10. 모델링 패러다임과 도구 지원 모델 패러다임 설계 객체지향 프로그래밍!! 개념적 모델과 직접적으로 유사한 객체와 관계를 만들 수 있다.
  • 11. 모델링 패러다임과 도구 지원 절차적인 방식의 치명적 단점. 프로그래머가 도메인의 개념을 생각할 수는 있으나 프로그램 자체에 도메인 모델이 들어가 있지 않다. P53. 예제 (절차적인 방식에서 모델 주도적인 방식으로)
  • 12. 모델 주도 설계 (Model Driven Design) 모델링 패러다임과 도구 지원 내부 드러내기 : 왜 모델이 사용자에게 중요한가 실천적 모델러(Hands-On Modeler)
  • 13. 내부 드러내기 : 왜 모델이 사용자에게중요한가 MS IE 의 즐겨찾기 예. 사용자 ▶세션간 지속되는 웹사이트 이름 목록 구현 ▶ URL 이 저장된 파일로 간주 파일의 이름을 목록에 추가 결과 ▶즐겨찾기이름에 / : * ? “ < > | 등의 문자 포함 불가
  • 14. 내부 드러내기 : 왜 모델이 사용자에게중요한가 문제점 ▶ 사용자 모델 / 구현 모델 달라 혼란 초래. 해결방안1 ▶구현 모델을 사용자에게 알리고 대안모델 제거. 해결방안2 ▶ 구현과 다른 새로운 규칙을 만들어 새로운 모델 제공. 결론 ▶ 실제 사용자의 관심사를 반영한 모델에 기반을 두면 사용자가 일관성있고 예상 가능한 행위를 할것이다.
  • 15. 모델 주도 설계 (Model Driven Design) 모델링 패러다임과 도구 지원 내부 드러내기 : 왜 모델이 사용자에게 중요한가 실천적 모델러(Hands-On Modeler)
  • 16. 실천적 모델러(Hands-On Modeler) 제조업 숙련된 엔지니어 ▶ 제품 설계 노동자 ▶제품 조립
  • 17. 실천적 모델러(Hands-On Modeler) 제조업 == 소프트웨어 개발업 ?? 숙련된 엔지니어 ▶ 제품 설계 노동자 ▶제품 조립 팀장님 ▶소프트웨어 설계 나 ▶Copy & Paste
  • 18. 실천적 모델러(Hands-On Modeler) 제조업 == 소프트웨어 개발업 ?? 숙련된 엔지니어 ▶ 제품 설계 노동자 ▶제품 조립 팀장님 ▶소프트웨어 설계 나 ▶ Copy & Paste
  • 19. 실천적 모델러(Hands-On Modeler) 프로그래머가 모델을 모른다면… 모델은 소프트웨어와 무관해진다. 코드변경이 곧 모델변경 이라는걸 모른다면… 리팩토링은모델을 강화가 아닌 약화 시킨다. 모델러가구현 프로세스와 분리됐을 경우… 구현상의 제약조건이 모델에 반영되지 못한다. 숙련된 설계자의 지식과 솜씨가 전달되지 못한다.
  • 20. 실천적 모델러(Hands-On Modeler) 팀내 모든 팀원들은 자신의 일차적 직무와는 상관없이 모델과 코드를 둘다 알아야 한다. Ubiquitous Language 를 활용해 도메인 이해에 적극 참여해야 한다.
  • 22. 모델 주도 설계 (Model Driven Design) 모델링 패러다임과 도구 지원 내부 드러내기 : 왜 모델이 사용자에게 중요한가 실천적 모델러(Hands-On Modeler) 분석과 설계 모두를 만족하는 단일 모델을 만들자.
  • 23. 모델 주도 설계 (Model Driven Design) 모델링 패러다임과 도구 지원 내부 드러내기 : 왜 모델이 사용자에게 중요한가 실천적 모델러(Hands-On Modeler) 1. 패러다임은 객체지향 프로그래밍이 갑. 2. 도메인의 핵심 개념을 잘 뽑아 내자.
  • 24. 모델 주도 설계 (Model Driven Design) 모델링 패러다임과 도구 지원 내부 드러내기 : 왜 모델이 사용자에게 중요한가 실천적 모델러(Hands-On Modeler) 사용자의 Needs 를 반영하는 모델을 만들어야 뒤끝이 없다.
  • 25. 모델 주도 설계 (Model Driven Design) 모델링 패러다임과 도구 지원 내부 드러내기 : 왜 모델이 사용자에게 중요한가 실천적 모델러(Hands-On Modeler) 1. 모든 팀원들이 Ubiquitous Language 를 통해 코드와 도메인 이해를 다 해야 한다. 2. 팀원 모두가 코드==모델 임을 인식해야 한다. 3. 나도 팀장님과 똑같은 위치다.
  • 26.