달력

4

« 2024/4 »

  • 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

'분류 전체보기'에 해당되는 글 216

  1. 2008.05.03 Iron Mna을 보고...
  2. 2008.05.02 SpringSource Application Platform
  3. 2008.04.29 Google Gears on Mobile Devices
  4. 2008.04.26 Spring Framework MVC application step-by-step
2008. 5. 3. 12:38

Iron Mna을 보고... 좋아하는 것/영화 이야기2008. 5. 3. 12:38


어제는 간만에 Si-fi 영화를 한편 보았다. 올해 초에도 보고 싶었던 영화를 몇개 놓치고 말았다. 근무지가 수원을 옮겨지고 나서는 제대로 문화 생할하기가 힘들다.
어제는 샌드위치 데이라 맘 편한 하루를 보냈다. 하고 싶었던거, 미루어 놓았던거 하나씩 하면서, 살아있는 즐거음을 맘껏 느꼈다. 역시 삶의 일탈은 필요한가 보다. 가끔씩은...

나는 예전에 Wife에게 "찰리의 초콜릿 공장"이라는 영화를 블럭버스터라고 소개하고 같이보았다가 두고두고 놀림을 당하는 중이다. 그게 애들 영화지 어떻게 블럭버스터나고 지금도 영화 이야기만 나오면, 한 마디씩 듣는다. 광고지에 블럭버스터라고 써있고, 사실 엄청난 초콜릿 궁전이 무너지는거 보지 안았냐고 반문하지만, 소용없다. 워낙 궁색한 변명이라. ^^;;;

사실 "팀 버튼"감독의 영화들은 독특하다. 나름대로 국내에도 많은 팬들을 가지고 있지만, 영화의 분위기와 느낌은 일반인들에게 어색함을 안겨준다. 어두운 톤의 색과 분위기를 자주 사용하는 것도 그렇고...

그래도 어제는 선전을 했다. 아이언맨을 찰리와 초컬릿공장과 다를바 없을 거라 생각했던, 내 옆의 비평자에게 즐거움을 주었으니 말이다.

영화의 스토리는 전반적으로 빠르게 진행되고 군더더기가 없다. 원작이 만화인 관계로 자칫하면 주인공의 탄생을 설명하기 위해서 지루할 수도 있었는데, 필요한 부분들을 적절하게 보여주면서, 이야기를 잘 끌어갔다. (이를 편집을 잘 했다고 해야하나?)
전체적인 영화 상영시간은 2시간 정도인데, 이야기와 스토리를 잘 끌고 나간 힘이 보여지고, 작년의 트랜스포모를 보면서 보여주었던 로봇간의 결투씬도 영화안에 흠 잡을 곳 없이 잘 보여주고 있다.
주인공의 심경의 변화를 보여주는 스토리도 반드시 힘을 잡겠다면 할 수 없지만, 나름 대로 설득력있게 그려 보여주고 있다. (우리나라의 심 감독님이 이 부분을 배울수 있다면, 아니 언젠가는 보여주겠지라는 기대감도 갖는다.)
그러고 적절하면서 기대를 져버리는 유머라인, 예상을 깨는 반전들이 숨어 있다.

Iron Man Movie Poster Click for Fullsize Image

슈퍼맨처럼 날고 싶은 마음이 들었다.


아래는 Marvel사의 원작 만화의 표지이다.

Iron Man (Vol 3) 30.jpg


Iron Man의 탄생에 관한 이야기는 여기에 가면 볼수 있다.
Tony Stark, mechanical prodigy, and his prized invention.

 

:
Posted by 행복상자

이미 아는 사람들은 알겠지만, Spring Framework를 만들 "로드 존슨"의 회사명은 "Interface21"에서 "SpringSource"로 사명을 바꿨다. 그리고 더욱 왕성한 활동을 보여주고 있다.

오늘 소개하는 SpringSource Application Platform은 SpringSource의 팀 블러그에 올라온 것으로 beta release를 공개한다는 내용이다.
요즘 사내에서 개발하고 있는 Framwork는 OSGi를 기반으로 설계를 진행중이고 이를 위해서 스프링-DM을 사용하려고 한다. 그래서 관심을 갖을 수 밖에 없다.


Tomcat과 Spring을 통해서 lightweight platform을 구성이 가능하지만, modularaty(모듈화)와 non-web application에 대한 지원에 대한 단점을 안고 있다.
이를 개선하기 위한 노력으로 시작된 것이다.

아래는 Application Platform의 구성을 설명해 주는 그림인데, 여기서 중요한 역할을 하는 것은 SpringSource DMK(Dynamic Module Kernel)이다.
SpringSource Application Platform Architecture
DMK가 동작하기 위해서는 최소한의 번들들이 있어야 된다고 한다. MDK는 구동을 위해서 꼭 Tomcat을 필요로 하지도 않지만, Tomcat는 기본적으로 포함되어 있고, 언제든지 설정을 통해 넣거나 뺄수 있다. 그러나 Tomcat을 제거한다는 것은 Web Module의 Deplroy를 하지 않는 다는 것을 의미하므로 이점은 반드시 유의해야 한다.

다음은 Platform에서 지원하는 3가지 패키징 및 Deploy 방법이다.

Building Applications

  • The Platform supports applications packaged in three forms:

    1. Java EE WAR
    2. Raw OSGi bundles
    3. Platform Archive (PAR)

먼저,  WAR파일을 통해서 배포가 가능한데, 이는 배포 시점에 OSG번들과 Tomcat에 설치가 된다.
둘째로, OSGi 번들은 직접 Platform에 배포가 가능하며, Import-Package and Require-Bundle를 이용해서 번들간의 deendency의 선확인이 가능하다.
마지막으로 PAR 포맷은 Platform으로 deploy할 때 수동으로 설치가 쉽고, 로드 될때 다른 서비스와 충돌 또는 이중으로 서비스가 동작하는 것을 막아주고, Application에서 사용되는 모듈들에 대해 로직컬하게 Grouping이 가능하게 만들어 주는 잇점을 가지고 있다.
아래는 모듈간의 RAR Application의 전형적인 예이다.
PAR File Structure
Dependency는 일반적으로 Import-Package & Export-Package를 이용하여 표시한다. 그러나, Third-party 라이브러리를 이용하기 위해서는 이 것말고도 더 많은 라이브러리를 요청하는 경우가 있다. 이를 개선하기 위해서, Platform에서는 Import-Bundle 과 Import-Libary을 이용하여. Import-Bundle 은 추가적으로 다른 third-party 라이브러지를 참조할 수 있게 된다.
 


 

:
Posted by 행복상자
2008. 4. 29. 23:12

Google Gears on Mobile Devices 좋아하는 것/Google2008. 4. 29. 23:12

작년에 Google gears에 대해서 잠시 분석해 본적이 있다. 그리고 몇몇 다른 플랫폼에서 그 아키텍쳐의 유사함과 기능에 대해서 자료를 조사해 보았었다.
MS의 Silver light, Sync Framework과 Adobe의 Air가 그 것이다. 그래서, 올해도 일부러 Adobe의 Air/Flex의 발표장을 찾아 나섰다.

동기화에 대한 개념은 크게 어렵지 않다. 그러나 왜 갑자기 이슈가 되었을 지는 생각해 볼 문제이다. 이는 향후 개발 방향을 크게 좌우 할 수 있다. 현재의 추세대로라면, 앞으로는 Moblie이 PC보다 더 큰 시장이 될 것이 틀림없다.  그리고, 이는 현재의 개발 방법론을 바꿀지도 모른다. 그러나 네트워크에 연결되는 순간 배터리의 사용량을 급격히 늘어난다. 필요할 때만 네트워크에 연결한다면 배터리의 사용시간을 늘릴수 있을 것이다. Google은 이러한 관점에서 gears의 구조를 설계 했다.

구글 gear의 Architecture는 정말 Simple하다. 누구나 생각할 수 있는 구조이고, 쉽게 구현할 수 있고, 쉽게 이해할 수 있는 구조이다. 하지만 콜롬부스의 달걀은 도전과 두려움의 극복이 우선되어야 한다.

  • isolating the data layer
  • deciding which features to implement offline (connection strategy)
  • deciding on the app's modality
  • implementing data synchronization

    Background sync architecture

    이번에 다시 Google gears에 대해서 다시 한번 볼 기회가 있어서 Google code를 뒤져 보았더니, 모바이 디바이스를 위한 Google gears에 대한 자료가 있어서 살펴보게되었다.

    사실 Google gear의 궁국적인 목적은 모바일 디바이를 위한 것이다. 내부에 내장되어 있는 Database를 이용하여 인터넷/네트워크가 되지 않는 환경에서도 인터넷 어플리케이션은 자유롭게 이용할 수 있도록 google gears는 도와준다. 그리고 인터넷/네트워크가 연결될 때, 서버와 자료를 자동으로 동기화 한다.  

    이번에 내가 찾아 참고한 자료는 모바일에 Google gears를 데스크탑 PC에서와 같이 윈도우즈 모바일 5,6에서 Application을 사용가능하게 만들어 준다. 그러나 여기에는 몇 가지 제약 사항들이 있다.

    CSS와 Dom object Model과 ActiveX등 제약사항이 있는데, 이는 Windows Mobile 5,6의 Web browser가 데스크답 PC의 그것과 기능과 구조가 다르기 때문이다.

    관련된 제약 조건들은 아래와 같다.

    Windows Mobile 5 and 6 Limitations

    Limitations to consider when writing AJAX applications for Windows Mobile 5 and 6 devices, and some workarounds, are provided below:

    CSS

    Neither Windows Mobile 5 nor 6 support the CSS position: style attribute. This means text is not positioned in any way, it simply appears within the normal flow of an HTML document.

    Document Object Model

    Document Object Model (DOM) limitations, and example workarounds, are provided below:

    Accessing a Document Element

    Windows Mobile 5 does not support document.getElementById(), though Windows Mobile 6 does. The following code snippet provides a workaround using the document.all DOM property.

  • :
    Posted by 행복상자

    Spring MVC는 Spring Framework중에서 웹 개발을 쉽게 할 수 있도록 도와준다.
    국내에서 출판된 책들은 Source를 제공하기는 하지만, 책을 보고 Source를 실행하려고 하면 잘 동작하지 않는다. 물론 손으로 직접 쳐서 입력할때 오타가 있기는 하지만, 서버의 설정과 환경 구성에 대해서 충분하게 설명해 주지 못하기 때문이다.

    이를 위해, www.springframework.org에서는 제공하고 있는 Spring MVC를 위해서, Developing a Spring Framework MVC application step-by-step
    라는 제목으로 Spring MVC개발에 대해 설명하고 있다. 2003년에 작성된 것과 올 2008년에 작성된 것이 있다.

    예제는 초보자를 위해서, 개발 환경 설정과, Ant의 Build.xml 만들기와 사용법등을 부과적으로 설명하고 있다. Ant를 사용하는 법도 부과적으로 얻을 수 있다. 이에 대한 목차는 다음과 같다.(2003년도 작성)

    [목차] 
    Part 1 – Basic Application and Environment Setup
    Part 2 – Developing and Configuring the Application
    Part 3 – Adding Unit Tests and a Form to the Application
    Part 4 – Implementing Database Persistence

    위는 2003년도에 작성된 예제와 Sample이고 tex t위주의 설명으로 되어 있지만,  MVC개발을 위한  설정 XML 파일을 어떻게 작성해야 하는지, 그리고 Dispatcher와 Controller 그리고, View에 대한 코드들에 대해 쉽게 이해할 수 있도록 예제와 더불어 쉽게 설명하고 있다.

    그리고, 2008년도에 작성된 Spring MVC step-by-step의 목차는 다음과 같은데, 설명과 함께 캡처한 이미지를 제공하여 설명을 돕고 있다.

    [목차]
     

    Overview
    1. What's covered
    2. Prerequisite software
    3. The application we are building
    1. Basic Application and Environment Setup
    1.1. Create the project directory structure
    1.2. Create 'index.jsp'
    1.3. Deploy the application to Tomcat
    1.4. Check the application works
    1.5. Download the Spring Framework
    1.6. Modify 'web.xml' in the 'WEB-INF' directory
    1.7. Copy libraries to 'WEB-INF/lib'
    1.8. Create the Controller
    1.9. Write a test for the Controller
    1.10. Create the View
    1.11. Compile and deploy the application
    1.12. Try out the application
    1.13. Summary
    2. Developing and Configuring the Views and the Controller
    2.1. Configure JSTL and add JSP header file
    2.2. Improve the controller
    2.3. Decouple the view from the controller
    2.4. Summary
    3. Developing the Business Logic
    3.1. Review the business case of the Inventory Management System
    3.2. Add some classes for business logic
    3.3. Summary
    4. Developing the Web Interface
    4.1. Add reference to business logic in the controller
    4.2. Modify the view to display business data and add support for message bundle
    4.3. Add some test data to automatically populate some business objects
    4.4. Add the message bundle and a 'clean' target to 'build.xml'
    4.5. Adding a form
    4.6. Adding a form controller
    4.7. Summary
    5. Implementing Database Persistence
    5.1. Create database startup script
    5.2. Create table and test data scripts
    5.3. Add Ant tasks to run scripts and load test data
    5.4. Create a Data Access Object (DAO) implementation for JDBC
    5.5. Implement tests for JDBC DAO implementation
    5.6. Summary
    6. Integrating the Web Application with the Persistence Layer
    6.1. Modify service layer
    6.2. Fix the failing tests
    6.3. Create new application context for service layer configuration
    6.4. Add transaction and connection pool configuration to application context
    6.5. Final test of the complete application
    6.6. Summary
    A. Build Scripts


    위의 순서대로 예제를 실행해 보았는데, 어렵지 않게 스프링 MVC에 대해 이해할 수 있었고, 개발시 환경 구성과 설정방법들에 배울 수 있었다.



    :
    Posted by 행복상자