이번 XTech 2008 컨퍼런스중 개인적으로 가장 도움이 되는 발표중의 하나였다. 한 분야의 흐름과 동향을 정리하는 만으로도 많은 노력이 필요하기 때문이다. 특히, 웹 브라우져의 경우 FireFox와 IE, 그리고 아이폰의 확산과 더불어 시장을 넓혀가고 있는 웹킷 계열, 그리고 마지막으로 숨은 강자 오페라 등이 치열하게 표준과 업그레이드 전쟁을 벌이고 있다. 이처럼 웹 브라우져 분야의 최신 동향을 정리하는 데 많은 시간이 걸린다.

운좋게도  W3C 모바일 분야에서 일하고 있는 Michael Smith가 모바일 플랫폼을 중심으로 웹 브라우져의 현황에 대한 정리를 해 주었다. 관심갖는 분들이 많을 것 같아 좀 자세히 정리해 본다.

1. 모바일 브라우져 현황

[  오페라  - Presto 렌더링 계열 ]

-오페라 미니4 (2007/11) / 오페라 9.5와 동일한  엔진
       : 향상된 자바 스크립트 엔진 지원
       : 프록시 모델(풀브라우징 아님)
-오페라 미니 / 안드로이드 포팅 버전
        : J2SE로 구현한  J2ME 구현체인  MicroEmulator로 포팅함
        : J2ME/MIDP Call을 안드로이드 Call로 변환
        : 데모로 확인해 보세요 -> 오페라 미니 데모

[  모질라  - Getko 렌더링 계열]

-모질라 Fennec
       : 2008-04 pre alpha 빌드 릴리이즈
       : 2008-08 첫번째 알파 버전 릴리이즈
       : 현재 플랫폼으로는 리눅스(ARM,X86)
       : 노키아의 Miamo를 위한 모질라 기반의 브라우져microB보다 6배 빠름
       : 향후 윈도우 모바일도 지원할 계획임
SkyFire
       : 모질라를 기반으로 하여 오페라 미니같은 프록시 아키텍쳐
       : 2008년 1월 발표 이후 큰 변화 없는 상태임

웹킷 렌더링 엔진 계열 ]

-아이폰 사파리(웹킷)
      :풀브라우징
      :데스트탑 사파리와 동일한 웹킷 엔진  사용
    -안드로이드 + 웹킷(2007.11)
       : 안드로이드의 렌더링 엔진은 웹킷
    - Trolltech의 크로스플랫폼 응용 개발 프레임웍인 Qt4.4 + 웹킷
      :트롤텍은 노키아가 M&A 했음
    - 노키아 S60 웹킷 포팅
       : 2007-08 이후 공식적으로 언급된 바는 없음
       : 들리는 루머로는 사파리3.1을 포팅하고 있다고 함
    -윈도우 모바일 , 웹킷 포팅 관련
       : Iris browser , Wake3

풀부라우징, 아이폰의 확산, 안드로이드 등을 고려할 때 웹 부라우징의 렌더링 엔진으로는 웹킷이 가장 유력한 선두주자로 판단된다. 현재 웹킷의 경우 CSS를 강력히 확장하고 있는 것으로 알려져 있다. 물론 HTML5의 지원과 더불어..
   
2. CSS/DOM

웹 프로그래밍을 할 때 CSS,DOM 프로그래밍은 가장 중요한 부분이자 다중 브라우져 지원을 위해서는 고생을 많이 하는 부분이다. 왜냐하면 브라우져마다 지원하는 CSS 스펙과 DOM 관련 메소드가 다르기 때문이다. 몇가지 주요한 차이점은 다음과 같다.

- 네이티브 자바 스크립트 getElementsByClassName 메소드
      현재 IE만 네이티브 지원이 안되고 Mozilla, WebKit/Safari 3+, Opera 9.5에서는 네이      티브로 지원을 하고 있다. 또한 HTML5에 포함되어 있다.
 
- DOM의 특정 엘리먼트를 추출해 오는 CSS3 Seleccors 지원 현황
       Opera 9.5 and Safari 3.1/WebKit은 43개의 css3.info 테스트를 통과됨
       Mozilla/Minefield는 43개 중에 36개가 통과됨
       IE8은 43개 중에 14개만 통과됨

- DOM의 특정 엘리먼트를 추출해 오는 CSS3 Seleccors API 지원 현황
      querySelector/querySelectorAll 메소드는 현재 웹킷과  IE8에서 지원하고 있음
     
3. 웹 개발 툴 지원 현황

- Firebug for Mozilla : 가장 강력한 개발 환경을 제공하고 있으며 다른 툴들의  교본이다.
- new tools in IE8 : DOM/CSS inspector , script debugger
- WebKit Web Inspector 와 Drosera(script debugger)
- Opera Dragonfly : DOM/CSS inspector , script debugger , Remote Debugging

4. Cross-doc/site 과 로컬 스토리지

- Cross Document Messaging
  HTML5표준에서 postMessage 메소드 정의
  현재 IE8,Opera,WebKit,Mozilla에 구현되어 있다.
  Cross-site 요청시 iframe내에서 기본적으로 사용한다.

- Cross-Site request
  W3C Access control Spec : 모질라에는 구현되어 있으나  FF3에는 모호한 부분이            있어 빠져 있음
  MS IE8의  XDR(XDomainRequest)
  JSON request : 현재 브라우져 업체들은 관심을 갖고 있지 않음

- 오프라인 웹 어플리케이션
  현재  HTML5 Draft recommendation , 2008년 5월  16일자
  ApplicationCacheAPI
  각 응용 프로그램은 저장을 위한 캐쉬와 데이타 추출을 위한 manifest를 갖는다.
  현재 Mozilla/Firefox 3에 구현되어 있고 웹 킷에서는 개발중에 있다.

- HTML5 Client-Side Persistent storage(name/value pair)
  Storageinterface, sessionStorage  와 localStorage 속성
  현재 Mozilla와 IE8에서  지원하고 웹 킷에서는 개발중이다.

- Client-Side SQL API 
  HTML5내에 구글 기어와 유사한 스펙이 정의되어 있음
  웹킷에 구현되어 있음 - 데모 : http://webkit.org/misc/DatabaseExample.html
  ( 사파리로 테스트 해야 함 ^-^ )


앗! 시간이 벌써 많이 지났네요. 벌써 주말 오후입니다. 눈치가 보여서.. 나머지 내용은 다음 포스팅에서..


Posted by 박재현
,

작년에도 열심히 XForms을 Formsplayer사에서 개발하던 Mark Birbeck 의 발표가 있었다. -XForms,REST,XQuery..and skimming , 발표 자료

관련 자료
http://svn.x-port.net/svn/public/presentations/xforms-applications.html
http://svn.x-port.net/svn/public/presentations/

이번에는 웹 개발에 있어 XForms 등의 기술을 통해 적용 가능한 아키텍팅에 대한 발표였다.
현재 일반적인 웹 애플리케이션은 [ 클라이언트 <---> UI 서버 ---> 데이타베이스 ]의 구조로 개발이 된다. 이러한 구조는 데이타를 분리하고 데이타에 대한 표준 인터페이스를 만든다는 장점이 있으나 중간에 서버를 두고 관리해야 한다는 단점과  UI와 데이타가 완전히 분리되지 않았다는 단점이 존재한다.

이러한 것을 다음과 같은 구조로 해결할 수 있다.

클라이언트 <---> UI 서버 --->  웹 서비스 서버 ---> 데이타베이스
Rich 클라이언트 <---> UI 서버 --->  웹 서비스 서버1,2,... ---> 데이타베이스1,..2

이러한 구조에서 UI서버를 구현하는 데 가장 좋은 구현 방법이 XForms이다.
특히, 서버측의 경우 소프트웨어를 설치한 상태 그대로 두고 데이타만 저장하고 사용하는  스키밍(skimming) 방법을 사용하면 효과적이다. 가령, WebDav이나 ATOM( ex, GData)같은 것을 서버측에 설치하고 바로 사용하는 것을 말한다.

XForm으로 서비스를 개발.관리할 때 참고하면 좋을 것 같다.

Posted by 박재현
,

여러분들이 사용하고 있는 웹에 존재하고 있는 여러분 정보의 소유권은 누구의 것일까?
검색 로봇이 수집한 검색 데이타의 소유권은 누구의 것일까?

당연히  그 소유권은 여러분의 것이다. 그런데 그 정보를 갖고 다른 포탈로 옮길 수 있을까?

옮길 수 있다. 그런데 옮길려면 엄청한 노가다를 해야 한다. 자동으로 제공하는 서비스가 없기 때문이다.

$ copy http://Aservice.com blog  http://Bservide.com blog

위와 같은 복사 명령이 가능하면 얼마나 좋을 까! 김국현님이 블러그를 옮기기 위해 고생을 하지 않아도 될텐데^-^

사용자의 자신의 정보에 대한 주권을 회복하자는 운동인 Data Portability에 대한 발표가 간간히 있었다.

사용자 삽입 이미지
“As users, our identity, photos, videos and other forms of personal data should be discoverable by, and shared between our chosen (and trusted) tools or vendors. We need a DHCP for Identity. A distributed File System for data. The technologies already exist, we simply need a complete reference design to put the pieces together.”
 
이들이 말하고 가르치는 것은 아주 단순한다.

● We want control over our accounts
● We want control over our content
● We want to licence our content
● We will move if we want to
● We want to participate openly
● We expect our media to be perma-linked
● We want to share content and knowledge
● We want access to our own data
● We want social tools to aid portability

사용자의 이러한 목소리에 페이스북은 페이스북 커넥터라는 것을 발표하여 회원의 프로필 정보와 인증 정보를 외부 웹 사이트에서 이용하게 할 수 있도록 제공하고 있으며 마이스페이스 또한 이렇게 하고 있다.

국내는? 사용자의 집단지성의 성장과 더불어 집단지성에 의해 창조된 소유물에 대한 권한 문제는 두고두고 국내 주요 포탈들의 골치거리가 될 것 같다.

발표 자료 : http://docs.thinkfree.com/docs/view.php?dsn=845570

Posted by 박재현
,

Twitter 과 Odeo 서비스를 개발하는 데 참여했고 XMPP 등을 이용해 Twitter IM을 개발하는 등유 명한 소셜 네트웍 서비스 개발에 참여한 Blaine CookBuilding the Real-time Web 란 주제로 발표를 하기로 했습니다. 아쉽게도 발표 당일 참석을 하지 못해 다른 관련자 들이 그의 자료를 보고 설명하는 방식으로 진행이 되었습니다.

사용자 삽입 이미지

발표의 주된 내용은 Twitter 처럼 소셜 네트웍 서비스는 웹상에서 실시간 정보 교환, 특히 실시간 업데이트가 필수적인데 이러한 특성을 구현하는 데 있어 기존의 웹 방식으로는 실시간 웹 서비스가 불가능한 상황이라는 것 입니다. 이러한 것을 극복하기 위해서는 새로운 기술이 필요한 데 현재 Comet, XMPP, Ajax polling등 여러가지 새로운 방법이 채택되고 있다는 것 입니다.

기술로만 보면 국내에서도 Comet 등 다양한 방법을 사용하여 이러한 대용량 실시간 메세징  서비스를 하고 있습니다. 이것만 보더라도 이미 기술 그 자체야 국내가 더 앞서 있지 않나 싶습니다. ^-^


Posted by 박재현
,

야후의 Fire Eagle 서비스가  OAuth를 지원하는 것에 대해서는 이전 포스팅에서 언급한 바 있습니다.

2008/05/12 - [Conference/2008 Xtech] - [XTech 2008 ] 야후의 위치 정보 공유 플랫폼 - Fire Eagle

Open ID가 사용자의 계정 정보 하나를 여러 서비스에서 공유하여 로그인을 자동으로 수행하는 서비스라면  OAuth 는 사용자의 로그인 인증(authorization)과정을 표준 API로 만듦으로 응용 프로그램 차원에서 SSO의 구현을 가능하게 하는 것을 말합니다.  특히 그 적용 범위를 서비스와 패키지 모두에 적용할 수 있게 해줍니다. 실제 이  OAuth API를 지원하는 사이트는 동일한 코드로  모두  접근할 수 있게 됩니다. 물론 이 과정에서 해당 사이트에 접근하여 사용자의  승락을 받는 과정을 거쳐야 합니다.

사용자 삽입 이미지
현재 OAuth 1.0 은 이미 표준화가 되었고 구글을 비롯하여 현재 마이스페이스, 야후 등 많은 소셜 네트웍 서비스에서 이를 지원하고 있습니다. 이러한  OAuth에 대한 해당 스펙을 공동 작성한 야후(플리커)의 Kellan Elliott-McCreaAdvanced OAuth Wrangling  라는 제목으로 OAuth에 대한 설명을 해 주었습니다.

기술적으로는 역시 보안이 가장 문제일 것으로 보이는 데 보안 알고리즘으로 RSA-SHAI를 사용할 수 있다고 합니다. 저도 보안쪽은 잘모르는 부분이지만 RSA-SHAI가 정책 기반으로 보안을 수행하는 모바일 분야의 알고리즘 중 하나라고 알고 있습니다. 하여간 이 부분은 두고두고 구현상 이슈가 될 것으로 보입니다.

이러한 OAuth 등의 배경에는 서비스 업체들로 부터 사용자 데이타의 자유( DataPortability )라는 이슈가 자리잡고 있습니다. 가령, 특정 서비스의 사용자 데이타를 손쉽게 다른 서비스로 이동시킬 수 있게 해주는 것 입니다. 페이스북 커넥터와 구글의 프렌트 커넥터 등이 이러한 흐름에 발빠르게 동참하며 주도하고 있는 상황입니다. 물론 국내  포탈 상황과는 아주 첨예하게 대립되는 동향이기도 합니다. 이 부분에 대해서는 따로 정리해 봅니다.

Posted by 박재현
,