Top

알짜만 골라 배우는 자바 구글앱엔진 [무료로 시작하는 손쉬운 클라우드 애플리케이션 개발]

  • 원서명Beginning Java Google App Engine (ISBN 9781430225539)
  • 지은이카일 로치, 제프 더글라스
  • 옮긴이박성철, 안세원
  • ISBN : 9788960771512
  • 25,000원
  • 2010년 08월 31일 펴냄 (절판)
  • 페이퍼백 | 300쪽 | 185*235mm
  • 시리즈 : 웹 프로페셔널, 클라우드 컴퓨팅

판매처

  • 현재 이 도서는 구매할 수 없습니다.

책 소개

자바 개발자라면 누구나 손쉽게 큰 돈 들이지 않고 웹 애플리케이션을 만들 수 있다. 클라우드 컴퓨팅의 선두주자인 구글의 기술과 서비스를 마음대로 활용할 수 있는 자바용 구글 앱 엔진의 중요한 기능을 알짜만 골라 배울 수 있는 책.


[ 소개 ]

애플리케이션 개발은 변화의 기로에 서있다. 잠시 각자의 개발 프로젝트 계획을 떠올려보자. 모든 프로젝트의 첫 단계에는 비슷한 작업 항목이 있는 듯하다(서버 구축, 데이터베이스 설치, 애플리케이션 구성 등). 우리는 프로그래머가 아니던가? 왜 우리 재능을 이것저것 신경 쓰는 데 허비해야 하는가? 처음부터 우리는 애플리케이션 구축에 열정을 집중할 수 있어야 한다. 지금이 구글앱엔진(Google App Engine)이 등장해야 할 순간이다. 구글앱엔진을 쓰면 전통적인 개발에서 수행하던 개발 서버 구축, 데이터베이스 설치, 애플리케이션 서버 설정, 포트 개방, 기타 끝없이 이어지던 잡일은 신경 쓰지 않고 바로 애플리케이션 개발을 시작할 수 있다.

구글앱엔진 애플리케이션은 최근에 쓰이는 자바 개발 도구를 그대로 사용해 개발한다. 이클립스용 구글 플러그인을 사용하면 한 IDE에서 전체 애플리케이션을 개발할 수 있다. 데이터 관리에서부터 사용자 인터페이스 설계에 이르기까지 전부 단일 개발환경으로 처리된다. 더는 애플리케이션 계층에 따라 다른 도구나 서버를 써야 할 필요가 없다. 무엇보다 환경을 구축하는 데 허비하는 시간은 줄어들고 애플리케이션의 사업적 가치에 더 많은 시간을 쓸 수 있다는 점이 모두가 인정하는 구글앱엔진의 장점이다.

내 경험에 따르면 시간의 80%를 애플리케이션 유지 보수와 개선에 사용했고 오직 20%만을 혁신에 사용했다. 하지만 산업은 진화 중이다. 이제 이 공식을 뒤엎을 때가 됐다. 확장성, 보안, 호스팅, 부하 분산, 대역폭을 비롯해 애플리케이션을 작성할 때 따라오는 여타 모든 사전 준비와 주변 작업을 구글에게 맡기자. 여러분은 혁신과 애플리케이션의 사업적 가치에 집중하는 데 시간을 써야만 한다.

이 책에서는 구글앱엔진용 개발환경을 구성해본다. 첫 애플리케이션을 만들고, 앱 엔진에 포함된 기능을 하나씩 알아본다. 스프링, 플렉스, 구글웹툴킷(GWT) 같은 몇 가지 기술도 책의 여러 곳에서 간략하게 다룬다.

이 책의 일부 핵심 예제는 서로 연관이 되어 있지만 각 장 대부분을 충분히 독립적으로 구성했으므로 필요에 따라 건너뛰며 읽어도 무방하다. 결국에는 틀이 잘 잡힌 애플리케이션을 밑바닥부터 만들 것인데, 그러면서 장마다 운영 환경에서 사용할 만한 지식을 배운다. 그리고 코드 샘플을 찾고 있었다면 책을 잘 고른 셈이다. 이 책은 앱 엔진의 모든 서비스를 설명하는 상세한 예제로 가득 차 있다.


[ 이 책의 구성 ]

1장에서는 클라우드 컴퓨팅의 개념과 함께 앱 엔진이 어떤 유형의 클라우드 서비스인지를 간략히 살펴본다. 2장은 애플리케이션 앱 엔진의 하부 기반 구조와 애플리케이션 자원 할당을 소개한다. 자원 할당은 특정 앱 엔진 애플리케이션이 너무 많은 자원을 소모하거나, 다른 애플리케이션에 자원을 빼앗기지 않게 막는다.

2장에서는 앱 엔진에 가입해 접속하고, SDK를 다운로드하며, IDE를 설정하고, 첫 애플리케이션을 배포해본다. 이 책을 발췌해 읽는 경우라도 예제와 실습을 실행하는 데 필요한 도구 설치 정보와 앱 앤진 기반 정보를 다루는 2장을 읽을 것을 권장한다.

4장과 5장은 실제 시나리오를 다룬다. 앱 엔진과 잘 어울리는 프레임워크와 라이브러리, 동작하지 않는 라이브러리 등의 제약 사항을 알아본다. 구글웹툴킷을 살펴보고, 동적인 사용자 인터페이스를 구현하는 일정 관리 애플리케이션을 완전히 처음부터 만들 것이다.

6장, 7장, 8장은 앱 엔진에 포함된 서비스와 네이티브 도구를 소개한다. 개발자는 6장에 소개된 구글 인증 서비스를 자신의 애플리케이션에 적용할 수 있다. 7장은 앱 엔진 데이터스토어를 사용해 데이터를 저장하고, 질의하며, 인덱스를 생성하는 방법을 알아본다. 8장에서는 앱 엔진 플랫폼이 제공하는 기반 서비스를 살펴본다. 앱 엔진 서비스를 이용해 이메일을 보내고, XMPP(구글 토크)메시지를 보내고, 프로그램적으로 이미지를 조작하고, 다른 웹 애플리케이션으로부터 응답을 받아오는 방법을 다룬다.

마지막9장은 관리 화면, 로깅, 기타 관리 작업을 다루고, 실제 통합 시나리오를 살펴본다. 앱 엔진 애플리케이션을 세일즈포스닷컴에 통합하고, 구글 웨이브와 연동하는 앱 엔진 로봇을 작성한다.


[ 추천의 글 ]

여러분은 구글앱엔진 책을 막 집어 들었다. 산업이 클라우드 컴퓨팅으로 변화하는 데 결정적 역할을 하는 구성 요소에 첫 발을 내딛는 여러분을 환영한다.

지난 수년 동안 소비자와 기업용 애플리케이션의 개발 방식이 클라우드 컴퓨팅의 등장으로 인해 완전히 바뀌었다고 해도 과언이 아니다. 처음엔 애플리케이션 인도 방식에서 혁명이 일어났다. 애플리케이션을 인터넷을 통해 서비스 형태로 제공해 어떤 소프트웨어도 설치하거나 유지 보수하지 않아도 되게 하자는 생각이었다. 다음에는 애플리케이션 기반 시설에서 혁명이 일어났다. 이번에는 개발자가 물리적인 기반 시설을 배치하거나 관리할 필요 없이 서비스로 제공되는 원천 연산 처리와 저장 능력 자체를 사용하게 되리라는 생각이었다.

이제 우리는 애플리케이션 플랫폼에서 일어나는 혁명을 바라보고 있다. 이 혁명으로 개발자는 고수준의 블록을 사용해 애플리케이션을 구축할 수 있으며, 하부에서 돌아가는 물리적인 장치에 대해서는 몰라도 상관 없다. 앱 엔진은 구글의 세상으로 들어가는 입구와 같다. 구글은 요구에 따라 자유롭게 확장되는 온디맨드 애플리케이션 개발과 배치 기술을 갖고 있으며, 클라우드로 이동하는 흐름에 크게 기여하는 대표 주자다. 앱 엔진이 이토록 중요한 이유는 다음과 같다.

1. 배치될 기반 시설에 신경을 쓸 필요가 없는 개발환경
거의 모든 애플리케이션 개발 프로젝트에서는 개발과 배치 스택을 계획하는 데 많은 시간을 소모한다. 어떤 애플리케이션 서버 컨테이너를 쓸 것인가? 데이터베이스 서버는? 부하 분산기는? 배치에 충분한 라이선스는 확보되었는가? 기존 데이터베이스를 나눠 쓸까? 아니면 새로 만들어 돌릴까? 어떻게 백업하고 어떻게 성능을 감시해야 할까? 연산 능력과 저장 공간과 네트워크는 애플리케이션을 적절히 확장하는 데 부족하지 않는가? 이 모든 질문에 답을 찾지 않고는 코드 한 줄도 작성할 수 없다. 구글앱엔진은 이 모든 상황을 바꾼다. 구글이 완전한 개발과 배치 기반 기술 계층을 마련해 놓았다. 구글이 힘을 덜어주므로 우리는 사용자의 특정한 요구에 집중할 수 있다.

2. 전 영역 단일 개발환경
전통적으로 데이터베이스 개발, 애플리케이션 개발, UI 개발은 전혀 다른 환경에서 서로 독립된 팀에 의해 진행됐다. 구글 웹 툴킷과 앱 엔진을 통합하면 SDK를 내려받아 이클립스 플러그인으로 설치하는 것만으로도 단일 환경에서 전체 애플리케이션 코딩을 시작할 수 있다. 이클립스에서 UI를 직접 자바로 구축할 수 있고, 이를 앱 엔진 자바 데이터 객체에 붙일 수 있고, UI부터 DB 연결 작업까지 전부 디버깅할 수 있다.

3. 즉석 배치, 클라우드 확장성
기존 애플리케이션 개발자는 전체 개발 시간의 3분의 1까지도 운영 환경에 배치하는 데 할애했다. 이 책에서 만들 첫 번째 애플리케이션은 버튼 하나만 누르면 개발환경에서 구글의 세계적인 클라우드 운영 환경으로 배치가 완료된다. 그리고 배치된 애플리케이션은 첫 사용자에서부터 백만 번째 사용자에 이르기까지 완벽한 신축성을 갖고 확장된다. 글자 그대로 인터넷에서 가장 처리량이 많은 사이트와 동일한 기반 구조에서 운영되는 것이다.

시사점
구글앱엔진의 새로운 기능들을, 기업 고객이 클라우드를 통해 더 많은 일을 하게 애피리오사의 도구에 추가하는 일은 무척 흥미 있는 일이었다. 앱 엔진은 두 선두 클라우드 플랫폼, 포스닷컴Force.com과 아마존 웹서비스 간의 간극을 메운다. 포스닷컴은 업무 객체를 가진 풍부한 업무 애플리케이션 플랫폼이며, 애플리케이션이 폭넓은 기능을 상속해 쓸 수 있다. 하지만 어떤 애플리케이션은 이런 기능이 필요하지 않으며 오히려 더 많은 제어권을 갖고 플랫폼의 하부에 직접 접속하는 편이 더 나을 수 있다. 스펙트럼의 반대편에는 아마존 웹서비스가 있다. 특히 S3와 EC2에서 애플리케이션 개발자는 골치 아프게 하드웨어를 소유하는 일 없이 기반 구조를 제어하는 권한을 갖는다. 하지만 많은 애플리케이션이 이 정도의 기반 구조 제어 권한을 필요로 하지 않는다. 추상화 수준이 높을수록 개발은 훨씬 효율적으로 진행되는 편이다.

구글앱엔진은 이 두 선두 플렛폼 사이의 공백을 채운다. 앱 엔진에서는 포스닷컴에서 일할 때보다 더 많은 제어권을 갖는다. 그리고 앱 엔진은 현재 우리가 EC2에서 애플리케이션을 구축하려면 원치 않으면서도 다뤄야만 하는 여러 계층의 기반 구조를 추상화한다. 예를 들면 앱 엔진에서는 프로그램을 돌릴 기계의 규모를 신경 쓰지 않아도 된다.

각 클라이드 기술의 장점은 거의 완전히 상호보완적이고 이 기술 간의 연동을 도와주는 도구도 있다. 작년의 한 행사에서 누군가가 이런 질문을 했다. ‘이 산업계는 새로운 플랫폼 전쟁의 출발선에 서 있나요? 아니면 특징이 서로 다른 클라우드 플랫폼을 모두 편의대로 사용해 웹 애플리케이션을 엮어 만들게 될까요?’ 우리는 후자라고 굳게 믿는다. 어쨌든 진짜 ‘플랫폼 전쟁’은 여전히 기존 패러다임에 대항해 벌여지고 있다. 기존 패러다임에서 벗어나지 못한 대부분의 개발자는 자기가 세계적인 웹 애플리케이션을 개발하고 배치하는 데 어떤 하드웨어나 소프트웨어도 더는 구입하지 않아도 된다는 사실을 모른다.

그러나 여러분은 다르다. 구글앱엔진 개발이라는 신세계로 안내하는 이 책을 즐기기 바란다.

- 리안 니콜스
애피리오 사 클라우드 전략 부사장

저자/역자 소개

[ 저자 서문 ]

친애하는 독자에게

여러분을 비롯해 많은 개발자가 클라우딩 컴퓨팅을 플렛폼 모델로 선택하기 시작했습니다. 이 책은 주요 자바 클라우딩 컴퓨팅 플랫폼인 구글앱엔진의 핵심을 설명합니다. 저희는 구글이 제공하는 SDK, 플랫폼, 서비스의 모든 핵심 구성 요소를 보여드리려 합니다. 이들은 앱 엔진에서 웹 애플리케이션을 구축하는 데 필수불가결한 요소입니다.

앱 엔진을 움직이게 하는 법을 먼저 배우는데, 이클립스용 구글 플러그인에서부터 시작해 개발 서버, 데이터스토어, JDO자바 데이터 객체, 서비스 형태의 영구 보관 기능으로 옮겨갑니다. 그러고는 트랜잭션, 데이터 접근 등에 어떻게 스프링 프래임워크를 서비스로 쓰는지 보여 드립니다. 여러분은 구글 웹 툴킷을 써서 Ajax 애플리케이션을 어떻게 만드는지 보고, 세일즈포스탓컴과 구글 웨이브에 통합되는 웹 애플리케이션을 구축하는 법도 보게 됩니다. 그리고 일단 애플리케이션을 띄워 작동시킨 후 이를 감시하고 관리하고 유지 보수하는 방법을 배웁니다.

『알짜만 골라 배우는 자바 구글앱엔진』은 구글앱엔진의 완벽한 여행 안내서입니다. 이 책을 일단 읽고 나면 이 책에서 익힌 지식과 기술을 토대로 다음번 대형 프로젝트를 구글앱엔진이라는 멋진 신종 플랫폼에서 수행할 수 있습니다.

- 카일 로치와 제프 더글라스


[ 저자 소개 ]

카일 로치(kyle Roche)
기업용 소프트웨어 영역에서 10년 이상의 경력을 갖고 있으며, 2005년부터 클라우드 컴퓨팅 관련 업무를 수행 중이다. 카일은 애플리케이션 아키텍처와 시스템 관리 분야의 해박한 지식을 바탕으로 클라우드 컴퓨팅이 미래의 경향이 되리라 판단했고, 세일즈포스닷컴, 스타벅스, JP 모건 체이스 등의 회사에 클라우드 개발 서비스를 제공해 왔다. 또한 컨퍼런스와 사용자 그룹 미팅에서 정기적으로 강연하며, 클라우드 컴퓨팅의 전도사로도 활동 중이다. 개인 웹사이트는 http://www.kyleroche.com이며, 아내 제시카와 세 자녀 에이든, 애버리, 켈리와 함께 덴버에 살고 있다.

제프 더글라스(Jeff Douglas)
수상 경력을 가진 인기 있는 공학자로, 15년이 넘는 기간 동안 다양한 규모의 기업에 솔루션을 제공해 왔다. 닷컴 시기에는 코카콜라, 앤호이저 부시(Anheuser-Busch), 디즈니 이매지니어링, 모엔(Moen), 에릭슨(Ericsson) 등의 포춘 500 기업에 SAP 개발 서비스를 제공하며 실력을 쌓았다. 수년간 자바 개발자로 일한 후 2006년부터 클라우드 컴퓨팅 관련 업무를 수행 중이다. 정기적으로 developer.force.com에 기고하며, 기술 문서마다 ‘샤르트뢰즈(Chartreuse)’(프랑스 그레노블 지방에서 생산되는 연두색 또는 노란색을 띄는 리큐어 - 옮긴이)라는 단어를 사용하려고 노력한다. 컨퍼런스의 강연자로도 활동하며, http://blog.jeffdouglas.com에 열정적으로 블로깅 중이다. 플로리다 사라소타에서 아내 캐시와 네 자녀 스콧, 타일러, 브라트니, 키라와 함께 살고 있다. 제프와 아내는 11년이 넘는 기간 동안 75명이 넘는 아이들의 위탁 부모로 활동하고 있다.

카일과 제프는 솔루션과 전문 서비스를 통해 고객사의 클라우드 기술 도입을 돕는 클라우드 솔루션 업체인 애피리오(Appirio)에 근무중다. 애피리오는 2500개가 넘는 고객사를 상대로 세일즈포스닷컴, 구글 애플리케이션, 아마존 웹서비스 등의 클라우드 플랫폼에 기반을 둔 미션 크리티컬 솔루션의 구현과, 혁신적인 제품의 개발에 대한 지원 서비스를 제공한다. 애피리오는 미국과 일본에 지사를 두고 있으며, 아바고(Avago), 해밀턴 비치(Hamilton Beach), 일본 우편국, 화이자(Pfizer), 퀄컴(Qualcomm) 등의 다양한 기업에 서비스를 제공 중이다. 2006년에 설립된 애피리오는 세일즈포스닷컴과 구글의 가장 급성장하는 파트너이며 세콰이어 캐피탈과 GGV 캐피탈로부터 투자를 받았다.


[ 옮긴이의 말 ]

산업 혁명을 계기로 공방에서 소량으로 생산하던 수공업자가 예술가와 공원으로 나뉜 것처럼 자바는 코드 재사용을 통한 생산성에 혁명을 일으켜 개발자를 고급 컴포넌트 개발자와 단순 조립공으로 나눌 것이라는 글을 예전에 읽었다. 그때는 이런 일이 진짜로 일어날 거라고 믿었고 멋지다고 생각했다. 나중에 이런 구조가 좋지 않다고 견해를 바꾼 후에도 여전히 자바 언어는 조립공을 양산하려는 목적으로 만들어졌다고 여겼다.

그런데 씽크 인 자바(Think in Java) 서두의 소갯글에서는 똑같이 산업 혁명을 거론하면서 전혀 다른 얘기를 한다. 씽크 인 자바 소갯글에서 저자인 브르스 에켈은 책 표지를 설명하면서 미술 공예 운동을 언급한다. 산업 혁명 이후에 삭막한 공산품이 대량 생산되는가 하면 예술 작품은 과하게 화려해졌는데 이에 대한 반동으로 기존 수공업의 검소한 디자인과 수공업자 개인의 중요성을 강조하는 운동이 일어났다는 것이다. 그리고 오늘날에도 이 운동의 반향이 있는데 그 중 하나가 단순히 코드를 찍어내는 대신 소프트웨어 장인정신을 강조하는 경향이라고 한다. 브루스 에켈은 자바 언어를 이런 관점에서 보면서, 자바가 프로그래머를 운영 시스템 기술자의 위치에서 소프트웨어 장인으로 승격되도록 돕는다고 말한다.

상당히 신선한 관점이다. 우리가 컴포넌트를 가져다가 소프트웨어를 만드는 작업이 단순 조립 작업이 아니라는 얘기로 이해된다. 오히려 컴포넌트로 재사용하는 부분은 덜 중요하고 우리가 만드는 코드가 더 중요하기 때문에 머리 좋은 사람들이 컴포넌트를 만들어 우리가 중요한 부분에 집중하도록 돕는 상황으로 현실이 바뀌어 보인다. 실제로 역자 또한 오랫동안 PHP의 생산성을 경쟁력으로 삼아 애플리케이션을 개발하다가 자바로 전향하게 된 이유 중 하나가 배포와 운영의 문제였다.

구글앱엔진은 그런 관점의 연장선상에서 볼 수 있을 듯하다. 인터넷 사업을 하면서 개발자가 신경 써야 하는 영역의 절반 정도를 구글앱엔진이 대신 해결해주는 느낌이다. 운영 단계에서 서비스의 사용량에 따라 시스템을 증설하고 유지보수해야 하는 것까지 생각하면 절반 이상일 수도 있다. 우리 개발자는 정말 중요한 애플리케이션 개발에만 집중하면 골치 아픈 운영 관련 작업은 구글앱엔진이 해결해준다. 더구나 자바용 구글앱엔진은 표준 환경을 거의 준수하기 때문에 많은 코드를 재사용해서 사용할 수 있다.

물론 구글앱엔진에서 개발하는 일이 행복하기만 한 건 아니다. 클라우드 컴퓨팅이다 보니 확장성 때문에 단독 장비에서 개발할 때보다 신경 쓰거나 포기해야 하는 부분 또한 있다. 이 책은 자바용 구글앱엔진에서 얻을 수 있는 이득이 무엇이고 신경 써야 하는 부분이 무엇인지 풍부한 예제와 더불어 잘 설명한다. 특히 입문서인 만큼 지루하고 거의 쓸 일이 없는 내용은 빼고 꼭 알아야 하는 부분만 잘 선별했다. 그렇다고 변죽만 울리다 마는 어설픈 입문서는 아니니 걱정하지 않아도 된다. 진짜로 작동하는 애플리케이션을 만들기에 충분한 정보를 담고 있는 알찬 책이다. 개인적으로 에이프레스사의 비기닝 시리즈를 프로 시리즈보다 좋아한다. 이 책으로 우리 두뇌를 구글앱엔진에 익숙하도록 적응시킨 후에 나머지 내용은 인터넷을 뒤져서 찾으면 될 것이다.


[ 옮긴이 소개 ]

박성철
이쁘고 똑똑한 아내와 귀여운 아들과 함께 남양주에서 살고 있다. 책, 음악, 사진, 애니메이션, 프로그래밍이 취미이다. 8비트 PC와 함께 시작한 프로그래밍에 빠져 지금까지 벗어나지 못했다. 사람들과 만나 공통 관심사를 함께 얘기하기 좋아한다. 프로그래머가 더 행복하게 작업하면서 사기꾼에 놀아나지 않고 인류에 실제로 이바지할 방법은 없는지 찾고 있다.

안세원
KAIST 소프트웨어 전문가 과정을 졸업하고, 소프트웨어 공학 컨설턴트를 거쳐 서버 프로그래머로 일하고 있다. 다양한 개발 지원 도구와 품질 검토 방안에 관심이 많다.

목차

목차
  • 1장 자바용 구글 앱 엔진
    • 클라우드 컴퓨팅과 앱 엔진
      • 혁신을 위한 시간 확보
      • 이 책에서 다루는 내용
    • 정리
  • 2장 앱 엔진 개요
    • 앱 엔진 아키텍처
    • 자원 할당량
      • 사용료 청구와 고정 할당량
      • 자원 유형별 할당량
    • 앱 엔진 애플리케이션의 구성 요소
    • 정리
  • 3장 자바용 구글 앱 엔진 첫걸음
    • 시작점
      • 자바 SDK 설치
      • 이클립스용 구글 플러그인 설치
      • 구글 앱 엔진 회원 가입
      • 데모 애플리케이션 실행
    • 첫 앱 엔진 프로젝트 생성
      • 프로젝트 산출물
    • 개발용 서버
      • 실행 준비
      • 예제 애플리케이션 배치
    • 정리
  • 4장 서블릿 컨테이너와 프레임워크
    • 프레임워크 선택
    • 서블릿과 자바 서버 페이지(JSP)
      • 모델
      • 컨트롤러
      • 배치 기술서
      • PersistenceManager
    • 스프링 MVC
      • 서버 구성
    • 어도비 플렉스
      • 서버 구성
      • 클라이언트용 코드
      • 서버 측 코드
    • 정리
  • 5장 애플리케이션 개발
    • 기능 명세
      • 작업 시간 기록표 UI 모형
    • 기술 명세
      • 인증
      • 프레젠테이션
      • 영구 저장
    • GWT 활용
      • 프로젝트 생성
      • 초기 시작 애플리케이션 실행
    • 애플리케이션 개발
      • 컴포넌트 임포트
      • UI 코드 작성
      • 스타일 추가
      • 호스트 페이지 수정
      • 애플리케이션 실행
      • 클라이언트 측 이벤트 처리
    • 정리
  • 6장 사용자 인증
    • 구글 계정 서비스
      • 자원 접근 제한
      • Users API
      • 개발 모드
    • 애플리케이션에 인증 기능 추가
      • LoginInfo 클래스
      • LoginService와 LoginServiceAsync 인터페이스
      • 구글 계정을 사용한 로그인 구현
      • 배포 기술서 수정
      • 사용자 인터페이스 수정
    • 정리
  • 7장 앱 엔진 데이터스토어
    • 앱 엔진 데이터스토어 개요
    • 엔티티 다루기
      • 클래스와 필드
      • 엔티티의 CRUD
    • JDOQL로 질의하기
      • 질의 필터링
      • 질의 정렬
      • 질의 범위 지정
    • 인덱스 사용
      • 인덱스 생성
      • 개발 모드에서의 인덱스 생성
    • 트랜잭션 사용
    • 애플리케이션 마무리하기
      • GWT RPC를 이용한 원격 프로시저 호출 작성
      • 데이터 서비스 작성
      • 배포 기술서 수정
      • GWT 클라이언트의 서비스 호출
      • 작업 시간 항목 표시
    • 정리
  • 8장 엡 엔진 서비스
    • 프로젝트 설정
    • 멤캐시 서비스
    • URL 패치 서비스
    • 이미지 서비스
      • 자바 클래스 생성
      • ImageObject 클래스 작성
      • PersistenceManagerFactory 클래스 작성
      • ImageSource 클래스 작성
      • ImageTransform 클래스 작성
      • 애플리케이션 마무리
      • 서비스 테스트
    • 메일 API
    • XMPP 서비스
    • 정리
  • 9장 관리와 연동
    • 앱 엔진 애플리케이션 관리
      • 애플리케이션 상황판
      • 애플리케이션 버전 관리
      • 로그 파일 분석
    • 연동
      • 구글 웨이브와 연동
      • 세일즈포스닷컴과 연동

관련 블로그 글

무료로 손쉽게 시작하는 클라우드앱, 자바 구글앱엔진
사용자 삽입 이미지
알짜만 골라 배우는 자바 구글앱엔진
무료로 시작하는 손쉬운 클라우드 애플리케이션 개발
카일 로치, 제프 더글라스 지음 | 박성철, 안세원 옮김
웹 프로페셔널 시리즈 26 | 25,000원 | 2010년 8월 31일 펴냄 | 300쪽
YES24, 교보문고, 강컴, 인터파크, 알라딘

사용자 삽입 이미지
한바탕 태풍 곤파스가 휩쓸고 간 하루, 모두 안/녕/하신지요? 클라우드 애플리케이션을 설명해보기 위해 구름 사진을 올려도 오늘은 왠지 태풍 생각만 떠오르는 날이네요. 맑게 갠 하늘에 떠있는 구름 사진에서, '평온한 자연과 환경'이라는 게 우리에게 얼마나 소중하며, 이는 자연이 인간에게 베푸는 큰 자애로움이라는 생각까지 들게 하는 하루입니다. 모두 별 피해 없으셨길 바랍니다.

지난 8월 18일 아침 6시, 드디어 대망의 아이폰 4 예약판매가 시작됐습니다. 3시간 만에 7만여대, 고작 일주일 여만에 20만명을 돌파하는 진기록을 세우고 있으며 이는 새로운 기록으로 갱신되는 중입니다. 첫 아이폰3Gs 국내 상륙시 일요일 불시 예약이라는 이벤트를 자아냈던 통신사로서는 예약 사이트를 새벽에 오픈함으로써 트래픽을 분산하려는 노림수도 있었을 것입니다. 그러나 모두 바람이었을 뿐, 아이폰 4 예약 사이트는 6시 오픈되자마자 바로 방문객 폭주로 서버가 다운되는 지경에 이릅니다. 이는 정말 막을 수 없었던 일일까요?

웹2.0 시대의 개막과 더불어, 소셜 네트워크 사이트(SNS)의 폭발적인 인기와 더불어 최근 많은 사람들에게 회자되고 있는 용어가 바로 클라우드 컴퓨팅(Cloud Computing)입니다.

아마존의 EC2, S3, NoSQL, 카산드라, 하둡. 아마 클라우드 컴퓨팅에 관심이 없는 분들이라 하더라도 아마 여기저기서 많이 들어본 용어가 아닐까 싶습니다. 트위터, 페이스북, 아마존, 구글 최근 화두가 되고 있는 소셜네트워크 사이트들이 바로 이 클라우드 컴퓨팅을 채택하고 있다는 이야기도요.

요즘 클라우드 컴퓨팅에 관심이 많은 김형준님의 말을 인용해 클라우드 컴퓨팅에 대해 정의해보겠습니다.

“인터넷 기술을 이용하여 소프트웨어, 스토리지, 서버, 네트워크 등과 같은 IT 자원을 서비스로 제공하고, 사용자는 이들 자원을 필요한 만큼 빌려서 사용하고 사용한 만큼의 비용을 지불하는 컴퓨팅 환경을 말한다.”
정의에서는 보는 것처럼 클라우드 컴퓨팅이란 단지 특정 기술을 의미하는 것이 아니라 데이터나 서비스를 중앙에서 관리하고 여러 디바이스에서 접근 가능한 서비스나 이를 제공하는 기술 등의 포함하는 포괄적인 용어다.

그리드 컴퓨팅, 유틸리티 컴퓨팅, 분산컴퓨팅, 네트워크 컴퓨팅, 가상화 등과 같은 기술을 활용하여 클라우드 서비스가 가능한 플랫폼을 만들고 그 플랫폼 기반 위에 응용 애플리케이션을 구축하여 서비스를 제공하는 형태다.


며칠 전 시골의사라는 필명으로 유명해진 박경철님(@chondoc)께서 8월 27일자 자신의 트위터에 클라우드 컴퓨팅 이야기에 관한 글을 연속으로 남겨 화제가 되었다고 하지요. 정리하자면 다음과 같은 이야기였다고 합니다. "클라우드 컴퓨팅 기술 일단 선점하면 넘을 수 없는 진입장벽을 구축하게 되죠. 이후에는 봉이 김선달식 장사가 가능합니다. 바야흐로 소프트파워의 시대입니다." 클라우드 컴퓨팅 선점 효과에 대한 박경철 원장의 발언 이후 관련주가 강세를 보이기도 했다고 하죠.

어쩌면 저간의 상황은 알 수 없고 기술적인 논의는 논외로 하더라도 이처럼 클라우드 컴퓨팅은 많은 이의 화제와 주목을 끌고 있습니다. 아이폰 4 예약판매 당시 통신사에서 클라우드 컴퓨팅을 유효적절히 활용하여 대비를 했더라면 새벽에 모든 이의 단잠을 설치게 한 사이트 접속 불가 사태는 조금은 막을 수 있지 않았을까 하는 생각도 듭니다.

사용자 삽입 이미지
그렇다면 구글도, 아마존도, 페이스북도, 트위터도 모두 활용하고 있다는 클라우드 컴퓨팅을 활용한 웹 애플리케이션 구축과 운영에 대해서 개별 기업과 개발자들은 어떤 대응을 해야 할까요.

실상, 대기업이나 대형 웹사이트가 아닌 다음에야, 중소기업의 웹사이트, 중소규모의 온라인 쇼핑몰 등에서는 DB는 무엇을 끌어다 쓰고 웹서버와 웹서버 소프트웨어는 무엇을 써야 할지 생각하는 것만으로도 머리가 아픕니다. 비용을 절감한다는 효과에 대해서도 미지수이구요.

이때 등장한 것이 바로 구글 앱 엔진이었습니다. 이것저것을 취사 선택하는 고민과 비용, 시간을 단축해주고 간단하게 SDK나 플러그인만 설치하면 손쉽게 클라우드 기반의 웹사이트를 구축할 준비가 됩니다. 다만 얼마전까지만 해도 구글 앱 엔진은 파이썬으로만 서비스되었습니다. 파이썬을 낯설어하는 국내의 수많은 개발자들에게 구글 앱 엔진은 그림의 떡인 셈이었지요. 그러던 중 구글이 드디어 자바 버전으로 앱엔진을 서비스하기 시작했습니다.

좀더 손쉽게 클라우드 웹 애플리케이션을 만들 수 있는 방법이 생긴 것입니다.

이 책에서는 자바 구글 앱 엔진을 어떻게 시작하고 활용할 수 있는지를 알짜와 핵심만을 골라 알기 쉽게 설명해줍니다. 우선 SDK를 다운로드하거나 이클립스 플러그인을 설치함으로써 쉽게 개발환경을 갖춥니다. 그러고 나서 각각 GWT, 스프링, 플렉스 등의 프레임워크를 써서 혹은 별다른 프레임워크 없이 간단한 예제를 직접 만들어봅니다.

실제로 이 책의 72쪽에 나오는 <표 4-1 자바 라이브러리와 프레임워크>에서는 구글 앱 엔진과 호환되는 프레임워크에 대한 내용을 일목요연하게 정리해주고 있습니다. 이어지는 장에서는 사용자 인증, 데이터 저장, 그리고 앱엔진 플랫폼이 제공하는 각종 기반 서비스를 살펴봅니다.

어느 정도 이상의 서비스 확장이 있지 않는 한 무료 혹은 소액으로, 그리고  서버 소프트웨어나 DB 쪽에 대한 고민 없이 웹 사이트를 구축할 수 있다는 점은 구글 앱엔진이 가진, 그리고 어느 클라우드 기반 서비스도 넘볼 수 없는 큰 장점이라고 볼 수 있습니다. 고급 독자를 위한 내용은 다루지 않지만 '자바 구글 앱 엔진'에 관한 입문과 활용서로서 이만한 책은 당분간 나오지 않을 것이라 생각합니다.

이 책을 번역한 박성철님과 안세원님은 최근 장안의 화제가 된 필독서 "토비의 스프링 3"의 저자 이일민님이 소개해주신 분들입니다. 토비님이 원고 집필 당시 잠시 귀국하셨을 때 KSUG 회원으로서 별도의 스프링 책을 기획한 적이 있습니다. 결국 여러 사정으로 인해 무산되었지만요. 자신이 좋아하는 일에 대한 두 분의 진지한 자세와 학식은 제게 큰 믿음을 심어주었고, 이 책의 번역을 두 분께 의뢰했습니다. 그간 여러번의 만남을 통해서도 늘 공부하고 노력하며, 다른 분들과 지식을 나누려는 자세에 저도 참 많이 감동했더랬지요. 온화한 성품과 실력을 갖추신 박성철님과, 느릿한듯 보이지만 카리스마 넘치는 모습으로 정확하게 일을 마무리해내시는 안세원님께 진심으로 감사의 말씀을 전합니다. 앞으로도 좋은 필자로 에이콘과 더 많은 책 낼 수 있기를 바랄게요.

이 책은 지금 YES24, 교보문고, 강컴, 인터파크, 알라딘에서 "절찬리"에 판매중입니다. 자바 구글앱엔진에 대해 궁금하셨던 여러분을 위한 좋은 참고서가 되길 바랍니다.


CC

크리에이티브 커먼즈 라이센스 이 저작물은 크리에이티브 커먼즈 코리아 저작자표시 2.0 대한민국 라이센스에 따라 이용하실 수 있습니다.

도서 오류 신고

도서 오류 신고

에이콘출판사에 관심을 가져 주셔서 고맙습니다. 도서의 오탈자 정보를 알려주시면 다음 개정판 인쇄 시 반영하겠습니다.

오탈자 정보는 다음과 같이 입력해 주시면 됩니다.

(예시) p.100 아래에서 3행 : '몇일'동안 -> 며칠동안