요즘 Flex에 대한 이야기가 단연 화두이다. 누구나 아는 다국적 기업에서 야심차게 준비한 프로덕일 뿐만 아니라, 도입한 많은 회사에서 만족감을 표시하고 많은 개발자들이 관심을 가지고 있는 솔루션이다. 그러나 조금씩 어디서 부턴가 Flex가 본래의 목적과 의미에 맞지않게 변형되고 있다는 느낌을 많이 받는다. 어떻게 Flex를 사용하고 어떤 개념을 적용해야 하는지 큰 테두리 안에서 한번 얘기해 보겠다.

우선, Flex의 기원에 대해서 살펴보자.
Flex의 원래 이름은 Enterprise Presentation Server이다....
여기서 핵심은 Enterprise....라는 부분이다. 즉, 기업의 업무환경을 표현하기 위해 개발된 UI 솔루션이다.
그럼 기업 업무에 필요한 UI는 어떤것인가?
다음과 같은 몇가지 사항이 필요하다고 생각되고 Flex는 어떻게 지원하는지 살펴본다.

1. 사용자가 편하게 업무를 할 수 있게 해야 한다.
   => Flex는 C/S 어플리케이션 수준의 Interactive한 기능을 제공함으로써, 기존에 만들어진 VB, Delphi, PowerBuilder로 구성된 업무 어플리케이션의 기능을 대부분 제공한다.
2. 빠르고 쉬운 개발이 가능해야 한다.
   => MXML과 ActionScript 사용으로 UI 로직과 컨트롤 부분을 분리해 MVC 패턴을 완벽하게 지원하고, 객체지향 개념을 대부분을 구현할 수 있어 Java 개발자들이 쉽게 이해하고 코딩할 수 있다.
3. 유지보수가 편리해야 한다.
   => Enterprise 환경에서의 개발은 어플리케이션을 만들고 나면 끝이 아니다. 현업에서 피드백되는 많은 요구사항을 빠르게 반영할 수 있어야 하고 오류가 발생할 경우 빠른 수정이 가능해야한다.
   => Flex로 개발했을 경우 이러한 유지 보수에 대한 장점을 제공할 수 있고, 그 근거는 FDS를 사용하여 빠르게 비즈니스 로직과의 동기화를 이뤄낼 수 있고, 업무와 UI를 일관성 있는 J2EE 패턴으로 묶을 수 있다.
   => 따라서, Flex를 사용하는 장점을 최대한 살리기 위해선, Flex 프로젝트에는 절대 Flash 컨텐츠가 들어가면 안된다. Flash가 들어가는 순간, 유지보수의 부담은 롤러코스트가 된다.
   => 많은 Flash 업체들이 Flex를 사용하면서 Flex 어플리케이션을 Flash 어플리케이션 처럼 구성하게 되는데, 이는 당장 개발만 이쁘게 하고, 향후 유지 보수적인 측면은 책임을 지지 않겠다라는 처신으로 밖에 생각되지 않는다. Flex로 Enterprise의 모든 업무와 UI를 구성할 수 있음에도 불구하고, 자신들이 하기쉬운 Flash로 개발한다는 것은 Flex에 대한 기만행위이다.
   => 특히, 마케팅과 영업적인 이유로 Flex는 화려하다 라는 소개를 많이 했으나, Flex는 절대 화려하지 않다. 절대 화려한 UI를 위해서 Flex를 사용해선 안된다. Enterprise 어플리케이션은 업무를 빠르고 적절하게 표현하면 충분한 것이지 UI를 미려하게 할 필요가 전혀 없다. 화려한 UI 중심으로 개발할 경우 누가 어떻게 유지보수를 감당할 것인가? 화면에 Effect를 하나 더 줄 시간에 업무 분석에 시간을 더 사용하라.
 4. SI 솔루션과의 통합이 유연해야 한다.
   => 기업의 업무는 하나의 솔루션으로 이루어 지는것이 아니다. 따라서 수많은 구성요소와의 빠르고 편리한 통합을 할 수 있어야 하고, Flex는 표준을 지키는 어떠한 솔루션과도 쉽게 연동이 가능하다. 쉽게 말해서 Java 표준을 지키는 모든 형태의 솔루션과 통합이 가능하다.
   => Flex를 사용했을때 시스템 통합과 관리를 저해하는 요소 중 하나라고 할 수 있는 화려한 UI는 다시한번 지양해야 할 요소라고 말하고 싶다. 업무에 맞춰 UI를 조립하는 것은 당연하다. 그러나 여러가지 효과가 들어가있는 UI 때문에 업무와의 통합이 어려워 지고 업무의 인터페이스를 Flex기준으로 맞춘다면, 어떤것이 주이며, 어떤것이 부인지를 한번만 생각해본다면 바로 정답이 나올 것이다.

위에 열거한 내용들을 기준으로, 그럼 누가 Flex를 개발해야하는가...
간단명료하게 정리해보겠다.
1. Flash와 ActionScript와 약간의 웹 language(ASP, PHP) 정도만을 아는 Flasher(?)들은 Flex를 하지말기를 부탁드린다. 특히 객체지향 개념과 디자인패턴, Enterprise Architecture에 대해 모르는 사람이라면 제발 Flex 개발을 한다고 나서지 않길 바란다(물론 이와 같은 개념에 대한 학습을 하시는 분은 예외다.)
2. Java, C++, C/S 개발툴(VB, Delphi, PowerBuilder, MFC)를 해보신 분은 적극 추천한다. 여러분들이 알고 있는 지식을 대부분 활용할 수 있는 환경을 제공하고 있다.

개인적인 의견으로, Flex는 Flash를 했던 사람의 영역이 아니다. 최근 들려오는 Flex에 대한 부정적인 인식과 실폐사례를 보면 Enterprise 환경에 대한 이해가 없는, Java 개발 경험이 없는 업체들이 화려한 UI만을 무기로 시장에 뛰어 들어 개발을 한 결과다라는 것이 중론이다. Flex는 단순히 UI를 만들면 끝나는 것이 절대 아니다. 기업의 업무 환경을 이해하고 거기에 가장 적합한 표현을 하기위해 도입하는 것이지, Effect 클래스 하나를 잘 써서 사용자에게 시각적인 즐거움을 주기위해 나온 솔루션이 절대 아니다. 화려한 UI를 강조하는 사람들은 정말 부탁이니 당신들이 유지보수를 하는 상황에 놓여있다는 생각을 단 한번만이라도 해보고 개발하자. 그럼 절대 Flex는 화려한 UI 솔루션이다라는 말을 입밖으로 할 수 없을 것이다. 결론적으로 Flash 했던 사람은 Flash 세상에서 놀고, Flex는 Enterprise를 잘 알고 있는 개발자들이 했으면 하는 바램이다.

written by 신호승(동부 CNI)



Posted by 알 수 없는 사용자