Docs Menu
Docs Home
/ / /
Java 동기화

드라이버 버전 업그레이드

이 페이지의 내용

  • 개요
  • 호환성이 손상되는 변경

이 섹션에서는 드라이버를 새 버전으로 업그레이드하기 위해 애플리케이션에 적용해야 하는 변경 사항을 확인할 수 있습니다.

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

  • 새 버전이 애플리케이션 이 연결되는 MongoDB Server 버전 및 애플리케이션 이 실행되는 Java 런타임 환경(JRE)과 호환되는지 확인하세요. 이 정보는 Java 호환성 페이지를 참조하세요.

  • 애플리케이션 에서 사용 중인 운전자 의 현재 버전과 업그레이드 예정 버전 간의 호환성이 손상되는 변경은 아래의 호환성 이 손상되는 변경 섹션에서 확인하세요.

향후 드라이버 버전을 업그레이드할 때 애플리케이션에 필요한 변경 사항을 최소화하려면 Stable API를 사용하세요.

호환성이 손상되는 변경이란 특정 버전의 드라이버에 적용되는 규칙이나 동작의 수정으로, 업그레이드 전에 해결하지 않으면 이 애플리케이션제대로 작동하지 않을 수 있습니다.

이 섹션의 호환성이 손상되는 변경은 이를 도입한 드라이버 버전별로 분류됩니다. 드라이버 버전을 업그레이드할 때 현재 버전과 업그레이드 버전 간의 호환성이 손상되는 변경을 모두 해소합니다. 예를 들어 드라이버를 v4.0에서 v4.5로 업그레이드하는 경우, v4.5에 나열된 변경 사항을 포함하여 v4.0 이후 버전의 모든 호환성이 손상되는 변경을 해소해야 합니다.

  • setWindowFields 빌더 API 는 더 이상 beta 이 아닙니다. 새 빌더는 바이너리 및 소스 호환성을 중단합니다. 애그리게이션 API 문서 참조 자세한 내용은 새로운 메서드 setWindowFields() 서명을 참조하세요.

    애플리케이션이 v4.7 이전 버전에서 이 빌더를 사용하는 경우 새 메서드 서명을 사용하도록 소스 코드를 업데이트하고 바이너리를 다시 빌드하세요.

  • 다양한 버전의 드라이버에서 직렬화 호환성 문제를 최소화하는 새 형식을 사용하도록 ObjectId 클래스와 해당 serialVersionUID 필드가 업데이트됐습니다.

    이 버전 이상의 드라이버를 사용하는 애플리케이션에서 ObjectId가 포함되어 있고 이전 버전의 드라이버에서 직렬화된 객체에 대해 Java 객체 직렬화를 수행하려고 하면 Java에서 InvalidClassException을 발생시킵니다.

    Java 객체 직렬화에 대해 자세히 알아보려면 직렬화 가능한 객체에 대한 Java 문서를 참조하세요.

  • 3.12 릴리스에서 더 이상 사용되지 않는 것으로 표시된 여러 클래스와 메서드가 이 버전에서 제거됐습니다.

  • 삽입 헬퍼 메서드는 void 대신 삽입 결과 객체를 반환합니다.

  • BsonDocument, DocumentDbObjecttoJson() 메소드는 엄격한(strict) JSON 형식 대신 완화된(relaxed) JSON 형식을 반환합니다. 이렇게 하면 JSON 문서의 가독성이 높아지지만 32비트와 64비트 정수의 차이와 같이 BSON 유형 정보를 식별하기가 더 어려워질 수 있습니다. 애플리케이션이 엄격한 JSON 형식을 사용하는 경우 데이터를 읽거나 쓸 때 엄격(strict) 모드를 사용하세요. 문서 데이터 형식: 확장 JSON 가이드를 참조해 현재 API에서 JSON 형식을 지정하는 방법을 알아보세요.

  • java.util.UUID 값의 기본 BSON 표현이 JAVA_LEGACY에서 UNSPECIFIED로 변경되었습니다. UUID 값을 저장하거나 검색하는 애플리케이션은 사용할 표현을 명시적으로 지정해야 합니다. MongoClientSettingsuuidRepresentation 속성에서 표현을 지정할 수 있습니다.

    지정하는 UUID 표현은 드라이버가 UUID를 디코딩하는 방법을 엄격하게 제어합니다. 이전 버전의 드라이버에서는 JAVA_LEGACY 표현을 지정한 경우 드라이버가 하위 유형 3 및 4의 바이너리 객체를 UUID로 디코딩했습니다. 버전 4.0에서 JAVA_LEGACY 표현은 하위 유형 3에서만 작동합니다.

    UuidRepresentation 열거형 노드 목록은 v4.0 API 문서를 참조하세요.

  • 연결 풀은 더 이상 MongoDB에 연결해야 하는 대기 큐 스레드 또는 비동기 작업의 수를 제한하지 않습니다. 애플리케이션은 드라이버에 의존하여 MongoWaitQueueFullException을 발생시키는 대신 필요에 따라 요청을 제한해야 합니다.

  • 드라이버는 더 이상 java.util.logging(JUL) 패키지를 사용하여 로깅하지 않으며 SLF4J 로깅 프레임워크만 지원합니다.

  • 내장된 드라이버와 Android 드라이버가 제거되었습니다. 애플리케이션에서 이러한 드라이버를 사용하는 경우 3.x Java 드라이버 버전을 계속 사용해야 합니다.

  • Uber JAR인 mongo-java-drivermongodb-driver는 더 이상 출시되지 않습니다. 애플리케이션이 이들 중 하나를 사용하는 경우 애플리케이션에서 사용하는 API에 따라 mongodb-driver-sync 또는 mongodb-driver-legacy 중 하나로 전환해야 합니다. 종속 항목에서 uber JAR을 제거해야 합니다.

  • 여러 클래스를 업데이트하면서 삽입 헬퍼 메서드에 대한 메서드 시그니처 변경과 같은 이진 호환성 문제가 발생했습니다. 이 버전 이상에 대해 드라이버에 연결되는 모든 클래스를 다시 컴파일하여 계속 작동하는지 확인하세요.

돌아가기

호환성