[BE-02] common 공유 커널 순수성 규칙 (R4)
작업 내용 (설계 의도)
근거 TDD: ../TDD.md “FR-7 정적 검증 방법” R4 / ADR-002 / ADR-005
변경 사항
- 공유 커널
domain.common이 어떤 도메인 패키지도 import하지 않음을 ArchUnit으로 강제한다(공유 커널 순수성). - 공유 커널이 특정 도메인에 의존하면 그 도메인 변경이 전 도메인에 전파되므로, common은 순수 공통 계약만 담아야 한다.
- 신규 테스트 파일만 추가 — 프로덕션 코드 무변경. 베이스라인 위반 0건(common → 타 도메인 import 실측 0건).
위치
backend/src/test/kotlin/com/sportsapp/architecture/SharedKernelPurityRulesTest.kt(신규)- 기존
architecture/스타일(ArchUnit +@Test규칙 홀더) 준수.
의존
- 없음 (독립 — 새 파일만 생성)
다이어그램
처리 흐름
sequenceDiagram participant T as SharedKernelPurityRulesTest participant A as ArchUnit T->>A: noClasses().that().resideIn(domain.common) A-->>T: 타 도메인 import 0건 → PASS
클래스 의존
flowchart LR Test["SharedKernelPurityRulesTest"] --> ArchUnit["ArchUnit ClassFileImporter"]
테스트 케이스
- domain.common이 booking·goods·ticketing 등 코어 도메인을 import하지 않으면 규칙이 통과한다 (베이스라인 0건)
- domain.common이 notification·operator·mcp 등 지원/서브시스템 도메인을 import하지 않으면 규칙이 통과한다
- (위반 시나리오) common이 domain.user를 import하면 규칙이 실패한다
- common 하위(exceptions, security, storage) 전체가 규칙 스캔 대상에 포함된다 (엣지: 서브패키지 커버)