IT 이야기

Flash Player 10.1의 기능 Overview, 64비트 지원계획은?

드럼캡 2010. 2. 12. 10:00
현재 iPad에 플래시 플레이어 탐재에 관한 이슈가 떠오르면서 플래시 플레이어의 성능에 대한 관심이 많이 높아졌습니다. 어도비는 플래시 플레이어에 대한 성능향상과 모바일 탑재는 큰 테마로 준비해 오고 있었으며, 이를 증명하듯 Adobe MAX 09 (2009년 10월 개최된 어도비 기술 행사)에서 시연해 보이기도 했습니다. 

이미 아는 사람들은 다 아는 내용이지만, 사람들이 잘 모르는 부분을 정리하자는 의미로 Adobe Labs의 Flash Player 10.1 Features 의 내용을 중심으로 정리해 드리겠습니다.

사실 10.1의 기능은 끝 버전 하나 올라간 것 치곤 꽤나 큰 업데이트 입니다. 사실 제 생각으론 Flash Player 10 메이저 업데이트에 맞춰 나와줬어야 하는 기능들 인데 개발 일정을 못 맞춰 이리 되었다 살짝 짐작해 볼 수 있습니다. 처음 Player10 에서 3D가 지원된다고 했을때 하드웨어 가속이 되는줄 알았다가 Ryan Stewart가 Flash Player는 제외라는 소리를 들었을때 엄청 실망했었던 기억이 납니다. 

이번 버전의 큰 명분은 Open Screen Project의 첫번째 런타임 플레이어라는 것입니다. 인터넷 연결이 가능한 모든디바이스에 동일한 뷰 환경을 만들고 동일한 사용자 경험을 주자는 프로젝트인 Open Screen Project는 다양한 디바이스, 컨텐츠, 칩셋 회사들이 참여하고 있고 그 중심엔 어도비가 있습니다. 그럼 먼저 Labs에 나온 주요 업데이트 기능에 대한 내용을 확인해 볼까요?

1. Ubiquitous Reach (유비쿼터스에 접근)

2. Global error handling (전역 에러 핸들링)

3. Designed for mobility (모바일을 위한 설계)

4. Expanded options for high quality media delivery (고화질 미디어 전송을 위한 확장옵션)


이렇게 크게 4가지 인데 하나하나가 정말 엄청난 기능이 아니라 할 수 없습니다. 점점 플래시가 진화해 가고 있고 어도비가 이에 역량을 집중하고 있다는 것도 많이 느낄 수 있습니다. 

1. 유비쿼터스에 접근
이것은 플래시가 다양한 기기에 설치될 수 있고 업데이트가 가능해졌다는 것을 의미합니다. 기존에 플래시 플레이어는 모바일이나 임베디드에 들어가려면 Flash Lite Runtime 이 별도로 올라갔고 액션 스크립트 코딩도 달리해야 했으며 메모리 관리를 특별히 신경써야 했습니다. 하지만 이제는 이런 것들을 신경쓰지않고 코딩해도 모든 디바이스및 환경에서 동일한 화면과 애니메이션을 볼 수 있게 됐습니다.  

2. 전역 에러 핸들링
이 기능은 액션스크립트 개발자에게 환호를 받을만한 것입니다. 뭐냐면 지금까지 플래시 플레이어 디버거를 설치했던 유저들은 종종 런타임 에러 화면이 떴던 것을 발견했을 것입니다. 이벤트 기반으로 구성되어있는 플래시는 어쩔 수 없이 개발자가 코딩시 알아차릴 수 없는 런타임에러가 종종 발생하게 됩니다. 지금까지 개발자는 try/catch 문을 사용해 일일이 커스텀 에러 핸들링을 해줘야 했지만 이제는 전역 에러 핸들링을 설정해 주면 런타임 에러는 여기서 잡히게 됩니다. 개발자 분들 앞으로 편하겠죠? ^^

3. 모바일을 위한 설계
위에서 다양한 디바이스를 지원한다고 했는데, 그 중에서 모바일은 정말 중요합니다. 그리고 고려해야 할 것이 정말 많습니다. 요즘의 고사양 컴퓨터에서는 크게 문제가 되지 않았던 성능,메모리,배터리 등이 문제가 되기 때문입니다. 플래시는 모바일을 위해 메모리를 50% 이상 개선했고(Good!!!!) 하드웨어 그래픽 가속을 지원하며, 렌더링과 스크립팅, 배터리와 CPU를 최적화 했습니다. 또 멀티터치 제스쳐와 가속계, 화면 방향등을 지원하여 모바일 UI의 사용자 경험을 살렸습니다.

4. 고화질 미디어 전송을 위한 확장 옵션
이제 미디어는 점점 고화질로 넘어가고 있고 유튜브는 현재 1080p를 지원하는 서비스를 준비중입니다. 그렇다면 파일 전송은 가장 중요한 이슈가 됩니다. 일단 이부분을 해결하기 위해 여러가지 옵션을 추가했는데, 동영상 파일을 잘개 쪼개서 올리면 (툴이 있겠죠?) 그 정보를 가지고 HTTP로 스트리밍 해주는 것과, 동영상을 Flash Access2를 사용하여 유료 동영상 등의 컨텐츠 보호에 대한 옵션을 마련했습니다. 또 버퍼링 메커니즘 개선 및 RTMFP 프로토콜 기반으로 동료기반 네트워킹이 가능해 짐에 따라 다양한 대용량 미디어에 대한 대안기능을 마련해 둔 상태입니다.

이상을 정리해 보면 MAX09 에서 발표한 내용이 좀 더 눈에 잘 들어온다는 느낌이 드는데 이는 다음과 같습니다.

Flash Player 10.1 기능 리스트

1. Smartphone enabled (스마트폰에서 가능)
2. Multitouch, accelerometer, screen orientation (멀티터치, 가속계, 화면 방향)
3. Optimized memory, power, hardware acceleration (메모리와 파워 최적화, 하드웨어 가속)
4. HTTP video streaming (HTTP 비디오 스트리밍)
5. Content protection (컨텐츠 보호)
6. Peer assisted networking ( 피어 어시스트 네트워킹 - 동료 지원 네트워킹)

메모리 50% 감소효과

 

배터리 사용시간. 특리 Low Battery 모드 사용시에는 저대로라면 놀랍네요


아무튼 사실 모바일에서는 실체를 보기 전 까지는 확실히 모르지만 어도비도 그동안 게으르진 않고 열심히 준비해 온 것만은 분명합니다.

64비트 지원문제?
사실 저는 Mac OS의 Snow Leopard를 쓰기 시작하면서 64bit 운영체제의 잇점을 몸소 체험하고 있으며 이를 제대로 지원해 주지 못하는 플래시를 번번히 욕했었습니다. 윈도우도 64비트 OS를 설치하고 64비트 익스플로러를 실행하면 플래시는 보지를 못하니까요. 맥에서는 64비트 사파리에서도 플래시는 잘 돌아갑니다만 아래의 이미지와 같이 별도의 32비트 플레이어가 같이 돌아가는 형태로 구동됩니다. 한마디로 비효율 적이며 개발자로써 이 문제는 썩 유쾌하지 않습니다.

사파리는 64비트 플래시 플레이어는 32비트


단지 64비트 전환을 더디게 하는 것은 어도비의 의사결정 속도가 느리다는 점과 기술력이 떨어지는 것으로 생각했었지만, 사실 그렇지 않다는 것을 얼마전에 알았습니다. 지금까지 어도비는 64비트 플레이어를 리눅스에서만 릴리즈 버전만 지원 하고 있는데, 플래시 플레이어 개발자인 Tinic Uro는 그의 블로그에서 64비트 리눅스 버전을 발표했을 당시(2008.11) 이렇게 언급하고 있었습니다.
64비트 플레이어는 32비트 플레이어보다 빠르지는 않습니다. 32비트 플레이어가 최적화가 잘 되어 있기 때문입니다.
현재는 리눅스만 지원하고 있지만 향후에 윈도우와 맥 모두 지원할 예정입니다. (벌써 1년이상 넘었네요)
디버그 버전은 아직 지원하지 않을 생각이며 차후에 지원예정입니다. (이것도 아직 지원하지 않고 있습니다.) 지원하더라도 ActionScript 2.0은 디버깅이 되지 않는데 그 이유는 AS2는 32비트 포인터를 사용하기 때문입니다.
이로써 얼추 짐작해 볼 수 있는 것은 여러가지 부분(GPU지원, 웹캠, 마이크등등) 이 있겠지만, 그중에 바로 AS2의 지원에 관한 부분도 크게 한 몫 하고 있다는 것을 알 수 있습니다. 현재 플래시 플레이어는 AVM1과 AVM2가 동시에 구동되는 형태이며 이는 두개가 동시에 올라가 있는 형태로 매우 비효율 적입니다. 결국은 언젠가 없어질 기술인 AS2가 뒷덜미를 잡고 있는 것일 것이며 이는 아마 플레이어 버전 11쯤 되면 결국 AVM1을 없애지 않을까 조심스레 예측해봅니다. 언제나 성능과 최적화에 대한 이슈로 방망이를 맞고 있는 어도비로써는 갈길이 멀겠지만 오픈스크린 프로젝트를 성공적으로 런칭(버전 10.1) 하고 다음은 64bit 지원도 동시에 이루어져야 할 것입니다.

여담으로 현재 Mac OS용 플래시 플레이어는 기능개선이 많이 이루어진 상태이며 각 브라우저의 특성에 맞춰 기능개선이 이루어진 상태입니다. 마찬가지로 Tinic Uro 의 블로그에 최근 포스트 된 글을 보면 (이친구는 위에서 언급한 2008년 64비트 플레이어 포스팅 이후 이게 첫 포스팅입니다 ^^ 그만큼 바빴고 요즘 어느정도 플레이어 개발 일정이 정리되고 있다고 생각해도 될까요?) 현재 Full Cocoa 코드로 구성이 되어있으며, 사파리4 에서는 애니메이션 엔진으로 Mac OS의 Core Animation을 사용하게되어 비약적인 성능향상이 있습니다. 자세한 내용은 블로그의 포스트를 참고하세요,  [Core Animation 바로가기]

[참고 게시글]

반응형