며칠 전 Silverlight Firestarter 2nd December 2010 이라는 행사의 키노트에서 Silverlight 5 계획이 발표되었습니다.
상세한 내용은 공도님의 "실버라이트의 미래, 미리보는 Silverlight 5"라는 포스트에 잘 요약되어 있어서 저는 제 감상만을 좀 더해볼까 합니다.
발표에서는 가장 마지막에 나왔지만 역시 출시일이 가장 궁금하니 먼저 보면, 내년 봄에 베타가 나오고 연말 쯤 정식 출시될 것이라고 합니다. 거의 6,7 개월 주기로 릴리스를 하는 셈이네요.
이런 슬라이드를 보여주며 Silverlight 5에 대한 이야기를 시작하는 Scott Gu 아저씨입니다.
네, HTML5, Silverlight, WPF 삼인방입니다. 요즘 밖에서는 전략이 불분명하고 중복 투자라고 욕먹는 삼인방이지만 그래도 구스리 아저씨는 "최종 사용자에게 최상의 경험을 제공하기 위해 개발자들이 선택할 수 있는 선택지를 아주 다양하게 제공하고 있다"고 말씀하십니다. (구스리 아저씨, 왕년에 ASP.NET 직접 만들 때의 포스를 발휘해서 뭔가 멋지구리한 거 한 건 해주셨으면 좋겠습니다.)
뒤에 계속 이어지는 기능 설명과 그 기능을 이용해서 개발하는 MS 기술 전도사의 데모나 써드 파티 개발사들의 데모로 봤을 때 실버라이트가 집중하고 있는 분야는 3D, Media, Desktop Application 으로 볼 수 있을 것 같습니다.
미디어 지원이야 실버라이트 초기 버전부터 플래시에 비해서도 상대적으로 강점으로 꼽을 수 있었기 때문에 특별히 이상할 것이 없다고 생각되는데, 5 버전에 Trickplay라는 이름으로 재생 속도 조절을 지원한다는 건 정말 올레!를 외칠 수 밖에 없네요. 플래시 기반의 콘텐츠를 제공하던 때부터 실버라이트로 제공하는 지금까지 "속도 조절 되나요?" 라는 고객의 질문 빈도는 정말 귀가 따가울 정도로 높았거든요. (여차하면 하나 만들어보자는 얘기도 꽤 했었죠. 착수는 못했지만... ^^;) 빨리 재생될 때 음성이 새소리처럼 변조되거나 하는 일이 생기지 않도록 하는 처리도 내장된다고 하니 기대가됩니다.
3D 지원에 대해서는 인체 시뮬레이션 소프트웨어로 시연을 했는데, 상당히 부드러운 동작을 보여줬습니다. 실버라이트로 3D UI를 구성하는게 현실이 되겠구나 싶은 생각이 들기는 했지만, 구현 난이도가 어떠할지는 실제 작성 방법을 보기 전에는 알 수 없으니 좀 기다려봐야 되겠습니다.
다른 한 편으로 놀라웠던 점은 실버라이트에서 P/Invoke 가 가능해진다는 점이었습니다. 보안 문제 때문에 이것저것 막힌게 많았는데 버전 4에서 COM Interop을 열어주나 했더니 이제 아예 P/Invoke로 WIN32를 열어버리는군요. (물론 Trusted App에 한해서지만 말이죠)
그리하여,
혈당측정기에서 USB로 데이터를 읽어오는 것도 가능하고, Excel을 실행시켜서 데이터를 표시하는 것도 가능합니다!
Out of Browser App에서 여러 개의 윈도우를 띄울 수 있는 기능도 추가되고, 프린트 기능도 추가되니 업무용 프로그램들(LOB)을 Silverlight로 만드는 데에는 전혀 무리가 없을 것 같습니다. WPF 역시 초창기에 기술 전도사들이 자주 보여주던 사례가 3D 쇼핑몰 사례나 미려한 UI를 가진 업무용 어플리케이션이었는데 Silverlight도 그 길을 그대로 따라가는 것 같습니다.
일단 실버라이트 5에 추가되는 기능들은 정말 맘에 듭니다. 빨리 나왔으면 좋겠어요! 새 기능들에 대한 감상은 여기까지 하고 좀 다른 생각들을 해 보았습니다.
지난 PDC에서 HTML5 올인 전략을 발표했다가 급히 실버라이트는 계속 개발될거라고 해명하는 사건이 있었지만, 일종의 해프닝이라고 봐야할 것 같습니다. HTML5가 웹 어플리케이션 개발에 본격적으로 도입되려면 앞으로도 몇 년 정도의 시간이 걸릴 것이고, 실버라이트가 분명히 필요한 영역이 있을테니까요. (모바일 웹앱은 별도로 다룬다는 가정하에서 입니다)
실버라이트 5 계획을 보고 나니, 오히려 걱정할 것은 WPF 아닌가하는 생각이 듭니다. Windows Vista 개발 당시에는 전부 WPF로 갈아엎을 것 같은 기세로 주목 받았지만 정작 지금까지 MS에서 제작한 WPF 기반 어플리케이션은 손에 꼽을 정도라고 알고 있습니다. (Zune과 VisualStudio 2010 정도?) Windows Live Essentials 정도는 WPF 기반으로 만들어줘야 아, 좀 밀어주는구나 하는 기분이라도 들텐데 말이죠. 물론 지금 당장은 닷넷 기반 데스크톱 어플리케이션은 WPF로 만드는 것이 맞겠지만 곧 선호도가 뒤집지 않을까 싶습니다.
그래도 이런게 포함된다면 적어도 데스크톱 전용 어플리케이션은 WPF로 해야지! 하고 (적어도 저만은) 생각하겠다 싶은 게 두 가지 있긴 합니다. 제 경험상 현재 WPF에서 가장 불만인 점은 Silverlight와 XAML 호환이 되지 않는다는 것과, Silverlight XAP와의 연계에 상대적 이점이 전혀 없다는 점입니다. (이미 WPF보다는 Silverlight 기준으로 생각을 하게 되네요)
XAML 호환이 되어서 실버라이트 컨트롤을 WPF에서 그대로 갖다 쓸 수 있거나 동일한 방식으로 커스터마이징 할 수 있어야 효율적인 것은 당연할 것입니다.
두 번째가 중요한데, Silverlight 5가 IE9과 함께 쓰일 때에는 windowless 모드일 때에도 하드웨어 가속이 될 거라고 발표가 이번에 되었습니다. 비슷하게 WPF에서는 마치 일반 WPF UserControl 처럼 Silverlight XAP를 쓸 수 있다면 아마 지금하고 있는 삽질이 절반은 줄어들 것이라고 생각합니다.