Files
llm-wiki/raw/official-docs/mongodb-connection-string-options.md
T

12 KiB

title, source_type, url, archive_url, status, confidence, tags, related_projects, related_branches, created, last_reviewed
title source_type url archive_url status confidence tags related_projects related_branches created last_reviewed
official-doc / MongoDB — Connection String Options (timeout / pool / tls / retry) official-doc https://www.mongodb.com/docs/manual/reference/connection-string-options/ raw high
official-doc
ca-skeleton
persistence
mongodb
connection-pool
ca-skeleton
feature-mongo-runtime-baseline-contract
2026-07-28 2026-07-28

official-doc / MongoDB — Connection String Options (timeout / pool / tls / retry)

Layer: raw/official-docs/ — MongoDB 공식 Manual reference (connection-string-options) 원문 발췌. feature-mongo-runtime-baseline-contract 의 "Mongo 연결의 timeout·pool·TLS 파라미터를 드라이버 기본값에 맡기지 않고 명시하고 env registry 로 노출한다" 결정 근거.

Parent / 활용 branch (필수)

Branch 이 자료가 정당화하는 결정
raw/branch-notes/feature-mongo-runtime-baseline-contract Mongo 연결의 timeout(serverSelectionTimeoutMS/connectTimeoutMS/socketTimeoutMS)·pool(maxPoolSize/minPoolSize/maxIdleTimeMS)·TLS(tls)·retry(retryWrites/retryReads) 파라미터를 드라이버 기본값에 맡기지 않고 명시하고 env registry 로 노출한다

컨텍스트

ca-skeleton 은 MongoDB 를 optional adapter(문서 저장소 축)로 채택할 수 있다. 본 branch 는 연결 문자열의 timeout·pool·TLS·retry 파라미터를 드라이버 기본값에 맡길지, 명시적으로 설정하고 env registry 로 노출할지를 결정해야 한다. 이 판단에는 각 옵션이 실제로 무엇을 의미하는지, 그리고 드라이버/서버가 어떤 값을 기본값으로 쓰는지에 대한 공식 정의가 필요하다 — "기본값에 의존하지 않는다"는 결정을 정당화하려면 그 기본값이 무엇인지, 왜 운영 환경에 부적합할 수 있는지 먼저 알아야 한다.

출처 / Source

핵심 인용 / Key quotes (verbatim)

serverSelectionTimeoutMS] "Specifies how long (in milliseconds) to block for server selection before throwing an exception. Default: 30,000 milliseconds."

connectTimeoutMS] "The time in milliseconds to attempt a connection before timing out. The default is 10,000 milliseconds, but specific drivers might have a different default."

socketTimeoutMS] "The time in milliseconds to attempt a send or receive on a socket before the attempt times out. The default is no timeout, though different drivers might vary."

maxPoolSize] "The maximum number of connections in the connection pool. The default value is 100."

minPoolSize] "The minimum number of connections in the connection pool. The default value is 0."

maxIdleTimeMS] "The maximum number of milliseconds that a connection can remain idle in the pool before being removed and closed." — "This option is not supported by all drivers."

tls] "true: Initiates the connection with TLS/SSL. Default for [SRV Connection Format.]" / "false: Initiates the connection without TLS/SSL. Default for [Standard Connection String Format.]"

retryWrites / retryReads] "Official MongoDB drivers default to true." (두 옵션 모두 동일 문장으로 기본값 명시)

Claims Extracted / 추출된 주장

Claim ID Claim (이 자료가 직접 말하는 것) Evidence quote Strength Applies to Does not prove
MONGO-CONNSTR-C1 serverSelectionTimeoutMS 는 서버 선택을 위해 얼마나 오래 대기할지(밀리초)를 지정하며, 초과 시 예외를 던진다. 기본값은 30,000ms 이다 serverSelectionTimeoutMS] "Specifies how long (in milliseconds) to block for server selection before throwing an exception. Default: 30,000 milliseconds." official-vendor-doc 공식 MongoDB 드라이버가 이 URI 옵션을 지원하는 배포 전반 특정 드라이버(예: Spring Data MongoDB 가 사용하는 Java driver) 가 이 기본값을 그대로 상속하는지는 개별 드라이버 문서 확인 필요
MONGO-CONNSTR-C2 connectTimeoutMS 는 연결 시도를 timeout 처리하기 전까지 걸리는 시간(밀리초)이며, 기본값은 10,000ms 이지만 드라이버마다 다를 수 있다 connectTimeoutMS] "The time in milliseconds to attempt a connection before timing out. The default is 10,000 milliseconds, but specific drivers might have a different default." official-vendor-doc 연결 수립 단계의 timeout 일반 의미 "특정 드라이버가 다른 기본값을 가질 수 있다"는 문장 자체가 그 드라이버가 무엇인지는 밝히지 않음 — 실제 채택 드라이버의 기본값은 별도 확인 필요
MONGO-CONNSTR-C3 socketTimeoutMS 는 소켓에서 송수신을 시도하는 시간(밀리초)이며, 기본값은 "no timeout"(무제한)이다 socketTimeoutMS] "The time in milliseconds to attempt a send or receive on a socket before the attempt times out. The default is no timeout, though different drivers might vary." official-vendor-doc 연결 수립 이후 개별 read/write 소켓 작업의 timeout 일반 의미 드라이버가 실제로 이 "no timeout" 기본값을 그대로 두는지, 아니면 자체 기본값으로 override 하는지는 드라이버별 확인 필요 — 본 인용은 "different drivers might vary" 라고만 명시
MONGO-CONNSTR-C4 maxPoolSize 는 connection pool 의 최대 연결 수를 의미하며, 기본값은 100 이다 maxPoolSize] "The maximum number of connections in the connection pool. The default value is 100." official-vendor-doc connection pool 크기 설정 URI 옵션을 지원하는 드라이버 전반 100 이 모든 배포·워크로드에 적정한 값이라는 것은 이 문장이 증명하지 않음 — 값 산정(sizing) 기준은 별도 자료 필요
MONGO-CONNSTR-C5 minPoolSize 는 connection pool 의 최소 연결 수를 의미하며, 기본값은 0 이다 minPoolSize] "The minimum number of connections in the connection pool. The default value is 0." official-vendor-doc connection pool 최소 유지 연결 수 개념 모든 드라이버가 이 옵션을 지원하는 것은 아님(자료 원문에 별도 명시) — 채택 드라이버의 지원 여부 확인 필요
MONGO-CONNSTR-C6 maxIdleTimeMS 는 연결이 idle 상태로 pool 에 남아있다가 제거·종료되기까지의 최대 시간(밀리초)을 의미한다. 원문에는 이 옵션의 명시적 숫자 기본값이 기재되어 있지 않다(재확인 fetch로 "No default value is explicitly stated" 확인) maxIdleTimeMS] "The maximum number of milliseconds that a connection can remain idle in the pool before being removed and closed." official-vendor-doc idle connection 회수 개념 자체 이 옵션의 실제 기본 동작(예: 무제한 유지)이 무엇인지는 이 인용만으로 증명되지 않음 — "모든 드라이버가 지원하는 것은 아니다"라고만 명시되어 있어, 채택 드라이버 문서에서 실제 기본 동작 확인 필요
MONGO-CONNSTR-C7 tls(=ssl) 옵션의 기본값은 연결 문자열 형식에 따라 다르다 — SRV 형식(mongodb+srv://)에서는 true 가 기본, Standard 형식(mongodb://)에서는 false 가 기본이다 tls] "true: Initiates the connection with TLS/SSL. Default for [SRV Connection Format.]" / "false: Initiates the connection without TLS/SSL. Default for [Standard Connection String Format.]" official-vendor-doc mongodb:// 또는 mongodb+srv:// 형식의 연결 문자열을 사용하는 모든 공식 드라이버 TLS 미사용(Standard 형식 + tls 미지정) 상태에서 실제 운영 환경에 어떤 위험이 있는지는 이 문서가 규정하지 않음 — 위험 판단은 별도 보안 근거 필요
MONGO-CONNSTR-C8 retryWrites/retryReads 는 공식(official) MongoDB 드라이버에서 기본값이 true 이다(재시도 가능 write/read 가 기본 활성화) retryWrites/retryReads] "Official MongoDB drivers default to true." official-vendor-doc "공식" MongoDB 드라이버(자체 명시)를 사용하는 연결 서드파티/커스텀 드라이버 또는 mongosh 는 이 기본값 범위 밖 — 원문에 "mongosh does not support retryable reads" 라고 별도 명시(이번 raw 에는 별도 claim 미등록, 참고용으로만 기재)

Usage Boundaries / 적용 경계

  • 이 자료가 직접 증명하는 것:
    • MONGO-CONNSTR-C1: serverSelectionTimeoutMS 기본값 30,000ms
    • MONGO-CONNSTR-C2: connectTimeoutMS 기본값 10,000ms(드라이버별 상이 가능)
    • MONGO-CONNSTR-C3: socketTimeoutMS 기본값 "no timeout"(드라이버별 상이 가능)
    • MONGO-CONNSTR-C4~C5: maxPoolSize 기본값 100, minPoolSize 기본값 0
    • MONGO-CONNSTR-C6: maxIdleTimeMS 의미는 정의되지만 명시적 숫자 기본값은 이 문서에 없음
    • MONGO-CONNSTR-C7: tls 기본값이 연결 문자열 형식(SRV vs Standard)에 따라 갈린다는 사실
    • MONGO-CONNSTR-C8: 공식 드라이버 기준 retryWrites/retryReads 기본값 true
  • 이 자료가 증명하지 않는 것:
    • ca-skeleton 이 실제로 채택할 특정 드라이버(예: Spring Data MongoDB 가 감싸는 MongoDB Java Driver)가 이 문서의 기본값을 정확히 그대로 상속하는지 — 원문 곳곳에 "specific drivers might have a different default" / "different drivers might vary" 라고 반복 명시되어 있어, 채택 드라이버 자체 문서 교차 확인이 필요함
    • maxPoolSize: 100, serverSelectionTimeoutMS: 30000 등 기본값이 ca-skeleton 의 실제 트래픽·SLA 에 적정한지 — 이 문서는 정의와 기본값만 제공, sizing 판단 근거 아님
    • w/j/wtimeout 등 write concern 관련 옵션 — 별도 자료 raw/official-docs/write-concern-mongodb-official 로 이미 수집됨, 본 자료 범위 밖
    • read concern / change streams / replica-set 트랜잭션 요건 — 본 branch 완료 조건에 포함되나 이 자료는 다루지 않음(잔여 수집 대상)
  • ca-skeleton 프로젝트에 적용하려면 추가 확인이 필요한 것:
    • Spring Data MongoDB(또는 채택할 드라이버)가 이 URI 옵션들을 어떤 설정 property(예: spring.data.mongodb.uri vs 개별 property)로 노출하는지 — 별도 official-doc 필요
    • env registry 에 노출할 실제 값(예: serverSelectionTimeoutMS 를 30,000 그대로 둘지 낮출지)은 이 자료가 아니라 branch 의 §구현 가이드에서 운영 요구사항 기반으로 결정 — 본 자료는 "기본값이 무엇이고 왜 명시가 필요한지"까지만 증명

메모 / Notes

  • 최초 WebFetch 결과는 소형 모델이 각 옵션을 새 markdown 표(재구성)로 요약해 반환했다 — paraphrase 위험이 있어 폐기하고, "Do NOT summarize or reformat" 지시를 명시한 재요청으로 verbatim 인용을 다시 받았다. maxIdleTimeMS 의 명시적 기본값 유무는 3차 재요청으로 별도 확인("No default value is explicitly stated")했다.
  • tls/ssl 인용은 원문의 markdown 링크 문법([SRV Connection Format.](url))이 포함되어 있어, self-grep 매칭을 위해 링크 텍스트까지만([SRV Connection Format.]) 부분 문자열로 인용했다 — 원문 자체의 하이퍼링크 마크업이며 내용 왜곡 아님.
  • 잔여 수집 대상(이번 raw 범위 밖): read concern 공식 정의, change streams resume token 공식 정의, replica-set 트랜잭션 요건 공식 문서.