--- kind: CASE slug: grpc-spring-boot-starter-f03 title: default-unary-deadline 은 읽는 코드가 저장소에 없다 topic: runtime-reachability-and-composition project: clean-architecture-backend-template status: 게시 전 sourceRevision: 21234e38cdb9a926cbc92bb97a2aee2e4a7d2916 rootTreeNode: case:grpc-spring-boot-starter-f03 evidenceCapturedOn: 2026-09-01 assets: - key: grpc-spring-boot-starter-f03 file: ../../../final/evidence/rendered/grpc-spring-boot-starter-f03.svg evidence: - ../../../final/evidence/raw/grpc-spring-boot-starter-f03.txt source: - 원본 분석 절은 analysis/grpc/grpc-spring-boot-starter.md#L236 이다. module: grpc-spring-boot-starter priority: P3 --- # default-unary-deadline 은 읽는 코드가 저장소에 없다 getDefaultUnaryDeadline() 의 호출자가 0 이다. 검증기도 이 값을 쓰지 않는다 — 검증기가 보는 것은 정책 목록의 policy.deadline().usable() 이고 그 값이 0 이면 위반을 낸다. ## 문제 getDefaultUnaryDeadline() 의 호출자가 0 이다. 검증기도 이 값을 쓰지 않는다 — 검증기가 보는 것은 정책 목록의 policy.deadline().usable() 이고 그 값이 0 이면 위반을 낸다. ## 결론 즉 자바독이 말하는 "선언하지 않은 메서드에 적용되는 기본 마감" 을 적용하는 코드가 없다. ignoreUnknownFields = false 라서 이 키를 설정하는 것은 성공하고 아무 효과가 없다. 수정은 그 기본값을 실제로 적용하는 지점을 만들거나(정책 목록 조립 시), 필드를 제거하는 것이다. ## 검증 환경 OpenJDK : 21.0.12 java -version 으로 확인 Gradle : 9.0.0 src/gradle/wrapper/gradle-wrapper.properties 의 distributionUrl 로 확인 확인 방식 : getDefaultUnaryDeadline 호출처 검색과 검증기가 실제로 읽는 값 확인 소스 수정 : x ## 재현 조건 원문은 analysis/grpc/grpc-spring-boot-starter.md#L236 에 있다. ## 본문 `getDefaultUnaryDeadline()` 의 호출자가 0 이다. 검증기도 이 값을 쓰지 않는다 — 검증기가 보는 것은 정책 목록의 `policy.deadline().usable()` 이고 그 값이 0 이면 위반을 낸다. ## 검증기가 실제로 보는 값 :::evidence key="grpc-spring-boot-starter-f03" alt="분석 문서 analysis/grpc/grpc-spring-boot-starter.md 에서 이 기록의 근거 절을 그대로 잘라낸 15줄. 코드베이스를 측정한 것이 아니라 원본 판정이 무엇을 적었는지를 보여 준다." caption="analysis/grpc/grpc-spring-boot-starter.md 발췌 — 15줄" zoom="true" ::: ## 자바독이 말하는 기본 마감을 적용하는 코드가 없다 "선언하지 않은 메서드에 적용되는 기본 마감" 이다. `ignoreUnknownFields = false` 라서 이 키를 설정하는 것은 성공하고 아무 효과가 없다. ## 수정 그 기본값을 실제로 적용하는 지점을 만들거나(정책 목록 조립 시), 필드를 제거하는 것이다. ## 확인하지 못한 것 이 값을 바꿔 동작 차이가 없음을 실행으로 확인하지 않았다. 호출자가 0 이라는 것으로 판정했다.