본문 바로가기

IT 초보코딩의 세계/취미 코딩16

[Micro Service] Micro Service 상세 설계(도메인 모델링, 헥사고날 구조, 엔티티, Value object, 표준타입, 애그리거트, 도메인 서비스 및 이벤트) 2장 ◆ 도메인 모델링 ▶ 마이크로서비스의 내부 구조는 폴리글랏하게 접근할 수 있는데 폴리글랏하다 라는 의미는 애플리케이션을 구현하는 언어나 데이터를 저장하는 저장소를 서비스마다 다양하게 활용할 수 있다는 의미인 동시에 내부 아키텍처 구조를 서비스 특성에 맞게 다양하게 수립할 수 있다는 의미이기도 하므로 서비스의 내부 영역의 구조를 도메인 모델 중심으로 만들 수도 있고 트랜잭션 스크립트 형태로 만들 수도 있음 ▶ 도메인 모델 형태의 헥사고날 구조 ▶ 단순한 로직인 경우에는 트랜잭션 스크립트 구조로 만들어도 무방하지만 비즈니스가 복잡해질수록 비즈니스 개념들을 잘 구조화할 수 있는 도메인 모델 구조가 효과적 ▶ 도메인 모델 구조는 복잡함을 다루어 쉽게 표현할 수 있는 구조를 제공하기 때문인데 이러한 내부 구조를 .. 2023. 5. 4.
[Micro Service] Micro Service 설계(이벤트 스토밍 워크숍 진행, 엑터 도출, 애그리거트 정의, 바운디드 컨텍스트, 컨텍스트 매핑) 2장 ◆ 이벤트 스토밍을 통한 마이크로서비스 도출 ▶ 이벤트 스토밍 워크숍 진행 ● 워크숍 진행 ⊙ 액터 도출 → 커맨드까지 찾고 나면 커맨드를 실행하는 액터(Actor)를 도출하는데 액터는 사용자 또는 조직, 역할자를 의미 → 액터는 추상적으로 식별하지 않고 비즈니스를 수행하는 구체적인 역할을 고려해서 도출 → 단순히 모든 업무에서 보편적으로 사용되는 회원이나 관리자로 정의하지 않고 특정 비즈니스를 실제로 수행하는 판매자, 구매자, 상품 관리자, 배송 관리자, 시스템 관리자와 같이 명확한 역할자를 도출하려고 노력해야 함 → 액터를 도출하면서 이전에 식별하지 못했던 커맨드와 도메인 이벤트가 추가로 도출될 수 있는데 이 경우에도 추가로 식별되는 사항들을 모델링 공간에 붙이면 됨 → 액터는 노란색의 작은 포스트잇.. 2023. 5. 2.
[Micro Service] Micro Service 설계(이벤트 스토밍 워크숍 진행, 도메인 이벤트 찾기, 외부 시스템 도출, 커맨드 도출, 핫스폿 도출) 1장 ◆ 이벤트 스토밍을 통한 마이크로서비스 도출 ▶ 마이크로서비스 간의 의존성을 줄이기 위해서는 아키텍처 영역에서 언급했다시피 서비스 간 비동기 메시지 기반 도메인 이벤트를 활용하는 것이 중요한데 이러한 도메인 이벤트를 통한 의존 관계를 식별하는 방법이 쉽지 않은데 이를 위해 알베르토 브란돌리니(Alberto Brandolini)라는 이탈리아 출신의 DDD 컨설턴트가 DDD 설계를 가속화할 수 있는 이벤트 스토밍(event storming)이라는 설계 기법을 고안해 냈는데 이벤트 스토밍은 이벤트 중심으로 이해 관계자들이 모여 브레인 스토밍하는 워크숍을 의미 ▶ 이벤트 스토밍은 모든 이해 관계자가 모여 서로가 가지고 있는 각 관점을 논의하며 그 차이점을 이해하고 공유할 수 있다는 점에서 기존 방법론에서 장기간.. 2023. 4. 28.
[Micro Service] Micro Service 설계(컨텍스트 맵핑, 공유 커널, 소비자와 공급장, 준수자, 충돌 방지 계층, 공개 호스트 서비스, 컨텍스트 맵) 2장 ◆ DDD에서의 설계 ▶ 유비쿼터스 언어와 도메인 모델, 바운디드 컨텍스트 ● 유비쿼터스 언어는 특정 도메인의 업무 개념을 표현하는 언어 ● 결제 도메인에서의 고객과 배송 도메인에서 고객은 의미가 다른데 결제 도메인에서는 구매하기 위해 상품을 결제하는 역할에서의 고객 즉 결제를 위한 신용카드 정보나 계좌 정보를 가진 결제자를 의미하고 배송 도메인에서는 구매한 상품을 배송받는 역할 즉 상품을 받을 주소와 우편번호, 전화번호를 소유한 수취자를 의미하기 때문에 이러한 개념을 고객으로 포괄적으로 표현해서는 안됨 ● 명확하게 결제 서비스에서는 결제자의 개념으로 배송 서비스에서는 수취자의 개념으로 모델링해야 하는데 그래야 결제 서비스나 배송 서비스를 담당하는 팀의 의사소통이 명확해짐 ● 도메인에 특화된 개념이 유비.. 2023. 4. 27.