페이지

2010년 8월 12일 목요일

우리에게 이야기가 없는 이유

P1010475
2010 부천판타스틱영화제. 건담 영화 상영과 함께 전시회도 열렸다.
얼마전 부천국제판타스틱 영화제에서 건담 영화를 봤습니다. 비디오로 몇 번 보다가 대형 스크린에서 건담을 보니 감회가 새로웠습니다. 영화제와 함께 별도로 건담 전시회도 함께 열렸는데, 건담의 시작과 각 에피소드, 등장 인물을 한눈에 볼 수 있도록 잘 정리해 놓았습니다. 70년대 말 부터 30년 가까이 계속되고 있는 건담 시리즈는 넓은 세계관 만큼 다양한 에피소드를 갖고 있고 계속 진화 발전하고 있습니다. 세계적으로 이런 시리즈물은 많이 있습니다. 영화 스타워즈, 스타트랙을 비롯해, 소설 반지의 제왕, 해리포터 시리즈 등 다양한 이야기와 독창적인 세계관으로 전세계적으로 많은 팬을 거느리고 있습니다. 그렇다면 과연 우리에게도 이와 같은 이야기가 있을까요?
Open the source code of Death Star!
때로는 스타워즈의 등장 인물의 되고 싶을 때가 있다.
제가 좋아하는 스타워즈를 예로 들어보겠습니다.너무나 유명한 스타워즈는 1977년 조지루카스 감독에 의해 영화로 만들어진 후, 소설, 게임, 애니메이션으로 만들어져 큰 인기를 누리는 장수 시리즈입니다. 현재는 TV드라마로도 제작되고 있습니다. 흥미로운 것은 영화에서 소개된 줄거리는 어쩌면 일부에 불과하다는 것입니다. 영화 이전 시대인 구공화국 이야기와 에피소드간의 중간 이야기 그리고 각 등장인물의 외전까지 합하면 모든 이야기를 따라가는 것은 매니아가 아니면 벅찬 일이지요.

일본의 경우, 건담 뿐만 아니라 소설이지만 애니메이션으로 유명한 은하영웅전설이 있고, 많은 영화와 또 다른 애니메이션의 모티브가 된 공각기동대, 지금도 계속 영화로 이야기를 반복하고 있는 에반게리온 등이 있습니다. 여기서 미야자키 하야오의 나우시카를 빼놓으면 안되지요. 원작은 만화이며 애니메이션은 전체 이야기의 1/10만 소개되어있습니다. 애니메이션 만으로는 이해하기 힘든 독창적인 세계관과 역사를 소개하고 있고, 환경 파괴에 대한 저자의 생각을 이해하는데 도움이되는 초기 작품입니다. 

우리나라도 태권V가 시리즈가 있긴 하지만, 어떤 세계관을 담기 보다는, 우주평화를 위해 악당 로봇과 싸우는 수준이였던 것으로 기억합니다. 김박사, 깡통 로봇, 메리 외에 뚜렷이 기억할 만한 등장 인물이 없지요. 우리나라가 온라인 게임은 발전되어 있지만, 게임이외에 다른 형태로는 발전을 못했습니다.

이런 현상이 왜 일어난 것일까요? 줄세우기식의 교육 제도, 만화 컨텐츠에 대한 부정적인 시각, 창작 문화에 대한 투자 부족 등이 원인일 수 있습니다. 그러나, 제가 보기에는 "빈둥거릴 여유"가 없어서 그런 것 같습니다. 그냥 아무것도 하지 않고 상상할 수 있는 여유가 있어야 하는데, 우리 사회는 그런 것을 용인할 만큼, 여유가 없습니다.

우리는 너무 바쁩니다. 아이들은 밤늦게 어딘가에 잡혀서 자신들의 상상력을 죽이고 있고, 대학생들은 세상을 공부하기 보다는 좋은 스펙을 쌓기 위해 노력해야 합니다. 직장인은 야근과 각종 회식과 모임으로 소설 책 한권 읽을 여유가 없는 것 같습니다. 

빈둥거려봅시다. 사실 배울 것도 많고 할 일도 많지만, 일정 시간을 내서 여유를 가져봅시다. 그리고, 연습장에 나만의 이야기를 써 봅시다. 그 이야기가 발전되면 우리가 만들고 모두가 좋아하는 멋진 이야기를 갖게 될지도 모릅니다.

2010년 7월 26일 월요일

웹 브라우저 테스트하기

모든 소프트웨어가 번거로운 테스트 단계를 거치지만, 웹 브라우저를 테스트하는 일은 좀 더 어렵습니다. W3C 표준에 맞게 기능을 구현해야 하며, 표준화가 미흡한 부분은 다른 브라우저와 비교가 필요합니다. 이렇게 표준을 잘 지켜 브라우저를 개발했다고 하더라도 표준을 벗어난 형태로 작성된 웹페이지도 있고, 현실적으로 모든 웹페이지를 다 테스트할 수 없기 때문에 모든 사람을 만족시킬 수 있는 브라우저를 개발하는 것은 불가능한 일입니다. 웹페이지를 작성하고 테스트하는 것도 마찬가지이겠죠. 모든 브라우저가 표준만 잘 지켜면 좋으련만 기기마다, 플랫폼 마다, 브라우저 마다, 버전 마다 다르게 동작하기 때문에 많은 테스트가 필요합니다. 본 글에서는 다양한 각도로 웹 브라우저를 테스트하는 방법을 한 번 정리해보았습니다. 크게 브라우저 기능, 자바스크립트 성능, 그래픽 성능 테스트로 나누어 설명합니다. 

웹 브라우저 기능 테스트

HTML5 테스트


HTML5 관련 API, 마크업이 있는지 확인해 주는 웹페이지입니다. 단지, 확인만 하기 때문에 정상적으로 동작하는지는 알 수 없습니다. 일단, 잘 동작한다는 가정 아래 어느 정도 HTML5 관련 기능을 구현했는지 확인해볼 수 있습니다.

웹사이트 주소: http://www.html5test.com/

W3C CSS 테스트

<표1> CSS Test Suite 개발 현황 (출처: http://www.w3.org/Style/CSS/Test/)

W3C에서 공식적으로 제공하는 CSS 테스트 스위트(Test Suite)입니다. 회원사에서 기여한 테스트 케이스( Test Case)를 정리한 것으로, 웹에서 바로 테스트할 수 있도록 하였습니다. 자동화된 것은 아니고, 일일히 사람이 확인해야 하는 불편함이 있으나 표준화된 내용 하나하나를 직접 확인해 볼 수 있습니다.

웹사이트 주소 http://www.w3.org/Style/CSS/Test/

CSS Acid1 테스트

원래 Box Acid Test라고 불렀으며, 1998년에 개발되었습니다. 브라우저가 CSS1.0 표준을 잘 지원하는 테스트합니다. CSS1.0은 글꼴 속성, 텍스트 색상, 배경 그림, 엘리먼트 Margin, border, padding, 위치 등을 다룹니다. 


CSS Acid2 테스트

Acid2 Test
Acid2 Test는 주로 CSS 2.1 사용하여 HTML 레이아웃 렌더링이 잘 되는지 확인합니다. HTML 마크업, CSS2.1 Styling, PNG 이미지, Data URIs 등을 테스트합니다.

웹사이트 주소 http://acid2.acidtests.org/

CSS Acid3 테스트


Acid3 Test는 웹브라우저가 DOM과 자바스크립트와 관련하여 웹표준은 얼마나 잘 지키고 있는 확인합니다.

웹사이트 주소 http://acid3.acidtests.org/

JavaScript 성능 테스트

애플(Apple)에서 사파리 브라우저에 스쿼럴 피시(SquirrelFish)라는 자바스크립트 엔진을 적용하면서 자바스크립트 성능 논쟁이 뜨겁기 시작했습니다. 구글(Google)도 이에 뒤질세라 V8이라는 자바스크립트 엔진을 크롬 브라우저에 적용하면서 브라우저 성능 경쟁에 뛰어들었습니다. 모질라도 동참했습니다. 이들 회사가 자바스크립트 엔진만 개발한 것이 아니라, 성능까지 측정할 수 있는 최근까지 벤치마크(Benchmark)를 함께 공개했습니다.
 
개발 회사벤치마크특징
모질라DromaeoSunSpider와 JavaScript Engine Speeds
기반으로 개발
구글V8 Benchmark기존에 개발된 벤치마크 코드를 자바스크립트로 구현하여 사용
애플SunSpider실제 사용되는 자바스크립트 코드 사용
<표2> 자바스크립트 주요 벤치마크 스위트

드로마에오(Dromaeo)

JQuery를 개발하고 현재 모질라에서 근무하는 John Resig이라는 분이 개발한 자바스크립트 성능 테스트 스위트입니다. SunSpider와 JavaScript Engine Speeds기반으로 개발되었습니다.

웹사이트 주소 http://dromaeo.com/

V8 Benchmark

구글에서 개발한 V8 자바스크립트 엔진의 성능을 평가하기 위해 개발된 벤치마크 스위트입니다.

웹사이트 주소 http://v8.googlecode.com/svn/data/benchmarks/v5/run.html

SunSpider

애플사에서 만든 자바스크립트 벤치마크로서 JSON 입력으로 부터 태그크라우드(tagcloud)생성, 3D 레이트레이서(raytracer), 암호기법( cryptography) 테스트, 코드 압축해제(code decompression)등과 같은 실제 문제를 포함하고 있습니다. 실제로 많은 웹 브라우저 벤치마크에서 SunSpider를 사용하고 있습니다.



재미있는 것은 각 벤치마크가 자신들의 자바스크립트 엔진에서 좋은 결과를 보여준다는 것입니다. 테스트케이스를 어떻게 선정하느냐에 따라 결과가 다르게 나올 수 있으므로, 여러 벤치마크 스위트를 사용하여 브라우저의 성능을 테스트하는 것이 좀 더 객관적인 판단을 내리는데 도움을 줍니다. 참고로, 2009년 9월에 FavBrowser.com에서 실시한 웹브라우저 벤치마크에서 크롬2가 높은 평가를 받았습니다.

<표2> 웹브라우저 벤치마크 평가(2009.9) (출처: FavBrowser.com)

그래픽 성능 테스트

마이크로소프트에서 지난 3월 IE9 Preview와 함께 "Internet Explorer9 Test Drive"라는 성능 평가 사이트를 공개했습니다. 사실 IE9보다 이 웹사이트가 더욱 흥미로웠는데, 그 동안 다른 브라우저에서는 중요하게 생각하지 않았던 그래픽 성능 데모가 추가되었기 때문입니다.  특히, IE9이 하드웨어 그래픽 가속을 장점으로 내세우면서 앞으로 자바스크립트 성능 못지 않게 2D/3D 그래픽 가속이 브라우저 성능 평가에 중요한 기준으로 자리잡을 전망입니다.


다음에는 "오픈소스 브라우저 엔진은 어떻게 테스트하는가?"라는 제목으로 Mozilla, WebKit의 테스트 방법을  정리하는 기회를 갖도록 하겠습니다. 고맙습니다.

참고




2010년 6월 6일 일요일

Qt의 열린 지배 모델



Qt의 Git Repository가 공개된지 1주년이 되었습니다. 국내에는 불과 몇 종류의 심비안(Symbian)기반의 스마트폰이 소개되었고, Maemo5를 사용한 N900단말도 출시되지 않았기 때문에, 최근 Nokia 횡보에 관심을 가져주는 매체는 많지 않습니다. 요즘은 연일 iPad, iPhone, Android에 대한 기사를 쏟아내기 바쁘죠. 최근, Nokia Maemo와 Intel Moblin이 합쳐진 MeeGo v1.0이 정식 릴리스 되었고, 조금씩 그 기세를 키워나가고 있습니다.

Android가 비록 Linux Kernel을 사용하고 플랫폼 자체는 오픈소스(Open Source)화되었지만, 사실 기존 오픈소스 커뮤니티에 큰 관심을 주지 못하고 있습니다. 근본적인 이유는 개발 중인 소스코드 저장소(repository)가 공개되어 있지 않은 점, 코드를 기여할 수 있는 프로세스가 없다는 점 복잡한 점 등을 들을 수 있지만, 플랫폼을 구성하는 주요 컴포넌트는 원래 독점 소프트웨어이기 때문에 커뮤니티 자체가 존재하지 않는 부분이 주된 이유인 것 같습니다.

그래서 GNOME, KDE, Linux Kernel 등과 같은 오픈소스 커뮤니티가 Maemo와 Moblin의 통합에 관심을 갖는 것은 자연스러운 일이였습니다. 현재, Nokia는 Qt의 개발용 저장소를 공개하므로서 개발 상황을 공유하고 있고, 외부 개발자의 patch도 받아들이고 있습니다. 앞으로 기술적 논의 뿐만 아니라 로드맵, 일정과 같이 제품에 영향을 주는 의사결정까지도 공개적으로 하겠다고 합니다.
또한, 커뮤니티가 QA 프로세스에 접근할 수 있는 권한을 준다고 합니다. 테스트 결과나 통합 빌드 보고서 등을 공유한다는 것입니다. 이에 더 나아가 의사 결정 과정에 Contributor를 참여시킬 계획을 갖고 있습니다.

이를 통해 Nokia는 더 많은 커뮤니티의 참여를 이끌어 내고, 신뢰성 있는 제품을 개발할 수 있게 됩니다. 커뮤니티의 개발 참여를 통해 다양한 아이디어도 쉽게 받아들일 수 있고, QA에 드는 비용도 절감할 수 있습니다. 이런 시도가 얼마나 큰 성공을 가져다 줄지는 사실 알 수 없으나, Intel과의 협업을 이끌어내는 등 소기의 성과도 얻었습니다. 물론, Apple, Google에 비해 모바일 플랫폼 경쟁에 뒤떨어져있는 Nokia가 취할 수 밖에 없는 전략일 수도 있지만, Nokia의 이런 행동이 실제로 오픈소스 커뮤니티의 참여를 이끌어 내는 것도 사실입니다.

Nokia는 Post Symbian 시대를 준비하기 위해 Maemo, Qt에 투자하면서 오픈소스를 전략적으로 잘 활용하고 있으며, 이런 움직임이 다른 제조사에게도 영향을 주고 있습니다. Nokia를 통해 제조사가 더 많은 것을 공개할 수록 더 많은 회사, 개발자를 우리편으로 만들고 그 바탕으로 좀 더 좋은 플랫폼, 제품을 개발하는 성공적인 모델을 기대해봅니다.

2010년 1월 19일 화요일

Rendering in WebKit



WebKit의  내부 동작을 설명해주는  video입니다. 구글에서 좋은 정보를 많이 공개하네요..