SlideShare uma empresa Scribd logo
1 de 26
11. 분석 패턴의 적용 박종석 아꿈사
목적 분석 패턴의 목록을 만드는 것 (X) 예제에 사용된 패턴을 완전하게 설명 하려는 것 (X) 도메인 주도 설계 과정과 분석 패턴을 함께 통합하는 방법을 설명하는 것 (0)
분석 패턴 : 재사용 가능한 객체 모델 어떻게 모델링을 해야 하는지 그 기법, 또는 절차를 설명하기 보다, 모델링을 한 결과인 모델 그 자체에집중
책의 구조 : First section Analysis pattern Conceptual business model pattern provide key abstractions from domains such as trading, measurement, accounting, and organizational relationships represent the way people think about the business, rather than the way a computer system is designed
책의 구조 : Second section Support patterns how analysis patterns fit into an information systems architecture how the constructs of conceptual models turn into software interfaces and implementations
디자인 패턴과 분석 패턴 각 디자인 패턴은 기존환경내에서 반복적으로 일어나는 문제들을 설명한 후, 그 문제들에 대한 해법의 핵심을설명해 줍니다. 똑같은 방법으로 두 번 하지 않고 이 해법을 100만번 이상 재사용할 수 있도록 말이죠 – 디자인 패턴 (크리스토퍼알렉산더) 분석 패턴은 업무 모델링 과정에서 발견되는 공통적인 구조를 표현하는 개념의 집합이다. 분석 패턴은 단 하나의 도메인에 대해서만 적절할 수도 있고 여러 도메인에 걸쳐 적용이 가능할 수도 있다.  디자인 패턴은 추상적이고 분석 패턴은 구체적이다.
디자인 패턴에는 없는 분석 패턴의 장점 파악하기 힘든 도메인 분석의 출발점, 지침서, 깔끔하게 추상화된 어휘집 물론 정답은 아니다.. 하지만 훌륭한 출발점이 된다. 구현할 때 고려해야 할 영향력에 대한 지침을 제공 실제 경험을 바탕으로 실용적인 지침 … 이 작업은 시스템을 다시 컴파일하거나 빌드하지 않고도 시스템이 가동하는 중에 수행할 수 있다. … 필요한 상황을 피할 수 없는 경우도 있겠지만 그런 일은 드물게 발생할 것이다.  모델 선택의 배경이 된 논리와 그에 따르는 영향력까지 제공 가장 중요하고 어려운 결정 사항에 집중 어떤 것을 선택해야 하는지와 그 대안을 제시 하부 활동의 영향력을 예측할 수 있게 만들어 줌
분석 패턴이 없다면? 1 chaper지식 탐구 참고
예제 1: 계좌의 이자 수익 분석패턴과 비슷한 도메인에 해당하는 모델을 적용한 사례
그림 11-1 : 초기 클래스 다이어그램 이자(interest)와 수수료(fee)로 Asset이 이루어짐 각각은 그 내역(History)를 가짐
그림 11-2: 기본적인 회계 모델 값을 추가 : Account에 양의 Entry를 삽입 값을 뺌    : Account에 음의 Entry를 삽입 변경내역 관리를 위해 Entry를 삭제하지 않는다. 잔액은 Entry를 통해 계산
그림 11-3: 거래 모델 보존(Conservation)을 위해 Transaction 도입 하나의 Account에서 다른 Account로 돈이 이동 Transaction은 2개의 Entry를 동시에 생성한다. (음&양)  총 양은 보존된다.
그림 11-4: 새로운 모델 제안 수수료(fee) 내역 관리를 위해 Fee Account와 Entry도입 이자(interest) 내역 관리를 위해 Interest Account와 Entry도입 거래모델에서처럼 2개의 Entry와 Transaction을 도입  원래의 의도와 맞지 않음, 원래 의도는 상이한 Account간의      Entry이동을 위한 것
그림 11-5: 발생이 상환에서 분리돼 있는 원래의 클래스 다이어그램 원래의 다이어그램이 오히려 해당 도메인을 더 잘 표현하고 있다.  분석 패턴이 정답이 아니다.
그림 11-6: Transaction을 제거한 계정 기반 다이어그램 그대로 따라 하지 말고 핵심아이디어를 소화해서 적용해야 한다.
그림 11-7: 구현 후의 클래스 다이어그램 구현 이슈 때문에 모델이 변경됨 Fee Entry와 Interest Entry는 통합되지 못함  Fee Calculator와 Interest Calculator는 SIDE-EFFECT-FREEFUNCTION으로 작성  가장 복잡한 부분을 분석하고 테스트하기 쉽게 하기 위해      이들 내부에서 유지하던 Entry가 Asset으로 옮겨감
예제 2: 야간 배치 프로그램에 대한 통찰력 분석패턴의 도메인과 그다지 상관없어 보이는 곳에 분석패턴을 적용한 사례
야간 배치 작업 기존엔 스크립트 코드 내에 도메인 로직이 간접적으로 포함돼 있었고, 시감이 흐르면서 점점 더 복잡해 짐 배치 로직= 객체로 표현하기에 부적절한 프로시저 야간 배치 프로그램과 연동하도록 새로운 설계를 개선해야 하는 개발자는 배치의 작동 방식과 분석 패턴에 포함돼 있는 일부 개념간의 연관성을 인식하기 시작했다.
그림 11-8: 기본 기입 규칙(Posting Rule)을 표현하는 클래스 다이어그램 새로운 Entry가 입력 계정에 추가되면 기입 규칙이 실행된다. 기입 규칙은 계산 Method를 사용해서 새로운 Entry를 생성하고 Account에 삽입 봉급 Account라면 Entry가 추가될때마다 30%의 세금 계산 Posting Rule이 수행 수행결과 생성된 Entry를 원천징수세액 Account에 삽입 정확히 개념이 딱 맞아 떨어지는 것은 아니지만,  각 Entry에 적용될 새로운작업을 Triggering 한다는 개념이 비슷하다. 규칙을 객체화 하여 관리하면, 상호 연관된 규칙 때문에 뒤죽박죽 되지 않는다.
기입 규칙 수행 시기 적극적인 실행 Account 기반 실행 Posting-Rule 기반 실행 Posting Rule을 실행하는 외부 에이전트에 의해 작업이 수행됨 야간 배치 작업에서 이용할 수 있음!
그림 11-9: 배치에 Posting Rule을 적용한 화면 배치 스크립트가 posting rule을 수행 Posting rule은 도메인의 지식을 필요로 하기 때문에 도메인 영역으로…  복잡성은 도메인 계층 내부로, 배치 스크립트는 심플해짐      도메인에 추가된 복잡성은 모델을 좀더 추상적이고 명확하게 함
그림 11-10: Posing Rule이 포함된 클래스 다이어그램 분석 패턴에서는 Account와 Posting Rule을 직접 연결 우리 시스템에서의 Asset객체는 개별 Account의 내용을 알고 있기 때문에 어떤 Posting Rule을 적용해야 할지 알고 있다.  즉, Asset이 Posting Rule을 호출하는 형태여야 한다.      배치가 Asset을 접근하는 형태이어야 한다.
그림 11-11: 규칙 실행을 보여주는 시퀀스 다이어그램
분석 패턴 적용 시 유의점 패턴의 외견상의 형태는 변경해도 무방하지만 패턴이 의미하는 기본적인 개념은 유지
… 마지막으로 우리 도메인이 분석 패턴에 있다면? 당신은 행운아! 우리 도메인이 분석 패턴에 없다면? 자신만의 분석 패턴을 만들고 발전 시키자!
Q&A

Mais conteúdo relacionado

Semelhante a 11.분석패턴

11장. 분석 패턴의 적용
11장. 분석 패턴의 적용11장. 분석 패턴의 적용
11장. 분석 패턴의 적용kidoki
 
분석과 설계
분석과 설계분석과 설계
분석과 설계Haeil Yi
 
개발자가 이해하는 분석
개발자가 이해하는 분석개발자가 이해하는 분석
개발자가 이해하는 분석동철 박
 
Recommendation System History
Recommendation System HistoryRecommendation System History
Recommendation System HistoryTae Young Lee
 
Design Pattern Introduction
Design Pattern IntroductionDesign Pattern Introduction
Design Pattern IntroductionBill Kim
 
실용주의 아키텍트
실용주의 아키텍트실용주의 아키텍트
실용주의 아키텍트Haeil Yi
 
보고서 작성 원리 : 실패와 성공 사례 비교
보고서 작성 원리 : 실패와 성공 사례 비교보고서 작성 원리 : 실패와 성공 사례 비교
보고서 작성 원리 : 실패와 성공 사례 비교길벗지기
 
20061130 Business Model의 이해와 활용(2)
20061130 Business Model의 이해와 활용(2)20061130 Business Model의 이해와 활용(2)
20061130 Business Model의 이해와 활용(2)sukpyo oh
 
Cloud migration pattern[한글]
Cloud migration pattern[한글]Cloud migration pattern[한글]
Cloud migration pattern[한글]Seong-Bok Lee
 
Chapter 11 Practical Methodology
Chapter 11 Practical MethodologyChapter 11 Practical Methodology
Chapter 11 Practical MethodologyKyeongUkJang
 
Sqlp 스터디
Sqlp 스터디Sqlp 스터디
Sqlp 스터디lee4339
 
Requirement Management for the Digital Transformation
Requirement Management for the Digital TransformationRequirement Management for the Digital Transformation
Requirement Management for the Digital TransformationIlman Chung
 
검색엔진에 적용된 ChatGPT
검색엔진에 적용된 ChatGPT검색엔진에 적용된 ChatGPT
검색엔진에 적용된 ChatGPTTae Young Lee
 
전달교육(분석설계모델링)
전달교육(분석설계모델링)전달교육(분석설계모델링)
전달교육(분석설계모델링)gimslide
 
[파인트리오픈클래스] 엑셀을 활용한 데이터 분석과 이해
[파인트리오픈클래스] 엑셀을 활용한 데이터 분석과 이해[파인트리오픈클래스] 엑셀을 활용한 데이터 분석과 이해
[파인트리오픈클래스] 엑셀을 활용한 데이터 분석과 이해Min Kyu Lee
 
PRML Chapter 7 SVM supplementary files
PRML Chapter 7 SVM supplementary filesPRML Chapter 7 SVM supplementary files
PRML Chapter 7 SVM supplementary filesSunwoo Kim
 
Deep neural networks for You-Tube recommendations
Deep neural networks for You-Tube recommendationsDeep neural networks for You-Tube recommendations
Deep neural networks for You-Tube recommendationsseungwoo kim
 
창발 세미나 - 머신러닝과 소프트웨어 개발
창발 세미나 - 머신러닝과 소프트웨어 개발창발 세미나 - 머신러닝과 소프트웨어 개발
창발 세미나 - 머신러닝과 소프트웨어 개발Sang-Min Park
 
전사 데이터 관리 반드시 피해야 할 7가지 실수
전사 데이터 관리 반드시 피해야 할 7가지 실수전사 데이터 관리 반드시 피해야 할 7가지 실수
전사 데이터 관리 반드시 피해야 할 7가지 실수Devgear
 
추천시스템 구축을 위한 빅데이터 분석기법과 사례
추천시스템 구축을 위한 빅데이터 분석기법과 사례추천시스템 구축을 위한 빅데이터 분석기법과 사례
추천시스템 구축을 위한 빅데이터 분석기법과 사례HELENA LEE
 

Semelhante a 11.분석패턴 (20)

11장. 분석 패턴의 적용
11장. 분석 패턴의 적용11장. 분석 패턴의 적용
11장. 분석 패턴의 적용
 
분석과 설계
분석과 설계분석과 설계
분석과 설계
 
개발자가 이해하는 분석
개발자가 이해하는 분석개발자가 이해하는 분석
개발자가 이해하는 분석
 
Recommendation System History
Recommendation System HistoryRecommendation System History
Recommendation System History
 
Design Pattern Introduction
Design Pattern IntroductionDesign Pattern Introduction
Design Pattern Introduction
 
실용주의 아키텍트
실용주의 아키텍트실용주의 아키텍트
실용주의 아키텍트
 
보고서 작성 원리 : 실패와 성공 사례 비교
보고서 작성 원리 : 실패와 성공 사례 비교보고서 작성 원리 : 실패와 성공 사례 비교
보고서 작성 원리 : 실패와 성공 사례 비교
 
20061130 Business Model의 이해와 활용(2)
20061130 Business Model의 이해와 활용(2)20061130 Business Model의 이해와 활용(2)
20061130 Business Model의 이해와 활용(2)
 
Cloud migration pattern[한글]
Cloud migration pattern[한글]Cloud migration pattern[한글]
Cloud migration pattern[한글]
 
Chapter 11 Practical Methodology
Chapter 11 Practical MethodologyChapter 11 Practical Methodology
Chapter 11 Practical Methodology
 
Sqlp 스터디
Sqlp 스터디Sqlp 스터디
Sqlp 스터디
 
Requirement Management for the Digital Transformation
Requirement Management for the Digital TransformationRequirement Management for the Digital Transformation
Requirement Management for the Digital Transformation
 
검색엔진에 적용된 ChatGPT
검색엔진에 적용된 ChatGPT검색엔진에 적용된 ChatGPT
검색엔진에 적용된 ChatGPT
 
전달교육(분석설계모델링)
전달교육(분석설계모델링)전달교육(분석설계모델링)
전달교육(분석설계모델링)
 
[파인트리오픈클래스] 엑셀을 활용한 데이터 분석과 이해
[파인트리오픈클래스] 엑셀을 활용한 데이터 분석과 이해[파인트리오픈클래스] 엑셀을 활용한 데이터 분석과 이해
[파인트리오픈클래스] 엑셀을 활용한 데이터 분석과 이해
 
PRML Chapter 7 SVM supplementary files
PRML Chapter 7 SVM supplementary filesPRML Chapter 7 SVM supplementary files
PRML Chapter 7 SVM supplementary files
 
Deep neural networks for You-Tube recommendations
Deep neural networks for You-Tube recommendationsDeep neural networks for You-Tube recommendations
Deep neural networks for You-Tube recommendations
 
창발 세미나 - 머신러닝과 소프트웨어 개발
창발 세미나 - 머신러닝과 소프트웨어 개발창발 세미나 - 머신러닝과 소프트웨어 개발
창발 세미나 - 머신러닝과 소프트웨어 개발
 
전사 데이터 관리 반드시 피해야 할 7가지 실수
전사 데이터 관리 반드시 피해야 할 7가지 실수전사 데이터 관리 반드시 피해야 할 7가지 실수
전사 데이터 관리 반드시 피해야 할 7가지 실수
 
추천시스템 구축을 위한 빅데이터 분석기법과 사례
추천시스템 구축을 위한 빅데이터 분석기법과 사례추천시스템 구축을 위한 빅데이터 분석기법과 사례
추천시스템 구축을 위한 빅데이터 분석기법과 사례
 

11.분석패턴

  • 1. 11. 분석 패턴의 적용 박종석 아꿈사
  • 2. 목적 분석 패턴의 목록을 만드는 것 (X) 예제에 사용된 패턴을 완전하게 설명 하려는 것 (X) 도메인 주도 설계 과정과 분석 패턴을 함께 통합하는 방법을 설명하는 것 (0)
  • 3. 분석 패턴 : 재사용 가능한 객체 모델 어떻게 모델링을 해야 하는지 그 기법, 또는 절차를 설명하기 보다, 모델링을 한 결과인 모델 그 자체에집중
  • 4. 책의 구조 : First section Analysis pattern Conceptual business model pattern provide key abstractions from domains such as trading, measurement, accounting, and organizational relationships represent the way people think about the business, rather than the way a computer system is designed
  • 5. 책의 구조 : Second section Support patterns how analysis patterns fit into an information systems architecture how the constructs of conceptual models turn into software interfaces and implementations
  • 6. 디자인 패턴과 분석 패턴 각 디자인 패턴은 기존환경내에서 반복적으로 일어나는 문제들을 설명한 후, 그 문제들에 대한 해법의 핵심을설명해 줍니다. 똑같은 방법으로 두 번 하지 않고 이 해법을 100만번 이상 재사용할 수 있도록 말이죠 – 디자인 패턴 (크리스토퍼알렉산더) 분석 패턴은 업무 모델링 과정에서 발견되는 공통적인 구조를 표현하는 개념의 집합이다. 분석 패턴은 단 하나의 도메인에 대해서만 적절할 수도 있고 여러 도메인에 걸쳐 적용이 가능할 수도 있다. 디자인 패턴은 추상적이고 분석 패턴은 구체적이다.
  • 7. 디자인 패턴에는 없는 분석 패턴의 장점 파악하기 힘든 도메인 분석의 출발점, 지침서, 깔끔하게 추상화된 어휘집 물론 정답은 아니다.. 하지만 훌륭한 출발점이 된다. 구현할 때 고려해야 할 영향력에 대한 지침을 제공 실제 경험을 바탕으로 실용적인 지침 … 이 작업은 시스템을 다시 컴파일하거나 빌드하지 않고도 시스템이 가동하는 중에 수행할 수 있다. … 필요한 상황을 피할 수 없는 경우도 있겠지만 그런 일은 드물게 발생할 것이다. 모델 선택의 배경이 된 논리와 그에 따르는 영향력까지 제공 가장 중요하고 어려운 결정 사항에 집중 어떤 것을 선택해야 하는지와 그 대안을 제시 하부 활동의 영향력을 예측할 수 있게 만들어 줌
  • 8. 분석 패턴이 없다면? 1 chaper지식 탐구 참고
  • 9. 예제 1: 계좌의 이자 수익 분석패턴과 비슷한 도메인에 해당하는 모델을 적용한 사례
  • 10. 그림 11-1 : 초기 클래스 다이어그램 이자(interest)와 수수료(fee)로 Asset이 이루어짐 각각은 그 내역(History)를 가짐
  • 11. 그림 11-2: 기본적인 회계 모델 값을 추가 : Account에 양의 Entry를 삽입 값을 뺌 : Account에 음의 Entry를 삽입 변경내역 관리를 위해 Entry를 삭제하지 않는다. 잔액은 Entry를 통해 계산
  • 12. 그림 11-3: 거래 모델 보존(Conservation)을 위해 Transaction 도입 하나의 Account에서 다른 Account로 돈이 이동 Transaction은 2개의 Entry를 동시에 생성한다. (음&양)  총 양은 보존된다.
  • 13. 그림 11-4: 새로운 모델 제안 수수료(fee) 내역 관리를 위해 Fee Account와 Entry도입 이자(interest) 내역 관리를 위해 Interest Account와 Entry도입 거래모델에서처럼 2개의 Entry와 Transaction을 도입  원래의 의도와 맞지 않음, 원래 의도는 상이한 Account간의  Entry이동을 위한 것
  • 14. 그림 11-5: 발생이 상환에서 분리돼 있는 원래의 클래스 다이어그램 원래의 다이어그램이 오히려 해당 도메인을 더 잘 표현하고 있다.  분석 패턴이 정답이 아니다.
  • 15. 그림 11-6: Transaction을 제거한 계정 기반 다이어그램 그대로 따라 하지 말고 핵심아이디어를 소화해서 적용해야 한다.
  • 16. 그림 11-7: 구현 후의 클래스 다이어그램 구현 이슈 때문에 모델이 변경됨 Fee Entry와 Interest Entry는 통합되지 못함 Fee Calculator와 Interest Calculator는 SIDE-EFFECT-FREEFUNCTION으로 작성  가장 복잡한 부분을 분석하고 테스트하기 쉽게 하기 위해  이들 내부에서 유지하던 Entry가 Asset으로 옮겨감
  • 17. 예제 2: 야간 배치 프로그램에 대한 통찰력 분석패턴의 도메인과 그다지 상관없어 보이는 곳에 분석패턴을 적용한 사례
  • 18. 야간 배치 작업 기존엔 스크립트 코드 내에 도메인 로직이 간접적으로 포함돼 있었고, 시감이 흐르면서 점점 더 복잡해 짐 배치 로직= 객체로 표현하기에 부적절한 프로시저 야간 배치 프로그램과 연동하도록 새로운 설계를 개선해야 하는 개발자는 배치의 작동 방식과 분석 패턴에 포함돼 있는 일부 개념간의 연관성을 인식하기 시작했다.
  • 19. 그림 11-8: 기본 기입 규칙(Posting Rule)을 표현하는 클래스 다이어그램 새로운 Entry가 입력 계정에 추가되면 기입 규칙이 실행된다. 기입 규칙은 계산 Method를 사용해서 새로운 Entry를 생성하고 Account에 삽입 봉급 Account라면 Entry가 추가될때마다 30%의 세금 계산 Posting Rule이 수행 수행결과 생성된 Entry를 원천징수세액 Account에 삽입 정확히 개념이 딱 맞아 떨어지는 것은 아니지만, 각 Entry에 적용될 새로운작업을 Triggering 한다는 개념이 비슷하다. 규칙을 객체화 하여 관리하면, 상호 연관된 규칙 때문에 뒤죽박죽 되지 않는다.
  • 20. 기입 규칙 수행 시기 적극적인 실행 Account 기반 실행 Posting-Rule 기반 실행 Posting Rule을 실행하는 외부 에이전트에 의해 작업이 수행됨 야간 배치 작업에서 이용할 수 있음!
  • 21. 그림 11-9: 배치에 Posting Rule을 적용한 화면 배치 스크립트가 posting rule을 수행 Posting rule은 도메인의 지식을 필요로 하기 때문에 도메인 영역으로…  복잡성은 도메인 계층 내부로, 배치 스크립트는 심플해짐  도메인에 추가된 복잡성은 모델을 좀더 추상적이고 명확하게 함
  • 22. 그림 11-10: Posing Rule이 포함된 클래스 다이어그램 분석 패턴에서는 Account와 Posting Rule을 직접 연결 우리 시스템에서의 Asset객체는 개별 Account의 내용을 알고 있기 때문에 어떤 Posting Rule을 적용해야 할지 알고 있다.  즉, Asset이 Posting Rule을 호출하는 형태여야 한다.  배치가 Asset을 접근하는 형태이어야 한다.
  • 23. 그림 11-11: 규칙 실행을 보여주는 시퀀스 다이어그램
  • 24. 분석 패턴 적용 시 유의점 패턴의 외견상의 형태는 변경해도 무방하지만 패턴이 의미하는 기본적인 개념은 유지
  • 25. … 마지막으로 우리 도메인이 분석 패턴에 있다면? 당신은 행운아! 우리 도메인이 분석 패턴에 없다면? 자신만의 분석 패턴을 만들고 발전 시키자!
  • 26. Q&A