달력

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

'아키텍쳐'에 해당되는 글 13

  1. 2008.04.29 Google Gears on Mobile Devices
  2. 2008.04.13 Hello, OSGi
  3. 2008.03.29 ASP.NET MVC & Request Flow
  4. 2008.03.16 Features of the ASP.NET MVC Framework
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 행복상자
    2008. 4. 13. 23:02

    Hello, OSGi 공부하는 것2008. 4. 13. 23:02

    OSGi개발의 위한 Sample Program 예제이다. 사실 www.eclipse.org에 갔다가 관련 링크를 보고 내용을 흩어 보았는데, 쉽게 잘 설명되어 있다.
    우리가 개발할때 익히 잘아는 Hello world 예제이다. 짧지만 OSGi에 대해서 잘 배울수 있는 예제로, 이 예제는 OSGi를 이용해서 Serveice-oriented application을 만드는 방법과 ServiceFactory와 ServiceTracker Classes에 대해 설명하고 있다.

    아래 링크를 참조하여 예제를 실행하다 보면 여러가지를 배울수 있을 것이다.
     링크: Hello, OSGi, Part 1: Bundles for beginners
     
    OSGi offers the fallowing advantages:
         1. You can install, uninstall, start, and stop different modules running
             at the same time.
         2. Your application can have more than one version of a paticular module running
             at the same time.
         3. OSGi provides very good infrastructure for developing service-oriented
            applications, as well as embedded, mobile, and rich internet apps.

    이는 OSGi의 장점들이고, 이를 위해서는 OSGi 컨테이너가 존재해야 한다. EJB container나 Sevlet container과 유사하게 인터페이스에 따라 정의되고 동작되기 때문이다.

    위에 링크를 참조해서 공부한다면, 개념을 익히는데 큰 어려움은 없을것 같다.

    :
    Posted by 행복상자
    2008. 3. 29. 20:31

    ASP.NET MVC & Request Flow 좋아하는 것2008. 3. 29. 20:31

    MVC(Model-View-Controller) 패턴은 일반적으로 UI가 있는 Application에서 사용되는 패턴이다. Data와 UI를 분리하기 위한 노력들은 코드의 재 사용성을 높이고, 시스템 변경시 유연하게 수정이 가능하게 해 주므로 다양한 방법으로 Application에 적용되어 왔다.

    ASP.NET MVC

         - Model
          : 일반적으로 Application의 주 로직을 담당하고나, DB를 이용하여, Application의
            데이타를 관리하거나, Business 로직을 포함하고 있다.  
        - View
        
    : 사용자의 Interface와 연관된 부분으로, Model 데이터를 보여주거나 User의
             입력 Data를 가졍온다.
        - Controller
        
    : User와 Interaction하고 Model과 View를 통해 원하는 결과를 얻을 수 있도록
           동작을 결정한다. 결과적으로 View를 통해 Model의 내용을 볼수 있도록 도와준다.


    ASP.NET의 MVC Framework도 여타의 다른 MVC프레임워크와 대동 소이하다. 단지 Microsoft에서 공식적으로 지원한다는 것이 다를 뿐이다. 이는 분명 실행 코드와 HTML을 분리해 줘서, 코드의 가독성을 높이고, 개발 속도를 올리는데 크게 기여할 것이다.



    images/mvc.jpg
    - ASP.NET MVC Framework는 TDD를 가능하게 도와 준다. 그리고 MOC 테스트를 위한 클래스와 모듈을 Framework에 기본 탑재함으로써, 좀더 유연하게 개발을 할 수 있도록 도와 준다. 보통 테스트를 위해 새로 만들 모듀을 Http Server에 올리고 내리는 작업은 시간을 죽이는 작업들이다. 이는 Framework이 컴포넌트들 대부분이 Interface기반으로 되어 있어서 가능한 점이다.
    - 또한, ASP.NET MVC Framework는 확장 가능하고, Pluggable 하다. 이는 각 모듈들이 다른 부분에 영향없이 상용 모듈을 사용할 수 있도록 도와준다.
    - SEO(Searc Engin Optimization)와 REST를 지원한다.
    - ViewStat와 Postback를 더 이상 사용할 필요가 없다.

    Request Flow
    일반적으로 ASP.NET의 wep form Applicaton들은 URLs과 Logical Disk 상의 파일들가 Mapping해서 사용하도록 한다. 그러나 ASP.NET MVC Framwork는 URLs와 Controller를 연계하여 사용한다. 그래서 Application이 시작할 때, Url Route Rule을 등록하고, 이 Routiog Handler는 Controller에 연계되어 요청이 있을시 사용된다.

    images/request.jpg




    참조 링크: ASP.NET MVC Framework Part 1

    :
    Posted by 행복상자
    2008. 3. 16. 08:30

    Features of the ASP.NET MVC Framework 좋아하는 것2008. 3. 16. 08:30

    이른 새벽 아침부터, 노트북은 열고 ASP.NET MVC에 대한 자료들을 읽어 보았다.
    ASP.NET 3.5의 Extention 기능으로 제공할 예정이고, 기능에 대한 세부 소개는 다음 링크를 참조하면 된다.
         - ASP.NET Model View Controller Applications

    사실상, MVC 패턴은 ASP.NET에서 구현 불가능한 것은 아니였는데, 그런데 왜 갑작스럽게 ASP.NET에서 MVC를 논하냐고 이야기 한다면, 이제 MVC 패턴도 성숙기에 들어섰기 때문이 큰 이유일 것이다. 그리고 다른 이유는 ASP.NET에서도 다른 Java의 웹 프레임워크과 같이 개발자를 위한 새로운 Framwork를 제공한 필요성을 강하게 느끼고 있는 것 같다.

           - Test Faramework (Visual Studio 2008에 nUnit이 기본 제공됨)
           - Moc 객체를 쉽게 생석할 수 있도록 지원함
           - DI(Dependency Injection)과 IoC(Inversion of Control) 지원
           - SEO(search engine optimization) and REST(representational state transfer) 지원
           - Urll despatch를 위한 Controller 와 Routing

    위와 같은 내용들이 주요 특징 들이다. 자세한 내용은 위의 링크와 다음에 발취한 ASP.NET MVC Feature 참조하면 이해에 도움이 될것이다.
     
    The ASP.NET MVC framework provides the following features:

    • Separation of application tasks (input logic, business logic, and UI logic), testability, and test-driven development (TDD) by default. All core contracts within the MVC framework are interface-based and can be tested by using mock objects, which are simulated objects that imitate the behavior of actual objects in the application. You can unit-test the application without having to run the controllers in an ASP.NET process, which makes unit testing fast and flexible. You can use any unit-testing framework that is compatible with the .NET Framework.

    • An extensible and pluggable framework. The components of the ASP.NET MVC framework are designed so that they can be easily replaced or customized. You can plug in your own view engine, URL routing policy, action-method parameter serialization, and other components. The ASP.NET MVC framework also supports using existing Dependency Injection (DI) and Inversion of Control (IOC) container models. DI allows you to inject objects into a class, rather than relying on the class to create the object itself. IOC specifies that if an object requires another object, the first objects should get the second object from an outside source such as a configuration file. This facilitates testing.

    • A powerful URL-mapping component that lets you build applications that have comprehensible and searchable URLs. URLs do not have to include file-name extensions, and are designed to support URL naming patterns that work well for search engine optimization (SEO) and representational state transfer (REST) addressing.

    • Support for using the markup in existing ASP.NET page (.aspx files), user control (.ascx files), and master page (.master files) markup files as view templates. You can use existing ASP.NET features with the ASP.NET MVC framework, such as nested master pages, in-line expressions (<%= %>), declarative server controls, templates, data-binding, localization, and so on.

    • Support for existing ASP.NET features. ASP.NET MVC lets you use features such as forms and Windows authentication, URL authorization, membership and roles, output and data caching, session and profile state management, health monitoring, configuration system, the provider architecture, and other areas of ASP.NET.


     

    :
    Posted by 행복상자