상단 사이드바 열기

웹 위의 크로스 플랫폼 전략(3) - 그림의 떡같은 브라우저 밖 세상

웹 위의 크로스 플랫폼 전략(3) - 그림의 떡같은 브라우저 밖 세상 씨리즈 2007/06/06 16:25

"Web as a Platform"은 브라우저라는 창 안의 세상만으로는 아직 익지않은 감입니다. "Web as a Platform"이라기보다는 그냥 브라우저 플랫폼입니다. 웹 응용프로그램이 아무리 수십만대의 클러스터로 이뤄진 검색엔진을 통해서 그리고 엄청난 데이타를 자랑하는 맵 서비스의 매쉬업이라고 하더라도 브라우저 안에서 밖에 돌아갈 수 없는 불쌍한 신세(?)의 응용프로그램입니다. 지도를 3차원으로 보여주려고 해도, 검색의 생산성을 시각적 효과로 향상시키려해도 그 Creativity에는 브라우저 UX라는 벽에 있습니다. 그것은 꽤 오랫동안 사용자에게 익숙해져 있는 것이기도 하기 때문에 타파가 되려 시간이 지날 수록 더 어려워지고 있는 딜레마에 위치한 것이기도 합니다.

브라우저를 벗어나려는 시도는 다양했습니다. 정확히 이야기하자면, 브라우저의 표준세상을 확장하거나 새로운 방식을 제시하는 시도라고 해야겠죠 - 그것 자체가 브라우저를 변형하거나 벗어나는 것이니까요. 언젠가 이야기한 것처럼 브라우저의 안이냐 밖이냐는 사실 state of mind입니다. 사용자가 받아들이는 입장이지 기술 자체가 불가능 하기 때문은 아닙니다. 하지만, 대부분의 시도가 아직까지는 실패로 돌아갔거나 효과가 크지 않은 소강 상태에 있습니다. 여러가지 이유가 있겠지만서도, 그 이유 중 하나는 변화가 일어나기 위해서 모두가 사용할 직접적인 필요성을 가진 - Google이 자신들의 서비스 사용자 기반을 통해서 AJAX의 기반이 되는 기술을 전파한 것과 같은 - 구심점이 없었다는 것입니다. 굳이 브라우저를 통해서 브라우저 밖으로 갈 기술이라면 그냥 브라우저 밖에 있는 기술을 사용하면 되는 것이고 꼭 브라우저 안일 필요가 없었기 때문이었습니다.

브라우저로 보이는 자료를 3차원 그래프로 보여주는 것으로 사용자의 생산성을 높이는 방법은 수없이 많습니다. 하지만, 반대로 현재 브라우저를 통해서 보이는 자료가 3차원 그래프로 보여졌으면 좋겠다고 생각하는 경우는 하루에 얼마나 될까요. 웹브라우징을 하다가 보이는 사진 관리 사이트에서 사진이 펑펑 튀어나오고, 빙글빙글 돌아갔으면 하고 생각하는 경우는 얼마나 될까요. 일반 사용자는 소위 우리가 이야기하는 벤더 락인(Lock-in)이라는 현상과 비슷하게 기술 락인이라는 것을 체험하게 됩니다. 체험이라기보다는 쉬운말로 적응 후 익숙이라고 해야할까요. 재미난 예로, 브라우저와는 상관 없지만, 컴퓨터를 잘 모르는 어떤 사용자에게 화면 UI에 있는 버튼을 누르라고 했더니 버튼을 못찾고 포기했다는 이야기가 있습니다(뭐, 그것 비스무리한 이야기일겁니다;). 컴퓨터에 익숙한 사람이라면 척보면 알겠지만, 뭔가 물리적으로 튀어나온 것을 찾았다면 못찾는게 맞는 것일 수도 있겠죠. 서비스를 제공하는 입장에서는 이런 생각을 하지 않을 수가 없습니다. 우리가 만든 것이 익숙한 것이 좋을까 아니면 덜 범용적이고 익숙하지는 않지만 더 낫다고 생각하는 UX가 좋을까 등의 다양한 요소를 가지고 잽니다(measure).

브라우저 안의 세상은 밖의 세상보다 상대적으로 대부분 규격화된 굉장히 익숙한 모습을 제공합니다. 사용자가 어디를 먼저 볼지를 예측할 근거자료도 많고, 뭘 많이 클릭할지에 대한 연구자료도 많습니다. 그런데 이를 벗어나는 것은 단순히 브라우저가 아닌 응용프로그램에 관한 것이 아니라 이 둘이 연결되어 생기는 예측 불가능한 시너지 혹은 부작용을 낳게 됩니다. 스케일은 다를지라도 인터넷이라는 것으로 우리네들이 연결되는 것에 대한 파급효과를 만들 당시에 예측하기 힘들었던 것과 의미상 다르지 않습니다. 그림의 떡 같은 브라우저 밖 세상 - 웹이라는 거대한 것을 플랫폼으로써 주도하려는 계획 - 을 꿈꾸던 (그 엄청나게 똑똑한) 기업들이 갑작스럽게 뛰어넘어야 할 틈(chasm)이 최소화되어야 한다는 것을 몰랐기 때문에 군침만 흘린 것은 분명 아닐것입니다. 수백가지의 요소가 과연 익기 시작하고 있는가를 판단할 수 있는 방법이 없었기(혹은 너무나 어려웠기) 때문이죠. 또한 익었다고 하더라도 그 요소를 주도하고 있느냐는 관건도 있습니다.

밖으로 나오기 위한 일차적인 요소중 하나는 "되도록이면 많은 사람들"이 혜택을 누릴 수 있거나 혹은 사람들이 그렇게 생각하도록 보여야한다는 것은 필수가 되었습니다. 이것이 크로스플랫폼이겠습니다. 이를 기반으로 기업들은 자신들이 좀 더 앞선 부분에서부터 -  Adobe는 flash와 동영상에서부터, Microsoft는 OS 플랫폼의 노하우에서부터, Sun은 Java 플랫폼 기반에서부터, Mozilla는 브라우저 플랫폼 기반에서부터, 그리고 Google은 서비스 기반에서부터 브라우저 밖을 벗어나려고 하고 있습니다.

(다음편에 계속...)

Posted by charlz
Creative Commons License이 저작물은 크리에이티브 커먼즈 코리아 저작자표시-비영리-동일조건변경허락 2.0 대한민국 라이센스에 따라 이용하실 수 있습니다.

Silverlight, 마이크로소프트의 차세대 웹 전략의 교두보(III)

Silverlight, 마이크로소프트의 차세대 웹 전략의 교두보(III) 씨리즈 2007/05/30 01:55

첫 글에서는 탄생 배경을, 두번째 글에서는 Media Side Story에 관해서 이야기를 했습니다. 그런데 이런 이야기를 하면서 드는 의문이 있을 것입니다. SilverLight를 그렇데 대단한 것으로 이야기한다면 마이크로소프트의 전략은 지금의 웹과 그 기술들을 넘어서 퇴색시키려는 전략을 이야기하는 것일까요? 아주 먼 미래라면, 굳이 마이크로소프트의 기술이 아니더라도 지금과는 어떤 다른 것을 생각할 수 있을 것이겠고, 단기간내의 기술이라면 그렇게 하고 싶다고 하더라도 가능하지 않은 시나리오일 것입니다.

마이크로소프트의 Presentation 기술들을 X,Y축을 Rich와 Reach로 하여 그려보면 그 모습은 한눈에 보입니다:

사용자 삽입 이미지

Microsoft Rich & Reach


Rich란 더 풍부한 사용자 경험을 위한 기술을 이야기하고 Reach는 더 많은 사용자들에게 닿을 수 있는 성격을 말합니다. Future라고 표시되어있는 부분은 아직 미지의 영역이라는 뜻이고 RIA의 방향성과 비슷한 영역일 것입니다. 왼쪽 아래의 영역은 굳이 갈 필요가 없는 영역이겠죠. (참고로 Adobe의 Mike Chambers가 그린 그래프 같은 경우는 시각적으로 Adobe의 기술이 우월해보이는 모습을 위해서 Desktopiness와 Webiness를 한 축에 넣은 이상한 방식을 썼지만 - 마치 WPF가 한쪽 구석에 쪼그리고 앉은 것 같죠^^, Desktopiness의 능력이 한정되어있는 것같이 보이는 이런 모양은 비교자료로는 썩 적합하지 않은 것 같습니다. 왜냐하면 기술의 용도나 기술 자체를 속성이 아닌 겨우 웹과 데스크탑이라는 주관적인 기준으로 제한한 것일 뿐이고 데스크탑 기술이 성장할 수 있는 방향성을 전혀 보여주지 않으니까요.)

위 표에서 Future라는 대형 업체들이 군침을 흘리는 영역을 마이크로소프트가 가기 위해서는 WPF가 Reach를 늘리는 방법이 있거나, HTML/CSS가 Richness의 도약을 하는 두가지 방법을 생각할 수 있겠지만, 이는 불가능한 것은 아니라고 하더라도 이미 단기간에 이루기에는 쉽지 않다는 것을 많은 사례들이 증명해줬습니다.

SilverLight는 이 간극을 최대한 줄여줄 수 있는 기술로 만들어진 것은 이전에도 설명을 했었습니다. 한쪽 속성을 가지는 기술로 현재로써는 상충되는 다른 속성을 가지게 하는 것이 어렵다면, 아예 처음부터 두가지 속성을 가진 기술을 만들어서 그 다음을 생각하기 쉽게 하자는 것입니다. 가능하다면 어느쪽 기술과 합쳐질 수 있다면 금상첨화일테니 그럴 "가능성"만은 남겨두고 말이죠. SilverLight는 태생부터가 위 표의 Future 영역으로 뻗어나갈 수 있는 여지를 위해서 만들어진 기술입니다. 마케터라면 "누구나 쓰는 HTML/CSS + 풍부한 경험의 WPF = 누구나 쓰는 풍부한 경험"을 지향한다고 이야기하겠죠.

SilverLight는 그런 이유로 WPF의 여러가지 성격 외에 ASP.NET과 ASP.NET AJAX가 잘 조화를 이룰 수 있는 형태로 만들어졌습니다. SilverLight의 XAML이 Text 형태인 것은 그리고 XML 형태인 것은 굳이 ASP.NET 뿐만 아니라 PHP든 Java든 어떤 언어라도 쉽게 생성하고 수용하기 쉽게 해줍니다. (누군가가 라이브러리를 만들어주리라 기대합니다.^^) ASP.NET Futures라는 이름으로 ASP.NET (AJAX)에서 SilverLight와의 연동을 위한 기술을 조금 선보이기도 했습니다. XAML DOM을 브라우저에서 접근할 수 있는 것과는 반대로 SilverLIght에서 HTML DOM을 Access할 수 있는 방법도 잘 제공하고 있습니다. 이런 것이 유용한 예로 Jon Udell이 GreaseMonkey에서 SilverLight를 접근할 수 있음을 이야기합니다. 만들어놓고 연동되도록 Bridge를 만든 것이 아니고 애초부터 연동을 생각해서 설계를 했다는 이야기.

이 정도라면 지금의 웹 기술을 버리는 방향이 아니라는 것은 조금 설명이 될 것 같습니다. (SilverLight만이 아니더라도 마이크로소프트의 방향이 웹을 더 수용하는 방향인 것은 근래 MIX에서 발표한 내용에서 찾아볼 수 있을 것입니다.) 웹과의 연동을 위해서 설계를 했다면 이를 최대한 활용할 수 있는 윈윈이 가장 투자한 것을 거뒤들일 수 있는(?) 방법일테니까요. 생산성의 향상과 직결된 Future의 영역을 뭔가가 메꿔주지 않으면 이전의 Software Crisis가 다시 오지 않으리라는 법도 없는 것일지도 모르겠습니다.^^

Posted by charlz
Creative Commons License이 저작물은 크리에이티브 커먼즈 코리아 저작자표시-비영리-동일조건변경허락 2.0 대한민국 라이센스에 따라 이용하실 수 있습니다.

Silverlight, 마이크로소프트의 차세대 웹 전략의 교두보(II)

Silverlight, 마이크로소프트의 차세대 웹 전략의 교두보(II) 씨리즈 2007/05/06 03:57

부제: Media Side Story

아직도 해외 어디어디 갔더니 인터넷이 느려서 UCC 동영상은 도저히 못보겠더라는 이야기를 들으면 많은 동영상/멀티미디어 사이트들이 받는 전망들을 생각할때 갸우뚱하게 합니다. 구체적으로는, 그냥 구글이 유투브 인수하니까 그래보이는거고 인터넷 인프라가 발달한 우리나라에 국한된 이야기가 아닐까하는 의문이겠습니다. 진실은 그럴지도 모르는 일입니다. 혜택을 누리는 사람들과 그렇지 못하는 사람들의 격차가 벌어지고 있는 것인지도 모르겠습니다. 하지만, 분명히 웹을 통해서 rich media(리치 미디어 - 한글로 리치라고 하니까 꼭 leech(거머리)라는 의미같아보이기도 합니다^^)의 혜택을 받는 사용자는 분명 엄청나게 늘어나고 있고, 트래픽량과 증가추이가 이를 뒷받침해주고 있습니다. 순수한 웹브라우저만으로는 가능하지 않은 Media 시나리오들이 웹의 미래가 향한 가는 길이라는 것을 뒷받침해주고 있습니다.

(순수한 웹브라우저를 위한) 웹표준의 영역은 그 노력에 비하여 멀티미디어의 영역과는 상당히 동떨어져있습니다. 브라우저에서 음악이 나오기 위해서는 컨트롤이나 플러그인이 불가피합니다. 브라우저에서 동영상을 보기 위해서도 컨트롤이나 플러그인이 불가피합니다. 10년도 더 되는 시간동안 발전한 swf가 있는데, 이제야 만들어낸 브라우저에서 지원하지도 않는 canvas 태그같은 것으로 간단한 애니메이션을 보는데에 사용자가 만족할까요? 그리고 이것이 권고안이 될때까지 기다려야할까요? 권고안이 되면 기존의 것들을 그 방식으로 바꿔야 할까요? 그리고 정말 브라우저들이 이를 따르는 것이 모두를 위한 일일까요? swf가 표준이 아니고 회사가 소유하는 것이기 때문에 사용자는 웹표준으로 옮겨가야할까요? 동영상/음악을 위한 웹표준이 만들어진다면 어떤 포맷을 지원해줘야할까요? 모든 포맷을 다 사용할 수 있는 컨테이너 포맷이 만들어진다고 하더라도 브라우저에서는 모든 코덱을 지원해야하는 것이 될까요? 이런 것을 정하기 위해서 또 얼마나 더 오랜 시간이 걸릴까요? New Media에 맞는 웹을 위해서는 이렇게 커다란 질문들이 펑펑 쏟아져나올 수 밖에 없습니다.

반대로 생각을 해보죠. Media라는 것은 원래 웹브라우저에 한정된 것이 아닙니다. 그런데, 웹표준에 국한된 웹브라우저는 Media를 한정합니다. 간단히 접근성의 한 예를 생각해봅시다. 스크린리더를 위하여 웹페이지를 읽어줄 수 있도록 만들어야된다는 이야기는 있어도 웹페이지 자체에서 음성을 제공할 수 있는 방법은 웹표준에는 없다는 것입니다. 유일한 방법은 웹브라우저를 확장하는 방법 뿐입니다.

사실 사람들이 웹이라는 것을 바라보는 시각은 "State of Mind"일 뿐입니다. 동영상을 링크를 눌러 다운로드하여 데스크탑의 플레이어로 보는 것과 동영상이 웹페이지에서 보이는 것 두가지가 기술적으로 얼마나 다를까요. 바로보나 다운로드해서 보나. 헌데, YouTube는 엄청난 성공을 가져왔습니다. 그 성공과 함께 Flash Player의 동영상 기술도 같이 성공을 가져왔죠. 꽤 오랫동안 우리의 눈앞에 와있던 New Media를 웹을 통해서 제공하기 위한 노력은 수도 없었습니다. 이런 노력을 위해서는 (이를 거부하지 않는다면) 수없이 깔리는 컨트롤/플러그인들을 이제와서 피할 수는 없습니다.

그렇다면, 단순히 각 기능에 대해 어떤 특정한 Player(컨트롤이나 플러그인)가 아니라 이런 모든 Media를 위한 플랫폼 - 그것도 cross-browser cross-platform이고 보안도 걱정해주는 - 이라면 어떨까요? 웹페이지를 New Media에 맞게 만들 수 있는 그런 플랫폼 말이죠. 그게 요즘 웹의 미래를 그리는 사람들의 공통적인 생각중 한가지입니다. 거기에 여러 업체가 동참했고, 그 중 하나가 마이크로소프트입니다.

그리고 이를 위해 SilverLight가 탄생합니다. 이게 SilverLight의 Media Side Story입니다.

SilverLight라는 단일 플랫폼에서는 이종 브라우저와 OS에서 돌아갈 수 있는 다음의 Media들을 제공합니다:

  • 벡터그래픽
  • 비트맵그래픽
  • 텍스트
  • High-Quality (스트리밍)비디오
  • (스트리밍)오디오
  • 애니메이션
  • 그리고 이 모든것의 통합 wiring.
Posted by charlz
Creative Commons License이 저작물은 크리에이티브 커먼즈 코리아 저작자표시-비영리-동일조건변경허락 2.0 대한민국 라이센스에 따라 이용하실 수 있습니다.

Silverlight, 마이크로소프트의 차세대 웹 전략의 교두보(I)

Silverlight, 마이크로소프트의 차세대 웹 전략의 교두보(I) 씨리즈 2007/04/16 21:35

이야기는 98년도로 거슬러 올라갑니다. 마이크로소프트는 지금은 AJAX라는 방식이 생기게 된 계기인 XMLHttpRequest라는 녀석을 포함하여 브라우저의 방식으로 인한 한계를 극복할 수 있는 새로운 것을 넣고자하는 방법을 고심하면서 나온 여러가지 부가 기술들을 생각해냅니다. XMLHttpRequest와 다른 기술들은 당시 다양한 방식의 아이디어들을 들고 나온 수많은 업체들을 양산하지만, 이 기술들은 사용자들에게는 결국 티핑포인트를 만나지 못하고 어필하지 못하게 되고 그런 업체들도 빛을 보지 못하고 역사의 뒤안길로 사라져버리거나 방향을 바꾸게 됩니다. 이런 기술의 사용률과는 반대로 때마침 브라우저 점유율은 올라가고 이 두가지 상반된 데이타로 인해서 고심 끝에 내린 결론은 여러가지 주변 여건과 웹브라우저의 역사적인 문제들을 총괄해볼때 브라우저에 새로운 것들을 넣는 것보다는 브라우저 바깥 세상을 통해서 웹을 접근하는 것이 괜찮지 않겠냐는 생각이었습니다. 당시의 수치로는 그것이 IE(인터넷 익스플로러)에게는 맞는 것처럼 보이는 선택이었습니다.

그리고는 그 이후 수년동안. 가라앉은 Netscape(넷스케이프)와는 대조적으로 전체적으로 정비를 가다듬은 아들 Mozilla(모질라)는 그간의 실수를 바탕으로 FF(FireFox, 파이어폭스)라는 브라우저를 만들어내고 다시 점유율 탈환에 나서게 됩니다. IE의 이전 결정이 오래가자 변화없음에 싫증과 불편함을 느낀 유저들은 새로움과 신선함의 냄새가 나는 FF를 취향에 따라 골라서 사용하기 시작하고 이런 현상으로 변해가는 점유율과 이전에 내렸던 결론과 다른 방향으로 가는 수치는 움직이지 않던 IE를 움직이게 만듭니다. FF는 배타적이기보다는 IE에서 성공한 기술들도 수용함과 동시에 표준을 통하여 이종 브라우저간의 간극도 조절하자는 운동을 동반하여 브라우저가 더 앞으로 나아 갈 수 있는 모습을 보여주게 됩니다. 이전과는 다르게 이런 상생의 길이 더 뚜렷해지자, IE는 빠른 시간내에 7번째 버젼을 만들어내고 차세대 버젼들에 관한 약속들을 하게 됩니다.

하지만, 이런 현 시점에서 브라우저들의 개발 방향은 새로운 기술의 고안이나 혁신과는 사뭇 다른 길이라는 것이 명백해집니다. XMLHttpRequest의 업그레이드 기능 같은 것을 넣는다고 한들 다른 플랫폼, 다른 브라우저들이 지원하지 않는다면 이전보다 효용가치가 떨어지는 것은 분명하다는 것을 이미 배운 상태입니다. 새로운 기능은 모두가 동의할 수 있는 표준이라는 합의를 통해서 구현하여 넣는 길고 긴 방식을 택할 수 밖에 없는 상황인 것입니다.

이 이야기에 첫번째 조미료로 ActiveX(액티브엑스) - 이는 마케팅 용어로 사실은 OLE/COM을 기반으로 한 개발 방식과 기술을 통칭하는 말입니다 - 라는 말이 등장합니다. 그 기술 중에서도 IE 브라우저를 통해서 볼 수 있는 웹응용프로그램을 확장하는 기술로 바뀐 ActiveX Control(컨트롤)이라는 것이 또하나의 아픈 경험이 되어줍니다. 남용되는 사례가 많이 발생하여 특히나 우리나라에서는 마치 그 기술 자체가 마이너스적인 이미지가 큰 기술로 남게되었지만, 그 남용은 기술 자체의 문제보다는 사용자가 기술적인 부분들을 알지 못하면 막는 장치가 소용이 없는 구현 방식에 있었던 것이었습니다. 예를 들어, 믿을 수 없는 사이트에서 받는 컨트롤은 실행되지 못하거나 사용자에게 묻도록 막았지만, 실상 사용자는 필요에 의해서 혹은 사이트의 편의에 의해 지칭되어 이를 끄거나 묻더라도 무조건 yes를 누르는 습관을 조장한 결과가 되었습니다. 비유하자면 동물들을 기르기 위해서 굉장히 넓은 목초지를 제공했지만, 울타리를 원하는대로 세울 수 있도록 한 것이 되려 울타리를 허술하게 세운 농장주를 조장할 꼴이 된 것입니다. 그 덕에 목초지를 제공한 것 자체도 잘못된 것으로 틀리게 인식하는 결과가 되었습니다. 만일 이런 기술이 없었다면 우리는 브라우저에서 동영상을 보는 것은 틀린 일일것이고, 자바애플릿도 돌릴 수 없는데다가, 흔히 사용하는 Flash 애니메이션도 없었을 것입니다.

두번째 조미료로 이런 브라우저 자체의 움직임과는 별도로 브라우저의 능력을 최대한도로 발휘하거나 넘어서고자 하는 RIA(Rich Internet Application) 기술들이 여러차례 시도되고 만들어집니다. 여러가지가 있었지만, 대표적으로 그 중에서도 95년에 만들어진 이후로 굉장한 점유율을 차지하게된 Flash(플래시)라는 기술을 합치고자 하는 주류와 Flash를 브라우저의 일부로 인정하지 않는 AJAX 주류로 나뉘어지게 됩니다. AJAX는 이미 표준격이 된 기술들을 사용함으로써 이종 브라우저와 플랫폼에서 비슷한 효과를 보여줄 수 있는 이점이 있는 경우이고, Flash의 경우에는 IE에서는 ActiveX Control 기술을 사용하여 FF나 Safari(사파리)에서는 나름대로의 플러그인 기술들로 다르게 구현을 하였지만, 공통 분모인 Flash 런타임이 이런 다른 브라우저간에도 비슷한 동작을 할 수 있도록 보증을 하고 있는 경우입니다. 지금 UCC라는 이름으로 화두가 되고 있는 동영상(Media)같은 것을 사용하기 위해서는 후자 혹은 AJAX+타기술을 사용할 수 밖에 없기 때문에 사실상 Flash의 미래가 더 밝은 편이라는 분위기인 것은 명백한 사실입니다. 동영상 포맷이나 코덱을 하나로 표준화하여 브라우저의 기본기능으로 제공할 것이라는 생각이 호응을 얻을 수 있을지는 미지수겠습니다.

Flash는 위에서 언급했다시피 Flash Runtime이라는 울타리를 수년동안 잘 갖춰놓았고, 또한 모바일 플랫폼을 포함한 여러 플랫폼으로의 포팅도 성공적으로 진행하고 있는 현재의 몇 안되는 브라우저의 확장 대안으로 떠오르는 녀석입니다. 이런 분위기에 편승해서 Adobe도 이전의 전략을 수정하여 Flash를 활용할 수 있는 환경을 꾸미는 여러가지 각도에서 공격적으로 세를 넓히고 있는 중입니다. Flash의 사례와 같이 브라우저 위에 한 층을 꾸밈으로써 그 아래의 브라우저와 플랫폼을 신경쓰지 않아도 되는 크로스 플랫폼/브라우저 방식이 사용자들에게 어필하고 있다는 점은 마이크로소프트에게는 또하나의 배울 점이었습니다.

마이크로소프트에서는 이런 여러가지 문제점들을 뼈저리게 경험해보고 새로운 진화를 위한 방법을 모색하기 위해서 다른 회사/기술들이 저지른 실수들의 문제점들을 모아모아 앞으로 갈 길을 분석에 분석을 하기 시작합니다. 그 전략으로 IE의 개선과 함께 AJAX의 수용을 위해서 수년전부터 개발하여 최근 출시한 ASP.NET AJAX를 일부 소스 공개와 함께 했고, 데스크탑에서의 Rich 응용프로그램 개발의 혁신을 위하여 WPF(Windows Presentation Foundation, 윈도우 프리젠테이션 파운데이션)을 XP/2003/Vista에 정렬하여 내놓았습니다. 이 양극의 중간을 메꿀 필요가 있음은 위에서 설명을 했고 이를 위한 전략의 일부로

"다양한 브라우저와 다양한 플랫폼에서 사용할 수 있고 + 기존의 웹브라우저에서는 할 수 없지만 사용자의 요구가 있는(Media, Richness, Transparency, Programmability) 것들이 포함되면서도 기존의 기술들과 쉽게 연동되고 + 사용자가 쉽게 사용할 수 있으면서도 제대로된 튼튼한 울타리가 지어져 있으며 + 이전의 패러다임보다 나은 패러다임들이 반영된 차세대의 웹의 모양을 만들기 위한"

새로운 플랫폼으로 만들어낸 결과가 바로 SilverLight라는 브랜드 입니다.

Posted by charlz
Creative Commons License이 저작물은 크리에이티브 커먼즈 코리아 저작자표시-비영리-동일조건변경허락 2.0 대한민국 라이센스에 따라 이용하실 수 있습니다.

웹 위의 크로스 플랫폼 전략(2) - 표준이냐 기술이냐...쫓고 쫓기는 추격

웹 위의 크로스 플랫폼 전략(2) - 표준이냐 기술이냐...쫓고 쫓기는 추격 씨리즈 2007/03/01 12:54
표준이 기술 수준을 따라가지 못한다는 말은 그 우위나 경중을 이야기하는 것이 아닙니다. 그 둘의 성격이 다른 것은 물론이거니와 표준은 기술이 존재하고 그 위에서 만들어지는 것이기 때문에 그 시간적인 순서로써의 "표준화"를 이야기하는 것입니다. (구현과는 별도의) 기술적인 바탕이 없고서는 표준이 만들어지는 것이 불가능한 것이라는 뜻이겠습니다. 기술과 표준이 거의 동시에 만들어지는 경우도 있지만, 기술개발 이전에 표준이 만들어지는 경우라면 쉽게 이야기해서 해보지도 않고 수많은 사람들에게 이렇게 해라 라고 이야기하는 것과 마찬가지라고 할 수 있겠습니다.

기술이 아무리 뛰어나고 혁신적이라도 쓰는 사람이 별로 없다면 그 효용 가치는 매우 낮을 것입니다. 그 예로 과거의 앨런 케이등의 Smalltalk라든가 스티브 잡스의 NeXT등이 이런 평가를 받은 경우겠죠(해당 기술의 현재는 사뭇 다릅니다만). 추앙받는 개념이라도 사람들이 적응하는 것이 쉽지 않다면, 널리 사용되기가 어렵습니다. 이런 경우에는 그 기술이 후세대(혹은 기간이 좀 지난 후)에 다시 나타나게 되는 경우가 대부분입니다. 사람들이 받아들일 준비가 된 상태에서 다시 시작해보려는 노력이겠습니다.

기술은 사람들 각자의 머릿속에 있는 것이고 이것을 구현하는 것인데 개개인에게는 구체적이라고 하더라도 모아지면 굉장히 추상적인 모습이기 때문에, 표준은 그것을 명문화 - 개발팀등을 대상으로 한다면 표준보다는 스펙명세등이 되겠죠 - 하는 것입니다. 명문화한다는 것은 어떤 시점의 스냅샷을 찍는 것이라고도 할 수 있겠습니다. 글로 적는 중에도 사람의 머릿속은 회전하며 기술을 발전을 해갑니다.

기술은 항상 개인이 만드는 것이 아니고, 어떤 주체들이 낸 결과물로 만들어지게 됩니다. 그 주체가 물론 개인이 될 수도 있지만, 주로 기업 혹은 단체인 경우가 많습니다. 개인이건 기업이건 단체이건 기술을 만든 곳과 기술을 사용하려는 쪽의 인터랙션을 동반하고, 인터랙션은 이익관계와 소통의 문제 역시 동반하게 됩니다. 표준을 만드는 것(표준화)은 이런 관계의 얽힘입니다. 한사람이 아닌 많은 사람들의 머릿속에 있는 것들을 잘 조율하여 글로 적는 일은 어떤 한사람에게도 만족을 주기 힘든 일입니다.

표준이 기술을 따라가지 못하기 때문에 표준이 만들어질때까지 혹은 그 만들어지는 과정에서 어떤 기술을 만들기 위해서 기다릴만한 참을인(忍)자가 없는 주체들은 이를 해결할 방도를 찾게 될 것입니다. 새로운 표준을 만들어서 주도하거나, 표준을 따르지 않거나 하는 방법밖에는 없겠죠. 결국 당장의 대세는 표준을 따르는 것이 최선으로 보이더라도 기술의 혁신을 위해서 표준과는 별도로 기술개발을 할 수 밖에 없다는 것입니다. 기약도 없이 표준이 권고안(Recommendation)이 될 때까지 기술 개발 스케줄을 맞출 회사는 그리 많지 않을 것입니다. 최선의 경우 일단 표준의 draft만 따르고, 그 수준에서 다른 기능들을 늘리고 혁신시켜서 기술을 완성하겠죠.

설명이 길었는데, 스냅샷인 표준으로 많은 사람들에게 물을 대느냐, 아니면 기술을 더 앞서나가도록 독자적으로 개발해나가느냐의 밸런싱은 바로 이번 글의 제목과 같은 추격전을 이야기합니다. 특정 하드웨어를 위한 기술로 사람들에게 굉장한 모습의 UI를 만드느냐, 아니면 하드웨어에 관계없이 모두 돌아갈 수 있는 공통분모만을 최대한 사용해서 UI를 만드느냐...어느 경우라도 목적에 따라 장단점을 가지게 되기에 그 레슬링은 계속됩니다.

이런 기술 개발이 유효하기 위해서 최근의 분위기에서 할 수 있는 것 중 대표적인 대안이 될 수 있는 것이 무엇이냐하면 바로 크로스 플랫폼이라는 것입니다. 이 공통분모를 최대한도로 짜내는 작업은 표준화의 사명 중 하나인 "모두가"라는 말을 지켜줄 수 있게하는 방법 중 하나입니다.

모든 플랫폼을 지원한다는 것은 상이한 인력과 그에 따른 부가적인 비용으로 인해서 쉬운일은 아니었습니다. 비용이 100이면 2개의 플랫폼을 지원하기 위해서는 200 혹은 그 이상까지도 필요할 수 있습니다. 그런 비용이 들어서 ROI(투자 대비 효과)가 크다면 문제가 아니겠습니다. 이런 크로스플랫폼은 여러 OS를 지원하는 응용프로그램을 만드는 것이 아닙니다. 기반 플랫폼을 만드는 것이고 따라서 그에 따른 부가가치를 생각하는 것이겠습니다.

크로스플랫폼 지원이라는 말은 같은 계층(Layer)의 다른 이질 하부 플랫폼에서도 동일하게 혹은 적정 수준에서 논란의 여지가 적을 정도로 비슷하게 동작함을 이야기합니다. 이전글에서 이야기한 동일한 계층의 "플랫폼(platform)"간의 벽을 허물어 건널 수 있게(cross)한다는 의미입니다. 수직 플랫폼이 아닌 수평 플랫폼을 구현하기 위한 한가지 방법이고, 컴퓨팅의 역사적으로 다양한 방법으로 시도되고 있는 소프트웨어史의 특성이라고도 할 수 있습니다.

모두가 웹에서 표준을 따른다면 이미 표준이 크로스 플랫폼을 어느정도 보장을 하는 것입니다. 문제는 표준을 따르지 않을 경우의 기술의 혁신 방안인데, 직접 크로스 플랫폼 지원을 하는 것으로 이를 해결하고자 하는 것이 지금 현상의 대안 중 하나입니다. 예를 들면, 플래시(Flash) 기술은 다양한 플랫폼을 지원하는데, 개발 방법론은 동일합니다. 혹은 가상화(virtualization) 기술은 내가 쓰는 플랫폼위에서 다른 플랫폼이 돌아갈 수 있게하여 동일한 경험이 가능하도록 하는 것입니다.

크로스 플랫폼이라는 말은 전혀 새로운 것이 아닌 것은 익히 아실 것입니다. "cross platform"의 구글 검색 결과로 89,800,000개의 결과가 리턴됩니다. FF(FireFox)도 퀵타임(QuickTime)도 혹은 씽크프리(ThinkFree)도 크로스 플랫폼을 지원합니다. 단지 모두가 어떤 것을 그 위에 얹느냐가 다른 것입니다. 요는 모두가 혜택을 누릴 수 있도록 하는 한가지 방법 중 하나라는 것이고, 이런 것들이 바로 표준과 기술의 밸런싱이라는 관점으로 해석 될 수 있습니다.

(다음편에 계속...)
Posted by charlz
Creative Commons License이 저작물은 크리에이티브 커먼즈 코리아 저작자표시-비영리-동일조건변경허락 2.0 대한민국 라이센스에 따라 이용하실 수 있습니다.

웹 위의 크로스 플랫폼 전략(1) - 플랫폼화 되어가는 소프트웨어들

웹 위의 크로스 플랫폼 전략(1) - 플랫폼화 되어가는 소프트웨어들 씨리즈 2007/02/14 10:50

지하철을 타기 위해서 대기하는 위치를 플랫폼이라고도 하고, 무대처럼 올라간 곳을 플랫폼이라고도 합니다. 여러가지 뜻으로 사용되지만 컴퓨팅에서는 다음의 뜻으로 사용됩니다.

"In computing, a platform describes some sort of framework, either in hardware or software, which allows software to run.(플랫폼은 하드웨어나 소프트웨어 위에서 소프트웨어가 돌아갈 수 있도록 해주는 프레임웍과 같은 것을 이야기한다.)" - Wikipedia의 정의

쉽게, 우리가 흔히 사용하고 있는 PC의 CPU가 제공하는 x86 아키텍쳐/x64 아키텍쳐 같은 것들이 하드웨어 플랫폼의 예가 되겠습니다. 이 하드웨어 플랫폼 위에서는 Bios같은 소프트웨어가 돌아가고, OS같은 소프트웨어가 돌아가고, OS를 기반으로 또 다양한 소프트웨어들이 돌아갑니다. 마이크로소프트 Windows, 애플의 OSX, 선의 Solaris, Linux 등은 OS 플랫폼입니다. 그 OS 자체가 다른 소프트웨어를 돌릴 수 있는 기술로 위치해 있기 때문에 역시나 플랫폼이라고 불립니다. 이런 플랫폼들은 해당하는 기술 위에서만 사용할 수 있는 소프트웨어를 만들 수 있는 수직(Vertical) 플랫폼이라고 할 수 있겠습니다. OSX의 실행파일(바이너리)을 Windows 상에서 돌리는 것을 불가능하다고 하겠죠.

Sun의 Java나 Microsoft의 .NET Framework 이라는 소프트웨어 플랫폼도 있습니다. 역시나 Java의 바이너리를 .NET Framework 상에서 돌릴 수 없습니다만, 이들이 나온 본래의 취지 중 한가지가 하드웨어 혹은 OS 플랫폼과는 상관 없는 소프트웨어를 만들기 위함이었기 때문에 그 태생은 수평 플랫폼이라고 이야기할 수도 있겠습니다. Java나 .NET Framework의 VM이 있는 곳이면 어디든지(OSX 위라든지, Windows 위라든지) 동일한 바이너리를 실행할 수 있는 모습을 이야기하겠죠. 하지만, 실상은 그 하부 플랫폼에 너무 가깝게 만들어진(coupled) 이유로 쉽지가 않았습니다. 이들도 OS라는 플랫폼 위에 하나의 레이어(Layer)를 얹은 소프트웨어 플랫폼입니다.

월드 와이드 웹(WWW)이라는 것이 도래한 이후에는 HTML이라는 마크업 언어(Markup Language)를 알아들을 수 있는 레이어로서의 브라우저라는 플랫폼이 등장했습니다(* 브라우저를 플랫폼으로 보는 견해는 이견이 있을 수 있지만, 여기서는 일반적인 플랫폼의 의미를 위한 예임을 강조합니다). 이 플랫폼 또한 하부의 하드웨어나 OS등의 플랫폼과는 무관하게 동작할 수 있는 꿈을 가지고 만들어졌고, 기반이 되는 HTML은 실행이라는 개념을 한단계 추상화하여 Java나 .NET Framework과는 다르게 이들의 바이너리 속성(실행파일)을 전혀 신경쓰지 않아도 되는 텍스트를 기반으로 한 언어를 사용하였기 때문에 이를 이해하는 어떤 브라우저에서도 비슷하게 데이타와 링크를 보여줄 수 있었습니다. <b>라는 태그는 하드웨어와 OS 그리고 브라우저가 어떤 식으로 동작하든간에 문자를 볼드(bold)로 보여주면 되는 의미를 전달하는 역할을 하고, 이는 이런 동작 자체는 추상화하여 장식한 말 그대로의 마크업이었습니다.

점차 웹 응용프로그램들이 복잡미려(Sophisticated)해지면서 이질적인 브라우저 플랫폼간의 괴리가 발생하기 시작했습니다. 비록 텍스트로 되어있고, 문법(Syntax)이 표준화되었더라도, 텍스트들의 표현에 관한 시맨틱 자체는 표준화되어있지 않은 이유로 그리고 표준을 따르지 않는 구현들의 추가로 이런 현상은 가속화되었습니다. 설명을 위해 간단히 <p> 태그를 예로 들면, 몇 픽셀만큼 얼마나 어떤식으로 paragraph를 구분해야하는지에 대한 약속은 되어있지 않기 때문에 다른 브라우저간의 구현이 다르게 되고 최종 결과물간의 괴리가 생기게 된다는 것입니다.

이런 괴리를 해결하기 위한 늦은 표준 작성 노력은 너무나 소수였던 IE 이외의 브라우저 점유율로 인해서 모멘텀을 얻지 못하고 있었습니다. 그런 와중에 높은 점유율을 가진 인터넷 탐색기(IE)가 일부 사용자의 구미에 맞는 모습을 보여주는 다른 브라우저들에게 조금씩 사용자 내주기 시작하면서 이런 괴리는 부각이 되기 시작했고, 이리하여 이런 괴리를 해결하기 위한 사용자들의 해결책으로 웹 표준화 운동이라는 것이 생겨납니다. 점하나의 위치가 중요한 디자이너들의 불만도 불만이지만, 심지어는 사용자들에게도 직접적인 불편이 초래되었기 때문에(타 브라우저를 사용하면 아예 보이지 않는 일) 이런 현상은 지극히 당연한 것이었습니다.

그 결과로 이런 웹 표준화 운동과 함께 표준화로 재무장된 새로운 웹 응용프로그램의 조류가 만들어지면서 "플랫폼으로써의 웹(Web as a Plaform)"이라는 캐치프레이즈가 유효해지게 됩니다. 웹의 취지에 맞게 어떤 브라우저에서도 돌아가는 웹 응용프로그램으로의 모습을 향해 가는 방향성을 보여주는 것이죠. 브라우저라는 하부 플랫폼 종속적인 플랫폼이 아니라 웹 자체가 수평 플랫폼의 역할을 하며, 이런 (역시나) 하드웨어/OS 플랫폼과는 무관하게 응용프로그램들이 연동되고 유기적으로 동작하고 표현되며 사용자와 인터랙션할 수 있는 프레임웍을 만들어낼 수 있는 기반이 됩니다.

이것이 현재의 플랫폼들의 모습이고 사용자에게 점차 당연히 받아들여지는 방향으로 전해지고 있는 상황입니다. 소프트웨어는 필연적으로 사용자에게 가까워지기 위해서 각 기술 위에 또하나의 기술을 창출하고 플랫폼화하는 방향으로 갈 수 밖에 없습니다.

하지만, 이런 일련의 (필수적인) 추상화 단계(Layer)를 거친 과정의 현 시점은 두가지 약점이 드러나고 있습니다 - 그리고 위 이야기가 아니더라도 역사적으로도 많은 기술들이 비슷한 현상을 겪습니다. 하나는 표준이 기술 속도를 따라가지 못한다는 것과 다른 하나는 브라우저라는 상자 밖을 나가지 못하고 있다는 것입니다.

(다음편에 계속...)

Posted by charlz
Creative Commons License이 저작물은 크리에이티브 커먼즈 코리아 저작자표시-비영리-동일조건변경허락 2.0 대한민국 라이센스에 따라 이용하실 수 있습니다.

웹 위의 크로스 플랫폼 전략(0) - 목차

웹 위의 크로스 플랫폼 전략(0) - 목차 씨리즈 2007/02/13 00:51

원래는 어딘가에 송고해볼까 하는 생각을 가지다가, 잡지에 적으면 하도 편집이 많이 되고 내 허접성이 드러나지 않는 단점(?)으로 인해서 그냥 포스트로 끄적거리던 글입니다. 엉성해보이는 글을 좀 덜 엉성해보도록 하기 위해서 몇번으로 쪼갤 수 있게 글을 적었는데, 아무래도 블로그의 포스팅으로는 그게 편하겠죠. 요즘 알게 모르게 웹에는 표준바람, 브라우저바람, 액티브엑스칼바람 이면에서 이전과는 다른 크로스플랫폼형 신종 무기가 등장하고 있는데 그에 관해 적어보았습니다. 다음과 같이 진행해보려 합니다.

웹 위의 크로스 플랫폼 전략(1) - 플랫폼화 되어가는 소프트웨어들
웹 위의 크로스 플랫폼 전략(2) - 표준이냐 기술이냐...쫓고 쫓기는 추격
웹 위의 크로스 플랫폼 전략(3) - 그림의 떡같은 브라우저 밖 세상
웹 위의 크로스 플랫폼 전략(4) - 미정(가제 - 어도비의 전략)
웹 위의 크로스 플랫폼 전략(5) - 미정(가제 - 마이크로소프트의 반격)
웹 위의 크로스 플랫폼 전략(6) - 미정(가제 - 결국 브라우저를 탈출할 수 있을 것인가)

2007/2/13 - 네, 아래의 4,5,6편은 제목이 미정입니다. 글을 먼저 쓰고 나서 제목을 확정하려고 합니다. 1,2,3편은 대충 윤곽만 적어두었습니다. 앞으로 다 적는데 얼마나 걸릴지 모르겠지만, 나름 차례가 있는 계획적인 글도 시작해보게 되네요.^^

Posted by charlz
Creative Commons License이 저작물은 크리에이티브 커먼즈 코리아 저작자표시-비영리-동일조건변경허락 2.0 대한민국 라이센스에 따라 이용하실 수 있습니다.
1