구글앱엔진 스터디
- 2. - 목 차 -
2
1. Google App Engine 이란?
2. 구글 앱 엔진 시작하기
3. 구글 앱 엔진 개발환경
4. 로컬에서 실행
5. 프로젝트 만들기
6. 앱 엔진 등록
7. 나의 앱 엔진 만들기
8. 참고
- 3. Google이 제공하는 응용 프로그램 개발 및 호스팅 플랫폼
스토리지/장비/네트워크 등을 관리하지 않고도 호스팅 가능
Google 웹 사이트에서 사용하는 동일한 기술을 제공
개발자는 코드를 작성하여 배포하고 모니터링
Google은 사용한 양 만큼만 비용을 청구
장비 사용에 대한 기존의 호스팅 비용 청구 방식이 아닌
스토리지/네트워크 트래픽/CPU/서비스에 대한 비용 청구 방식
1. Google App Engine 이란?
사용료
무료 할당량 이상 사용시 비용 청구
한도 초과시 HTTP 403 or 리소스 할당 거부 or 경고
GAE는 폭주률을 통해 과도한 리소스 폭주를 통제
할당량 한도
개발자당 애플리케이션 수 3
애플리케이션당 저장용량 500MB
애플리케이션당 파일 수 1,000
파일당 크기 1MB
할당량 한도
하루 이메일 수 2,000
일일 입력 대역폭 10,000MB
일일 출력 대역폭 10,000MB
하루 CPU 메가사이클 수 200,000,000
하루 HTTP 요청 수 650,000
하루 데이터저장소API 호출 수 2,500,000
하루 URLFetchAPI 호출 수 160,000
고정 할당량 1일 할당량
http://blog.naver.com/jsrst 3
- 4. Google App Engine의 사용료는 리소스 사용량
1. Google App Engine 이란?
리소스 단위 단위 비용
Outgoing Bandwidth Giga Bytes $0.12
Incoming Bandwidth Giga Bytes $0.10
CPU Time CPU 시간 $0.10
Stored Data 월별 Giga Bytes $0.15
Recipients Emailed Recipients $0.0001
http://blog.naver.com/jsrst 4
- 5. Google App Engine에서 제공하는 서비스
JCache API를 이용한 Memcache
Remote API를 이용한 Data Store 접근
JavaMail을 이용한 Mail 송신 및 Mail 수신
XMPP 기반 메신저 서비스
Image 서비스를 이용한 resize, rotate, flip, crop
Task Queue를 이용한 백그라운드 처리
Google Account를 이용한 authentication 및 Email 접근
Blob Store
JSP/Servlet 지원
JDO/JPA 기반 Data Store
GWT(Google Web Toolkit)
1. Google App Engine 이란?
http://blog.naver.com/jsrst 5
- 6. 구글 계정을 앱 엔진에 접근 가능하게 만들기
http://appengine.google.com
SDK가 설치될 때 같이 설치된 샘플 프로젝트를 실행해보자.
전화번호 입력 후 인증전화가 오면 인증번호 입력
2. 구글 앱 엔진 시작하기
http://blog.naver.com/jsrst 6
- 7. 성공적으로 등록.
이제 http://appengine.google.com/ 으로 들어가면 등록된 어플리케이션을 볼
수 있다.
2. 구글 앱 엔진 시작하기
http://blog.naver.com/jsrst 7
- 8. 이클립스에 플러그인 ���치
Java SDK 설치는 생략 (jdk1.7.0_45 버전 이하에서는 jsp 호환에 문제가 생기므
로 그 이상을 추천한다) http://www.eclipse.org/downloads 에서 eclipse IDE for
Java EE Developers 윈도우 버전을 설치
Help -> Install New SoftWare
Work with 입력 칸에 http://dl.google.com/eclipse/plugin/4.3(이클립스 버전입
력)라고 입력한다.이클립스에 플러그인 설치
Juno:4.2/ keploer : 4.3 / Ganymede : 3.4 / Galieo : 3.5 / Helios : 3.6 / Indigo : 3.7
3. 구글 앱 엔진 개발환경
http://blog.naver.com/jsrst 8
- 9. 이클립스에 플러그인 설치
리스트의 플러그인 목록중 다음 항목을 설치
라이선스 동의 후 설치
이클립스 재 시작
3. 구글 앱 엔진 개발환경
http://blog.naver.com/jsrst 9
- 10. 4. 로컬에서 실행
Demo 어플리케이션 돌려보기
eclipse 폴더 -> plugins -> com.google.appengine.eclipse.sdkbundle_1.8.6
내의 연습 예제 돌려보기
cmd를 이용해서 위의 폴더 위치로 이동
그 폴더 내의 appengine-java-sdk-1.8.6bin 내의 dev_appserver.cmd란 파일로
서버를 실행시키고 연습프로그램을 실행하려고 한다.
http://blog.naver.com/jsrst 10
- 11. 4. 로컬에서 실행
Demo 어플리케이션 돌려보기
dev_appserver.cmd
C:appengineeclipsepluginscom.google.appengine.eclipse.sdkbundle_1.8.
6appengine-java-sdk-1.8.6demosguestbookwar 라고 명령어 입력
http://blog.naver.com/jsrst 11
- 12. 4. 로컬에서 실행
Demo 어플리케이션 돌려보기
로컬호스트에서 어플리케이션 확인
http://blog.naver.com/jsrst 12
- 13. 5. 프로젝트 만들기
이클립스 인코딩 설정 바꾸기
preferences -> General -> Workspace -> Text file encoding (other : UTF-8)
http://blog.naver.com/jsrst 13
- 14. 5. 프로젝트 만들기
프로젝트 생성
새 프로젝트 생성하기에서
Web Application Project를 생성
이름과 패키지를 적어넣고,
Use Google Web Toolkit은 체크 해지,
Use Google App Engine은 체크한 상태
로 Finish
http://blog.naver.com/jsrst 14
- 15. 5. 프로젝트 만들기
프로젝트 생성
자바 앱엔진은 웹서버와의 정보교환에 the Java Servlet API란 것을 이용한다.
project의 src폴더 안에 서블릿 파일들이 위치하게 된다.
web.xml. : 웹 서버가 요청을 받았을 때, 그 요청에 맞는 서블릿을 연결할 정보를 가지고 있
는 파일. 웹 어플리케이션의 모든 메타 정보를 가지고
있다. guestbook이라는 요청을 날리면 guestbook의
기능을 할 서블릿 파일을 찾아가야 하는데 바로 그
정보를 가지고 있다.
appengine-web.xml : 웹 엔진을 배포하고 실행하는데
필요한 설정파일
http://blog.naver.com/jsrst 15
- 16. 5. 프로젝트 만들기
프로젝트 생성
debug as -> web application을 실행
콘솔 창에
the server is running 이라고 뜨면 제대로 된 것.
이제, 브라우저에서 확인해본다.
(이클립스에서 실행시킨 서버는 포트가 다르다)
링크를 클릭하고 들어가면 다음과 같이
코딩한 결과가 제대로 뜨는 것을 볼 수 있다.
http://blog.naver.com/jsrst 16
- 17. 5. 프로젝트 만들기
프로젝트 생성
debug as -> web application을 실행
콘솔 창에
the server is running 이라고 뜨면 제대로 된 것.
이제, 브라우저에서 확인해본다.
(이클립스에서 실행시킨 서버는 포트가 다르다)
링크를 클릭하고 들어가면 다음과 같이
코딩한 결과가 제대로 뜨는 것을 볼 수 있다.
http://blog.naver.com/jsrst 17
- 18. 5. 프로젝트 만들기
사용자 서비스
앱 엔진은 구글의 인프라 중 유용한 몇 가지를 제공한다. 그 중 하나가 사용자 서비스
인데, 구글의 사용자 정보를 그대로 이용할 수 있다. 한마디로 우리가 앱 엔진을 만들
었을때 구글 계정이 있는 사용자에게 따로 로그인을 요구하지 않아도 된다는 것이다.
구글에서 로그인하면 앱 엔진의 어플리케이션에서도 로그인이 되어있게 된다. 그럼
따로 회원가입, 로그인 페이지나 로직을 만들지 않아도 되기 때문에 편하다. 이제 로그
인한 사용자에게 환영 메세지를 띄워보자.
좀 전의 작성한 클래스 파일을 다음과 같이 수정한다.
http://blog.naver.com/jsrst 18
- 19. 5. 프로젝트 만들기
사용자 서비스
브라우저에서 좀 전의 그 페이지를 다시 불러오면 다음과 같이 로그인 화면이 뜨는 것
을 볼 수 있다.
기존의 gmail 계정으로 로그인 하면 다음과 같이 결과를 볼 수 있다.
http://blog.naver.com/jsrst 19
- 20. 5. 프로젝트 만들기
사용자 서비스
브라우저에서 좀 전의 그 페이지를 다시 불러오면 다음과 같이 로그인 화면이 뜨는 것
을 볼 수 있다.
기존의 gmail 계정으로 로그인 하면 다음과 같이 결과를 볼 수 있다.
http://blog.naver.com/jsrst 20
- 21. 6. 앱 엔진 등록
구글 계정에 등록하기
파란색 구글 로고로 된 버튼을 누르고 Deploy to App Engine.
미리 앱엔진을 만들어준
계정으로 로그인하고 동의
http://blog.naver.com/jsrst 21
- 22. 구글 계정에 등록하기
앱엔진 프로젝트 설정을 클릭하여서 설정을 해준다.
6. 앱 엔진 등록
http://blog.naver.com/jsrst 22
- 23. 구글 계정에 등록하기
완료되면 아래 그림처럼 구글 앱엔진을 이용해서 만든 앱이 돌아가는 것을 확인할 수 있다.
구글 계정으로 앱엔진 등록했던 페이지로 가보면 statust에 non-deployment가 Running 상
태가 되어 있는 것을 볼 수 있다.
6. 앱 엔진 등록
http://blog.naver.com/jsrst 23
- 24. 사이트 접속
식별이름.appspot.com
6. 앱 엔진 등록
http://blog.naver.com/jsrst 24
- 25. 7. 나의 앱 엔진 만들기
스타일 시트
http://icant.co.uk/csstablegallery/tables/79.php 스타일시트 예제를 이용.
war -> stylesheets 폴더를 만들고 main.css파일을 만든다.
적용시키려고 하는 jsp및 html 파일 head부분에 <link type="text/css" rel="stylesheet" href="/stylesheets/main.css" /> 를 추
가 시킨다.
appengine-web.xml 파일에 <static-files> <include path="/stylesheets/*.css" /> </static-files>을 추가
table {
width: 650px;
border-collapse:collapse;
border:1px solid #FFCA5E;
}
caption {
font: 1.8em/1.8em Arial, Helvetica, sans-serif;
text-align: left;
text-indent: 10px;
background: url(bg_caption.jpg) right top;
height: 45px;
color: #FFAA00;
}
thead th {
background: url(bg_th.jpg) no-repeat right;
height: 47px;
color: #FFFFFF;
font-size: 0.8em;
font-weight: bold;
padding: 0px 7px;
margin: 20px 0px 0px;
text-align: left;
border-right: 1px solid #FCF1D4;
}
tbody tr {
background: url(bg_td1.jpg) repeat-x top;
}
tbody tr.odd {
background: #FFF8E8 url(bg_td2.jpg) repeat-x;
}
tbody th,td {
font-size: 0.8em;
line-height: 1.4em;
font-family: Arial, Helvetica, sans-serif;
color: #777777;
padding: 10px 7px;
border-top: 1px solid #FFCA5E;
border-right: 1px solid #DDDDDD;
text-align: left;
}
a {
color: #777777;
font-weight: bold;
text-decoration: underline;
}
a:hover {
color: #F8A704;
text-decoration: underline;
}
tfoot th {
background: url(bg_total.jpg) repeat-x bottom;
color: #FFFFFF;
height: 30px;
}
tfoot td {
background: url(bg_total.jpg) repeat-x bottom;
color: #FFFFFF;
height: 30px;
}
http://blog.naver.com/jsrst 25
- 26. 7. 나의 앱 엔진 만들기
이미지 삽입
war -> images 폴더를 만들고 사용하려는 파일을 넣는다.
appengine-web.xml 파일에 중 css를 넣었떤 소스에 <include path="/images/*.jpg" /> <include
path="/images/*.png" /> 를 추가하여서 모든 jpg나 png파일을 불러 읽을 수 있도록 한다.
다시 deploy 시키고 어플리케이션 확인
http://blog.naver.com/jsrst 26
- 27. 알짜만 골라 배우는 자바 구글앱엔진 -카일 로치, 제프 더글라스 지음-
http://rucifer.tistory.com/432
http://blog.acronym.co.kr/322
http://codejob.co.kr/docs/page/214/
8. 참고
http://blog.naver.com/jsrst 27