달력

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
미국 시간으로 지난 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 행복상자

영화 "터미네이터 3"가 나온지 벌써 6년이 다 되어간다. 그리고 올해 "터미네이터 4"라는 제목으로 우리앞에 새로운 모습으로 다가왔는데, 6년 전만해도, 많은 사람들이 더 이상의 시리즈는 없을 거라고 예상하였고, 실제로 주연 배우였던 "아놀드 슈왈제너거"의 캘리포니아 주지사 당선으로 더 이상의 시리즈는 많들지 않을 거라고 확신하였었다.
하지만, 6년이 지난 지금, 우리 앞에 새로운 터미네이터 시리즈로 나타난 이영화를 과연 터

미네이터 시리즈로 보아야 하느냐? 라는 질문에는 선듯 대답하기를 주저할 수 밖에 없다. 먼저 "아놀드 슈왈 제너거"가 없는 터미네이터는 허전해서, 먼가를 생각나게 만든다. 그리고, 영화의 전개는 미래인 2018년에서 벌어지게 되는게, 기존 시리즈는 "존 코너"를 지키기 위해서 현재에서 "스카이 넷"이 보넨 로봇과 싸우지만, 영화는 미래에서 "스카이 넷"이 지배하는 세상에서 인간들이 싸우기 시작하는 시점이고, "존 코너"가  저항군들을 이끌기 시작하려는 때이다. 
그렇기 때문에, 시점 상으로 보면, 전혀 다른 영화라는 생각이 들고, 만약 "터미네이터"라는 제목을 붙이지 않았다면, 다른 영화라고 생각해도 무방할 정도로 이전과는 분위기나 스토리 전개도 무척 다르다.

사실 이러한 혼란들 피하기 위해서 제작사는 TV 시리즈인 "사라 코너 연대기"를 통해서, 시간적인 공백과 미래의 "존 코너"의 행적에 대한 이해를 도우려 했다.
과연 얼마나 많은 사람들이 이러한 제작사의 의도를 파악하고, TV 시리즈를 미리 보았을지는 모르겠지만, TV시리즈를 안 본다고 해서, 영화의 재미가 반감되지 않는다.

영화는 영화 나름대로 플롯을 가지고, 고객들의 흥미를 끌어 당기고, "아놀드 슈왈제네거"가 없는 터미네이터도 존재할 수 있다는 것을 보여주고 있다. 하지만, 시나리오의 맥락을 보면, "터미네이터와는 다른 새로운 영화를 만들수 있지 않았을까?" 라는 의문이 갖게 된다. 왜냐하면 영화속에는 나름대로 잘 다듬어진 캐릭터들이 존재하기 때문이다. 특정 캐릭터에 의존하지 않고, 비슷한 비중의 주연들을 여러명을 두는 현재 영화의 특징을 그대로 살릴 수도 있었을 텐데라는 아쉬움이 있다.

영화를 끌고 오던 캐릭터 였던 "마커스"를 "존 코너"라는 비중있는 인물을 죽어야 되는 상황에서 구하기 위해서, 그리고 이를 통해서 감동을 불러오려는 의도였는지, "남의 위한 희생"이라는 이름으로 너무나도 갑작스럽게 죽는다. (사실 감동적이지는 않았다.)
사실, "마커스" 그는 영화의 스토리를 이끌었다는 점에서는 오히려 주인공 "존 코너" 보다 더 중요한 역할이었다. 

영화속의 스토리에서 이상한 점은, 2018년의 "스카이 넷"은 어떻게 "존 코너"와 존 코너의 아버지로 과거로 시간 여행을 해서, "사라 코너"를 보호해야할 임무를 받은 "카일 리스"의 존재를 알고 있는냐는 것이다. 
사실, 시간 여행을 통해서 과거로 갈 수 있는 기술이 개발되는 때는 약 20년 후의 일이기 때문이다.

영화 속의 로봇 군단과의 전투는 "트랜스 포머"이후의 영화들과 마찮가지로, 자유로운 관절 움직임이 있는 로봇들과 대형 로봇들이 영화에서 현실감 있게 표현된다.  그리고, 이러한 로봇과의 전투씬과 추격씬은 블록버스터 영화다운 스케일을 보여주고 있다.
  
"터미네이터 4"는 처음 터이네이터 시리즈를 보는 사람들이 보아도, 크게 이해하는데 어렵지 않은 오락영화이고, 부담스럽지 않은 영화이다.

 

:
Posted by 행복상자