You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
| Pair | Seam | From (D, 소비자) | To (U, 공급자) | 관계 유형(현재 As-Is) | 관계 유형(목표 To-Be) | 통신/통합 패턴(목표) | 현재 구현 / 의존 방식 | 해석 및 개선 후보 |
233
233
|---|---|---|---|---|---|---|---|---|
234
234
| Auth / Security ↔ User Account | 사용자 식별/권한 |`Auth / Security`|`User Account`|**SK**|**SK** (Shared Kernel) | 공유 식별자/권한 kernel |`UserRepository`, `User`, `UserPrincipal` 직접 참조 |`UserId`, `Role`, `UserStatus`를 최소 공유 커널로 공유한다. User 전체 모델 공유는 줄이는 것이 목표다. |
235
-
| Auth / Security ↔ User Account | 인증 캐시 무효화 |`Auth / Security`|`User Account`|**OHS/PL 이벤트 handoff**|**OHS/PL**|`OnboardingCompletedEvent`, `UserWithdrawnEvent`|`UserAuthCacheEventListener`가 이벤트를 구독해 `UserAuthCacheService`를 호출 | 온보딩은 커밋 후 캐시 반영 지연을 허용한다. 탈퇴는 보안 민감 seam이라 `BEFORE_COMMIT`에서 실패 시 롤백하고 `AFTER_COMMIT`에서 한 번 더 무효화한다. |
235
+
| Auth / Security ↔ User Account | 인증 캐시 무효화 |`Auth / Security`|`User Account`|**OHS/PL 이벤트 handoff**|**OHS/PL**|`OnboardingCompletedEvent`, `UserWithdrawnEvent`|`UserAuthCacheInvalidationListener`가 이벤트를 구독해 `UserAuthCacheStore`를 호출 | 온보딩은 커밋 후 캐시 반영 지연을 허용한다. 탈퇴는 보안 민감 seam이라 `BEFORE_COMMIT`에서 실패 시 롤백하고 `AFTER_COMMIT`에서 한 번 더 무효화한다. |
236
236
| Notification ↔ User Account | 알림 토큰 소유자 식별 |`Notification`|`User Account`|**SK** (최소 shared identity) |**SK** (최소 Shared Identity) | 사용자 귀속 참조 |`NotificationToken.user` 직접 참조 | 장기적으로는 `UserId` 중심 참조로 축소할 수 있다. |
237
237
| Source / Ingestion ↔ 외부 RSS | 피드 포맷 적응 |`Source / Ingestion`| 외부 RSS |**ACL**|**ACL** (Anti-Corruption Layer) | 외부 어댑터 / 포맷 변환 |`WebClient`, Rome RSS parser | Source가 외부 RSS 형식을 내부 `RssFeedItem`으로 변환한다. 외부 스키마 변경 시 변환 로직만 수정하면 된다. |
238
238
| Source / Ingestion ↔ Post / Content | 기술 게시글 후보 전달 |`Post / Content`|`Source / Ingestion`|**CS + 동기 직접 호출**|**OHS/PL** (Open Host Service / Published Language) | 게시글 후보 Published DTO / 이벤트 handoff | 현재는 `RssFeedItem`을 `Post`로 변환하고 `PostBatchWriter`가 `posts`에 저장 | 현재 구현은 Source가 Post 생성까지 책임지는 동기 직접 호출이다. 목표 상태는 `TechnicalPostDiscovered` 같은 published language/event handoff다. |
0 commit comments