Flash CS3가 나온 기념으로 얼마전 새 이름을 가진 SilverLight(=WPF/E)도 요즘 열심히 뽐뿌질 중입니다.
뭐 RIA에서 Adobe와 MS가 충돌할 분야가 꽤 여러분야지만 일단 가장 먼저 충돌할 것으로 예상되는 웹브라우저 환경에서의 RIA... 특히 Flex와 WPF를 비교해보렵니다.
Flex는 릴리즈된지도 꽤 됐고 많이 알려졌으므로 Flex를 기준으로 WPF가 다른점을 설명해보도록 하겠습니다.
- Publishing이 필요없습니다.
아시다시피 Flash(Flex)는 MXML이나 FLA소스파일이 SWF라는 바이트코드로 퍼블리싱되어 플레이어가 실행하는 방식입니다.(뭐 FDS라는 2천만원짜리 서버를 도입하면 가능하죠..--;;) 하지만 SilverLight는 Javascript로 직접제어가 가능합니다. 뭐 물론 XBAP같은건 컴파일도 해야하고.. Flash로도 ExternalInterface로 연동 인터페이스 같은거 만들어주면 JScript 연동이 가능하지만.. SilverLight는 더욱 직관적으로 코딩 가능하다는 점이 다릅니다. 따라서 기존 개발자들이 접근하기 쉬우며 기존 서드파티 Jscript 개발툴로도 개발가능하며 일일히 Publish할필요가 없으므로 디버깅이 쉽다는 장점이 있습니다.
- 도입 가격이 쌉니다.
Flex의 뛰어난 기능을 더욱 활용하려면 FDS를 도입해야하는데 2천만원이 넘죠.. FDS와 비슷한 거라면 .NET 3.0의 WCF를 들 수 있는데.. 아시다시피 .NET 3.0은 무료입니다. 다만 .NET개발툴(VS.NET)이 비싼것이 문제인데, 따지고 보면 Flex를 도입하려는게 서버데이터 연동이 큰 이유일텐데 서버를 닷넷으로 구현하면 어짜피 구매해야할 VS.NET이죠.. 하지만 서버를 Java로 구현한다면 FDS도입도 좋은 선택일것 같습니다.
- 개발 생산성에 이점이 있습니다.
예를들어 WPF(Windows Application)나 XBAP이나 SilverLight는 XAML과 C#만 알아도 모두 개발 가능합니다. 하지만 Apollo나 Flex나 Flash를 개발하려면 MXML AS3.0 Java를 모두 알아야 합니다. 즉 엔터프라이즈 급 프로젝트에서 인력확보가 용이할 수도 있다는 것은 큰 장점일것 같습니다.
- 마우스 오른쪽 버튼 활용이 가능합니다.
좀 쌩뚱맞은 생각이지만 RIA환경에서 마우스 오른쪽 버튼의 활용가치는 참으로 무궁무진 하지만 Flash는 마우스 오른쪽 버튼의 기능을 ContextMenu를 활용하는것 외엔 원천적으로 봉쇄했습니다. 하지만 WPF(SilverLight제외)에선 마우스 오른쪽 버튼도 활용가능합니다.
이상 개인적으로 느낀 Flex에 비해 WPF의 대표적인 장점입니다..
단점은 솔직히 Flash라는게 고유명사화 될정도로 익숙해진 프로그램이라는 것인데 (심지어 Flash도 ActiveX라는걸 종종 까먹을 정도...) 이러한 홍보로 인한 단점정도는 MS의 파워로 봐선 우스울 것으로 보입니다.
그 외에 WPF의 가장 큰 단점으로는 디자이너를 위한 툴(blend, interactive Designer 등)이 너무 허접했으므로 디자이너 인력확보를 어떻게 할거냐고 데브피아에 혹평한 적도 있습니다만.. AI to XAML이나 SWF to XAML 같은 프로그램들이 홀랑 나와버려서 디자이너가 새로운 툴을 구매하거나 공부할필요도 없어져버렸습니다..
하여간 뭐 논란이야 어쨌든 애니메이션 업계는 Flash가 독점할것은 확실해 보이고...(Silverlight가 아직 릴리즈 되진 않았지만.. Flash에 비해 한~~참 딸리더군요..) Flex가 열심히 파이를 키워놓은 RIA시장을 과연 얼마나 뺏어먹을것인가 점점 궁금해 집니다..
.net과 flash를 둘 다 쓰는 저로선.. 개인적으로 WPF가 당연히 좋아보입니다. 위에 언급한 4가지 장점은 말할것도 없거니와... WPF에선 Flash9.ocx를 참조해서 Flash컨트롤 까지 쉽게 가능하니까 뭐 말 다했죠...ㅎㅎ
참고로 .NET 3.0의 WPF에 대해 잘모르시는 분들을 위해 비슷한 것들을 비교한다면..
WPF의 Windows Application 는 Java Application or Apollo와 비슷하다 할 수 있고...
WPF의 XBAP(XAML Browser Application)은 Java Applet or ActiveX와 비슷하다 할 수 있고...
WPF의 Silverlight는 Flash(특히 벡터그래픽 구현부분만)나 SVG와 비슷하다 할 수 있을것 같네요..
이 글과 관련있는 글을 자동검색한 결과입니다 [?]