watchlist 상태 조회 시 도메인 경계 처리 방식 선택

상태

승인

후보군

방안설명
UseCase에서 WatchlistRepository 직접 주입stock UseCase가 watchlist Repository를 직접 참조
WatchlistDomainService 주입stock UseCase → watchlist DomainService 경유 호출
BE 전용 조회 서비스(StockQueryService) 신설두 도메인을 조합하는 query 전용 서비스 생성

결정

ListStocksUseCase에서 WatchlistDomainService를 주입해 findAll() → symbol set 교차 조회한다.

  • watchlist 조회 실패(예외) 시 isInWatchlist = false로 graceful degradation
  • watchlist DomainService는 @Service이므로 UseCase에서 주입하는 것은 컨벤션 위반 아님

결정 이유

  • 도메인 내부 캡슐화 유지 (인터페이스 경유)
  • be-code-convention: UseCase는 DomainService만 호출
  • Repository 직접 참조는 레이어·도메인 경계 위반(p1)

검토 대안

방안기각 이유
UseCase에서 WatchlistRepository 직접 주입레이어·도메인 경계 위반 (be-code-convention p1)
BE 전용 조회 서비스(StockQueryService) 신설오버엔지니어링, 현재 규모에서 불필요

트레이드 오프

  • 득: 컨벤션 준수, 도메인 경계 유지, graceful degradation 적용 용이
  • 실: stock → watchlist 크로스 도메인 의존 발생 (DomainService 레벨에서 최소화)