SW/마이크로서비스

마이크로서비스 : 도메인 주도 설계 : 개념, 정의, 개요

얇은생각 2020. 5. 10. 19:30
반응형

도메인 주도 설계

가변적인 클라우드 인프라 위의 어플리케이션인 마이크로서비스는 그 아키텍처에 특히 유연성과 확장성을 강조하고 있습니다. 이벤트 주도 설계를 통해서도 살펴보았지만 서비스를 제공하는 각 서비스 간의 관계는 서비스가 독립적입니다.

대체가능하도록 느슨하고 유연하게 구조화되어 있어야 합니다. 또한 헥사고날 아키텍처를 통해 살펴본 것처럼 서비스 내부의 구조도 시스템의 유연성과 확장성을 높여야 합니다. 그러기 위해 기술과 비즈니스 로직을 분리하여 구축하는 것이 바람직합니다.

어떻게 각각의 서비스를 비즈니스 독립적으로 식별할 수 있냐는 것과 또 하나는 서비스 내부 구조화 측면에서 어떻게 기술과 독립된 비즈 모델을 잘 설계할 수 있느냐 하는 질문이 있습니다. 이러한 질문에 답을 주는 아주 유용한 도구가 있는데 바로 도메인 주도 설계입니다.

최근의 Msa 진영에서 마이크로 서비스를 설계하는 주요 기법으로 많이 논의되고 있습니다. 도메인 주도 설계에서는 크게 전략적 설계와 전술적 설계로 구분하여 설명하고 있습니다. 

 

 

이벤트 주도 설계

이벤트 주도 마이크로서비스를 구현하기 위해서는 시스템 운영 방식 및 데이터, 서비스 간의 상호작용을 잘 파악해야 합니다. 또한 비슷한 비즈니스 기능과 데이터가 응집성 있게 하나의 서비스로 도출하는 것이 매우 중요합니다.

 

마이크로서비스 : 도메인 주도 설계 : 개념, 정의, 개요

 

이를 위한 설계도구로 도메인 주도 설계의 전략적 설계가 유용합니다. 전략적 설계에서는 비즈니스 전문가와 설계자/개발자가 비즈니스를 개념화하기 위해 사용하는 언어를 유비쿼터스 랭귀지라고 합니다. 이 유비쿼터스 랭귀지를 통해 비즈니스의 컨텍스트를 식별합니다.

그 컨텍스트 중심으로 시스템의 경계를 설정합니다. 이것을 바운디드 컨텍스트라고 합니다. 이 바운디드 컨텍스트가 주요한 마이크로서비스 식별후보가 됩니다. 

 

 

도메인 주도 설계의 전술적 설계 기법

다음은 마이크로서비스 내부 설계에 관련되어 유용한 기법입니다. 도메인 주도 설계의 전술적 설계기법을 활용할 수 있습니다. 전술적 설계는 헥사고날 아키텍처의 내부영역에 존재하는 기술로 독립적인 도메인 모델을 설계하고 개발 할 수 있는 설계도구입니다.

 

마이크로서비스 : 도메인 주도 설계 : 개념, 정의, 개요

 

쉽게 말하면 도메인 모델은 비즈니스 도메인의 개념을 잘 표현한 객체지향 모델입니다. 도메인주도 설계의 전술적 설계는 이런 도메인 모델이 비즈니스를 표현하는 데 유용한 몇 가지의 객체패턴을 설명하고 있습니다. 

반응형