PART 5 · 강의 1/3
프로젝트 설계
워크숍
요구사항에서 아키텍처까지, 실무 설계 프로세스를 체험합니다.
01
요구사항에서 아키텍처까지
설계 워크숍의 전체 흐름
1
요구사항 수집
비즈니스 목표 이해
2
도메인 분석
이벤트 스토밍
3
컨텍스트 매핑
경계 정의
4
아키텍처 결정
구조 설계
Functional
기능 요구사항
시스템이 수행해야 하는 구체적인 기능과 동작을 정의합니다.
Non-Functional
품질 요구사항
성능, 확장성, 보안, 가용성 등 시스템의 품질 속성을 정의합니다.
Constraints
제약 조건
기술 스택, 예산, 일정, 규정 등 설계에 영향을 주는 제약사항입니다.
💡 워크숍 팁
좋은 설계 워크숍은 다양한 이해관계자가 참여합니다. 개발자, 디자이너, 기획자, 비즈니스 담당자가 함께 모여 공통의 언어로 시스템을 이해하고 설계하는 것이 핵심입니다.
02
이벤트 스토밍
도메인 이벤트 중심의 탐색 기법
주문이 생성됨
주문 생성하기
주문
결제가 완료됨
결제 완료시 배송 시작
결제 시스템
도메인 이벤트
커맨드
애그리게이트
정책/규칙
외부 시스템
📌 Step 1: 도메인 이벤트 나열
- 과거형으로 표현: "주문이 생성됨", "결제가 완료됨"
- 비즈니스에서 중요한 사건만 포함
- 참여자 모두가 자유롭게 포스트잇을 붙임
- 이 단계에서는 정렬하지 않음
📌 Step 2: 시간순으로 정렬
- 이벤트를 왼쪽에서 오른쪽으로 시간순 배치
- 병렬로 발생하는 이벤트는 수직으로 배치
- 중복된 이벤트는 통합
- 누락된 이벤트를 발견하고 추가
📌 Step 3: 커맨드와 액터 추가
- 각 이벤트를 발생시키는 커맨드 식별
- 커맨드를 실행하는 액터(사용자/시스템) 명시
- 외부 시스템과의 연동 지점 파악
- 정책(Policy): 이벤트가 자동으로 트리거하는 규칙
📌 Step 4: 바운디드 컨텍스트 도출
- 관련된 이벤트와 커맨드를 그룹으로 묶음
- 각 그룹이 하나의 바운디드 컨텍스트가 됨
- 컨텍스트 간 관계와 통신 방식 정의
- 마이크로서비스 경계 후보로 활용
03
시스템 컨텍스트 다이어그램
C4 모델의 첫 번째 레벨
사용자
결제 시스템
우리 시스템
알림 서비스
데이터베이스
🎯
목적
시스템의 전체적인 범위와 외부 의존성을 한눈에 파악
👥
대상
비즈니스 이해관계자, 신규 팀원, 외부 협력업체
📐
구성요소
우리 시스템, 사용자, 외부 시스템, 연결 관계
⚠️ 주의사항
컨텍스트 다이어그램은 가장 높은 추상화 수준입니다. 내부 구현 상세는 포함하지 않습니다. "숲을 먼저 보고, 나무는 나중에"의 원칙을 따릅니다.
SUMMARY
핵심 요약
- 설계 워크숍은 요구사항 수집부터 아키텍처 결정까지의 협업 프로세스
- 이벤트 스토밍으로 도메인을 탐색하고 바운디드 컨텍스트를 도출
- 시스템 컨텍스트 다이어그램으로 전체 시스템 범위를 시각화
- 다양한 이해관계자가 공통의 언어로 소통하는 것이 핵심
- 설계는 반복적으로 정제되며, 완벽한 첫 설계는 없다