Wednesday, August 19, 2009

트위터, C#으로 클라이언트를 직접 만들어보자.

트위터, C#으로 클라이언트를 직접 만들어보자.

웹 2.0의 모토가 개방, 공유, 참여라고 한다. 좋게 생각하면 서로의 지식과 기술을 나누어 발전시켜서 삶을 윤택하게 하는 것이지만, 반대로 생각해보면 모든 게 공짜이고 마음대로(상업적 이용시 어느정도 제약은 있음) 이용이 가능해 새로운 비즈니스를 창출 할 수 있다. 이런 것을 일종의 매시업(Mashup) 이라고 한다.

매시업(Mashup)은 으로 제공하고 있는 정보와 서비스를 융합하여 새로운 소프트웨어나 서비스, 데이터베이스 등을 만드는 것을 말한다.

구글이나 야후, 마이크로소프트 등이 제공하는 지도 서비스, 인터넷 서점 아마존이 제공하는 상품 정보 등, 자사의 기술을 웹 서비스로서 API를 공개하는 경우가 늘고 있으며, 이들 기능에 독자적인 사용자 인터페이스를 융합하여 새로운 서비스를 제공하고 - 출처 : 위키피디아

매시업의 핵심 성공요소는 구글이나 네이버같은 회사가 제공하는 오픈 API에 달려있다고 해도 과언은 아니다. 오픈 API를 통해 누구나 쉽게 자사의 막강한 기능을 사용할 수 있다. 물론, 오픈 API를 제공하는 회사 역시 트래픽이 증가하거나 광고 효과가 더 커지는 등 수익을 얻을 수 있어 윈윈의 모델이 되고 있다.

지난번에 MS의 실버라이트 기반의 소비즈를 통해 웹이나 데스크톱에서 트위팅이 가능한 것을 알아 보았다. 이는 트위터가 오픈 API를 제공하고 있다는 말이고 누구나 쉽게 접근 가능하다는 것이다. 그래서 정말 단순한 트위터 클라이언트를 만들어 보면 트위터의 오픈 API에 대한 이해도 늘어나고 향후 매시업을 이용한 비즈니스 모델의 개발에도 도움이 될 것이라는 생각이 들었다.

트위터 사이트에 들어가면 하단 중앙에 API라는 텍스트에 링크가 걸려있다. 링크를 따라가면 트위터 오픈API에 대한 다큐멘트와 사용법 그리고 API의 dll들이 공개 되어 있다.


다양한 개발 환경(자바,닷넷,php,C...)으로 개발된 API를 제공하는데, 나름 익숙한 닷넷버전인Twitterizer를 선택했다. (.net framework 2.0 기반으로 개발되어 있음))

최신버전으로 된 압출파일을 받아서 로컬에서 풀어보면 레퍼런스 할 dll이 포함되어 있다.(Twitterizer.Framework.dll)

[Code Sample]
Twitter
t = new Twitter(UserName, Password);
t
.Status.Update(UpdateString);

Twitterizer의 샘플코드를 보면 명료하다. 트위팅을 위한 인스턴스를 하나 만들고 전송할 메시지를 업데이트 해 주는 것이다. 자. 그럼 이 코드를 이용해 실제 트위터 클라이언트를 만들어 보자.

1. Visual Studio 2005를 열어 프로젝트를 생성한 후 다음과 같이 디자인을 해 보자.

2. 트위터 API 레퍼런스를 설정하자. 다운로드 받은 Twitterizer.Framework.dll을 직접 레퍼런스 해주면 된다.


3. 가장 중요한 소스코드를 만들어 보자.
먼저, 코딩의 편리함을 더해주기 위해 Twitterizer.Framework을 네임스페이스에 추가하고
"트위터로 보내기!" 버튼을 클릭했을 때 발생한 이벤트에 대한 처리를 하자.

4. 클라이언트 실행
사용자명, 패스워드, 트위팅 할 메시지를 입력하고 "트위터로 보내기!" 버튼을 클릭하면 끝이다.

5. 트위터에서 확인



오픈 API를 이용한 첫 응용프로그램을 만들어 보았다. 사실, 일반적인 개발 프로세스와 다르지 않으며 오히려 막강한 기능을 손쉽게 이용할 수 있어서 미안한(?) 마음도 들기도 한다. 이번에는 트위터로 단순하게 메시지 전송만 하는 기능을 만들었지만 오픈 API를 통해 완벽한 트위팅이 기능이 장착된 클라이언트도 개발이 가능하다.

그러나, 이게 다가 아니다. 이를 응용한 매시업을 어떻게 개발하느냐가 웹 2.0의 새로운 재미와 부(?)를 안겨 줄 것으로 생각 된다. 역시, 중요한 건 상상력이다.^^.^/^


[트위터 클라이언트 소스]


저작자 표시 비영리 변경 금지

'웹 2.0 > 트위터' 카테고리의 다른 글

No comments: