Docs Menu
Docs Home
/ / /
Java 동기화

새로운 기능

이 페이지의 내용

  • 예정된 호환성이 손상되는 변경
  • 4.8의 새로운 기능
  • 4.7.1의 새로운 기능
  • 4.7의 새로운 기능
  • 4.6의 새로운 기능
  • 4.5.1의 새로운 기능
  • 4.5의 새로운 기능
  • 4.4의 새로운 기능
  • 4.3의 새로운 기능
  • 4.2의 새로운 기능
  • 4.1의 새로운 기능
  • 4.0의 새로운 기능

다음 버전의 새로운 기능에 대해 알아보세요:

경고

v4.8의 호환성이 손상되는 변경

v4.8 드라이버에 호환성이 손상되는 변경이 포함되어 있습니다. 버전 4.8 단절적 변경 사항버전 4를 참조하세요.8 자세한 내용은 MongoDB Server 릴리스 지원 변경 사항 을 참조하세요.

중요

사용 중단 안내

IterableCodecMapCodec 클래스는 더 이상 사용되지 않습니다. 대신 CollectionCodecMapCodecV2 을(를) 사용하세요. 이는 Collection 또는 Map 을 구현하는 모든 클래스를 지원 합니다.

4.8 드라이버 릴리스의 동작 변경 사항은 다음과 같습니다.

  • 애플리케이션이 OSGi 컨테이너에 드라이버를 배포하고 Java 레코드의 인코딩 및 디코딩을 위해 드라이버를 사용하는 경우 org.bson.codecs.record 모듈에 대한 명시적 종속성을 추가해야 합니다.

  • INFO 대신 DEBUG 수준에서 새 연결 메시지를 로깅합니다.

4.8 드라이버 릴리스의 새로운 기능은 다음과 같습니다.

  • AWS를 통한 인증을 지원합니다. 드라이버는 AWS SDK 버전 1과 버전 2 모두에 대한 선택적 종속성을 취합니다.

  • 사용 중인 암호화를 위해 GCP 및 Azure 모두에서 환경에서 자격 증명을 가져올 수 있도록 지원합니다.

  • 일반 매개변수가 있는 구성 요소가 포함된 레코드의 역직렬화를 지원합니다.

  • SortedSet, NavigableMap, LinkedList 또는 TreeSet와 같이 보다 구체적인 컨테이너 유형을 가진 구성 요소를 포함하는 레코드의 역직렬화를 지원합니다.

  • 재귀 레코드 유형, 즉 유형 정의에 주기가 포함된 레코드를 지원합니다.

  • MongoDB v6.1 이상에서 showExpandedEvents 서버 기능이 활성화된 경우 변경 스트림 업데이트 이벤트에 disambiguatedPaths 필드가 포함됩니다. getDisambiguatedPaths() 메서드 에서 이 필드에 대해 자세히 알아보세요. API 문서. 확장 이벤트 서버 설명서에서 showExpandedEvents 설정에 대해 자세히 알아보세요.

4.7.1 운전자 는 클라이언트 측 필드 레벨 암호화 및 Queryable Encryption 에 영향을 미치는 버그를 패치합니다. 이 버그로 인해 GCP KMS 또는 에서 호스팅되는 고객 마스터 키 암호화됨 데이터 암호화 키 (DEK)를 순환시킬 때 데이터가 손상될 수 Azure Key Vault 있습니다. 이 버그는 RewrapManyDataKey 메서드의 운전자 버전 4.7.0 에 존재했으며 DEK 손실의 원인이 되었습니다.

중요

키 볼트 컬렉션 백업

DEK를 순환시키기 전에 항상 키 볼트 컬렉션을 백업합니다. DEK를 분실하면 해당 키로 암호화된 모든 데이터에 액세스할 수 없게 됩니다.

경고

v5.0의 호환성이 손상되는 변경

v4.7 드라이버에는 호환성이 손상되는 변경이 포함되어 있습니다. 자세한 내용은 버전 4.7 호환성이 손상되는 변경을 참조하세요.

4.7 드라이버 릴리스의 새로운 기능은 다음과 같습니다.

  • MongoDB 6.0에 대한 완전한 지원이 추가되었습니다.

  • 다음과 같은 변경 스트림 지원 개선 사항이 추가되었습니다.

    • 변경 스트림 에 대한 사전 이미지 및 사후 이미지 지원 이 향상되었습니다. 변경 스트림 감시 헬퍼는 이제 fullDocument 옵션에 대해 whenAvailablerequired 을 허용합니다. 자세한 내용은 변경 스트림 참조 문서를 참조하세요.

    • whenAvailablerequired을 허용하는 새로운 fullDocumentBeforeChange 옵션을 추가했습니다.

    • 이제 MongoDB 컬렉션에 표시되도록 구성하면 변경 이벤트에 fullDocumentBeforeChange 필드가 포함됩니다.

    • 변경 스트림에 대한 showExpandedEvents 지원이 추가되었습니다.

    • wallTime 클래스에 ChangeStreamDocument 지원을 추가했습니다.

  • 클러스터형 인덱스 생성 지원이 추가되었습니다.

  • 자동 암호화 지원 을 포함하여 Queryable Encryption 과 관련된 새로운 기능을 지원합니다( MongoDB v6.0 엔터프라이즈 이상 필요) 및 수동 암호화.

    • 새로운 Queryable Encryption 공유 라이브러리를 지원하여 mongocryptd 프로세스 가 필요하지 않습니다. Queryable Encryption 공유 라이브러리에는 org.mongodb:mongodb-crypt1.5.1.1 필요합니다. 버전 이상.

  • 암호화 키 관리를 위한 새로운 API가 추가되었습니다.

  • $search/$searchMeta ( Atlas 만 해당), $densify$fill 를 포함한 추가 집계 단계에 대한 빌더 API 메서드가 추가되었습니다. 애그리게이션 빌더 페이지에서 이러한 메서드에 자세히 보기 .

  • POJO 인코딩 및 디코딩에 사용할 수 있는 BsonExtraElements 주석을 추가했습니다. BsonExtraElements를 사용하면 개발자가 새 필드를 명시적으로 매핑할 필요 없이 향후 새 필드를 수신할 수 있는 객체를 디코딩할 수 있습니다.

  • 다음을 포함한 성능 최적화:

    • 서버 세션 풀 및 버퍼 풀을 잠금 없이 구현합니다.

    • DBCursor의 새로운 정리 구현은 마무리 대신 Java Cleaner API를 사용하며, Java 9 이상에서 사용할 수 있습니다.

  • setWindowFields 빌더 API는 더 이상 베타 기능이 아닙니다. API의 변경으로 인해 바이너리 및 소스 호환성이 모두 중단됩니다. 자세한 내용은 버전 4.7 호환성이 손상되는 변경을 참조하세요.

4.2 Node.js 드라이버 릴리스의 새로운 기능에는 다음 내용이 포함됩니다.

  • 이제 버퍼 풀이 모든 MongoClient 인스턴스에서 공유됩니다. 버퍼 풀은 1분 동안 유휴 상태였던 버퍼를 정리합니다.

  • 클라이언트 측 필드 API 레벨 암호화 ( )에 대한 자격 증명 의 공급자를 지정하는 Amazon Web Services KMS CSFLE 가 추가되었습니다. 자세한 내용은 AutoEncryptionSettings.Builder.kmsProviderPropertySuppliers()ClientEncryptionSettings.Builder.kmsProviderPropertySuppliers() 자세한 내용은 API 문서를 참조하세요.

  • Apple M1 ARM 기반 하드웨어에 대한 CSFLE의 종속성인 org.mongodb:mongodb-crypt 호환성이 추가되었습니다.

  • 드라이버가 사용자 지정 DNS 클라이언트를 지정할 수 있도록 서비스 제공자 인터페이스(SPI)를 추가했습니다. DnsClient 보기DnsClientProvider 자세한 내용은 인터페이스 API 문서를 참조하세요.

  • Java 레코드 간 인코딩 및 디코딩을 위한 운전자 지원 추가 및 BSON 문서로, 기본값 활성화되어 있습니다. 자세한 내용은 문서 데이터 형식: 레코드 를 참조하세요.

DNS 서버가 존재하지 않는 도메인을 나타내는 NXDomain 오류를 반환하는 경우 4.5.1 드라이버는 더 이상 예외를 발생시키지 않습니다.

4.5 Java 드라이버 릴리스의 새로운 기능은 다음과 같습니다.

  • SRV 리소스 레코드의 사용자 지정 서비스 이름 지정에 대한 지원이 추가되었습니다. 자세한 내용은 연결 옵션 가이드의 srvServiceName 설정을 참조하세요.

  • CodecRegistries.withUuidRepresentation() 메서드를 사용하여 코덱 레지스트리에서 UUID 표현을 사용자 지정할 수 있도록 지원이 추가되었습니다.

  • ClusterSettings, ServerSettingsConnectionPoolSettings 빌더에서 리스너 설정 재정의 지원이 추가되었습니다.

  • ClusterListener, ServerListenerServerMonitorListener에서 수신한 모든 이벤트는 이제 서로 다른 MongoClient 인스턴스에서 리스너를 공유하지 않을 때 발생 전 관계를 사용하여 완전히 정렬됩니다. 발생 전 정렬에 대해 자세히 알아보려면 Java 언어 사양의 발생 전 정렬을 참조하세요.

  • EnumCodecEnumCodecProvider 클래스를 추가하여 enum 유형에 대한 코덱 지원을 PojoCodec 클래스와 분리했습니다. MongoClientSettingsBson 인터페이스에서 액세스할 수 있는 기본 코덱 레지스트리에 이제 enum 코덱 클래스가 포함됩니다. 애플리케이션에서 사용자 지정 열거형 코덱과 기본 레지스트리 중 하나를 사용하는 경우 코덱 재정의 섹션에 설명된 대로 순서를 지정해야 합니다.

  • 운전자 의 4.4 및 4.3 버전에 영향을 미치는 성능 문제를 해결했습니다. 이 버전의 성능은 4.2 의 성능과 유사해야 합니다.

  • 클러스터 설명을 조회할 때 발생한 오류가 onError 구독자 콜백으로 전달되지 않는 문제가 해결되었습니다.

  • 압축이 활성화된 상태로 연결할 때 ByteBuf 인스턴스를 릴리스하는 문제가 해결되었습니다.

  • javax.annotation.* 패키지에 대한 불필요한 종속성을 org.mongodb.driver-core OSGi 번들에서 제거했습니다.

4.4 Java 드라이버 릴리스의 새로운 기능은 다음과 같습니다.

  • MongoDB 5.1과의 호환성 및 Java 17 지원이 추가되었습니다.

  • 다음의 인덱스 힌트에 대한 지원이 추가되었습니다. AggregateIterable

  • 세컨더리의 $merge$out 집계 단계에 대한 지원이 추가되었습니다.

  • Updates 빌더에서 mergeObjects() 메서드를 사용할 수 있습니다.

  • DocumentCodec Iterable 또는 Map 인스턴스에 쓸 때 코덱 레지스트리를 무시하지 않습니다.

4.3 Java 드라이버 릴리스의 새로운 기능은 다음과 같습니다.

  • MongoDB Stable API에 대한 지원이 추가되었습니다. 자세한 내용은 Stable API 가이드를 참조하세요.

    참고

    2022년 2월부터 버전이 지정된 APIStable API로 표시됩니다. 이름은 변경되나 모든 개념과 기능은 동일하게 유지됩니다.

  • MongoDB Atlas 서버리스 인스턴스 에 대한 연결 지원 이 추가되었습니다. 설정 에 대한 자세한 내용 은 새 서버리스 인스턴스 생성방법에 대한 설명서를 참조하세요.

  • 창 연산자를 사용할 수 있도록 setWindowFields 파이프라인 단계에 대한 빌더 API가 추가되었습니다.

  • Netty io.netty.handler.ssl.SslContext 설정에 대한 지원이 추가되었습니다.

  • 다음에 대한 스냅샷 읽기 지원이 추가되었습니다. ClientSession

  • 연결 풀당 새 연결 설정 속도가 제한됩니다.

  • 삽입하거나 바꾸는 문서의 필드 이름에 허용되는 문자에 대한 대부분의 제한 사항이 제거되었습니다. 이는 이러한 제한 사항의 클라이언트 사이드 시행에 의존하는 모든 애플리케이션의 동작 변경입니다.

다음 표는 문서 필드명에 허용되는 문자에 대한 제한 상태를 보여줍니다.

캐릭터
작업
설명
.
삽입 및 교체
이 문자를 포함하는 필드 이름에 대한 제한이 제거되었습니다.
$
Insert
이 문자로 시작하는 필드 이름에 대한 제한이 제거되었습니다.
$
바꾸기
중첩 문서에서 이 문자를 포함하는 필드 이름에 대한 제한이 제거되었습니다.
$
바꾸기
이 문자로 시작하는 필드 이름에 대한 최상위 문서의 제한을 유지했습니다. 이렇게 하면 업데이트 작업을 사용하려고 할 때 실수로 변경 작업을 사용하는 것을 방지할 수 있습니다.

참고

달러 접두사 또는 점으로 구분된 키를 사용하는 승인되지 않은 쓰기는 필드 이름에 대한 일부 제한이 여전히 적용되는 5.0 이전 서버에서 자동으로 거부될 수 있습니다.

경고

v4.2의 호환성이 손상되는 변경

v4.2 드라이버에는 호환성이 손상되는 변경이 포함되어 있습니다. 자세한 내용은 버전 4.2 호환성이 손상되는 변경을 참조하세요.

4.2 Java 드라이버 릴리스의 새로운 기능은 다음과 같습니다.

  • 클라이언트 사이드 필드 레벨 암호화에 Azure 및 GCP 키 저장소가 추가되었습니다.

  • 여러 인증 요청에서 재사용할 수 있도록 Kerberos 캐싱 티켓이 추가되었습니다.

  • MongoClient 추가 MongoClientSettings 또는 ConnectionString 를 구성으로 사용하는 인스턴스

  • explain() 찾기 에서 메서드 사용 및 집계 명령

  • 중간 맵 표현을 피하여 JSON으로 인코딩 및 디코딩을 보다 효율적으로 수행할 수 있도록 JsonObject 클래스가 추가되었습니다.

  • BsonRepresentation 추가 ObjectId String POJO 에서 BSON 값을 로 표현할 수 있는 주석 클래스

  • Filters.empty() 를 추가했습니다. 메서드

4.1 Java 드라이버 릴리스의 새로운 기능은 다음과 같습니다.

  • 계획된 유지 관리 이벤트 중에 클라이언트가 인식하는 페일오버 시간이 크게 감소합니다.

  • update()delete() 메서드가 이제 인덱스 힌트를 지원합니다.

  • find() 메서드는 RAM에서 실행하는 데 너무 많은 메모리가 필요한 정렬에 대해 allowDiskUse()를 지원합니다.

  • AWS(Amazon Web Services) IAM(Identity and Access Management) 자격 증명을 사용하는 MONGODB-AWS 인증 메커니즘에 대한 지원이 추가되었습니다.

  • 인증을 위한 서버 왕복 횟수가 줄어들어 연결 설정 속도가 빨라집니다.

경고

v4.0의 호환성이 손상되는 변경

v4.0 드라이버에는 호환성이 손상되는 변경이 포함되어 있습니다. 자세한 내용은 버전 4.0 호환성이 손상되는 변경을 참조하세요.

이번 릴리스에는 새로운 기능이 추가되지 않았습니다.

돌아가기

빠른 참조