전문가칼럼

DBMS, DB 구축 절차, 빅데이터 기술 칼럼, 사례연구 및 세미나 자료를 소개합니다.

페이스북 OpenAPI 활용

전문가칼럼
DBMS별 분류
Etc
작성자
dataonair
작성일
2012-10-17 00:00
조회
8356





소셜 서비스 개발의 실제

페이스북 OpenAPI 활용



소셜 서비스 개발의 실제 모습은 어떨까 페이스북 플랫폼이 지향하는 멀티 플랫폼, 다양한 정보 타입 활용에 OpenAPI를 어떻게 적용해 소셜 애플리케이션과 소셜 웹서비스가 구축될 수 있는지 살펴본다. 페이스북의 대표적인 플랫폼인 캔버스 앱, 웹사이트, 모바일 환경에서의 자바스크립트, PHP, 모바일 플랫폼 언어 등의 활용과 페이스북 오픈그래프(Open Graph)와 Graph API의 소셜 지원을 설명하고 대표적인 페이스북 게임 개발 업체인 징가를 소개한다.



페이스북은 올해 말에 전 세계적으로 10억 명에 가까운 활성화된 사용자들을 보유하게 된다고 한다. 일반 사용자들은 일상을 기록하거나 친구들과 사귀고 소통하는 수단으로서 페이스북을 이용한다. 현재 페이스북 자체 플랫폼에서뿐 아니라 신문사의 웹페이지, 개인 블로그 등 수많은 이종 플랫폼들과의 인터랙션 현상이 일어나고 있으며, 타 플랫폼을 아우르는 이기종으로의 전환 비용은 고스란히 페이스북 앱의 수익 극대화에 기여하고 있다. 페이스북의 비즈니스는 미국 내에서뿐 아니라 전 세계적인 형태를 나타내며(80%의 트래픽이 미국 본토 밖에서 이뤄진다)



column_img_331.jpg

페이스북 애플리케이션 중 가장 영향력 있는 징가의 게임은 매달 2억4,000만 명 정도가 즐기고 있다고 한다. 이렇듯 페이스북 비즈니스의 활성화와 사용자 수의 가파른 상승은 웹뿐 아니라 모바일, 심지어 자동차에서 페이스북을 사용할 수 있도록 만들어진 페이스북 플랫폼과 이러한 플랫폼 위에서 다양한 상황과 데이터에 맞게 디자인된 페이스북 OpenAPI의 제공에서 그 이유를 찾을 수 있다.



개방, 공유, 참여의 OpenAPI, 이를 적극 활용한 징가


개방, 공유 철학에 충실한 페이스북 OpenAPI는 개발 커뮤니티 구성원들의 활용, 검증에 의해 발전하고 또 더 많은 이들이 개발에 참여하면서 선순환 개발 생태계가 구축됐다. 페이스북 플랫폼의 독특한 소셜 서비스 개발 지원과 이를 실현하는 매개체인 OpenAPI는 웹2.0 철학에 맞게 디자인됐다. 이러한 페이스북 OpenAPI를 비즈니스에 활용해 성공한 회사로, 페이스북 플랫폼에 기반해 소셜 게임 애플리케이션을 개발하는 징가라는 회사가 있다. 징가는 페이스북 플랫폼에서 포커, 빌(Ville) 시리즈(씨티 빌, 캐슬 빌 등)를 개발해 2007년부터 소셜 게임 서비스를 제공하고 있다. 위키피디아에 따르면 2012년 4월 징가는 전 세계적으로 매달 3억여 명에 달하는 액티브한 사용자들을 보유했다. 2012년 페이스북이 50억 달러 규모의 IPO를 신청할 때 제출한 문서에 의하면, 2011년 페이스북 매출의 12%가 징가 게임 앱 관련 서비스에서 나왔다고 하니 사용자 숫자와 페이스북 매출 측면에서 크기와 영향력이 엄청나다는 것을 알 수 있다.

게임개발 회사로서 징가의 독특한 면모는 페이스북 OpenAPI를 활용해 페이스북 플랫폼과 ‘소셜화’에 중점을 둔 수많은 기능과 게임 아이템을 개발한 것이다. 특히 페이스북의 크레딧을 게임 화폐로 이용하고 페이스북 사용자들과의 이웃 개념을 통한 왕립 건축은 페이스북 OpenAPI만이 제공하는 페이스북과 소셜에 특화된 게임 아이템이다. 현재 페이스북 사용자들이 혼자 즐기는 게임이 아니라, 페이스북 플랫폼 위에서의 9억 명의 사용자들을 상대로 상호소통적인 게임을 즐길 수 있도록 고안된 것이다. 이는 게임 개발 주체들이 선호하는 중독성 강한 게임 개발을 위한 최적의 환경을 제공한다. 징가는 페이스북 OpenAPI와 소셜화에 최적화된 개발환경을 바탕으로 다양한 플랫폼을 아우르는 소셜 게임 서비스 개발에도 박차를 가하고 있다. 특히 소셜 징가가 합병한 아이폰 앱 개발 회사, Cocos2D의 제작사와 앱 개발사는 페이스북 웹 게임 서비스뿐 아니라 이에 바탕을 둔 모바일 게임 제작의 가능성도 높이고 있다.



소셜 서비스 개발, 페이스북 OpenAPI


<그림 2>는 페이스북 OpenAPI의 활용 모습을 보여주는 예로, 미국의 대표적 온라인 뉴스 사이트인 허핑턴 포스트(Huffington Post) 사이트에서 페이스북의 ‘좋아요’ 버튼을 활용한 것이다.



column_img_332.jpg

이와 같이 페이스북 플랫폼은 다양한 루트들을 통해 OpenAPI를 활용하고, 이를 통해 전 세계의 정보 소스와 멀티미디어 객체뿐 아니라 담벼락, 상태 업데이트, 메시지, 포크 등의 기능으로 친구들과 소통할 수 있게 지원한다. 상호 소통을 위한 페이스북 플랫폼 및 OpenAPI를 통한 애플리케이션 개발은 친구, 가족, 동료들의 최근 근황과 생각, 사진들을 공유할 수 있는 환경을 제공한다. 이러한 페이스북 플랫폼과 OpenAPI가 제공하는 기능들은 뉴스피드와 알림 기능 같은 기본적인 기능부터 타임라인과 같은 멀티미디어적 기능까지 다양하다. 또 페이스북 홈페이지에서뿐만이 아니라 소셜 기능을 최대한 활용하는 블로그와 같은 웹페이지, 모바일 플랫폼, 게임 콘솔 등과의 다중 상호 소통이 가능한 애플리케이션 개발 OpenAPI를 제공한다.

페이스북 소셜 애플리케이션과 소셜 웹서비스는 페이스북의 지향점인 콘텐츠의 플랫폼화에 근거한 OpenAPI를 통해 구현된다. 예를 들어 영화와 음악을 감상하며 페이스북 플랫폼에서 친구들과 취미생활 및 특기를 공유하고, 온·오프라인 미팅을 가질 수 있도록 OpenAPI를 활용할 수 있다.

페이스북 개개인들의 데이터가 공개, 비공개로 페이스북 플랫폼에서 사용될 수 있으며 이를 통해 각자의 취미와 추구하는 바에 근접한 소셜 애플리케이션이나 소셜 웹서비스를 구축할 수 있도록 페이스북 OpenAPI가 구성됐다. 지난해 8월 개최됐던 페이스북 컨퍼런스 f8에서는 객체들을 조합해 개인의 인생까지도 담을 수 있는 새로운 기능인 타임라인(timeline)을 발표했다. 모든 스토리와 애플리케이션 그리고 자신을 표현하는 새로운 방법을 표방하는 타임라인은 페이스북을 개인화해 활용할 수 있도록 촉진하고 있다. 또한 페이스북 장소(Places), 구독(Subscribe), 음원공유 등과 같은 기능을 도입해 얻어진 테크놀로지들의 향상은 페이스북 플랫폼의 개인화 및 모바일 진화를 앞당기고 있다.

다양한 소셜 애플리케이션과 소셜 웹서비스를 개인이 사용하는 다양한 기기에 근거해 제공하기 위해 페이스북이 제공하는 프로그래밍 OpenAPI는 멀티 플랫폼에 걸쳐 존재한다. OpenAPI를 적용하고자 하는 플랫폼과 언어에 따라 달리 제공되며, 이는 또 공식적인 OpenAPI와 비공식적인 OpenAPI로 구분된다. 비공식적인 OpenAPI는 커뮤니티를 바탕으로 확산되고 있으며 페이스북 플랫폼에서 지원하지는 않지만 커뮤니티에서 기본적인 페이스북 플랫폼 컴포넌트를 바탕으로 OpenAPI를 업그레이드하고 있다. 페이스북 공식 OpenAPI는 페이스북 플랫폼에서 직접 사용할 수 있는 SDK로 제공되며 다음과 같은 대표적인 OpenAPI들이 있다.

- 자바스크립트
- PHP
- iOS
- 안드로이드

자바스크립트 OpenAPI는 페이스북이 자랑하는 Graph API와 REST API, 그리고 다이얼로그 경험을 최대한 사용할 수 있도록 디자인된 인터페이스 컴포넌트를 지원한다. 페이스북 사용자 경험을 일관된 인터페이스 컴포넌트를 통해 클라이언트 브라우저에서 구현 가능하며, 특히 인증 및 소셜 플러그인들을 손쉽게 사용할 수 있도록 구성돼 있다. 페이스북이 제공하는 자바스크립트를트에 적용할 수 있고, 서버의 캔버스에 위치하는 페이스북 페이지들의 모듈과 통신을 통한 데이터 접근 및 사용자 인터페이스 업데이트를 할 수 있다.

PHP는 웹 개발을 위한 서버 측의 언어로, HTML과 같이 쓰여 웹페이지를 구현한다. PHP 언어를 사용하는 주 목적은 웹페이지를 다이내믹하게 만들고 서버 측의 리소스와 클라이언트 리소스를 효과적으로 활용하는 데 있다. 서버에서는 PHP로 만들어진 코드를 수행하고 결과를 클라이언트인 브라우저에 넘겨준다. 즉, 웹페이지로 보이는 코드는 HTML로 만들어질 수 있고 보이는 결과의 연산은 서버 측에서 할 수 있는 것이다. 서버 측에서의 PHP 언어는 다른 서버 언어인, 예를 들어 Perl, CGI를 대체하는 역할을 한다.

애플 모바일 기기인 아이폰이나 아이패드에서의 애플리케이션은 Object-C 프로그래밍 언어에 기반해 구현된다. 모바일 스마트폰의 대표격인 아이폰/아이패드를 위해 페이스북 플랫폼에서는 Object-C를 위한 Graph API, FQL, 다이얼로그 컴포넌트를 제공한다. 현재 iOS를 위한 페이스북 SDK 3.0이 제공되며 차세대 iOS 4+를 위한 기능과 네이티브 UI 뷰를 제공한다. https:// developers.facebook.com/ios/를 통해 관련 내용을 습득하고 패키지를 다운로드해 원하는 모바일 소셜 애플리케이션을 개발할 수 있다.

안드로이드는 자바를 기반으로 하는 오픈 플랫폼으로서 불특정한 다수의 모바일 기기들에서 사용된다. 안드로이드의 철학은 누구에게나 오픈돼 있는 소프트웨어를 추구하며, 혁신적인 모바일 환경을 위한 비영리 소프트웨어를 추구한다. 이와 같은 오픈소스는 페이스북 OpenAPI 철학과 맞아 떨어지는 덕분에 다양한 모바일 기기를 위한 운영체제와 모바일 애플리케이션을 위한 최신 테크놀러지가 빠른 시간 안에 적용되는 모바일 개발 플랫폼을 제공한다. 그리고 메소드와 인터페이스, 에러 처리를 위한 OpenAPI도 함께 제공된다. http://developers.facebook.com/ docs/reference/androidsdk/에 이와 관련된 자세한 내용과 소스 패키지를 다운로드할 수 있는 링크가 제공된다.



페이스북 오픈그래프와 Graph API


2010년 페이스북은 페이스북 플랫폼뿐만이 아니라 외부 제 3자의 웹페이지까지 연결하려는 목표에 따라 오픈그래프를 주요 플랫폼 컴포넌트에 포함시켰다. 이는 페이스북 플랫폼의 핵심 OpenAPI의 하나로서 현재는 타임라인의 등장과 함께 더욱 중요하게 여겨지고 있다. 오픈그래프와 함께 HTML의 의미론적인 정보를 담을 수 있는 기초적인 프로토콜인 오픈 프로토콜을 사용한다. 프로토콜에 대한 좀더 자세한 정의 및 내용은 http:// ogp.me/를 참조하자.

페이스북의 오픈그래프 프로토콜을 사용하면 어떠한 웹페이지라도 페이스북의 소셜 그래프와 통합해 사용할 수 있다. 9억 명이 넘는 페이스북 사용자들을 상대로 개인화 및 소셜화가 가능해지는 것이다. 이는 페이스북 플랫폼 내에서 외부 웹페이지 데이터 접근뿐 아니라 의미론적인 데이터 접근이 가능함을 포함한다. 오픈그래프 프로토콜은 웹3.0으로 향하는 기술적인 진보를 대표하고 페이스북에서는 이를 실제로 활용해 지구촌의 생물, 무생물들을 오브젝트와 액션이라는 오픈그래프 컴포넌트를 통해 나타내고자 한다.

오픈그래프 프로토콜은 페이스북의 핵심인 소셜 그래프와 기존 웹페이지를 통합하며, 소셜 그래프의 물리적 또는 논리적 오브젝트(예를 들어, ‘청와대’ 또는 ‘애플’이라는 브랜드네임)에 오픈그래프 프로토콜을 적용해, 웹페이지 또는 미래의 웹페이지와의 자동화된 통신에 활용될 수 있는 토대를 마련한다. 또 기존 웹 플랫폼에서 진화된 전 세계 어떤 웹페이지라도 페이스북 플랫폼 안에 통합 및 인덱싱됨으로써 정보 교류를 원활하게 할 수 있는 토대를 마련하고, 이의 OpenAPI 활용이 가능하다.

Graph API는 페이스북 플랫폼 OpenAPI의 핵심으로서 개발자들은 페이스북에 공개된 데이터를 마음껏 읽을 수 있고, 또 이를 활용해 페이스북 플랫폼 상에서 데이터를 쓸 수 있는 기능을 제공한다. 예를 들어 현재 페이스북에 로그인한 자기 아이디의 공개 정보를 알고 싶다면 ‘https://graph.facebook.com/자신의 아이디’를 웹사이트 주소창에 넣고 엔터 키를 입력해 보자. <리스트 1>의 예제는 필자의 아이디를 입력해 반환 값으로 얻은 제이슨(JASON) 오브젝트를 보여준다. 로그인된 아이디의 오픈된 아이디, 이름(유니코드), 링크, 유저네임, 성별, 지역정보를 오브젝트 형식으로 나타냈다.



column_img_334.jpg

체계적이고 일률적으로 표현된 그래프의 오브젝트들은 페이스북의 소셜 그래프뿐만 아니라 오브젝트들 사이의 관계를 설정할 수 있으며 이는 OpenAPI를 통해 표현된다. 그래프 오브젝트들은 사람, 사진, 이벤트, 페이지와 같은 생물/무생물을 포함하며, 오브젝트들 사이의 관계(커넥션)는 친구 관계, 공유된 콘텐츠, 사진 태그 등이 있다. <표 1>은 페이스북 플랫폼이 제공하는 Graph API를 통해 제공하는 대표적인 오브젝트와 관계(커넥션)들을 보여준다. Graph API로 구성되는 심플하고 일관적인 페이스북 소셜 그래프는 사용자 정보 찾기, 분석과 이를 활용한 개인화된 소셜 서비스 구현을 용이하게 해준다. Graph API는 2010년 f8 발표 이후부터 지속적으로 지원되는 코어 테크놀로지로서 페이스북의 전폭적인 지지를 받으며 업그레이드 중이다.



column_img_335.jpg

9억 명의 사용자, 멀티 플랫폼, 다양한 정보 접근이 핵심


소셜 네트워크란 개념이 우리의 생활 속에 본격적으로 들어온 지도 어언 10여년이 흘렀다. 페이스북 플랫폼 OpenAPI는 현재 전 세계적으로 9억 명이 넘는 사용자들과 이들에게 마케팅을 시도하려는 기업들, 개인의 다양한 관심사(예를 들면 영화, 연예인, 스포츠, 음식점 등), 또 이를 페이스북 친구들과 공유하고자 하는 관계정보, 그리고 정보를 접근하는 아이폰, 안드로이드폰, 데스크톱 등을 모두 아우르는 원 포인트 솔루션을 지향한다. 소셜 애플리케이션과 소셜 웹서비스의 구축은 이러한 여러 요건들이 충족돼 제공되는 페이스북 OpenAPI를 통해 목적에 맞게 효과적으로 실현될 수 있다.