
요즘 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)
최근 기사## 블로터닷넷 댓글 정책 ##
블로터닷넷은 댓글기능을 제공하지 않습니다. 기사에 의견을 주실 분들은 트랙백을 이용하시거나, 아래 소셜댓글 서비스를 이용해주시기 바랍니다.











































맞습니다. 일부 flash와 AS를 해보신 분들이 Flex에 대해서 잘못 이해 하고 계신 분들이 많이 계신데, Flex는 Enterprise 시스템에서 Presentation Layer를 아주 효과적으로 개발할 수 있는 탁월한 기술입니다. RIA에서는 가장 선도적이라 할 수 있는 기술인데, 이 기술이 빛을 보려면, Back end의 Business logic 단과 인터페이스 설계가 필수 불가결 합니다. 이부분의 설계에 대한 고려가 전혀 없는 상태에서 Flex는 효과적으로 Enterprise 시스템과 통합 되어 운영될수 없습니다. 하지만 이런 고려가 선행 된다면, Presentation Layer 구현에 있어서 개발자에게 상당한 생산성을 보장하고, 고객 만족도가 높은 RIA를 선보일 수 있습니다.
좋은 글 감사드립니다.
앞에 글은 좋은데 뒤에 누가 Flex를 개발해야 하는가는 많은 논란을 야기하는 글이네요. 웹 lanaguage(php,asp,flash)등은 하급언어이며, java나 flex는 상급언어이다라는 일종의 차별을 불러오는 듯한..언어 자체의 구분은 크게 중요한 것이 아닙니다. 대형 포털들도 php를 사용하는 예는 많습니다. 어느 정도 경력과 언어에 대한 기본 이해도가 있으면 그 프로젝트에 가장 적합하고 알맞는 언어가 가장 좋은 언어가 되겠죠. 어쨋든 웹관련 언어는 계속 발전하는 언어이며, Flex도 주는 UI 개발이며,같은 Flash CS3이나 Flash 개발툴과는 동떨어질수 없는 툴이라 생각됩니다. 물론 FDS 지원이나 MXML등의 컴포넌트 Base 개발등의 개발방법론이 다르긴 하겠지만요. 단지 엔터프라이즈 환경이라고 해서 Flash로 개발했다고 Flex를 기만했다라는 표현은 어불성설인것 같습니다.
어떤 언어가 더 우수하고 좋다라는 식의 논의는 길어지고 조금 우스울 것 같군요.
엔터프라이즈를 주 타겟으로 하는 Flex기에, 자바등이 같이 많이 쓰여서 그런뜻인지는 모르겠으나, 그 프로젝트나 환경에 가장 적절한 언어 및 UI 설계, 개발방법론등을 잘 이용하여 고객의 needs및 향후 유지보수를 잘 수용하느냐가 더 중요하다고 봅니다.
개발자? 님과 많은 부분을 동감합니다. 전체적으로 좋은 내용인데 몇가지 잘못된 표현으로 흐름이 끊어지게 하는군요.
각각의 언어는 그만의 용도가 있는데 마치 하급과 저급을 나누듯이 나누는 태도는 눈쌀을 찌뿌리게 합니다. 아직도 그런 자세로 언어를 대하는 것도 우습기도 합니다. 아직까지 이 땅의 개발자는 매 프로젝트마다 고생을 해가면서 개발을 진행하는 것은 변함이 없습니다. 반드시 개선되어야 할 부분이죠..또 그런 것을 개선하기 위해 많은 사람들이 현업에서 노력하고 있습니다.
U.I에 대한 접근 방법과 가이드는 좋았지만 마치 특정 영역만을 위한 언어라는 표현은 안 맞네요..씁쓸합니다.
그런 부분을 제외하고는 Flex에 대한 의견은 좋습니다.
결국 시장에 의해 좌우되는것 아닐까요? 어도비 측에서 “이건 엔터프라이즈용이니까 순수 개발용도로 써라..” 한다해서 그리 되는것도 아니고, 시장요구에 따라 활용된다고 봅니다. 포토샵이 처음 나왔을 때 전문 디자이너의 전유물이였으나 요츰은 초등학생들도 능란하게 다룹니다.
저도 디자이너들이 만들어놓은 AS2 를 보면 피를 토할것 같고, 그들이 AS3에 넘어가지 못해 허우적 거리는 모습을 보며, “그래 너희들은 거기까지만…!!” 이라고 느끼지만, 그들 중에도 제대로된 마인드와 학구열을 가지고 oop개념에서 부터 제대로된 개발을 하는 사람을 보았을 때, 프로그램 영역이 전공한 개발자들만의 영역은 아님을 다시금 느낍니다.
디자이너들도 치열한 경쟁속에 생존전략 차원에서 열심히 노력합니다. 전산쪽 전공자인 제가 봐도 훌륭한 수준의 코드를 많이 보았습니다.
플랙스에 대한 단상의 글의 요지는 1. …
Flex????븳 ?⑥긽?대? 湲?쓣 蹂닿퀬 ?щ윭?..
[...] http://bloter.net/archives/3283에 따르면, 원래 플렉스의 컨셉은 기업용 프레젠테이션 레이어입니다. 기업용이란 기업 내부에서 사용되는 프로그램으로 웹이나 일반 프로그램과는 전혀 다릅니다. 그래서 기업용 업무 프레젠테이션이라는 역할을 제대로 수행하기 위한 플렉스의 올바른 사용법은 일종의 폼이라는 이야기입니다. 즉, 데이터 처리를 위한 입출력 창구로의 역할을 수행해야 한다는 것입니다. 또한 효율적인 유지관리를 위해 기존의 플래시적인 요소를 넣으면 안된다고 말하고 있습니다. [...]