빠른 시작: .NET SDK 및 Azure Cosmos DB의 MongoDB API를 사용하여 Xamarin.Forms 앱 빌드QuickStart: Build a Xamarin.Forms app with .NET SDK and Azure Cosmos DB's API for MongoDB

Azure Cosmos DB는 전 세계에 배포된 Microsoft의 다중 모델 데이터베이스 서비스입니다.Azure Cosmos DB is Microsoft’s globally distributed multi-model database service. Azure Cosmos DB의 핵심인 전역 배포 및 수평적 크기 조정 기능의 이점을 활용하여 문서, 키/값 및 그래프 데이터베이스를 빠르게 만들고 쿼리할 수 있습니다.You can quickly create and query document, key/value, and graph databases, all of which benefit from the global distribution and horizontal scale capabilities at the core of Azure Cosmos DB.

이 빠른 시작에서는 Azure Portal을 사용하여 Azure Cosmos DB의 MongoDB API로 구성된 Cosmos 계정, 문서 데이터베이스 및 컬렉션을 만드는 방법을 보여 줍니다.This quickstart demonstrates how to create a Cosmos account configured with Azure Cosmos DB's API for MongoDB, document database, and collection using the Azure portal. 그런 다음, MongoDB .NET 드라이버를 사용하여 todo 앱인 Xamarin.Forms 앱을 빌드합니다.You'll then build a todo app Xamarin.Forms app by using the MongoDB .NET driver.

샘플 앱을 실행하기 위한 필수 구성 요소Prerequisites to run the sample app

샘플을 실행하려면 Visual Studio 또는 Mac용 Visual Studio 및 유효한 Azure CosmosDB 계정이 필요합니다.To run the sample, you'll need Visual Studio or Visual Studio for Mac and a valid Azure CosmosDB account.

아직 Visual Studio가 없으면 설치 시 .NET을 사용한 모바일 개발 워크로드가 설치된 Visual Studio 2019 Community Edition을 다운로드합니다.If you don't already have Visual Studio, download Visual Studio 2019 Community Edition with the Mobile development with .NET workload installed with setup.

Mac에서 작업하려는 경우 Mac용 Visual Studio를 다운로드하여 설치 프로그램을 실행합니다.If you prefer to work on a Mac, download Visual Studio for Mac and run the setup.

Azure 구독이 아직 없는 경우 시작하기 전에 체험 계정을 만듭니다.If you don't have an Azure subscription, create a free account before you begin.

데이터베이스 계정 만들기Create a database account

  1. 새 창에서 Azure Portal에 로그인합니다.In a new window, sign in to the Azure portal.

  2. 왼쪽 메뉴에서 리소스 만들기, 데이터베이스를 차례로 선택한 다음, Azure Cosmos DB에서 만들기를 선택합니다.In the left menu, select Create a resource, select Databases, and then under Azure Cosmos DB, select Create.

    더 많은 서비스와 Azure Cosmos DB를 강조 표시한 Azure Portal의 스크린샷

  3. Azure Cosmos DB 계정 만들기 페이지에서 새 Azure Cosmos DB 계정에 대한 설정을 입력합니다.In the Create Azure Cosmos DB Account page, enter the settings for the new Azure Cosmos DB account.

    설정Setting Value 설명Description
    SubscriptionSubscription 사용자의 구독Your subscription 이 Azure Cosmos DB 계정에 사용하려는 Azure 구독을 선택합니다.Select the Azure subscription that you want to use for this Azure Cosmos DB account.
    리소스 그룹Resource Group 새로 만들기Create new

    다음으로, ID에 제공된 것과 동일한 고유한 이름 입력Then enter the same unique name as provided in ID
    새로 만들기를 선택합니다.Select Create new. 그런 다음, 계정에 대한 새 리소스 그룹 이름을 입력합니다.Then enter a new resource-group name for your account. 간단히 하기 위해 ID와 동일한 이름을 사용합니다.For simplicity, use the same name as your ID.
    계정 이름Account Name 고유한 이름을 입력합니다.Enter a unique name 내 Azure Cosmos DB 계정을 식별하는 고유한 이름을 입력합니다.Enter a unique name to identify your Azure Cosmos DB account. URI를 만들기 위해 제공하는 ID에 documents.azure.com이 추가되므로 고유한 ID를 사용합니다.Because documents.azure.com is appended to the ID that you provide to create your URI, use a unique ID.

    ID는 소문자, 숫자 및 하이픈(-) 문자만 사용할 수 있으며,The ID can use only lowercase letters, numbers, and the hyphen (-) character. 3~31자여야 합니다.It must be between 3 and 31 characters in length.
    APIAPI Azure Cosmos DB의 API for MongoDBAzure Cosmos DB's API for MongoDB API는 만들 계정의 형식을 결정합니다.The API determines the type of account to create. Azure Cosmos DB는 문서 데이터베이스용 Core(SQL), 그래프 데이터베이스용 Gremlin, 문서 데이터베이스용 Azure Cosmos DB의 API MongoDB, Azure Table 및 Cassandra의 5가지 API를 제공합니다.Azure Cosmos DB provides five APIs: Core (SQL) for document databases, Gremlin for graph databases, Azure Cosmos DB's API MongoDB for document databases, Azure Table, and Cassandra. 현재 각 API에 대한 별도의 계정을 만들어야 합니다.Currently, you must create a separate account for each API.

    이 빠른 시작에서는 MongoDB를 사용하는 테이블을 만들 예정이므로 MongoDB를 선택합니다.Select MongoDB because in this quickstart you are creating a table that works with the MongoDB.
    위치Location 사용자와 가장 가까운 지역 선택Select the region closest to your users Azure Cosmos DB 계정을 호스트할 지리적 위치를 선택합니다.Select a geographic location to host your Azure Cosmos DB account. 데이터에 가장 빨리 액세스할 수 있도록 사용자와 가장 가까운 위치를 사용합니다.Use the location that's closest to your users to give them the fastest access to the data.

    검토+만들기를 선택합니다.Select Review+Create. 네트워크태그 섹션을 건너뛸 수 있습니다.You can skip the Network and Tags section.

    Azure Cosmos DB에 대한 새 계정 페이지

  4. 계정 생성에는 몇 분 정도가 소요됩니다.The account creation takes a few minutes. 포털에서 축하합니다! MongoDB에 대한 유선 프로토콜 호환성이 있는 Cosmos 계정이 준비되었습니다. 페이지를 표시할 때까지 기다립니다.Wait for the portal to display the Congratulations! Your Cosmos account with wire protocol compatibility for MongoDB is ready page.

    Azure Portal 알림 창

이 문서에 설명된 샘플은 MongoDB.Driver 버전 2.6.1과 호환됩니다.The sample described in this article is compatible with MongoDB.Driver version 2.6.1.

샘플 앱 복제Clone the sample app

먼저 GitHub에서 샘플 앱을 다운로드합니다.First, download the sample app from GitHub. 이 앱은 MongoDB의 문서 스토리지 모델을 사용하여 todo 앱을 구현합니다.It implements a todo app with MongoDB's document storage model.

  1. 명령 프롬프트를 git-samples라는 새 폴더를 만든 다음 명령 프롬프트를 닫습니다.Open a command prompt, create a new folder named git-samples, then close the command prompt.

    md "C:\git-samples"
    
  2. Git Bash와 같은 Git 터미널 창을 열고, cd 명령을 사용하여 샘플 앱을 설치할 새 폴더로 변경합니다.Open a git terminal window, such as git bash, and use the cd command to change to the new folder to install the sample app.

    cd "C:\git-samples"
    
  3. 다음 명령을 실행하여 샘플 리포지토리를 복제합니다.Run the following command to clone the sample repository. 이 명령은 컴퓨터에서 샘플 앱의 복사본을 만듭니다.This command creates a copy of the sample app on your computer.

    git clone https://github.com/Azure-Samples/azure-cosmos-db-mongodb-xamarin-getting-started.git
    

git을 사용하지 않으려면 프로젝트를 ZIP 파일로 다운로드하면 됩니다.If you don't wish to use git, you can also download the project as a ZIP file

코드 검토Review the code

이 단계는 선택 사항입니다.This step is optional. 데이터베이스 리소스를 코드로 만드는 방법을 알아보려는 경우 다음 코드 조각을 검토할 수 있습니다.If you're interested in learning how the database resources are created in the code, you can review the following snippets. 그렇지 않으면 연결 문자열 업데이트로 건너뛸 수 있습니다.Otherwise, you can skip ahead to Update your connection string.

다음 코드 조각은 모두 MongoService 클래스에서 가져오고 src/TaskList.Core/Services/MongoService.cs 경로에 있습니다.The following snippets are all taken from the MongoService class, found at the following path: src/TaskList.Core/Services/MongoService.cs.

  • Mongo 클라이언트를 초기화합니다.Initialize the Mongo Client.

    MongoClientSettings settings = MongoClientSettings.FromUrl(
        new MongoUrl(APIKeys.ConnectionString)
    );
    
    settings.SslSettings =
        new SslSettings() { EnabledSslProtocols = SslProtocols.Tls12 };
    
    MongoClient mongoClient = new MongoClient(settings);
    
  • 데이터베이스 및 컬렉션에 대한 참조를 검색합니다.Retrieve a reference to the database and collection. 아직 존재하지 않는 경우 MongoDB .NET SDK는 자동으로 데이터베이스 및 컬렉션을 모두 만듭니다.The MongoDB .NET SDK will automatically create both the database and collection if they do not already exist.

    string dbName = "MyTasks";
    string collectionName = "TaskList";
    
    var db = mongoClient.GetDatabase(dbName);
    
    var collectionSettings = new MongoCollectionSettings {
        ReadPreference = ReadPreference.Nearest
    };
    
    tasksCollection = db.GetCollection<MyTask>(collectionName, collectionSettings);
    
  • 모든 문서를 목록으로 검색합니다.Retrieve all documents as a List.

    var allTasks = await TasksCollection
                    .Find(new BsonDocument())
                    .ToListAsync();
    
  • 특정 문서를 쿼리합니다.Query for particular documents.

    public async Task<List<MyTask>> GetIncompleteTasksDueBefore(DateTime date)
    {
        var tasks = await TasksCollection
                        .AsQueryable()
                        .Where(t => t.Complete == false)
                        .Where(t => t.DueDate < date)
                        .ToListAsync();
    
        return tasks;
    }
    
  • 작업을 만들어 컬렉션에 삽입합니다.Create a task and insert it into the collection.

    public async Task CreateTask(MyTask task)
    {
        await TasksCollection.InsertOneAsync(task);
    }
    
  • 컬렉션에서 작업을 업데이트합니다.Update a task in a collection.

    public async Task UpdateTask(MyTask task)
    {
        await TasksCollection.ReplaceOneAsync(t => t.Id.Equals(task.Id), task);
    }
    
  • 컬렉션에서 작업을 삭제합니다.Delete a task from a collection.

    public async Task DeleteTask(MyTask task)
    {
        await TasksCollection.DeleteOneAsync(t => t.Id.Equals(task.Id));
    }
    

연결 문자열 업데이트Update your connection string

이제 Azure Portal로 다시 이동하여 연결 문자열 정보를 가져와서 앱에 복사합니다.Now go back to the Azure portal to get your connection string information and copy it into the app.

  1. Azure Portal의 Azure Cosmos DB 계정에서 왼쪽 탐색 영역의 연결 문자열을 클릭한 다음 읽기-쓰기 키를 클릭합니다.In the Azure portal, in your Azure Cosmos DB account, in the left navigation click Connection String, and then click Read-write Keys. 화면의 오른쪽에서 복사 단추를 사용하여 다음 단계에서 기본 연결 문자열을 복사합니다.You'll use the copy buttons on the right side of the screen to copy the Primary Connection String in the next steps.

  2. TaskList.Core 프로젝트의 Helpers 디렉터리에서 APIKeys.cs 파일을 엽니다.Open the APIKeys.cs file in the Helpers directory of the TaskList.Core project.

  3. (복사 단추를 사용하여) 포털에서 기본 연결 문자열 값을 복사하고 APIKeys.cs 파일에서 ConnectionString 필드의 값으로 만듭니다.Copy your primary connection string value from the portal (using the copy button) and make it the value of the ConnectionString field in your APIKeys.cs file.

이제 Azure Cosmos DB와 통신하는 데 필요한 모든 정보로 앱이 업데이트되었습니다.You've now updated your app with all the info it needs to communicate with Azure Cosmos DB.

앱 실행Run the app

Visual Studio 2019Visual Studio 2019

  1. Visual Studio의 솔루션 탐색기에서 각 프로젝트를 마우스 오른쪽 단추로 클릭한 다음, NuGet 패키지 관리를 클릭합니다.In Visual Studio, right-click on each project in Solution Explorer and then click Manage NuGet Packages.
  2. 모든 NuGet 패키지 복원을 클릭합니다.Click Restore all NuGet packages.
  3. TaskList.Android를 마우스 오른쪽 단추로 클릭하고 시작 프로젝트로 설정을 선택합니다.Right click on the TaskList.Android and select Set as startup project.
  4. F5 키를 눌러 애플리케이션 디버깅을 시작합니다.Press F5 to start debugging the application.
  5. iOS에서 실행하려는 경우 먼저 컴퓨터는 Mac에 연결됩니다(수행하는 방법에 대한 지침은 다음과 같음).If you want to run on iOS, first your machine is connected to a Mac (here are instructions on how to do so).
  6. TaskList.iOS 프로젝트를 마우스 오른쪽 단추로 클릭하고 시작 프로젝트로 설정을 선택합니다.Right click on TaskList.iOS project and select Set as startup project.
  7. F5 키를 클릭하여 애플리케이션 디버깅을 시작합니다.Click F5 to start debugging the application.

Mac용 Visual StudioVisual Studio for Mac

  1. 플랫폼 드롭다운 목록에서 실행할 플랫폼에 따라 TaskList.iOS 또는 TaskList.Android를 선택합니다.In the platform dropdown list, select either TaskList.iOS or TaskList.Android, depending which platform you want to run on.
  2. cmd+Enter 키를 눌러 애플리케이션 디버깅을 시작합니다.Press cmd+Enter to start debugging the application.

Azure Portal에서 SLA 검토Review SLAs in the Azure portal

Azure Portal에서는 Cosmos DB 계정 처리량, 스토리지, 가용성, 대기 시간 및 일관성을 모니터링합니다.The Azure portal monitors your Cosmos DB account throughput, storage, availability, latency, and consistency. Azure Cosmos DB SLA(서비스 수준 계약)와 관련된 메트릭 차트에는 실제 성능 대비 SLA 값이 표시됩니다.Charts for metrics associated with an Azure Cosmos DB Service Level Agreement (SLA) show the SLA value compared to actual performance. 이 메트릭 모음을 통해 SLA를 투명하게 모니터링할 수 있습니다.This suite of metrics makes monitoring your SLAs transparent.

메트릭 및 SLA를 검토하려면 다음을 수행합니다.To review metrics and SLAs:

  1. Cosmos DB 계정의 탐색 메뉴에서 메트릭을 선택합니다.Select Metrics in your Cosmos DB account's navigation menu.

  2. 대기 시간과 같은 탭을 선택하고, 오른쪽에서 시간 프레임을 선택합니다.Select a tab such as Latency, and select a timeframe on the right. 차트의 실제SLA 줄을 비교합니다.Compare the Actual and SLA lines on the charts.

    Azure Cosmos DB 메트릭 도구 모음

  3. 다른 탭의 메트릭을 검토합니다.Review the metrics on the other tabs.

리소스 정리Clean up resources

웹앱과 Azure Cosmos DB 계정을 모두 사용했으면 추가로 비용을 지불하지 않도록 만든 Azure 리소스를 삭제할 수 있습니다.When you're done with your web app and Azure Cosmos DB account, you can delete the Azure resources you created so you don't incur more charges. 리소스를 삭제하려면:To delete the resources:

  1. Azure Portal의 맨 왼쪽에서 리소스 그룹을 선택합니다.In the Azure portal, select Resource groups on the far left. 왼쪽 메뉴가 축소되어 있으면 확장 버튼을 선택하여 확장합니다.If the left menu is collapsed, select Expand button to expand it.

  2. 이 빠른 시작에서 만든 리소스 그룹을 선택합니다.Select the resource group you created for this quickstart.

    삭제할 리소스 그룹 선택

  3. 새 창에서 리소스 그룹 삭제를 선택합니다.In the new window, select Delete resource group.

    리소스 그룹 삭제

  4. 새 창에서 삭제할 리소스 그룹의 이름을 입력한 다음, 삭제를 선택합니다.In the next window, enter the name of the resource group to delete, and then select Delete.

다음 단계Next steps

이 빠른 시작에서는 Azure Cosmos DB 계정을 만들고, MongoDB의 API를 사용하여 Xamarin.Forms 앱을 실행하는 방법을 알아보았습니다.In this quickstart, you've learned how to create an Azure Cosmos DB account and run a Xamarin.Forms app using the API for MongoDB. 이제 사용자의 Cosmos DB 계정에 추가 데이터를 가져올 수 있습니다.You can now import additional data to your Cosmos DB account.