[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단계(관찰 모드):
archTest를check에 편입하지 않는다../gradlew archTest로 수동 실행해 베이스라인 0건 재확인만 한다. - 2단계(게이트 승격): 베이스라인 0건 확인 후
check가archTest에 의존하도록 배선(위반 시 빌드 실패). 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태스크 동작에 영향을 주지 않는다 (회귀 없음)