Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

DCI Architecture : Back to the User's Head.

670 views

Published on

DCI Architecture 남겨봄
- Trygve Reenskaug and James O. Coplien
- context-full과 context-less로 나눠서 context에 따른 role 주입
- 참고
: http://www.artima.com/articles/dci_vision.html
: http://www.sitepoint.com/dci-the-evolution-of-the-object-oriented-paradigm/

Published in: Software
  • Login to see the comments

DCI Architecture : Back to the User's Head.

  1. 1. DCI Architecture Back into the User’s Head Facebook @권용훈 2015.02.13
  2. 2. 사용자 머릿속의 개념모델을 시스템에 담자 사용자 머릿속의 시스템이란 특정상황에서 데이터의 순차적인 처리
  3. 3. 흔한 SE 그들만의 추상화 내가 원한건 목걸이였는데.. 추상화된 목걸이?! OOP SW엔지니어 입장에서 지극히 당연하고 익숙한건데.. T-T 예) ‘나’를 추상화 하기 - 키, 몸무게, 출생지, 직업, 주소, 취미.. 구조화(X) - 부모님, 친구, 여친, 동료, 교회에서 내 역할과 행위흐름(O) 우린 정말 사람의 멘탈모델에 가깝게 프로그램을 만들고 있긴 한걸까? 난 어쨌든 목걸이라능.. ㅋㅋ 추상화 되었음. 마음의 문을 열라는.. 예술가의 시선으로 보면 됨. ㅋㅋ ㅋㅋㅋ ㅋㅋ ㅋㅋ ㅋㅋ 추상화
  4. 4. 놓치고 있는 것 - OO시스템은 객체간 협업의 집합. but, 협업은 여러 객체들에 파편화되어 드러나지 않음. - 구조화와 복잡도를 낮추는 것에는 성공 but, 사용자 멘탈모델과 멀어지고 행위는 보이지 않음. 객체는 역할을 갖는다 객체는 상황마다 갖는 책임과 로직의 합 : 도메인, 데이터 관점으로 구조화해도 파편화.. T-T
  5. 5. A New Vision of OOP 2009년에 발표 : http://bit.ly/1tEoOtG James O. Coplien Bell Lab, Hilside, PLoP 1-2 Org patterns, Scrum/agile, Lean architecture… Trygve Reenskaug MVC Inventor(!!) Back into the User’s Head • OO시스템 가독성 향상 • 도메인(What the system is)과 행위(What the system does) 분리 • 사용자의 멘탈모델에 가까워 지기 • 시스템 행위는 상황(Context)에 따라 달라진다. Role 강조
  6. 6. DCI Architecture : 상황에 따라 동일한 객체라도 수행역할이 달라짐. Objects What the system is What the system does role role role role Use case Context -full 송금 대출 Context -less 사용자 계좌
  7. 7. DCI Architecture 원리 : 시스템이란 특정 상황에서 순차적인 데이터의 처리 Context-ful 송금 대출 Context-less 사용자 계좌 [DCI 관련요소] - Data : 사용자 머리속 things. 계좌. 데이터처리 - Context : 특정상황. 누가 무엇을 하는지 정의 : Data에 role 주입 - Roles** : 사용자 머릿속 행위자(구분되는 책임) - Interaction : 시스템이 하는 것. 상호작용 : 특정 Context에서 Role획득 Data처리 [Context] - 송금 [Data] - 계좌 (잔액+- 처리 ) [Roles] - 송금계좌, 수취계좌 [Interaction] - 송금할 때 - 두 개의 계좌 필요. - 각 계좌에 송금, 수취 역할 부여 - 각 계좌는 송금시 책임/기능 수행
  8. 8. DCI Architecture : 송금 Context 구현 형태
  9. 9. 프로세스 엔터티 엔터티 프로세스 • 프로세스 : 로직, 처리순서 • 엔터티 : 상태처리 Ex) 계약 컴포넌트(프로세스 컴포넌트 + 엔터티 컴포넌트) 프로세스 : 계약 로직과 이를 처리하기 위한 프로세스, 엔터티 컴포넌트 호출/협업 엔터티 : 계약 관련 엔터티 처리 책임 엔터티 islandofData islandofData 보통의 Component Architecture 원칙 SI의 Component Architecture 실제 Method Class Component Package System 각 수준에서 Partitioning & Classification. 구획화 방향성 정의 - Analysis Model - Business modeling with UML - DDD - Lean architecture BCF(Oliver Sims, 1999) BCF대신 DCI 적용? : 원칙과 실제는 항상 다르잖슴 :) 공부 OK. 계약성 프로젝트 NO.
  10. 10. 150명이 X000개 화면 개발! : 언제, 누가, 무엇을 어떻게 할 지 프로세스, 원칙 등 미확립. DCI 적용합시다!! 이러진 말자 Orz BCF로 쪼물딱 해 봄. • S화재 차세대 • S보험 차대 • H보험 M&A • L 차세대 이런 프로젝트들은 BCF로 Partitioning, classification 원칙, 프로세스가 확립되어 있고 개인/회사 차원 경험치 누적된 상태..
  11. 11. 요상하게 신경 쓰인다.. : 현실에선 쓸데없지만 재미있음. 신경쓰이면 파 보는 것도.. :)

×