--- kind: CONCEPT slug: grpc-spring-boot-starter-c01 title: Advanced 의존 금지를 세 겹으로 강제한다 topic: security-and-trust-boundaries project: clean-architecture-backend-template status: 게시 전 sourceRevision: 21234e38cdb9a926cbc92bb97a2aee2e4a7d2916 rootTreeNode: concept:grpc-spring-boot-starter-c01 evidenceCapturedOn: 2026-09-01 assets: - key: grpc-spring-boot-starter-c01 file: ../../../final/evidence/rendered/grpc-spring-boot-starter-c01.svg - key: grpc-spring-boot-starter-c01-diagram file: ../../../final/assets/diagrams/grpc-spring-boot-starter-c01.svg evidence: - ../../../final/evidence/raw/grpc-spring-boot-starter-c01.txt source: - 원본 분석 절은 final/document.md#a20-grpc-spring-boot-starter#L42 이다. module: grpc-spring-boot-starter --- # Advanced 의존 금지를 세 겹으로 강제한다 이 리프가 `:grpc-advanced:*`에 닿으면 안 된다는 규칙이 주석이 아니라 세 지점에서 각각 강제된다 — 레지스트리, 빌드 검증 태스크, 자바 쪽 단언. ## 본문 build.gradle 주석이 이 리프의 경계를 적는다. ```groovy // build.gradle:3-7 // The platform's composition boundary: typed properties, auto-configuration and the startup // validator that refuses a deployment whose configuration contradicts a Stable invariant. // // It must never reach `:grpc-advanced:*`. That is not a comment — the registry's // allowed_dependencies for this leaf omits every advanced id, `verifyCleanArchitectureDependencies` // enforces it, and GrpcPlatformStartupValidatorTest asserts the same rule from the Java side. ``` ## 한 규칙을 지키는 세 지점 :::evidence key="grpc-spring-boot-starter-c01-diagram" alt="Advanced 의존 금지 규칙에서 레지스트리와 빌드 검증 태스크와 자바 단언 세 상자로 화살표가 나가는 구조" caption="한 규칙을 지키는 세 지점" zoom="false" ::: 격리 규칙은 세 겹이다 — 레지스트리, 빌드 검증 태스크, 그리고 자바 쪽 단언. 세 번째는 `validateAdvancedIsolation` 이 `GrpcStableBuildInvariant.requireNoAdvancedDependency` 를 부르는 형태다. ## GrpcStableBuildInvariant 참조 위치 :::evidence key="grpc-spring-boot-starter-c01" alt="코드베이스에서 GrpcStableBuildInvariant 를 검색한 출력 10줄. 이 기록이 세는 참조가 그 출력에 그대로 보인다." caption="GrpcStableBuildInvariant 코드베이스 검색 — 10줄 · exit 0" zoom="true" :::