Cloud Datastore 사용

Google Cloud Datastore를 사용하여 App Engine 앱의 애플리케이션 데이터를 저장할 수 있습니다. Cloud Datastore는 자동 확장, 고성능, 간편한 애플리케이션 개발을 목적으로 설계된 데이터베이스입니다.

이 문서에서는 Google Cloud 클라이언트 라이브러리를 사용해 App Engine 앱에서 Cloud Datastore를 통해 데이터를 저장하고 검색하는 방법을 설명합니다.

선행 조건 및 설정

App Engine에서 Ruby용 'Hello, World!'의 안내를 따라 환경과 프로젝트를 설정하고 App Engine에서 Ruby 앱이 구조화되는 방식을 알아봅니다. 이 문서에 설명된 샘플 애플리케이션을 실행할 때 필요하므로 프로젝트 ID를 기록해 둡니다.

저장소 복제

샘플을 다운로드(복제)합니다.

git clone https://github.com/GoogleCloudPlatform/ruby-docs-samples
cd ruby-docs-samples/appengine/datastore

프로젝트 구성 수정 및 종속성 설정

Gemfile에서 Cloud Datastore용 함수가 포함된 google-cloud 라이브러리를 포함합니다.

source "https://rubygems.org"

gem "google-cloud-datastore"
gem "sinatra"

애플리케이션 코드

샘플 애플리케이션은 방문자 IP를 기록, 검색, 표시합니다. 로그 항목은 visit 유형이 지정된 단순한 2개 필드로 이루어진 클래스에 해당하며 save 명령어를 사용하여 Cloud Datastore에 저장됨을 알 수 있습니다. 이후 데이터세트 run 명령어를 사용하여 10개의 최근 방문이 내림차순으로 검색됩니다.

require "digest/sha2"
require "sinatra"
require "google/cloud/datastore"

get "/" do
  datastore = Google::Cloud::Datastore.new

  # Save visit in Datastore
  visit = datastore.entity "Visit" do |v|
    v["user_ip"]   = Digest::SHA256.hexdigest request.ip
    v["timestamp"] = Time.now
  end
  datastore.save visit

  # Query the last 10 visits from the Datastore
  query     = datastore.query("Visit").order("timestamp", :desc).limit(10)
  visits    = datastore.run query

  response.write "Last 10 visits:\n"

  visits.each do |visit|
    response.write "Time: #{visit['timestamp']} Addr: #{visit['user_ip']}\n"
  end

  content_type "text/plain"
  status 200
end

index.yaml 파일 사용

샘플 앱에서는 간단한 쿼리를 수행합니다. 보다 정교한 Datastore 쿼리를 실행하려면 색인이 한 개 이상 필요하며, 앱과 함께 업로드하는 index.yaml 파일에서 색인을 지정해야 합니다. 이 파일은 수동으로 만들거나 로컬에서 앱을 테스트하는 동안 자동으로 생성될 수 있습니다.

로컬 테스트

애플리케이션을 로컬에서 개발 및 테스트하려면 Cloud Datastore 에뮬레이터를 사용할 수 있습니다.

추가 정보

최적화와 개념을 비롯하여 Cloud Datastore에 대한 자세한 내용은 Cloud Datastore 문서를 참조하세요.