기본 콘텐츠로 건너뛰기

Google App Engine Java Overview


Google App Engine에 Java버전 SDK를 다운받고, Springframework을 이용하여, 간단한 MVC모듈을 이용하여 테스트해보고, Google 서버로 테스트해보고 그동안 아무로 작업을 하지 못했다.
개인적으로 여러가지 좋지 않은 일들이 있었기도 하고, 그리고 주말을 제외하면 나만의 관심사들을 깊이 있게 공부하기에는 시간들이 부족하기도 하고, 음.. 변명거릴 찾으려니, 구차하기까지 하다.

오늘은 잠시 스타벅스에 들러서, 잠시 "Google App Engine Java"에 대한 자료들을 살펴보고 있는 중이다.
그리고 살펴보고 있는 자료를 간략하게 나마 정리하고 있는 중이다.

다음 자료를 참고함.
 
 
App Engine Jave Overview
    - Java 표준 기술
        : Java의 표준 기술들로 web applicaions을 개발하고, 이를 구글의 확장성 있는 Infrastucture위에서
          구동 가능하도록 함.
        : 이를 위해서 Java은 Java 6 JVM환경과 Java Servlets interface, 그리고 표준 Interface를 통해
          App Engine의 확장가능한 Datastore와 Serviece에 제공한다.
            .JDO, JPA, JavaMail 그리고 JCache 등
   
    - Google Plugin for Eclipse
        : Eclipse를 통해서 제공되는 Plugin은 개발을 새로운 프로젝트를 생성하고, 디버그를 도와준다.
        : 이는 Google Web Toolkit을 통해 Cross plotform에서 개발을 용이하도록 도와준다. 
        : 다음 the Java Getting Started Guide 를 통해서 Google App Engine에서 소개 자료를 찾아 볼수 있다.
 
    - The Java Runtime Environment
        : App Engine은 Java 5 JVM상에서 Appliction을 동작시킨다.
        : App Engine SKD는 Java 5와 그 이상의 버전을 지원한다.
        : App Engine 은 Web Application을 위해서 Java Servlet 표준을 사용한다.
            . Java Server Pages, static files and data files 그리고 web.xml과 같은 설정 파일이
              Standard WAR 디렉토리 구조 안에정의됨.
        : JVM은 보안적인 측명에서 별도로 Appliaciond의 서비스를 지원하도록 분리되어 동작한다.
        : 제약사항으로 App은 Threads를 생성학나 local file system에 데이터를 쓰거나,
          임의로 네트워크 커넥션을 만들수 없다.
        : 더 많은 내용들은 Servlet Environment 를 참조한다.
 
    - The Datastory, the Services and the Standard Interfaces
        : App Engine은 확장성 있는 서비스들을 제공하는데,
            . Application들이 persistant data를 저장하고,
            . 네트워크를 통해서 리소스에 접근하고,
            . 이미지 데이터들을 처리할 수 있도록 해준다. 
        : Datastore은 2가지 표준 자바 Standard Inteterface를 제공한다.
            . Java Data Objects (JDO) 2.3
            . Java Persistence API (JPA) 1.0
        : 위 두개의 Interface는 DataNucleus Access Platform 를 사용할 수 있도록 구현되어져 있다.
        : App Engine은 Memcache를 제공한다. 이는 Datastrore의 Query들과 계산 결과를 캐싱해서
            전달할 있도록 한다.
            . Java Interface는  JCache (JSR 107)을 구현하였다.
        : URL Fetch 서비스는 다른 웹의 Resource에 접근할 수 있도록 도와준다.
            . Http/Https를 이용하는 다른 서버와 통신이 가능하다.
            .  java.net.URLConnection 를 사용한다.
        : Mail Service
            .  JavaMail Interface를 이용하여 email 메시지를 전송할 수 있음.
        : Image Service
            . Applications에서 이미지를 변환할 수 있도록 서비스를 제공함.
            . 이미지의 크기를 변환하거나 다른 포멧으로 변환이 가능토록 함.
         : Authentication
            . Google Account를 이용한 인증이 가능함.
            . Google Account는 사용자의 계정을 생성하거나, Sign-in할 수 있음.
            . 이미 사용자가 Google의 Account를 가지고 있다면, 이를 Application에 사용할 수 있음.
            
    - Sheduled Tasks
        : Application은 특정한 주기로 Task를 시작할 수 있도록 설정해서 실행할 수 있다.
        : 이는 Unix와 Linux의 Cron Jobs와 유사한다. 다음의 Cron Jobs 를 참조.
    - Java Tools
        : App Engine Java SDK는 몇가지 툴을 포함하고 있다.
            . Test Application
            . Uploading the Application files
            . Downloading log data
            . Apache Ant
            . Google Web Toolkit (GWT)
        : Development server
            . Local에서 application의 개발과 테스트가 가능하도록 도와줌
            . Server는 App Engine의 Data store와 service 그리고 Sandbox를 시뮬레이션을 도와준다.
            . 개발 서버는 data store의 인덱스와 쿼리를 Application에서 테스트 할 수 있도록 도와준다.
        : AppCfg
            . 이 툴은 Command-line인터페이를 제고하여 application을 Google App Engine에서 실행할 수
                있게 도와준다.
            . Application을 Upload하고 index의 구성를 수정하고, Application의 로그를 다운로드 해준기도 한다.
            . 세부 내용은 다음의 "AppCfg"의 내용을 참고한다.

간단하게 읽는다는 것이 정리를 하게되니 쉽지가 않다.
하지만 정리하진 않은면, 기억에서 금방 사라지기 때문에, 어쩔수 없다.
Posted by 행복상자

댓글

이 블로그의 인기 게시물

Google App Engine의 Database 비용 줄이기

Feb 17 Google App Engine의 Database 비용 줄이기 얼마전 iOS 개발자로 일하고 있는 친구와 함께 사진 공유 App을 런칭했다. ( App Store Link ). 어차피 돈 벌기 위한 작업이 아니었으므로 서버 비용을 최소화하는 방법으로 구현했다. 1. 사진 데이터는 Facebook에 올린다. 2. 우리 App에서 보여주기 위한 데이터(순위, 투표 현황 등)는 Google App Engine에 저장한다. 1 GB까지 무료이므로 어느정도 수준까지 무료로 서비스 가능. 이 이상이면 소액 지출로 해결한다. 1GB 이상의 데이터가 쌓일 정도면 일정 수준 성공한 서비스이므로 광고 등으로 유지 비용을 벌 수 있을 것이라 판단. 3. iOS App에서 cache를 적절히 활용하여 Google App Engine에 조회를 최소화한다. 위와 같은 방식으로 하면 초기 비용 없이 서비스를 한동안 제공할 수 있을 것이라 생각하고 App을 한달전 쯤 런칭하였는데... 딱 일주일만에 Google App Engine의 DB read 동작이 무료로 제공되는 한계치를 넘을려 하고 있었다. 어쩔 수 없이 유료화로 전환하여 약간의 비용을 지출하게 되었는데. 실제 사용자 수에 비해 DB read 횟수가 많아 보여 이를 감소하는 방법을 찾아 적용하였다. 혹시, Google App Engine을 사용하여 서비스를 구축하려는 분들에게 도움이 될 듯 싶어 공유한다. DB read 동작 횟수에 대한 정확한 이해가 필요 Entity를 읽으면 무조건 1회의 read 동작 Query를 실행하면 1회, Query에서 얻어지는 모든 Entity에 대해 1회의 read 동작 (read는 10...

카페24에서 스프링으로 만든 mvc 모델을 등록 http://m.blog.daum.net/liokingim/1944

블로그 통합검색 관련 서비스 펼치기 내 블로그 친구 리오의 오두막 글목록 방명록 cafe24에서 java spring mvc 사이트 만들기. 리오 | 2013.07.17 10:20 목록 크게 댓글 (1) | 댓글쓰기 카페24에서 스프링으로 만든 mvc 모델을 등록할려고 상당한 삽질을 한 끝에 드디어 성공했습니다. 그 방법을 등록합니다. 요구 사항 1. spring framework 3.3 2. java 3. oracle 10g 4. mvc 5. Controller 를 사용 카페 24에서 서비스하는 호스팅으론 위의 조건을 만족하지 않아서 두개의 호스팅을 신청하였습니다. 일단 데이타베이스는 oracle호스팅 으로 신청, Controller 설정은 불가능하여 Tomcat jsp 호스팅 을 신청하였습니다. mysql은 나중에 추가로 쓸려고 생각하기에 그냥 사용.  1. 스프링에서 새로운 프로젝트를 만들어서 샘플 소스를 만들어 봅니다. 2. 스프링 프로젝트를 선택합니다. 3. 스프링 mvc 프로젝트를 선택합니다. 4. 프로젝트의 패키지 명을 등록합니다.    5. 프로젝트에 위의 두개의 HomeController.java, home.hsp가 보입니다.  6. Run on server 를 클릭하여, 서버를 시작합니다.   7. 서버 실행화면이 뜨면 주소를 위와 같이 간단히 수정하여 위의 화면...

jdbc vs mybatis

파일 공유신청 Tistory JDBC와 Mybatis 차이 Study/SPRING FRAMEWORK 2015.02.12 11:35 Google App Engine으로 해보려다 DB를 MY SQL로 하다보니 Google App Engine을 쓸 수 없어  JAVA에서 유명한 Spring Framework를 쓰기로 했습니다. 일단 My Sql에 접근하기위해 JAVA에서는 JDBC가 있어야 한다고 하네요. 안드로이드에서는 SQLite로 간단하게 했는데, JAVA에선 알아야 할게 많네요;;ㅎ 일단 JDBC를 알아봤더니, Oracle, MySql, MS Sql에 접근하기 위한 드라이버 같은 거랍니다. 위 그림과 같이 JAVA 응용프로그램에서 DB에 접근하기위해 JDBC를 거쳐야 합니다. 아 MS에서 만든 ODBC란 놈도 있는데, 이놈은 Access나 Excel같은데도 접근이 가능한데, JAVA에서는 JDBC-ODBC 드라이버로 ODBC로 접근할 수 있습니다. 다시 본론으로 넘어가서 그럼 Spring Framework에서는 어떻게 하느냐... 바로 Mybatis라는 놈으로 쉽게 접근 할 수 있다하네요. 위 그림처럼 JDBC대신 My Batis를 씁니다. My Batis는 원래 ibatis인데, 2010년 아파치 ibatis...