요즘 애플리케이션은 사용자에게 단순히 기능뿐만 아니라 즐거움을 주려고 노력한다. 특히 사용자의 전환이 빠르고 경쟁이 치열한 웹 애플리케이션은 AJAX, 플래시로 이어지며 화려한 UI와 사용자 경험(UX, User eXperience)을 더욱 강조한 RIA(Rich Internet Application)가 어느새 당연한 것으로 받아들여지고 있다.
그만큼 개발환경도 좋아져서 개발 툴에서 몇 번의 조작만으로도 멋진 애니메이션을 만들 수 있다. 심지어 애플리케이션 개발과 애니메이션 구성이 별개 작업으로 이뤄지기도 한다. 하지만 리치 클라이언트에서 애니메이션의 의미는 단순히 눈을 즐겁게 하는 것뿐만 아니라 애플리케이션 전체가 하나의 흐름으로 사용자에게 전달되기 위한 것이다. 이를 정확히 반영하기 위해서는 개발자가 그래픽이나 애니메이션의 기초 원리를 파악하고 애플리케이션 전반에 걸쳐 녹여내야 한다. 단순한 애니메이션의 나열로는 사용자의 호기심은 자극할 수 있을지언정 사용자의 마음을 흔들 수는 없다.
이 책에서는 리치 클라이언트의 선구자인 저자들이 리치 클라이언트 개발의 기본 원리를 기초부터 설명하고, 풍부한 개발 경험과 함께 직접 개발한 그래픽스/애니메이션 라이브러리를 제시하고 설명한다. 자바 2D와 스윙 라이브러리를 기준으로, 그래픽스나 애니메이션의 기초 원리를 개발자 대상으로 충실히 설명한다. 또한 리치 클라이언트로서 가져야 할 기본 원칙이나 이펙트, 수학적인 기초, 성능 최적화 기법 등은 플랫폼에 무관하게 활용할 요소가 많다.
아직은 딱딱해 보이는 이클립스 RCP에 좀 더 활력을 불어 넣을 방안을 모색하기 위해 이 책의 번역을 맡았다. 원래 스윙을 좋아하기도 했지만, '쿨Cool'한 애플리케이션을 향한 저자들의 열정과 노하우가 정말 매력적이었기 때문이다. 이 책이 번역되는 동안, 저자 중 한 명인 쳇은 JavaFX를 개발하다 결국 어도비로 자리를 옮겨서 RIA 플랫폼 개발에 더욱 매진하고 있다. 로메인은 구글에서 안드로이드 UI 개발에 참여하고 있다. 스윙에 많은 기여를 했던 두 사람이 이제는 그 경험을 살려 각자 다른 플랫폼에 기여를 하고 있는 셈이다. 그래픽스나 애니메이션에 대한 기초 지식에 부족함을 느낀 채 툴에 의존해 리치 클라이언트를 개발하고 있는 독자라면, 이 책에서 두 저자가 남겨둔 발자국을 따라가면서 더욱 멋진 리치 클라이언트를 향한 기반을 탄탄히 할 수 있을 것이다.
이 책의 가치를 믿고 한국어판 출간을 지지해주신 권성준 사장님과 김희정 부사장님, 오랜 작업기간 동안 물심양면 도와주신 황지영 대리님 등 에이콘출판사 분들께 진심으로 감사드립니다.
원래 예전부터 애플 제품을 추종(?)해오긴 했지만, 아이폰은 내게 두 번의 큰 감동을 안겨줬다. 물론 팜과 뉴턴 이후 인터넷 시대에 걸맞는 모바일 디바이스를 기다리던 사람이라면 누구나 같은 감동을 느꼈겠지만, 친구들과 모바일 시대를 꿈꾸며 모바일 소프트웨어 회사를 차려 작은 사무실에서 버텨보다가 좌절했던 내에게는 조금은 의미가 특별했다.
첫 번째는 아이폰과 터치 초기 모델에서 모바일 사파리의 등장이다. PC 동급 스펙의 웹 브라우저와 쿼티 키보드로 웹의 항해권을 이동통신사가 아닌 사용자에게 돌려줬다. 지금에 비해 버그도 많고 안정성도 많이 뒤떨어지긴 했지만, 기존 사이트와 아이폰 전용 사이트를 넘나드는 멋진 모바일 웹 애플리케이션을 개발할 수 있었다. 물론 이 부분은 우리나라만 유난히 폐쇄적인 부분이었고 아이폰 출시 계획이 전혀 없던 우리나라에는 조금도 영향을 주지 못했다. 하지만 스마트폰이라고 불리면서도 시장을 조금도 만들어내지 못한 포켓IE나, 서버사이드 렌더링에 의존하던 기형적인 폰브라우징에 비하면 손에 잡히는 무언가가 생긴 것만으로도 너무나 기뻤다.
두 번째는 아이폰OS SDK의 등장이다. 창의적인 애플리케이션을 마음껏 개발할 권한을 이동통신사가 아닌 개발자에게 돌려줬다! 기존의 주요 모바일 SDK는 발주자인 이동통신사의 눈치를 보느라 모바일 환경에서 의미 있는 핵심 API는 접근 제한을 걸거나 이동통신사 확장 API의 형태로 제공됐다. J2ME, 퀄컴 브루, 윈도우 모바일 등 가장 영향력 있는 업체들조차도 예외는 없었다. 해외진출을 목표로 한다던 WIPI는 통일된 API를 만들어놓고도 라이브러리 사용 권한 제한에 상당한 노력을 들이고, 최종 컴파일 권한까지 이통사에 부여했을 정도다. 모바일 애플리케이션 개발사는 애플리케이션 개발보다는 애플리케이션 제안과 API 사용 승인에 목숨을 걸어야 했다. 해외진출은 에이전트를 통하지 않고는 불가능이나 다름없었다(물론 내 능력이 부족한 탓도 있었을 게다. 개발 이외의 부분까지 척척 해내는 분들이 부러울 뿐이다).
이렇게도 공고해 보이던 권력구조를 깨 준 것이 애플이라니! 전 세계 이통사를 막론하고 개발만 해서 올리라는 스티브 잡스의 발표는 개발자가 구세주나 다를 바 없었다. 나는 이미 모바일 업계를 떠난지라 아이폰 사용자로 만족하며 살고 있지만, 지금까지 가로막혀 있던 창의성을 늦게나마 세계로 펼쳐나가는 국내 개발자 분들을 보면서 안도와 희망을 느낀다. 결국 모바일 웹과 모바일 애플리케이션의 자유는 아이폰이라는 형태로 나타났으며, 이제 아이폰 이외의 디바이스도 이 물결에 올라타지 못하면 도태될 것이다.
서론이 길었지만 강조하고 싶은 내용은 아이폰 SDK로 만든 네이티브 애플리케이션이 항상 최선의 아이폰 애플리케이션은 아니라는 점이다. 아이폰 SDK라는 두번째 혁명 이전에는 이미 모바일 사파리라는 첫 번째 혁명이 있었다. 국내 아이폰 도입이 늦다보니 아이폰 SDK 기반의 애플리케이션만 주목 받는 측면이 있다. 하지만 아이폰 애플리케이션의 한 축은 분명히 모바일 웹 애플리케이션이다. 아이폰 이후 경쟁적으로 나타날 스마트폰을 포용하려면 더더욱 그렇다.
이 책은 모바일 사파리 기반의 웹 기술을 활용한 아이폰 애플리케이션 개발서적이다. 기본적으로는 아이폰 애플리케이션 개발의 진입장벽을 낮추고 기존의 웹 기술을 활용하는 것이 목적이다. 단순히 애플리케이션을 빨리 개발하자는 관점으로 본다면 기존 네이티브 애플리케이션보다 경쟁력이 떨어지는 애플리케이션이 될 위험도 있다. 하지만 하루가 다르게 바뀌는 모바일 시장에서 빠른 프로토타이핑과 릴리스를 통해 시장에 진입하는 것도 매우 중요한 일이다. 더구나 아이폰 애플리케이션의 두 축은 사파리 웹 애플리케이션과 네이티브 애플리케이션이며, 이 책에서 설명하는 아이디어를 기반으로 모바일 웹과 애플리케이션을 융화시킨 모델이 성공적인 애플리케이션의 일반적인 형태가 될 것이다. 퀵커넥트와 폰갭은 아직 한창 개발 중인 두 프레임워크지만 하루라도 빨리 번역해서 소개하고 싶었다. 당장은 자바스크립트로 애플리케이션을 찍어내는 용도로 사용하더라도 길게는 모바일과 웹 융합 애플리케이션에서 앞서가길 바라기 때문이다. 두 가지 상반된 목표가 있다 보니 매우 얇은 책인데도 가장 번역하기 힘들었던 책이기도 하다. 내 자그마한 바람이 모바일 애플리케이션 개발자 분들에게 도움이 되길 바란다.