페이지

2009년 12월 19일 토요일

Maemo Summit 2009 정리..

노키아(Nokia)에서 매년 주최하는 Maemo개발자 행사인, Maemo Summit이 불황임에도 불구하고 작년 보다 더 큰 행사로 성황을 이루었습니다. 비록 직접 참석하지는 못했지만, 사진만 보면 작년 보다는 규모가 훨씬 커 보였습니다.

올해는 10/8~ 11까지 네델란드 암스테르담에서 행사가 개최되었습니다.

Maemo Summit행사가 중요한 이유는 리눅스 기반 모바일 플랫폼의 최신 동향과 발전 방향을 알 수 있기 때문입니다.  그 이유는  Moblin, 리모(LiMo), OpenMoko도 Maemo와 마찬가지로  GNOME Desktop, Freedesktop.org 기술을 많이 사용하고 있고  Maemo와 많은 오픈소스(Open Source) 컴포넌트를 공유하고 있기 때문입니다. 특히, Moblin과 Maemo서로 닮아가면서 오픈소스  데스크탑(Desktop) 기술을 발전시켜나가고 있고 다시 GNOME 데스크탑에까지 영향을 미치고 있습니다.

구글(Google)의 안드로이드(Android)도 리눅스 기반이지만, 커널만 리눅스이고 미들웨어와 개발 방법은 구글이 독자적으로 구축하였기 때문에 오픈소스 데스크탑 기술과는 거리가 멀다고 할 수 있습니다.

Keynote



올해도 변함없이  Nokia의 Maemo Devices부분을 맡고 있고 Vice President Ari Jaaksi가 keynote를 발표했습니다.

N900 발표이후, Maemo Community반응과 외부의 평가를 소개하며, Nokia는 이제 안정된 플랫폼 기반으로 오픈소스 데스크탑의 취약점이기도 한 UX에 집중하겠다는 의지를 보여주었습니다.  이는  Nokia Maemo 플랫폼에 대한 자신감을 나타내는 것으로, Nokia는 이미 오픈소스 데스크탑 기술을 확보했으니, 이제는 UX로 승부수를 걸겠다는 것을 의미합니다.  결론적으로, 오픈소스로도 iPhone과 경쟁이 가능하다는 의미일 수 있습니다.


이번 행사에는 N900에 탑재된 Maemo5보다 Maemo6에 대한 소개가 유난히 눈에 띄었습니다. 내년에 출시될 Maemo6는 N900과 같은 하드웨어 사양에 Multi-touch를 지원한다고 합니다. Nokia Web Runtime과 QT4.6 Developement Framework을 지원하여 개발자가 좀 더 쉽게 애플리케이션을 개발하도록 하고 있습니다.

Maemo는 지금까지 Open Source Debian과  GNOME 개발자를 위한 다소 실험적인 Mobile Device로 인식되어 왔습니다. 노키아에서 오랜 시간동안 Linux 및  Open Source Desktop기술이 얼마나  Mobile Phone에 적합한지 실험을 했다고 볼 수 있습니다. 이제, 그런 실험은 N900에서 끝내고 Maemo6를 통해 좀 더 사용자에게 다가갈 준비를 하고 있습니다. Maemo5와 N900은 그 중간 단계에 와 있다고 볼 수 있습니다. 개발자적인 이미지를 벗고 강력한 PC급 기기로 사용자에게 다가갈 준비를 하고 있습니다.

먼저, UI를 Touch기반 완전히 변경했습니다. Maemo4까지는 Stylus기반의 UI였지만, Maemo5부터 iPhone처럼 UI는 단순해졌고, Touch UI를 지원합니다. 이를 위해 Widget를 새롭게 개발하였고, 처음으로 UI Design관련 문서도 공개했습니다.

미리 보는 Maemo6 기술



Nokia의 숨겨진 무기 QT


Nokia는 QT로 다시 한번 옛 영광을 꿈꾸고 있습니다. QT는  Maemo뿐만 아니라 S60에서도 사용되고 Windows Mobile도 지원합니다. QT Designer라는 개발툴을 제공하며, 이는  Windows, Linux, Mac에서 사용이 가능합니다. 이를 통해 다양한 Desktop개발자를 쉽게 QT로 끌어들일 수 있게 되었습니다.

더 많은 발표 자료는 아래 사이트를 참고하세요.

  • http://wiki.maemo.org/Maemo_Summit_2009



  • http://qt.nokia.com/products-kr/platforms/maemo

2009년 10월 19일 월요일

Windows Mobile폰 iPhone, BlackBerry 부럽지 않게 사용하기



여기저기 iPhone 소식에, Android폰도 나올 것  같고, LiMo출시 소식도 들립니다. 이미 BlackBerry를 구입해서 오바마 기분을 만끽하는 분도 계십니다. 하지만, 이 땅의 99.9% 스마트 폰 사용자는 고우나 미우나 Windows Mobile 폰을 사용하고 있습니다.

Windows Mobile이 그동안 혁신에 게을렀던 것은 사실이지만, 이미 수 많은 사용자를 확보했고, 그 동안 수 많은 어플이 개발되어 있어 조금만 관심을 가지면, iPhone 부럽지 않게 활용할 수 있습니다.  물론 이런 노하우를 쌓으려면 약간의 노력이 필요합니다.

저보다 많은 분들이 좋은 노하우를 갖고 계시겠지만, 제 나름대로 삼성 미라지(i780)폰을 1년여동안 사용하면서 경험한 노하우를 공유하도록 하겠습니다. 적절한  인터넷 요금제와 몇가지 유료 어플을 설치하면 iPhone, BlackBerry 부럽지 않게 Windows Mobile를 활용할 수 있습니다.

1. 정액제 데이터 요금제에 가입한다


아직도 잘못 접속된 인터넷에 화들짝 놀라거나, 데이터 접속을 금기시 하나요? 적은 비용은 아니지만, 진정한 모바일 웹을 경험하려면 데이터 요금제는 이젠 선택이 아닌 필수가 되어가는 것 같습니다.

저는 KT사용자로서, 한달 500MB에 12,000윈 짜리 정액 요금제에 가입하였습니다. 이 정도 용량이면 출퇴근길과 화장실에 틈틈히 e-mail도 쓰고 SNS를 이용할 수 있는 충분한 용량을 확보할 수 있습니다. 물론 Full Browsing보다는 서비스 전용 Client를 설치하고, PDA용 사이트를 주로 방문해야 합니다.  하지만 Opera Mobile 설치하여 Turbo모드를 켜시면 Full Browsing도 부담없이 사용할 수 있습니다.

iPhone 출시를 계기로 새로운 통합 데이터 요금제도 나오는등, 데이터 요금에 대한 부담이 줄었다고 하지만, 별로 싸진 느낌은 들지 않습니다.

2. 최신 Opera Mobile 를 설치한다.


Opera Mobile
http://www.opera.com/mobile/
미라지폰에서도 iPhone수준의 Full Browsing을 즐길 수 있습니다. 특히, Turbo모드를 켜두시면, Opera 서버에서 데이터를 80%정도 압축해주므로, 상당히 빠르게 브라우징을 즐길 수 있고, 그 만큼 데이터 전송량도 줄일 수 있습니다.

3. Google Sync로 BlackBerry 흉내내기


Google Sync with Outlook
Google Sync를 사용하면, Google Calendar, Contract, GMail를 동기화할 수 있습니다.
실시간 Sync는 안되지만, Push Mail 흉내는 낼 수 있습니다.

4. Microsoft SMS 설치


SMS
아직도 200개로 제한된 SMS를 쓰십니까? Copy & Paste는 제대로 되나요? 문자 삭제는 참 번거롭지요.
Windows Mobile의 SMS가 원래 이렇게 문제가 많은 것은 아닙니다. MS에서 만든 SMS는 참 가볍고 마치 채팅하듯 사용하기 쉽습니다. MS SMS를 설치한후, 문자를 10배는 많이 보낸 것 같습니다. 덕분에 요금은 좀 더 나왔습니다.

설치방법 소개 (다소 까다롭습니다)

4. Twitter, Facebook는 전용 툴로



Twikini
많은 Twitter Client가 있지만, Twikini가 제일 좋은 것 같습니다. 물론 무료로는 사용기간에 제한이 있어서, 구매를 해야 하나 가격도 비싸지 않으므로 구입해 볼 만합니다. 아직까지 한글 입력을 지원하지 않지만,  Multiple Account를 지원하는 등 보기만하는데도 상당히 유용합니다.

Facebook for Windows Mobile
Microsoft에서 개발한 Facebook전용 Client로 친구들에게 바로 전화거는 기능을 제공합니다.

6. 할 일은 Remember the Milk로 Sync하자



Google Sync로는 Google Calendar에서 제공하는 To Do List를 동기화할 수 없습니다. 비용은 좀 들지만, 대표적인 웹 기반 할일 관리 서비스인 RTM(Remember the milk)Windows Mobile Sync프로그램을 제공합니다. 설치만 하면 Outlook의 To Do List를 RTM과 쉽게 동기화할 수 있습니다.

7. Google Map으로 길도 찾자


Google Maps for Windows Mobile



사용하는 Windows Mobile 폰이 GPS를 지원한다면, Google Maps for Windows Mobile를 설치해보기 바랍니다. 네이게이션 수준은 아니지만, 현재 위치를 지도에 표시해주고, 뚜벅이를 위한 길 안내도 지원합니다.

2009년 10월 14일 수요일

Debian Linux가 주는 자유로움



2005년 부터 우분투(Ubuntu)를 사용하다가 데비안(Debian)을 설치해보았습니다.
지난 GNOME Conference에서 보니 많은 해커(hacker)들이 데비안을 사용하고 있었습니다.
데비안 심볼에서 웬지 포스도 느껴지고, 그래서 설치해봤습니다.

아직 사용하지 이틀 밖에 안되었지만, 왜 해커들이 Debian을 사용하는지 알것 같습니다.
일단 설치하면, 덜렁 Console모드로 부팅이 됩니다.

여기서 부터 x.org를 설치하고 GNOME Desktop을 사용할지 KDE Desktop을 사용할지를 결정해야 합니다.

> apt-get install xorg
> apt-get install gnome (GNOME Desktop 설치)
> apt-get install gdm (Graphical login화면)

그리고 X윈도우를 시작하려면,

> startx 라고 치면 GNOME Desktop이 실행됩니다.

gnome desktop 설치 전에 startx를 실행하면, 당연히 x-window과 x-window manager만 실행됩니다.
오랜만에 보는 참으로 단순한 데스크탑 모습이였습니다. (화면을 갈무리 못한 것이 아쉽네요)

KDE를 설치하고 싶다면,

> apt-get install kde
> startkde 하면 실행이 됩니다.

GNOME Desktop이 실행된 상태에서도 KDE가 실행되네요.

우분투 사용할 때도 느꼈지만, 데비안에 제공하는 APT Package 시스템을 참 훌륭한 것 같습니다. 인터넷만 연결되면, apt-get명령어로 원하는 모든 것을 설치할 수 있으니까요.

진정한 해커를 꿈꾸신다면 우분투 보다는 데비안을 사용해보세요.
(물론 소스를 다운로드 받아 빌드한 후, 설치하는 젠투(gentoo)에는 비할바는 못하지만)
관심만 가지면 좀 더 많은 자유를 느낄 수 있습니다.

2009년 10월 6일 화요일

iPhone을 뒤 업은 2등의 반격

올 한해는 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등 여러분 화이팅하시기 바랍니다.

2009년 9월 25일 금요일

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

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

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

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

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

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

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

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

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

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

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

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

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

2009년 9월 9일 수요일

미래 웹포럼 2009 후기

지난 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 개발툴을 미리 경험하는 것도 앞으로 다가올 미래를 대비하는 좋은 방법이 될 것 같습니다.

2009년 8월 31일 월요일

Fennec 1.0 beta3 for Maemo 소개

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이 이유없이 종료되는 현상이 발생하고 있습니다. 이제 어느 정도 성능 문제도 해결되었으니, 안정성에 좀 더 노력을 기울여야 할 것 같습니다.

참고

2009년 7월 8일 수요일

여기는 Desktop Summit입니다.



올해 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

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

2009년 6월 7일 일요일

iPhone에 대항하는 Linux Phone의 반격

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 공부도 게을리 해서는 안되겠습니다. :-)

2009년 6월 3일 수요일

Fennec Architecture

지난 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일 일요일

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


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

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

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

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

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

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

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

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

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

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

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

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

2009년 5월 19일 화요일

Fennec 1.0 alpha for Windows Mobile

Fennec 1.0 alpha for Windows Mobile

드디어 Fennec 1.0 alpha for Winodws Mobile이 공개되었습니다. Nokia Maemo버전은 이미 베타를 끊었지만, Windows Mobile 버전은 좀 진도가 느립니다.

그 이유는 한 번 사용해보시면 알 수 있듯이 성능이 가장 큰 것 같습니다. 그 동안 치명적인 memory 부족 문제는 jemalloc을 enable하면서 해결되었고, 반응 속도도 많이 향상되었습니다.  UI 모습에도 변화가 있습니다. CSS기반으로 변경되었다고 하는데, 다양한 화면 크기를 효율적으로 지원하기 위해 CSS를 도입한 것 같습니다.  그 이유 때문인지 몰라도,  Windows Mobile용 Fennec의 화면 UI가 단순한 느낌을 주고 있습니다. Maemo에서도 그렇게 변경되었는지 확인을 못해봤지만, Windows Mobile에 다른 CSS가 적용된 것은 분명해 보입니다.

화면 갈무리한 것을 Maemo Beta버전과 비교해 보면 특별한 것은 없습니다. 단지 제가 갖고 있는 미라지 화면 크기인 SQVGA(320x320)를 지원하지 않는 문제가 있네요. 화면이 landscape형태로 옴니아나 HTC Pro단말에 맞게 구성되어 있습니다.

Fennec 1.0 alpha for Windows Mobile

이번 Fennec에는 여러가지 Add-ons를 설치할 있는데, TwitterBar가 눈에 띄네요. Twitter의 인기를 Fennec에서도 확인할 수 있었습니다.

Twitter 페이지 Zoom-out 결과
Fennec 1.0 alpha for Windows Mobile Fennec 1.0 alpha for Windows Mobile

한글과 소프트 키보드 문제
Fennec 1.0 Alpha for Windows Mobile Fennec 1.0 Alpha for Windows Mobile

눈에 띄는 문제로는 한글이 깨지는 현상과 소프트 키보드 문제입니다. 현재 한글 페이지는 볼 수 없는 상태이고, 소프트 키보드 문제는 단추가 계속 화면에 남아서 브라우저를 가리는 부분이 문제입니다. 아마도 한글 소프트 키보드에서만 이런 문제가 나타나는 것 같습니다.

한글에 관한 문제는 역시 우리 개발자가 해결할 수 밖에 없을 것 같습니다. 한 번 살펴봐야겠습니다.

마지막으로, HTC Touch Pro에서 동작하는 시연 동영상을 공유합니다.

Fennec - alpha 1 for Windows Mobile from Madhava Enros on Vimeo.

2009년 5월 5일 화요일

vodafone이 운영하는 Linux Community 사이트



vodafone R&D이 개발자 사이트를 운영하면서 Linux와 Open Source를 지원하고 있습니다.

3G카드를 내장한 Netbook을 직접 판매하면서 리눅스 사용자를 지원하고 있습니다. 우선 각 Netbook에 3G Datacard를 설치하는 방법을 친절하게 소개하고 있습니다. 여기에다 각종 리눅스 배포본 링크도 찾아볼 수 있네요.  참고로, OpenSuse, Fedora, Ubuntu를 지원하고 있습니다.

사용자 지원을 위해  Forum을 만들었는데, 나름 열기가 뜨겁습니다. 아무래도 Linux Netbook사용자가 상당수 있는 것 같습니다.

게다가 3G Datacard driver가 오픈소스로 공개되어 있고, SourceForge와 같은 Source Code Repository 사이트도 관리하고 있었습니다. Vodafone에서 제공하는 driver나 개발 관련 SW가  공개되어 있습니다. 물론 사용자가 직접 만든 애플리케이션도 찾을 수 있습니다.

국내에도 wibro가 netbook과 함께 판매되지만 리눅스와 함께 판매된다는 소식은 못들었습니다. 어서 빨리 국내 이통사와 이런 모델을 도입해서 국내 리눅스 사용자를 늘리고 오픈소스에 기여했으면 하는 바램입니다.

2009년 4월 22일 수요일

Python 간략 정리

Python을 배우면서 틈틈히 정리한 내용을 공유합니다. 자주 쓰는 언어가 아니라 그런지 정말 잘 까먹게 되더군요.

그래서 이 문서, 저 코드를 보면서 간략하게 정리했습니다.

Python


1989년 12월 크리스마스를 심심하지 않게 보내려고, 네덜란드 암스테르담에 사는 귀도 반 로섬이 혼자 집에서 취미 삼아 재미로 개발한 프로젝트임. 연구실은 닫히고 집에서 특별히 할일이 없어서 개발했다고 함. 이름은 영국 드라마(Monty Python's Flying Circus)를 참고.

http://en.wikipedia.org/wiki/Guido_van_Rossum

Hello World 예제


  1. #!/usr/bin/python
    # hello.py
    print "Hello World\n"

chmod 755 hello.py

Commnet


  1. # 이것은 주석입니다.
  2. import sys   # 이것도 주석입니다.
  3. """
  4. 이것도 주석입니다.
  5. 여러줄을 주석처리할 때 사용합니다...
  6. """

Datatype


객체 자료형 상수와 사용법의 예
수치형(Numbers) 정수(2134), 실수(2.71), 롱형 정수(345L), 복소수(4+5j)
문자열(Strings) ‘spam’,“ eggs”
리스트(Lists) [1,‘ two’, 3, [5,‘ five’]]
사전(Dictionaries) { 'gslee':5284,'kslee':5582,'mylee':5382}
터플(Tuples) (1,3,’five’)
파일(Files) f = open( ‘toasts’)

정수형 상수

>>> a = 23 # 10진 상수
>>> b = 023 # 8진 상수, 0으로 시작하면 8진수이다.
>>> c = 0x23 # 16진 상수, 0x 혹은 0X로 시작하면 16진수다.
>>> print a, b, c # 10진수로 출력
23 19 35

실수형 상수

이렇게 한 줄에 여러 변수 값을 할당할 수 있다.

>>> e, f, g = 3.14, 2.16e-9, 3E220
>>> print e, f, g
3.14 2.16e-009 3e+220

Long 형 상수

>>> h = 123456789012345678901234567890L
>>> print h * h
15241578753238836750495351562536198787501905199875019052100L

유효 자리수는 메모리가 허용하는 만큼 가능하다.
복소수형 상수

>>> c = 4+5j
>>> d = 7-2J
>>> print c * d
(38+27j)

문자열

문자를 표현하기 위한 자료형
  1. print 'Hello World!'
  2. print "hello World!"

따옴표(Single Quotation mark), 큰 따옴표(Double Quotation Mark) 모두 사용된다.
리스트

  1. L = [1, 4, 3, 2, 5, 'aa']
    print len(L)
    print L[1:3]
    print L[5]
    print L+L
    print L*3

    L.append(6)
    print L
    L.reverse()
    print L
    L.sort()
    print L

list.py
튜플

튜플과 리스트의 차이는 튜플은 값 변경이 안되고, 리스트는 가능하다.
  1. t = (1, 4, 3, 2, 5)
  2. print len(t)
  3. print t[1:3]
  4. print t[1]
  5. print t+t
  6. print t*3

tuple.py
사전 만들기

아이템들은‘키’와‘값(value)’으로‘key:value’형식으로 구성된다.
>>> phone = {} # 공 사전 생성
>>> phone = {'jack':9465215, 'jim':6851325, 'Joseph':6584321} # 초기값 부여
>>> len(phone) # 사전의 크기(아이템의 개수)
3

  1. phone = {}
  2. phone = {'joone':12777347, 'minsoo':23443333, 'Soony':23454458}
  3. print len(phone)
  4. print 'the value of joone is %s' %  phone['joone']
  5. # 검색 추가 변경
  6. phone['jack'] = 33455634
  7. print phone
  8. phone['joone']= 1111111# 삭제
  9. del phone['jack']
  10. print phone# 키, 값, 아이템 얻기
  11. print phone.keys();
  12. print phone.values();
  13. print phone.items();
  14. # 키보드로부터 키 스트링(이름) 입력을 받는다. ‘name?’은 프롬프트다.
  15. name = raw_input('name?')
  16. # 키를 가지고 있는지 검사
  17. if phone.has_key(name):
  18. print phone[name] # 있으면 전화번호 출력
  19. else:
  20. print name,'not found' #없으면

dic.py

관계연산자(relational operator)


> 크다
< 작다
>= 크거나 같다
<= 작거나 같다
== 같다
!= 같지 않다
<> 같지 않다

포맷 스트링


  1. s3 = 'Hi %s! How are you doing?'
  2. print s3 % "joone"
  3. s4 = '%s * %s = %s'
  4. print s4 % (12, 23, 12*23)
  5. print '%5d %o %x %5.2f' % (23, 23, 23, 43.123)

제어문


파이썬은 단순하게 if, for, while이라는 3개의 제어문을 갖고 있다.
if 문

  1. n = int(raw_input('value?'))
  2. if n > 0:
  3. print 'positive'
  4. elif n < 0:
  5. print 'negative'
  6. else:
  7. print 'zero'

한 가지 주의 깊게 봐야 할 점이 있는데 들여쓰기(indentation)이다. 즉, if - elif - else는 같은 열에 있어야 하고, 세 개의 print 문은 탭
혹은 같은 수의 스페이스를 이용해 들여쓰기를 한다. 파이썬에서는 이와 같은 들여쓰기 필수다.
for 문

  1. a = [0,1,2,3]
    for x in a:      # a에 있는 모든 x에 대해
    print x,    # x값 출력

  1. for x in range(100):
  2. print x

순차적으로 숫자를 증가시켜가면서 반복할 경우에는 range함수를 이용한다
while문

  1. a, b = 0, 1
    while b < 100:
    print b,
    a, b = b, a+b

함수 정의와 호출


def 함수명 (인수들..):
문(statements)
return <값>

  1. def add(a, b):
  2. return a+b
  3. print add(1,2)

  1. add(int, int);
    add(int, double);
    add(double, int);
    add(double, double);

파이썬은 자료형을 동적으로 결정하므로 다른 언어에서 해야 하는 많은 중복(overloading) 작업을 피하게 해준다.

파일 입출력


  • 파이썬의 파일 입출력(File I/O) 기능은 C에서 사용하는 함수를 확장한 것
  • C의 래퍼(wrapper)로서 대부분의 C 파일 입출력 기능과 추가적인 편의 함수를 제공
  • 파일을 사용하기에 앞서 우선 파일을 오픈해야 하는데,
  • 이때 파일명과 처리 모드를 인수로 넘겨줘야 한다. 처리 모드는‘w:쓰기, r:읽기, a:추가하기’이다.

  1. f = open(‘testfile’, ‘w’)                  # 쓰기 모드로 testfile을 오픈한다.
    f.write(‘파이썬 파일 쓰기 테스트 중이예요!\n’)    # 문자열을 출력한다
    f.close()                                  # 파일을 닫는다. 생략 가능

읽기 쓰기 메쏘드
파일 객체의 . 더 다양한 메쏘드에 대해 배워보자. 먼저 읽기를 위한 메쏘드는

read()     파일 전체 내용을 한꺼번에 문자열로 읽어들인다

read(N)   N의 양의 정수만큼 읽기

readline()  한줄씩 읽기

readlines() 파일 전체를 라인단위로 끊어서 리스트에 저장한다
write(S), writelines(L)

파일 목록 읽기


  1. #!/usr/bin/python
    # file : readfiles.py

    import sys
    import os

    def main(argv):
    fileNames = os.listdir(argv[0])
    fileNames.sort()

    for fileName in fileNames:
    print '%s/%s' % (argv[0], fileName)

    if __name__=="__main__":
    main(sys.argv[1:])

명령행 인수 처리


  1. import sys # for handling argv
    import re   # import regular expression module for using subn

    def replace(fname, srcstr, deststr):
    f = open(fname)
    txt = f.read()
    txt = re.subn(srcstr, deststr, txt)[0]
    return txt

    if __name__ == '__main__':
    if len(sys.argv) != 4:
    print "Usage : replace filename srcstr deststr"
    sys.exit()
    print replace(sys.argv[1], sys.argv[2], sys.argv[3])

command.py
  1. import sys
    import os
  2. def main(argv):
    for arg in argv:
    print arg
    if __name__=="__main__":
    main(sys.argv[1:])

OOP


  1. class MyClass:
  2. def setValue(self, val):
  3. self.value = val;
  4. def getValue(self):
  5. print self.value
  6. c = MyClass()
  7. c.setValue('Hello')
  8. c.getValue()

oop.py

Debugging


python -m pdb oop.py

참고문헌


  • 이강성, 파이썬의 기본 구문과 기초자료형 이해, 마이크로소프트웨어 2000년 7월호

This article was written in springnote.

2009년 4월 2일 목요일

오픈웹 관련 만화 두편

오픈웹 이야기

kldp_linux_banking

몇 년전에 그린 그림인데, 아직도 상황은 변한게 없군요~ :-(

고려대 김기창 교수님이 이끄는 오픈웹이 금결원과의 민사 소송 2심에서 패소한 이후, 오픈웹(OpenWeb)에 대한 많은 이야기가 인터넷을 달구고 있습니다.

저도 오픈웹 운동이 시작된 이후로, 꾸준히 관심을 가지고 동참하고 있었는데, 정말 안타깝습니다.

ActiveX라는 거대한 폭탄을 안고 있는 국내 사용자들은 Windows와 Intenet Explorer를 업그레이드 할 때 마다  끊임 없이 발생하는 크고 작은 문제들로 불편함을 겪고 있습니다. 또한 맥과 리눅스 사용자는 브라우저를 통해 금융 거래를 아직까지 못하고 있습니다.

하지만, 여전히 개선될 희망이 보이지 않고 있습니다.

이러한 상황에서 가뜩히나 월드 가든(Walled Garden)에 갖혀버린 우리나라의 모바일 웹은 뿌리를 내릴 수 있을까요?

2009년 3월 27일 금요일

Fennec 드디어 미라지에서 동작하다

jemalloc을 enable하고 Windows Mobile 용 Fennec을 정상 동작시켰다는 Blassey의 블로그를 보고 , trunk에 있는 코드를 업데이트 하여, 빌드를 다시 했습니다. cab installer를 만들어 설치를 했으나... 심하게 화면이 깨지는 현상이 나타났습니다. 상황이 더 안 좋아진 것이죠.

jemalloc이 아직 기본으로  enable되어 있지 않은 것이 문제였습니다. 다시 mozconfig파일에 "ac_add_options --enable-jemalloc" 옵션을 추가한 후, 다시 빌드하니 드디어 저도 삼성 미라지폰(i780)에서도 아래와 같이 Fennec이 동작하는 것을 확인할 수 있었습니다. :-)

Fennec1.0 alpha for Windows Mobile Fennec1.0 alpha for Windows Mobile
그 동안 수 차례 미라지를 비롯한 옴니아에도 사용을 시도했으나  웹페이지가 화면에 그려지지 않는 현상 때문에 제대로 Fennec을 사용할 수 없었습니다.

하지만, 아직 alpha이기 (정식 릴리스된 Alpha는 아닙니다) 때문에 일반 사용자가 사용할 만한 수준은 못 됩니다. 특히 성능 문제가 심각한데, Launching 시간이 약 60초 정도 걸리고 여러 instance가 동시에 실행되기도 합니다.

또한, 미라지에서 URL입력할 때, soft keyboard가 귀찮게 나타나고 있고,  위와 같이 화면에 IME 버튼이 계속 남아 있는 현상도 있습니다. 보시다시피 한글도 제대로 표시가 안되고 있고요.

아직 갈 길이 멀기 때문에 열심히 bugzilla에 이러한 현상을 보고하고 문제를 해결해 보려고 합니다.

2009년 3월 22일 일요일

Fennec 1.0 beta 1 주요 추가 기능의 모습

Fennec 1.0 Beta1

Fennec 1.0 beta 1이 3월 17일에 공개되었습니다. 현재 Nokia N810만 지원하며 데스크탑에서 테스트 용도로 사용할 수 있도록 윈도, Mac OSX, Linux용이 함께 공개되었습니다.

beta에서 함께 공개될 것으로 기대한 Windows Mobile 6.1용 Fennec은 결국 공개가 안되었네요. 물론 현재 동작은 가능하지만, 대부분의 단말에서 메모리 부족으로 인해 웹페이지가 제대로 그려지지 못하는 문제로 아직 공개를 못하고 있습니다. Jemalloc을 활성화시키는 것 만이 유일한 해결책이라고 합니다.

jemalloc은 이미 Firefox3.1에 적용되었으며 Memory 단편화 현상을 줄여주어 오랜 시간 동안 브라우징해도 메모리가 계속 늘어나는 현상을 방지하고 있습니다.  이미 FreeBSD에서 그 효과를 인정 받았습니다.

이번 베타에서는 다음과 같은 새 Feature가  추가되었습니다.

  • TraceMonkey, Mozilla's new JavaScript engine

  • Faster application start-up time

  • Faster panning

  • Faster zooming

  • Initial implementation of bookmark folders and bookmark editing

  • Support for plug-ins


몇가지 Feature를 실제 구현된 모습으로 소개하면 다음과 같습니다.

TraceMonkey 지원

TraceMonkey는 이미 Firefox 3.1 Beta에서 지원하기 시작하여 벌써 그 효과를 몸소 체험한 분도 많을 것입니다. 자바스크립트를 처음 실행한 후, profiling을 하여 병목 지점을 찾아 그 부분은 네이티브 코드로 컴파일하고, 이후에는 스크립트가 아닌 네이티브 코드를 실행시켜 성능을 한 단계 끌어올렸습니다. 덕분에 XUL로 개발된 UI의 반응속도가 상당히 개선되었습니다.

플래시 지원
Fennec 1.0 Beta1 (Flash Support)
N810에서 이미 지원하고 있던 Flash를 Fennec에서 사용할 수 있게되었습니다. 버전이 낮아서 잘 안돌아가는 Flash도 있지만, 위와 같이 Youtube 동영상도 볼 수 있습니다. Flash는 Plug-in형태로 구현되었고, 다른 기능도  Plug-in으로 구현되어 추가할 수 있게 되었습니다.

Bookmark 편집 기능
Fennec 1.0 Beta1
당연한 기능이지만 베타에서 와서 지원하게 되었습니다.

암호 관리 기능
Fennec 1.0 Beta1

Mobile 환경에서 더 편리하게 웹서비스를 사용하게 되었습니다.

물론, 전반적인 성능 향상으로 Zooming, Panning 속도도 눈에 띄게 빨라져서 이제 어느 정도 쓸만한 수준이 되었습니다.

아직 Mobile에서 XUL UI는 다소 무리인듯 싶으나, Fennec팀이 Startup, Canvas, XPConnect 부분에 최적화를 시도하고 있으니 앞으로도  더 빠른 성능을 기대할 수 있을 것 같습니다. 특히 Fennec은 웹페이지를 Canvas 기술을 이용해서 화면에 표시하므로 Canvas가 HW 가속을 받게 되면 놀라울 수준으로 성능이 향상되리가 예상합니다.

Windows Mobile 버전도 빨리 안정화 되어 실제로 많은 사람들이 Fennec을 사용했으면 좋겠습니다.

좀 더 자세한 정보와 윈도, Mac, Linux에서 테스트 하고 싶은 분은 릴리스 노트를 보시기 바랍니다.

2009년 3월 15일 일요일

오픈소스 커뮤니티를 움직이는 두 여성

소프트웨어 개발자, 특히 해커 레벨로 내려가면 여성을 찾기란 쉽지 않은 일입니다. 대부분 남성 위주로 전산학과 해커문화가 발전했다고 해도 과언은 아닙니다. 물론 최초의 버그를 찾고 코볼을 개발한 그레이스 호퍼(Grace Murray Hopper)를 제외하면 말이죠

하지만, 오픈소스 커뮤니티를 이야기하면 사정은 달라집니다.

현재 가장 대중적인 오픈소스 커뮤니티를 뽑자면 그놈(GNOME)과 모질라(Mozilla) 커뮤니티를 예로 들을 수 있습니다. 그놈은 대표적인 리눅스 데스크탑 환경이며 데스크탑 애플리케이션 개발에 필요한 주요 오픈소스 솔루션을 제공하고 있습니다. 모질라는 오픈웹을 표방하며 Firefox, Thunderbird로 대표되는 오픈소스 커뮤니티입니다.

두 커뮤니티의 공통점은 무엇일까요?

바로 커뮤니티를 이끄는 수장이 바로 여성이라는 점입니다.



사진: duncandavidson, wikipedia

모질라는 미첼 베이커(Mitchell Baker)라는 분이 Mozilla Foundation 이끌고, 그놈은 스토미 피터즈(Stormy Peters)라는 분이 GNOME Foundation을 이끌고 있습니다. 두 분다 실리콘 벨리에 있는 대기업에서 일하다가 오픈소스에 뛰어들어 지금은 커뮤니티를 이끌고 있습니다.

어느 단체 보다 어려운 것이 커뮤니티를 이끄는 것이라고 생각합니다. 커뮤니티 또한 복잡한 사회이며 다양한 계층의 사람들이 구성되어 있으며, 게다가 영리 단체가 아니기 때문에 자발적인 성금이나 기업의 도움으로 커뮤니티의 살림도 책임져야 합니다.  그래서 이 분들의 역할은 커뮤니티 구성원의 자발적인 참여를 이끌기 위해 사상적 배경을 제공하는 것입니다. 모두가 공감할 수 있고 이해할 수 있는 목표와 비전을 제시하는 것이죠.

약간의 차이가 있다면 Mitchell Baker는 오픈웹과 교육을 통한 오픈소스 확산에 관심이 많고, Story Peters는 커뮤니티와 기업간의 협업과 기업 내 오픈소스 확산에 관심을 갖고 있습니다.

두 분의 블로그를 가 보면 끊임없이 고민하고 사람들의 의견에 귀 기울이는 모습을 볼 수 있습니다.

이 처럼,  커뮤니티의 규모가 커질 수록 커뮤니케이션 능력이 뛰어나며 카리스마와 함께 부드러움을 겸비한 두 분의 역할이 정말 커 보이는 것 같습니다.

참고

2009년 3월 8일 일요일

Fennec 한글화와 개발자의 유쾌한 농담

Fennec 베타 버전이 곧 나올 것 같습니다. 현재 몇 가지 남은 bug가 있긴하지만, 조만간 해결되겠지요. 이번 베타에서는 윈도 모바일 버전도 공개될 것 같습니다. 이미 nightly build로 공개되어 있지만, 아직 maemo버전 만큼 성능이나 안전성를 확보하지 못했습니다.

Localization 작업도 많이 진행되어 벌써 19개 언어가 준비중에 있습니다.

한글화는 channy님 추천으로 제가 맡게 되었습니다. Firefox나 Thunderbird에 대한 Localization 정보는 많이 있으나, Fennec에 대한 정보는 덜 정리되어 있고, 생각 만큼 쉽지 않은 작업이였습니다.

Localizing Fennec in Korean

번역하다가 예전에는 미처 발견하지 못한 재밌는 사실을 발견했는데,

그림 자동으로 읽기를 "Makes websites pretty"라고,

플러그인 사용을 "Make website annoying"라고,

쿠키 저장을 "Delicious deliacies"라고 설명했습니다.

"웹사이트 보기좋게", "웹을 짜증나게 만들다", "맛있는 먹거리"라고 번역해야 할까요? 일단 저도 한글로 번역은 했습니다. 사실 이렇게까지 해야할까 나름 고민도 했지만요..

하여간 플러그인에 대한 모질라 개발자들의 속내를 살필 수 있는 유쾌한 농담을 볼 수 있어서 좋았습니다. 그런데, 이러한 농담의 시작은 꽤나 역사가 깊은(?) 것 같습니다. 아마 베타 버전이 나오면 이러한 농담도 볼 수 없겠지요. :-)

현재, Fennec의 L10n 작업은 가능한 Firefox를 참고해서 동일한 번역 결과가 나오도록 맞추고 있습니다. 더 다듬어서 베타 버전에는 한글화된 Fennec을 만날 수 있도록 노력해보겠습니다.

2009년 2월 9일 월요일

FOSDEM 2009 소식


사진:  Teemu Mäntynen

FOSDEM 2009 행사가 지난주에 끝났습니다. 비록 참석은 못했지만 생생한 행사 현장을 여러 블로그를 통해 확인할 수 있었습니다. FODSEM(Free and Open Source Software Developer's European Meeting)은 말 그대로 유럽의 오픈소스 개발자가 모이는 가장 큰 행사입니다. 관련 프로젝트가 무척 다양한데, 미국에서 열리는 OSCON(O'Reilly Open Source Convention)과 비교할 수 있습니다.

Track으로 진행된 프로젝트를 보시면,

KDE, GNOME, Mozilla, X.org, Fedora+CentOS, OpenSUSE, BSD+PostgreSQL, GNUStep, Jabber, Debian, Ada, Free Java, OpenOffice, Drupal, Ruby & Rails, MySQL, Linux Kernel

기타로

OpenMoko, Maemo, CMake, Webkit, Xfce 등에 관한 Session이 열렸습니다.

특히 Mozilla 관련 Session이 많았는데,(개인적인 관심사이다 보니 눈에 띄는군요)

  • Mozilla Europe

  • Mozilla Foundation

  • Mozilla and Universities

  • What's after Firefox 3.1

  • Community Sites Project

  • Building XUL communities

  • SeaMonky

  • Overview of Mozilla QA

  • Oni

  • Rising to the Sun(bird)

  • Thunderbird3

  • Prism

  • Fennec

  • Embedding

  • Mozilla headless back-end

  • Events/EduCamp@FOSDEMa2009



사진:  Teemu Mäntynen(Firefox 티셔츠를 입으신 할머니 모습. 감동적인 사진이군요..)

참고로, FOSDEM은 발표 동영상을 항상 공개하고 있습니다. 2009년은 아직 공개되어 있지 않지만, 예전 행사자료를 볼 수 있습니다. 

내년에는 꼭 참가해보고 싶네요.

참고