Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

CQRS와 DDD는 서로 다른 개념이지만, 둘 다 복잡한 비즈니스 로직과 요구 사항을 효과적으로 모델링하고 구현하기 위한 도구로 사용될 수 있습니다. 실제로, 많은 프로젝트에서 CQRS와 DDD는 함께 사용되어, 강력한 아키텍처 및 설계 기반을 제공합니다.


반버논이 DDD가 자바버전으로 작성한 이유도 Reactive Strem의 기원과 DDD는 큰 연관성이 없어보이지만 반버논으로 인해 두개의 연결성이 생겼으며 보너스로 DDD의 기원을 조사해보겠습니다.

반버논의 DDD 구현체가 인기있는 국내출판 서적중하나이며~ 자바버전으로 작성한 이유가 흥미롭습니다.요약하면

닷넷진영은 이미 DDD를 다루는 자료가 많고 이때 자바진영은 좋은설계나 개발 사례를 무시하는 풍조때문에

자바버전으로 작성했다라는 풍문 - DDD 구현체 기원역시 자바버전이 인기가 있어 자바버전으로 오해할수 있으며 과거를 거슬러 구현체의 기원은 닷넷으로 추정해봅니다

...

  • DDD는 크게 개념부/설계부/구현부 3종셋트 책으로 구분되며 구현부는 다양한 언어로 작성되어 있습니다.
  • 이 분야의 창시자는 에릭에반스로 CQRS개념을 정리하여 처음 소개하였습니다.

Image Removed

...

.

Image Added

  • DDD의 기원 추정과 상호연관성
    • DDD의 창시자 에릭에반스를 통해 CQRS-Aggregate 컨셉이 처음 소개되었다.
    • 이벤트 소싱은 CQRS확장판으로 그렉 영(greg young)에의해 처음 소개되었다.
    • DDD 3인방은 에릭에반스(개념부) / 그 렉영(확장부) / 반버논(구현부) 으로 이어집니다.
    • 반 버논은 Reactive Stream 액터모델 방식을 채택해 이용해 DDD를 구현 ( 여기서 DDD와 ReactiveStream 상호연결성이 발생 )
    • 마틴 파울러는 그렉영으로부터 영향받은 DDD 지지자로  Aggreate을 이용한 아키텍처를 견고하게 만들었다.
    • 마틴파울러의 클린 아키텍처의 영항도가 현재도 높기때문에 CQRS의 기원이 이곳인것으로 오해할수 있습니다.
    • CQRS = DDD 는 아니지만 DDD에서 개념이 처음 소개되고 확장되다보니 DDD와 CQRS는 항상 붙어있습니다.
    • MSA에서는 팀과 경계를 구분하는 방법이 중요하며  DDD는 MSA가 아니지만 MSA에서 경계구분할때 DDD에 소개된 바운디드켄텍스트 기법이 이용되고 있습니다. MSA는 배포단위까지 구분을 신경쓰지만 DDD에서는 코드구현 경계구분을 중요하게 생각하며 배포단위에 대한 세부적인 부분은 다루지 않습니다.


Erlang (언랭)은 실시간, 동시성, 분산 시스템 개발에 특화된 함수형 프로그래밍 언어입니다. Erlang의 주요 특징 및 배경에 대해 알아보겠습니다.

...