<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>How-To Guide on Advanced Beginner</title><link>https://advanced-beginner.github.io/ko/docs/ddd/howto/</link><description>Recent content in How-To Guide on Advanced Beginner</description><generator>Hugo</generator><language>ko-KR</language><managingEditor>d8lzz1gpw@mozmail.com (kimbenji)</managingEditor><webMaster>d8lzz1gpw@mozmail.com (kimbenji)</webMaster><lastBuildDate>Mon, 23 Mar 2026 19:08:15 +0900</lastBuildDate><atom:link href="https://advanced-beginner.github.io/ko/docs/ddd/howto/index.xml" rel="self" type="application/rss+xml"/><item><title>Aggregate 경계 정하기</title><link>https://advanced-beginner.github.io/ko/docs/ddd/howto/aggregate-boundaries/</link><pubDate>Sat, 10 Jan 2026 00:00:00 +0000</pubDate><author>d8lzz1gpw@mozmail.com (kimbenji)</author><guid>https://advanced-beginner.github.io/ko/docs/ddd/howto/aggregate-boundaries/</guid><description>&lt;blockquote class='book-hint '&gt;
&lt;p&gt;&lt;strong&gt;해결하는 문제&lt;/strong&gt;: Aggregate를 너무 크게 만들어 성능 이슈가 발생하거나, 너무 작게 만들어 일관성이 깨지는 상황
&lt;strong&gt;소요 시간&lt;/strong&gt;: 약 30분
&lt;strong&gt;전제 조건&lt;/strong&gt;: &lt;a href="https://advanced-beginner.github.io/ko/docs/ddd/concepts/aggregate/"&gt;Aggregate 심화&lt;/a&gt; 문서를 읽었다고 가정&lt;/p&gt;
&lt;/blockquote&gt;&lt;blockquote class="book-hint warning"&gt;&lt;strong&gt;성공 기준&lt;/strong&gt;&lt;br&gt;&lt;p&gt;이 가이드를 완료하면 다음을 할 수 있습니다:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;불변식을 식별하여 Aggregate 경계를 결정&lt;/li&gt;
&lt;li&gt;4가지 판단 질문으로 Entity 포함 여부를 결정&lt;/li&gt;
&lt;li&gt;경계가 잘못되었을 때의 신호를 인식&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;

&lt;h2 id="1-핵심-불변식-식별하기"&gt;1. 핵심 불변식 식별하기&lt;a class="anchor" href="#1-%ed%95%b5%ec%8b%ac-%eb%b6%88%eb%b3%80%ec%8b%9d-%ec%8b%9d%eb%b3%84%ed%95%98%ea%b8%b0"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;불변식(Invariant)&lt;/strong&gt;은 항상 참이어야 하는 비즈니스 규칙입니다. Aggregate 경계를 정하는 가장 중요한 기준입니다.&lt;/p&gt;
&lt;h3 id="11-비즈니스-규칙-나열하기"&gt;1.1 비즈니스 규칙 나열하기&lt;a class="anchor" href="#11-%eb%b9%84%ec%a6%88%eb%8b%88%ec%8a%a4-%ea%b7%9c%ec%b9%99-%eb%82%98%ec%97%b4%ed%95%98%ea%b8%b0"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;대상 도메인의 비즈니스 규칙을 모두 나열하라:&lt;/p&gt;</description></item><item><title>Bounded Context 식별하기</title><link>https://advanced-beginner.github.io/ko/docs/ddd/howto/bounded-context-identification/</link><pubDate>Fri, 16 Jan 2026 00:00:00 +0000</pubDate><author>d8lzz1gpw@mozmail.com (kimbenji)</author><guid>https://advanced-beginner.github.io/ko/docs/ddd/howto/bounded-context-identification/</guid><description>&lt;blockquote class='book-hint '&gt;
&lt;p&gt;&lt;strong&gt;해결하는 문제&lt;/strong&gt;: 시스템을 어떻게 나눠야 할지 모르거나, Context 경계를 잘못 정해서 팀 간 의존성이 높아진 상황
&lt;strong&gt;소요 시간&lt;/strong&gt;: 약 25분
&lt;strong&gt;전제 조건&lt;/strong&gt;: &lt;a href="https://advanced-beginner.github.io/ko/docs/ddd/concepts/strategic-design/"&gt;전략적 설계&lt;/a&gt; 문서를 읽었다고 가정&lt;/p&gt;
&lt;/blockquote&gt;&lt;blockquote class="book-hint warning"&gt;&lt;strong&gt;성공 기준&lt;/strong&gt;&lt;br&gt;&lt;p&gt;이 가이드를 완료하면 다음을 할 수 있습니다:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;3가지 신호로 Context 경계를 식별&lt;/li&gt;
&lt;li&gt;도메인 전문가 인터뷰로 경계 검증&lt;/li&gt;
&lt;li&gt;잘못된 경계의 증상을 인식하고 수정&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;

&lt;h2 id="1-context-경계가-필요한-신호-감지하기"&gt;1. Context 경계가 필요한 신호 감지하기&lt;a class="anchor" href="#1-context-%ea%b2%bd%ea%b3%84%ea%b0%80-%ed%95%84%ec%9a%94%ed%95%9c-%ec%8b%a0%ed%98%b8-%ea%b0%90%ec%a7%80%ed%95%98%ea%b8%b0"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;다음 3가지 신호를 확인하여 Bounded Context 분리가 필요한지 판단하세요.&lt;/p&gt;
&lt;h3 id="11-신호-1-같은-용어-다른-의미"&gt;1.1 신호 1: 같은 용어, 다른 의미&lt;a class="anchor" href="#11-%ec%8b%a0%ed%98%b8-1-%ea%b0%99%ec%9d%80-%ec%9a%a9%ec%96%b4-%eb%8b%a4%eb%a5%b8-%ec%9d%98%eb%af%b8"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;도메인 전문가와 대화할 때 &amp;ldquo;그 X 말고 다른 X요&amp;quot;라는 말이 나오면 Context 분리 신호입니다. 이 신호를 포착하세요.&lt;/p&gt;</description></item><item><title>Value Object 설계하기</title><link>https://advanced-beginner.github.io/ko/docs/ddd/howto/value-object-design/</link><pubDate>Fri, 16 Jan 2026 00:00:00 +0000</pubDate><author>d8lzz1gpw@mozmail.com (kimbenji)</author><guid>https://advanced-beginner.github.io/ko/docs/ddd/howto/value-object-design/</guid><description>&lt;blockquote class='book-hint '&gt;
&lt;p&gt;&lt;strong&gt;해결하는 문제&lt;/strong&gt;: 모든 것을 Entity로 만들어 복잡도가 높아지거나, Primitive Obsession으로 타입 안정성이 낮은 상황
&lt;strong&gt;소요 시간&lt;/strong&gt;: 약 20분
&lt;strong&gt;전제 조건&lt;/strong&gt;: &lt;a href="https://advanced-beginner.github.io/ko/docs/ddd/concepts/tactical-design/"&gt;전술적 설계&lt;/a&gt; 문서를 읽었다고 가정&lt;/p&gt;
&lt;/blockquote&gt;&lt;blockquote class="book-hint warning"&gt;&lt;strong&gt;성공 기준&lt;/strong&gt;&lt;br&gt;&lt;p&gt;이 가이드를 완료하면 다음을 할 수 있습니다:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;3가지 질문으로 Entity와 Value Object 구분&lt;/li&gt;
&lt;li&gt;Java Record를 활용한 Value Object 구현&lt;/li&gt;
&lt;li&gt;Primitive Obsession을 Value Object로 리팩토링&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;

&lt;h2 id="1-entity-vs-value-object-구분하기"&gt;1. Entity vs Value Object 구분하기&lt;a class="anchor" href="#1-entity-vs-value-object-%ea%b5%ac%eb%b6%84%ed%95%98%ea%b8%b0"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="11-3가지-판단-질문"&gt;1.1 3가지 판단 질문&lt;a class="anchor" href="#11-3%ea%b0%80%ec%a7%80-%ed%8c%90%eb%8b%a8-%ec%a7%88%eb%ac%b8"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;다음 질문을 순서대로 적용하세요:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;질문 1: &amp;ldquo;이것은 고유한 식별자가 필요한가?&amp;rdquo;&lt;/strong&gt;&lt;/p&gt;</description></item><item><title>도메인 이벤트 설계하기</title><link>https://advanced-beginner.github.io/ko/docs/ddd/howto/domain-event-design/</link><pubDate>Fri, 16 Jan 2026 00:00:00 +0000</pubDate><author>d8lzz1gpw@mozmail.com (kimbenji)</author><guid>https://advanced-beginner.github.io/ko/docs/ddd/howto/domain-event-design/</guid><description>&lt;blockquote class='book-hint '&gt;
&lt;p&gt;&lt;strong&gt;해결하는 문제&lt;/strong&gt;: Aggregate 간 강한 결합으로 트랜잭션이 복잡해지거나, 변경 전파가 어려운 상황
&lt;strong&gt;소요 시간&lt;/strong&gt;: 약 25분
&lt;strong&gt;전제 조건&lt;/strong&gt;: &lt;a href="https://advanced-beginner.github.io/ko/docs/ddd/concepts/aggregate/"&gt;Aggregate 심화&lt;/a&gt; 문서를 읽었다고 가정&lt;/p&gt;
&lt;/blockquote&gt;&lt;blockquote class="book-hint warning"&gt;&lt;strong&gt;성공 기준&lt;/strong&gt;&lt;br&gt;&lt;p&gt;이 가이드를 완료하면 다음을 할 수 있습니다:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;도메인 이벤트가 필요한 상황 식별&lt;/li&gt;
&lt;li&gt;이벤트 명명 규칙과 페이로드 설계&lt;/li&gt;
&lt;li&gt;Spring의 이벤트 발행/구독 패턴 구현&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;

&lt;h2 id="1-도메인-이벤트가-필요한-상황-식별하기"&gt;1. 도메인 이벤트가 필요한 상황 식별하기&lt;a class="anchor" href="#1-%eb%8f%84%eb%a9%94%ec%9d%b8-%ec%9d%b4%eb%b2%a4%ed%8a%b8%ea%b0%80-%ed%95%84%ec%9a%94%ed%95%9c-%ec%83%81%ed%99%a9-%ec%8b%9d%eb%b3%84%ed%95%98%ea%b8%b0"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="11-이벤트가-필요한-3가지-신호"&gt;1.1 이벤트가 필요한 3가지 신호&lt;a class="anchor" href="#11-%ec%9d%b4%eb%b2%a4%ed%8a%b8%ea%b0%80-%ed%95%84%ec%9a%94%ed%95%9c-3%ea%b0%80%ec%a7%80-%ec%8b%a0%ed%98%b8"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;다음 3가지 신호를 확인하여 도메인 이벤트가 필요한지 판단하세요.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;신호 1: &amp;ldquo;~하면 ~해야 한다&amp;rdquo; 패턴&lt;/strong&gt;&lt;/p&gt;</description></item></channel></rss>