SlideShare uma empresa Scribd logo
1 de 13
Baixar para ler offline
분석 패턴의 적용

            박기덕
목차
1. 분석 패턴 이란?
2. 예제 1 - 계좌의 이익 수익
3. 분석패턴 1 - 회계 모델
4. 리팩토링 1 - 계좌의 이익 수익
5. 분석패턴 2 - 기입 규칙
6. 예제 2 - 야간 배치 프로그램
7. 리팩토링 2 - 야간 배치 프로그램
8. 분석 패턴 정의
분석 패턴 이란?

● 과거에 경험했던 시행 착오중의 일부가 패턴 형식으로
  기록되고 공유되어 축적된 경험을 다른 사람들이 활용할
  수 있도록 제시

● 업무 모델링 과정에서 발견되는 공통적인 구조를 표현하
  는 개념의 집합

● 기술적인 해법은 아니며, 유용한 지침서
예제 1 - 계좌의 이자 수익




●   Lone과 Interest-Bearing asset을 관리하는 애플리케이션.
    발생한 Interest와 Fee를 계산하고 차용인이 변제한 Payment를 추적

●   야간 배치 프로세스는 계산 결과를 레거시 회계 시스템으로 전달하며, 이때
    각 금액을 어느 Ledger에 기록해야 하는지도 함께 전달
분석 패턴 1 - 회계 모델



                  ●   회계의 기본 원리는 보존
                  ●   " 모든 대변에는 차변이 존
                      재한다."
리팩토링 1 - 계좌의 이자 수익

                     ●   Transaction 이 분석
                         패턴과 현재의 프로젝
                         트와 동일한 개념인
                         가??
                     ●   새로운 보편언어
                         Accrual 발견 !!




 ●   Account 객체의 사
     용 여부??
 ●   Account에서 이자
     발생, 상환, 잔액을
     모두 확인 할 수 있
     어야 함 !!
리팩토링 1을 통해 변경된 사항
● 도메인 검토 후 Payment와 Accrual이 미묘하게 다른 책
  임 이라는 사실 파악

● 두 가지 모두 중요한 개념을 표현하므로 Entry를 상속하
  는 하위 클래스 추가

● Fee와 Interest에 의해 발생한 Entry의 경우 개념상으로
  행위의 차이가 없으므로 적절하게 Account에 추가

● 수수료 Entry와 이자 Entry의 통합을 위한 추상화 포기
  (하위 객체 생성)
리팩토링 1 - 계좌의 이자 수익
분석 패턴 2 - 기입 규칙




● 한 계정에서 수입을 추적하는 동안 다른 계정에서 수입
  에 부과되는 예상 세금을 추적할때, 자동으로 세금을 계
  산 하여야 한다면 세금 계정과 수입 계정이 강하게 결합
  될 수 밖에 없으므로, 새로운 객체를 추가해 규칙을 명확
  하게 만든다.
분석 패턴 2 - 기입 규칙
● 의존성 설계 시 가장 까다로운 부분인 갱신의 시기와 제
  어 방식

 ○   "적극적인 실행" 방식은 Account에 Entry가 삽입될 때마다 곧바로
     Posting Rule을 실행하므로 모든 갱신 작업이 즉시 발생 (가장 명확 하
     지만 비효율적)
 ○   "Account 기반 실행" 방식은 특정 시점에 Account로 메시지가 전달되
     고, Posting Rule이 실행되어 마지막으로 실행된 후에 삽임된 모든
     Entry 처리 (처리 시기 연기 가능)
 ○   "Posting-Rule 기반 실행" 방식은 Posting Rule을 실행하는 외부 에이전
     트에서 의해 시작 (최종 실행 시점 이후에 입력 계정에 추가된 모든
     Entry를 찾아야 하는 책임을 짐)
예제 2 - 야간 배치 프로그램
                                   ●   Posting-Rule 기반 실행
                                       방식 사용

                                   ●   Posting Rule은 Account
                                       의 속성을 토대로 원장을
                                       선택




●   Posting Rule이 기입 될 원장명(거래 내역을 적은 명세서)을 알고 있다면
    Method가 필요 없음

●   분석 패턴에서는 Account와 Posting Rule이 직접 연결 되지만 현재 프로젝
    트에서는 Account 정보를 알고 있는 Asset와 연결
리팩토링 2 - 야간 배치 프로그램
분석 패턴 정의

● 운 좋게 적용 가능한 분석 패턴을 찾아도 현재의 특정 요
 구사항에 완벽하게 들어 맞는 경우는 거의 없다.

● 하지만 도메인을 파악하는 과정의 훌륭한 길잡이 역활을
 수행하며, 깔끔하게 추상화된 어휘집을 제공

● 분석 패턴을 적용 시 외견상의 형태는 변경해도 무방하
 나 기본적인 개념은 변경하지 말아야 한다.
 ○ 패턴에는 문제의 발생을 미연에 방지할 수 있는 지식
   을 포함 하고 있기 때문
 ○ 널리 이해되거나 적어도 잘 설명된 용어를 포함시킴
   으로 보편언어의 품질을 향상

Mais conteúdo relacionado

Destaque

멘탈모델 1-3장 자료
멘탈모델 1-3장 자료멘탈모델 1-3장 자료
멘탈모델 1-3장 자료beom kyun choi
 
[멘토링] 경찰행정학과 소개 PPT
[멘토링] 경찰행정학과 소개 PPT[멘토링] 경찰행정학과 소개 PPT
[멘토링] 경찰행정학과 소개 PPTInhye Lee
 
triple EX _ 지하철 관찰 및 아이데이션
triple EX _ 지하철 관찰 및 아이데이션triple EX _ 지하철 관찰 및 아이데이션
triple EX _ 지하철 관찰 및 아이데이션Hyunjin Yoo
 
기업위기요소영역
기업위기요소영역기업위기요소영역
기업위기요소영역James Chung
 
Toshiba Accounting Scandal
Toshiba Accounting ScandalToshiba Accounting Scandal
Toshiba Accounting ScandalLexy Parsons
 
[NDC 2009] 행동 트리로 구현하는 인공지능
[NDC 2009] 행동 트리로 구현하는 인공지능[NDC 2009] 행동 트리로 구현하는 인공지능
[NDC 2009] 행동 트리로 구현하는 인공지능Yongha Kim
 

Destaque (7)

멘탈모델 1-3장 자료
멘탈모델 1-3장 자료멘탈모델 1-3장 자료
멘탈모델 1-3장 자료
 
[멘토링] 경찰행정학과 소개 PPT
[멘토링] 경찰행정학과 소개 PPT[멘토링] 경찰행정학과 소개 PPT
[멘토링] 경찰행정학과 소개 PPT
 
triple EX _ 지하철 관찰 및 아이데이션
triple EX _ 지하철 관찰 및 아이데이션triple EX _ 지하철 관찰 및 아이데이션
triple EX _ 지하철 관찰 및 아이데이션
 
기업위기요소영역
기업위기요소영역기업위기요소영역
기업위기요소영역
 
The Bible of IoTs
The Bible of IoTsThe Bible of IoTs
The Bible of IoTs
 
Toshiba Accounting Scandal
Toshiba Accounting ScandalToshiba Accounting Scandal
Toshiba Accounting Scandal
 
[NDC 2009] 행동 트리로 구현하는 인공지능
[NDC 2009] 행동 트리로 구현하는 인공지능[NDC 2009] 행동 트리로 구현하는 인공지능
[NDC 2009] 행동 트리로 구현하는 인공지능
 

Semelhante a 11장. 분석 패턴의 적용

11.분석패턴
11.분석패턴11.분석패턴
11.분석패턴종석 박
 
분석과 설계
분석과 설계분석과 설계
분석과 설계Haeil Yi
 
PYCON 2017 발표자료 한성준
PYCON 2017 발표자료 한성준PYCON 2017 발표자료 한성준
PYCON 2017 발표자료 한성준sungjun han
 
NextGen Pos System 프로젝트 산출물
NextGen Pos System 프로젝트 산출물 NextGen Pos System 프로젝트 산출물
NextGen Pos System 프로젝트 산출물 은지 박
 
Approach for Smart Factory
Approach for Smart Factory Approach for Smart Factory
Approach for Smart Factory Kim Seungtaek
 
실용주의 아키텍트
실용주의 아키텍트실용주의 아키텍트
실용주의 아키텍트Haeil Yi
 
C++ 코딩의 정석.pptx
C++ 코딩의 정석.pptxC++ 코딩의 정석.pptx
C++ 코딩의 정석.pptxsung suk seo
 
GS리테일 통합 물류시스템 구축 프로젝트 제안서
GS리테일 통합 물류시스템 구축 프로젝트 제안서GS리테일 통합 물류시스템 구축 프로젝트 제안서
GS리테일 통합 물류시스템 구축 프로젝트 제안서Hyeonji Jeong
 
Process Oriented Architecture
Process Oriented ArchitectureProcess Oriented Architecture
Process Oriented ArchitectureuEngine Solutions
 
JIRA 업무 생산성 향상 및 프로젝트 관리
JIRA 업무 생산성 향상 및 프로젝트 관리JIRA 업무 생산성 향상 및 프로젝트 관리
JIRA 업무 생산성 향상 및 프로젝트 관리KwangSeob Jeong
 
[자바카페] 람다 일괄처리 계층
[자바카페] 람다 일괄처리 계층[자바카페] 람다 일괄처리 계층
[자바카페] 람다 일괄처리 계층용호 최
 
11장 시스템
11장 시스템11장 시스템
11장 시스템kidoki
 
Business environmentchangemonitor 애플트리랩
Business environmentchangemonitor 애플트리랩Business environmentchangemonitor 애플트리랩
Business environmentchangemonitor 애플트리랩JaeWoo Wie
 
스크럼 101
스크럼 101스크럼 101
스크럼 101Daniel Lim
 
비즈니스운영관리
비즈니스운영관리비즈니스운영관리
비즈니스운영관리Minsuk Chang
 
작업준비시간과_납기지연시간을_최소화하기_위한_딥러닝_기반의_일정계획수립_모델_사사수정 (1).pptx
작업준비시간과_납기지연시간을_최소화하기_위한_딥러닝_기반의_일정계획수립_모델_사사수정 (1).pptx작업준비시간과_납기지연시간을_최소화하기_위한_딥러닝_기반의_일정계획수립_모델_사사수정 (1).pptx
작업준비시간과_납기지연시간을_최소화하기_위한_딥러닝_기반의_일정계획수립_모델_사사수정 (1).pptxssuser0e717a
 
차정민 (소프트웨어 엔지니어) 이력서 + 경력기술서
차정민 (소프트웨어 엔지니어) 이력서 + 경력기술서차정민 (소프트웨어 엔지니어) 이력서 + 경력기술서
차정민 (소프트웨어 엔지니어) 이력서 + 경력기술서Jeongmin Cha
 

Semelhante a 11장. 분석 패턴의 적용 (19)

11.분석패턴
11.분석패턴11.분석패턴
11.분석패턴
 
분석과 설계
분석과 설계분석과 설계
분석과 설계
 
PYCON 2017 발표자료 한성준
PYCON 2017 발표자료 한성준PYCON 2017 발표자료 한성준
PYCON 2017 발표자료 한성준
 
NextGen Pos System 프로젝트 산출물
NextGen Pos System 프로젝트 산출물 NextGen Pos System 프로젝트 산출물
NextGen Pos System 프로젝트 산출물
 
Approach for Smart Factory
Approach for Smart Factory Approach for Smart Factory
Approach for Smart Factory
 
실용주의 아키텍트
실용주의 아키텍트실용주의 아키텍트
실용주의 아키텍트
 
C++ 코딩의 정석.pptx
C++ 코딩의 정석.pptxC++ 코딩의 정석.pptx
C++ 코딩의 정석.pptx
 
GS리테일 통합 물류시스템 구축 프로젝트 제안서
GS리테일 통합 물류시스템 구축 프로젝트 제안서GS리테일 통합 물류시스템 구축 프로젝트 제안서
GS리테일 통합 물류시스템 구축 프로젝트 제안서
 
Process Oriented Architecture
Process Oriented ArchitectureProcess Oriented Architecture
Process Oriented Architecture
 
JIRA 업무 생산성 향상 및 프로젝트 관리
JIRA 업무 생산성 향상 및 프로젝트 관리JIRA 업무 생산성 향상 및 프로젝트 관리
JIRA 업무 생산성 향상 및 프로젝트 관리
 
[자바카페] 람다 일괄처리 계층
[자바카페] 람다 일괄처리 계층[자바카페] 람다 일괄처리 계층
[자바카페] 람다 일괄처리 계층
 
11장 시스템
11장 시스템11장 시스템
11장 시스템
 
Business environmentchangemonitor 애플트리랩
Business environmentchangemonitor 애플트리랩Business environmentchangemonitor 애플트리랩
Business environmentchangemonitor 애플트리랩
 
포트윈소개서
포트윈소개서 포트윈소개서
포트윈소개서
 
스크럼 101
스크럼 101스크럼 101
스크럼 101
 
OAM_실물자산관리
OAM_실물자산관리 OAM_실물자산관리
OAM_실물자산관리
 
비즈니스운영관리
비즈니스운영관리비즈니스운영관리
비즈니스운영관리
 
작업준비시간과_납기지연시간을_최소화하기_위한_딥러닝_기반의_일정계획수립_모델_사사수정 (1).pptx
작업준비시간과_납기지연시간을_최소화하기_위한_딥러닝_기반의_일정계획수립_모델_사사수정 (1).pptx작업준비시간과_납기지연시간을_최소화하기_위한_딥러닝_기반의_일정계획수립_모델_사사수정 (1).pptx
작업준비시간과_납기지연시간을_최소화하기_위한_딥러닝_기반의_일정계획수립_모델_사사수정 (1).pptx
 
차정민 (소프트웨어 엔지니어) 이력서 + 경력기술서
차정민 (소프트웨어 엔지니어) 이력서 + 경력기술서차정민 (소프트웨어 엔지니어) 이력서 + 경력기술서
차정민 (소프트웨어 엔지니어) 이력서 + 경력기술서
 

Mais de kidoki

Hadoop io
Hadoop ioHadoop io
Hadoop iokidoki
 
Chapter 14. json
Chapter 14. jsonChapter 14. json
Chapter 14. jsonkidoki
 
전문 검색 기술
전문 검색 기술전문 검색 기술
전문 검색 기술kidoki
 
Http 헤더
Http 헤더Http 헤더
Http 헤더kidoki
 
로그 수집, 집약
로그 수집, 집약로그 수집, 집약
로그 수집, 집약kidoki
 
14. no sql을 넘어
14. no sql을 넘어14. no sql을 넘어
14. no sql을 넘어kidoki
 
My sql 장애복구
My sql 장애복구My sql 장애복구
My sql 장애복구kidoki
 
9장. 문서 데이터베이스
9장. 문서 데이터베이스9장. 문서 데이터베이스
9장. 문서 데이터베이스kidoki
 
[NoSQL] 2장. 집합적 데이터 모델
[NoSQL] 2장. 집합적 데이터 모델[NoSQL] 2장. 집합적 데이터 모델
[NoSQL] 2장. 집합적 데이터 모델kidoki
 
Code chapter15
Code chapter15Code chapter15
Code chapter15kidoki
 
Code chapter5
Code chapter5Code chapter5
Code chapter5kidoki
 
Ch18. 빅리그 거물에서 선지자로
Ch18. 빅리그 거물에서 선지자로Ch18. 빅리그 거물에서 선지자로
Ch18. 빅리그 거물에서 선지자로kidoki
 
Ch.11 승진
Ch.11 승진Ch.11 승진
Ch.11 승진kidoki
 
Ch7. 소프트웨어 r&d 조직
Ch7. 소프트웨어 r&d 조직Ch7. 소프트웨어 r&d 조직
Ch7. 소프트웨어 r&d 조직kidoki
 
Ch2. 좋은 소프트웨어란
Ch2. 좋은 소프트웨어란Ch2. 좋은 소프트웨어란
Ch2. 좋은 소프트웨어란kidoki
 
2장. 의사소통과 언어 사용
2장. 의사소통과 언어 사용2장. 의사소통과 언어 사용
2장. 의사소통과 언어 사용kidoki
 
10장 클래스
10장 클래스10장 클래스
10장 클래스kidoki
 
클러스터링을 통한 패턴 추출
클러스터링을 통한 패턴 추출클러스터링을 통한 패턴 추출
클러스터링을 통한 패턴 추출kidoki
 
정규확률분포
정규확률분포정규확률분포
정규확률분포kidoki
 
Composite pattern
Composite patternComposite pattern
Composite patternkidoki
 

Mais de kidoki (20)

Hadoop io
Hadoop ioHadoop io
Hadoop io
 
Chapter 14. json
Chapter 14. jsonChapter 14. json
Chapter 14. json
 
전문 검색 기술
전문 검색 기술전문 검색 기술
전문 검색 기술
 
Http 헤더
Http 헤더Http 헤더
Http 헤더
 
로그 수집, 집약
로그 수집, 집약로그 수집, 집약
로그 수집, 집약
 
14. no sql을 넘어
14. no sql을 넘어14. no sql을 넘어
14. no sql을 넘어
 
My sql 장애복구
My sql 장애복구My sql 장애복구
My sql 장애복구
 
9장. 문서 데이터베이스
9장. 문서 데이터베이스9장. 문서 데이터베이스
9장. 문서 데이터베이스
 
[NoSQL] 2장. 집합적 데이터 모델
[NoSQL] 2장. 집합적 데이터 모델[NoSQL] 2장. 집합적 데이터 모델
[NoSQL] 2장. 집합적 데이터 모델
 
Code chapter15
Code chapter15Code chapter15
Code chapter15
 
Code chapter5
Code chapter5Code chapter5
Code chapter5
 
Ch18. 빅리그 거물에서 선지자로
Ch18. 빅리그 거물에서 선지자로Ch18. 빅리그 거물에서 선지자로
Ch18. 빅리그 거물에서 선지자로
 
Ch.11 승진
Ch.11 승진Ch.11 승진
Ch.11 승진
 
Ch7. 소프트웨어 r&d 조직
Ch7. 소프트웨어 r&d 조직Ch7. 소프트웨어 r&d 조직
Ch7. 소프트웨어 r&d 조직
 
Ch2. 좋은 소프트웨어란
Ch2. 좋은 소프트웨어란Ch2. 좋은 소프트웨어란
Ch2. 좋은 소프트웨어란
 
2장. 의사소통과 언어 사용
2장. 의사소통과 언어 사용2장. 의사소통과 언어 사용
2장. 의사소통과 언어 사용
 
10장 클래스
10장 클래스10장 클래스
10장 클래스
 
클러스터링을 통한 패턴 추출
클러스터링을 통한 패턴 추출클러스터링을 통한 패턴 추출
클러스터링을 통한 패턴 추출
 
정규확률분포
정규확률분포정규확률분포
정규확률분포
 
Composite pattern
Composite patternComposite pattern
Composite pattern
 

11장. 분석 패턴의 적용

  • 2. 목차 1. 분석 패턴 이란? 2. 예제 1 - 계좌의 이익 수익 3. 분석패턴 1 - 회계 모델 4. 리팩토링 1 - 계좌의 이익 수익 5. 분석패턴 2 - 기입 규칙 6. 예제 2 - 야간 배치 프로그램 7. 리팩토링 2 - 야간 배치 프로그램 8. 분석 패턴 정의
  • 3. 분석 패턴 이란? ● 과거에 경험했던 시행 착오중의 일부가 패턴 형식으로 기록되고 공유되어 축적된 경험을 다른 사람들이 활용할 수 있도록 제시 ● 업무 모델링 과정에서 발견되는 공통적인 구조를 표현하 는 개념의 집합 ● 기술적인 해법은 아니며, 유용한 지침서
  • 4. 예제 1 - 계좌의 이자 수익 ● Lone과 Interest-Bearing asset을 관리하는 애플리케이션. 발생한 Interest와 Fee를 계산하고 차용인이 변제한 Payment를 추적 ● 야간 배치 프로세스는 계산 결과를 레거시 회계 시스템으로 전달하며, 이때 각 금액을 어느 Ledger에 기록해야 하는지도 함께 전달
  • 5. 분석 패턴 1 - 회계 모델 ● 회계의 기본 원리는 보존 ● " 모든 대변에는 차변이 존 재한다."
  • 6. 리팩토링 1 - 계좌의 이자 수익 ● Transaction 이 분석 패턴과 현재의 프로젝 트와 동일한 개념인 가?? ● 새로운 보편언어 Accrual 발견 !! ● Account 객체의 사 용 여부?? ● Account에서 이자 발생, 상환, 잔액을 모두 확인 할 수 있 어야 함 !!
  • 7. 리팩토링 1을 통해 변경된 사항 ● 도메인 검토 후 Payment와 Accrual이 미묘하게 다른 책 임 이라는 사실 파악 ● 두 가지 모두 중요한 개념을 표현하므로 Entry를 상속하 는 하위 클래스 추가 ● Fee와 Interest에 의해 발생한 Entry의 경우 개념상으로 행위의 차이가 없으므로 적절하게 Account에 추가 ● 수수료 Entry와 이자 Entry의 통합을 위한 추상화 포기 (하위 객체 생성)
  • 8. 리팩토링 1 - 계좌의 이자 수익
  • 9. 분석 패턴 2 - 기입 규칙 ● 한 계정에서 수입을 추적하는 동안 다른 계정에서 수입 에 부과되는 예상 세금을 추적할때, 자동으로 세금을 계 산 하여야 한다면 세금 계정과 수입 계정이 강하게 결합 될 수 밖에 없으므로, 새로운 객체를 추가해 규칙을 명확 하게 만든다.
  • 10. 분석 패턴 2 - 기입 규칙 ● 의존성 설계 시 가장 까다로운 부분인 갱신의 시기와 제 어 방식 ○ "적극적인 실행" 방식은 Account에 Entry가 삽입될 때마다 곧바로 Posting Rule을 실행하므로 모든 갱신 작업이 즉시 발생 (가장 명확 하 지만 비효율적) ○ "Account 기반 실행" 방식은 특정 시점에 Account로 메시지가 전달되 고, Posting Rule이 실행되어 마지막으로 실행된 후에 삽임된 모든 Entry 처리 (처리 시기 연기 가능) ○ "Posting-Rule 기반 실행" 방식은 Posting Rule을 실행하는 외부 에이전 트에서 의해 시작 (최종 실행 시점 이후에 입력 계정에 추가된 모든 Entry를 찾아야 하는 책임을 짐)
  • 11. 예제 2 - 야간 배치 프로그램 ● Posting-Rule 기반 실행 방식 사용 ● Posting Rule은 Account 의 속성을 토대로 원장을 선택 ● Posting Rule이 기입 될 원장명(거래 내역을 적은 명세서)을 알고 있다면 Method가 필요 없음 ● 분석 패턴에서는 Account와 Posting Rule이 직접 연결 되지만 현재 프로젝 트에서는 Account 정보를 알고 있는 Asset와 연결
  • 12. 리팩토링 2 - 야간 배치 프로그램
  • 13. 분석 패턴 정의 ● 운 좋게 적용 가능한 분석 패턴을 찾아도 현재의 특정 요 구사항에 완벽하게 들어 맞는 경우는 거의 없다. ● 하지만 도메인을 파악하는 과정의 훌륭한 길잡이 역활을 수행하며, 깔끔하게 추상화된 어휘집을 제공 ● 분석 패턴을 적용 시 외견상의 형태는 변경해도 무방하 나 기본적인 개념은 변경하지 말아야 한다. ○ 패턴에는 문제의 발생을 미연에 방지할 수 있는 지식 을 포함 하고 있기 때문 ○ 널리 이해되거나 적어도 잘 설명된 용어를 포함시킴 으로 보편언어의 품질을 향상