저는 파이썬보다는 자바가 더 친숙하고, 자바보다는 C#이 더 친숙한 편입니다. 그래서 파이썬만 제공될 때는 해보고 싶다 생각했어도 일상에 쫓겨 마음 한 구석에 접어 두었는데, 얼마 전에 아직('09 5월 초 시점) 어설픈 상태(Early Look)긴 하지만 자바가 추가 지원 언어로 제공된 것을 보았고, 이번에 팀 회의에서 웹서비스의 일부를 구글 앱 엔진으로 빼내서 하드웨어 추가구매 없이 서비스 퍼포먼스를 향상시키자는 의견을 제안, 의사결정권자의 샘플 작성 허가를 얻어서 시도해보는 김에 이렇게 튜토리얼도 적어보고자 합니다.
리소스
- http://code.google.com/intl/ko-KR/appengine/
- http://code.google.com/intl/ko/appengine/downloads.html
- http://code.google.com/eclipse/docs/download.html
- http://code.google.com/intl/ko/appengine/docs/java/gettingstarted/
먼저 구글 앱 엔진의 인프라를 이용하려면 구글계정으로 애플리케이션 엔진 계정에 가입하는 과정부터 시작하게 됩니다.(리소스 1 참조)
로그인을 하시면 http://appengine.google.com/으로 연결되고 애플리케이션을 관리할 수 있는 대시보드가 나타납니다.
이 곳에서 애플리케이션을 최대 10개까지 생성, 관리하실 수 있습니다. 그리고 각 애플리케이션 마다 꽤 많은 걸 할 수 있습니다.
로그 조회, cron.yaml을 활용한 작업 예약 스케쥴러 이용, 함께 애플리케이션 개발에 참여 가능한 구글 아이디 추가, 데이터 스토어의 데이터 현황 조회, 리비전 조회 등 왠만한 IT 부서에서 맨 땅에 지으려면 비용이 꽤 드는 지원요소들이 고맙게도 잘 준비되어 있습니다.
그리고 Google App Engine SDK for Java를 다운받으셔야 합니다. 학부 신입생 시절에 자바 SDK가 뭐야? 라고 떠들면서 sun.com에 접속하던 기억이 떠오르네요^^a(리소스 2 참조)
전 내려 받은 SDK를 d:\appengine-java-sdk에 저장했습니다. 커맨드라인에 d:\appengine-java-sdk\bin\dev_appserver.cmd d:\appengine-java-sdk\demos\guestbook\war를 입력하셔서 데모가 잘 동작하는지 확인할 수 있습니다.
혹시 숙련도 향상을 위한 노트패드 개발 등의 수행을 하고 계신 것이 아니라면 이클립스용 구글 플러그인(Google Plugin for Eclipse)도 설치하시는 것을 권장합니다.(리소스 3 참조)
벌써 코드를 작성하고 싶어 손이 근질근질 하실 수 있지만, 일단은 개발 프로세스를 살펴야 합니다. 먼저 프로젝트를 만드는 법을 살펴봅니다.
GAE에서 프로젝트를 운영하려면 GAE의 폴더 아키텍쳐를 이해하면 좋습니다. 그런데 이클립스와 플러그인을 이용하면 사실.. 잘 몰라도 됩니다.
어린 시절 JSP를 처음 접할 때 아파치니 톰캣이니 설정하고 서버를 올렸다가 내렸다가, admin 페이지에서 애플리케이션 릴름을 잡아 주느니 마느니 하다가... 머리에 스팀이 오르는 걸 느끼신 분도 계실 겁니다.
그만큼 뭔가 서버를 설정하고 애플리케이션을 디플로이한 다음 Hello my first jsp page! 라고 찍기까지 꽤 노력이 필요했단 얘기죠.
그런데.. 말씀드린 것처럼 이클립스 쓰시면 꽤 쉽습니다.
일단 아래처럼 프로젝트 템플릿으로 구글 웹 애플리케이션 프로젝트를 만들어 봅니다.
마법사에서 프로젝트를 고른 다음 아래처럼 간단하게 네이밍을 해줍니다. (GWT가 맘에 안들면 선택해제 하셔도 됩니다.)
'완료' 버튼을 누르시면 뭐가 그리 쉬운지 뚝딱! 구글 웹 애플리케이션 아키텍쳐를 충실히 갖춘 프로젝트가 만들어집니다.
아래처럼 콘솔에 소요된 시간도 나타납니다.
DataNucleus Enhancer (version 1.1.0) : Enhancement of classes
DataNucleus Enhancer completed with success for 0 classes. Timings : input=31 ms, enhance=0 ms, total=31 ms. Consult the log for full details
DataNucleus Enhancer completed and no classes were enhanced. Consult the log for full details
아래는 기본적인 프로젝트 폴더 구조입니다.
이제 Ok를 누르면 컴파일이니 링크니 업로드니.. 다 척척 진행됩니다.
마지막으로 http://당신의-앱-이름.appspot.com/ 을 브라우저 주소창에 입력하면 예쁘장한 기본 페이지가 뜨는 것을 볼 수 있습니다.
생각보다 쉽지 않나요?^^; 무료.. 무료... 무료....-_-;;
- 下편에서는 데이터저장소(Datastore) 등 좀 더 세부적인 면을 다뤄보려고 계획 중입니다.
이제 정말.. 시스템 관리자, 개발자, DBA 같은 1~2개 카테고리의 스킬만 전문적으로 보유한 인력보다는,
여러 서비스와 트렌드, 마켓을 이해하고 엮어서 필요한 세계를 꾸려낼 수 있는, 컨버전스를 해낼 수 있는
인력의 비중과 가치가 더 높아질 것 같다는 생각도 듭니다.
댓글 없음:
댓글 쓰기