저자: 제이섹 아트미액(Jacek Artymiak), 역 전순재
벡터 그래픽은 한때 데스크탑 출판 형태의 유일한 영역이었지만 이제 점차로 웹 개발자와 디자이너에게 인기를 얻어 가고 있다. 그들은 벡터를 사용하여 그래픽과 애니메이션을 적은 분량의 데이터로 포장하는데, 그 유명한 매크로미디어 플래시(Macromedia Flash) 저작 애플리케이션을 사용한다. 약간의 소리와 창의적인 코딩이 결합된 인기 만점의 "플래시 무비"나 "SWF"는 풍부한 미디어를 전달하는데 가장 널리 사용되는 포맷이다. "플래시 무비"나 "SWF"는 그 옛날 훌륭했던 멀티미디어에 대한 새로운 이름으로 하이퍼카드(HyperCard)와 디렉터(Director) 시대에 전형적으로 사용되었던 CD-ROM으로 배포되는 것이 아니라 웹상에서 전달된다.
수년간 매크로미디어사가 공식적으로 호명한 매크로미디어 플래시 (SWF) 파일 포맷은 웹 상의 벡터 그래픽에 대하여 사실상 표준이 되었다. 약점이 있기는 하지만 다른 파일 포맷으로 전복되기에는 대단히 어려울 것이다.
그러한 경쟁자가 바로 벡터 그래픽에 대한 공식적인 표준으로서 W3C가 개발한
SVG이다. XML 의미구조(semantics)라든가, 영향력 있는 표준 기구로부터의 지원, 크든 적든 성장중인 소프트웨어 개발자들의 지원이라는 강점이 있다. SVG에 몰리는 현재의 관심에도 불구하고 우리는 여전히 매크로미디어
플래시 MX가 제공하는 기능에 필적하는 도구들을 기다리고 있다. 또한 SWF 파일 포맷은 다양한 사용자들이 있는 인터넷에서 쭉 테스트 되어 왔지만, SVG는 (지금 현재 모든 주요 브라우저가 기본으로 지원은 하고 있지만) 지금도 널리 인정되기를 기다리고 있는 중이다.
SVG를 옹호하는 많은 사람들은 SWF 비판하기를 좋아한다. 왜냐하면 SWF가 폐쇄적이고 사람이 읽을 수 없으며, 기업용으로 부적합하다고 생각하기 때문이다. 그 때문에 지금이 양대 기술을 평가하고 있는 독자들만이 어느 것이 가장 적합한지 결정할 수 있도록 다양한 관점을 제시할 최적의 시기이다.
다음 단락에서 논의하고자 하는 의도는 플래시 테크놀러지가 SVG보다 우위에 있다는 것을 증명하고자 하는 것이 아니라 오히려 플래시와 SWF에 관한 오해를 불식하기 위한 것이다. 물론 오픈 소스인
프리무비(FreeMovie) 라이브러리의 저자로서 견해가 치우칠 수 있다. 그렇지만 필자는 또한 프리무비와 비슷한 설계상의 목표를 가진 오픈 소스 SVG 라이브러리에 대해서도 작업을 하고 있기도 하다. 그리고 SVG와 플래시 모두의 장점들을 보려고 노력할 것이다.
SWF는 플래시가 아니며 SWF도 아니다
플래시는 종종 SWF와 혼동된다. 그렇지만 이 둘은 같은 것이 아니기 때문에 이렇게 생각하면 실수이다. 아주 크게 봐서 플래시는 저작 환경, 컨텐츠 전달 포맷, 컨텐츠를 반복해서 연주하는 플러그-인이라는 측면에서 완전한 해결책을 제시하기 때문이다. 그리고 SWF는 그런 해결책 중에서 아주 작은 부분일 뿐이다. SWF는 플래시 저작 도구로 만들어진 컨텐츠를 배포하는 파일 포맷이기 때문이다.
SWF는 폐쇄적이지 않다
SWF는 SVG처럼 개방된 표준은 아니지만 매크로미디어는 SWF를 일반인들이 사용할 수 있도록 허용했다(SWF에 대해 관심이 있는 독자는
이 페이지를 방문하는 것도 좋을 것임). 이외에도 SWF 파일을 해석하고 만들어 내는 상업적인 도구들과 오픈 소스 도구들이 많이 있다.
SWF는 확장가능하다
SWF 규격은 서드 파티 개발자들이 맞춤 SWF 태그라는 메커니즘을 통해 포맷이 가진 기본 기능을 확장할 수 있도록 해준다. 매크로미디어는 서드 파티 개발자들에게 그들이 만든 확장을 등록하도록 요구하지 않기 때문이다. 이러한 확장이 매크로미디어의 독자적 연주기에 의해서 인식될 것인가 하는 문제는 별개의 문제이지만 개발자 팀은 아무 제한 없이 플래시 연주기를 만들고 확장된 기능을 자신들이 만든 연주기에 구현해 넣을 수 있다.
물론 위와 같은 상황이 전체 플래시 공동체에 대해서는 실제적인 혜택이 없을 수도 있다. 왜냐하면 시장을 분리시킬 위험이 있기 때문이다. 반면 대안으로 떠오른 연주기가 매크로미디어사가 만든 제품보다 더 좋다면 사용자들은 그 연주기로 옮겨갈 것이고 시장은 전반적으로 영향을 받지 않을 것이다.
말도 안되는 소리로 들리겠지만 SVG 스토리지(storage)를 SWF 태그로 정의하는데도 확장이 사용될 수도 있다. SVG 스토리지는 같은 영화를 대안적인 인코딩으로 저장할 수 있기 때문에 플래시 플레이어나 SVG 뷰어(Viewer)가 연주할 수 있다. 이 영역은 여전히 오픈 소스 공동체가 모험을 걸어볼 만한 미지의 영역으로 남아 있다. 혹시 지원자 없는가?
SWF는 FLA가 아니다
매크로미디어가 포장(wraps) 안에 숨겨 놓고 있는 것이 바로 플래시 FLA 프로젝트 파일 포맷이다. 그러나 이 파일 포맷은 자사만의 고유한 파일 포맷을 사용하는 어도비 라이브모션(Adobe LiveMotion)과 같은 경쟁 제품의 개발을 막지는 못했다. 물론 매크로미디어가 FLA 포맷을 공개하여 디자이너들이 자신들의 프로젝트 파일을 한 저작 환경에서 다른 저작환경으로 옮길 수 있도록 해준 것은 잘된 일이지만 디자이너들은 이미 라이브모션으로 만든 영화를 SWF로 엑스포트(export)할 수 있으며 Flash MX 안으로 임포트(import)할 수도 있다. 똑같은 것은 아니지만 쓸모 있다.
매크로미디어가 조만간 FLA 규격을 출간해 주리라고 기대해서는 안될 것이다. 왜냐하면 사업으로서 매크로미디어의 최고 관심사가 아닌 듯이 보이기 때문이다. 이는 매크로미디어가 플래시 저작 도구 시장에서 자사의 지분을 보호하는데 사용할 수 있는 한가지 방법으로 보인다.
"옳든" 아니든 간에 그것은 또다른 문제이다. 우리가 어떤 방식으로 그것을 보든 매크로미디어는 이를 공개할지 아니면 비밀로 해야 할지 자신이 스스로 선택할 권리가 있기 때문이다. 그렇지만 SWF 규격을 공개하기로 결정한 것을 보면 그 매크로미디어가 기꺼이 자사의 지식을 다른 사람들과 나눌 용의가 있다는 것을 알 수 있다. 물론 이는 좋은 일이다.
SWF는 사람이 볼 수 없다. 그렇지만 꼭 그래야 할 필요가 있는가?
사실이다. 미가공 상태의 SWF는 그냥 .EXE 파일과 다름 없다. 무엇인지 알고 싶으면 SWF 해석기(parser)를 사용해야 한다. 그렇지만 그것이 문제가 되는가? 그래픽이나 애니메이션은 HTML에 담겨 있는 텍스트와는 아주 다르다. 그리고 미가공 상태로 이미지 코드를 볼 수 있다고 해도 전혀 어떤 파일 포맷이 사용되든지 이해하기 더 쉬운 것도 아니기 때문이다.
XML이 테이블에 가져다 주는 혜택에도 불구하고 그 이미지를 볼 사람들에게 어떤 이미지의 XML 구조에 접근하여 그것을 화면에 표시하는 능력이 그렇게 절실한 것인지 물어봐야 한다. 뚫어지게 SVG나 SWF 코드를 쳐다본다고 전달되는 메시지로 그 이미지를 더 쉽게 이해할 수 있는가? 독일의 장인(masters)들이 자신이 그린 그림이 아니라 캔버스의 질감이나 그림의 모델이 된 사람들에게 찬사를 보내기 바라겠는가? 그건 도저히 말도 안되는 것이다.
게다가 이미 SWF 해석기들이 있고 SVG로 변환하기보다는 아예 SWF를 작성하는 것이 상대적으로 쉽다. 프리무비용으로 미리보기판 SWF 해석기(parser) 모듈이 이미 그런 작업을 하고 있는 중이며 소스포지(
SourceForge)에 몇 주 후면 배포될 것이다.
SWF는 구조가 있지만 XML은 아니다.
종종 SWF는 구조가 없다는 이유로 비판의 대상이 된다. 그렇지만 이는 사실이 아니다. SVG가 가진 것과 같은 XML 구조는 없지만 필요하다면 SWF 벡터 그래픽을 구조화된 XML 문서로 용이하게 변환할 수 있다. SWF의 디자인이 (지금도 어떤 애플리케이션에서는 여전히 잘 작동하는) 예전의 IFF 멀티미디어 포맷을 생각나게 하는 것은 사실이지만 상당히 잘 작동한다.
물론 SVG는 XML 애플리케이션이기 때문에 XML을 자사의 조직 전체에 걸쳐 구현하고 있는 기업 사용자들은 SVG와 즉시 친해질 수 있다. 그러므로 SVG는 쉽게 전체 시스템에 통합되어 들어갈 수 있다. XML을 해석하고 만들어 내는 많은 도구들이 있다. 그리고 그 도구들은 SVG에 적용될 수 있다. 그러나 벡터 그래픽의 경우 그것이 무슨 소용이 있겠는가? 이는 대륙간 탄도미사일(ICBM)로 모기를 맞추는 시도와 비슷할지도 모른다.
XML은 신이 문서에 내려준 선물로서 의료 기록, 재정 보고, 백과사전, 사전류, 고객 데이터베이스 등을 비롯하여 이미 몇 가지 종류의 기본적인 구조를 갖추고 있다. 그러한 문서들은 일정 DTD의 구문 규칙에 맞추어 구조화 되면 쉽게 다른 포맷과 구문으로 변형될 수 있다. 그리고 이와 같은 특징은 기업 고객에게는 대단히 중요하다. 왜냐하면 데이터에 구조를 추가할 수 있으면 앞으로 더 쉽게 관리하고 재사용할 수 있기 때문이다.
XML을 사용하여 재정적 데이터를 저장하는 것은 의미있는 일이다. 그렇게 되면 더 쉽게 그 데이터를 시각적 표현으로 변형할 수 있기 때문이다. 그리고 SVG는 XML 애플리케이션이기 때문에 그 방정식을 너무 멋지게 만족한다. 그렇지만 여기에 XSLT나 DSSSL 변환 규칙을 작성할 수 있는 다른 포맷이 사용될 수도 있다. 왜냐하면 일단 수치형 데이터가 어떤 비즈니스 차트로 변형되면 그것이 마지막 종착역이기 때문이다.
또다른 그래픽 파일 포맷으로 변환하기를 원한다고 해도 이제 더 이상 데이터를 처리할 수 없다. 이미지를 다시 원래 소스의 수치형 데이터로 돌리는 방법이 전혀 없기 때문이다. 그리고 이것이 불가능하다면 SWF와 SVG는 다른 벡터 그래픽 파일 포맷과 별로 다르지 않다. SWF나 SVG 이미지에 할 수 있는 유일한 작업은 그것을 또다른 파일 포맷으로 변환하거나 그 중의 일부를 추출하는 것으로 이런 작업은 TIFF, GIF, JPEG, IFF, "멀티미디어" 파일 포맷에 할 수 있는 작업과 똑같은 것이다. XML이 SVG에 칼날을 부여하기는 하지만 핵심은 아닌 것이다.
동적으로 만들어진 SWF
맞춤처리된 SWF 파일을 만드는 것은 가능한 일이며 ColdFusion MX나 late Generator와 같은 상업적 애플리케이션을 반드시 사용해야 할 필요는 없다. 인터넷상에 충분할 정도로 많은 자유코드가 있기 때문에 개발자들은 어도비 AlterCast와 비슷한 자신만의 SWF 생성기를 만들 수 있다. 결국 비록 더 복잡하기는 하지만 이것은 웹 페이지 주형틀 테마에 대한 또 하나의 변형일 뿐이다. 포맷은 변하지만 원리는 변하지 않는다.
XML 구문을 사용하여 기술된 데이터나 그와 관련된 다른 어떤 의미구조(semantics)라도 서버쪽에서 SWF 파일로 쉽게 변환할 수 있다. 그냥 libswf, Ming, 프리무비, 또는 자유롭게 사용할 수 있는 매크로미디어의 SWF C++ SDK를 사용하면 된다. 그렇다고 하더라도 SWF로 작업하는 법을 배우는 데는 시간이 걸린다. 그러나 SVG를 배우는 것도 마찬가지라고 할 수 있다.
플래시 플레이어: 단일 플랫폼이 그렇게 나쁜 것은 아니다
플래시 플레이어(Flash Player)의 통제권은 매크로미디어가 가진다. 그리고 그 사실이 어떤 사용자들에게는 문제가 되어왔다. 그 때문에 어떤 사용자들은 플래시 테크놀러지가 특히 모바일 장치(mobile devices)와 자유 운영 체제의 영역에서 더 이상 널리 인정되고 있지 못하고 있다고 주장하는데 이는 상당히 옳은 말이라고 할 수 있다. 필자는 매크로미디어가 이와 같은 곤란한 상황에 놓여 있기 때문에 아주 조심스럽게 행보를 옮겨야 하리라고 생각한다. 한편으로 플래시 플레이어에 대한 소스 코드를 공개하면 매크로미디어는 이미지 개선 효과(good karma)를 얻을 것이고 자사의 많은 자원이 개방되면 오픈 소스 공동체가 플래시 플레이어 플러그-인을 이식하고 개선하는 과업을 넘겨 받을 수 있을 것이다.
반면, 그렇게 되면 경쟁자들이 플래시 플레이어의 기능을 확보하고 확장하게 될 가능성도 있기 때문에 그에 따라 불필요하게 시장이 양분될 가능성이 있다. 최악의 상황에 이르면 수 십개의 서로 다른 플래시 플러그인을 내려받아야 할지도 모르는 일이다. 누구든지 그러한 일이 일어나기를 바라는 사람은 없을 것이다.
지금까지 매크로미디어는 플래시 플레이어의 개발을 자사 안에서 통제하겠다고 했다. 덕분에 플래시 플레이어는 공식적으로 지원되는 모든 플랫폼에서 완벽한 호환성이 달성되었다. 웹 디자이너에게 이와 같은 사실은 자신의 고객이 플랫폼에 상관없는 호환성을 요구할 경우 정말 환영할 만한 일이 될 것이다.
매크로미디어는 자사가 공식적으로 지원하는 플랫폼 말고 다른 플랫폼에 플래시 플레이어를 이식하는데 관심 있는 개발자 그룹에게 도움을 줄 수 있다. 지난 번 매크로미디어가 플래시 플레이어의 소스 코드에 대한 접근을 제공했을 때 필자는 거부했지만 매크로미디어는 누가 그 소스를 볼 수 있는지를 선택할 권리는 여전히 보유한다. 필자는 그것이 정당하다고 생각한다. 문지방을 넘지 않을 사람들은 공식적으로 얻을 수 있는 SWF 규격을 사용하여 플래시 플레이어를 여전히 자신만의 버전으로 개발할 수 있다. 마치 누구라도 자신만의 브라우저를 개발할 수 있는 것처럼 말이다.
플래시와 모바일 장치
SWF나 SVG중 어떤 독약을 선택하느냐에 상관없이 (비록 모바일 구현이 있지만) 모바일 장치는 SWF나 SVG를 지원할 정도의 더 큰 세력을 가지게 될 때를 기다릴 수 밖에 없다. 그 동안은 볼품없는 cHTML과 i-Mode가 지배할 것이다.
플래시나 SVG를 모바일 장치에 사용할 때 발생하는 문제들은 이러한 테크놀러지가 특별히 취약해서가 아니다. 오히려 아직 아무도 자동적으로 애플리케이션을 다운그레이드하여 하찮은 것들을 버리고 필수적인 컴포넌트와 기능만을 유지하는 법 알지 못하기 때문이다. 이 영역에는 아직까지도 여전히 많은 연구가 필요하다.
플래시는 대역폭(Bandwidth)을 효율적으로 사용한다
SWF는 같은 개수의 바이트를 사용하여 SVG 보다 더 많은 데이터를 인코드 할 수 있다. SWF와 비교하여 SVG는 대역폭 호그(bandwidth hog)라고 할 수 있다. 굵은 파이프에 연결된 워크스테이션에서는 그 문제가 그렇게 중요하지 않지만 전화 사용자나 저 멀리 시골 구석에 처박힌 사람들에게는 중요한 문제이다. 그리고 이 문제는 모바일 웹 애플리케이션에도 아주 중요하다.
왜 플래시는 그렇게 인기가 있는가?
플래시는 잘 디자인된 저작 애플리케이션, 견고한 파일 포맷, 널리 배포된 연주기가 완벽하게 어우러진 완벽한 하나의 솔루션이기 때문에 웹 디자이너들 사이에서 인기를 얻었다
매크로미디어가 처음으로 벡터 그래픽을 대중화하려고 시도한 것은 아니었다(첫 번째 시도의 공적은 매크로미디어의 디렉터(Director), 브로더분트(Broderbund)사의 판타비젼(Fantavision), 모션 워크(Motion Works)사의 애드모션(ADDMotion)중의 하나로 돌아갈 것임). 그리고 그들의 노력에도 불구하고 웹 디자인 공동체는 플래시를 선택했고 그것은 엄연한 현실이다. 세상에서 가장 좋은 테크놀러지라도 사람들이 좋아하지 않으면 인기를 얻을 수 없다.
그리고 플래시에는 인기를 끌만한 것들이 많이 있다. 단일 플랫폼에서 개발하면 되며 웹에 안전한 색상 팔레트에 대해 걱정할 필요가 전혀 없으며, 모든 컴포넌트들이 하나의 파일 안에 한 다발로 묶여질 수 있고 훌륭한 저작 도구이자 폼과 XML 해석기(parser), 강력한 프로그래밍 언어를 지원하기 때문이다.
플래시를 사용하면, 누구라도 상호대화적인 애플리케이션, 카탈로그, 애니메이션을 만들어 온라인상에서 그것들을 배포할 수 있다. DHTML이나 하부의 다른 어떤 테크놀러지를 배울 필요가 전혀 없다. 플래시는 그저 창조적인 사람들이 창조적인 작업에 몰두할 수 있도록 해준다. 그 모든 창조적인 작업을 가능하게 해주는 테크놀러지에 대해 신경쓸 필요 없이 말이다.
일관적인 모습, 문서 조감에 대한 고도의 제어, 그리고 사운드 혼합의 용이성, 애니메이션, 비트맵 이미지 또는 코드를 사용한 벡터 이미지, 등등 이 모든 것 덕분에 플래시는 DHTML에 환멸을 느낀 디자너들에게 아주 흥미로운 도구가 되었다. DHTML은 약속한 선물을 그저 배달해 주지 않는다. 왜 디자이너들이 온 신경을 집중하여 다양한 DHTML 구현 사이의 비호환성을 처리하기 위한 방법까지 고안해야 하는가?
플래시가 인기있는 이유 중 하나는 다른 표준이 제공하지 못하는 것들을 플래시가 제공한다는 사실때문이다. 다시 말해 디자이너가 웹에 출간할 문서들의 최종 모습을 쉽게 제어 하는 방법을 제공한다. 어떤 면에서 그것은 상호작용적 멀티미디어 PDF라고 할 수 있다. 두 포맷 모두 최종 사용자가 최소의 노력으로 바람직한 결과를 성취할 수 있도록 해주기 때문이다.
최종 결론
SVG는 여러 모로 플래시보다 우월하다. 그렇지만 SVG는 플래시 MX에 필적할만한 저작 애플리케이션을 기다리고 있기 때문에 아직까지는 사용자가 일정 수준에 이르지 못하고 있다. 반면에 플래시는 시장에서 SVG를 필요로 하기는 하지만 SVG에서 발견되는 해결책으로부터 많은 혜택을 누릴 수 있다. 미래의 어느 시점에서는 필연적으로 플래시나 SVG 모두에게 도움이 될 최고의 아이디어를 교환할 것이다. 그리고 그렇게 되는 것은 누구에게나 혜택을 줄 것이다.
오늘날 기업 사용자들은 SVG나 플래시 중 어느 하나를 마음대로 선택할 수 있으며 어느 것도 나쁘지 않다. 필자는 이러한 선택권이 그 둘 사이를 잘라놓는 경계선이라고 생각하며 오직 미래만이 누가 승자인지를 말해 줄 수 있을 것이다.
제이섹 아트미액(Jacek Artymiak)은 프리랜스 컨설턴드이자 개발자와 작가로 활동하고 있다.