iPhone을 뒤 업은 2등의 반격

기타|2009. 10. 6. 18:16
올 한해는 iPhone으로 참 시끄러운 한해였던 것 같습니다.
연말에 iPhone이 실제 출시되면 더 재미있겠죠?

최근 움직임을 보면 만년 2등 기업인 KT와 Daum이 iPhone을 뒤 업고 새로운 반격을 시도하는 모습이 참 재미있습니다. 특히, 이동통신시사장의 영원한 강자이며, 국내 IT 인력으로 부터 늘 거친 비판을 받는 SKT의 반응도 흥미롭습니다.

KT는 iPhone = KT라는 공식으로 혁신의 이미지를 사용자에게 심어주고 있습니다. 일단 이 공식이 잘 먹히면 다가올 스마트폰 시장에서 좋은 성과를 얻게 될 것입니다. 사실 iPhone보다는 iPhone이 몰고올 모바일웹과 스마트폰 시장에서 절대 SKT에 밀리지 않겠다는 KT의 각오가 엿보입니다.

반면 SKT는 이래저래 딴지를 놓으면서 iPhone을 출시하겠다고 하지만, 아직까지 1등만의 독점적 권리에서 자유롭지 못한 인상을 주고 있습니다.

두 회사의 경쟁에서 가장 큰 이득을 보는 사람은 역시 사용자입니다. 한국의 모바일 웹과 스마트폰 시장이 이제 숨통을 트려나 봅니다.

얼마전 Daum은 전직원에게 iPhone을 배포하겠다는 발표를 했습니다. 역시 2등 기업으로 모바일웹에서는 Naver에 절대 밀리지 않겠다는 비장한(?) 각오를 느낄 수 있습니다. 그 동안 iPod Touch용 애플리케이션을 꾸준히 출시를 하는 등 많은 준비를 해왔지만, Naver도 맘만 먹으면 금새 따라잡을 수 있기 때문에 어떤 결과가 나올지는 아직 확실하지는 않습니다. 확실한 것은 Daum은 iPhone 출시와 더불어 모바일쪽에 승부수를 걸었다는 것입니다. 앞으로 뭔가 획기적인 서비스가 등장하기를 기대해 봅니다.

1등 기업은 1등이기 때문에 다시 밀려날 수 밖에 없는 것이 현실입니다. 아무리 발버둥쳐도 자기것을 지켜나가면서 선두를 고수하기는 어렵습니다. 결국, 새로운 패러다임을 받아들지 못하고 시장에서 쇠퇴하고 맙니다.

그런 경우를 참 많이 보아왔습니다. 한 때 잘 나가던 하이텔, 천리안의 퇴출은 저에게 충격이였지요. 유료 모델을 고수하다가 결국 다음, 네이버에 밀리고 말았습니다. MS도 요즘 어렵습니다. 기존의 OS, Office시장이 리눅스, 구글 등에 의해 위협 받고 있습니다.

1등 여러분 좀 더 혁신하시고, 2등 여러분 화이팅하시기 바랍니다.

'기타' 카테고리의 다른 글

우리에게 이야기가 없는 이유  (4) 2010.08.20
투표 독려 광고 (모두들 퍼 나르세요)  (2) 2010.06.01
느낀 사람만이 좋은 제품을 만든다  (2) 2009.09.25
지키드리지 못해 죄송합니다...  (0) 2009.05.24
About  (0) 2009.05.22

댓글()

느낀 사람만이 좋은 제품을 만든다

기타|2009. 9. 25. 12:36
드디어 iPhone이 국내에 출시가 됩니다. 정말 많이 늦었지만, iPhone을 통해 우리가 얼마나 시대에 뒤 떨어졌는가를 새삼 느끼게 되었습니다.

삼성과 LG가 현재 2,3등을 달리며 전세계 휴대폰 시장을 리드하고 있습니다. 하지만 자세히 살펴보면 상당한 위기에 봉착해 있습니다. 여전히 1등을 달리는 노키아에 비해 그 위기는 잘 드러나 있지 않고 있지만, 노키아와 마찬가지로 위기는 스마트폰에서 시작합니다.

국내기업은 유독 스마트폰에 약합니다. 스마트폰 시장만 보면 국내기업은 대만의 HTC보다 점유율이 낮습니다. 오랫동안 스마트폰을 출시해왔지만, 심지어 HTC에 밀리는 이유는 무엇일까요?

그것은 바로 우리가 스마트폰을 사용할 줄 모른다는 것입니다. 국내의 열악한 무선 인터넷 환경에서 그 누구가 스마트폰을 제대로 써봤을까요?
Flash와 ActiveX Control 없는 웹을 상상하기 힘든 국내 인터넷 환경에서 풀브라우징의 필요성을 느꼈을까요?

스마트폰에서도 문자는 200개만 저장되면 괜찮다는 생각은 누구 머리에서 나왔고 누가 OK 했을까요?

핸드폰에서 문자면 그만이지 왜 메일까지 써야하는지 이해가 안가지요?

이 모든 것이 왜곡된 국내 무선인터넷 요금제로 부터 시작되었습니다. 대부분의 사용자는 터무니 없이 비싼 데이터 요금에 일종의 트라우마를 갖고 있다보니, 좀처럼 거기서 헤어나오지 못하고 있습니다.

엔지니어는 자신이 경험한 그 수준에서 제품과 서비스를 만들수 밖에 없습니다. 국내에서 제대로 된 모바일웹과 스마트폰을 경험하지 않고서는  세계적으로 경쟁력있는 제품과 서비스를 만들 수는 없습니다.

이제 iPhone이 나오고서 통신사도 적절한 인터넷 정액 요금제를 내 놓기 시작했습니다. 옴니아2도 곧 나온다고 합니다.

정말 세계적으로 경쟁력 있는 스마트폰을 만들고 싶다면, 피쳐폰 수준에서 고민하지 말고 직접 스마트폰과 모바일 웹을 경험해야 합니다.

그래야, 우리도 iPhone보다 더 좋은 스마트폰과 서비스를 만들 수 있습니다.

느끼지 않고는 절대 만들 수 없습니다.

'기타' 카테고리의 다른 글

투표 독려 광고 (모두들 퍼 나르세요)  (2) 2010.06.01
iPhone을 뒤 업은 2등의 반격  (0) 2009.10.06
지키드리지 못해 죄송합니다...  (0) 2009.05.24
About  (0) 2009.05.22
Python 간략 정리  (3) 2009.04.22

댓글()

미래 웹포럼 2009 후기

Web|2009. 9. 9. 13:32
지난 9/4(금)에 미래 웹 포럼 2009 워크샵 행사가 성황리에 끝났습니다. 많은 웹 개발자, 기획자, 학생 분들이 참석하셨고, 패널 토의까지 많은 분들이 남아서 눈 앞에 등장한 HTML5와 모바일 웹에 대한 관심을 보여주셨습니다.

이번 행사에서는 저는 "Fennec의 현재와 미래" 제목으로 Fennec 개발 진행 상황에 앞으로 계획에 대해 소개하였습니다. 그 동안 Fennec 개발에 참여하면서 얻은 정보와 주요 Fennec 개발자 블로그를 참고해서 가능한 모질라의 개발 의도를 잘 전달하려고 노력하였습니다. 더불어 Samsung Windows Mobile SDK도 소개하였습니다. (다른 분들의 발표 내용은 여기에)

참석자 분들이 대부분 웹개발자인데, 너무 Fennec 구현에 대한 기술적인 내용을 많이 언급하지 않았나 싶습니다. Device API도 웹개발자 보다는 Add-ons이나 XUL 애플리케이션 개발자에게 관심가는 주제가 아니였나 생각합니다.

부족하지만, 그날 참석을 못한 분은 동영상과 발표 자료를 보시면 Fennec의 개발 진행 상황을 이해하는 도움이 될 것 같습니다.

아울러, 이번에 공개된 Fennec 1.0 beta3 for Windows Mobile를 옴니아를 비롯한 국내에 출시된 Windows Mobile 단말에 설치해 보시고 테스트해서 버그를 올려주시면 좋겠습니다. 특히, 국내 옴니아는 해외 옴니아와 사양이 달라서 Fennec 개발자들이 문제를 잘 모를 수 있습니다.

옴니아2는 이미 해외에서 출시되어 bugzilla에 버그가 등록되고 있습니다. 국내에도 출시되면 Fennec의 사용자가 많이 늘어날 것 같습니다.

패널 토의에서는 HTML5에 대한 많은 이야기가 오고 갔습니다. 과연 앞으로 HTML5를 무장한 웹이 Mobile Application Platform이 될 수 있느냐가 큰 관심이였습니다. 웹개발자에게는 모바일에서 widget뿐만 아니라 애플리케이션 개발까지 관심 영역을 확대할 수 있는 기회가 될 수 있기 때문입니다.

시기는 무르익었다고 생각합니다. Widget은 그 다리 역할을 할 것이고, Palm Pre와 앞으로 출시될 Goolge Chrome OS에 볼 수 있듯이 HTML5가 모바일 애플리케이션 개발에서 큰 역할을 하게 될 것입니다.

Samsung  Mobile Innovator에서 이번에 공개한 Widget 개발툴도 좋은 예인 것 같습니다. 아직은 해외 삼성 단말만 적용되지만, 이런 Widget 개발툴을 미리 경험하는 것도 앞으로 다가올 미래를 대비하는 좋은 방법이 될 것 같습니다.

댓글()

Fennec 1.0 beta3 for Maemo 소개

Mozilla|2009. 9. 1. 01:10
Fennec 1.0 beta3 for maemo

지난 8월 20일날 Fennec 1.0 beta3 for Maemo가 출시되었습니다. 6월 26일날 beta2가 나왔었으니까, 3개월만에 새로운 버전이 공개된 것입니다.

앞으로 beta4가 한 번 더 공개되고 연말에 정식 버전이 나올 예정이라고 합니다. Windows Mobile버전은 그 보다 느려서 내년초에 정식 버전이 공개될 것 같습니다.

이번 beta3의 가장 큰 특징은Flick/ Panning속도의 증가와 관성 스크롤 기능의 향상입니다. 이를 위해 타일 방식으로 한번 화면에 노출된 영역을 Cache하여 관리하는 렌더링 방식을 도입했습니다. 이제 Fennec에서도 iPhone 처럼 flick 속도에 맞추어 페이지가 스크롤되는 모습을 볼 수 있게 되었습니다.  자세한 구현 방법은 아래 글을 참고하세요.

자, 그럼 새롭게 변경된 UI를 살펴볼까요? 기능적으로 추가된 부분은 없지만, 전체적으로 UI가 모양이 조금씩 변경되었습니다.

Fennec 1.0 beta3 for maemo

Awesome Bar와 도구모음에 적용되었던 그라데이션이 사리지고 UI은 짙은 회식으로 변경되었고, 전체보기 상태에서만 종료 단추가 추가되었습니다.

메모리 절약과 성능향상을 위해 Windows Mobile 버전에서 적용된 Theme가 Maemo까지 동일하게 적용된 것입니다.

Fennec 1.0 beta3 for maemo

우측 도구 모음에 있는 별 단추를 누르면 "Page Bookmarked"라는 메시지 상자가 나타납니다. 이 때, Edit 단추를 누르면 아래와 같은 Bookmark편집 대화 상자가 나타납니다.

Fennec 1.0 beta3 for maemo

사이트 제목, URL을 변경할 수 있고 태그도 입력할 수 있습니다.

Fennec 1.0 beta3 for maemo
Awesome Bar 모습입니다. 입력하는 텍스트에 해당하는 추천 URL을 화면에 보여줍니다. 이 상태에서 하단에 있는 검색 사이트 단추를 누르면, 입력한 키워드에 대한 검색 결과를 보여줍니다. Mobile에서 작은 화면을 효과적으로 활용한 예라고 할 수 있습니다.

이 상태에서 "See All Bookmarks"를 선택하면 아래와 같이 등록한 모든 Bookmark를 볼 수 있고, 편집 및 폴더 관리를 할 수 있습니다.
Fennec 1.0 beta3 for Maemo (Managing Bookmarks)

Fennec 1.0 beta3 for maemo
모바일 환경에서 꼭 필요한 패스워드 저장 기능입니다.

Fennec 1.0 beta3 for maemo
다운로드 링크를 클릭하면 위와 같이 다운로드할 파일을 어떻게 처리할지 물어봅니다.

Fennec 1.0 beta3 for maemo
그런데, 다운로드한 이후, 다운로드 리스트 보면 항목이 보지 않습니다. 버그일까요?

Fennec 1.0 beta3 for maemo
Add-ons은 URL Fixer가 유일하네요. Fennec의 코드가 계속 변경되면서 기존 Add-ons가 호환되지 않는 것 같습니다.
URL Fixer를 설치하면 Firefox처럼 Fennec을 다시 시작해야 합니다. 재시작하는데, 약간의 시간이 걸립니다. 그 후 URL창에 "google.con"이라고 입력하면, 아래와 같은 대화상자가 나타납니다.

Fennec 1.0 Beta3 for Maemo  Add-ons

당연히 google.com을 입력하려고 했던 것이므로, "Yes"를 선택하면 google.com을 접속을 합니다.

Fennec 1.0 beta3 for maemo
Preferences모습입니다. 기본적인 옵션 설정이 제공되고 있습니다.

이상으로 Fennec 1.0 beta3 for Maemo의 주요 기능을 소개하였습니다. beta에 와서 특별히 추가되는 기능은 없고, 성능 향상과 UI 모습 변경이 눈에 띕니다. 현재 브라우징을 하다보면 간혹 Fennec이 이유없이 종료되는 현상이 발생하고 있습니다. 이제 어느 정도 성능 문제도 해결되었으니, 안정성에 좀 더 노력을 기울여야 할 것 같습니다.

참고

댓글()

여기는 Desktop Summit입니다.

GNOME|2009. 7. 8. 11:37


올해 Guadec(GNOME Conference)는 KDE Akademy와 함께 Spain Gran Canaria라는 섬에서 열리고 있습니다. 우리나라로 따지면 제주도 같은 곳인데, 한국에서 정말 먼 곳이네요. 오는데만 24시간 걸렸습니다. 약간 해안가가 길어서 그렇지 제주도가 훨 좋은 것 같습니다. 물론 해변은 참 뜨겁습니다. :-)

서로 다른 성격의 두 커뮤니티가 모여서 Desktop Summit에서 공통사를 논하고 따로 자기들만의 이슈는 각자 Conference에서 토론하고, 저녁에는 파티에 모여서 열심히 마시고 놀고.. 모질라 보다 분위기는 더 자유롭고 다양한 것 같습니다.

올해는 Clutter라는 기술이 핫 이슈인 것 같습니다. OSX, iPhone이 가져온 UX바람이 리눅스 Desktop에도 거세게 몰아치고 있습니다. Desktop 부터 Mobile까지 멋진 Effect와 함께 좀 더 편한 사용자 환경에 대해 고민하는 모습을 볼 수 있었습니다.

GNOME Desktop 3.0에서는 GNOME Shell이 사용된다고 하는데, UX가 기존 Desktop과 확연히 다릅니다. 기존 Compiz가 Windows Manager 수준에서 보조적인 3D효과를 보여주었다면(우리도 이런거 된다는 수준), GNOME Shell은 Clutter기술을 이용해서 Desktop환경과의 통합을 시도하고 있습니다. 아직까지 논란이 없는 것은 아니지만, 리눅스 Desktop 수준을 두 단계는 끌어올릴 것 같습니다.

그외 Nokia Maemo의 QT로의 전환도 상당한 논란이 되고 있습니다. 이미 Nokia가 QT를 인수했기 때문에, 정해진 수순을 밟아가는 것이라고 보고 있지만, GNOME에서는 별로 달가워하고 있지는 않네요.

Desktop Summit 2009
여기서 한국 사람을 만났습니다. 한국 KDE에서 오신 peremen님입니다. 반가워서 함께 사진도 찍었습니다. 내년에는 더 많은 한국분들을 뵐 수 있었으면 좋겠군요..

Desktop Summit에 대한 자세한 소식은 아래 Link를 확인하세요~

  • http://www.grancanariadesktopsummit.org/



  • http://twitter.com/gcds_2009


Desktop Summit 09

그놈의 발바닥 로고는 아직까지 좀 부담스럽군요..:-)

'GNOME' 카테고리의 다른 글

WebKitGtk+ Hackfest 2010 후기  (3) 2010.12.16
오픈소스 개발자와 즐거운 만남  (1) 2010.09.16
jhbuild 사용하기  (0) 2010.08.29
Maemo Summit 2009 정리..  (3) 2009.12.20
Debian Linux가 주는 자유로움  (2) 2009.10.14

댓글()

iPhone에 대항하는 Linux Phone의 반격

FOSS|2009. 6. 7. 12:08

iPhone 새로운 제국이 되나?


다음주 화요일 새벽이면 3세대 iPhone에 대한 소식으로 전세계가 시끄러울 것 같습니다. 곧이어 새로운 iPhone이 출시되면, 업계에 광풍이 불겠지요.

그 동안 경쟁사들은 iPhone을 따라잡기 위해 부단히 노력했습니다. 터치 기반 폰을 출시하고, AppStore도 구축하고 UX에도 많은 신경을 썼습니다. 다행히 iPhone은 비쌌고 여전히 사용자는 일반 Feature폰을 선호했습니다.

이제 새로운 iPhone은 저가 시장에도 손을 내밀고 있습니다. 모바일 웹은 계속 성장하고 무선인터넷에 관심 없던 사용자도 twitter와 같은 서비스를 통해 진정한 모바일 웹을 체험하기 시작했습니다. iPhone은 다른 제조사와 Operator들에게 다시 악몽이 되어가고 있습니다. 현재 iPhone이 전체 handset 시장의 1%를 차지한다고 하지만, Feature Phone에서 Smart Phone으로 시장이 옮겨가는 상황에서 iPhone은 단일 모델로 PC시장 수준의 market share을 가져갈지도 모릅니다.

이러한 상황은 제조사에게 악몽인데, 특히 Smart Phone에 강했던 Nokia의 이익율이 급락한 것을 보면 어느 정도 예상할 수 있습니다. 이것은 다른 제조사 삼성, LG, Motorola에게도 다가올 시나리오일 수 있습니다.

Open Source로 무장한 경쟁사들


이제 iPhone을 주축으로 거대한 전선이 형성되어가는 분위기입니다. 마치 Microsoft가 PC 시장에서 제국의 되었던 것 처럼 Apple도 커다란 제국이 되어가고 있습니다.

그렇다면 제조사, Operator는 뭘하고 있을까요?

PC 시장을 보면 그 답을 찾을 수 있습니다. MS의 오랜 지배도 오픈소스와 리눅스로 금이 가고 이제는 누구도 MS를 두려워하지는 않는 것 같습니다. 그 만큼 시장 지배력이 떨어졌습니다.

Smart Phone 시장도 마찬가지입니다. Nokia는 Symbian이라는  Smart Phone OS와  S60이라는 Mobile Platform이 있었지만, 2005년 이후 Maemo라는 Linux Platform에 투자를 왔고, 작년에 Trolltech을 인수하여 QT를 S60, Maemo에 적용하였습니다.

다른 제조사와 Operator도 LiMo Foundation을 설립하여 GNOME Mobile Platform을 기반으로 Open Source Mobile Platform을 구축하고 있습니다. 국내에서는 삼성, LG 뿐만 아니라 SKT가 참여했고 Post 위피의 역할을 할 전망입니다.

이제 그 결실들이 나올 예정입니다. 우선  7월에 Maemo기반의 최초 Mobile Phone으로 나오게 됩니다. 그 동안 MID로 그 가치를 인정받았지만, 개발자의 장난감에 불과하다는 평판도 있었지만, 드디어 일반 사용자들의 위한 Handset으로, 출시를 앞 두고 있습니다.

LiMo 진영도 뜨겁게 움직이고 있습니다. 아직 구체적인 정보는 많지 않지만, 올해를 기점으로 많은 Linux Phone이 공개될 전망입니다.

이들의 강점은 대부분의 SW 스택이 Open Source로 구성되어, 커뮤니티와 수 많은 개발자의 지원을 받을 수 있고, 이미 개발된 많은 SW가 많다는  사실입니다. 기술적으로도 많이 발전되어 QT와 Clutter를 통해  iPhone 수준의 Graphic 능력을 확보하였습니다.

특히,  Nokia는  Intel과 협력을 통해 주요 주요 컴포넌트(Hildon, oFono)를 공동개발하여, 부족한 기술 확보에 나서고 있습니다. 이런 과실은 두 회사 뿐만 아니라 전체 오픈소스 진영에도 큰 도움이 되고 있습니다.

Linux Phone, 사용자의 환영을 받을까?


문제는 사용자입니다. 과연 사용자가 얼마나 리눅스 폰을 선호할까요? 리눅스/오픈소스는 사용자에게 중요한 부분이 아닙니다. 그들은 좀 더 싸고 멋진 폰을 원할 뿐입니다. 물론 게임 처럼 재밌는 어플도 많이 있어야겠지요.

이를 위해서는 제조사와 Operator의 많은 투자가 필요합니다. 단지 오픈소스의 과실을 따먹는 것이 아니라, 오픈소스의 기술적 혁신을 지원하고 커뮤니티 양성에 도움을 줘야 합니다. 또한, 상품화를 통해 모난 부분을 다듬고 사용자 편리성을 높여야 하며, 개발 과정 공개를 통해  커뮤니티의 참여를 이끌어 내어,  진정한 가치의 Linux Phone을 만들어야 합니다.

Open Source, 지원이 아닌 생존의 문제


이제 오픈소스는 지원아닌 생존의 문제가 되어버렸습니다. 단순히 활용을 떠나 커뮤니티와 밀접하게 혁신하지 못하면 iPhone과의 경쟁은 더더욱 힘들어질 것입니다.

7월 이후 Linux Phone의 반격을 조용히 지켜봐야겠습니다. 그리고 GNOME Mobile Platform 공부도 게을리 해서는 안되겠습니다. :-)

댓글()

Fennec Architecture

Mozilla|2009. 6. 3. 22:00
지난 FOSDEM09에서 Fennec의 Front End(XUL)개발을 주도하고 있는 Mark Finkle이 Fennec Architecture에 대해 발표를 했습니다. 발표 내용을  모질라 위키에도 자세하게 설명 해 놓았는데, Fennec의 설계 철학과 동작 방식을 이해하는데 더할 나위없이 좋은 자료이므로 번역을 해보았습니다. 참고가 될 만한 링크를 넣고, 좀 더 내용을 추가해 이해를 도왔습니다.

Fennec의 개발 배경


Fennec은 특별히 터치 스크린(touch screen)를 제공하는 모바일(Mobile) 기기를 위해 설계된 XUL기반의 웹브라우저입니다. Firefox와 Mozilla 플랫폼의 많은 부분을 서로 공유하고 있는데,  같은 HTML Rendering Engine을 사용할 뿐만 아니라 확장기능(Add-ons) 지원, 다운로드 관리, 즐겨찾기 및 히스토리, 자바스크립트 엔진(JIT Support)을 공유하고 있습니다.

이렇게 플랫폼 기반은 같지만, Front-end UI는 완전히 다릅니다. Fennec은 작은 화면에 낮은 CPU와 메모리, 키보드가 없이 터치스크린을 위해 설계되었습니다. 이러한 UI 크기 차이로 Firefox UI를 오버레이(overlay)하고 있는 add-ons의 경우 Fennec에서 동작하려면 포팅 작업이 필요하고, 터치 기반의 UI를 가진 모바일 기기에서 만족할 만한 성능에 촛점을 맞춘 결과, 다소 특히한 XUL 구조를 갖고 있습니다.

애플리케이션 구조


브라우징


Fennec과 Firefox는 HTML을 보여주는 방식이 아주 다릅니다. Firefox는 탭(tab)브라우징 환경을 지원하기 위해 <tabbrowser>라는 XUL 엘리먼트를 사용합니다.  <tabbrower>는 composite control로, 수정된 <tabbox>엘리먼트 안에 포함된 <browser>엘리먼트로 구성되어 있습니다. 주요 동작은  <browser>를 통해 이루어집니다.


Fennec은 조금 다른 접근 방법을 취하고 있습니다.  <browser> 엘리먼트가 여전히 HTML을 렌더링하는데 사용되지만, 숨겨진 오프스크린(offscreen) 역할을 합니다. 실제 화면에 보여지는 웹페이지는 primary display surface 역할을 하는 <canvas> 엘리먼트에 그려지며, 만족할 만한 수준의 성능으로 panning과 zooming을 쉽게 사용하도록 합니다.  탭 브라우징 환경은 현재 열린 <browser> 엘리먼트를 나타내는 썸네일 영역을 사용하기 위해 생성됩니다.



<browser>의 내용은 <canvas>로 복사되고, 탭을 나타내는 Thumbnail 속도를 위해 해당 <canvas>로 부터 업데이트 됩니다. 물론 <canvas>에 복사된 웹페이지 내용이 오래된 경우, <browser>로 부터 바로 업데이트 하기도 합니다.

Fennec은  DHTML로 인해 <canvas> display surface에 일어나는 모든 업데이트를 최적화하기 위해   MozAfterPaint 이벤트를 사용합니다. 그 결과, 웹페이지가 변경된 경우, 실제 변경이 일어난 부분만 업데이트되며, 전체 페이지를 다시 그리지는 않습니다.  MozAfterPaint 이벤트의 역할은 DHTML로 인해 변경이 발생한 영역을 알려주어, 해당 영역만 <browser> 엘리먼트에서 <canvas> display surface로 업데이트가 가능하도록 합니다. 처음 Mozilla에 MozAfterPaint 이벤트가 없었을 때는, DHTML로 변경된 페이지를 반영하기 위해 특정 시간 간격으로 전체 <canvas> display surface를 업데이트 해야했습니다.

크롬(Chrome) 엘리먼트




Fennec의 모든 UI 엘리먼트는 <stack>의 자식입니다. 이로 인해 각 UI 엘리먼트가 <canvas> display surface를 기준으로 서로에 관하여 고정된 위치를 갖게 합니다. (즉, 위 그림에서 볼 수 있듯이 좌우측 도구 막대와 URL바가 가운데 <canvas> display surface를 기준으로 고정된 위치를 갖습니다)

Fennec은 각각의 UI 엘리먼트의 좌우 움직임(panning) 효과를 주기 위해 WidgetStack.js라는 JavaScript Helper 오브젝트를 사용합니다. WidgetStack.js는 또한 Content 영역에 대한 크기를 관리합니다. 대부분, 좌우 도구 막대는 content display surface 양변에 붙어 있습니다. 웹페이지는 각각 서로 다른 width와 height값을 갖습니다. 그래서 웹페이지 폭이 변함에 따라 오른쪽 도구 막대도 함께 이동합니다. 이는 웹페이지가 넓은 경우, 도구 막대를 제대로 위치시키기 위해 좀 더 좌우로 이동(panning)시킨다는 것을 의미합니다.

Fennec은 대화상자를 가능한 사용하지 않고 있습니다. 플랫폼에 의해 사용되는 경우도 있지만, 모두 제거할 예정입니다. 대화상자 대신에, Fennec은 사용자와 상호 작용할 수 있는 UI를 사용합니다. Firefox가 modeless notificaton box와  content내 에러 페이지를 보여주는 것과 비슷합니다.

대화상자 또는 또 다른 창이 사용될 수 있는 상황에서, Fennec은 대체로  pseudo-panel을 화면에 보여줍니다. Fennec은 성능상의 이유로 실제 <panel> 엘리먼트를 사용하지 않습니다.  대신, <vbox>에 원하는 UI를 포함시켜 화면에 보여줍니다. 이와 같은 <vbox>는 <stack>엘리먼트의 자식으로 관리되어 필요한 곳에 위치시킬 수 있으며, 브라우저의 시작 성능 향상을 위해 필요할 때까지 숨어있을 수 있습니다.

몇몇 예로, 즐겨찾기 리스트, 즐겨찾기 편집기, 툴 패널(Add-ons, Preferences, 다운로드)이 그런 방식으로 구현되어 있습니다. 이들 엘리먼트는 도구막대와 매우 유사하지만, WidgetStack.js에 의해 관리되는 것은 아닙니다.

Panning/Zooming


Panning은 단지 Content 영역이 아닌 전체 UI를 이동시켜, 도구막대와 Content는 별개가 아닌 하나로 움직입니다.마치 손가락으로 전체 브라우저를  움직이는 것 같은 느낌을 받게 됩니다.

<canvas> display surface에는 전체 웹 페이지에서 화면에 보여지는 부분만 나타납니다.  하지만 실제로 화면에 보여지는 부분 보다 조금 더 많이 <canvas>에 그려지게 됩니다. 이것은 panning을 할 때, content영역이 움직임에 따라, 화면 밖의 부분을 바로 보여주도록 합니다.

Panning이 전체 UI를. 움직이는 동안, zooming은 단지 content영역에만 영향을 줍니다. 그러나, zoom될 때, content가 커지고,  그래서 오른쪽 도구막대는 오른쪽으로 더 멀어져 보입니다.

성능 관련 코딩 가이드라인


패널(Panels)


메인창 위에 크롬 UI를 띄우기 위해 <panel>엘미런트를 사용하는 것은 자칫 성능 저하를 부를 수 있습니다. 사실, OS의 네이티브 창을 생성하는 XUL 엘리먼트는 느리게 동작합니다. Firefox경우,  awesomerbar의 자동 완성 리스트는 현재 <panel>을  사용하고 있습니다. 자동완성 리스트를  메인 <stack>안에 <vbox>로 다시 구현하였더니,  그 결과는 드라마틱합니다. 리스트가 정말 빠르게 나타나지요.

엘리먼트 보이기/감추기


상태를 기반으로 변경되는 UI를 만드는 간단한 방법은 하나의 엘리먼트가 아닌 두개 또는 그 이상의 엘리먼트를 겹쳐 놓고 전환하여 보여주는 것 입니다. 유용하긴 하지만, 보여주고 감추는 작업이 느릴 수 있습니다. 그래서 가능한 이런 방법은 피하고 같은 기능을 구현할 수있는 다른 방법을 찾는 것이 좋습니다.

Firefox의 URL바가 좋은 예입니다. 현재 웹페이지를 보여줄 떄, URL 바는 <description> 엘리먼트입니다. 하지만 사용자가 새로운 URL을 입력할 때는 <textbox>엘리먼트가 됩니다. 이렇게 XUL 엘리먼트를 보이고 감추는 작업에는 느낄 수 있을 정도의 시간이 걸리고, 페이지 로딩 시간에 영향을 줄 수 있습니다. Fennec에서 URL바는 언제나 <textbox>이며, "caption"모드로 전환하기 위해 readOnly property가 사용됩니다.

유사한 상황이 favicon indicator(웹사이트 아이콘)에서도 있었습니다. Fennec은 초기에 throbber(로딩 애니메이션)과 website의 favicon을 위해 두개의 <image>엘리먼트를 갖는 <stack>를 사용했습니다. 다시 말해, 상황에 따라 이미지를 보여주거나 감추었는데, 당시에는 <stack> 엘리먼트가 느렸습니다.  그래서, 제거하니까, 페이지 로딩이 좀 더 빨라보였습니다. 하지만, favicon 이미지를 throbber 이미지로 교체하는데, 로딩 시간이 걸리기 때문에,  show/hide 코드를 제거해서 얻는 이득이 별로 없었습니다. 결국, 두 <image> 엘리먼트는 유지되었습니다.

캔바스와 썸네일 (Canvas and Thumbnails)


앞에서 설명했듯이, Fennec은 <browser> 엘리먼트의 컨텐트를 <canvas> dispay에 복사합니다. 브라우저 컨텐트를 Canvas에 업데이트하는 것은 모바일 기기에서는 그렇게 싼 비용이 아닙니다. 각각의 drawWindow 호출에 약 300~400ms 이내의 시간을 소요합니다. 반면, drawImage는 보다 빨라서 약 100ms 이내 입니다. Fennec은 탭 thumbnail을 업데이트 하기 위해 가능한 drawImage를 사용합니다.

Fennec은 또한 메인 Canvas Display surface에 대한 모든 DHTML 업데이트를 최적화하기 위해 MozAfterPaint 이벤트를 사용합니다. 이는 drawWindow 함수의 호출을 최소화하고,  전체 canvas를 다시 그리지 않게 합니다.


Post-Pageload Work


브라우저가 페이지를 로딩하는 동안 처리할 어떤 작업이 발생하면 잠재적으로 성능에는 좋지 않습니다. 이는 페이지 로드 이벤트가 처리되면서 또 다른 일에 시간을 소모하기 때문입니다. 사용자는 가능한 빨리 웹페이지를 사용하려고 합니다. 그래서 Fennec은 심지어 웹페이지 로딩이 완료될 때까지 favicon 업데이트를 지연시키기도 합니다.

또한, Fennec은 페이지가 로딩되자 마자, 전화번호 텍스트를 tel: 링크로 변경하는 작업을 수행하고 있는데, 시간이 약간 걸렸습니다. 이 작업 때문에 사용자는 일정 시간 동안 웹페이지를  사용하지 못하게 되었고, 이 기능은 다시 구현되어 좀 더 빨라졌습니다. 현재 더 이상의 지연 현상은 존재하지 않으며, 사용자는 좀 더 빠르게 웹페이지를 사용할 수 있게 되었습니다.


File I/O


모질라 플랫폼에서 사용하는 몇몇 file I/O 코드 중  Fennec에서 느린 부분이 있었는데, 보통 시작할 때 문제가 있었습니다. 모바일 기기에서  file I/O는 보통 milisecond 단위로 측정하는 것을 잊어서는 안됩니다. 그러므로, 가능한 불필요한 I/O를 줄이도록 노력해야 합니다. Fennec은  Alpha2에서 cold start 하는데  7~8초 정도 걸리는데, Alpha1보다 30초 정도 향상된 것 입니다.

번역후기

Fennec은 참 고집스럽게 모질라의 기술적 이상(?)을 따르고 있습니다.  기술적 이상이라고 하는 것이 맞는 표현인지는 잘 모르겠습니다. 당장 성능 최적화를 위해 빠를 길을 선택하기 보다는 플랫폼 관점에서 Firefox와 다른 XUL 애플리케이션이 함께 좋아질 수 있도록 개선하려고 노력하는 것입니다. 문제를 피해 가기보다는 문제를 전체 모질라 개잘자들에게 이슈와 시키고 이를 합리적으로 해결합니다.

MozAfterPaint 이벤트가 대표적인 예입니다.  이것은 Layout엔진에도 변경이 일어나므로 Gecko을 담당하는 해커의 도움으로 개발되었습니다. 사실 웹페이지 렌더링을 Canvas를 사용하는 부분도 처음에 논란이 많았습니다. 하지만 Panning이나 Zooming을 제대로 구현하려면 Canvas 이외에는 방법이 없었습니다. 이것은 iPhone도 마찬가지입니다. iPhone도 웹페이이지를 이미지로 렌더링해서 빠른 Panning이 가능한 것입니다. 현재 Fennec이 느린 부분도 Canvas가 HW가속을 받으면 많이 해결될 것입니다.

그리고 XUL UI를 포기하지 않고 모질라의 장점인 Add-ons에 큰 투자를 하는 부분입니다. 사실 일부 UI는 네이티브 UI를 사용하면 쉽게 기능을 구현할 수 있습니다. File Open이 대표적이라 하겠네요. 하지만 이도 XUL로 구현하려고 합니다. 아무래도 여러 플랫폼을 지원하다 보니, UI 일관성을 위해서도 필요할 것입니다.

하지만 이상이라고 표현한 것은 현실은 좀 다르다는 것입니다. 좀 더 많은 사람들이 Fennec을 이용하려면 좀 더 저 사양의 모바일 기기에서도 Fennec을 사용할 수 있어야 합니다. 이를 위해 각 모바일 플랫폼에도 좀 더 최적화되어야 합니다. 하기만 아직 적은 인력으로 모든 것을 다할 수 없는 것도 현실입니다.



댓글()

지키드리지 못해 죄송합니다...

기타|2009. 5. 24. 10:14

제가 언제 부터 노무현 대통령을 좋아하고 지지했었는지 잘 기억은 나지 않습니다. 하지만 그가 지독한 원칙론자 이며 절대로 불의에 타협하지 않는다는 사실이 제 관심을 끌었습니다. 특히, 3당 합당에 혼자 반대하는 모습이나 지역주의를 위해 싸운는 모습은 요즘 같은 세상에 대단해 보였습니다.

사실 제대로 된 정치인들이 어디있습니까? 자기 생각은 없고 말단 직원처럼 생각하면서 조폭 꼬봉처럼 행동하는 정치인이 대부분입니다.

그리고 선거날 지인들에게 전화와 문자를 보내고, 탄핵때는 촛불을 들고 나갔습니다. 그리고 자랑스럽게 지켜드렸습니다. 하지면 주변인들은 그를 이해하지 못하고 하나 둘씩 욕을 했습니다.

어쩌면 자신의 모습과 가장 닮은 가난하고, 배운것 없고 든든한 배경도 없는 국민들이 이 분을 왜 그리 미워하고 욕했을까요?

못배워서일까요? 자신들의 욕망을 채워주지 못해서일까요? 이전 대통령 처럼 힘을 쓰지 않아서일까요?

누구보다 국민을 위한 정책을 만들었고, 나라의 안위를 위해 강대국과 대등한 외교를 펼쳤고, 남북관계 개선을 위해 노려하였습니다. 고작 5년동안의 치적이 민주국가로서의 기반을 닦기 위해 고집스럽게 권력을 나누고, 스스로 고민하고 권력을 행사할 수 있는 기회를 주었습니다.

하지만 국민은 그를 버렸습니다. 부패세력의 사탕 발림에 나라의 운명을 내 주었고, 그 고통은 부메랑이 되어 자신들의 목을 쥐고 자식들의 희망을 절망으로 바꾸어벼렸습니다.

다시 촛불을 들었습니다. 이 땅에 깨어있는 사람들이 그렇게 많다는 사실이 너무 기뻤습니다. 하지만 너무 방심한 탓인가요? 참여정부 때 큰 소리 치던 자들은 어느새 권력의 미친개가 되어 국민들을 물기 시작했습니다. 사람들이 죽어갔습니다. 그리고 그 분도 죽였습니다.

아직까지 썩은 언론을 끊지 못하고, 투기를 통해 남의 것을 빼았고, 함께 사는 세상이 아닌, 너와 내가 다른 세상을 꿈꾸다가 그 분을 죽게 만든 것입니다.

무지한 국민은 김구가 아닌 이승만을 선택해 그 후 분단의 고통은 아직도 우리를 괴롭히고 있습니다. 그 고통은 언제 끝날지 모릅니다.

지금의 고통은 이제 시작일까요?

반성합시다. 그리고 잊지 맙시다. "노무현 정신"을..

'기타' 카테고리의 다른 글

iPhone을 뒤 업은 2등의 반격  (0) 2009.10.06
느낀 사람만이 좋은 제품을 만든다  (2) 2009.09.25
About  (0) 2009.05.22
Python 간략 정리  (3) 2009.04.22
2009년을 맞이하며 - 참여하는 한 해가 되자!!  (4) 2009.01.05

댓글()