반응형
블로그 이미지
개발자로서 현장에서 일하면서 새로 접하는 기술들이나 알게된 정보 등을 정리하기 위한 블로그입니다. 운 좋게 미국에서 큰 회사들의 프로젝트에서 컬설턴트로 일하고 있어서 새로운 기술들을 접할 기회가 많이 있습니다. 미국의 IT 프로젝트에서 사용되는 툴들에 대해 많은 분들과 정보를 공유하고 싶습니다.
솔웅

최근에 올라온 글

최근에 달린 댓글

최근에 받은 트랙백

글 보관함

카테고리

Kurogo Tutorial 01

2012. 5. 4. 20:05 | Posted by 솔웅


반응형

MODO Labs 의 Kurogo 시스템을 사용하게 됐습니다.

이전에는 몰랐던 새로운 기술을 배워야 되서 아주 신나네요.


제 스타일대로 Kurogo 웹사이트의 튜토리얼을 한번 쭉 정리해야겠습니다.


Kurogo Documentation

Kurogo Developer’s Guide¶

Kurogo 프레임워크는 PHP base 웹 어플리케이션 입니다. 광범위한 모바일 디바이스에 대한 서비스와 정보를 효율적으로 전달하는 것을 체계적으로 도와주는 툴입니다. MIT 프레임워크를 기반으로 했고 오픈 소스 프로젝트 입니다. 이 프로젝트는 확장성 있고 customizable 한 다양한 데이터 소스의 현재의 모바일 버전에 modular way 로 기능을 제공합니다.

Kurogo Framework에는 아래와 같은 것들이 포함 돼 있습니다.

• 디바이스의 특장을 감지하고 해당 디바이스에 알맞게 콘텐트를 display 하는 매커니즘
• 다양한 외부 소스로부터 데이터를 검색하고 parsing하고 display 하는것을 객체 지향적으로 처리함
• consistent한 유저 인터페이스를 손쉽게 개발할 수 있도록 테마별로 정리하고 재사용할 수 있도록 utilize해 효과적으로 탬플릿화 할 수 있도록 도와 줌
• 디렉토리와 뉴스 그리고 이벤트 정보들을 모으기 위해 prebuilt 와 customizable 모듈을 같이 사용할 수 있도록 지원
• 컨텐트와 관리자모드로의 접근시 이를 인증하고 검증하는 시스템

아래 내용들은 프로젝트 소스코드와 그 기능들에 대해 알 수 있는 가이드 입니다.


Overview

Kurogo는 다양한 종류의 모바일 기기에 delivering high quality와 data driven customizable content를 지원하기 위해 만들어진 PHP 프레임워크입니다. Kurogo는 다양한 source로부터 content를 받도록 해 주고 이를 피쳐폰이나 초기 스마트폰에서부터 최신 디바이스와 태블릿같은 광범위한 모바일 기기에 이를 표현할 수 있도록 해 줍니다. 모바일 웹 컴포넌트는 PHP를 사용한 웹 베이스의 어플리케이션 처럼 있습니다. 이 어플리케이션은 웹 서버에 호스트 되고 유저는 모바일 기기에 있는 웹 브라우저를 통해 이곳에 접근합니다.

이것은 liberal 오픈소스 MIT 라이센스를 사용해서 만들어 졌습니다. 이 의미는 여러분은 공짜로 이 제품을 다운로드 받아 설치하고 카피하고 수정하고 등등 여러분의 입맛에 맞게 고쳐서 사용할 수 있다는 겁니다.

Modules¶

Kurogo를 구성하는 부분 부분들은 Module입니다. 각각의 페이지 request는 url을 parse 하는 모듈에 의해서 처리됩니다. 그리고 나서 그 페이지를 표시합니다. 모듈은 코드의 조각들로 구성돼 있습니다. 그것들은 데이터를 처리하는 외부의 서비스들과 연결돼 있죠. 그리고 그 결과를 HTML과 CSS 표준을 사용해서 디바이스에 display 합니다. Kurogo는 여러 다양한 외부의 source들로부터 데이터를 받을 수 있도록 디자인 돼 있습니다. 그리고 그 데이터를 parse 하고 처리하고 화면에 출력하기 알맞는 포맷으로 준비합니다.

일반적인 유저 request는 데이터 소스를 query 하는 것을 포함하고 있습니다. 그리고 Data Parser를 사용해서 그 결과 data를 parsing 합니다. 그리고나서 그 모듈은 그 데이터를 template 엔진으로 pass 합니다. 이 탬플릿 엔진은 HTML,CSS, javascript 등을 사용해서 device에 결과를 출력하게 되는 것이죠.



Device Detection¶

 Kurogo의 중요한 기능중 하나는 현재 사용하고 있는 기기가 어떤 것인지 감지하는 것 입니다. 요즘의 모바일 기기들은 각각 다른 capability를 가지고 있고 그 성능도 각기 다릅니다. 그래서 현재 사용하는 디바이스를 구분해 내는 것은 유저에게 결과물을 보기 좋게 해당 디바이스로 제공하기 위해 아주 중요한 기능입니다.

Kurogo 는 pagetype과 platform에 따라 디바이스를 분류합니다. pagetype은 디바이스의 기본 capability를 기반으로해서 분류하는 겁니다. 이것은 CSS 지원이나 javascript, 이미지 처리 등의 기능에 따라 단계별로 구분 됩니다. platform은 그 디바이스가 사용하는 시스템이나 브라우저를 기반으로 분류하는 겁니다. 이러한 분류들은 해당 디바이스에 최선의 퍼포먼스를 보여주기 위해 여러 방법으로 사용됩니다. Kurogo는 이 각각의 기기별로 일반적인 유저 인터페이스 element들과 모듈들을 포함해 최선의 결과를 보여주기 위한 template과 CSS 파일의 시리즈들이 있습니다.

Customization¶

초기에 Kurogo는 customize 되기 위해 built 됐습니다. 여러분은 모듈로 어떻게 데이터를 get 하는지, 어떻게 이것을 parse 하는지 그리고 유저에게 이것이 어떻게 보여지는지에 대해 완벽하게 콘트롤 할 수 있습니다. 소프트웨어의 modular 세계는 여러분에게 어떤 단계에서든지 그 소스를 customize 할 수 있도록 개방하고 있습니다.

Data Customization¶

각각의 모듈은 여러분에게 여러분의 어플리케이션으로 data를 가져오기 위한 데이터 소스와 프로세스 방법을 선택할 수 있는 기회를 드립니다. 데이터를 retrieve하고 parsing하는 구체적인 방법을 추상화 했기 때문에 여러분의 어플리케이션은 아주 다양한 데이터 소스로 respond 할 수 있습니다. 대부분의 모듈들은 DataModel의 subclass를 사용하게 됩니다. 각 모듈은 Data Retriever라는 객체를 사용합니다. 이것은 data를 retrieve하고 Dataparser 객체를 사용해서 그 데이터를 parsing 하게 됩니다. DataParser 객체는 결과 data를 받고 그 데이터에 맞는 PHP structure를 생성합니다. configuration을 이용해서 여러분은 DataRetriever와 DataParser를 customize 할 수 있습니다. 또한 여러분 site의 데이터를 여러분만의 방식으로 다루기 위해 여러분만의 Data Retriever와 Data Parser도 만들 수있습니다.


Code Customization¶

각각의 모듈은 PHP 객체입니다. 이것은 WebModule 클래스로부터 상속됩니다. 개발자들은 직접 모듈을 생성해서 사용할 수도 있고 기존에 존재하는 것을 subclass 해서 사용할 수 있습니다. extending 할 때 여러분은 단지 특정 메소드를 override 하기만 하면 됩니다. 이렇게 함으로서 여러분은 로직이나 코딩보다도 기능이나 begavior에 집중할 수 있어서 여러분의 모듈을 독창적으로 만들 수 있도록 도와줍니다.

Output Customization¶

그 데이터가 출력되도록 준비가 됐으면 여러분은 그것을 여러분이 원하는대로 표시할 수 있는 몇가지 방법이 있습니다. 각각의 페이지는 HTML 문서로 구성돼 있습니다. 이러한 탬플릿들은 customize 될 수 있고 필요한대로 override 할 수 있습니다. 그리고 common user interface element와 각 디바이스별로 알맞게 customize 된 pieces 을 포함한 fragments들에 대한 라이브러리도 있습니다. HTML과 함께 여러분은 스타일 쉬트도 customize 하실 수 있습니다.

 


반응형