[도서] GAE로 시작하는 클라우드 컴퓨팅 - 구글 앱 엔진 활용하기

|



구글 앱 엔진 활용하기 - 8점
찰스 세브란스 지음, Software in Life 옮김/지&선(지앤선)

클라우드 컴퓨팅의 PaaS(Platform as a Service)의 대표인 구글 앱 엔진에 대해 다룬 책으로 관심있게 읽어봤습니다. 
기본적인 GAE(Google App Engine)의 설치나 서버에 적용하는 방법등은 짧지만 이해하기 쉽게 설명되어 있습니다.

그러나 이 책이 매우 맘에 들었던 가장 큰 이유는 
하나의 흐름을 가지고 Google App Engine 뿐만 아니라 해당 엔진을 활용한 웹 프로그래밍에 대해서 전반적으로 잘 설명하고 있다는 점입니다. 

웹프로그래밍 개요, HTML과 CSS, Python, Ajax 등 기본적인 내용이지만
구글 앱 엔진에 적용하기 위해서 반드시 알아야 하는 부분들에 대해 요약해서 잘 설명하고 있는 것 같습니다.

여기에 구글 엡 엔진의 프레임워크, 템플릿, 쿠키와 세션 처리, 그리고 데이터스토어에 대해서도 예제를 통해 살펴볼 수 있도록 구성되어 있습니다.

일단 구글 앱 엔진이 어떤 형태로 구성되어 있는지 이해하게 되었고,
더 나아가 이런 형태로 하나의 예제로 쭉 강의를 한다면 처음 웹 프로그래밍을 접하는 사람들이 이해하는데 도움이 되겠다는 생각도 들었네요. 

최근 구글앱엔진에서 java도 지원하는 것으로 알고 있는데요. 
클라우드 환경으로 이동하면서 Google App Engine이나 MS Azure와 같은 PaaS에도 관심을 가져야 하지 않을까 합니다. 
http://code.google.com/intl/ko-KR/appengine/ 

항상 그렇듯 책으로 배우는 것은 기본적인 개념이라고 봐야 하구요. 
세부적인 사항은 구글 앱 엔진 사이트의 문서들을 참고해서 프로그래밍을 해야겠지요.  

구글 앱 엔진의 최대 장점은 세계 곳곳에 위치한 구글 최고의 데이터센터에서 서비스를 운영할 수 있다는 점입니다.
앱 엔진 애플리케이션을 만들고 배치하고 나면 다음과 같이 말할 수 있다고 하네요.. ^^

My other computer is a data center.
My other computer is somewhere in one or more world-class data centers scattered around the world.

책 내용을 살펴보면 먼저 HTML에 대한 이야기로 시작합니다. 

요즘은 XHTML과 같이 HTML 규약에 적합한 표준 문서를 만드는게 중요하지만, 예전에는 대충 HTML 만들어도 브라우저에서 동작하기는 했었죠.
오히려 이런 점이 초기 HTML 툴이나 개발자들에게는 지금에 와서 표준을 지켜야 한다는 어려움을 주기도 합니다. ㅠㅠ
이처럼 결함이 있거나 불완전한 HTML을 만나면 브라우저는 쿼크 모드 (Quirks Mode)로 들어가 브라우저마다 다른 결과를 보내준다고 합니다. 
그러므로 well-formed HTML 문서를 만드는 것이 웹 프로그래밍에서 첫번째로 가장 중요하겠죠.. 

CSS에 대해서도 제법 상세하게 이야기 합니다.
CSS의 유효성을 검사할 수 있는 CSS Validation Service(http://jigsaw.w3.org/css-validator/)에 대한 소개와 더불어 
책의 메인 예제로 사용되는 HTML에 대한 기본적인 CSS를 통해 각 항목을 상세히 설명하고 있습니다. 

저도 일부분을 참고해서 정리를 하나 하기는 했네요.. ^^
2012/01/20 - [프로그래밍/Web] - CSS의 Margin, Padding, Border 개념을 명확하게 하자

구글 앱 엔진은 파이썬 2.5 이상에서 동작하는데요. 
기존의 다른 언어를 해 보신 분들이라면 파이썬의 기본 구문만 이해하면 쉽게 할 수 있을 것이라 생각합니다.
특히 파이썬은 들여쓰기를 사용해서 블록을 구분하는 독특한 문법을 사용하고 있으므로 코드 작성 스타일을 반드시 지켜야 한다고 하네요

웹 프로그래밍에서 MVC 모델이 보편화되면서 유지보수 등을 위해 대부분 템플릿이라는 것을 활용하게 됩니다. 
구글 앱 엔진에서 기본적으로 사용하는 템플릿 문법은 Django 프로젝트(http://www.djangoproject.com/)에서 차용했다고 합니다. 

책의 예제에 기반해서 계속적으로 새로운 기능을 추가하려면 다음과 같은 과정을 이야기 하고 있습니다. 
  • 새로운 기능을 위한 URL을 결정하자.
  • 새로운 핸들러를 만든다. 먼저 GET 방식의 요청을 받아 새로운 템플릿을 적용하는 간단한 작업부터 시작한다. 
  • URL을 새로운 핸들러로 처리하기 위해 main()에 새로운 라우팅 항목을 만든다.
  • 필요한 템플릿들을 추가한다. 
  • 새로운 네비게이션 메뉴가 필요하면 _base.html에서 수정한다. 
  • 핸들러의 나머지 부분을 만들고 새 기능을 테스트한다. 

그리고 쿠키와 세션을 사용하는 방법에 대해서도 이야기 하고 있는데요. 
구글 앱 엔진에서는 세션 기능을 제공하지 않기 때문에 세션 유틸리티를 다운로드 해서 추가해 줘야 한다고 합니다. 

데이터 저장소를 위해서는 NoSQL을 지원하는 구글의 빅테이블(Bigtable) 기술을 기반으로 한 구글 데이터스토어를 활용해야 합니다. 
Development Console의 Datastore Viewer를 통해 데이터를 직접 관리할 수도 있구요. 
책의 예제에 데이터스토어에 저장, 쿼리, 데이터 추출 등에 대해 설명되어 있고  특히 RDB의 foreign key와 같은 참조 처리(ReferenceProperty)에 대해서도 설명되어 있으니  참고해 보시기 바랍니다. 
구글의 빅테이블을 조금이라도 맛볼 수 있는 부분이 아닌가 생각됩니다. 

그밖에도 구글의 사용자 API(User API)를 활용하여 구글 계정을 통해 인증할 수 있는 방법, 메모리 캐시에 대해서도 간략하게 설명만 되어 있네요. 
구글 앱 엔진의 개발자 가이드의 API를 보면 이러한 것들이 잘 포함되어 있으니 참고하시기 바랍니다. 

개발자 가이드

Google 애플리케이션 엔진에 오신 것을 환영합니다. 이 개발자 가이드에는 Google 기술을 사용하여 확장 가능한 웹 응용프로그램을 작성하기 위해 필요한 모든 내용이 들어 있습니다.

이 가이드는 다음과 같은 내용으로 구성되어 있습니다.



 



Trackback 0 And Comment 0