Kotlin 드라이버 빠른 시작
이 페이지의 내용
서론
이 가이드 에서는 코틀린 (Kotlin) 운전자 를 사용하여 MongoDB Atlas cluster 에 연결하는 애플리케이션 을 만드는 방법을 설명합니다. 다른 운전자 또는 프로그래밍 언어 를 사용하여 MongoDB 에 연결하려는 경우 공식 MongoDB 드라이버 목록을 참조하세요.
Kotlin 드라이버를 사용하면 Kotlin 애플리케이션에서 MongoDB cluster에 연결하고 통신할 수 있습니다.
MongoDB Atlas는 MongoDB cluster에서 데이터를 호스팅하는 완전 관리형 클라우드 데이터베이스 서비스입니다. 이 가이드에서는 무료 클러스터를 시작하는 방법에 대해 알아볼 수 있습니다.
팁
MongoDB Atlas에 연결하는 Kotlin에서 애플리케이션을 빌드하는 방법을 보여주는 다른 예시를 보려면 MongoDB Kotlin 드라이버 시작하기 개발자 튜토리얼를 참조하세요.
프로젝트 설정
Install Kotlin
시스템에 코틀린 (Kotlin) 설치되어 있고 JDK 1.8 이상에서 실행 확인합니다. 코틀린 (Kotlin)/ JVM 개발 시작하기에 대한 자세한 내용은 코틀린 (Kotlin) 언어 문서에서 코틀린 (Kotlin)/ JVM 시작하기 를 참조하세요.
프로젝트 만들기
이 가이드에서는 Gradle 또는 Maven을 사용하여 MongoDB Kotlin 드라이버 종속성을 추가하는 방법을 보여 줍니다. IntelliJ IDEA 또는 Eclipse IDE와 같은 통합 개발 환경(IDE)을 사용하여 프로젝트를 빌드하고 실행하도록 Gradle 또는 Maven을 구성하는 것이 좋습니다.
IDE를 사용하지 않는 경우 프로젝트 설정 방법에 대한 자세한 내용은 새 Gradle 빌드 생성 가이드 또는 Maven 빌드 가이드를 참조하세요.
종속성으로 MongoDB 추가하기
Gradle 을 사용하는 경우 패키지를 관리하려면 build.gradle.kts
종속성 목록에 다음 항목을 추가하세요.
dependencies { implementation("org.mongodb:mongodb-driver-kotlin-coroutine:5.3.0") }
Maven 을 사용하는 경우 패키지를 관리하려면 pom.xml
종속성 목록에 다음 항목을 추가하세요.
<dependencies> <dependency> <groupId>org.mongodb</groupId> <artifactId>mongodb-driver-kotlin-coroutine</artifactId> <version>5.3.0</version> </dependency> </dependencies>
종속성을 구성한 후에는 종속성 관리자를 실행하고 IDE에서 프로젝트를 새로 고침하여 프로젝트에서 종속성을 사용할 수 있는지 확인합니다.
직렬화 라이브러리 종속성 추가
드라이버가 Kotlin 객체와 MongoDB의 문서 데이터 형식인 BSON 간에 변환할 수 있도록 하려면 다음 직렬화 패키지 중 하나 또는 둘 모두를 애플리케이션에 추가해야 합니다.
bson-kotlinx
(권장 사항)bson-kotlin
Gradle을 사용하여 패키지를 관리하는 경우 build.gradle.kts
종속성 목록에 다음 항목 중 하나를 추가합니다.
implementation("org.mongodb:bson-kotlinx:5.3.0") // OR implementation("org.mongodb:bson-kotlin:5.3.0")
Maven을 사용하여 패키지를 관리하는 경우 pom.xml
종속성 목록에 다음 항목 중 하나를 추가합니다.
<dependency> <groupId>org.mongodb</groupId> <artifactId>bson-kotlinx</artifactId> <version>5.3.0</version> </dependency> <!--OR--> <dependency> <groupId>org.mongodb</groupId> <artifactId>bson-kotlin</artifactId> <version>5.3.0</version> </dependency>
종속성을 구성한 후에는 종속성 관리자를 실행하고 IDE에서 프로젝트를 새로 고침하여 프로젝트에서 종속성을 사용할 수 있는지 확인합니다.
이러한 패키지에 학습 보려면 코틀린 (Kotlin) 직렬화 를 참조하세요.
MongoDB 클러스터 생성
Kotlin 프로젝트 종속성을 설정한 후 데이터를 저장하고 관리할 수 있는 MongoDB cluster를 생성합니다. Atlas시작하기 튜토리얼을 완료하여 새 Atlas 계정을 설정하고, 무료 계층 MongoDB cluster 를 생성 및 실행하고, 샘플 데이터 세트를 로드합니다.
Atlas 시작 튜토리얼의 단계를 완료하고 나면, Atlas에 새 MongoDB cluster가 배포되고, 새 데이터베이스 사용자 및 샘플 데이터가 클러스터에 로드됩니다.
클러스터 연결
이 단계에서는 Kotlin 드라이버를 사용하여 MongoDB cluster에 연결하고 샘플 데이터에 대한 쿼리를 실행하는 애플리케이션을 만들고 실행하는 방법을 보여줍니다.
먼저 코드에 연결 문자열을 포함하여 드라이버가 MongoDB cluster에 연결하는 방법을 지정해야 합니다. 이 문자열에는 클러스터의 호스트 이름 또는 IP 주소 및 포트, 인증 메커니즘, 사용자 자격 증명, 기타 연결 옵션 등에 대한 정보가 포함됩니다.
Atlas에서 호스팅되지 않는 인스턴스 또는 클러스터에 연결하는 경우, 연결 문자열의 형식을 지정하는 방법에 대한 지침은 연결 가이드의 다른 방법으로 MongoDB에 연결 섹션을 참조하세요.
이전 단계에서 만든 클러스터 및 사용자에 대한 연결 문자열을 조회하려면 Atlas 계정에 로그인하고 배포 아래의 Database 페이지로 이동하여 다음 이미지에 표시된 클러스터의 Connect 버튼을 클릭합니다.

연결에 대한 Drivers 옵션을 선택하고 드라이버 목록에서 Kotlin을 선택하고 버전 드롭다운에서 4.10 or later를 선택합니다.
그런 다음, 다음 이미지에 강조 표시된 Copy 아이콘을 클릭하여 연결 문자열을 클립보드에 복사합니다.

다음 단계를 위해 액세스할 수 있는 안전한 위치에 Atlas 연결 문자열을 저장합니다.
애플리케이션에서 MongoDB 클러스터 쿼리하기
그런 다음 프로젝트에 QuickStartDataClassExample.kt
라는 파일을 만듭니다.
다음 샘플 코드를 파일에 복사하고 uri
변수 값을 이전 단계에서 저장한 MongoDB Atlas 연결 문자열로 바꿉니다. 연결 문자열의 "<password>"
자리 표시자를 atlasAdmin 권한이 있는 사용자에 대해 설정한 비밀번호로 바꿉니다.
import com.mongodb.client.model.Filters.eq import com.mongodb.kotlin.client.coroutine.MongoClient import io.github.cdimascio.dotenv.dotenv import kotlinx.coroutines.flow.firstOrNull import kotlinx.coroutines.runBlocking // Create data class to represent a MongoDB document data class Movie(val title: String, val year: Int, val cast: List<String>) fun main() { // Replace the placeholder with your MongoDB deployment's connection string val uri = CONNECTION_STRING_URI_PLACEHOLDER val mongoClient = MongoClient.create(uri) val database = mongoClient.getDatabase("sample_mflix") // Get a collection of documents of type Movie val collection = database.getCollection<Movie>("movies") runBlocking { val doc = collection.find(eq("title", "Back to the Future")).firstOrNull() if (doc != null) { println(doc) } else { println("No matching documents found.") } } mongoClient.close() }
참고
이 예시에서는 Kotlin 데이터 클래스를 사용하여 MongoDB 데이터를 모델링합니다.
main
함수를 실행하면 애플리케이션은 다음 출력과 같이 쿼리와 일치하는 영화 문서의 세부 정보를 출력합니다.
Movie( title=Back to the Future, year=1985, cast=[Michael J. Fox, Christopher Lloyd, Lea Thompson, Crispin Glover] )
출력이 표시되지 않거나 오류가 발생하는 경우 애플리케이션에 적절한 연결 문자열을 포함했는지 확인합니다. 또한 샘플 데이터세트를 MongoDB Atlas 클러스터에 성공적으로 로드했는지 확인합니다.
중요
TLS v1.3 사용 시 알려진 연결 문제
MongoDB 인스턴스에 연결하는 동안 다음 오류가 발생하는 경우 JDK를 최신 패치 릴리스로 업데이트해야 합니다.
javax.net.ssl.SSLHandshakeException: extension (5) should not be presented in certificate_request
해당 오류는 특정 버전의 JDK에서 TLS 1.3 프로토콜을 사용할 때 발생하는 알려진 문제이지만 다음 JDK 버전에서 수정되었습니다.
JDK 11.0.7
JDK 13.0.3
JDK 14.0.2
이 오류를 해결하려면 JDK를 이전 패치 버전 중 하나 또는 최신 버전으로 업데이트하세요.
이 단계를 완료하면 Kotlin 드라이버를 사용하여 MongoDB cluster에 연결하고 샘플 데이터에 대해 쿼리를 실행하고 결과를 출력하는 등 정상적으로 작동하는 애플리케이션이 생성됩니다.
문서 클래스로 작업하기(대안)
이전 섹션에서는 Kotlin 데이터 클래스를 사용하여 샘플 컬렉션에서 쿼리를 실행하여 데이터를 검색하는 방법을 보여 줍니다. 이 섹션에서는 문서 클래스를 사용하여 MongoDB에서 데이터를 저장하고 조회할 수 있습니다.
QuickStartDocumentExample.kt
라는 새 파일에 다음 샘플 코드를 붙여넣어 MongoDB Atlas의 샘플 데이터 세트에 대한 쿼리를 실행합니다. uri
변수의 값을 MongoDB Atlas 연결 문자열로 바꿉니다.
import com.mongodb.client.model.Filters.eq import com.mongodb.kotlin.client.coroutine.MongoClient import io.github.cdimascio.dotenv.dotenv import kotlinx.coroutines.flow.firstOrNull import kotlinx.coroutines.runBlocking import org.bson.Document fun main() { // Replace the placeholder with your MongoDB deployment's connection string val uri = CONNECTION_STRING_URI_PLACEHOLDER val mongoClient = MongoClient.create(uri) val database = mongoClient.getDatabase("sample_mflix") val collection = database.getCollection<Document>("movies") runBlocking { val doc = collection.find(eq("title", "Back to the Future")).firstOrNull() if (doc != null) { println(doc.toJson()) } else { println("No matching documents found.") } } mongoClient.close() }
main
함수를 실행하면 애플리케이션은 다음 출력과 같이 쿼리와 일치하는 영화 문서의 세부 정보를 출력합니다.
{ _id: ..., plot: 'A young man is accidentally sent 30 years into the past...', genres: [ 'Adventure', 'Comedy', 'Sci-Fi' ], ... title: 'Back to the Future', ... }
출력이 표시되지 않거나 오류가 발생하는 경우 애플리케이션에 적절한 연결 문자열을 포함했는지 확인합니다. 또한 샘플 데이터세트를 MongoDB Atlas 클러스터에 성공적으로 로드했는지 확인합니다.
다음 단계
Kotlin 드라이버에 대해 자세히 알아보려면 관련 개념을 자세히 설명하고 다양한 작업을 수행하기 위한 코드 예시를 제공하는 기본 사항 가이드를 참조하세요.