Docs Menu
Docs Home
/ / /
C 드라이버

드라이버 버전 업그레이드

이 페이지에서는 새 버전의 C 운전자 로 업그레이드 때 애플리케이션 변경해야 하는 경우에 대해 설명합니다.

업그레이드하기 전에 다음 작업을 수행하세요:

  • 새 C 운전자 버전이 애플리케이션 연결되는 MongoDB Server 버전 및 애플리케이션 이 실행되는 플랫폼과 호환되는지 확인합니다. 버전 호환성 정보는 C 운전자 호환성 페이지를 참조하세요.

  • 애플리케이션 에서 사용 중인 현재 운전자 버전과 업그레이드 예정 버전 간의 호환성이 손상되는 변경은 호환성이 손상되는 변경 섹션에서 확인하세요. MongoDB Server 출시하다 호환성 변경 사항에 대해 자세히 학습 서버 릴리스 호환성 변경 사항 섹션을 참조하세요.

향후 운전자 버전을 업그레이드할 때 애플리케이션 필요한 변경 사항의 수를 최소화하려면 Stable API 사용합니다. 자세한 학습 은 Stable API 가이드 참조하세요.

참고

C 운전자 시맨틱 버전 관리를 따릅니다. 운전자 모든 출시하다 에서 빌드 시스템 또는 패키지 호환성을 손상시킬 수 있습니다. 패치 릴리스는 우발적인 API 호환성이 손상되는 변경을 되돌릴 수 있습니다.

호환성이 손상되는 변경은 드라이버의 특정 버전에서 시작되는 규칙 또는 동작의 변경입니다. 이러한 유형의 변경으로 인해 드라이버를 업그레이드하기 전에 해결하지 않으면 애플리케이션이 제대로 작동하지 않을 수 있습니다.

이 섹션의 호환성이 손상되는 변경은 이를 도입한 드라이버 버전별로 분류됩니다. 드라이버 버전을 업그레이드할 때 현재 버전과 업그레이드 버전 간의 호환성이 손상되는 변경을 모두 해소합니다.

C 운전자 libbsonlibmongoc라는 두 개의 라이브러리로 구성됩니다. 이 가이드 의 섹션에서는 각 라이브러리에 포함된 호환성이 손상되는 변경에 대해 설명합니다.

예시

버전 2.0.0로 업그레이드

C 운전자 버전 1.x에서 버전 2.0.0으로 업그레이드하는 경우, 버전 1.x부터 버전 2.0.0까지에 대해 나열된 모든 호환성이 손상되는 변경을 주소 .

libbson 의 2.0.0 출시하다 에는 다음과 같은 호환성이 손상되는 변경이 포함됩니다.

  • BSON_ERROR_BUFFER_SIZE 매크로의 값을 504 에서 503 로 줄여 최종 바이트를 내부용으로 예약합니다.

  • 다음 pkg-config 파일의 이름을 변경합니다.

    • libbson-1.0: 이름이 다음으로 변경됨 bson2

    • libbson-static-1.0: 이름이 다음으로 변경됨 bson2-static

  • bson-1.0 CMake 패키지 제거합니다. 대신 다음 예시 와 같이 bson 를 사용하고 가져올 버전 또는 버전 범위 지정합니다.

    find_package(bson 1.30...2.0)
  • 가져온 다음 대상의 이름을 변경합니다.

    • mongo::bson_static: 이름이 다음으로 변경됨 bson::static

    • mongo::bson_shared: 이름이 다음으로 변경됨 bson::shared

  • BSON_DEFAULT_IMPORTED_LIBRARY_TYPE CMake 옵션의 값에 따라 정적 라이브러리 또는 공유 라이브러리를 가리키는 bson::bson 대상을 추가합니다. 이 옵션을 설정하다 하지 않고 두 라이브러리 유형을 모두 사용할 수 있는 경우 bson::bson 는 정적 라이브러리를 사용합니다.

libmongoc 의 2.0 출시하다 에는 다음과 같은 호환성이 손상되는 변경이 포함됩니다.

  • batchSize:0 옵션을 mongoc_client_watch, mongoc_database_watch 또는 mongoc_collection_watch에 전달하면 aggregate 명령이 더 이상 이 옵션을 무시하고 적용하지 않습니다.

  • bson_oid_init_sequence을(를) 제거합니다. 대신 bson_oid_init을(를) 사용하세요.

  • mongoc_server_description_host 의 반환 유형을 mongoc_host_list_t * 에서 const mongoc_host_list_t *로 변경합니다.

  • 연결 문자열 에서 새 mongoc_uri_t 객체 만들 때 적용 URI 인증 자격 증명 유효성 검사 에 다음과 같은 변경 사항을 구현합니다.

    • 모든 인증 메커니즘에서 사용자 이름이 비어 있지 않아야 합니다.

    • 사용자 이름 및 비밀번호 사양 요구 사항의 유효성을 검사하고 지정된 인증 메커니즘 에 대한 클라이언트 오류를 반환합니다.

    • MONGODB-AWS 인증 메커니즘 의 경우 authSource 값은 기본적으로 $external로 설정됩니다.

    • authMechanism 값의 유효성을 검사하고 유효하지 않은 값에 대한 클라이언트 오류를 반환합니다.

    • authMechanismProperties 값의 유효성을 검사하고 지정된 인증 메커니즘 에 대한 유효하지 않은 속성에 대한 클라이언트 오류를 반환합니다.

    • authMechanismProperties 값 내의 콜론(:) 문자를 올바르게 구문 분석합니다. 예시 를 들어 authMechanismProperties=A:B,C:D:E,F:G 를 설정하면 운전자 값을 {'A': 'B', 'C': 'D:E,F:G'}로 구문 분석합니다. 이제 {'A': 'B': 'C': 'D:E', 'F': 'G'}(으)로 구문 분석됩니다.

  • 동일한 mongoc_bulk_operation_t 에서 mongoc_bulk_operation_execute 를 반복적으로 호출하면 오류가 발생합니다.

  • 공개 API 의 함수 선언에 __cdecl 호출 규칙을 일관되게 적용합니다.

  • mongoc_client_set_ssl_opts 풀링된 mongoc_client_t 를 무시하고 오류를 기록합니다. 클라이언트 팝업하기 전에 mongoc_client_pool_set_ssl_opts 를 사용하여 mongoc_client_pool_t에서 TLS 옵션을 설정하다 .

  • mongoc_client_set_ssl_stream_initiator 풀링된 mongoc_client_t 를 무시하고 오류를 기록합니다.

  • 다음 pkg-config 파일의 이름을 변경합니다.

    • libmongoc-1.0: 이름이 다음으로 변경됨 mongoc2

    • libmongoc-static-1.0: 이름이 다음으로 변경됨 mongoc2-static

  • mongoc-1.0 CMake 패키지 제거합니다. 대신 다음 예시 와 같이 mongoc 를 사용하고 가져올 버전 또는 버전 범위 지정합니다.

    find_package(mongoc 1.30...2.0)
  • 가져온 다음 대상의 이름을 변경합니다.

    • mongo::mongoc_static: 이름이 다음으로 변경됨 mongoc::static

    • mongo::mongoc_shared: 이름이 다음으로 변경됨 mongoc::shared

  • MONGOC_DEFAULT_IMPORTED_LIBRARY_TYPE CMake 옵션의 값에 따라 정적 라이브러리 또는 공유 라이브러리를 가리키는 mongoc::mongoc 대상을 추가합니다. 이 옵션을 설정하다 하지 않고 두 라이브러리 유형을 모두 사용할 수 있는 경우 mongoc::mongoc 는 정적 라이브러리를 사용합니다.

libmongoc 의 1.29.0 출시하다 에는 다음과 같은 호환성이 손상되는 변경이 포함됩니다.

  • Visual Studio 2013에 대한 지원 중단

  • 사용 중 암호화 기능 지원 위해 libmongocrypt 종속성의 필수 버전을 1.12.0 으로 상향합니다.

libbson 의 1.28.0 출시하다 에는 다음과 같은 호환성이 손상되는 변경이 포함됩니다.

  • 자동 ccache 감지 및 사용 제거

  • 제거 Mongo_USE_CCACHE

libmongoc 의 1.28.0 출시하다 에는 다음과 같은 호환성이 손상되는 변경이 포함됩니다.

  • 최소 유선 프로토콜 버전을 6 에서 7로 상향합니다.

  • 사용 중 암호화 지원 위해 필요한 libmongocrypt 버전을 v1.11.0 로 상향합니다.

libmongoc 의 1.27.0 출시하다 에는 다음과 같은 호환성이 손상되는 변경이 포함됩니다.

  • 사용 중 암호화 지원 위해 libmongocrypt의 필수 버전을 1.10.0 으로 상향합니다. 이는 CMake 옵션 ENABLE_CLIENT_SIDE_ENCRYPTION에 해당합니다.

libmongoc 의 1.26.2 출시하다 에는 다음과 같은 호환성이 손상되는 변경이 포함됩니다.

  • 기본값 으로 Windows 에서 Cyrus SASL을 사용한 플러그인 로딩을 비활성화합니다. 다시 활성화하려면 CMake 옵션 CYRUS_PLUGIN_PATH_PREFIX 를 Cyrus SASL 플러그인의 절대 경로 접두사로 설정하다 .

libmongoc 의 1.24 출시하다 에는 다음과 같은 호환성이 손상되는 변경이 포함됩니다.

  • Queryable Encryption 사용하려면 MongoDB Server 버전 7.0 이상이 필요합니다.

서버 출시 호환성 변경 사항은 MongoDB Server 버전 세트에 대한 지원을 중단하는 드라이버의 수정입니다.

드라이버는 MongoDB 서버 버전이 수명 종료(EOL) 시점에 도달하면 해당 버전에 대한 지원을 중단합니다.

EOL 제품에 대한 MongoDB 지원 에 대해 자세히 학습 레거시 지원 정책을 참조하세요.

  • 이 운전자 버전은 MongoDB Server 버전 3.6 및 이전 버전에 대한 지원 중단합니다. 버전 1.28.0 이상의 운전자 사용하려면 MongoDB Server 버전이 4.0 이상이어야 합니다. 이 운전자 버전은 MongoDB Server 8.0 기능을 지원합니다. MongoDB Server 배포서버 서버를 업그레이드 방법을 학습 MongoDB Server 매뉴얼의 릴리스 노트 참조하세요.

돌아가기

호환성

이 페이지의 내용

  • 개요
  • 호환성이 손상되는 변경
  • 버전 2.0.0
  • 버전 1.29.0
  • 버전 1.28.0
  • 버전 1.27.0
  • 버전 1.26.2
  • 1.24버전
  • 서버 릴리스 호환성 변경 사항
  • 버전 1.28.0 릴리스 지원 변경 사항