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

스칼라 드라이버 시작하기

MongoDB 스칼라 드라이버 는 Java Reactive Streams 운전자 기반으로 구축된 비동기 API 로, 이를 사용하여 MongoDB 에 연결하고 배포서버 에 저장된 데이터와 상호 작용 . 이 가이드 스칼라 운전자 사용하여 MongoDB Atlas 에서 호스팅되는 MongoDB cluster 에 연결하고 클러스터 의 데이터를 쿼리 애플리케이션 만드는 방법을 설명합니다.

MongoDB Atlas는 관리형 클라우드 데이터베이스 서비스로, MongoDB deployment를 호스팅합니다. 이 가이드의 단계에 따라 자체 무료(신용카드 필요 없음) MongoDB Atlas 배포서버를 생성할 수 있습니다.

이 가이드 에 따라 샘플 스칼라 애플리케이션 MongoDB Atlas 배포서버 서버에 연결하세요. 다른 운전자 또는 프로그래밍 언어 사용하여 MongoDB 에 연결하려는 경우 공식 드라이버 목록을 참조하세요.

1

개발하기 전에 개발 환경에 다음 종속성이 설치되어 있는지 확인합니다.

2

셸 에서 다음 명령을 실행하여 이 프로젝트 에 대해 scala-quickstart 디렉토리 만듭니다.

mkdir scala-quickstart

운영 체제에 해당하는 탭 선택하고 다음 명령을 실행 scala-quickstart 디렉토리 에 build.sbt 파일 만듭니다.

cd scala-quickstart
touch build.sbt
cd scala-quickstart
type nul > build.sbt
3

build.sbt 파일 로 이동하여 애플리케이션 에서 스칼라 운전자 사용하려면 다음 코드를 추가하세요.

ThisBuild / scalaVersion := "2.13.16"
libraryDependencies += "org.mongodb.scala" %% "mongo-scala-driver" % "5.5.0"

이 코드는 스칼라 버전 2.13.16 및 스칼라 운전자 버전 5.5.0을 사용하도록 애플리케이션 구성합니다.

이 단계를 완료하면 운전자 종속성이 설치된 새 프로젝트 디렉토리 생성됩니다.

MongoDB Atlas에 프리 티어 MongoDB 배포를 생성하여 데이터를 저장하고 관리할 수 있습니다. MongoDB Atlas는 클라우드에서 MongoDB database를 호스팅하고 관리합니다.

1

Atlas 시작하기 가이드를 완료하여 새 Atlas 계정을 설정하고 새로운 프리 계층 MongoDB 배포서버에 샘플 데이터를 로드하세요.

2

데이터베이스 사용자를 생성한 후 다음 단계에서 사용할 수 있도록 해당 사용자의 사용자 이름과 비밀번호를 안전한 위치에 저장하세요.

이 단계를 완료하면 Atlas에 새로운 프리 티어 MongoDB 배포서버, 데이터베이스 사용자 자격 증명 및 샘플 데이터가 데이터베이스에 로드됩니다.

연결 문자열이라고도 하는 연결 URI을 제공하여 MongoDB 배포서버에 연결할 수 있으며, 이 연결 문자열은 드라이버에 MongoDB 배포서버로 연결하는 방법과 연결된 동안 동작하는 방법을 지시합니다.

연결 문자열에는 배포서버의 호스트 이름 또는 IP 주소와 포트, 인증 메커니즘, 해당되는 경우 사용자 자격 증명, 연결 옵션 등이 포함됩니다.

Atlas 에서 호스팅되지 않는 인스턴스 또는 배포서버 에 연결하는 방법을 학습 연결 대상 선택 가이드 참조하세요.

1

이전 단계에서 만든 배포서버에 대한 연결 문자열 조회 하려면 Atlas 계정에 로그인 Database 섹션으로 이동한 다음 새 배포서버에 대한 Connect 버튼을 클릭합니다.

Atlas UI의 클러스터 섹션에 있는 연결 버튼

그런 다음 Connect to your application 헤더 아래에 있는 Drivers 옵션을 선택합니다. Driver 선택 메뉴에서 "스칼라"를 선택하고 Version 선택 메뉴에서 설치한 버전과 가장 일치하는 버전을 선택합니다.

2

다음 스크린샷과 같이 연결 string 오른쪽에 있는 버튼을 클릭하여 클립보드에 복사합니다.

UI 의 연결 옆에 있는 복사 버튼 string Atlas
3

이 연결 문자열을 원하는 텍스트 편집기의 파일에 붙여넣고 <db_username><db_password> 자리 표시자를 데이터베이스 사용자의 사용자 이름 및 비밀번호로 바꿉니다.

다음 단계에서 사용할 수 있도록 이 파일을 안전한 위치에 저장합니다.

이 단계를 완료하면 Atlas cluster 에 해당하는 연결 문자열 생성됩니다.

MongoDB Atlas 배포서버 에 대한 연결 문자열 검색한 후 스칼라 애플리케이션 에서 배포서버 에 연결하여 Atlas 샘플 데이터 세트를 쿼리 수 있습니다.

1

이 가이드의 다운로드 및 설치 단계에서 만든 scala-quickstart 디렉토리로 이동하여 src/main/scala/quickstart 중첩 디렉토리를 만듭니다.

운영 체제에 해당하는 탭 선택하고 다음 명령을 실행 quickstart 하위 디렉토리에 Main.scala 파일 만듭니다.

cd src/main/scala/quickstart
touch Main.scala
cd src/main/scala/quickstart
type nul > Main.scala
2

Helpers.scala 운전자 소스 src/main/scala/quickstart 코드 에서 다음 파일 디렉토리 에 추가합니다.

package quickstart
import java.util.concurrent.TimeUnit
import scala.concurrent.Await
import scala.concurrent.duration.Duration
import org.mongodb.scala._
object Helpers {
implicit class DocumentObservable[C](val observable: Observable[Document]) extends ImplicitObservable[Document] {
override val converter: (Document) => String = (doc) => doc.toJson
}
implicit class GenericObservable[C](val observable: Observable[C]) extends ImplicitObservable[C] {
override val converter: (C) => String = (doc) => Option(doc).map(_.toString).getOrElse("")
}
trait ImplicitObservable[C] {
val observable: Observable[C]
val converter: (C) => String
def results(): Seq[C] = Await.result(observable.toFuture(), Duration(10, TimeUnit.SECONDS))
def headResult() = Await.result(observable.head(), Duration(10, TimeUnit.SECONDS))
def printResults(initial: String = ""): Unit = {
if (initial.length > 0) print(initial)
results().foreach(res => println(converter(res)))
}
def printHeadResult(initial: String = ""): Unit = println(s"${initial}${converter(headResult())}")
}
}

이 파일 사용하면 쿼리 결과를 인쇄하기 위한 헬퍼 메서드 액세스 할 수 있습니다.

3

다음 코드를 복사하여 sample_mflix 데이터베이스 의 movies 컬렉션 을 쿼리하는 Main.scala 파일 에 붙여넣습니다.

package quickstart
import org.mongodb.scala._
import org.mongodb.scala.model.Filters._
import Helpers._
object Main {
def main(args: Array[String]): Unit = {
val mongoClient = MongoClient("<connection string>")
val database: MongoDatabase =
mongoClient.getDatabase("sample_mflix")
val collection: MongoCollection[Document] =
database.getCollection("movies")
val filter = equal("title", "The Shawshank Redemption")
collection.find(filter).printResults()
mongoClient.close()
}
}
4

<connection string> 자리 표시자를 이 가이드의 연결 문자열 만들기 단계에서 복사한 연결 문자열로 바꿉니다.

5

프로젝트 루트 디렉토리 에서 다음 명령을 실행 sbt 셸 시작하고 애플리케이션 실행 .

sbt
run

명령줄 출력에는 검색된 영화 문서에 대한 세부 정보가 포함됩니다.

{"_id": {"$oid": "..."}, ... , "genres": ["Crime", "Drama"], "rated": "R",
"metacritic": 80, "title": "The Shawshank Redemption", ... }

오류가 발생하거나 출력이 표시되지 않는 경우 Main.scala 파일에 적절한 연결 문자열을 지정했는지, 그리고 샘플 데이터를 로드했는지 확인합니다.

다음 명령을 실행 하여 sbt 셸 종료할 수 있습니다.

exit

이 단계를 완료하면 MongoDB deployment 에 연결하고 샘플 데이터에 대해 쿼리 실행하고 일치하는 문서 반환하는 스칼라 애플리케이션 생성됩니다.

빠른 시작 튜토리얼을 완료하신 것을 축하드립니다!

이 튜토리얼에서는 MongoDB Atlas 에서 호스팅되는 MongoDB deployment 에 연결하고 쿼리 와 일치하는 문서 검색하는 스칼라 애플리케이션 만들었습니다.

다음 리소스에서 스칼라 운전자 에 대해 자세히 보기 .

참고

이 단계에서 문제가 발생하면 MongoDB Community 포럼 에서 도움을 요청하거나 이 페이지의 오른쪽 또는 오른쪽 아래에 있는 Rate this page 탭을 사용하여 피드백을 제출하세요.

돌아가기

MongoDB Scala 드라이버