성전(聖戰) : Flash video vs. HTML5 video

오늘 Flash video와 HTML 5 video에 대한 상당히 좋은 기사가 Gizmodo에 나왔다. Giz Explains : 왜 HTML5가 인터넷을 구할 수없는가?

모두들 읽어보시라. 재미나면서도 이해하기 쉽게 나와있다.

이제 내 생각을 피력해 보기로 하겠다.
우선 나의 입장을 말해보자면, 나는 HTML5의 video tag를 선호한다. Flash는 제발 좀 없어져주면 좋겠다? 하지만 다른 한편으론 HTML5냐 Flash냐는 조삼모사(朝三暮四)의 문제라고 본다.

여기에 대해서 왜 그런지 생각을 해보자.
우선 왜 내가 HTML5의 video tag를 Flash보다 선호하는지 보자.
그 이유는 HTML5의 장점과 Flash 단점때문이다.
우선 쉽게 Flash 단점을 말해보자. 내가 알기로 Flash는 원래 Macromedia의 Authorware가 새 단장을 한 것으로 알고 있다. 그래서 Flash의 event 모델은 Authorware의 그것과 같고, 그때의 코드를 여전히 유지하고 있다고 알고 있다. 이것은 Flash가 처음 나왔을때 알게된 것이므로 현재는 좀 다를 수도 있다. 하지만 그때나 지금이나 Flash가 로딩되었을때 컴퓨터가 반응하는 것이 여전히 같은 것으로 봐서, 거의 그때의 코드를 여전히 유지하고 있다고 생각된다. 단 Windows 버젼의 Flash는 다르다. Authorware는 원래 Mac용 프로그램이어서, 이것이 Windows용으로 포팅될 때, 두 플랫폼의 이벤트 모델이 다르기 때문에 아예 다시 작성한 것으로 추측된다. 어쨌거나, 현재 Flash가 Mac의 웹 브라우저에서 로딩 될 때, CPU를 많이 쓰고 메모리를 무척이나 많이 사용한다. 실제 비디오를 재생하고 있건 말건 말이다. 이건 Flash자체가 가만히 있을 때도, 무척 바쁘게 뭔가를 한다는 소리다. 즉 busy idling을 하는 것이다. 아마 event dispatcher가 계속 event를 polling하고 있는게 아닌가 한다.
즉 바로 이런 것 때문에, 노트북과 같이 배터리를 사용하는 장비에선 배터리 충전량을 급속도로 떨어뜨리는 역할을 한다. 여러 곳에서 Flash를 휴대폰, 스마트 폰과 같은 모바일 장비에서 테스트한 것으로 알고 있는데, 역시 같은 소리를 왕왕 듣곤 한다. 배터리가 굉장히 빨리 방전된다는 것이다. 사실 Windows용도 Mac 버젼에 비해서 좀 낫다 싶은거지, 별로 괜찮은 상황은 아니다.

그리고 HTML5의 장점은 이렇다. 사용자가 특별히 비디오 재생을 위한 플러그인을 설치할 필요가 없다. 또한 산업계 표준인 H.264를 이용한다. 즉 표준을 지원하는 웹 브라우저는 그것이 자동차에 설치된 장비이건, 아니면 어떤 특화된 제품이건간에 똑같은 내용을 보여줄 수있다는 것이다. 물론 H.264는 라이센스 비용이 들어가는데, 이건 사용자들에게 부과되는 것이 아니다. 브라우저를 제작한 회사나 서비스를 제공하는 회사가 부담하면 되는 것이다. 이 비용을 들이기가 싫어서 Mozilla같은 곳은 Ogg Theor같은 것을 이용하길 원한다. 많은 사람들은 무료라는 점에서 Ogg Theor를 선호하는 것같다. 하지만 이건 내가 보기에 넌센스다. 그 이유는 Gizmodo의 기사에서 잘 나와 있다. 사람들이 대개 묵시적으로 H.264의 라이센스 권자가 흡사 MS나 Apple과 같은 사기업으로 여기는 것같다. 근데 그렇지 않다. MPEG LA와 같은 것은 비록 국가 조직은 아니지만, 비디오에 있어서 산업계 표준을 만들기 위해 조직된 것이다. H.264는 유럽 ITU-T에서 정한 이름이고 미국을 중심으로하는 ISO에서는 MPEG-4/AVC라고 한다. MPEG-1/2/3때는 ITU-T와 다른 스펙을 가지고 있었지만 MPEG-4대에 와서는 두 조직 즉 ISO와 ITU-T에서 협의를 해서 동일한 스펙을 제정했다. 그러므로 유럽과 미국을 중심으로 한 포맷의 통일이 이루어진 것이다. 특허권자를 보호하고, 특허를 사용하고자 하는 주체들의 원할한 정보 교류등을 위해 운영비가 필요하고, 또한 표준을 제정하는 노력들을 지원하기 위해도 비용이 필요하다. 그러므로 MPEG-4/H.264를 사용하기 위해 지불하는 비용은 충분히 그 목적이 있는 것이다.
그리고 산업계 표준은 시너지 효과를 제공해 줄 수있고, 처음엔 비용이라고 생각되어도 시간이 지날 수록 표준을 지원하는 것에 대한 잇점을 누리게 된다. 쉽게 생각해 보면 KS 마크와 같은 것이다. KS 표준에서는 볼트와 너트의 크기, 모양등을 표준화했다. 그럼으로써 볼트와 너트를 만드는 업체들은 정해진 것들을 대량생산하기 용이해지고, 렌치를 만드는 회사들은 어떤 규격의 볼트와 너트를 대상으로 공구를 만들지 확실히 할 수있다. 즉 어떤 회사의 볼트와 너트, 어떤 회사의 공구를 사던 간에 아무런 문제가 없이 사용할 수있게끔 보장하는 효과가 있다.
자 이쯤되면 HTML5가 H.264/MPEG-4라는 산업계 표준을 주로 언급하고 있다는게 어떤 의미를 가지는지 쉽게 이해가 갈 것이라본다.
아마 이 블로그를 읽는 분들에게는 이미 이런 내용은 당연한 것이라고 생각은 되지만…

자 그럼 이제는 내가 왜 HTML5냐 Flash냐가 조삼모사라고 생각하는지 알아보자.
HTML5를 사용한다는 장점에는 Gizmodo의 기사에서도 나와 있듯이, 비디오 재생을 위해 별도의 플러그인을 설치할 필요가 없다는 점이 있다. 그리고 이런 언급이 되어 있다.

In theory, eliminating the video plugins means no extra CPU overhead, fewer crashes, and wider compatibility—if HTML 5 video was standard now, we wouldn’t be stuck waiting for Adobe to port their plugin to our mobile phones, and Mac users wouldn’t bring their systems to a crawl every time they tried to watch a YouTube video in HD. As a general rule, playing a video file through an extra plugin like Flash is going to be slower, buggier, and more resource-intensive than playing it through a browser’s native decoder. That’s why people are excited about HTML5 video.

이 말이 사실일까? 플러그인 없앤다고 별도의 CPU 오버헤드가 안들어갈까? 죽는 빈도가 줄어들까? 호환성은 늘어나겠지. 리소스를 더 적게 쓸까? 내가 볼때 위의 커멘트는 완전히 넌센스다.

CPU 오버헤드가 더 들어가고 아니고는 어떻게 구현했는가에 따라 달라지는 문제이지, 그 구현이 플러그인이어서이고 아니고가 문제가 아니다. 물론 플러그인을 따로 로딩하고 그것을 관리하는 부하가 없지는 않지만, 비디오를 decoding해서 플레이하는 부하에 비하면 그건 없는 것이나 마찬가지이다. 즉 플러그인이어서 별도의 CPU 부하가 들어간다고 말하는 것은 조그만 것을 과장하는 것에 지나지 않는다. 둘째, 죽는 빈도가 줄어들까? 이것 역시 어떻게 코딩을 했느냐에 따라 달라진다. 플러그인이기 때문에 오히려 호스팅 프로그램에 상관없이 혼자만 죽게 될 수도 있다. 역시 호스트 프로그램 자체에 비디오 재생기능이 들어가도, 비디오를 로딩하고 재생하는 부분을 process로 만들면 그 프로세스가 죽어도 호스트 프로세스 자체는 안전하다. 쓰레드로 구현하면 다 죽겠지만. 즉 구현에 따라 그 안전도가 변하게 된다. 리소스를 더 적게 쓸까? 마찬가지의 문제이다.

물론 보다 많은 사람들이 같은 브라우저를 사용하게 되므로, 버그 리포팅이 보다 더 집중적으로 받을 수도 있을 것이고, 그것은 문제점이 빨리 노출되고 그만큼 관심을 받게 되므로 문제 해결도 더 적극적으로 될 것이다.

즉 이 점은 바꿔 말하면, 플러그인을 만드는 회사가 충분히 사려깊게 구현을 하고, 충분히 버그를 추적하고 반영하면 굳이 브라우저 자체에서 구현하는 것과 별 다름이 없다는 소리다. 물론 비디오를 배포하는 업자들이 사용자가 무엇을 설치했던 다 동일하게 보여지게 하려면, 배포하는 비디오 포맷에 대한 표준이나 그 선택을 몇가지로 제한하는 편이 좋겠고, 그것은 사용자나 플러그인을 제조하는 업체 입장에서도 마찬가지이다.
즉 HTML5를 지원하는 브라우저 자체에 비디오 디코딩/재생 기능을 넣느냐, 아니면 그와 같은 비디오 코덱을 지원하는 플러그인을 잘 만드느냐는 실질적으로 별 차이가 없다는 것이다.

즉 현재의 문제는 WMV처럼 특정 업체 자체의 비디오를 지원하는 웹 서비스 업자들의 개념없는 선택이 문제이지, 인기있는 비디오 코덱과 wrapper 파일 포맷을 지원하기만 하면 아무런 문제가 아닌 것이다.

물론 HMTL5에서 표준적인 비디오 포맷을 사용하기를 알게 모르게 묵시적으로 강제하면, 서비스 제공자들이 어쩔 수없이 산업 표준을 따라가는 측면은 있을 것이다. 그러면 개념없는 서비스 제공자들이 아무 생각을 안해도 어쩔 수없이 어느 사용자라도 접근 가능한 컨텐츠를 제공할 수밖에 없을 것이다. HTML5를 지원하는 아마 궁극적인 의미는 여기에 있어보인다.

HTML5의 비디오를 선호하고 지지하건, Flash 비디오를 선호하건 지지하건 개발을 이해하는 사람이면 이런 측면을 이해해야 할 것이다. Adobe가 Flash를 왜 개선하거나 아예 뜯어 고치지 못하는지는 이해가 되지 않는다. 아마 Flash 프로젝트에 투입된 인원이 적거나, 아니면 효율적으로 프로젝트가 진행되지 못한다던가하는 문제가 있을 것으로 보인다.

어떤 이들은 Flash가 후진 것을 알겠는데, 왜 Apple이 적어도 선택의 자유를 주지 않는가라고 말한다.
그거야 뻔하지 않는가? Steve Jobs 성격을 보면 뻔한거 아닌가? Altair같은 머신이 나올때 Apple II를 설계하고 디자인한 것을 보면 대번에 나오지 않는가? PC H/W가 쏟아져 나올때, 깔끔하게 daughter board와 motherboard를 설계하고 아주 깔끔하게 컴퓨터의 내부를 정리했던 NeXT Cube보면 그 이유가 나오지 않는가? Mac Pro의 내부를 봐도 그 이유가 대번에 드러난다.

Leave a Reply

Please log in using one of these methods to post your comment:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: