[DevOn MDD] 컴포넌트 종류

junghan·2023년 10월 3일
1

MDD

목록 보기
3/6
post-thumbnail

MDD를 사용하여 소프트웨어를 구현하기전, 관점에 따른 용어를 정리해보려합니다.

비즈니스 플로우

거래: 사용자의 요청 이벤트가 시스템에 전달되는 행위
서비스: 사용자가 요청한 거래가 시스템에 들어와서 하는 일
기능: 어플리케이션 내에 있는 모든 프로그램의 Function



컴포넌트 논리 아키텍쳐

프로세스 비즈니스 컴포넌트(PBI/PBC)

  • 사용자에게 결과를 제공하기 위한 완전한 비즈니스 처리 흐름을 가지는 컴포넌트
  • 서비스를 관리하는 역할
  • 다른 컴포넌트를 조합하는 상호작용을 통해 설계합니다.

공통 프로세스 비즈니스 컴포넌트(CPBI/CPBC)

  • 업무 내에서 공통적으로 사용하는 비즈니스 처리 흐름을 구현하기 위해 설계
  • 재사용성을 고려하여 식별
  • 업무에서 동일한 비즈니스 처리 흐름이 반복적으로 사용될 때, 이를 공통비즈니스로써 식별
    *단순한 공통 기능(영업일자를 계산한다든가, 숫자를 포맷하는 등 업무 로직과 상관없는 단순 기능)은 컴포넌트가 아닌, 유틸(Util) 클래스라는 것을 통해서 제공

엔터티 비즈니스 컴포넌트(EBI/EBC)

  • 비즈니스 정보를 관리하는 컴포넌트
  • 비즈니스 정보를 데이터베이스에 저장하거나 수정, 삭제, 조회하는 작업을 처리
  • 인터페이스 책임 모델링을 통하여 식별

연동 비즈니스 컴포넌트(IBI/IBC)

  • 자신의 업무 기능을 타 업무에게 제공하기 위한 컴포넌트
  • 타 업무 구분의 컴포넌트 상호작용 결과는 해당 업무의 연동 비즈니스 컴포넌트를 통해서 제공 받아야함
  • 업무 구분마다 최소한 하나의 연동 컴포넌트 식별


컴포넌트 상호 의존 관계

상호 의존 관계 방향

  • PBI -> CPBI
    PBI -> EBI
    PBI -> util
  • CPBI -> CPBI
    CPBI -> EBI
    CPBI -> util
  • EBI -> util

DevOn Enterprise Framework 특성에 따라 PBI 서비스 연동 가능


IBI의 연동 특성

IBI는 업무 도메인 간 분리를 위해 프록시와 같은 역할을 하여 직접 호출 방법을 대신하여 연결이 가능하도록 도와주는 인터페이스입니다.

장점

  • 시스템을 물리적으로 분리하고 싶은 경우에 IBI로 되어있기 때문에 접근 통제가 가능해집니다.
  • 업무 도메인 간의 커플링을 떨어뜨려 모듈 별 독립성을 높여줌


프로세스 컴포넌트 식별


프로세스 비즈니스 인터페이스 식별 (PBI)

프로세스 비즈니스 인터페이스, PBI는 비즈니스 프로세스의 처리 흐름을 제공하는 컴포넌트의 인터페이스를 식별합니다.

  • 명명규칙 : _ _ _ _ + Pbi
  • 스테레오타입 : << pbi >>
  • 작성 위치 : 프로세스컴포넌트 패키지 아래에 위치합니다.

프로세스 비즈니스 컴포넌트 식별(PBC)

프로세스 비즈니스 컴포넌트, PBC는 PBI마다 하나의 구현 컴포넌트를 식별합니다.

  • 명명규칙 : _ _ _ _ + Pbc
  • 스테레오타입 : << pbc >>
  • 작성 위치 : 프로세스컴포넌트 패키지 아래에 위치합니다. ( pbi 위치와 동일 )

컴포넌트 명세

컴포넌트는 인터페이스를 구현한 구현체이므로 PBC를 식별한 후, 컴포넌트 명세를 통하여 PBI와의 실현 관계를 작성합니다.
컴포넌트 명세는 클래스 다이어그램을 통해 작성하는데, 이것은 인터페이스와 컴포넌트의 관계를 정의해 주는 것입니다.



엔터티 컴포넌트 식별

엔터티 비즈니스 인터페이스(EBI)

엔터티 비즈니스 인터페이스, EBI는 비즈니스 정보를 DB에 저장하거나, 수정, 삭제, 조회하는 작업을 처리하는 컴포넌트의 인터페이스를 말합니다. 화면으로부터 프로세스 컴포넌트, 공통 프로세스 컴포넌트의 인터페이스와 식별 방법이 다르고, 인터페이스 책임 모델을 통해서 핵심타입을 식별한 후 이 핵심타입을 기준으로 하나씩 EBI를 식별합니다.

  • 명명규칙 : 핵심타입명 + Ebi
  • 스테레오타입: << ebi >>
  • 작성 위치: 엔터티 컴포넌트 패키지 아래에 위치


엔터티 비즈니스 컴포넌트 식별(EBC)

EBI마다 하나의 구현 컴포넌트를 식별합니다.

  • 명명규칙: 핵심타입명 + Ebc
  • 스테레오타입: << ebc >>
  • 작성 위치 : 엔터티 컴포넌트 패키지 아래에 위치 (EBI 위치와 동일)


DAO(Data Access Object) 식별

  • 물리적으로 테이블 엑세스를 담당하고 있는 쿼리(Query)의 집합입니다
  • 일반적으로 엔터티 컴포넌트의 관리군에 포함되는 테이블마다 하나의 DAO를 식별
    • 만약, 어떤 엔터티 비즈니스 컴포넌트가 3개의 테이블을 관리하고 있으면, 테이블당 하나의 DAO를 생성하여 3개의 DAO가 식별됩니다.
    • DAO의 식별방법에 있어서, 테이블마다 하나의 DAO를 식별하는 방법이 아닌, 엔터티 컴포넌트가 관리하는 테이블들에 대하여 하나의 DAO를 식별하는 방법도 가능합니다. 이는 프로젝트의 특성에 따라 결정될 부분입니다.
  • EBI는 DAO의 오퍼레이션들과 상호작용을 통해 데이터를 처리하고 있는 것입니다.
  • 명명규칙 : 의미있는 명 + Dao (엔터티명과 같이 접근하는 대상을 나타내는 의미있는 명)
  • 스테레오타입: << dao >>
  • 작성 위치 : 엔터티 컴포넌트 패키지 아래에 위치 (EBI 위치와 동일)
    • 이 DAO로 인해 엔터티 컴포넌트의 패키지 구조는 PBI나 CPBI와는 조금 다른 구조를 갖습니다.

다른 컴포넌트와 마찬가지로 EBC, DAO를 식별한 후, EBI와의 실현 관계를 보여주는 컴포넌트 명세 클래스 다이어그램을 작성합니다.



아키텍쳐 유형별 샘플

  1. 서비스
    • 사용자 요청에 따른 기능
  2. 배치
    • 스케쥴링에 따라 지속적으로 요청되는 기능
  3. 센터컷
    • 하나의 온라인 서비스를 일괄로 처리
    • ex) 1,000,000건 데이터를 벌크로 묶어서 처리
  4. 후행
    • Long Transaction 기반 온라인 서비스의 본 처리가 끝난 뒤, 남는 서비스를 따로 처리하는 작업
    • 온라인 Framework이 가지고 있는 메커니즘을 다 사용 가능
    • ex) 지연 이체, 지연 입금, 지연 출금
  5. 데몬잡
    • 데몬이 떠있고 특별한 조건에서 발동하는 간단한 작업 처리


출처:
https://wikidocs.net/130219
https://www.youtube.com/watch?v=Q70A5lwVWF8&t=12s

profile
42seoul, blockchain, web 3.0

0개의 댓글