DDD - 도메인 주도 설계 첫 걸음, 전술적 설계 - 3
·
아키텍처
간단한 비즈니스 로직 개발비즈니스 로직을 작성하는 방식에는 크게 두가지로 나뉜다.트랜잭션 스크립트 방식과, 도메인 모델 패턴 방식이다.트랜잭션 스크립트: 절차지향 스크립트 방식으로 구현한다.도메인 모델 패턴: 도메인 객체(엔티티와 값 객체) 안에 로직을 캡슐화예제를 위해 간단한 요구사항은 만들어봤다.- 테넌트(Tenant)는 사용자(Invitee)에게 초대장을 보낼 수 있다.- 사용자는 초대를 받으면 수락/거절을 선택할 수 있다.- 초대 상태를 변경하는 것은 초대받은자만이 가능하다. 트랜잭션 스크립트 방식먼저 트랜잭션 스크립트 방식을 알아보자@Entityclass Invitation( val tenantId: Long, val inviteeId: Long, val message: Stri..
DDD - 도메인 주도 설계 첫걸음, 전략적 설계 - 2
·
아키텍처
이전 글에서 DDD가 무엇인지 간략히 알아보았다.그중에서도 바운디드 컨텍스트에 대한 개념을 살펴보았는데,이번 글에서는 각 바운디드 컨텍스트 간에 모델을 어떻게 공유하고 상호작용하는지 설명하려고 한다.Contract바운디드 컨텍스트 간에도 상호작용이 필요하며, 이 상호작용 방식을 컨트랙트(contract)라고 부른다.바운디드 컨텍스트 간 상호작용 패턴컨트랙트는 상호작용 방식에 따라 몇 가지 패턴으로 나눌 수 있다. 대표적으로 협력형, 사용자-제공자, 분리형 패턴이 있다.각 패턴은 바운디드 컨텍스트 간의 의존성과 독립성을 어떻게 유지할지를 결정하는 방식에 따라 구분된다.협력형(cooporation) 패턴파트너십 패턴한 팀은 다른 팀에게 API 변경을 알리고 다른 팀은 충돌 없이 받아들인다.양 팀 모두 커뮤니..
DDD - 도메인 주도 설계 첫걸음, 전략적 설계 - 1
·
아키텍처
이 글에서는 내가 지금까지 서적, 외부 강의, 그리고 경험을 통해 이해한 DDD와 이를 실제로 어떻게 적용했는지 공유하고자 한다. 도메인우선 DDD를 이해하기 전에, DDD의 핵심인 '도메인'이 무엇인지 먼저 알아두면 좋다.도메인은 특정 비즈니스 또는 우리가 해결해야 할 문제 영역을 의미한다.예를 들어, 이커머스에서는 '주문', '결제', '상품' 등이 각각 하나의 도메인으로 정의될 수 있다. 위 예시는 간단했지만, DDD에서 말하는 도메인은 더 세부적으로 나타낼 수 있다. 핵심 하위 도메인예를 들어, 쿠팡은 다음날 상품을 받을 수 있는 🚀 로켓 배송 서비스를 통해 다른 이커머스와 차별화를 두고 있다.이러한 차별화된 서비스가 바로 핵심 하위 도메인에 해당한다.이렇게 경쟁 업체와 다르게 수행하고 있는 것..
noose
'DDD' 태그의 글 목록