--- kind: CASE slug: analysis-finding-a08-f003 title: 문서가 지목한 기본값 위치와 test 목록이 실제와 다르다 topic: file-transfer-and-storage project: clean-architecture-backend-template status: 게시 전 sourceRevision: 21234e38cdb9a926cbc92bb97a2aee2e4a7d2916 rootTreeNode: case:analysis-finding-a08-f003 evidenceCapturedOn: 2026-09-01 assets: - key: analysis-finding-a08-f003 file: ../../../final/evidence/rendered/analysis-finding-a08-f003.svg evidence: - ../../../final/evidence/raw/analysis-finding-a08-f003.txt source: - 원본 분석 절은 analysis/08-adapter-outbound-fileserver.md#L122 이다. --- # 문서가 지목한 기본값 위치와 test 목록이 실제와 다르다 README 가 선택 스위치의 기본값이 부트스트랩 설정 파일에 꺼짐으로 들어 있다고 적는다. 그 파일에 해당 키가 없다. 그리고 테스트 목록의 첫 항목은 이 리프가 아니라 애플리케이션 코어에 있다. ## 관계 - **두 selector의 설정 취급이 비대칭이고 검증된 쪽은 하나뿐이다** 같은 리프의 설정 사례다. - **README의 세 가지 사실 오류** 같은 계열의 문서 오류다. - **동작이 옳아도 문서가 가리킨 자리는 틀릴 수 있다** 이 사례가 그 규칙의 형태다. ## 문제 README 가 두 가지를 적는다. 선택 스위치의 기본값 위치와 이 리프를 검증하는 테스트 목록이다. ## 결론 첫째가 어긋난다. README 는 선택 스위치가 부트스트랩 설정 파일에서 꺼짐으로 기본값을 갖는다고 적는다. 그 파일에는 현재 경로의 활성화 키도 호환 경로의 활성화 키도 없다. 비슷한 접두사로 걸리는 두 줄은 주석이다. 실효 기본값은 다른 경로로 만들어진다. 속성이 없으면 조건부 애너테이션이 맞지 않고 빈이 만들어지지 않는다. 그러므로 동작 자체는 옳다. 꺼진 것이 기본이다. 틀린 것은 그 결과가 어디서 오는지에 대한 서술이다. 문서가 가리킨 자리에 그 키가 없다. 둘째도 어긋난다. README 의 테스트 목록 첫 항목이 이 리프에 없다. 애플리케이션 코어에 있는 클래스다. 판정은 P3 다. 둘 다 동작이 아니라 서술의 문제다. ## 검증 환경 Spring Boot : 4.0.8 확인 방식 : 설정 파일 키 검색과 테스트 클래스 위치 확인 소스 수정 : x ## 재현 조건 원문은 final/evidence/raw/142 계열에 있다. 1. README 의 기본값 서술 줄을 읽는다. 2. 지목된 설정 파일에서 두 활성화 키를 검색한다. 3. 걸리는 줄이 주석인지 확인한다. 4. 조건부 애너테이션이 속성 부재에서 어떻게 동작하는지 확인한다. 5. 테스트 목록의 첫 항목을 저장소 전체에서 찾는다. ## 본문 README는 R2 selector가 "`app-bootstrap/application.yml`에서 `false`로 기본값을 갖는다"고 적는다. 그 파일에 `app.fileserver.enabled`도 `app.file-export.enabled`도 없다(`142-...` §8.4e; `app.fileserver`로 걸리는 두 줄은 주석이다). ## FilePublicationContractTest 참조 위치 :::evidence key="analysis-finding-a08-f003" alt="코드베이스에서 FilePublicationContractTest 를 검색한 출력 1줄. 이 기록이 세는 참조가 그 출력에 그대로 보인다." caption="FilePublicationContractTest 코드베이스 검색 — 1줄 · exit 0" zoom="true" ::: ## 동작은 옳고 문서가 가리킨 자리가 비어 있다 실효 기본값은 "속성 부재 → `@ConditionalOnProperty` 미매치 → bean 없음"이다. ## test 목록의 첫 항목도 다른 곳에 있다 README의 Tests 목록 첫 항목 `FilePublicationContractTest`는 이 leaf가 아니라 `application-core`에 있다. ## 확인하지 못한 것 그 키가 과거에 설정 파일에 있었는지 확인하지 않았다.