본문 바로가기

생존형 개발

DDD(DataBase Driven Development) 에서 DD(Domain Driven Development)

아무것도 모르는 꽑꽑이의 좌충우돌 우당탕탕 DDD

MSA와 DDD는 같이 소개가 많이 된다. 'DDD는 복잡한 마이크로 서비스를 구현할 때만 적용한다. CRUD 서비스처럼 더 간단한 업무는 더 간단한 벙법으로 관리할 수 있다'(https://ducktyping.tistory.com/14) 라고 DDD를 소개하는 글도 있지만, DDD는 MSA뿐만아니라, OOP를 사용하는 프로그램에서도 가치있다고 생각한다.

여기서 잠깐

그렇다면 OOP에서 이제까지 아무 생각없이 뚜둘겼던 그 디자인은 무엇일까?
DDD랑 무슨 차이일까?

OOP 하면서(제대로 한지도 모르겠지만,..) 내가 그래왔고, 내가 일해왔던 회사들도 그렇고, DDD를 빠삭하게 이해하고 도입하지 않은 대부분의 회사에서 코드들은 Strategic Design을 사용한다.

Strategic Design 이란 

Strategic Design이란 Context에 대해 생각하고, 이를 기준으로 디자인하는 것을 말한다. OOP에서 소프트웨어를 디자인 할 때 객체를 기준으로 디자인을 진행하는 OOD(Object Oriented Design)이 라고한다.
OOD관점으로 봤을때, Strategic Design는 OOD가 잘 이루어 진것으로 볼 수 있다.

여기서 Context란 무엇일까? Context란 특정 객체 혹은 상황이 벌어지는 주변 환경을 말한다. 우리가 흔히 코딩하는 OderProcessService(주문 진행과정에서 성공 실패 처리), LoginService(로그인과정에서 다른 과정 처리 및 성공 실패 처리) 같이 사물이나 행동 양상이 벌어지는 상황에 집중하여 디자인을 하는 것이 Strategic Design의 핵심이다.

 

정리 블로깅

- https://ducktyping.tistory.com/14?category=1180172 

 

DDD 지향 마이크로 서비스 디자인

DDD를 배우기 시작한 꽑꽑이가 정리한 우당탕탕 정리입니다. 글 아래에 참고 사이트, 문서를 정리해두었으니 참고해주세요. DDD(Domain Driven Development)는 사용 사례와 관련하여 현실의 비즈니스에

ducktyping.tistory.com

- https://ducktyping.tistory.com/15?category=1180172 

 

DDD Aggregate

Aggregate는 DDD(Domain-Driven Design)의 한 패턴이다. DDD에서 aggregate는 하나의 유닛으로 취급할 수 있는 도메인 오브젝트의 집합이다. 예로, 분리된 Order(주문)과 Line-items(주문 아이템) 객체는 하나의..

ducktyping.tistory.com

- https://ducktyping.tistory.com/20

 

이벤트 스토밍과 DDD

 

ducktyping.tistory.com

 

참고 사이트

- https://steemit.com/kr/@frontalnh/domain-driven-design

 

Domain Driven Design 이란 무엇인가? — Steemit

Domain Driven Design 이란 무엇인가 먼저, 도메인이란 무엇일까요 도메인의 사전적 의미는 "정보와 활동의 영역" 을 말하며, 흔히 프로그래머들에게는 어플리케이션 내의 로직들이 관여하는 정보와

steemit.com