App Engine 및 Earth Engine 개요

Google App Engine을 사용하면 Google 서버에서 자체 맞춤 애플리케이션을 빌드하고 실행할 수 있습니다. App Engine 애플리케이션은 트래픽과 데이터 저장소의 요구사항이 변화함에 따라 쉽게 만들고 유지관리하며 확장할 수 있습니다. 애플리케이션 소스 코드를 업로드하기만 하면 됩니다. App Engine 개발이 처음이라면 계속하기 전에 App Engine Python 또는 Node.js 빠른 시작을 확인하세요.

Earth Engine과 App Engine을 함께 사용하여 확장 가능한 지리정보 애플리케이션을 빌드할 수 있습니다. 일반적으로 App Engine 코드에는 Earth Engine Python 클라이언트 라이브러리가 포함되어 있으며 서비스 계정을 사용하여 Earth Engine 백엔드에 요청을 보냅니다. 이렇게 하면 누구나 로그인하거나 등록된 Earth Engine 사용자가 아니어도 앱을 사용할 수 있으므로 유리합니다. 각 서비스 계정에는 표준 Earth Engine 사용량 한도가 적용됩니다.

서비스 계정 대신 클라이언트 측 인증을 사용하는 것도 또 다른 개발 접근 방식입니다. 이 접근 방식을 사용하려면 애플리케이션 방문자가 Earth Engine에 등록되어 로그인해야 합니다. 이 접근 방식의 이점은 Earth Engine에 대한 요청이 최종 사용자의 사용자 인증 정보를 사용하여 이루어지므로 사용량 한도에 도달할 가능성이 낮다는 것입니다. 문제는 사용자가 애플리케이션을 사용하기 전에 Earth Engine에 가입하고 로그인해야 한다는 점입니다.

GitHub의 Earth Engine App Engine 데모 디렉터리에는 유용한 App Engine 예시가 포함되어 있습니다. 각 예시의 간단한 설명은 앱 예시 페이지를 참고하세요. 이 문서에서는 만든 예시 또는 맞춤 앱을 설정하고 배포하는 방법을 안내합니다.

Earth Engine을 사용하여 App Engine 앱 배포

다음 안내에서는 데모 앱을 배포하는 방법을 설명합니다. Python 안내는 Mac OS 및 Linux용입니다. Windows에서 Python을 사용하는 경우 다음을 시도해 보세요.

Google Cloud 프로젝트에서 Earth Engine API 사용 설정

Google Cloud 프로젝트를 만들거나 선택하고 이 안내에 따라 Earth Engine API를 사용 설정합니다.

사용자 인증 정보를 설정합니다.

서비스 계정

서비스 계정은 앱을 사용하는 사용자를 대신하여 Earth Engine에 대한 요청을 승인하는 데 사용될 수 있습니다. config.py 파일에는 서비스 계정 이메일 주소와 비공개 키 파일을 사용하는 인증 코드가 포함되어 있습니다. 서비스 계정으로 인증을 설정하려면 이 안내에 따라 서비스 계정과 비공개 키 파일을 만드세요. 키 파일의 이름을 .private-key.json로 지정하고 프로젝트 디렉터리로 이동합니다.

Python

아직 설정하지 않았다면 먼저 Earth Engine Python API를 설정합니다. 이 안내에 따라 서비스 계정을 테스트합니다.

테스트가 성공하면 config.py (또는 소스 코드의 상응하는 파일)를 서비스 계정 이메일 주소로 업데이트합니다. 키 파일의 경로는 프로젝트 디렉터리에 있으므로 변경되지 않습니다.

Node.js

npm install를 실행하여 프로젝트의 종속 항목을 설치합니다. Earth Engine Node.js API 및 기타 종속 항목이 프로젝트 디렉터리의 ./node_modules 폴더에 복사됩니다. 설치에 실패하면 최신 버전의 Node.js가 설치되어 있는지 확인합니다.

const ee = require('@google/earthengine');
ee.data.authenticateViaPrivateKey('.private-key.json');
ee.initialize();

OAuth 2.0 클라이언트 ID

사용자가 서비스 계정을 사용하는 대신 본인으로 인증하도록 하려면 Cloud 프로젝트에서 OAuth 클라이언트 ID를 설정해야 합니다. 다음 안내를 따르세요.

  1. 이 안내에 따라 클라이언트 ID를 설정합니다.
  2. 클라이언트 ID를 사용하도록 static/script.js (또는 소스 코드의 이에 상응하는 파일)을 업데이트합니다.
  3. /static/ 디렉터리 (또는 이에 상응하는 디렉터리)에서 ee_api_js.js를 사용할 수 있는지 확인합니다. GitHub에서 직접 다운로드하거나 npm에서 설치하거나, 이미 전체 EE API 저장소를 클론한 경우 로컬 파일 시스템의 earthengine-api/javascript/build에서 복사할 수 있습니다.

로컬 개발 환경 설정

Python

GitHub의 각 예시 디렉터리에 있는 안내에 따라 프로젝트를 다운로드하고 빌드합니다. build.sh 파일이 있는 경우 다음 명령어를 사용하여 애플리케이션 루트 폴더에서 실행합니다.

./build.sh

설정 스크립트는 종속 항목을 다운로드하고 시스템에 아직 없는 경우 Google 명령줄 도구를 설치합니다. Earth Engine Python API 및 종속 항목이 프로젝트 디렉터리의 ./lib 폴더에 복사됩니다.

다음을 실행하여 App Engine 명령줄 도구를 사용할 수 있는지 확인합니다.

dev_appserver.py

명령어가 표시되지 않으면 Python용 Google App Engine SDK를 수동으로 다운로드하여 설치해 보세요. 명령어를 사용할 수 있으면 'error: too few arguments' 오류와 함께 실패합니다.

Node.js

설정이 필요하지 않습니다.

로컬에서 실행

서비스 계정이 Earth Engine 액세스에 등록되면 예시를 테스트할 때 이를 사용하여 인증할 수 있습니다 (config.py 참고). 먼저 프로젝트 디렉터리로 이동하여 다음을 실행하여 예시를 로컬에서 테스트해 보세요.

Python
dev_appserver.py .
Node.js
npm install
npm start

브라우저를 http://localhost:8080으로 가리켜 로컬 서버에서 실행 중인 앱을 확인합니다. 변경사항을 적용하고 저장하면 페이지를 새로고침할 때 자동으로 적용됩니다.