Flash Interactive UI 의 전망은 승리 혹은 죽음…
Flash 를 IPad 에 넣느냐 마느냐 따위는 사실 앞으로의 대세에 그렇게 중요한 문제는 아니다. Flash 를 임베디드 UI 의 기본으로 삼는 디바이스는 많고, 컴퓨터를 통한 인터넷이 그렇게 금방 사라질 것도 아니기 때문에.
Flash 의 성능이 모바일에 어울리느냐 마느냐 하는 문제 역시도 그렇게 중요한 문제는 아니다. 모바일의 작은 화면을 감당 못할 정도로 어설픈 플래시는 아니다. 풀브라우징의 경우가 문제인 거지...
Flash 와 HTML5 의 비교에 있어서 그 비교대상이 Canvas 가 되는 것도 무의미한 일이다. Canvas 가 아무리 똥을 싸봤자 Flash 가 가진 표현성능을 따라잡기는 어려울 것이고, Canvas 는 기본적으로 지금 Flash 가 가지는 Interactive UI 보다는 차트를 그리거나 하는 Data Visualization 에 촛점이 되는 기술이라고 보는 것이 좀 더 옳다. 물론 열렬한 괴짜들이 Flash 를 따라한다거나, 게임을 옮기거나 하겠지만, 그렇다고 해봤자 Canvas 의 절대적인 표현영역은 Flash 와 크게 겹치지 않을 것이다.
Flash 가 Web 상의 기술로서 크나큰 열악함을 가지는 이유는 HTML5 의 WebForm 을 이유로 드는 편이 좀 더 옳을지도 모른다. HTML5 에서 <input> 에 꽤나 효율적인 type 들이 추가가 되었다는 것은 Flash 에게 상당한 재앙이 될 가능성이 높다.
일단 Flash Interactive UI Control 의 핵심을 차지 하는 MouseEvent 와 KeyboardEvent 라고 할 수 있다. 현재 아이폰 개발 때문에 Multi Touch Gesture 가 추가되긴 했지만... 기능을 쑤셔박아 넣는게 다는 아니다.
Flash 는 UI Control 의 동작과 물리적인 표현에 필요한 데이터들을 모조로 swf 에 내장하고 있기 때문에 플랫폼에 상관없이 동일한, 그 동일성을 발판삼아 더 풍요로운 Interactive UI Control 을 구성할 수 있었다. 하지만, 문제는 Flash 가 가진 Interactive UI Control 의 기본이 이야기 했다시피 Mouse 와 KeyBoard 라는 입출력 디바이스를 기초로 해서 만들어졌다는 것이다. 그 확고한 기본을 바탕으로 기존의 웹에서 표현 불가능하던 "편리성" 과 "화려함" 을 만들어 낼 수 있는 것이 바로 Flash 다.
앞으로는 PC 가 아닌 모바일에서 인터넷이 진행될거라고 하지만, 그게 꼭 핸드폰 만을 이야기 하지는 않을 것이다. 모바일 디바이스가 의미하는 것은 기본적으로 무선통신이 대세가 된다는 의미이고, 좀 더 상세하게 들어가보면 그 뒷바탕에는 e-book, pmp 와 같이 컨텐츠의 소비에 최적화된 디바이스, 핸드폰의 형태를 띈 휴대용 디바이스, 디지털 스케치북이나 휴대용 타이프라이터 형태의 입력 최적화된 디바이스 등... 현재까지 PC 에 앉아서 마우스와 키보드를 바탕으로 사용하던 디바이스 환경이 각 목적과 요구에 따라 다양해지는 시대가 올 것이라는 것이다.
자... 여기서 문제가 발생한다. Flash 는 Interactive UI Control 자체를 swf 가 정의하는 기술이고, MouseEvent, KeyboardEvent, MultiTouchGestureEvent 와 같이 Interactive 의 행위 자체를 직접적으로 만들어나가야 하는 기술이다. 하지만, 앞으로 인터넷과 웹에 접속하는 디바이스는 그 용도에 따라서 아주 다양해 질 것이다...
말그대로 Flash는 UI Control 을 직접적으로 정의하기에 더 파워풀한 가능성을 만들어낼 수 있지만, 개발자도 개발사도 인간이기에 앞으로 다양해질 디바이스의 입출력 장치들에 몽땅 최적화된 작업물을 만들어낼 수 있는 것은 아니라는 것이다. 그 모두를 고려한다면 Flash 가 선택할 수 있는 것은 클릭(멀티터치에선 탭) 밖에는 없다.
이 문제에서 HTML5 의 WebForm 이 빛을 발한다. HTML 이 가진 단지 <input type="?"> 을 통해 단순히 모델만을 정의하는 방식은 다양해질 디바이스에 최적화된 방식이다. TextInput 을 손글씨를 써야하는 스타일러스 펜 기반의 퓨어태블릿 형태의 디바이스와 가상키보드를 사용하는 멀티터치 베이스의 디바이스와 고전적인 키보드 기반의 PC 에서 동시에 구현해야 한다고 해보자... HTML 상에서는 단지 <input type="text"> 만을 해주면 각 디바이스가 그에 맞는 입력양식을 지원해주지만, Flash 는 UI Control 에 대한 정의를 직접적으로 가지고 있기에 그것이 불가능하다. (가능하기야 하지만, 그걸 어떤 미친놈이 개발하고 자빠졌겠나...)
그리고, HTML5 에는 달력을 통한 날짜선택, 이메일 입력 등 기존의 HTML 이 가지고 있지 못했던 다양한 입력양식을 지원해준다.
Flash 가 "다양한 디바이스에서 접속하는 자원" 인 Web 에 어울리지 않는다는 것이 바로 이런 의미다. 정해진 하나의 타겟 디바이스가 존재하는 상황에서 Interactive UI Control 을 작업한다면 Flash 가 최선의 선택이 될 수 있겠지만, 모든 디바이스가 공공적으로 접속하게 되는 상황에서는 끔찍할 정도로 어울리지 않는다는 것이다.
차라리 AIR 런타임을 다양한 디바이스에 공급하겠다 라고 한다면 다양한 디바이스에서 HTML, Flash 와 같이 아주 쉬운 기술을 통해 개발을 할 수 있고, 그렇게 줄어든 작업량을 바탕으로 여러 디바이스에 대한 별도 개발을 진행할 여력을 만든다는 시나리오를 세울 수 있겠지만... Web 상에서의 Flash Player 는 분명 Flash 기술의 특성 때문에 한계성이 생긴다.
예외적 상황으로 Flash 의 입력 컨트롤을 자체적으로 정의하는 대신 각 디바이스가 지원하는 입력컨트롤 방식을 호출해서 사용후 반환받는 방식을 지원해서 권장시키고, Flash 는 순수하게 Interactive UI View 를 구성하는데만 사용한다면 가능성이 있겠지만 일단 현재의 Flash 는 다양한 디바이스가 공유하게 될 Web 에는 절대적으로 어울리지 않는다.
그렇기에 (공용성을 지닌) Web 에 한해서는 Flash 는 앞으로 점진적으로 사용되어지기 힘든 기술이 될 것이다. 단순한 애니메이션 처리, 영상 표현 따위는 HTML5 의 video 와 canvas 만으로도 충분하다.
Flash 의 기술 타겟은 어찌보면 AIR 에 더 맞는 형태가 되어갈지도 모른다. 그 시장을 뚫고 AIR 를 모든 플랫폼에서 동일하게 동작하는 기술이 아닌, 보다 쉽고 간편하게 만들 수 있는 기술로 몰아간다면 가능성이 생기겠지만... 그것 자체도 그렇게 쉬워보이지는 않는다.
어찌되었건 Flash 의 미래는 아주 성공 하든가 아니면 사장되던가 둘 중 하나의 극단적 기로에 있다고 보여진다. 지금까지 널리 퍼져있는 swf 자원들은 그 특성이 너무 PC 의 마우스, 키보드 디바이스 자원에 결합되어 있는 면이 많기에 (특히나 멀티터치에서 지원되지 않는 MouseOver, Out 을 너무 많이 사용했기에) 앞으로 다가올 디바이스의 다양화에 맞지 않는 기술이 되어버렸고, 설사 그것이 맞춰진다고 해봤자 그 수많은 기술자들이 순조롭게 따라오기엔 무리가 있다. 습관은 하루 아침에 바뀌어지는 것이 아니기 때문에...
사실... 이런 경우들은 Javascript 를 통해서 동적 UI 를 구축한 웹사이트들에도 동일하게 적용되는 문제일 것이다.
그것이 딱히 Ipad 가 아닐지라 퓨어태블릿 형태의 윈도우를 탑재한 디바이스라도 현재로서는 Flash 를 통해 Web 을 구성하는 것은 상당한 어려움이 존재한다.
여러모로 머리가 복잡해지는 시대인 것 같다. 어쩌면... UI개발자 보다는 다양한 특성을 지니는 디바이스들을 효율적으로 복합 운영해서 서비스의 흐름을 만드는 UI기획자가 더 필요한 세상이 될 수도 있다는 느낌이 들고...
2010년02월17일 10:20
좋은 글 잘보았습니다. Flash의 미래에 대해서 한번더 생각하게되는 좋은 글이네요.
앞으로의 웹에 Adobe가 어떻게 대처할지 궁금해집니다.
2010년02월17일 11:14
아… 요새 플래시 개발 때문에 정말 머리 뽀개질 지경이네요. 뭔가 깨끗한 대안이 어서 나왔으면 좋겠습니다.