Google app engine을 annouce를 한 이후 뜨거운(?) 반응이 곳곳에서 보인다.

이거 가만히 살펴보니 전에 내가 팀사람들과 얘기하던 서비스로서의 플랫폼과 비슷한 이야기이다.(내가 블로그 플랫폼에 대해서 이야기를 한적이 있는데, 몇몇 사람은 기억을 할거다.)

infrastructure에 대한 고민은 하지 말고, 개발자는 순수한 어플리케이션 개발과 개선에만 신경써라.

개발자의 궁극적인 프로그래밍 모델과 같은 이말은 우리 개발자들이 자주 쓰면서 지금까지 계속해서 못하던 일이다. 이 얘기를 구글이 다시하고 있다.

application의 환경을 살펴보자.

  • dynamic web serving, with full support for common web technologies
  • persistent storage with queries, sorting and transactions
  • automatic scaling and load balancing
  • APIs for authenticating users and sending email using Google Accounts
  • a fully featured local development environment that simulates Google App Engine on your computer

    우리가 웹개발을 하면서 필요한 것은 대부분 다 지원을 하고, 성능을 위해서 필요한 아키텍쳐나 툴도  이미 다 제공을 한다.

     persistent storage는 bigtable과 GFS기반으로 되어 있다.

    Google App Engine applications are implemented using the Python programming language. The runtime environment includes the full Python language and most of the Python standard library.

    Although Python is currently the only language supported by Google App Engine, we look forward to supporting more languages in the future.

    현재는 Python만 지원을 하는데 앞으로는 더 많은 언어를 지원을 한다고 한다.

    The Sandbox

    • An application can only access other computers on the Internet through the provided URL fetch and email services and APIs. Other computers can only connect to the application by making HTTP (or HTTPS) requests on the standard ports.
    • An application cannot write to the file system. An app can read files, but only files uploaded with the application code. The app must use the App Engine datastore for all data that persists between requests.
    • Application code only runs in response to a web request, and must return response data within a few seconds. A request handler cannot spawn a sub-process or execute code after the response has been sent.

    application code는 http(https) 프로토콜을 이용하고 request/reponse로 동기호출을 한다.

    Python을 이용해서 개발을 하는 것에 대한 아티클이다.
    http://code.google.com/appengine/articles/

    Announcing Google App Engine at Campfire One on April 7, 2008
     

    문서들을 살펴보니 Python과 기존의 프레임워크를 이용해서 좀더 어플리케이션 코드에 가까운 프레임워크를 개발을 한거 같다.

    실제로 이것을 이용해서 개발을 해보면서 장단점을 알고 싶지만, 내가 Python을 잘모른다는거, 2003년쯤에 잠깐 기본서 보다가 덮었다...T.T(이번 기회에 스터디 해봐!)

    Google App Engine은 대단한 물건임에는 틀림이 없다. 하지만, 런타임 환경(라이브러리 버젼, 런타임 버젼, 프레임워크 버젼 등등)이 제공자에 의해서 너무 좌지우지 되는 면이 있고, 보안을 위한 제약사항들이 조금 답답하게 느껴질수도 있겠다.

    요즘 RDB에 대한 불만이 많았는데, bigtable과 GQL은 정말 부럽다.

    더 자세한 내용은 여기를 가서 보자!

    Google App Engine
    http://code.google.com/appengine/


    PS.
    1. 근데 구글아저씨! 진짜 우리 infrastructure 이제 신경 안써도 되남유?
    2. 사내에 필요한 공통의 플랫폼이나 컴포넌트를 만들어야 한다면, 구글이나 아마존에서 배워야 한다.

  • Many development is doing  for Large data processing, and it come programing models.

    대용량의 데이터를 처리하기 위해서 많은 연구들이 되고 있고, 개념들이 등장한다.

    Google has announced MapReduce program model which is processing large data.

    그 중에서 구글에서 발표한 MapReduce방식은 대용량의 데이터를 처리한다.

    MapReduce is a programming model and an associated implementation for processing and generating large data sets.

    download :



    site :
    http://labs.google.com/papers/mapreduce.html

    Those of you who attend JavaOne will know Josh Bloch, Neal Gafter and Bill Pugh's series of highly entertaining Java Puzzlers. Now, for the first time, one of these talks is available to people who are not JavaOne attendees: Josh and Bill gave this year's Java Puzzlers talk at Google.



    구글에서의 자바 퍼즐러 동영상입니다. SCJP를 가지고 계시분들은 아시겠지만, 그와 유사한 문제들에 대한 영상이 재미있네요...^^




    http://jeremymanson.blogspot.com/2007/08/java-puzzlers-at-google.html

    http://video.google.com/videoplay?docid=9214177555401838409




    커뮤니티 쪽을 개발하기 전에 기업 어플리케이션 시장 및 CRM에 관련된(?) 일을 했었는데, 그 때 알게된 빅브라더가 바로 세일즈포스닷컴이다.

    세일즈포스닷컴 마크 베니오프
    http://news.naver.com/news/read.php?mode=LSD&office_id=029&article_id=0000165045&section_id=105&menu_id=105

    한국에서 유사한 형태로 라는 서비스가 있지만, 국내 정서상 ASP(Application Service Provider)를 하면서 돈을 버는 것은 흔치 않은게 사실이다. 최근에는 KT에서 하는 비즈메카를 비롯하여 알게 모르게 적은 수익을 내는 회사들은 있다. 앞으로는 더욱 큰 수익을 낼수 있는 시장으로 발전할 것이다.

    구글과 세일즈포스닷컴에 대한 이야기는 구글의 미래를 예상해볼 수 있는 좋은 가쉽거리다.

    Google, Salesforce Rumors
    http://www.techcrunch.com/2007/05/21/google-salesrorce-rumors/

    구글과 세일즈포스닷컴
    http://www.dt.co.kr/contents.htm?article_no=2007052302011457730001
    http://news.naver.com/news/read.php?mode=LSD&office_id=030&article_id=0000179452&section_id=105&menu_id=105
    http://news.naver.com/news/read.php?mode=LSD&office_id=029&article_id=0000165560&section_id=105&menu_id=105

    구글은 Salesforce.com을 인수하면서 진정한 독점을 할지도 모른다는 생각이 든다.
    구글 리더기를 사용하다가 보면, 스크립트 에러가 간혹난다. 사용하는데 치명적인 경우는 별로 없었지만, 스크립트 에러를 보면서 사람냄새가 나는건 왜일까?

    버그없는 무결점 S/W가 존재할려나?
    역시 완벽한 것은 없는 것인가?ㅋㅋㅋ

    스크립트 에러를 줄일수 있는 방법은 무엇일까? 이넘의 자식은 디버깅이 어려워서~
    스크립트 언어의 특징이긴 하지만, 자바스크립트는 특히 더 심한듯~

    User inserted image

    자꾸 자바 런타임 라이브러리를 업데이트하라고 해서 설치를 하는데, 다음과 같은 화면이 나왔다.

    구글이 SUN에게도 돈을 벌 기회를 주는군




    이제 구글의 근무환경을 보면 놀라는 일은 별일도 아닌거 같다.
    일단, 먹을 것이 풍부하고, 굉장히 자유로운 분위기로 대표되는 회사이다.

    더 많은 사진을 아래 링크로 들어가보자.

    Google(구글) 본사 견학기
    http://blogbbs1.media.daum.net/griffin/do/blognews/life/read?bbsId=B0005&articleId=15675



    Google Web Toolkit - Build AJAX apps in the Java language

    초기생성 날짜 : 5월 27일

    구글에서 자바로 Ajax를 쉽게 개발할 수 있게 하는 SDK를 배포했다. 역시!! 구글~!!

    gwt-windows-1.0.21
    SDK의 버젼에 주목할 필요가 있다. 0.XX의 알파버젼이 아닌 1.XX이상의 버젼으로 그 동안 안정화에 많은 고심을 할 끝에 나온  product라는 것을 알수가 있다.

    Ajax를 노가다로 만들어 본 사람들은 알겠지만, 개발할때도 힘들고, 디버깅도 어렵고, 테스트로 어렵다.

    여러가지 사례들도 많았지만, JSF나 Google Web Toolkit , DWR처럼 자바로 개발을 하는 방법이 현재는 Best Practice로 자리를 잡아나가는거 같다.

    최근 트렌드를 보면서 개인적으로 Ajax의 개발 미래를 넌지시 예상을 해보자면, 직접 웹페이지 안에서 하는 코딩은 거의 없어질 듯하고, 이렇게 오픈된 소스를 활용을 하거나, 능력이 되는 회사나 lab, team에서는 특색에 맞는 sdk를 만들어서 사용을 하지 않을까 싶다!!

    아키텍쳐를 한번 살펴보자. 아래 그림과 같다. 어떤가? 심플해보이지 않는가?ㅎㅎㅎ



    Why Translate Java Code to JavaScript?

    Java technologies offer a productive development plaform, and with GWT, they can instantly become the basis of your AJAX development platform as well. Here are some of the benefits of developing with GWT:

    • You can use all of your favorite Java development tools (Eclipse, IntelliJ, JProfiler, JUnit) for AJAX development.
    • Static type checking in the Java language boosts productivity while reducing errors.
    • Common JavaScript errors (typos, type mismatches) are easily caught at compile time rather than by users at runtime.
    • Code prompting/completion is widely available.
    • Automated Java refactoring is pretty snazzy these days.
    • Java-based OO designs are easier to communicate and understand, thus making your AJAX code base more comprehensible with less documentation

    javascript를 직접 코딩 안하고 자바를 통해서 개발하는 것에 대한 장점이 위와 같이 나와있다. 색깔을 틀리게 한 부분만 보면 Ajax개발에 있어서 선택이 아님 거의 필수라는 생각이 든다.

    XP와 TDD가 주목받고 있는 지금 Ajax개발에 충분한 기반으로 자리잡을수 있을 듯하다. 테스트를 할수 없는 코드는 만들지도 말라고 했다. javascript의 디버깅의 어려움, 테스트의 어려움을 GWT를 통해서 해결을 해보자.

    사용법은 간단하니...한번씩 구현을 해보는것 좋을듯..^^

    설치방법
    1. gwt-windows-1.0.21를 다운로드를 받는다.
    http://code.google.com/webtoolkit/download.html

    2. 적당한 폴더에 압축을 풀고, GWT_HOME으로 압축을 푼 곳을 환경변수에 추가를 한다.
    CLASSPATH와 PATH에 GWT_HOME의 경로를 설정해준다.

    압축을 푼곳에 있는 디렉토리와 파일들이다. 차근차근 살펴보자!!

    개발방법
    대부분 이클립스를 이용해서 개발을 한다고 생각을 하고 이클립스의 예를 들어보자
    applicationCreator -eclipse MyProject com.mycompany.client.TestApp

    cmd에 들어가서 프로젝트 파일들을 생성시킬 장소에 들어가서 위와 같이 명령만 때리면 자동으로 파일들이 쭉 만들어진다.
    여러가지 skeleton들이 만들어진다.

    그 다음 *-compile.cmd를 클릭을 하면 컴파일되서 다음과같이 www폴더가 생긴다.

    *-shell.cmd를 클릭을 하면 다음과 같은 화면이 동시에 2개가 뜬다.

    이제 기본적인 스켈레톤 생성과 테스트가 끝난 것이다..^^

    그 다음 Eclipse를 띄운뒤 File -> Import를 선택하고, "Existing Projects into Workspace"를 선택해서 만들어진 폴더와 파일들을 import한다.www폴더를 컨텍스트 root로 잡고, wtp를 이용해서 호스트 모드로  tomcat를 띄우면 된다.

    다음과 같은 URL에서 테스트 페이지를 확인할 수가 있다.
    http://localhost:8080/com.nhn.ajax.TestApp/TestApp.html

    아래화면은 실제 브라우저에서 본 화면이다.

    더 많은 이야기들은 아래 링크를 참조하자~!!

    Google Web Toolkit - Build AJAX apps in the Java language
    http://code.google.com/webtoolkit/


    Google Web Toolkit Downloads
    http://code.google.com/webtoolkit/download.html

    Google Web Toolkit Getting Started Guide
    http://code.google.com/webtoolkit/gettingstarted.html

    6월 11일 추가
    네이버 블로거 레퍼백곰님 후기
    http://blog.naver.com/django44/40024832964
    위에 포스팅에 대한 이야기 : DWR,GWT방식 vs Rico방식에 대한 혼란이 있습니다만, 어떤 스타일이 맞는지 고민, JSF나 기타 UI플랫폼(Swing,Awt, VS.net)을 생각하면 UI개발은 컴포넌트기반이 맞다는 생각도 들고,  순수html요소의 디자인과 비즈니스로직 input으로서의 ui와 경계선이 헷갈립니다. JSF가 표준처럼 자리 잡을수 있게 되면, 아무래도 컴포넌트 기반으로 가지 않을까 조심스럽게 전망을 해봅니다. 아마도 또 많은 개발자들의 삽질로 더 좋은 아키텍쳐가 나오지 않을까 싶네요. 일단은 Ajax는 노가다로 할렵니다...흑흑....

    6월 16일 추가
    GWT(Google Web Toolkit) 테스트 중…
    http://www.talk-with-hani.com/archives/252
    좀더 GWT에 대해서 생각을 해보자

    7월 23일 추가
    Google Web Toolkit
    http://jania902.egloos.com/1970669
    오픈API르 제공할때 제일 조심스러운 부분이 보안문제이다. 이 문제를 구글은 어떻게 풀어가는지 확인할 수 있는 구글의 인증API가 공개가 됐다.
    http://code.google.com/apis/accounts/Authentication.html

    아래는 이삼구글님의 글에서 가져온 그림이다.

    간단하게 설명을 하자면, 인증을 받으면 토큰을 제공하는데, 그것을 이용해서 데이터를 접근을 가능하게 하는 것이다. 키가 아닌 토큰에 의한 방법인 것이다.



    구글(Google) 계정 인증 API 공개
    http://blog.repl.net/index.php/google_auth_api_launched/2006/06/29/
    CPA방식의 과금방식은 기존의 방식하고 차이가 있다.
    회원모집이나, 특정 상품에 대한 판매를 강화를 하고 싶을때 주로 사용하는 방법 중의 하나인데, 제휴 마케팅 or 네트워크 마케팅으로 많이 알려진 방법 중의 하나이다. 구입, 회원가입과 같은 특정한 액션이 일어나는 경우에만 과금하는 방식이라, 노출이나 클릭보다 훨씬 어렵다. 그 만큼 가격도 비싸다. 오픈 마켓에는 알게 모르게 들어있는 전략 중의 하나이다.

    새로울것도 없는 것이 기존에 많이들 해왔고, 지금도 일부에선 시행하고 있는 방식이다. 웹페이지 특성상 특정 웹페이지나 function을 이끌어내기가 쉽지가 않다. 그래서 많은 업체들이 힘들게 살고 있고, 사라지기도 한 것도 사실이다.

    기존에 이런방식으로 비즈니스를 하는 회사이다.
    http://www.linkprice.com/home/linkpricehome.htm

    하지만, 구글이 하면 달라지려나? 어떤 생각으로?
    키워드광고,adsense를 바탕으로 모든 방식의 광고툴을 다 가질려는 의도로 보인다. 온라인에서 할수 있는 것을 다 만들면, 오프라인쪽도 만들 것이다. 몇 년뒤에는 구글에서 오프라인에서 춤을 출 도우미를 신청하게 될수도 있을거 같다.

    오프라인에서는 제휴마케팅을 할 경우는 개인이나 비정규 데이터를 가지고 하기때문에 어렵고, 비용이 많이 듭니다만, 온라인에서는 문맥광고를 통해서 타게팅이 정확히 할수만 있다면, 오프라인에서 하지 못했던 여러가지 일들을 할수가 있을거라고 생각을 합니다.

    온라인에서 들어오는 수많은 데이터를 얼마나 효율적인 데이터를 만드냐가 관건이고, 그 데이터를 바탕으로 고객에게 편안한 제안을 통한 수익을 마련을 할수가 있을 것인지가 중요한 요소중의 하나입니다.

    광고주는 밑져야 본전이라는 생각으로 수익에 큰 부분을 광고비로 투자할 가능성도 큽니다..^^ 자세한 내용들은 아래 링크들을 참조해주세요. 정리를 아주 잘해두었군요.

    구글 Cost-Per-Action 광고 방식
    http://vilidian.com/386

    제휴마케팅의 ROI
    http://blog.repl.net/advertizing/2006/06/roi.html

    Google AdSense, CPA 광고 테스트
    http://blog.repl.net/index.php/adsense_cpa_test/2006/06/22/

    Google Testing Pay-Per-Sale AdSense?
    http://blog.outer-court.com/archive/2006-06-21-n17.html

    제휴마케팅 vs 문맥광고
    http://blog.repl.net/advertizing/2006/06/vs_20.html

    제휴마케팅을 이용한 창업?

    제휴 마케팅 사이트를 이용한 창업도 한가지 방법이다. 제휴 마케팅은 다른 사람이 운영하고 있는 홈페이지에 등록돼 있는 자사 홈페이지의 배너를 통해 유입된 소비자에 의해 발생하는 매출액의 일정비율을 배너를 링크한 다른 홈페이지의 운영자에게 커미션을 주는 것이다.

    즉, 링크프라이스(www.linkprice.co.kr)에 무료 회원가입을 하면, 280여개 유명 사이트의 링크 주소 혹은 배너를 제공하는데 본인의 홈페이지를 만든 후 링크 주소 혹은 배너를 등록시켜서 홍보하고 링크 주소 혹은 배너를 통해 고객들이 상품을 구매하면 수수료를 받는다.

    대표적인 제휴마케팅 사이트에는 링크프라이스(www.linkprice.co.kr), 갓피플(mall.godpeople.com), 클릭앤파트너즈(www.ilikeclick.com), 링크 플러스(www.pluslink.com), 게이트 프라이스(www.gateprice.com), 굿매치(www.goodmatch.co.kr) 등이 있다.

    원문 :
    http://news.naver.com/news/read.php?mode=LSD&office_id=147&article_id=0000002439&section_id=101&menu_id=101


    BLOG main image
    OOP and Java by ologist

    공지사항

    카테고리

    All (649)
    private!! (106)
    WEB & IT (140)
    Developer (400)