출처 : http://2005elc.elancer.co.kr/eTimes/page/eTimes_view.html?str=c2VsdW5vPTQyOTI= 1. Cairngorm Framework란 무엇인가 | ||
2006/11/28 | ||
| ||
■프레임워크인 Flex에 프레임워크를 추가할 필요가 없다는 오해 Cairngorm Framework란 Macromedia Flex(이하, Flex)를 사용한 애플리케이션에서의 클라이언트 측의 프레임워크입니다. Flex는 presentation layer만을 대상으로 하는 제품이기 때문에 Flex 애플리케이션을 개발할 때 비즈니스 층에 Spring나 Seasar 등의 프레임워크를 적용하는 경우도 많을 것이라 생각합니다. 또, Flex와 같은 presentation layer의 프레임워크인데 기존의 애플리케이션을 살리기 위해서 Struts를 Flex와 병용시키는 케이스도 있다고 생각됩니다. 이와 같이 서버 사이드에 프레임워크를 적용하는 경우는 있어도 클라이언트 측에 프레임워크를 적용하는 경우는 거의 없는 듯합니다. 「원래 Flex의 구조 그 자체가 프레임워크이기인데 더 이상 어떤 프레임워크를 넣으라는 것인지?」라든가 「Flex 애플리케이션의 클라이언트 측에 적용할 수 있는 프레임워크는 없지않은가? 들은 적이 없는데」라고 대부분 생각하지 않을까요. 본 연재에서는 Cairngorm Framework를 사용하여 Flex 애플리케이션을 구축하는 방법을 샘플 애플리케이션의 작성을 통하여 5회에 걸쳐 이야기해보도록 하겠습니다. 제1회는 Cairngorm Framework의 개요로서 Cairngorm Framework란 무엇인지, 그리고 Cairngorm Framework의 특징과 이용할 때의 장점 등에 대해서 이야기하고자 합니다. ■Cairngorm Framework란 무엇인가 Cairngorm Framework란 앞서 이야기했던 것처럼 Flex 애플리케이션에서의 클라이언트 측 프레임워크입니다. 오픈 소스이기 때문에 누구든지 무상으로 사용할 수 있습니다. 또, Apache License 2.0에 배포되어 있기 때문에 상용 이용도 가능합니다. 스코틀랜드에 있는 iteration::two라는 회사의 Steven 웹ster를 중심으로 개발되었습니다. 작년, Macromedia(현 Adobe)가 이 iteration::two사를 매수하여 Flex의 새 버젼인 Flex 2에는 Cairngorm Framework의 아키텍쳐가 조금 들어 가는 것이 아닌가 생각되기도 합니다. 최근에는, Steven씨가 미 Macromedia의 웹 사이트에 Cairngorm Framework에 관한 기사를 기고하고 있어 Macromedia도 Cairngorm Framework에 주목하고 있는 모습이 발견 할 수 있습니다. Cairngorm Framework는 클라이언트 측의 프레임워크이기 때문에 동작환경은 Tomcat 등의 애플리케이션 서버 상이 아닌 웹 브라우저 상의 Flash Player가 됩니다. 또, Struts 등의 웹 애플리케이션 프레임워크와 달리 화면 제어나 확인, 예외 핸들링이라는 애플리케이션 개발을 하기 위한 기반의 기능을 제공하는 프레임워크가 아닙니다. 아키텍쳐를 통일하기 위해서 처리의 골조만을 제공하는 프레임워크입니다. 이 점에 대해 Steven씨는 다음과 같이 이야기합니다※1.
Cairngorm Framework는 Steven씨의 말을 빌리자면 “Architectural Framework”로 분류됩니다. Cairngorm Framework의 아키텍쳐에 대해서는 이후의 연재에서 자세히 이야기하도록 하겠습니다.
|
2. Cairngorm Framework의 특징 |
2006/11/28 |
|
■Cairngorm Framework의 특징 그러면, 다음으로 Cairngorm Framework의 특징에 대해서 보도록 하겠습니다. 객체 지향 Cairngorm Framework는 모두 Action Script의 클래스 또는 인터페이스로서 작성됩니다. 스크립트라고 하면 수속형 프로그래밍을 이미지화하기 쉽상이지만 최근에는 객체 지향 프로그래밍(OOP) 기능을 가진 스크립트 언어도 증가하고 있습니다. Flex 1.5에서 채용한 Action Script의 버젼은 2.0이지만 Action Script는 버젼 2.0부터 OOP에 대응했었습니다. 그 때문에, 버젼 1.0까지는 수속형으로 밖에 쓸 수 없었던 Action Script도 Java나 C#과 같이 클래스나 인터페이스를 정의한다고 한 것이 가능해졌습니다(물론, 종래처럼 수속형으로 쓸 수도 있습니다).또한, Ruby On Rails의 등장으로 인해 현재 인기 높은 Ruby나 웹 사이트의 구축에 자주 사용되는 PHP도 스크립트 언어이며 OOP에 대응하고 있습니다. 디자인 패턴의 콜라보레이션 Cairngorm Framework는 앞서 이야기한 것처럼 완전히 객체 지향에 근거하고 있습니다. 그 때문에, Java 등에서 친숙한 디자인 패턴(주로 J2EE 패턴 )을 많이 이용합니다. Cairngorm Framework의 클래스를 보면 “Command”, “Service Locator”, “FrontController”, “BusinessDelegate” 등 패턴명이 그대로 클래스명이나 인터페이스명이 되어 있음을 알 수 있습니다. 이벤트 리스너 모델 이벤트 리스너 모델이란 이벤트를 발생시킬 가능성이 있는 객체를 리스너에 등록해 두고 마우스 클릭 등의 이벤트가 발생했을 경우 이벤트의 발생을 리스너에 통지하여 리스너에게 처리를 위양시키는 방식입니다. 리스너(Listener)는 그 이름 그대로 이벤트의 발생을 묻는(포착한다) 객체입니다. 예를 들면, Visual Basic에서는 버튼 안에 onClick 등의 이벤트를 핸들링하는 메소드가 있어서 그 메소드에 버튼을 클릭했을 때의 처리를 썼습니다. 그러나, 이것으로는 뷰인 버튼 안에 버튼을 눌렀을 때의 논리가 비집고 들어가 버려서 뷰와 논리가 밀접하게 관계되어 버립니다. 이벤트 리스너 모델에서는 이벤트가 발생하면 등록처의 리스너가 그 이벤트를 처리하므로 이벤트를 발생시키는 뷰와 이벤트 처리의 논리를 떼어냄으로써 성과 객체의 독립성이 높아집니다. Flex 자체에도 이벤트 리스너의 구조는 지원되지만 Cairngorm Framework에서는 그것을 보다 쉽게 사용하도록 하여 프레임워크로서 제공하고 있습니다. 간편하고 도입이 간단 Cairngorm Framework는 앞서 이야기한 것처럼 특정 애플리케이션 서비스를 제공하기 위한 라이브러리 군등을 가지지 않으며 처리 골조만을 제공하는“Architectural Framework”이기 때문에 매우 간편한 프레임워크로 되어 있습니다. API 리퍼런스로 모든 클래스를 보더라도 단 12개 밖에 없습니다. Cairngorm Framework를 사용하기 위해서 필요한 것은 프레임워크를 구성하는 클래스를 아카이브한 파일과 Cairngorm Framework의 설정 파일의 2개뿐입니다. 도입은 이것들을 애플리케이션의 소정의 위치에 두고 Flex의 설정 파일을 조금 변경할 뿐이므로 매우 간단합니다. |
3. Cairngorm Framework이용의 장점 |
2006/11/28 |
|
■Cairngorm Framework이용의 장점 Cairngorm Framework의 특징을 알아보았으므로 다음으로 이용하는 장점에 대해서 보도록 하겠습니다. ·객체 지향의 혜택을 누릴 수 있다 Cairngorm Framework는 완전히 객체 지향에 근거하기 때문에 Java나 C# 등과 같이 계승, 캡슐화, 다형성 등 객체 지향의 테크닉을 사용할 수 있습니다. 예를 들면, 각 클래스에 공통적으로 구현된 처리를 부모 클래스로서 잘라내고 계승을 사용하여 서브 클래스에서는 부모 클래스와 차이가 나는 부분만을 코딩 하면 부모 클래스의 재이용성이 높아집니다. 또, 다형성을 사용하여 인터페이스와 구현을 나누는 프로그래밍을 하면 구현 클래스를 그 후에 쉽게 바꿀 수 있어 보수성이 높아집니다. ·아키텍쳐가 통일된다 Flex에 한정하지 않고 리치 인터넷 애플리케이션(RIA)에 대해서는 HTML 베이스의 웹 애플리케이션과 달리 클라이언트 측에도 화면 회전의 논리나 클라이언트 측에서만 완결할 수 있는 비즈니스 논리를 구현합니다. 종래의 Flex 애플리케이션의 클라이언트 측 개발에서는 Flex의 구조만을 사용하여 개발하거나 혹은 독자적인 체제를 만들 수 밖에 없었습니다. 독자적인 체제라고 해도 Java가 아닌 Action Script로 만들어야 하기 때문에 “처리의 골조”를 만들어 내는 것은 상당히 어려운 것이라고 생각합니다. 소규모의 애플리케이션을 소수의 인원으로 개발하는 경우라면 Flex의 구조만으로 개발해도 그다지 문제는 없다고 생각합니다. 그러나, 대규모 애플리케이션을 다수의 인원으로 개발하는 경우에는 어떤 골조가 없으면 개개의 개발자가 자유롭게 코딩하여 각각의 아키텍쳐를 만들어 낼 수 있습니다. 그 결과 “만든 사람 밖에 알 수 없는 막연한 코드”가 양산되고 맙니다. 이것으로는 프로그램이 만든 사람에게 의존하게 되어 보수성이 낮아집니다. Cairngorm Framework는 “Architectural Framework”이며 처리의 골조를 정하고 있기 때문에 개개의 개발자는 체제적으로 결정된 아키텍쳐에 따라서 개발을 하게 됩니다. 아키텍쳐에 따른 개발이란 예를 들면, 체제의 클래스를 계승한 메소드를 오버라이드하거나 체제의 인터페이스를 구현한 메소드를 구현하는 것입니다. 따라서, 프로그래머가 자유롭게 코딩하는 것을 제한하여 프로그래밍에 관해서 개인의 재량이 비집고 들어갈 여지가 적어지기 때문에 누가 만들든지 아키텍쳐가 통일되어 품질의 균일화를 바랄 수 있습니다. 또, 프로그램으로부터 속인성이 배제되기 때문에 보수성의 향상에도 연결됩니다. ·Java 엔지니어의 ActionScript 학습 비용을 줄일 수 있다 Flex 애플리케이션 개발에서는 클라이언트 측을 MXML과 ActionScript를 이용하여 만들 필요가 있습니다. 클라이언트 측의 논리에 대해서는 ActionScript를 사용하고 쓰기 때문에 ActionScript를 얼마나 잘 다룰지가 Flex 애플리케이션 개발에서 하나의 포인트나 됩니다. ActionScript는 JavaScript의 국제표준규격인 ECMA에 준거하기 때문에 JavaScript와 문법에서 매우 비슷하며 JavaScript의 스킬을 가지고 있으면 ActionScript도 이해하기 쉬운 경우가 있습니다. 그러나, Flex가 J2EE 애플리케이션 서버 상에서 동작하는 경우도 있으며 Flex 애플리케이션 개발을 실시하는 개발자의 상당수는 Java 엔지니어이며 그만큼 JavaScript에 능통한 사람이 많지 않은 것이 현실입니다. 그러한 Java 엔지니어의 입장에서 ActionScript를 마스터 하는 것은 상당한 시간이 걸리며 학습 비용이 비싸다고 말할 수 있습니다. Cairngorm Framework를 사용하면 Java 엔지니어에게 친숙한 객체 지향이나 디자인 패턴(J2EE 패턴 ) 등에 기초를 두고 개발을 할 수 있기 때문에 이미 가지고 있는 개발 노하우를 살릴 수 있으며 ActionScript의 학습 비용를 저감시킬 수 있습니다. |
4. Cairngorm Framework의 향후 | |
2006/11/28 | |
| |
■Cairngorm Framework의 향후 Cairngorm Framework는 현재 version 0.99가 정식판으로서 릴리스되어 있으며 iteration::two사의 웹 사이트에서 다운로드할 수 있습니다. Version 0.99는 ActionScript 2.0의 문법으로 쓰여져 있기 때문에 ActionScript 2.0을 채용하고 있는 Flex 1.5에는 적용할 수 있지만 Flex의 새로운 Flex 2에서는 ActionScript의 버젼이 3.0으로 업되기 때문에 Flex 2에는 적용할 수 없습니다. 그래서, Cairngorm Framework를 Flex 2에서도 적용할 수 있도록 ActionScript 3.0의 문법으로 고친 version 2.0이 얼마전 알파판으로 릴리스되었습니다. 이것은 iteration::two사의 블로그 사이트에서 다운로드할 수 있습니다(February 01, 2006 엔트리에 게재되어 있습니다). 필자가 원시 코드를 보고 내용을 확인해 보았는데 version 0.99와 비교해서 이벤트의 취급이나 메타 데이터의 사용 등 바뀐 부분도 있었지만 아키텍쳐에서의 큰 변화는 없었습니다. 다만, 문법이 상당히 변했기 때문에 외관적으로 많이 바뀐 인상을 줍니다. Steven에 의하면 Flex 2의 릴리스를 향하여 진행하고 있으며 Cairngorm Framework 2.0도 정식 릴리스 준비를 하고 있습니다. Flex 자체에 Cairngorm Framework의 아키텍쳐가 포함되는 것도 생각할 수 있으므로 향후의 동향에 주목하고자 합니다. 이상으로 이번 회에는 Cairngorm Framework의 개요에 대하여 이야기해보았습니다. Flex 애플리케이션 개발에서 발목을 잡고 있던 클라이언트 측 개발에 Cairngorm Framework를 사용하면 ActionScript에 익숙하지 않은 Java 엔지니어들도 Flex 애플리케이션을 잘 만들 수 있을 것 같은 생각이 듭니다. 다음 회에는 Cairngorm Framework의 인스톨과 Eclipse 상에서 개발하기 위한 준비 등 개발 환경의 구축에 대해 해설하고자 합니다.
|