테스트 수 (전체 통과, 실패·에러 0)437건 (core-domain 146 / core-app 30 / api 258 / preset-golf 3)
./gradlew clean build 후 `grep -ho 'tests="[0-9]*"' */build/test-results/test/*.xml | sed 's/[^0-9]//g' | awk '{s+=$1} END {print s}'` → 437, 같은 방식으로 failures/errors 합계 → 0코드 규모 (main / test)main 15,993줄 187파일 / test 14,338줄 53파일
find . -name '*.java' -path '*/src/main/*' -exec cat {} + | wc -l → 15993 · find . -name '*.java' -path '*/src/test/*' -exec cat {} + | wc -l → 14338DB 마이그레이션Flyway 14개 (V1~V14)
ls api/src/main/resources/db/migration/*.sql | wc -l → 14
REST 엔드포인트32개 (컨트롤러 11개)
grep -rhcE '@(Get|Post|Put|Patch|Delete)Mapping' --include='*.java' api/src/main | awk '{s+=$1} END {print s}' → 32 · find . -name '*Controller.java' -path '*/src/main/*' | wc -l → 11동시성 검증 테스트예약·크레딧·환불·웹훅 멱등 4개 시나리오를 스레드 경합으로 검증
grep -rln 'CountDownLatch\|ExecutorService' --include='*.java' */src/test | grep -v build → ReservationConcurrencyTest, CreditConcurrencyTest, RefundConcurrencyTest, WebhookIdempotencyTest
전수 게이트 테스트 (규칙이 실제로 배선됐는지 소스를 훑어 판정)5개 — 보안 규칙·테넌트 격리·@Valid·프리셋 격리·PG 어댑터 계약
find . -name '*CoverageTest.java' -o -name '*ContractTest.java' | grep -v build → SecurityRuleCoverageTest, TenantGuardCoverageTest, ValidCoverageTest, TossPaymentGatewayContractTest, GolfPresetContractTest
코어/프리셋 분리 실증 (2차 프리셋 추가 시 코어 수정 없음)preset-golf는 자바 파일 3개(용어·정책·계약테스트)로 끝났고, api 모듈은 preset-fitness만 의존한다
find preset-golf -name '*.java' | grep -v build | wc -l → 3 · grep -n 'preset' api/build.gradle → runtimeOnly project(':preset-fitness') 한 줄뿐제품 방향 결정에 쓴 도메인 조사 표본요구사항 1,300건 (두 개의 수집 경로: 1,000건 + 300건)
python3 -c "import json; print(len(json.load(open('research/projects.json'))), len(json.load(open('research/projects_term.json'))))" → 1000 300