-
Notifications
You must be signed in to change notification settings - Fork 0
Closed
Description
summary
- media aggregate를 독립된 Bounded Context로 분리
- PhotoImage, User 등 다른 도메인은 mediaId(fileId)만 참조하도록 구조 정리
details
현재 설계 논의 과정에서 이미지(파일) 관련 책임이 특정 도메인(LifeFourCut, User)에 종속되는지 아니면 공통 유틸(common)로 두어도 되는지에 대한 고민이 있었습니다.
media(File)는 단순한 공통 유틸이 아니라 다음과 같은 특성을 가집니다:
- 독립적인 상태 전이 (PENDING → UPLOADED → DELETED)
- presigned URL 발급, 접근 제어, 삭제 정책 등 자체 비즈니스 규칙 보유
- 업로드 → 연결 → 삭제가 다른 Aggregate와 동일 트랜잭션에 묶이지 않음
- 정책(삭제 시점, 보관 기간, 재사용 여부 등)이 도메인과 무관하게 변경될 수 있음
이로 인해 common에 위치시키는 것은 책임과 경계를 흐릴 위험이 있습니다.
Decision
- media(File)를 독립된 Bounded Context로 분리
- media는 자체 Aggregate Root로서 생명주기와 일관성을 스스로 관리
- 다른 도메인(LifeFourCut, User, Pose 등)은 media를 **참조(fileId)**만 함
- media는 자신이 어떤 도메인에서 사용되는지 알지 않음
Metadata
Metadata
Assignees
Labels
No labels