Skip to content

Commit e8baf78

Browse files
committed
Update Technology Post " DDD 세레나데 7기 1주차 (feat. 이벤트 스토밍) "
- 1주차 복습하기, 이벤트 스토밍 워크숍 복습하기 에 대한 내용 추가 - 1주차 각 단계별 미션에 대한 PR를 한 곳에 옮기기
1 parent 4fc5652 commit e8baf78

File tree

1 file changed

+54
-11
lines changed

1 file changed

+54
-11
lines changed

_posts/2025-02-02-DDD-Week1-Review-And-EventStorming.md

Lines changed: 54 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -78,6 +78,14 @@ author: devFancy
7878

7979
뿐만 아니라, 해당 강의에 도움이 되는 영상과 자료들도 되게 감사했다. 해당 강의를 꼼꼼히 준비하신 게 들을 수록 느껴졌다.
8080

81+
(해당 강의가 끝나고 이후 미션들에 대해 완료한 결과, 아래 PR에 정리했다.)
82+
83+
* [[PR] 1단계 - 문자열 덧셈 계산기](https://github.com/next-step/ddd-legacy/pull/764)
84+
85+
* [[PR] 2단계 - 요구사항 정리](https://github.com/next-step/ddd-legacy/pull/790)
86+
87+
* [[PR] 3단계 - 테스트를 통한 코드 보호](https://github.com/next-step/ddd-legacy/pull/835)
88+
8189
### 0단계: JUnit 5 학습
8290

8391
해당 강의에 대한 과정을 전반적으로 알려준 뒤, 마지막 시간에는 `Junit 5`에 대해 재성님이 직접 Java 언어로 어떻게 작성하는지 알려주었고 해당 코드 부분을 따라가면서 학습했다.
@@ -100,11 +108,9 @@ author: devFancy
100108

101109
그래서 리뷰어분의 피드백이 논리적으로 맞다면 받아들이고, 해당 코드(or 문서) 부분을 수정하고 다시 리뷰를 보낸다. 그리고 다시 리뷰를 받으면서 리뷰어분이 만족할 때 까지 이 과정을 반복했다.
102110

103-
이 과정에서 단일 책임 원칙, 배열 대신 컬렉션 활용, 일급 컬렉션, Java 16 이후에 새로운 기능들에 대해 알게 되었다.
111+
이 과정에서 단일 책임 원칙, 배열 대신 컬렉션 활용, 일급 컬렉션, Java 16 이후의 새로운 기능들에 대해 알게 되었다.
104112

105-
그 결과, 해당 1단계 미션을 성공적으로 끝냈다. (해당 부분에 대한 깃허브 PR은 아래와 같다)
106-
107-
* [[PR] 1단계 - 문자열 덧셈 계산기](https://github.com/next-step/ddd-legacy/pull/764)
113+
그 결과, 해당 1단계 미션을 성공적으로 끝냈다.
108114

109115
### 2단계: 요구 사항 정리
110116

@@ -126,9 +132,7 @@ author: devFancy
126132

127133
해당 리뷰어님의 의견을 듣고, 필자가 생각했던 부분과 거의 일치해서 신기하기도 했고, 해당 의견을 자세히 알려주셔서 정말 감사했다.
128134

129-
이 외에도 다양한 피드백을 아래 PR에 남겨주셨는데, 필자가 생각한 그 이상으로 도움받은게 많아서 정말 감사했다. (해당 리뷰어님이 이후의 단계들도 이어서 피드백 해주시면 좋겠지만, 강의 특성상 단계별 리뷰어분이 랜덤으로 바뀌어서 아쉬웠다 😭)
130-
131-
* [[PR] 2단계 - 요구사항 정리](https://github.com/next-step/ddd-legacy/pull/790)
135+
이 외에도 다양한 피드백을 PR에 남겨주셨는데, 필자가 생각한 그 이상으로 도움받은게 많아서 정말 감사했다. (해당 리뷰어님이 이후의 단계들도 이어서 피드백 해주시면 좋겠지만, 강의 특성상 단계별 리뷰어분이 랜덤으로 바뀌어서 아쉬웠다 😭)
132136

133137
### 3단계: 테스트를 통한 코드 보호
134138

@@ -148,9 +152,7 @@ author: devFancy
148152

149153
* [Practical Testing: 테스트 코드 작성 방법 - Mock, 더 나은 테스트를 위한 구체적 조언](https://devfancy.github.io/Practical-Testing2/)
150154

151-
미션을 수행하는 도중에 궁금한 점들을 아래 PR를 통해 작성했고, 리뷰어님의 의견을 듣고자 했다. (리뷰어님이 나의 궁금한 점들을 최대한 구체적 + 경험에 비추어 답변해주셔서 정말 감사했다)
152-
153-
* [PR 3단계 - 테스트를 통한 코드 보호](https://github.com/next-step/ddd-legacy/pull/835)
155+
미션을 수행하는 도중에 궁금한 점들을 PR에 작성했고, 리뷰어님의 의견을 듣고자 했다. (리뷰어님이 나의 궁금한 점들을 최대한 구체적 + 경험에 비추어 답변해주셔서 정말 감사했다)
154156

155157
리뷰어님의 피드백과 해당 강의에서 배운 결과, 테스트 컨테이너와 DB를 정리하는 `tearDown()` 메서드를 사용하는 것 보다 **테스트 시간이 짧은 인메모리로 `Mocking` 하고 `Fake` 객체를 사용하는 방법**을 택했다.
156158

@@ -170,7 +172,29 @@ author: devFancy
170172
결국 테스트코드가 많아질수록 **테스트 실행 시간을 단축해야 하므로 인메모리를 적극 활용**해야 한다는 점을 배웠고,
171173
**비즈니스에 중요한 부분**을 중심으로 테스트코드를 작성하는 것이 유지보수 관리에 드는 시간과 비용을 절감하는 데 효과적이라는 것을 이번 미션을 통해 다시 한번 깨달았다.
172174

173-
### 오프라인 모임: 이벤트 스토밍
175+
176+
### 1주차 복습하기
177+
178+
> 1주차 미션에서 나온 용어들에 대해 한 줄로 정리하면 아래와 같다.
179+
180+
* `도메인` - **소프트웨어로 해결하고자 하는 문제 영역** 입니다.
181+
182+
* 예를 들어, 예를 들어, 핸드폰을 이용하여 사용자 간에 거래를 할 때 필요한 도메인은 `송금`입니다.
183+
184+
* 송금 도메인을 제대로 이해하려면, 송금과 관련된 금융, 계좌, 수수료 등의 지식이 필요합니다.
185+
186+
* `모델` - 목적을 위해 현실 세계에 존재하는 것을 **가공하고 편집**하여 우리에게 정보를 제공하는 것입니다.
187+
* 예를 들어, 금융 송금 시스템에서는 실제 은행 계좌, 송금 금액, 수수료, 거래 일자 등의 정보를 단순화하여 송금 요청, 송금 내역 등의 모델로 표현할 수 있습니다.
188+
189+
* `도메인 모델` - 도메인의 핵심 개념과 비즈니스 규칙, 행동(메서드)까지 모두 반영한 **목적을 가진 의사소통 수단**입니다. 이는 회의, 기획, 디자인, 개발 등 여러 단계에서 공유되어, 시스템의 핵심 개념을 풍부하게 표현하고 비즈니스 로직을 구현하는 데 사용됩니다.
190+
* 예를 들어, 금융 송금 도메인에서는 '송금', '계좌', '거래', '수수료' 등의 개념을 객체와 연관관계로 표현하여, 송금 내역 생성, 수수료 계산, 계좌 잔액 검증 등의 비즈니스 로직을 포함하는 도메인 모델을 구축할 수 있습니다.
191+
192+
* `도메인 주도 설계` - 비즈니스 관점에서 도메인을 중심으로 설계해 나가는 접근 방식입니다. 도메인 모델을 활용하여 복잡한 비즈니스 규칙과 요구사항을 코드에 명확하게 반영하고, 개발팀과 비즈니스 전문가 간의 효과적인 의사소통을 도모합니다.
193+
194+
195+
---
196+
197+
## 이벤트 스토밍 워크숍
174198

175199
2월 1일 토요일에는 처음 오프라인 모임을 진행하게 되었다.
176200

@@ -225,6 +249,25 @@ author: devFancy
225249

226250
무엇보다도, 이벤트 스토밍의 궁극적인 목표는 **참여한 모든 구성원이 동일한 도메인 지식을 공유하고, 같은 이해를 가지는 것**이라는 점을 다시금 깨닫게 되었다.
227251

252+
### 이벤트 스토밍 워크숍 복습하기
253+
254+
> 이벤트 스토밍 워크숍에서 배웠던 용어들에 대해 한 줄로 정리하면 아래와 같다.
255+
256+
* `이벤트 스토밍 워크숍` 이란?
257+
* 프로젝트에 같이 참가한 팀원들이 서로가 공통된 이해를 가지기 위해 도메인 지식을 탐구하는 과정입니다.
258+
259+
* 내가 `퍼실리테이터`라면 어떤 마음가짐을 가져야 할까요?
260+
* 참가자들이 자유롭게 아이디어를 내고 논의할 수 있도록 돕고, 개입은 최소화하되 필요할 때 적절한 방향을 제시하는 조력자 역할의 마음가짐을 가진다.
261+
262+
* 내가 `드라이버`라면 무엇을 염두에 두어야 할까요?
263+
* 도메인 이벤트를 논리적인 흐름에 맞게 배치하고, 팀원들과의 피드백을 주고받으며 조정합니다.
264+
265+
* 내가 `내비게이터라면` 드라이버를 돕기 위해 어떻게 안내해야 할까요?
266+
* 도메인 이벤트의 맥락과 연관성을 고려하여 드라이버가 올바른 결정을 내릴 수 있도록 논리적으로 설명하고 안내해 줍니다.
267+
268+
269+
---
270+
228271
## Review
229272

230273
이번 글에서는 넥스트스텝의 "DDD 세레나데 7기"를 수강하게 된 배경과 1주차 미션에 대한 후기를 정리했다.

0 commit comments

Comments
 (0)