FLEX를 다루며 느끼다.

나의 2007년부터 2008년까지 2년여간의 프로그래밍 공백 기간은 얼마나 많은 일이 있었을까? 당시 얼추 알고 있던 기술들은 수 없이 많은 발전을 거듭하고 지금으로 자리잡게 되었는데 생판 모르고 있던 WPF나 실버라이트, 그리고 J2EE를 기반으로 한 JSP를 대처한 수 없이 많은 기술들. 그것들이 그 엄청난 속도로 발전하고 있었는데도 나는 그저 당시 인사총무 일이나 PM일을 하면서 말뿐인 경영 및 매니지먼트를 하면서 2년여간을 거의 뒤쳐져가고 있었다.
본래 MS의 툴(visual studio)에 익숙한 나머지 2008년 말쯤 내가 회사를 그만두게 되었을 때에는 전보다 쉽게 VS기반의 툴에 접근할 수 있었고, 이를 통해 병역특례를 위한 포트폴리오를 쉽게 만들 수 있었다. 하지만 지금은 거의 탈MS를 계속 시도하고 있다. 다름아닌 FLEX라는 것 때문에.
사실 뭐 나의 프로그래밍 역사가 그리 길지는 않다. 프로그래밍보다는 웹 기획쪽을 많이 했었지 어찌보면 프로그래밍은 처음에는 단지 컴퓨터를 잘하니깐 학교에서 “정보올림피아드나 입상해 와라” 라는 무언의 압박에 의해 퀵베이직을 다루게 된 것 같다. 하지만, 수학과학은 잘 못하고 인터넷만 9살때부터 접한 아이가 프로그래밍을 제대로 하겠는가? 그리고 나는 당시에 html과 스크립트 언어에 더 빠져 있었는걸.
3년 내내 정보올림피아드에 나간답시고 visual studio 6.0을 사용해서 알고리즘 수업을 듣고 기껏 한것은 콘솔프로그래밍. 덕분에 자료구조나 알고리즘에 대해서는 어느정도 개념이 많이 서긴 했지만(아주 기본이 되는 것에 대해서.) 이후에 처음 프레임워크를 사용해서 작업한 것이 direct x를 사용해서 게임제작이었는데 그것도 뭐 디자이너가 밭쳐줘야지. 디자이너의 불화로 결국 무산. 대학 와서 겨우 게임을 만들어 볼까 싶었는데 그때도 디자이너에 기대게 되었고, 어딜 가나 내가 좀 혼자 해보려면 디자인 때문에 고민이 많았다.
그래서 예전부터 어도비 제품군도 빠짐없이 사용하고 포토샵의 경우 어느정도 툴 자체의 사용은 능숙하다고 자체평가하고 있지만, 그래도 내가 하는 작업에 한계는 있다. 주를 프로그래머로 잡고 가다 보니 당연한 것이 아닐까. 내가 원하는 디자인을 디자이너에게 바랄 수는 없을 뿐더러 그렇다고 내가 나서기도 힘들다는 것이다.
이 FLEX라는 기술은 나의 이러한 고민을 깨끗이 해결해 주고 있다. 사실 나의 프로그래밍 공백 기간인 2년 사이에 플랙스는 눈깜짝할 사이에 벌써 베타 4버전이란다. 이정도면 기술이 얼마나 빨리 발전하는지 짐작이 오지 않는가? 사실 실버라이트 3이나 WPF 3때도 놀랐지만 플랙스는 그 쇼크가 가장 컸던 기술이 아닌가 싶다.
잡설은 이쯤하고 플랙스가 뭐가 좋은가? 가장 중요한 것은 multi-platform. 맥이든 윈도우든 전부 돌아간다는 점이 첫번째요, 두번째는 Adobe의 엄청난 지원으로 정말 다양한 module이 제공된다는 점, 세번째로는 RIA기술에 충실하여 CSS-MXML-AS 등으로 모듈화 되어서 제공된다는 점, 네번째로는 Adobe 에서 만들어진 기술 답게 포토샵 등의 관련 제품군들과 호환이 된다는 점, 다섯번째로는 RIA와는 또 다르게 FLEX로 제작된 것이 Adobe Air로 동작할 수 있다는 것이다.(물론 100% 호환은 아니지만)
이 이외에도 MAC환경에서 작업이 가능하다는 점도 한몫한다. MAC의 경우 XCODE 이외에 뛰어난 IDE가 많이 없다. 그래서 보통 NETBEANS나 ECLIPSE를 사용하는데 플랙스를 개발하기 위해서는 ECLIPSE가 기본이 되는 TOOL이다. 때문에 맥에서 지원하는 것은 당연지사. 이쯤되면 플랙스의 그 다양한 플랫폼 지원에 있어서 참 대단하다고 연발하지 않을 수가 없지 않은가.

FLEX개발자를 위한 CSS를 제공해주는 scalenine.com

FLEX를 소개하느라 나의 고민해결이 무엇인지 얘기를 안했는데, CSS를 통해서 작업이 가능해서 디자이너들이 작업해 놓은 CSS만 가져다 쓰면 꽤나 멋진 UI를 창출해 낼 수 있다는 점이다. 아 물론 이러한 것은 WPF나 실버라이트에서도 제공하는 것으로 알고 있지만 아주 개인적으론 그 둘보다는 플랙스&Air의 UI가 더 맘에 든다는 사실 (^^;) 때문에 나는 개발자이지만 디자인에 대해 크게 고민을 하지 않아도 되게 생겼다. 아 물론, Logo Design이나 Typography 및 Colorizing 정도는 계속 공부해야 하겠지만.. :]
액션스크립트가 디자이너나 쓰는 허접(?) 프로그래밍 언어라고 말하는 사람도 있다. 사실 나도 일전까지는 이런 마인드로 살고 있었는데 확실히 플랙스와 액션 스크립트는 조금 다른 것 같이 느껴진다. 단순히 플래쉬에서 F9눌러서 코딩한 그런 게 아니라 Flex 안에서의 코딩이란 거의 자바 언어이고, 거기다 플랙스 고유의 문법을 조금 더 추가한 듯 싶다. 확실히 RIA개념을 잘 살려서 만든 언어라고 생각된다.
참 그러한 추세라는 것이 무섭고, platform이라는 것이 무서운 것 같다. 플래쉬가 얼마나 대중적인지는 말 안해도 알 듯 하다. 요즘 왠만한 mp3에서는 플래쉬 플레이어가 기본으로 들어있는 것들이 많은 것만 봐도 알 수 있다. 플래쉬 게임 또한 얼마나 많은가. 웹에서 멀티미디어를 칭한다면 그건 바로 플래쉬가 아닐까. 플래쉬가 아닌 VOD player는 소수에 불과하다. 또한 Adobe는 2D 및 Vector그래픽, Web Design의 최강의인 Adobe Web Design 이라는 또하나의 대중화된 Software를 가지고 있다.
이런 자사의 플랫폼 강점을 활용해서 Macromedia를 인수하고 난 이후 개발자들에 대한 전폭적인 지원(아 물론 국내 개발자들에 대한 지원은 미미한 듯 싶다.)을 통해 개발자들을 끌어 모으고 FLEX라는 기술을 또하나의 미래적인 기술로 만들기에 이른다.
애플/어도비/MS/구글 , ORACLE/IBM/SAP/HP , INTEL/AMD 등등.. 무한 경쟁이다. 그것이 이 기술이라는 것을 하루가 다르게 바뀌도록 하고 있다.

그리고 아마 우리 개발자든 디자이너든 이 세계에서 살아남기 위해서는 아마도 “어도비 CS” 라는 것의 CS처럼(Creative Suite) Creative를 무기로 이러한 Suite를 잘 활용하는 사람. 거기에 이어 폭 넓게 Business Logic과 Database를 이해하고 personalizing을 개발의 깊은 개념으로 삼는 것. 그 속에 개발자의 미래가 숨겨져 있다고, 적어도 나는 그렇게 생각하고 오늘도 개발에 매진한다.