달력

3

« 2024/3 »

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
2009. 10. 1. 06:18

Introduction HTML 5 좋아하는 것/Google2009. 10. 1. 06:18

어제 우연히 Google Code 사이트에 들어가 보니, 새로운 세미나 동영상이 몇개가 어제 날짜로 추가되었다. 이 동영상은 그 중에 하나로 "Introduction HTML 5"라는 제목으로 올라와 있었다. 최근에 여러 경로를 통해서 HTML 5애 대해서 소개되고 있고, 관심이있는 주제라 나름 열심이 보았다.

새로운 것에 관심을 갖는 것은 내 개인적인 성향이지만, 새로운 것이기 때문에 반드시 써야 한다고 고집하지는 않는다. HTML 5는 HTML 4가 발표되고 사용된지 10년이 지난 후에 나온 것이지만, 완전히 새로운 기술은 아니고, 이미 사용되고 있는 기술들이다. 단지 이는 기존 기술들을 좀도 표준화하고 정규화 함에 지나지 않을 수도 있지만, 이를 통해서 우리가 표현하고자 하는 것들일 서로 다른 브라우져에서 동일하게 표현될 수 있다는 점에서 큰 의미가 있을 것이다. 하지만 이를 위해서는 좀더 시간이 필요할 것 같다. 새로운 기술 또는 표준이 온전히 쓰이기 위해서는 양보와 타협이 선행되어야 하는데, 브라우져 개발사 마다 자신들에게 유리한 기술과 스펙을 표준으로 삼기위해 보이지 않는 싸움이 계속되기 있기 때문이다.

이 비디오는 한국어 자막도 없이 진행되기 때문에 이해하기 어려운 점이 많을 수 있지만, Presentation화면과 데모 동영상을 보면 대부분을 쉽게 이해할 수 있을 것이다.



동영상은 약 42분 정도로 진행되고, 최근에 제작된 동영상이라 화질과 음색이 좋다.

열심히 공부하고 열심히 배워서, 좋은 개발자가 되자. ^^

:
Posted by 행복상자
미국 시간으로 지난 9월3일 (한국 시간으로 9월 4일)자로 Release 되었다. 이번에 릴리즈된 버전은 Java와 Python 버전으로 각각 제공되는데, 이는 XAPP를 지원하기 위한 것이다.
XMPP는 eXtensible Messaging and Presence Protocol (XMPP) 로 알려져있는 XML기반의 Real time Messaging 서비스이다.

아래의 링크에서 다운로드 하면된다.
- Download: http://code.google.com/p/googleappengine/downloads/list

이번 1.2.5 릴리즈에 포함된것은 그동안 이슈트랙커에 올라온 신규 기능들에 요청중에 많은 사람들의 우선적으로 지원해 주기를 바랬던 기능이었기 때문이이다.

이번에 제공되는 새로운 API들을 이용하면, XMPP기반의 네트워크 프레임워크 상에서 다른 사용자들과 메시지 교환이 가능해 진다. Google Talk와 Google Wave와 같은 Application 과도 마찮가지로 메시지를 교환할 수 있다.

다음 링크를 살려보면, Google App에 포함된 XMPP의 간략한 설명과 예제를 살펴볼수 있다. Java와 Python버전이 있다.

- Java: http://code.google.com/intl/ko-KR/appengine/docs/java/xmpp/
- Python: http://code.google.com/intl/ko-KR/appengine/docs/python/xmpp/

위 링크들을 따라가면, 예제를 살펴볼수 있는데, 코드와 이를 App Engine에서 사용하기 위해서 Config에 추가할 내용들이 있는데, 이는 간단하지만, 주의 깊게 살펴볼 필요가 있다.

그리고, 마지막으로 googlel app engine의 API들은 제약조건들이 있는데, 이것들을 잘 살펴보아야 한다.
예전에 Twitter의 Open API를 테스트하다 보니, 테스트 코드를 몇번 실행을 안했는데, 계속 서버에서 블록킹 되고 결과는 정상적으로 나오지 않았던 적이 있었다. 알고보니 트위터에서는 시간당 100개의 Request와 하루에 2000개의 Request를 사용할 수 있다는 제약이 있었다.

Quter와 제약에 대한 내요은 아래와 같다.

Each XMPP service request counts toward the XMPP API Calls quota.

Each outgoing XMPP chat message counts toward the following quotas:

  • XMPP Data Sent
  • XMPP Recipients Messaged
  • Outgoing Bandwidth (billable)

Each outgoing XMPP chat invitation counts toward the following quotas:

  • XMPP Data Sent
  • XMPP Invitations Sent
  • Outgoing Bandwidth (billable)

Each incoming XMPP message counts toward the following quotas:

  • CPU Time (billable) (50 ms/message)
  • Requests
  • Incoming Bandwidth (billable)

Computation performed in a request handler for incoming XMPP messages applies toward the same quotas as with web requests and tasks.

For more information on quotas, see Quotas, and the "Quota Details" section of the Admin Console.

In addition to quotas, the following limits apply to the use of the XMPP service:

Limit Amount
incoming message size 100 kilobytes
outgoing message size 100 kilobytes


:
Posted by 행복상자
이전에도 Eclipse Plugin을 Eclipse에서 설치해서 사용하는 것에 대해서 설명한 적이 있다.
이이 Eclipse에 익숙한 개발자라면,

구글에서 제공하는 아래와 간은 정보를 이용해서 원하는 버전에 적합한 Plug-in을 설치할 수 있을 것이다.

  • The Google Plugin for Eclipse, for Eclipse 3.3 (Europa):
    http://dl.google.com/eclipse/plugin/3.3
  • The Google Plugin for Eclipse, for Eclipse 3.4 (Ganymede):
    http://dl.google.com/eclipse/plugin/3.4
  • The Google Plugin for Eclipse, for Eclipse 3.5 (Galileo):
    http://dl.google.com/eclipse/plugin/3.5

구글의 Plug-in은 위와 같이 Eclipse의 세가지 버전(3.3, 3.4, 3.5)을 지원한다.
이중 3.5버전인 Galileo는 최근에 구글에서 Plug-in을 제공하기 시작했다. (얼마전까지는은 Eclipse 3.5버전에서는 사용하지 못했다는 말이다.)
 
어떻게 설치하고, 환경을 만드는지는 "Google App Engine Java SDK 1.2.1 Released" 의 글을 참조하면 된다. (처음 Eclipse를 사용하는  사람은 "Google App Engine SDK 설치 및 실행"를 참조)

Eclipse 3.5인 Galileo는 이전 버전들과 Plug-in 설치 방식이 약간 달라졌다.
이전 3.4 버전에서 제공 하던 방식은 플러그인을 찾는 방식이 편하지 많은 않았다. 왜냐하면, 백그라운드에서 사용자가 입력한 플러그인 이름을 실시간으로 키 입력시마다 추천해 주는 방식을 제공했는데, 네트워크에서 대기하는 시간에 대한 부담을 사용자가 가져야 했기 때문이다. 3.5 버전에서는 이러한 것들이 개선되어 졌다.

아래는 Eclipse 3.5에 GAE 플러그인을 설치한 것들을 캡쳐한 화면이다.

Eclipse 3.5의 Help > Install New Software... 를 클릭하면 아래 화면이 나타난다.


위 화면에서 상단 오른쪽에 있는 "Add..." 버튼을 클릭하면 창이 나타나면 아래와 같이 "Name"과 "Location"을 입력하고 "OK"버튼을 누른다. (Name은 사용자가 원하는 이름을 넣으면 된다.)


입력한 주소(Location) 정보가 정확하면, 아래과 같이 설치 가능한 플러그인들 목록이 표시된다.
모두 설치를 할것이므로 아래처럼 모두 체크해서 선택하면 된다. 그리고 "Next"버튼을 클릭한다.


위에서 "Next" 버튼을 클릭하면, 아래와 같이 상세 정보들이 나타난다. 다시 "Next"버튼을 클릭한다.

설치할 플러그인들에 대한 Licese 정책에 동의 할 것인지를 묻는 창인데, 당연히 동의해야 한다.
만약 동의하지 않는다면, 설치가 안될테니까... ^^;;;

위에서 동의하고 "Finish"버트을 누루면, 아래와 같이 설치가 진행된다.

:
Posted by 행복상자
최근에 몸이 안좋다는 핑계로 이것 저것 하던 것들 다 손에서 내려 놓고, 아무것도 제대로 해보지 않은지 약 1달이 되었다. 이전에 Twiter4J 분석해서 여러가지를 테스트하고는 이를 GAE에 올리려고 하다가, 말았는데 그 이유는 새로 다운 받은 Eclipse 3.5 버전(Galileo)에서 돌아가는 GAE 플러그인이 제공되지 않았기 때문이 었다. 그 이후로 수 차례 GAE 사이트에 들어가서, 확인을 해 보았지만, 여전히 제공되지 않는 것을 확인하고는 잊고 있었다.

그러다가 최근에야 Eclipse 3.5 플러그인이 제공되는 것을 알게 되었다.
오늘은 GAE에 변경된 것들이 있는지 문서들을 읽어 보다가 web.xml 설정에 대한 제약들을 알게 되었는데, 어쩌면 당연한 것이라고 생각되는 것이었다.

아래의 내용인데,

App Engine supports the <load-on-startup> element for servlet declarations. However, the load actually occurs during the first request handled by the web server instance, not prior to it.

App Engine supports <mime-mapping> elements for specifying the MIME type to use for resources whose filenames end with certain extensions. However, MIME mappings only apply to servlets, not to static files. Static files use a fixed list of mappings of filename extensions to MIME types.

Some deployment descriptor elements can take a human readable display name, description and icon for use in IDEs. App Engine doesn't use these, and ignores them.

App Engine doesn't support JNDI environment variables (<env-entry>).

App Engine doesn't support EJB resources (<resource-ref>).

The <distributable> element is ignored.

Servlet scheduling with <run-at> is not supported.


읽어보면 Web Applicaton 시작시에 순서를 정해주게 되어 있는데, 이는 GAE에서는 별다는 의미를 부여하지 않는다는 것이다. 이를 사전에 처리하는 것이 아니라, 웹서버의 instance에 의해 첫번째 요청을 처리하는동안 load 되기 때문이다.

그리고, MIME mapping은 Servlet에 맵핑할때만 사용될뿐, 정적파일에는 사용되지 않는다. 정적 파일들에 대한 맵핑은 Fixed 된 파일을 통해서 정의해서 사용한다.

그리고,
- JNDI 환경변수를 지원하지 않는다.
- App Engine은 EJB 환경 변수를 지원하지 않는다.
- <distribution>은 무시한다.
- <run-at>태그를 이용한 Servlet의 스케즐링도 지원하지 않는다.
        (==> 기존의 다른 WAS상의 run-at 태그의 이용에 대한 것은 다음의 링크를 참조하면 된다.
        http://www.caucho.com/resin-3.0/servlet/run-at.xtp )



:
Posted by 행복상자