소프트웨어/JavaScript • Dhtml

오프라인 Ajax가 가지는 의미 - Google Gears

falconer 2007. 6. 6. 02:22
Google Developer Day에서 발표된 Google Gears(구글 기어즈)는 오프라인에서도 온라인처럼 사용할 수 있는 클라이언트 스토리지 솔루션입니다. 특징을 보면, SQLite를 이용한 데이터 처리 및 문서 검색,  서버와 클라이언트 사이의 데이터 동기화, 개발자와 사용자를 위한 JavaScript APIs를 들 수 있습니다.(Channy님의 포스트 인용) 아시다시피, Google은 Google reader에 실제로 오프라인(Offline) 서비스를 추가하였습니다. 아래의 자바스크립트 예문을 봅시다.

function initDb() {
  if (!window.google || !google.gears) {
    return;
  }

  db = getDb();
  run('create table if not exists feeds (' +
             'id integer not null primary key autoincrement,' +
             'title varchar(255),' +
             'url varchar(255),' +
             'description text)');

  run('create table if not exists posts (' +         
             'id integer not null primary key autoincrement,' +
             'feed_id integer,' +
             'title varchar(255),' +
             'url varchar(255),' +
             'content text)');
}
 
function getDb() {
  try {
    var theDb = google.gears.factory.create('beta.database', '1.0');
    theDb.open('rssbling');
    return theDb;
  } catch (e) {
    alert('Could not create the rssbling database: ' + e.message);
  }
}

 
/*
* Check to see if the feed is already there before adding it
*/
function addFeed(title, url, description) {
  var rslt = executeToObjects('select id from feeds where title = ? and url = ?', [title, url])[0];
  if (rslt) { return; }
  run('insert into feeds (title, url, description) values (?, ?, ?)', [title, url, description]);
}

 
function selectPosts(feed_id) {
  return executeToObjects("select * from posts where feed_id = ?", [feed_id]);
}

서버단 코딩없이 자바스크립트가 직접 DB쿼리를 날리는 발상은 기가 막힙니다. 온라인 환경에서만 사용할 수 있는 웹 취약점을 보완하는 것 뿐만 아니라, 더욱 다양한 형태로 활용될 수 있을 것입니다. 예를 들어 얼마전 소개한 Ajax기반 운영체제에 있어서 오프라인은 로컬파일 접근과 다를바 없으며, 오프라인에서도 보여지는 웹서비스 또는 블로그는 Gears의 사용가능한 DB에 직접 접근하여 로딩속도 증가 및 트래픽 분산효과를 기대할 수 있고, 비교적 통신환경이 저조하거나 비용이 비싼 모바일은 더할나위없는 솔루션입니다. PDA 서비스중 하나인 아반고(avantgo)와 비슷한 맥락이기도 합니다. 자바스크립트만으로 하나의 완성된 애플리케이션을 개발한다는 관점으로 다가서면 Gears는 상식을 뒤엎습니다. 여담입니다만, 꾀나 인지도있는 자바스크립트 라이브러리인 Dojo는 Gears를 사용한 프로젝트를 발빠르게 시작한 모양입니다.(비디오 인터뷰)

그래서 개인적으로 Gears API를 이용한 오프라인 블로깅 프로젝트를 진행해 볼까 생각하고 있습니다. 버스나 지하철 기타 교통수단 속에서 노트북이나 PDA등으로 실제 블로그를 접속한 듯이 포스트를 읽고 작성하며 실제 온라인환경에서는 몇번의 싱크만으로 이루어지는 블로깅 멋지지 않습니까?


출처 : 파이어준