달력

5

« 2024/5 »

  • 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

어제는 근로자의 날이라서 출근하지는 않았었다. 그리고 전날은 부부동반 모임이 있어서, 늦에 들어온 것을 핑계삼아 간만에 게으름도 피우고 그랬다. 아니 사실은 게으름을 피운 것운 것이 아니라, 감기인지 못살인지 몸이 좋지 않아서 누워서 오전을 보냈다. 선천적으로 늦잠을 좋아하지 않는 관계로 시간이 무척 아까웠다.

무엇을 할까 고민하다가, Google App Engine에 스프링으로 간단한 페이지를 한번 올려봐야지라는 생각이 들었다.
최근에 Google의 Eclipse 플러그인과 SDK는 이미 설치해서 간단한 것들은 적용해 본 상태여서, Google의 App Engine의 인증만 남은 상태이므로 남은 작업은 정말 간단하다.

만약 Eclipse에 Google App Engine Plugin과 SDK를 설치 하지 않았으며,
이전에 블로그에 올렸던 다음의  글을 "Google App Engine SDK 설치 및 실행" 를 참조 하기 바란다.

위와 같이 Google App Engine을 위한 기본 환경을 만들었으면, Spring Framework를 다운 받아야 한다.
이미 Spring Framework를 이용하여 개발한 경험이 있는 개발자라면, 기존에 가지고 있던 Library들을 그대로 사용하면 되지만, 그렇지 않은 개발자라면 www.springframework.org 에서 다운 받아야 한다.
                      - Spring Framework 2.5 Dependency Version Download

지금은 SpringFramework 3.0M3가 공개되고 있지만, 정식 Release된 2.5.5버전을 예제 작성에 사용할 것이다.
(물론 다른 버전을 사용해도 큰 영향은 없을거라 생각된다. 환경만 잘 맞추어 주면 말이다.)

자 이제 본론으로 들어가서, Google App Engine의 Eclipse Plugin을 정상적으로 설치하게 되면, Eclipse의 상단 메뉴텝에 다음과 같이 3개의 아이콘들이 생겨난 것을 볼수 있을 것이다.

   



위에 첨부한 메뉴 이미지 중에서 왼쪽에 있는 메뉴 아이템을 클릭하여 "New Web Application Project"창을 아래와 같이 띄운다.

위의 창에 생성할 프로젝트 이름을 입력하고, 기본적으로 생성할 패키지명도 입력한다. 만약 Google Web Toolket를 사용하기 원하지 않으면 체크박스에서 체크 표시를 지워주고 하단에 있는 "Finish"버튼을 클릭하면 된다.

프로젝트를 생성하면 기본적인 Servlet을 예제로 제공한다. 자 일단 테스트를 위해서 이를 실행해 보자.
아래와 같이 "Debug As" 메뉴의 서브 메뉴인 "Web Application" 를 실행시키면 웹서버가 실행된다.



이를 확인하기 위해서는 웹브라우져의 주소창에 "http://localhost:8080" 입력하여 실행하면 된다.

정상적으로 동작하는 것을 확인하면, 이제 스프링을 실행할 수 있는 환경을 만들어 보겠다.
예제는 아는 사람들에게는 잘 알려져 있는 "step-by-step" 를 예제로 작업할 것이다. 환경을 만들어 주기 위해서는 이전에 다운 받은 Springframework에서 Spring.jar, Spring-mvc.jar 그리고 common-log.jar 파일을 WEB-INF/lib 디렉토리 아래로 복사한다. (아래  그림 참조)

common-log.jar 파일은 Google에서 제공하는 logging 패키지를 이용해도 되지만, Spring의 "DispatcherServlet"을 로딩할때 에러가 나기 때문에 넣어준 것이다. 위의 "step-by-step" 예제를 따라하면, 기본적인 웹페이지를 작성할 수 있을 것이다. 다만, "Ant Build"에 관한 내용과 "Unit Test"에 관한 부분은 크게 신경 쓰지 않아도 된다.

Spring의 "DispatcherServlet"을 이용한 기본적인 예제는 큰 에러 없이 작성될거라 믿는다. 만약 에러가 난다면, Google의 SDK없이 만들어서 돌려보기 바란다. 기본적인 개념을 익히는데 큰 도움이 될거라 믿는다.

일단 http://localhost:8080 을 이용해서 무리가 없으면,



위 이미지의 메뉴중(붉은 박스로 안에 있는)에 세번째 아이템(비행기 모양의 버튼)을 클릭을 하여 "Deploy Project to Google App Engine" 윈도우를 띄운다. 



위와 같은 창이 뜨면, 입력할 값들을 입력박스에 채워 넣고 Deploy를 실행하면 되는데, 이를 위해서는 Google App Engine의 인증이 필요하다. 인증을 위해서는 이미 구글의 Account가 있어야 하고, 이를 이용하여 Deplore를 진행할 수 있다.

아래의 이미지는 서버에서 서비스할 application을 위한 기본적인 정보인데, 간단하게 필요한 내용을 입력하면 된다.


위 화면의 "Applicatiion Identifier"는 자신이 원하는 App Engine상의 sub 도메인 역할을 하는 것이고, "Appication Title" 은 적절한 이름을 넣어주면 된다. 인증 관련된 부분은 특별한 설정 없이 그래도 놓은면, 누구다 다 접속이 가능하고, 별도의 추가 설정이 필요하면 "Edit" 링크를 눌러서 추가 설정을 해주면 된다. (자세한 내용은 구글에서 제공하는 가이드를 참고하기 바란다.)
 
설정을 마쳤으면 "Save" 버튼을 클릭하면 서버상의 설정을 마쳐지게 된다.

내가 작성한 셈플 프로그램은 여기에 있다.
    Sample Progrom 링크 : http://happyzoo2009.appspot.com/hello.htm

추가적인 사항으로는 Google App Engine에서 제공하는 DB는 공식적으로는 없다. 다만 Google App Engine의 Datastory를 이용이 가능하다. 하지만 이 역시도 Google에서 제공하는 Library를 통해서 JPA와 JDO틀 통한 이용이 가능하다. 이를 이용해서 Persistance 데이터들을 관리해서 사용해야 한다. 이의 사용은 기존의 관계형 DB와는 차이가 있다. 때문에 제대로 이용하기 위해서는 역시 공부하고, 분석하는 시간들이 필요하다.

하지만, 관계형 DB의 사용도 가능하나 역시 제약이 뒤 따른다. HSQLDB를 이용하여 in-memory상에서 동작을 시키는 경우이다. (이런 경우는 Hibernate의 이용이 가능하다. ) 
 
이제는 데이터를 어떤식으로 다룰지에 대한 고민들이 남아있다.
한가지 한가지씩 배워나가는 즐거움이 있는 장남감이다. SprignSource에선 Groovy와 Grails을 이용한 예제를 벌써 내 놓았다. 아직은 이들을 적용하고 싶은 생각은 없지만, 조만간 한번을 이들에 대해서도 공부하고 알아야 겠다는 생각은 늘상 가지고 있다. 일단은 Jruby를 먼저 적용해 보고 싶은 생각이 크다.





'좋아하는 것 > Google' 카테고리의 다른 글

Google App Engine Java Overview  (0) 2009.05.18
Google Trend로 보는 웹 기술  (0) 2009.05.08
Google: Release Android 1.5 "Cupcake" SDK  (0) 2009.04.28
Google App Engine SDK 설치 및 실행  (0) 2009.04.22
Google App Engine  (6) 2009.04.14
:
Posted by 행복상자
며칠전에 ScottGu's 의 블로그에 올라온 을 보았다.
그가 몇몇 저자들과 함께 "ASP.NET MVC 1.0"이라는 책을 쓰고,  출판한지 약 1달이 넘었다. 이 책은 ASP.NET에서 웹폼과 함께 지원하는 MVC 프레이워크에 대해서 다루고 있는 최초의 책이라고 생각하는데, Scott Guthly는 자신이 집필했던 쳅터를 e-Book 형태로 무료로 다운로드 받을 수 있도록 했다.
bookcover[1](다운로드는 여기를 클릭하면 된다.)

이와 관련된 글은 "Free ASP.NET MVC eBook Tutorial" 을 참조하면 된다.

이번에 그의 Blog에서는 e-Book의 형태로 다운로드 할 수 있을 뿐만 아니라, HTML형태로 공개한다고 이야기 하고 있다.
아마도 그의 글이 작성된 시점은 HTML 버전으로 만들고, 이를 서버에 Upload한지 얼마 안되었다는 것을 그의 글을 통해서 엿볼수 있다.
요즘은 무엇이 그리도 바쁜지 그의 글이 업데이트 되고, 올라오는 횟수가 많이 줄었다. (빌 게이츠가 은퇴를 해서 그런가?)

그늘 그의 블러글를 통해서, HTML로 공개하고 있는 부분들은 12개의 파트로 나누어져 있다고 설명한다. 그리고 "nifty syntax highlighter" 를 사용해서 코드를 좀 더 보기 좋게 만들었다고 한다. 나는 그동안 위의 라이브러리가 무척 궁금하였었는데, 그의 글을 통해서 알게 되었다. "SyntacHighlighter 2.0"에 대해서는 나중에 시간나면 한번 분석해보고 사용해 보려고 한다. (우연찮은 기회로 알게 되어서 기쁘다.)

다음은 그가 공개한 12개 Part의 소제목에 대한 링크들이다.

이전의 블러그에서도 이야기했지만, Scott의 오픈소스에 대한 생각은 기존의 MS의 CTO들과는 많은 부분에서 확연히 차이가 난다. "JQuery"를 기본 자바 스크립트 Framework로 선택하고 이를 Visual Studio에서 inteligent기능을 통해서 지원하는 것만 봐도 알수 있다.

ASP.NET은 기존의 WebForm과 최근에 공개된 MVC 패턴을 모두 제공하지만, MVC는 웹 개발하는 개발자에게는 친숙하고 익숙한 패턴이기 때무에, WebForm을 넘어설 거라 생각된다.

훌륭한 개발자는 코드로 이야기하지만, 훌륭한 아키텍트(Architect)는 얼마나 복잡도를 줄이고, 단순화 시키느냐로 그의 역량을 엿볼수 있다.
마케팅적인 용어를 통해서 대단치도 않고, 불분명한 기술을 많은 개발자들과 IT 매니저들을 현혹시킬수 있지만, 진정한 가치는 역시 "사용해 보고 싶다"라는 욕구를 매번 새롭게 일으킬수 있어야 가능하다고 생각된다.
그래서 나는 MS의 이러한 긍적적인 변화를 Scott를 통해서 만들어가고 있다는 것에 대해 굉장히 기대하고 또한 잘 되길 바란다.

'공부하는 것' 카테고리의 다른 글

Silverlight 3 Released  (0) 2009.07.11
Reflection을 이용해서, Java Class의 Method 목록 가져오기  (0) 2009.06.27
Free ASP.NET MVC eBook Tutorial  (0) 2009.03.12
Microsoft Azure Platform  (0) 2008.12.29
ASP.NET MVC Design Gallery  (0) 2008.12.20
:
Posted by 행복상자

오늘 날자로 따끈한 소식이 "Google: Upgrade now to Android 1.5 "Cupcake" SDK" 라는 타이틀로 ZDnet에 떴다.
드디어 Google에서 Android 1.5 정식 버전이 릴리즈 되었다. 물로 이에 대해 관심 있는 개발자라면, 다른 여러 경로를 통해서 들었을 것이다.

최근에 Apple에서는 iPhone SDK 3.0 베타를 공개했고, 이어서 6월에는 정식 버전이 공개될 예정이다.
이로 인하여 모바일 디바이스 개발자들이 양분될지도 모르지만, 이는 우려일거라 생각된다. 현재 Apple은 10억 다운로드를 전면에 내세우며, 비지니스 모델의 우월함과 개발자들의 절대적인 지지을 받고 있다.

이에 구글은 올해를 모바일 플랫폼의 입지를 세우는 중요한 해가 될거라 예상하고 있고, 최근 한국의 삼성전자는 6월에 Google Phone을 출시하려는 계획을 가지고 있고, 며칠전에 여러 신문사들이 이에 대한 기사를 다루었다.
다음은 동아일보에 나와 있는 "삼성 '구글폰' 6월 유럽 출시"라는 기사이다.
    기사 링크: http://www.donga.com/fbin/output?f=k__&n=200904280062

그리고, 구글폰이 미국에서 100만대가 팔렸다는 기사도 접할 수 있다. 이에 대한 기사는 여기를 참조하기 바란다.

안드로이드 SDK 1.5버전의 릴리즈는 중요한 시점에 발표되었고, 이를 통해서 새로운 방향을 모색할 수 있으리라 본다.
하지만, 이를 통해 개발하기 위해서는 기본적인 시뮬레이터와 개발을 위한 디바이스의 확보가 필수적인데, 아직까지는 국내에서 언제쯤 출시될지는 미지수이다.

자바 개발자들에게는 안드로이드는 또 다른 의미로 다가 올수 있기 때문에, 새로운 기회를 모색하고 있는 자바 개발자라면, 반드시 관심을 갖을 필요가 있을 거라 생각된다. 개인적인 생각일지 모르겠지만, 이러한 기회들을 지난 20년동안 그리크게 많지 않았다. 다만 머저 앞서갔던 사람들은 그 만큼 많은 기회를 얻었다는 것이다. 왜냐하면, 초반에는 희소성의 원칙이 지배하기 때문이다. 그리고 더 많은 패러다임의 변화를 체득한 사람들은 그렇지 않은 사람보다 여유로울 수 밖에 없다. 특히 개발에 대한 애정밖에 없는 순수한 개발자라면 더더욱 그렇다. 조만간 국내에서도 안드로이드 SDK를 이용하여 개발이 가능한 환경이 찾아 올것이다.

애플이든 구글이든 한 업체가 전체 시장을 다 먹을 수는 없을 거라 생각된다.
애플이 빠르게 시작하였지만, 아직까지는 시장이 만들어지는 단계이기 때문에(단지 하드웨어만 판다고 하면 이는 전혀다르다.), 향후의 행보는 쉽게 예측하기 어렵다. 다만 애플이 App Store를 통한 비지니스 모델이 성공하면서, 기업끼리의 경쟁에서 "개인과 개인" 또는 "개인과 기업"의 경쟁 구조로 Echo System을 만들어 버렸다. 이것이 언제까지 지속될지는 알수 없지만, 지식 노동자의 개인에게 기회를 제공했다는 점에서 큰 의미를 부여할 수 있다.

아래 링크는 위 블러그에서 참조 삼아 가져온 링크들이다. 이중에는 "Android 1.5 Version Notes"는 구글의 Adroid에 대해서 관심있는 개발자라면 한번 읽어 볼만하다. 

  • Top 5 features in Android 1.5 (Cupcake)
  • 1.5 Non-Working Apps List (as of 06apr2009)
  • Android 1.5 Version Notes
  • Flashing your Android Dev Phone with a Factory System Image
  • Planet Android
  • Follow Planet Android on twitter (@droidfeed)
  • 가끔씩은 기회를 기다릴수 있는 인내와 그리고 기회에게 먼저 다가갈 수 있는 용기가 필요하다.

    :
    Posted by 행복상자

    베르나르 베르베르의 3부작 장편 소설인 "신 2"는 1부에 해당한다. 지난번에 1, 2편을 같이 신청해서 읽고 지난 주에야 2편을 읽었다. 벌써 주문한 3편을 도착했는데, 어제서야 읽기 시작했다. 최종편에 해당하는 4편은 지난 4월 22일에 발매되어서 판매되고 있다.

    3부작중에 1부의 마지막에 해당하는 "신 2"는 본격적인 신이 되기 위한 학습을 시작한다. 144명이었던 신 후보들은 어느세 100명 이하로 줄어들게 되는데, 신 후보들이 도와주어야 하는 각 부족들은 구별하기 편하도록 동물의 이름을 부족의 상징으로 사용하고 부족들이 발전하는데 영감을 얻고 있다.

    신 후보자드은 제 18의 지구의 각 민족과 부족의 부흥과 발전을 이끄는 게임의 지배자이자 신의 역할로 관여하게 된다. 하지만, 그들의 영감이 부족을 이끄는데 도움이 되지 않거나, 예외적인 상황으로 인하여 부족의 수가 기준보다 적어질때는 이들은 신 후보자의 자격을 잃게된다. 

    부족을 일으키고 흥하게 하는 방법을 여러가지가 있다.
    "쥐"부족이 택한 방법을 힘과 두려움을 이용하여 다른 부족을 정복하고, 이 들의 문물을 자기의 것으로 취하고, 인구수를 늘려가는 것이다. 약탈을 통한 힘을 키우는 것이 "쥐"부족의 방식이고, 이렇게 취한 힘과 기술을 이용하야 급 성장하고 있다. 이 부족은 극한의 경쟁을 통해서, 힘을 키우고 강력한 통치력을 가지게 된다.  이 책의 주인공인 "미카엘 팽송"이 이끄는 "돌고래"부족은 다른 방식을 취하고 있는데, 그가 선택한 방식은 다른 부족과의 평화적인 연합이었다. "돌고래"부족은 "개미" 부족과 연합하여, 서로의 장점과 물물을 공유한다. 이를 통하여 부족은 성장하고 많은 문물들을 만들어낸다.

    그 이외의 다른 부족들 역시 동물들의 이름의 통해서 부족들의 특성이 지워지며, 신 후보자들의 조정을 통해서 인구수를 늘이고 문명을 만들어가고 있다. 하지만 항상 변수는 있는법. 갑작스런 재난과 병페해는 순식간의 부족의 문명을 부수고 인구수를 줄어들게 만든다. 그리고 "쥐" 부족의 침략 역시, 이들이 그동안 만들어온 재산과 문명을 잃게 만들고, 인구수를 줄어들게 만든다. 이러한 재난에 대해서도 영감을 줄 수 있어야 하는 것 또한 "신 후보자"들의 역할이다.
    만약 잘못되어, 기준치 이하로 인구수가 줄어든다면, "신 후보자" 역시 게임에서 제외되는 책임을 져야 하기 때문이다.
     
    "미카엘 팽송"의 "돌고래"부족과 "개미"부족은 상호 협력안에서 발전을 하고 있지만, "쥐"부족의 침략을 이들 역시 피할수 없었고, 그 들을 막을 힘이 없었다. 그 들은 배를 타고 그들의 마을을 떠나게 멀리 다른 대륙으로 떠나게 되고, 그곳에서 새로운 문명을 건설하게 된다. 하지만 이들의 수는 극히 적었고, 힘도 약하였다. "미카엘 팽송"과 그의 스승인 "애드몽"은 한 밤중에 이들을 도와주기 위해서, 규칙을 어기고 부족들의 성장에 관여하게 된다. 부족을 급속도로 성장하지만, 이들의 부정이 발각되어서 "아프로 디테"는 이들이 사는 섬에 재앙을 내리고, 또다시 배를 타고 떠돌게 되는 신세가 된다. "미카엘 팽송"은 많은 아쉬움과 원망스런 마음을 "아프로디테"에게 가졌지만,  그녀를 사랑하는 그의 마음을 쉽게 버리지 못한다.  

    배를 타고 세계로 흩어져 버린, "미카엘 팽송"의 부족은 다양한 부족속으로 들어가 많은 영향을 키치지만, 이들의 삻은 결코 순탄하지 않았다. 부족의 생존을 위해서 많은 것을 주어야 하고, 기대치에 부합되는 것을 만들어 주어야만 했다.
    이는 현 지구의 어느 민족의 모습과도 비슷하다.
    "미카엘 팽송"의 마음은 누구보다도 아프고 상해있었다. "아프로디테"는 그에게 와서 "모든 것이 그를 위한 것임을 나중에 알거"라는 미묘한 뉴양스의 말로 위로하지마, 결코 쉽게 이해되지 않는 말이다.

    이 소설에는 또하나의 재미가 있는데, 그 것은 미카엘이 "수호천사"로 있을 때 그의 관리하에 있던, 3명이 다시 환생하여 태어났는데, 그 들중에 한명은 "은비"라는 이름의 재일 교포이다. "베르나르 베르베르"는 그녀을 통해서 한국에 대한 그의 생각과 지식을 드러낸다. 한국이 일본의 지배하에 있었던 적이 있었고, 일본이 저지른 만행과 "종군 위안부"에 대한 일본의 태도를 꼬집어 이야기 하고 있다. 그리고 재일교포들의 차별에 대한 이야기도 "은비"라는 어린이를 통해서 이야기 하고 있는데, 한국에 대한 저자의 애정을 읽을 수 있는 부분이다.
    "은비"는 강하고 똑똑한 아이이다. 어리지만, 사리를 분별할 수 있고, 그리고 그녀가 처했던 역경을 극복해 간다. 

    "미카엘 팽송"과 그의 친구들의 야간 탐험은 1편에 이어서도 계속 이어진다.
    신들의 세계에 어떠 비밀과 미스테리가 숨겨져 있는지, 계속되는 의문 속에서 이들의 탐험은 매일 밤 계속 이어진다. 이들은 어렵게 산에 올라서, 예기치 않은 장면을 보면서 2편이 마무리 되는데, 그 것이 무었인지는 3편을 열어보면 나온다. 그것은 거대한 눈이었다. 누구의 눈인지는 모를 거대한 눈이 그들을 지켜보고 있었다. 이에 대한 자세한 이야기는 3편을 다 읽은 후에 할 예정이다.

    개인적으로는 1편보다 2편이 더 흥미롭고, 독자를 빨아들이는 흡입력이 강했다고 생각한다.
    그래서 3편이자 2부인 "신들의 숨결"이 기대가 되는 이유이다.





     
     

    :
    Posted by 행복상자