Java 드라이버 빠른 시작
이 페이지의 내용
서론
이 가이드에서는 Java 드라이버를 사용하여 MongoDB Atlas cluster에 연결하는 애플리케이션을 만드는 방법을 설명합니다. 다른 드라이버나 프로그래밍 언어를 사용하여 MongoDB에 연결하려면 공식 MongoDB 드라이버 목록을 참조하세요.
Java 드라이버를 사용하면 Java 애플리케이션에서 MongoDB cluster에 연결하고 통신할 수 있습니다.
MongoDB Atlas는 MongoDB 클러스터에서 데이터를 호스팅하는 완전 관리형 클라우드 데이터베이스 서비스입니다. 이 가이드에서는 무료(신용카드 필요 없음) 클러스터를 시작하는 방법을 보여줍니다.
Java 애플리케이션을 MongoDB Atlas 클러스터와 연결하려면 다음 단계를 따르세요.
프로젝트 설정
JDK(Java 개발 키트) 설치
시스템에 JDK 이상이 8 설치되어 있는지 확인합니다. Java 버전을 확인하고 JDK를 설치하는 방법에 대한 자세한 내용은 Oracle JDK 설치 개요 설명서 를 참조하세요.
프로젝트 만들기
이 가이드에서는 Maven 또는 Gradle을 사용하여 MongoDB Java 드라이버 종속성을 추가하는 방법을 설명합니다. 프로젝트를 빌드하고 실행하기 위해 Maven 또는 Gradle을 더 편리하게 구성할 수 있도록 Intellij IDEA 또는 Eclipse IDE와 같은 통합 개발 환경(IDE)을 사용할 것을 권장합니다.
IDE를 사용하지 않는 경우, 자세한 프로젝트 설정 방법 정보를 Maven 빌드 또는 새 Gradle 빌드 만들기 프로젝트에서 확인하세요.
종속성으로 MongoDB 추가하기
Maven을 사용하는 경우 pom.xml
종속성 목록에 다음을 추가하세요.
<dependencies> <dependency> <groupId>org.mongodb</groupId> <artifactId>mongodb-driver-sync</artifactId> <version>5.2.0</version> </dependency> </dependencies>
Gradle을 사용하는 경우, build.gradle
종속성 목록에 다음을 추가합니다:
dependencies { implementation 'org.mongodb:mongodb-driver-sync:5.2.0' }
참고
Java 드라이버를 설치하려면 빌드 도구를 사용하는 것을 권장합니다. 그러나 드라이버 및 종속성을 다운로드해야 하는 경우 MongoDB Group Maven 리포지토리에서 JAR 파일을 찾을 수 있습니다. Java 드라이버를 사용하려면 bson
, mongodb-driver-core
및 slf4j-api
종속성에 대한 JAR 파일을 다운로드해야 합니다.
종속성을 구성한 후에는 종속성 관리자를 실행하고 IDE에서 프로젝트를 새로 고쳐 프로젝트에서 사용할 수 있는지 확인합니다.
MongoDB 클러스터 생성
Atlas에서 프리 티어 클러스터 설정하기
Java 프로젝트 종속성을 설정한 후 데이터를 저장하고 관리할 수 있는 MongoDB 클러스터를 생성합니다. Atlas 시작하기 가이드를 완료하여 새 Atlas 계정을 설정하고, 프리 티어 MongoDB 클러스터를 생성 및 실행하고, 데이터 세트를 로드하고, 데이터와 상호 작용하세요.
Atlas 가이드의 단계를 완료하고 나면, Atlas에 새 MongoDB 클러스터가 배포되고, 새 데이터베이스 사용자가 생성됩니다. 또한 클러스터에 샘플 데이터 세트가 로드됩니다.
클러스터 연결
이 단계에서는 MongoDB Java 드라이버를 사용하여 MongoDB 클러스터에 연결하고 샘플 데이터에 대한 쿼리를 실행하는 애플리케이션을 만들고 실행합니다.
연결 문자열을 통해 드라이버에 MongoDB 클러스터에 연결하는 방법에 대한 지침을 전달합니다. 이 문자열에는 클러스터의 호스트 이름 또는 IP 주소 및 포트, 인증 메커니즘, 해당하는 경우 사용자 자격 증명, 기타 연결 옵션 등에 대한 정보가 포함됩니다.
Atlas에서 호스팅하지 않는 인스턴스 또는 클러스터에 연결하는 경우, 연결 문자열의 형식을 지정하는 방법에 대한 지침은 MongoDB에 연결하는 다른 방법을 참조하세요.
이전 단계에서 만든 클러스터 및 사용자에 대한 연결 문자열을 검색하려면 Atlas 계정에 로그인하여 Database 섹션으로 이동한 후 아래와 같이 연결하려는 클러스터의 Connect를 클릭합니다.
Connect Your Application 단계로 진행하여 Java 드라이버를 선택합니다. 버전은 '4.3 또는 그 이상'을 선택합니다. 아래와 같이 Copy 아이콘을 클릭하여 연결 문자열을 클립보드에 복사합니다.
다음 단계를 위해 액세스할 수 있는 안전한 위치에 Atlas 연결 문자열을 저장합니다.
애플리케이션에서 MongoDB 클러스터 쿼리하기
다음으로 프로젝트의 기본 패키지 디렉토리에 QuickStart.java
로 명명한 파일을 만들고 여기에 애플리케이션을 보관합니다. 다음 샘플 코드를 사용하여 MongoDB Atlas의 샘플 데이터 세트에 대한 쿼리를 실행하고 uri
변수의 값을 MongoDB Atlas 연결 문자열로 바꿉니다.
import static com.mongodb.client.model.Filters.eq; import org.bson.Document; import com.mongodb.client.MongoClient; import com.mongodb.client.MongoClients; import com.mongodb.client.MongoCollection; import com.mongodb.client.MongoDatabase; public class QuickStart { public static void main( String[] args ) { // Replace the placeholder with your MongoDB deployment's connection string String uri = "<connection string uri>"; try (MongoClient mongoClient = MongoClients.create(uri)) { MongoDatabase database = mongoClient.getDatabase("sample_mflix"); MongoCollection<Document> collection = database.getCollection("movies"); Document doc = collection.find(eq("title", "Back to the Future")).first(); if (doc != null) { System.out.println(doc.toJson()); } else { System.out.println("No matching documents found."); } } } }
QuickStart
클래스를 실행하면 다음과 유사한 샘플 데이터 세트에서 영화의 세부 정보가 출력됩니다.
{ _id: ..., plot: 'A young man is accidentally sent 30 years into the past...', genres: [ 'Adventure', 'Comedy', 'Sci-Fi' ], ... title: 'Back to the Future', ... }
출력이 없거나 오류가 발생하면 Java 클래스에 올바른 연결 문자열을 포함했는지, 샘플 데이터 세트를 MongoDB Atlas 클러스터에 로드했는지 확인합니다.
중요
TLS v1.3 사용 시 알려진 연결 문제
애플리케이션을 실행하는 동안 MongoDB 인스턴스 또는 cluster에 연결 시 다음과 유사한 오류가 발생하는 경우 JDK를 최신 패치 릴리스로 업데이트해야 할 수 있습니다.
javax.net.ssl.SSLHandshakeException: extension (5) should not be presented in certificate_request
해당 오류는 특정 버전의 JDK에서 TLS 1.3 프로토콜을 사용할 때 발생하는 알려진 문제이지만 다음 릴리스에서 수정되었습니다.
JDK 11.0.7
JDK 13.0.3
JDK 14.0.2
이 오류를 해결하려면 JDK를 이전 패치 버전 중 하나 또는 최신 버전으로 업데이트하세요.
이 단계를 완료하면 Java 드라이버를 사용하여 MongoDB cluster에 연결하고 샘플 데이터에 대해 쿼리를 실행하고 결과를 출력하는 애플리케이션이 작동 중이어야 합니다.
POJO로 작업하기(선택 사항)
이전 섹션에서는 지도와 비슷한 클래스 Document
에서 데이터를 조회하기 위해 샘플 컬렉션에서 쿼리를 실행했습니다. 이 섹션에서는 자체 POJO(Plain Old Java Object)를 사용하여 MongoDB에서 데이터를 저장하고 검색하는 방법을 알아봅니다.
프로젝트의 기본 패키지 디렉토리에 Movie.java
파일을 만들고 다음 필드, 설정자(setter), 접근자(getter)가 포함된 클래스에 다음 코드를 추가합니다.
public class Movie { String plot; List<String> genres; String title; public String getPlot() { return plot; } public void setPlot(String plot) { this.plot = plot; } public List<String> getGenres() { return genres; } public void setGenres(List<String> genres) { this.genres = genres; } public String getTitle() { return title; } public void setTitle(String title) { this.title = title; } public String toString() { return "Movie [\n plot=" + plot + ",\n genres=" + genres + ",\n title=" + title + "\n]"; } }
프로젝트의 Movie
파일과 동일한 패키지 디렉토리에 새 파일 QuickStartPojoExample.java
를 만드세요. 다음 샘플 코드를 사용하여 MongoDB Atlas의 샘플 데이터 세트에 대한 쿼리를 실행하고 uri
변수의 값을 MongoDB Atlas 연결 문자열로 바꾸세요. 연결 문자열의 '<db_password>' 섹션은 atlasAdmin 권한이 있는 사용자에 대해 만든 비밀번호로 바꿔야 합니다.
import static com.mongodb.MongoClientSettings.getDefaultCodecRegistry; import static com.mongodb.client.model.Filters.eq; import static org.bson.codecs.configuration.CodecRegistries.fromProviders; import static org.bson.codecs.configuration.CodecRegistries.fromRegistries; import org.bson.codecs.configuration.CodecProvider; import org.bson.codecs.configuration.CodecRegistry; import org.bson.codecs.pojo.PojoCodecProvider; import com.mongodb.client.MongoClient; import com.mongodb.client.MongoClients; import com.mongodb.client.MongoCollection; import com.mongodb.client.MongoDatabase; public class QuickStartPojoExample { public static void main(String[] args) { CodecProvider pojoCodecProvider = PojoCodecProvider.builder().automatic(true).build(); CodecRegistry pojoCodecRegistry = fromRegistries(getDefaultCodecRegistry(), fromProviders(pojoCodecProvider)); // Replace the uri string with your MongoDB deployment's connection string String uri = "<connection string uri>"; try (MongoClient mongoClient = MongoClients.create(uri)) { MongoDatabase database = mongoClient.getDatabase("sample_mflix").withCodecRegistry(pojoCodecRegistry); MongoCollection<Movie> collection = database.getCollection("movies", Movie.class); Movie movie = collection.find(eq("title", "Back to the Future")).first(); System.out.println(movie); } } }
QuickStartPojoExample
클래스를 실행하면 다음과 유사한 샘플 데이터 세트에서 영화의 세부 정보가 출력됩니다.
Movie [ plot=A young man is accidentally sent 30 years into the past..., genres=[Adventure, Comedy, Sci-Fi], title=Back to the Future ]
출력이 없거나 오류가 발생하면 Java 클래스에 올바른 연결 문자열을 포함했는지, 샘플 데이터 세트를 MongoDB Atlas 클러스터에 로드했는지 확인합니다.
POJO를 사용하여 데이터를 저장하고 검색하는 방법에 대한 자세한 내용은 다음 링크를 참조하세요.
다음 단계
기초 CRUD 가이드에서 Java 드라이버를 사용하여 데이터를 읽고 수정하는 방법을 알아보거나 사용 예시에서 일반적인 작업을 수행하는 방법을 알아보세요.