Community Context 정의서
Context 정보
| 항목 |
내용 |
| Context명 |
커뮤니티 |
| 영문명 |
Community |
| 도메인 분류 |
Core |
| 담당 팀 |
Backend Team |
| 작성일 |
2025-12-28 |
개요
Community Context는 FanPulse의 팬 커뮤니티 기능을 담당합니다. 아티스트별 팬 페이지에서 게시글과 댓글을 작성하고, 좋아요와 공유를 통해 소통합니다. AI 기반 콘텐츠 필터링으로 부적절한 게시물을 자동으로 감지하고 관리합니다.
핵심 책임
- 게시글 관리: 게시글 CRUD, 이미지/태그 관리
- 댓글 관리: 댓글/대댓글 CRUD
- 소셜 인터랙션: 좋아요, 저장, 공유
- 콘텐츠 필터링: AI 기반 부적절 콘텐츠 감지
- 아티스트별 필터링: 팬 페이지 기반 콘텐츠 분류
Ubiquitous Language
| 한글 |
영문 |
정의 |
| 게시글 |
Post |
팬이 작성한 커뮤니티 게시물 |
| 댓글 |
Comment |
게시글에 대한 의견 |
| 대댓글 |
Reply |
댓글에 대한 답글 |
| 좋아요 |
Like |
게시글/댓글에 대한 호감 표시 |
| 팬 페이지 |
FanPage |
특정 아티스트 전용 커뮤니티 공간 |
| 저장 |
Save |
게시글을 보관함에 저장하는 기능 |
Aggregate 목록
| Aggregate |
설명 |
Root Entity |
| Post |
게시글 및 이미지/태그 관리 |
Post |
| Comment |
댓글 및 대댓글 관리 |
Comment |
| Like |
좋아요 기록 관리 |
Like |
Aggregate 상세
Post Aggregate
classDiagram
class Post {
<<Aggregate Root>>
+PostId id
+UserId userId
+ArtistId artistId
+Content content
+List~ImageUrl~ images
+List~Tag~ tags
+LikeCount likeCount
+CommentCount commentCount
+Status status
+CreatedAt createdAt
+UpdatedAt updatedAt
+create(command: CreatePostCommand): Post
+update(command: UpdatePostCommand): void
+delete(): void
+incrementLikeCount(): void
+decrementLikeCount(): void
+incrementCommentCount(): void
+decrementCommentCount(): void
}
class PostId {
<<Value Object>>
+UUID value
}
class Content {
<<Value Object>>
+String value
+MAX_LENGTH = 2000
+validate(): Boolean
}
class ImageUrl {
<<Value Object>>
+String value
+validate(): Boolean
}
class Tag {
<<Value Object>>
+String value
+MAX_LENGTH = 20
}
class Status {
<<Value Object>>
ACTIVE
DELETED
HIDDEN
}
class LikeCount {
<<Value Object>>
+Long value
+increment(): LikeCount
+decrement(): LikeCount
}
class CommentCount {
<<Value Object>>
+Long value
+increment(): CommentCount
+decrement(): CommentCount
}
Post *-- PostId
Post *-- Content
Post *-- Status
Post *-- LikeCount
Post *-- CommentCount
Post "1" *-- "0..10" ImageUrl
Post "1" *-- "0..5" Tag
불변식 (Invariants):
- 게시글 내용은 1~2000자 사이여야 한다
- 이미지는 최대 10개까지 첨부 가능
- 태그는 최대 5개, 각 태그는 20자 이하
- 삭제된 게시글은 수정 불가
- 좋아요/댓글 카운트는 음수가 될 수 없음