[BE-05] archTest Gradle 태스크 분리 + 관찰→게이트 승격 배선

작업 내용 (설계 의도)

근거 TDD: ../TDD.md “Release Scenario — 무중단 배포” / ADR-005 / PRD NFR(스캔 2분 이내), Open Q2

변경 사항

  • backend/build.gradle.kts에 아키텍처 규칙 전용 Gradle 태스크 archTest를 등록한다 — com.sportsapp.architecture 패키지 테스트만 실행.
  • 1단계(관찰 모드): archTestcheck에 편입하지 않는다. ./gradlew archTest로 수동 실행해 베이스라인 0건 재확인만 한다.
  • 2단계(게이트 승격): 베이스라인 0건 확인 후 checkarchTest에 의존하도록 배선(위반 시 빌드 실패). Open Q2를 “게이트 강제”로 확정.
  • NFR: archTest가 전체 스캔 2분 이내 완료되는지 실행 시간으로 확인(ArchUnit ClassFileImporter 단일 임포트).
  • 이 티켓만 build.gradle.kts를 수정한다(공통 파일 단독 통합 — 다른 티켓과 파일 교집합 없음).

롤백

  • 규칙 테스트가 예상치 못한 위반을 내면 check에서 archTest 의존을 제거(2→1단계 역전환)해 즉시 게이트 해제. 프로덕션 영향 없음.

의존

  • BE-01, BE-02, BE-03, BE-04 (모든 규칙 스펙이 존재해야 archTest가 이들을 실행)

다이어그램

처리 흐름

sequenceDiagram
    participant Dev as 개발자
    participant G as Gradle
    participant AT as archTest 태스크
    Dev->>G: ./gradlew archTest (1단계 관찰)
    G->>AT: architecture 패키지 규칙 실행
    AT-->>Dev: 0건 확인
    Dev->>G: check → archTest 의존 배선 (2단계 게이트)

클래스 의존

flowchart LR
    check["check 태스크"] --> archTest["archTest 태스크"]
    archTest --> Rules["architecture/*RulesTest"]

테스트 케이스

  • ./gradlew archTest 실행 시 architecture 패키지 규칙 전체가 실행되고 위반 0건으로 통과한다 (관찰 모드)
  • archTest 전체 실행 시간이 2분 이내다 (NFR 검증)
  • 게이트 승격 후 규칙 위반을 심으면 ./gradlew check가 빌드 실패로 전환된다 (게이트 동작)
  • (롤백 시나리오) check에서 archTest 의존을 제거하면 위반이 있어도 빌드가 통과한다 (게이트 해제)
  • 기존 test/harnessCheck 태스크 동작에 영향을 주지 않는다 (회귀 없음)