Kenny's Java Programming

화요일 1월 05, 2010

Flex Ria App. Architecture(Flex + Spring + iBatis)

Flex RIA App. Architecture Image

Flex RIA Architecture 개요

다음은 일반적인 상황에서의 Flex RIA 아키텍처를 간단히 정리해 둔 것이다. Flex는 RIA 플랫폼이기 때문에 기존 Web Application Architecture와는 구조가 달라진다. 기존의 웹 애플리케이션이라면 사용자에게 보여주는 화면과 사용자와의 상호작용을 서버에서 처리하지만, Flex에서는 그럴 필요가 없기 때문이다. Flex는 웹 브라우저 안에서 동작할 뿐 개념상으로는 독립적인 애플리케이션과 비슷하다. 흔히 3계층 프로그래밍에서의 Presentation이 Flex로 완전히 옮겨가므로 Server 단에서는 Presentation Framework가 필요하지 않다. 그 역할은 Flex에서 대신해야 한다. 다만, Adobe에서 기본으로 제공하는 것은 Cairngorm Framework인데 대단히 표준형의 프레임워크이지만 구조가 복잡하다. 

사용 Framework, Tools

Presentation#

  • Flex 3.0.x
  • Cairngorm Framework(옵션)

Business#

  • Spring 2.5.x
  • BlazeDS
  • Flex Messaging

Persistence#

  • iBatis 2.3.x

Tools#

  • Eclipse
  • Flex Builder

etc#

  • Maven(옵션)
  • Ant(옵션) 

기본 Architecture 

장점#
표준적인 3계층에 가장 가까운 구조로 기존의 Web Application 아키텍처를 최소한으로만 수정한 구조이다. Gateway나 메시지 브로커 개념을 활용하면 비즈니스 로직을 건드리지 않고 Flex 뿐 아니라 WebService, REST와 같은 다양한 프로토콜을 지원할 수 있다.
  • Spring에서 Flex BlazeDS 연동을 지원하는 라이브러리가 있으므로 설정하기 쉬움
  • 기존 Spring 프레임워크의 강점을 그대로 가져갈 수 있음
  • Business Logic을 변경하지 않고 Gateway 개념을 통해서 다양하게 서비스할 수 있음. 예를 들어 SOA, REST, RPC 등등.
  • Query, 비즈니스 로직이 그대로 서버에 있으므로 보안 문제에 있어서도 안전한 편

단점#

복잡한 구조로 숙력된 개발자가 아니라면 생산성이 떨어질 수 있다. 특히, Flex Cairngorm 프레임워크는 너무 복잡하여 단순화한 방식으로 사용할 필요가 있다.
  • 복잡한 구조
  • DB나 Business가 변경될 경우 수정해야 할 파일이 엄청나게 많다(10여개)
    VO/DTO, SqlMap, DAO, Service Object, Service, Command 등등

참고#

  • Flex가 사용하는 ActionScript는 생각보다 유연한데다 프로그래밍하기 편하다. 특히, 자바 프로그래머라면 쉽게 익숙해질 수 있을 것이다. 위에서 얘기한 바대로 Cairngorm 프레임워크를 커스터마이징하는 것도 꽤나 쉽다.
  • FlexBuilder 또한 Eclipse 기반의 개발툴이므로 쉽게 익숙해진다. 다만, 꽤나 무거워서 사양이 낮은 컴퓨터에서는 부담이 된다.
  • Flash 파일은 자바 클래스파일처럼 어느 정도의 역컴파일이 가능하므로 보안에 민감한 곳이라면 주의해야 하다.
  • Flex는 Flash가 가지는 문제를 그대로 가지고 있다. 특히, 속도의 문제가 있고 메모리도 많이 소모한다. 복잡한 화면의 경우 크기도 꽤 커진다.

 


Comments:

Post a Comment:
  • HTML Syntax: Allowed

Feeds

Links

Navigation