알짜만 골라 배우는 자바 구글앱엔진 [무료로 시작하는 손쉬운 클라우드 애플리케이션 개발]
- 원서명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에서 애플리케이션을 구축하려면 원치 않으면서도 다뤄야만 하는 여러 계층의 기반 구조를 추상화한다. 예를 들면 앱 엔진에서는 프로그램을 돌릴 기계의 규모를 신경 쓰지 않아도 된다.
각 클라이드 기술의 장점은 거의 완전히 상호보완적이고 이 기술 간의 연동을 도와주는 도구도 있다. 작년의 한 행사에서 누군가가 이런 질문을 했다. ‘이 산업계는 새로운 플랫폼 전쟁의 출발선에 서 있나요? 아니면 특징이 서로 다른 클라우드 플랫폼을 모두 편의대로 사용해 웹 애플리케이션을 엮어 만들게 될까요?’ 우리는 후자라고 굳게 믿는다. 어쨌든 진짜 ‘플랫폼 전쟁’은 여전히 기존 패러다임에 대항해 벌여지고 있다. 기존 패러다임에서 벗어나지 못한 대부분의 개발자는 자기가 세계적인 웹 애플리케이션을 개발하고 배치하는 데 어떤 하드웨어나 소프트웨어도 더는 구입하지 않아도 된다는 사실을 모른다.
그러나 여러분은 다르다. 구글앱엔진 개발이라는 신세계로 안내하는 이 책을 즐기기 바란다.
[ 소개 ]
애플리케이션 개발은 변화의 기로에 서있다. 잠시 각자의 개발 프로젝트 계획을 떠올려보자. 모든 프로젝트의 첫 단계에는 비슷한 작업 항목이 있는 듯하다(서버 구축, 데이터베이스 설치, 애플리케이션 구성 등). 우리는 프로그래머가 아니던가? 왜 우리 재능을 이것저것 신경 쓰는 데 허비해야 하는가? 처음부터 우리는 애플리케이션 구축에 열정을 집중할 수 있어야 한다. 지금이 구글앱엔진(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에서 애플리케이션을 구축하려면 원치 않으면서도 다뤄야만 하는 여러 계층의 기반 구조를 추상화한다. 예를 들면 앱 엔진에서는 프로그램을 돌릴 기계의 규모를 신경 쓰지 않아도 된다.
각 클라이드 기술의 장점은 거의 완전히 상호보완적이고 이 기술 간의 연동을 도와주는 도구도 있다. 작년의 한 행사에서 누군가가 이런 질문을 했다. ‘이 산업계는 새로운 플랫폼 전쟁의 출발선에 서 있나요? 아니면 특징이 서로 다른 클라우드 플랫폼을 모두 편의대로 사용해 웹 애플리케이션을 엮어 만들게 될까요?’ 우리는 후자라고 굳게 믿는다. 어쨌든 진짜 ‘플랫폼 전쟁’은 여전히 기존 패러다임에 대항해 벌여지고 있다. 기존 패러다임에서 벗어나지 못한 대부분의 개발자는 자기가 세계적인 웹 애플리케이션을 개발하고 배치하는 데 어떤 하드웨어나 소프트웨어도 더는 구입하지 않아도 된다는 사실을 모른다.
그러나 여러분은 다르다. 구글앱엔진 개발이라는 신세계로 안내하는 이 책을 즐기기 바란다.
- 리안 니콜스
애피리오 사 클라우드 전략 부사장
애피리오 사 클라우드 전략 부사장
목차
목차
- 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, 교보문고, 강컴, 인터파크, 알라딘
무료로 시작하는 손쉬운 클라우드 애플리케이션 개발
카일 로치, 제프 더글라스 지음 | 박성철, 안세원 옮김
웹 프로페셔널 시리즈 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, 교보문고, 강컴, 인터파크, 알라딘에서 "절찬리"에 판매중입니다. 자바 구글앱엔진에 대해 궁금하셨던 여러분을 위한 좋은 참고서가 되길 바랍니다.
크리에이티브 커먼즈 라이센스 이 저작물은 크리에이티브 커먼즈 코리아 저작자표시 2.0 대한민국 라이센스에 따라 이용하실 수 있습니다.