2008년 6월 18일 수요일

Mate Flex Framework

Mate ( 'mah-tay' '마떼'로 발음합니다. 'latte' '라떼' 처럼... )
  • 홈페이지 : http://mate.asfusion.com/
  • What is Mate?

    Mate is a tag-based, event-driven Flex framework.

    Flex applications are event-driven. Mate framework has been created to make it easy to handle the events your Flex application creates. Mate allows you to define who is handling those events, whether data needs to be retrieved from the server, or other events need to be triggered.

    Mate는 MXML 태그를 사용한다는 점에서 AS를 사용하는 다른 플렉스 프레임워크와 차별화 됩니다.
    이벤트 드리븐 방식을 사용하여 뷰와 비즈니스로직, 그리고 모델간의 의존 관계를 끊고,
    뷰와 모델, 뷰와 뷰들의 통신 메카니즘을 Event Maps에 정의하여 중앙에서 관리하므로,
    이벤트 방식 구현시 발생할 수 있는 문제들을 최소화 해 줍니다.
    무엇보다 UI의 계층구조에 구애받지 않고 이벤트를 처리할 수 있게 해 줍니다.
    또한 이벤트 발생시 연쇄적으로 처리해야 하는 작업들을 쉽게 정의할 수 있습니다. 물론 상위 작업의 결과값을 다음 작업으로 넘겨줄 수도 있습니다. (이 모든 것들이 MXML 태그로 가능합니다!)
    원하는 클래스를 런타임시 생성하여 사용할 수도 있고, 런타임시에 모델과 뷰를 바인딩할 수도 있습니다.(Dependency Injection)

  • 작동방식
    • 뷰에서 이벤트가 발생합니다.(예를들어 조회 버튼을 클릭)
    • Event Maps으로 이벤트가 전달됩니다.
    • Event Maps에 정의된 내용에 따라 서비스를 호출하거나 비즈니스 로직을 실행합니다.
    • 다시 뷰에 데이터를 전달하기 위해 이벤트를 발생시킬 수도 있고, injection을 이용하여 직접 모델과 뷰를 바인딩할 수도 있습니다.
  • 생각해 볼 점

    • 프레임워크 사용에 익숙하지 않을 경우 약간의 적응기간이 필요할 수 있습니다.(물론 Mate가 배우기 어렵지는 않지만, 그냥 사용하는 것과 '제대로' 사용하는 것은 큰 차이가 있겠죠)
    • Event Maps이 핵심입니다. 먼저 어플리케이션에 사용될 이벤트들을 정리하고 MVC패턴에 따라 디자인 하기 위해 생각할 시간이 필요할 수 있습니다.
    • 런 타임 오류 발생시 디버깅하기 힘들 수 있습니다. Event Maps에서 호출될 메소드명이나 바인딩할 프로퍼티명을 스트링으로 넘겨주기 때문에 컴파일시 에러를 잡아낼 수 없고, Mate에서 제공하는 디버깅 기능을 사용하더라도 FlexBuilder의 IDE 기능에 통합된 것이 아니라 콘솔 창에 출력되는 메시지를 분석해야 하는 번거로움이 있습니다.
  • 참고
    Flex로 개발시 프레임워크가 불필요하다는 발표자료도 참고하세요.
    결론은 프레임워크보다는 패턴을! (하지만 이 발표를 한 발표자도 Mate 발표를 보고 감동했다는...)

댓글 없음: