Skip to content

트릭 등록 팩토리 우회 금지 아키텍처 규칙 추가 (ArchUnit) - #266

Open
ckdals4600 wants to merge 1 commit into
mainfrom
feature/#263-ArchUnit
Open

트릭 등록 팩토리 우회 금지 아키텍처 규칙 추가 (ArchUnit)#266
ckdals4600 wants to merge 1 commit into
mainfrom
feature/#263-ArchUnit

Conversation

@ckdals4600

Copy link
Copy Markdown
Contributor

관련 이슈

PR 설명

#261 에서 도입한 메트릭 등록 팩토리(AiClientMetrics, AsyncTaskMetrics)의 우회를 아키텍처 규칙으로 차단합니다.

배경

팩토리는 태그 키셋을 메서드 시그니처로 고정하지만, 팩토리 사용 자체를 강제하는 장치는 없었습니다. Counter.builder 를 직접 호출하면 컴파일·기존 테스트를 모두 통과하면서 #259 에서 교정한 키셋 불일치가 조용히 재발할 수 있습니다. 이로써 재발 방지가 3중으로 완성됩니다:

변경 사항

  • archunit-junit5:1.3.0 의존성 추가 (testImplementation — 프로덕션 빌드에 미포함)
  • architecture 테스트 패키지 신설, MetricsArchitectureTest 추가
    • 규칙: global.metrics 패키지 외부에서 Counter.builder(String) 호출 금지
    • DoNotIncludeTests: 검사 대상은 main 코드만 (테스트 코드는 검증 목적의 직접 등록 허용)
    • 위반 시 실패 메시지(because)에 팩토리 경유 이유와 재발 메커니즘 명시 → 위반자가 메시지만으로 해결 방법을 알 수 있음
  • architecture 패키지는 향후 아키텍처 규칙(레이어 의존 등)의 확장 지점으로 사용

참고

  • Timer/Gauge 등 다른 미터 타입 규칙 확장은 필요 시 별도 이슈로 다룹니다.

@ckdals4600
ckdals4600 requested review from Goder-0 and minibr July 27, 2026 15:13
@ckdals4600 ckdals4600 self-assigned this Jul 27, 2026
Counter.builder 직접 호출을 global.metrics 패키지 외부에서 금지하는
ArchUnit 규칙 추가. 팩토리(#261)를 우회한 등록이 컴파일·기존 테스트를
통과하며 태그 키셋 불일치를 재발시키는 것을 구조적으로 차단.

- archunit-junit5 의존성 추가 (testImplementation)
- 규칙은 main 코드만 검사 (DoNotIncludeTests)
@ckdals4600
ckdals4600 force-pushed the feature/#263-ArchUnit branch from 327a2c5 to 5d08f2b Compare July 27, 2026 15:26
@github-actions

Copy link
Copy Markdown

📊 코드 커버리지 리포트

Overall Project 93.83% 🍏

There is no coverage information present for the Files changed

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

메트릭 등록 팩토리 우회 금지 아키텍처 규칙 추가 (ArchUnit)

1 participant