AI 에이전트의 경우: 문서 인덱스는 https://www.mongodb.com/ko-kr/docs/llms.txt에서 사용할 수 있으며, 모든 페이지의 마크다운 버전은 어떤 URL 경로에 .md를 추가하여 사용할 수 있습니다.
Docs Menu

연결 옵션 지정

이 섹션에서는 Rust 드라이버 에서 사용할 수 있는 MongoDB 연결 및 인증 옵션에 대해 설명합니다. 연결 URI( 연결 문자열이라고도 함)를 사용하거나 Client를 생성할 때 ClientOptions 인스턴스에 필드를 설정하여 연결을 구성할 수 있습니다.

연결 URI를 Client::with_uri_str 메서드에 전달하는 경우 문자열에 연결 옵션을 <name>=<value> 쌍으로 포함할 수 있습니다. 다음 예시 값이 60000connectTimeoutMS 옵션과 값이 truetls 옵션이 포함된 연결 URI를 보여 줍니다.

use mongodb::Client;
let uri = "mongodb://<hostname>:<port>/?connectTimeoutMS=60000&tls=true";
let client = Client::with_uri_str(uri).await?;

연결 URI에 포함하는 대신 ClientOptions 인스턴스 에서 연결 옵션을 설정하다 수 있습니다. ClientOptions 인스턴스 사용하여 연결을 구성하면 런타임에 설정을 변경하고 컴파일 중에 오류를 포착하기가 더 쉽습니다. 다음 예시 ClientOptions 를 사용하여 연결 옵션을 설정하다 방법을 보여 줍니다.

use std::time::Duration;
use mongodb::{Client, options::ClientOptions};
let uri = "mongodb://<hostname>:<port>/";
let mut client_options = ClientOptions::parse(uri).await?;
client_options.connect_timeout = Some(Duration::from_secs(60000));
//Set additional options on client_options here
let client = Client::with_options(client_options)?;

다음 섹션에서는 Rust 드라이버 에서 사용할 수 있는 연결 옵션에 대해 설명합니다. 연결 옵션의 전체 목록을 보려면 연결 문자열에 대한 연결 문자열 옵션 섹션 서버 가이드를 참조하세요.

옵션 이름
허용되는 값
기본값
설명

압축기

쉼표로 구분된 문자열 목록

none

Client 인스턴스가 지정된 순서대로 사용하는 압축기를 지정합니다.
네트워크 압축에 대해 자세히 학습하려면 네트워크 압축 가이드를 참조하세요.

zlibCompressionLevel

0 ~ 9사이의 정수

6

해당 압축기를 사용하는 경우 zlib 압축의 레벨 필드를 지정합니다. 레벨 값이 높을수록 압축이 많아져 속도가 느려집니다.
0 값을 설정하면 압축이 없고, 9 값을 설정하면 최대 압축이 지정됩니다.
네트워크 압축에 대해 자세히 학습하려면 네트워크 압축 가이드를 참조하세요.

옵션 이름
허용되는 값
기본값
설명

connectTimeoutMS

Non-negative integer

10000 (10초)

서버에 연결을 시도할 때 각 기본 TCP 스트림에 전달되는 연결 제한 시간(밀리초)을 지정합니다.

옵션 이름
허용되는 값
기본값
설명

heartbeatFrequencyMS

500보다 크거나 이와 동일한 정수

10000 (10초)

각 모니터링 스레드가 서버 검사를 수행하는 사이에 대기하는 시간(밀리초)을 지정합니다.

최대 보관 기간

-1, 또는 다음보다 크거나 같은 정수 90

-1

세컨더리 노드가 주어진 작업에 대해 고려될 수 있는 프라이머리 노드 뒤의 최대 지연 시간(초)을 지정합니다.
이 옵션의 값은 최소 90이어야 하며, 그렇지 않으면 작업에서 오류가 발생합니다. 값이 -1 이면 최대 지연이 없습니다.

serverSelectionTimeoutMS

Non-negative integer

30000 (30초)

Client 인스턴스가 시간 초과되기 전에 작업에 대한 서버를 선택하려고 할 때 대기하는 시간(밀리초)을 지정합니다.

옵션 이름
허용되는 값
기본값
설명

authMechanism

문자열

none

사용할 인증 메커니즘을 지정합니다. 이 옵션을 지정하지 않으면 드라이버는 기본 인증 메커니즘을 사용합니다. Rust 드라이버의 인증에 대해 자세히 알아보려면 인증 메커니즘 가이드를 참조하세요.

authMechanismProperties

문자열

none

authMechanism 옵션에 설정된 인증 메커니즘에 대한 추가 속성을 지정합니다.

authSource

문자열

설명 참조

인증에 사용되는 데이터베이스를 지정합니다.
이 옵션의 기본값은 SCRAM 기반 인증 메커니즘의 경우 admin, MONGODB-X509 메커니즘의 경우 $external, PLAIN 메커니즘의 경우 데이터베이스 이름 또는 $external 입니다.

TLS

부울

false

서버와의 연결에 사용할 Client 인스턴스에 대한 TLS 구성을 지정합니다.
기본적으로 TLS는 꺼져 있습니다.

tlsAllowInvalidCertificates

부울

false

서버가 유효하지 않은 인증서를 제시하는 경우 Client 인스턴스가 오류를 반환할지 여부를 지정합니다.
이 옵션은 테스트 환경에서만 true 로 설정하여 애플리케이션에 취약점이 생기지 않도록 하는 것이 좋습니다.

tlsCAFile

문자열

설명 참조

Client 인스턴스가 TLS에 사용하는 CA(인증서 발급 기관) 파일의 경로를 지정합니다.
이 옵션을 지정하지 않으면 드라이버는 webpki-roots 크레이트의 Mozilla 루트 인증서를 사용합니다.

tlsCertificateKeyFile

문자열

none

Client 인스턴스가 서버에 제시하여 신원을 확인하는 인증서 파일의 경로를 지정합니다.
이 옵션을 설정하지 않으면 Client 인스턴스는 서버에 신원을 확인하려고 시도하지 않습니다.

tlsCertificateKeyFilePassword

문자열

none

키가 암호화됨 된 경우 인증서 파일 의 개인 키를 해독하기 위한 비밀번호를 지정합니다.

tlsInsecure

부울

false

서버가 유효하지 않은 인증서를 제시하는 경우 Client 인스턴스가 오류를 반환할지 여부를 지정합니다.
이 옵션은 테스트 환경에서만 true 로 설정하여 애플리케이션에 취약점이 생기지 않도록 하는 것이 좋습니다.

옵션 이름
허용되는 값
기본값
설명

directConnection

부울

false

cluster의 모든 서버를 검색하여 연결하는 대신 Client 인스턴스를 단일 호스트에 직접 연결할지 여부를 지정합니다.

enableOverloadRetargeting

부울

false

드라이버가 과부하 오류를 반환하는 서버의 우선순위를 낮추어 동일한 과부하 서버에서 다시 시도할 가능성을 줄이는지 지정합니다.

journal

부울

false

작업이 온디스크 저널로 전파되었음을 확인 요청합니다.

localThresholdMS

Non-negative integer

15

드라이버와 서버 간의 평균 왕복 시간이 모든 적합한 서버 중 가장 짧은 왕복 시간과 비교하여 지속될 수 있는 시간(밀리초)을 지정합니다.
0 값은 지연 시간 창이 없음을 나타내므로 가장 낮은 평균 왕복 시간을 가진 서버만 사용 가능합니다.

maxAdaptiveRetries

Non-negative integer

2

드라이버 에 과부하 오류가 발생할 경우 시도할 수 있는 최대 재시도 횟수를 지정합니다.

readConcernLevel

문자열

none

Client 인스턴스에서 수행되는 작업에 대한 기본값 읽기 고려 (read concern)를 지정합니다.
자세히 알아보려면 서버 매뉴얼에서 읽기 고려 (read concern) 를 참조하세요.

읽기 설정

문자열

primary

드라이버가 읽기 작업을 복제본 세트의 노드에 라우팅하는 방법을 지정합니다.
자세히 학습하려면 서버 매뉴얼에서 읽기 설정 (read preference) 을 참조하세요.

readPreferenceTags

쉼표로 구분된 키-값 쌍 목록

none

작업에 고려되는 복제본 세트 노드를 지정합니다. 이 키의 각 인스턴스는 별도의 태그 세트입니다.
드라이버는 각 태그 세트를 검사하여 세트의 각 태그가 있는 하나 이상의 서버를 찾습니다.

복제본 세트

문자열

none

Client 인스턴스가 연결되는 복제본 세트의 이름을 지정합니다.

retryReads

부울

true

작업이 실패할 경우 클라이언트가 읽기 작업을 다시 시도할지 여부를 지정합니다.

w

음수가 아닌 정수 또는 문자열

none

작업이 특정 수 또는 다양한 서버에 전파되었음을 확인하도록 요청합니다.
자세히 알아보려면 서버 매뉴얼의 쓰기 고려 (write concern) 를 참조하세요.

wTimeoutMS

Non-negative integer

시간 초과 없음

쓰기 고려 (write concern)에 대한 제한 시간(밀리초)을 지정합니다.
작업이 제한 시간 내에 요청된 수준으로 전파되지 않으면 드라이버에서 오류가 발생합니다.

옵션 이름
허용되는 값
기본값
설명

maxIdleTimeMS

Non-negative integer

0

연결이 서버에 의해 닫히기 전에 연결 풀에서 유휴 상태로 유지될 수 있는 시간(밀리초)을 지정합니다.
0 값은 클라이언트가 유휴 연결을 닫지 않음을 나타냅니다.

maxPoolSize

Non-negative integer

10

Client 인스턴스가 주어진 서버에 대한 연결 풀에서 만들 수 있는 최대 연결 수를 지정합니다.
maxPoolSize 연결의 값이 체크아웃된 동안 작업을 시도하면 작업이 진행 중인 작업이 끝나고 연결이 풀로 복귀될 때까지 기다립니다.

minPoolSize

Non-negative integer

0

특정 시간에 서버의 연결 풀에서 사용 가능한 최소 연결 수를 지정합니다.
푸를에 minPoolSize 개 미만의 연결이 있는 경우 서버는 배경에서 minPoolSize값까지 연결을 추가합니다.

연결 풀에 대한 자세한 내용은 연결 풀 가이드 참조하세요.

옵션 이름
허용되는 값
기본값
설명

앱 이름

문자열

none

Client 인스턴스가 핸드쉐이크의 일부로 서버에 보내는 애플리케이션 이름을 지정합니다.
appName 을 지정하면 서버 로그를 사용하여 어떤 Client 인스턴스가 서버에 연결되어 있는지 확인하는 데 도움이 될 수 있습니다.

Rust 드라이버 의 ClientOptions 에 대한 자세한 내용은 ClientOptionsAPI 설명서를 참조하세요.