이 책에 수록된 내용은 센차터치를 중심으로 관련 모바일 프레임워크를 다룬다. 모바일 오피스 프로젝트를 준비해 오면서 느꼈던 점을 간략하게 구성해 확장성이 높은 프레임워크의 기본을 알려주고, 누구나 모바일 프레임워크를 구성하고 사용할 수 있게 하는 것이 이 책을 쓰게 된 목적이다. 모바일 프로젝트는 단순히 프레임워크에 한정되지는 않는다. 모바일 단말을 사용하면서 관리 포인트가 많이 발생하며 모바일에서 사용해야 할 유틸리티, 보안 등의 문제점을 고려해야 한다. 따라서 모바일 프로젝트에서 준비해야 할 내용은 이 책에서 설명하려는 모바일 프레임워크 이외에도 보안, 기기 관리, 네트워크 관리, 모바일 단말에서 사용할 각종 유틸리티, 서버 애플리케이션 프레임워크, 모바일 관련 업무의 범위와 권한 등이 포함된다. 이런 모든 범위를 다루기는 불가능하므로 이 책은 가장 기본이 되는 모바일 개발에 필요한 프레임워크의 기본 영역만 다뤘다.
이 책에서 다루는 내용은 모바일과 관련된 개발자나 웹 개발자 중 모바일 개발을 하고 싶은 사람, 하이브리드 프레임워크를 이용한 모바일 개발에 관심이 있는 사람에게도 유익한 책이 될 것이다. 가장 기초적인 내용부터 차근차근 설명했으며, 특히 웹앱 중 가장 강력한 센차터치를 어떤 플랫폼에서든 자유롭게 사용할 수 있게 하는 걸 가장 큰 목표로 삼았다.
★ 이 책에서 다루는 내용 ★
■ 가장 강력한 웹앱 센차터치
■ 센차터치와 서버간의 다양한 연동방식
■ 안드로이드 하이브리드 프레임워크 구축
■ iOS 하이브리드 프레임워크 구축
■ 센차터치와 하이브리드 프레임워크와의 연동
■ 안드로이드와 iOS에서의 폰갭 설치와 사용
■ 폰갭과 센차터치의 연동
■ REST와 RESTful 서비스의 이해와 CRUD 구현
■ 스프링에서 사용할 수 있는 저지(Jersey) 프레임워크를 이용한 RESTful 서비스 구현
■ RESTful 서비스와 센차터치의 연동
★ 이 책의 특징 ★
■ 개발자 중심의 단계별 설명과 예제
■ 초보자도 누구나 바로 학습할 수 있도록 손쉬운 환경설정과 개발 방법 안내
■ 학습한 내용을 바로 응용할 수 있도록 실질적 코드와 단계별 미니 프로젝트 수록
■ 웹앱 기반과 하이브리드앱 기반의 개발을 구분해 각각 설명
■ 툴을 사용하지 않은 순수한 안드로이드와 iOS의 근본적인 하이브리드 프레임워크 개발 방식 안내
■ 툴을 사용한 폰갭 기반의 간편한 개발 방식 안내
■ 모바일 오피스에 필요한 모바일 플랫폼의 기본요소인 웹앱, 단말기능, 웹 애플리케이션 프레임워크 모두 포괄
★ 센차터치의 특징 ★
왜 우리는 센차터치를 선택해야 하는가?
1. 가장 강력하기 때문이다
센차터치는 HTML5를 준수하고 HTML5가 지원하는 다양한 기능을 포함한다. 타 라이브러리의 리스트나 툴바를 센차터치의 컴포넌트와 비교해 보자. 무엇이 틀렸는지 알 수 있다. 차트나 맵을 사용하고 스크롤하고 화면을 이동해 보자. 화면의 미세한 움직임부터 강력한 기능까지 그 차이가 명확히 보인다.
2. 기능이 방대하다
센차터치는 수많은 기능을 포함하고 있다. 다양한 UI컴포넌트의 지원과 다양한 응용 방식, 데이터를 처리하기 위한 여러 가지 유형, 서버와 통신하기 위해 필요한 프록시를 선택해 처리할 수 있는 방법 등 방대한 양의 기능을 보유한다. 한 예로 센차터치와 비슷한 성능을 보여주는 제이쿼리모바일은 10킬로바이트가 넘는 용량의 라이브러리를 가지고 있는 반면, 센차터치의 릴리스 버전은 300킬로바이트 이상의 용량을 차지한다. 자바스크립트의 특징상 문자열 기반의 용량으로 계산해 보아도 30배의 코드가 더 들어있는 셈이다.
3. 빠른 처리속도를 자랑한다
센차터치 라이브러리는 한번 로딩 후 계속 사용할 수 있다. 실제적인 화면개발은 HTML에 의존적이지 않다. 페이지마다 호출해 사용하는 타 라이브러리 사용방식과 근본적으로 다르다. 이러한 개발 방식은 방대한 기능을 탑재한다 하더라도 한번 로딩 후 계속 사용할 수 있기 때문에 빠르고 강력하다. 반면 페이지마다 로딩해 사용한다면 방대한 양을 탑재할 수 없는 치명적인 문제점을 가질 뿐만 아니라 화면마다 라이브러리를 호출하므로 느리다. 향후 HTML5의 기능이 계속 확대될수록 라이브러리는 계속 커져갈 것이며 센차터치의 라이브러리 사용방식은 가장 적절하다.
4. 앱과 가장 비슷한 UI화면을 제공한다
기본 테마에서부터, 아이폰, 안드로이드 등의 UI화면을 제공하며 개발자가 변경할 수 있다. 외형뿐만 아니라 페이지의 움직임, 폼에 포함된 컴포넌트 역시 앱과 비슷하다.
5. 쉽고 빠르게 개발할 수 있다
문법이 어렵다고 알려져 있으나 주관적인 의견으로는 절대 그렇지 않다. 센차터치의 문법이 어렵다고 느껴진다는 것은 곧 JSON 형태의 자바스크립트 문법에 익숙하지 못함을 의미한다. JSON형태의 자바스크뎸트는 HTML5의 필수적인 개발방식이므로 센차터치가 아니더라도 반드시 숙지해야 한다. 따라서 이에 익숙해지면 센차터치의 문법은 아주 쉽게 느껴진다. 오브젝트 기반의 개발로 마치 자바를 보는 듯하다. 개발에 숙달될 경우 책의 8장 하이브리드 플랫폼에 기반한 프로젝트를 완성하는 데 이틀이면 족하다(우리 저자들도 실제로 그렇게 개발했다).
6. 신기술 도입 속도가 빠르다
센차터치는 어떤 플랫폼보다도 가장 빠르게 새로운 기술을 적용한다. 차트기능이 정식으로 추가되었고 개발자 블로그에서는 음성인식 기능 등이 테스트 중이다(추가된 기능은 센차터치 홈페이지를 통해 충분히 학습할 수 있다).
7. 진정한 웹앱이다
하나의 프레임워크로 손색이 없다. 하이브리드 플랫폼과 병행할 수도 있으며 독자적인 생태계를 가진 웹앱으로도 충분하다. 모바일 환경뿐만 아니라 태블릿, 일반 PC환경에서도 구현하는 데 모자람이 없다. 이미 PC용 웹앱이 구현된 사이트도 많다.
★ 센차터치의 발전: 현재 그리고 미래 ★
센차터치는 Ext Js, jQTouch, 라파엘의 조합으로 시작된 자바스크립트 라이브리이며 급속한 변화를 겪고 있다 2010년 7월 0.90버전이 발표된 뒤로 수많은 기능과 변화를 가져왔으며 2010년 11월 안정화된 1.0 버전이 발표되었다. 오픈소스 버전으로 1.1.0 버전과 유료버전인 1.1.1 버전이 2011년 8월 발표되었으며 센차터치 전용 차트기능이 추가되었다. 또한 2011년 10월 11일 미완성된 센차터치 2.0의 개발자 버전이 공개되었다. 현재까지의 최종 릴리스 버전은 오픈소스 1.1.0 버전과 유료인 1.1.1 버전이 되며 이 책은 오픈소스의 최종버전인 1.1.0버전과 차트 라이브러리를 포함하여 기술했다. 이러한 모바일 앱의 변화의 중심에 센차터치가 자리하고 있다. 앞으로 2.0 버전이 출시될 경우 모바일 앱 시장의 균형은 센차터치로 기울 수밖에 없다.
센차터치 2.0은 획기적인 기능이 추가될 예정이다. 우선적으로 처리속도의 획기적인 단축과 사용하는 리소스의 감소, 안드로이드의 처리속도 지원, 시작페이지 로딩 속도의 개선, 편리한 개발환경, 네이티브 앱기능 지원 툴 제공, Ext Designer를 통한 위지윅 지원 등이 그러하다. 아직 완성되지 않은 관계로 정확히 얘기할 수 없지만 1.X버전보다 더욱 진보된 형태를 보여줄 것이다. 나 역시 2.0의 릴리스버전을 손꼽아 기다리고 있다.
★ 이 책의 구성 ★
1부 센차터치
1장 모바일 프레임워크 소개 1장은 이 책에서 이야기하려는 전반적인 모바일 프레임워크 구조를 설명하고 센차터치의 특징과 역사, 현재와 미래에 대해 논한다. 프레임워크에 대한 구성과 설명은 주관적일 수 있다. 가장 일반적이고 범용적으로 사용할 수 있는 방법을 제시했으며, 2장 이후로 이런 내용을 장마다 설명하고 구현했다.
2장 센차터치 기본 웹 기반의 모바일 단말 개발은 업무의 실시간 적용이라는 가장 큰 장점이 있지만 속도 문제를 안고 있는 어쩔 수 없는 양면성이 있다. 하지만 모바일 단말의 실시간 적용이 가장 우선이므로 속도의 문제점을 안고 가는 것이 유리할 것으로 판단한다. 이런 웹의 처리 속도에 대한 문제점을 극복하고자 이 책에서는 센차터치라는 가장 강력한 자바스크립트 라이브러리를 선택해 전 장에 걸쳐 센차터치를 중심으로 집필했으며, 어떻게 활용하는지 자세히 설명한다.
2부 센차터치와 웹
3장 센차터치와 서버 연동 이 책은 모바일 오피스(Mobile Office)를 개발하려는 데 중점을 뒀다. 따라서 단독 애플리케이션을 개발하거나 소규모 앱을 만들어 배포하는 형태뿐만 아니라 대규모 프로젝트에도 적합할 것이다. 어떤 형태든 웹 화면이 있다면 서버와의 연동이 가장 중심 사항이 된다. 2장에 이어서 서버와의 연동 방식과 이에 필요한 서버의 설정이나 사용법을 설명한다.
4장 센차터치와 웹 기반 모바일 프로젝트 4장은 2장과 3장에서 배운 센차터치와 서버를 이용해 실질적인 웹 프로젝트를 만든다. 실제 페이지가 많아지고 서로 연동돼 움직임을 구현할 경우 단독 페이지를 만드는 것과 많은 차이를 느낄 수 있다. 웹 기반 모바일 프로젝트는 센차터치 고유의 컴포넌트 중심 프로젝트와 화면의 움직임, 서버 연동 등만 센차터치를 사용하고, 화면 구성을 HTML 방식으로 구현하는 두 가지 형태의 프로젝트를 알아본다.
3부 센차터치와 앱
5장 하이브리드앱을 위한 안드로이드 앱 개발 순수한 웹을 벗어나 하이브리드에 대해 알아보며, 5장에서는 이 중 안드로이드를 먼저 살펴본다. 안드로이드는 필요한 대부분의 기능을 무료로 제공해주며 자바 기반 언어로 쉽게 접근할 수 있다. 안드로이드 개발을 위한 설치, 환경 설정, 기본적 구현과 웹뷰를 학습해 기본적인 하이브리드 플랫폼 개발에 필요한 기반 기술을 익힌다.
6장 하이브리드앱을 위한 아이폰 개발 6장은 5장에서의 안드로이드 개발과 동일한 개발 과정을 밟아가며 하이?리드 개발에 필요한 아이폰의 개발 사항을 살펴본다.
7장 센차터치와 폰갭 7장에서는 폰갭(PhoneGap)에 대해 알아본다. 폰갭은 5장과 6장에서 직접 만든 프레임워크를 솔루션화해 구현한 패키지다. 웹앱이라는 용어보다는 하이브리드 프레임워크 솔루션으로 해석하는 편이 타당하다고 생각한다. 이런 폰갭을 안드로이드와 아이폰, 센차터치 등과 연동해 구현한다.
8장 센차터치와 하이브리드 기반 모바일 프로젝트 5장과 6장에서 안드로이드와 아이폰으로 구현한 하이브리드 프레임워크를 기반으로 실질적인 프로젝트를 구상하고 만드는 과정을 밟는다.
4부 센차터치와 REST 연동
9장 REST 애플리케이션 프레임워크 기기 위주의 설명에서 벗어나 서버 고유의 프레임워크에 대해 알아본다. 스프링 기반의 여러 프레임워크를 고려했고 이 중 최근 유행하는 RESTFul 방식의 프레임워크를 알아보고 구현해본다.
10장 센차터치와 REST 애플리케이션 프레임워크 센차터치와 REST 서버 애플리케이션 프레임워크를 사용해 대화형 게시판을 만든다. 대화형 게시판은 글이나 사진을 실시간으로 올리고 내용을 조회하는 게시판과 비슷한 프로그램을 구현한다.
책의 각 장에 대해 간단한 설명을 했으므로 이 책을 통해 독자에게 전달하려는 의도는 파악됐으리라 본다. 현재 이 순간에도 많은 모바일 프로젝트가 만들어지고 있으며, 사람들은 그 과정에서 어떤 프레임워크를 선택할 것인지 어려움을 겪는다. 현재 시점에서 개발할 수 있는 모바일 프레임워크 중 간편하고 미래지향적인 구조를 가진 프레임워크를 개발하는 데 이 책이 독자에게 도움이 될 것으로 믿는다. 아무쪼록 독자 스스로 건강한 모바일 프레임워크를 만들길 기원한다.
★ 이 책의 소스코드 활용법 ★
이 책에 나오는 예제 소스코드는 에이콘출판사 도서정보 페이지 http://www. acornpub.co.kr/book/sencha-touch에 수록돼 있다. 해당 경로에는 2장부터 10장까지 구성돼 있으며 장별로 예제의 사용법을 설명했다. 기타 필요한 설명과 환경 설정은 각 장에서 자세히 설명한다.