본문 바로가기

Data & MarTech/Google Cloud Platform

[Google App Engine] Java Project 생성, 로컬 테스트 및 배포

반응형

Google App Engine에서는 Python, Java, PHP, Go 개발 환경을 제공한다. 이중에서 내가 할 줄 아는 언어는 Java 밖에 없는 관계로 다른 개발 방법은 관심을 갖지 않기로 하였다. 설명 자체가 대부분 영어로 된 관계로 삽질을 두 번 하지 않도록 하기 위해 아래 기술하는 사항을 꼭 지키도록 한다.


1. 개발자 콘솔 프로젝트 생성

- 개발자 콘솔 사이트 접속(https://console.developers.google.com/project)

- Create Project 버튼을 클릭하고 팝업창에 임의의 PROJECT NAME을 입력한다. 아래와 같이 난 총 4개의 프로젝트를 생성하였다. PROJECT ID라는 것이 생성되는데, google에서 임의의 ID가 발급된다. 특별한 뜻이 있는 것 같진 않으나,  APP ID로 계속 사용해야 하고, 배포시 sub domain명으로 사용된다.


[그림1] Create Project



2. 생성된 PROJECT NAME 링크를 클릭하여, 프로젝트 대시보드로 이동한다.

- 여기까지는 Google Cloud에 프로젝트 공간을 생성하는 과정이다. 부여된 PROJECT ID를 이용하여 소스를 배포하면 Cloud의 프로젝트 공간에 배포가 된다. 그럼 아래 그림 처럼 앱 엔진 사용량 및 부가 정보들이 모니터링된다.


[그림2] 프로젝트 모니터링 페이지


3. 메이븐 환경 세팅

- maven이 설치되어 있지 않다면, apache maven 사이트에 가서 다운로드를 먼저 받는다.(http://maven.apache.org/download.cgi)

- 다운로드가 완료되었다면, 환경설정에 MAVEN_HOME을 등록한다. 나는 맥사용자니까 .bash_profile에 등록하였다.


[그림3] 빌드 환경 설정

- 메이븐 환경설정이 잘 적용이 되었는지 명령어 mvn -v를 실행한다.

- 여기서 문제가 발생하였다. 메이븐이 Java 1.6버전에선 실행이 되지 않는다고 에러 메시지를 출력한다.

- 개인적으로 사용중인 하둡 1.2.x 버전에 맞춰 놓았더니 이런 사단이 발생한다.

- 당황하지 않고,  java 1.7 버전을 적용해 본다.


jasonui-MacBook-Pro:~ jason$ export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.7.0_45.jdk/Contents/Home


- 지금보니 Google App Engine 가이드에 1.7 버전을 쓰라고 미리 나와 있다.(젠장...)


4. 로컬 프로젝트 생성할 위치 선정

- mkdir 명령어로 gae 프로젝트를 받을 폴더를 만들거나, 윈도우 탐색기 또는 finder에서 폴더를 만든다.

- 예를 들어, test라는 폴더를 만들고 그 위치에서 프로젝트 소스를 내려받는다.

- 중요한 점은 폴더 위치에 이동해서 [5.로컬 프로젝트 생성]을 해야 한다는 점이다.(에러가 나는 것은 아니지만 workspace에Project 내려 받기를 원하므로 이렇게 하자!!!)


5. 로컬 프로젝트 생성

구글 가이드에 따라 메이븐 명령어를 실행한다. 여기서 명심할 사항은 두가지이다. 

- appengine-version : 내가 지금 eclipse에 설치된 환경을 보니 app engine sdk버전이 1.9.9로 뜬다. 따라서 난 아래 예문 대신 1.9.9로 값을 변경하였다.

- application-id : 1번 개발자 콘솔에서 Create Project시 부여받은 app id를 등록한다.


jasonui-MacBook-Pro:~ jason$ mvn archetype:generate -Dappengine-version=1.9.12 -Dapplication-id=your-app-id -Dfilter=com.google.appengine.archetypes:

 

6. 프로젝트 다운로드 확인


7. 로컬 프로젝트 빌드 & 실행

- 로컬 프로젝트 경로로 이동하여 mvn 명령어를 실행한다. 문제가 없다면 Success 메시지가 뜰 것이다. localhost:8080을 실행하면 로컬 프로젝트 default 페이지가 뜬다.(maybe hello world 페이지)

jasonui-MacBook-Pro:~ jason$ cd /myapp (<-- 프로젝트를 받은 폴더로 이동)

jasonui-MacBook-Pro:myapp jason$ mvn clean install

jasonui-MacBook-Pro:myapp jason$ mvn appengine:devserver


[그림4] mvn appengine:devserver를 실행한 화면 : Dev App Server is now running


- API Explorer URL 실행

http://localhost:8080/_ah/api/explorer


[그림5] Endpoint를 구현하면 API를 확인할 수 있는 페이지를 제공한다.


[그림6] API 목록에서 listGreeting을 클릭해본다.

[그림7] fields 영역에 임의값 1을 입력하고 "Execute"를 실행한다.


[그림8] Request - Response 결과값 확인


8. 프로젝트 배포[각주:1]

- update 명령어를 실행하면 gae에 소스 업로드 진행율이 콘솔에 찍힌다. 완료 후 google developer console에 들어가면 대시보드에 도메인 세팅이 되어 모니터링 되는 것을 볼 수 있다.

jasonui-MacBook-Pro:myapp jason$ mvn appengine:update


  1. https://cloud.google.com/appengine/docs/java/gettingstarted/uploading [본문으로]
반응형