본문 바로가기

좋아하는 것_매직IT/10.microservice

3.마이크로서비스, 마이크로(micro) 아키텍처와 매크로(macro) 아키텍처로 나눠야 하는 이유?

반응형

마이크로서비스는 더 나은 낮은 결합도를 제공함.

  • 따라서 마이크로서비스는 소프트웨어 모듈을 모듈화하고 격리할 수 있음.
  • but, 마이크로서비스는 큰 시스템 관점에서 보면 모듈.
    • 따라서 , 모듈은 통합될 수 있어야함.
  • 통합은 마이크로서비스 아키텍처의 도전 과제임.

    

마이크로 서비스 아키텍처를 마이크로(micro) 아키텍처와 매크로(macro) 아키텍처로 나눠야 하는 이유?

  • 마이크로 서비스가 전체 시스템을 구성할 때 함께 동작할 수 있도록 보장해야 함.
  • 반면, 마이크로서비스의 자유가 마이크로서비스 아키텍처의 대부분의 장점에 필요한 격리와 독립성을 구성하기 때문에 제한이 심하지 않음.
  • 이런 이유로, 마이크로 서비스 아키텍처를 마이크로(micro) 아키텍처와 매크로(macro) 아키텍처로 나누는 것이 종음.    

 

마이크로 서비스에서 마이크로(micro) 아키텍처와 매크로(macro) 아키텍처는 무엇일까?

  • 마이크로 아키텍처 
    • 각 마이크로서비스에 대해 개별적으로 결정될 수 있는 모든 결정으로 구성됨.
  • 매크로 아키텍처
    • 전역적으로 이뤄져야 하는 모든 결정으로 구성되고 모든 마이크로서비스에 적용됨.      

아키텍처를 분할 시 고려해야 할 사항

  • 도메인 로직을 마이크로서비스로 분리를 위한 접근 방법은 아래와 같다.
    • 도메인 주도 설계(DDD, Domain-Driven Design)와 바운디드 컨텍스트(bounded context) 방법
  • 마이크로 및 매크로 아키텍처의 일부인 의사 결정과 데브옵스 모델이 해당 결정에 미치는 영향을 꼭 확인하자.
  • 마이크로와 매크로 아키텍처를 나누는 기준에 대한 질문을 항상 염두에 둬야한다.

 

 참고사항

  • 도메인 주도 설계(DDD, Domain-Driven Design) 란 무엇인가?
    • 도메인 주도 설계가 탄생한 이유 ?
      • 소프트웨어 개발이 어려운 이유는 현실세계 문제의 복잡성에서 시작됨.          
      • 즉, 현실의 문제를 잘 파악하고 그 문제 해결이 code로 잘 구현된다면 가장 이상적인 소프트웨어임.    
  • 도메인이란?
    • 도메인의 사전적 의미는 "정보와 활동의 영역" 을 말하며, 흔히 어플리케이션 내의 로직들이 관여하는 정보와 활동의 영역을 말함.      
  •  도메인 주도 설계(DDD, Domain-Driven Design)  
    • 개발을 할때, 위에서 설명한 도메인이 중심이 되는 개발 방식을 말함.
    • 목적 
      • 소프트웨어의 연관된 부분들을 연결하여 계속해서 진화하는 새로운 모델을 만들어 나가 복잡한 어플리케이션을 만드는 것을 쉽게 해주는 것에 있음.           
    • 개발 방식   
      • 기본적으로 DDD는 폭포수 개발 방식보다는 애자일 개발방식과 같은 반복 수행을 통한 완성도를 높이는 방식을 대부분 채택함.

   

 DDD의 세 가지 특징

  • 도메인 그 자체와 도메인 로직에 초점을 맞춘다는 것이다. 
    • 일반적으로 많이 사용하는 데이터중심의 접근법을 탈피해서 순수한 도메인의 모델과 로직에 집중하는 것을 말함.
  • 보편적인(ubiquitous) 언어의 사용이다. 
    • 도메인 전문가와 소프트웨어 개발자 간의 커뮤니케이션 문제를 없애고 상호가 이해할 수 있고 모든 문서와 코드에 이르기까지 동일한 표현과 단어로 구성된 단일화된 언어체계를 구축해나가는 과정을 말함. 이로서 분석 작업과 설계 그리고 구현에 이르기까지 통일된 방식으로 커뮤니케이션이 가능해짐.
  • 소프트웨어 엔티티와 도메인 컨셉트를 가능한 가장 가까이 일치시키는 것이다. 
    • 분석모델과 설계가 다르고 그것과 코드가 다른 구조가 아니라 도메인 모델부터 코드까지 항상 함께 움직이는 구조의 모델을 지향하는 것이 DDD의 핵심원리이다.       

참고사이트

728x90
300x250