# 팩토리의 javadoc 이 자기가 무엇을 고치려고 만들어졌는지 적는다
 * The one place the typed profile becomes the settings the driver is built from (MNG-INT-002).
 *
 * <p>The profile, the credential resolver, the TLS and Stable-API flags and the pool and timeout
 * policy all existed and were all unit-tested. None of them reached a {@link MongoClientSettings}:
 * the values were checked as intermediate objects and whatever the driver ended up configured with
 * was decided elsewhere, by defaults nobody had chosen. A policy that nothing applies reads exactly
 * like a policy that is applied — the tests pass, the record is populated, and the client connects
 * with a three-second timeout it inherited from the driver rather than the two the profile states.

# 저장소 전체에서 그 타입과 자격증명 해석기를 언급하는 곳
./docs/reviews/2026-08-14-mongodb-module-code-review.md:688:1. `MongoCredentialResolver` port는 secret reference만 받고 value는 client factory의 최소 scope에서만
./docs/superpowers/plans/evidence/2026-08-15-wave6-final/task6-p0-reconciliation.md:144:nowhere. It is mapped — `MongoClientSettingsFactory` calls `.uuidRepresentation(...)`. Verified
./docs/architecture/mongo-api-surface.txt:172:dev.caskeleton.adapter.outbound.mongo.client.MongoClientSettingsFactory
./docs/architecture/mongo-api-surface.txt:322:dev.caskeleton.adapter.outbound.mongo.security.MongoCredentialResolver
CLAUDE.md:106:`secret://` reference and `MongoCredentialResolver` is the only thing that turns one into a

# 프로파일 검증이 production 에 요구하는 것
    if (production && !tlsRequired) {
      throw MongoOperationRejectedException.of(
          "config.tls",
          "a production MongoDB profile requires TLS; the flag existed and nothing checked it, so a"
              + " deployment could carry tls-required=false and still be called production");
    }

# 그 검증이 켜지려면 무엇이 있어야 하나
    return () -> {
      if (properties.profiles().isEmpty()) {
        return;
      }
      if (probe.getIfAvailable() == null) {
        throw new IllegalStateException(
            "the Mongo platform has configured profiles but no MongoTopologyProbe bean, so the "
                + "startup validator has nothing to ask about the server: supply a probe built from "
                + "the live data-plane client, or remove the platform profiles. Starting without one "
                + "means the topology, the Stable API level and the credential's real capabilities "
                + "are checked by nothing — silently, because the check was conditioned on the very "
                + "bean whose absence it should report.");
      }

#   출하 설정이 이 모듈 아래 노출하는 키
365:  persistence-mongo:
367-    enabled: ${APP_PERSISTENCE_MONGO_ENABLED:false}
370-    active-profile: ${APP_PERSISTENCE_MONGO_ACTIVE_PROFILE:}
#   platform.profiles 를 넣는 곳 전수 : 0

# 이 리프가 이미 쓰는 배선 수단
34-  /** The customizer Boot applies when it builds the client. */
35-  @Bean
36-  @ConditionalOnBean(MeterRegistry.class)
37-  @ConditionalOnMissingBean(name = "mongoDriverObservabilityCustomizer")
38:  public MongoClientSettingsBuilderCustomizer mongoDriverObservabilityCustomizer(
#   프로덕션에서 그 수단을 등록하는 곳 전수 : 1

# 이 경계를 보는 시험이 있는가

/**
 * The typed profile reaches the settings the driver is actually built from (MNG-INT-002).
 *
 * <p>The profile, the credential resolver, the TLS and Stable-API flags and the pool and timeout
 * policy all existed and were all unit-tested. None of them was connected to a {@code
 * MongoClientSettings}: the values were checked as intermediate objects, and whatever the driver
 * ended up configured with was decided elsewhere. A policy that nothing applies is a policy that
 * reads as applied.
 *
#   TLS 레인 시험이 쓰는 클라이언트
security/MongoTlsLaneTest.java-135-        MongoClientSettings.builder()
security/MongoTlsLaneTest.java-136-            .applyConnectionString(new ConnectionString(connectionString))
security/MongoTlsLaneTest.java:137:            .applyToSslSettings(ssl -> ssl.enabled(true).context(trustOnly(authorityPem)))
