이 글은 DroidEgo님의 2010년 2월 1일의 미투데이 내용입니다.

Buy me a coffeeBuy me a coffee

이 글은 DroidEgo님의 2010년 1월 24일의 미투데이 내용입니다.

Buy me a coffeeBuy me a coffee

오랜만의 프로그래밍 관련 포스팅입니다.

저는 이번에 제 Twitter 계정에 시간을 알려주는 봇을 구현하였습니다.
(봇[bot] : 특정시간이나 행위에 자동반응하는 형식의 실행하는 서비스를 말합니다)

저의 Twitter 계정에 "현재, 한국시간으로 2010년 1월 24일 오전 6시 를 알려드립니다." 라는 식의 시계 봇을 구현함.


위의 화면를 보시면, 제 트위터를 Following하시면 제가 현재 시간을 알려드리는 걸 알수 있습니다.

(봇은 어떻게 구현했나구요? Google AppEngine이라는 서비스로 Java로 구현했답니다^^)


Google AppEngine book
Google AppEngine book by Channy Yun 저작자 표시

(참고로 Google App Engine은 무료로 제공되는 Java/Python 기반 웹 호스팅 서비스입니다)


제가 간단한 트위터에 시간 알려주는 봇을 구현한 이유는 트위터에서 @xguru 라는 닉을 사용하는 권정혁님이 개발한 트위터 봇들에 영감을 얻고, 나도 프로그램을 작성할 수 있는 학생인데 한번 만들어 봐야지라는 문제의식으로부터 시작하였습니다.

트위터의 xguru님께서 만든 Twitter bot들입니다.


위의 시간을 알려주는 봇을 구현하는데엔 기본적인 Java지식, 그리고 Java Server Page(JSP), Servlet, Twitter API등을 알아야됩니다.

Java기반 지식들은 아 알겠다는 가정하에 트위터 API들을 알아봐야겠죠?

Twitter의 API에 대해선 Twitter에서 제공하는 사이트에서 검색을 하면 나옵니다.
Twitter API wiki

Twitter API는 REST API와 Search API라 나눠집니다.

  • Twitter REST API
    개발자들이 update timeline, status data, 사용자 정보등의 Twitter의 핵심 데이터를 작성, 수정등의 접근할 수 있게 허용해줍니다.
  • Twitter Search API
    Search API는 개발자들에게 Twitter 검색 서비스와 상호작용할수있도록 해주며, 검색 트랜드 관련 데이터에 접근 할수 있도록 해준다.
  • 위의 글의 출처는 아래와 같습니다. http://apiwiki.twitter.com/API-Overview

    The Twitter REST API methods allow developers to access core Twitter data. This includes update timelines, status data, and user information. The Search API methods give developers methods to interact with Twitter Search and trends data.

참고로 Twitter API를 사용할때 주의해야할 점은 일정시간 안에 전송되는 요청을 제한을 합니다.

Twitter API를 사용하였을 경우에 시간당 최대 호출을 150개로 제한을 하고 있죠.

최대 호출을 150개 넘게 호출하면 아래 화면과 같이 Limit라는 것에 걸려서 글을 작성 못하는 일이 발생합니다.

리밋에 대해선 트위터 리밋에 관하여…라는 글을 읽어보시기 바랍니다.

트위터 리밋에 걸릴때 나오는 문구입니다. 이것은 누군가 잘못된 암호를 보내려는 공격시도가 있을때 보이는 리밋문구입니다.


만약 프로그램을 작성한 봇이 요청을 시도할때 이유 없이 에러 발생하면 100% 리밋에 걸렸는지 의심을 해봐야됩니다.

여기서는 Twitter에 글을 작성할 것이기 때문에 Twitter REST API를 사용합니다.

Twitter REST API를 가지고 직접 구현해서 Twitter bot을 구현할 수 있습니다. 그러나 삽질이긴 합니다 =_=.

이미 트위터의 API를 구현한 3rd Party 라이브러리들이 많이 제공하고 있답니다.

http://apiwiki.twitter.com/Libraries 여기에서는 각종 언어로 Twitter REST API를 구현한 라이브러리들이 있습니다.

저는 간단하게 코딩을 하려는데 Twitter4J라는 라이브러리를 선택하였습니다.


Twitter4J는 Yusuke Yamamoto가 Java로 구현한 라이브러리입니다. 오픈소스이며, maven과 통합가능하며, Google App Engine과 친화적인 Java 라이브러리입니다. Twitter4J는 BSD 라이센스을 가지고 있습니다.

Twitter4J는 다음과 같은 기능을 제공한답니다.

  • 100% 순수 자바로 구현 되었으며, JDK 1.4.2 이후의 버전에서 동작한다.
  • Google Android Platform에서도 지원가능
  • 의존성이 없음. 추가적으로 필요한 jar 파일이 없어도 됨.
  • OAuth를 지원함
  • 빠른 수행을 위해서 데이터를 gzip으로 압축해서 전송함

Twitter4J 홈페이지 - http://twitter4j.org/en/index.html



Twitter4J 라이브러리를 사용하고 Eclipse와 Google App Engine을 이용하여 트윗 봇을 구현하였습니다.


Servlet mapping은 web.xml에 있으며 서블릿 클래스를 추가하고 싶으면 web.xml을 추가하면 됩니다.

자바코드를 작성하여 트윗에 올라갈 적절한 내용을 구현합니다.

자바로 트윗 봇을 구성하였으면, 매 시간마다 트윗을 올리기 위해서는 cron 기능을 이용해야합니다. cron설정을 하면 원하는 시간에 트윗을 올릴 수 있습니다.

Google App Engine에서 제공하는 cron을 사용하려면 war/WEB-INF 폴더에 cron.xml을 생성하여 cron.xml에 원하는 시간을 작성해서 올리면 됩니다.

cron 기능 수행에 대한 자세한 내용은 Google App Engine - Scheduled Tasks With Cron for Java 링크를 참조하기 바랍니다.

저는 트윗을 한시간에 하나씩 올리려고 아래와 같이 cron.xml을 구성하였습니다.


<?xml version="1.0" encoding="UTF-8"?>
<cronentries>
  <cron>
    <url>/mashuptime</url>
    <description>Execute time bot every 1 hours</description>
    <schedule>every 1 hours</schedule>
    <timezone>Asia/Seoul</timezone>
  </cron>
</cronentries>


작성을 하고 나선 Deploy를 하여 올리면 간단한 트윗봇이 완성됩니다^^

Java로 작성한 Twitter bot을 Google App Engine에 Deploy하고 올리려는 화면


Google AppEngine으로 Java로 된 웹 페이지를 코딩하고 나선, 갑자기 이런 생각을 하더군요.

Google AppEngine에서 cron기능을 제공하여 매 시간마다 Servlet을 작동시켜 아래와 같은 봇을 구현을 하는데엔 30분도 걸리지 않았습니다.

참 쉽조잉?



이번에 뭔가 Feel을 받으면 매쉬업으로 Twitter bot들을 계속 양산할 느낌이 들더군요. @.@

Buy me a coffeeBuy me a coffee


트위터(Twitter)를 이용하며 얼리어답터로 유명한 박용만회장님께서 Google사에서 출시한 'NexusOne'을 개봉하는 모습을 촬영하였습니다.


받긴 했는데 이제부터 이 넘을 우짠다? http://tweetphoto.com/8984070

일단 개봉 작업만 올립니다 http://yfrog.us/072tkz

받긴 했는데 이제부터 이 넘을 우짠다?


보통사람이라면 기기를 신주단지 모시듯 NexusOne을 개봉합니다만...

회장님께선 고정관념을 깨고 터프한 개봉을 하였습니다. 촬영한 모습 보다가 저의 간이 떨어질뻔 할정도로 저거 툭하다 고장나면 어찌지 이런 생각만 하더군요.

회장님께선, 일반 사람들처럼 손에 익을 정도로 쓰고 싶다는 표현을 동영상에 보여준것일수도...

ps. NexusOne을 구입하신것 부럽습니다.

Buy me a coffeeBuy me a coffee

어느덧 2010년 1월 18일 월요일.

저는 트위터를 사용하다 이상한 글을 보았습니다.


"1등만 구글 넥서스원 따먹는 더~러운 이벤트"에 참여했슴다! 같이 참여하실 분은 @Hi_Android를 follow하시고 http://www.hongik.com/phone 클릭! || 근데 1등 될라나? -_-a ㅋㅋㅋ


아니 이게 뭐지?

위와 같은 글을 보고나선 저는 바로 @Hi_Androidhttp://hongik.com/phone/ 클릭을 하였습니다.

의외의 홈페이지가 나오기 시작하였습니다.

그것은 Google사에서 1월 5일에 출시된 NexusOne 1대를 공짜로 조건없이 그냥 준다는 이벤트였던것이였습니다!

http://hongik.com/phone/ - 1등만 구글 넥서스원 따먹는, 더~러운 이벤트"


저도 이벤트에 참여를 하여 트위터에 아래와 같은 글을 올렸습니다.


"1등만 구글 넥서스원 따먹는 더~러운 이벤트"에 참여했슴다! 같이 참여하실 분은 @Hi_Android를 follow하시고 http://www.hongik.com/phone 클릭! 참 쉽죠~잉?

공짜라면 양잿물도 마시고, 공짜좋아해서 대머리가 되는 경우도 있지 않습니까?


Steve Ballmer
Steve Ballmer by jdlasica 저작자 표시비영리
(대머리인 Microsoft사 CEO인 Steve Ballmer)

구글 넥서스원을 준다는 이벤트에 안드로이드폰이 급한 저로선 바로 참여를 해버렸습니다 *-_-*

이벤트를 참여하고 나선 저는 이런 생각을 하였습니다.

"구글 폰에 관심 많은 얼리어답터, 개발자, 기획자, 일반인들에게 이벤트를 제공함으로서 엄청난 회사 홍보를 제대로 할수 있겠는데?"

"그런데 사람들 넥서스원 이벤트에 낚여서 대부분 이벤트에 참가하는 것 아닐까?"


 아니나다를까... Twitter에 지금까지 3000명이상이 @Hi_Android 를 Following을 하고 있던겁니다.


다만 Twitter계정 @Hi_Android 와 홈페이지  http://hongik.com/phone/ 을 운영하는 곳이 (주)홍익세상이라는 회사라는 군요.

안드로이드에 관련된 정보, 뉴스, 의견들을 전해드립니다. (주)홍익세상입니다.

(주)홍익세상이란 회사가 무슨 회사인지는 모르는 중소기업이지만, 트위터를 통한 입소문으로 Google의 Android 플랫폼에 관심많은 개발자, Android에 관심 많은 얼리어답터, 기획자, 일반인등등 여러 계층의 사람들을 끌여들여 인지도를 많이 높이게 된 것 같군요.

(주)홍익세상이란 회사가 무슨 회사인지는 대충 짐작 가는 대목이 있습니다. (Android Platform에서 디바이스와 앱개발 하는 회사일듯?)


Twitter라는 Social Platform에서 소문을 퍼뜨리고, 사람의 심리를 잘 이용하여, 아주 기가 막힌 NexusOne 이벤트를 주최하여 회사이름을 빠르게 알게한 (주)홍익세상 운영진들에 대해, 저는 Social Platform을 제대로 이용한 회사의 사례라고 블로그에 기록하고 사람들에게 알리고 싶습니다.


1등에게 NexusOne을 준다는 이벤트 참가하고 나선, 제발 당첨되었으면 하는 바람도 있군요^^


Buy me a coffeeBuy me a coffee



2010년 1월 5일, 전세계 사람들이 Google발표회에 시선을 집중하게 되었습니다.

무었때문인가? Google사에서 Nexus One이라는 휴대폰을 제조사가 아닌 소프트웨어회사에서 출시하였다는 것입니다.


Google의 Nexus One의 홍보 영상


Nexus One의 스펙을 보자면 링크를 클릭하면자세하게 보면 알 수 있습니다.
http://www.google.com/phone/static/en_US-nexusone_tech_specs.html


최신 Android 2.1 OS채용, 퀄컴 1Ghz 스냅 드래콘 채용, 3.7인치 AMOLED, WVGA(480 x 800) 해상도에 멀티터치에 500MP 카메라에... 스마트폰에 최신 부품들을 사용하여 사용자들에게 사고 싶은 욕망을 들게 할 정도를 보이게 하는 제품입니다.


아래 동영상은 라디오키즈님의 블로그(넥서스원 이국에서 전하는 넥서스원(Nexus One) 간단 사용기 동영상 리뷰...)에서 공개한 동영상으로 순한글로 제작된 neo****님의 버전이라고 합니다.


아래는 ZDNET Korea Youtube에 공개된 Nexus One 동영상입니다. (원본은 CNET인듯?)

Google에서 공개한 Using your Nexus One


Google에서 공개한 Set up your Nexus One


아래링크는 Google이 공개한 Nexus One의 사용 예제 동영상 재생 목록입니다.
Nexus One - How to's

Google사에서 출시한 Nexus One의 스펙, 그리고 사용 동영상들을 볼때마다 진정한 스마트폰을 사용하는 외국이 가끔씩 부러울때가 많습니다.

한국에서는 Nexus One과 같은 안드로이드 기반의 스마트폰이 언제 출시될지에 대해 기다려 봅니다.

ps. (이제는 안드로이드에 미쳐봐야하는 대학원생 1인이 Nexus One의 리뷰, 사용동영상 모음을 관찰하였습니다.)

Buy me a coffeeBuy me a coffee


2010년 1월 5일 Google이 Nexus One이라는 휴대폰을 출시하면서 Android 2.1 OS를 채용하였다는 이야기를 한지 5일후, 2010년 1월 11일 Android 개발자들에게 Android 2.1 SDK를 공개하였습니다.

Google사의 Nexus One

Google Nexus One의 생김새


Engadget에 올라온 Google Nexus One의 실물


Android 2.1 SDK는 2.0에서 조금 기능이 좋아진 버전이라고 생각하면 됩니다.

TechCrunch에 따르면 음성족음, 동영상같이 움직이는 배경화면, 새로운 런처, 더 많은 홈 화면들, Android Platform에서 사용되는 WebKit 엔진의 자잘한 버그 수정등이 있답니다.


the team is releasing it before most devices have it so that developers can play around with and build for the new features introduced in 2.1. Though Google calls 2.1 a “minor platform release” over Android 2.0, there are a number of new elements such as voice recognition, live wallpapers, a new launcher, more home screens, and some WebKit changes.

http://blog.studioego.info/admin/entry/post

저는 이제 Android 2.1 SDK 업그레이드 작업에 들어갑니다. 이제 Android Platform에 많은 시간을 투자하여 연구할 예정입니다.

이미 Eclipse에 Android 2.1 SDK까지 설치 완료함. 이제 본격적인 어플 제작에 돌입합니다.


새로운 Android 2.1 SDK는 링크에 있습니다.

Buy me a coffeeBuy me a coffee

2010년 1월 초반, SKT에서 KT의 아이폰 충격을 이기기위한 방법으로 Android Platform 기반의 모토롤라사의 스마트폰을 출시한다고 발표하였습니다.




SKT에 비해 아이폰으로 인기가 바짝올라갔지만, 스마트폰의 라인업 선택이 절대적으로 부족한 KT에선 Android Platform기반의 휴대폰이 과연 어느 시점에 나올지 궁금하였습니다.

(※ 참고로 KT에서 스마트폰으로 출시된 폰들중에서 Windows Mobile 기반의 폰은 미라지, 인사이트,쇼옴니아. 그리고 Symbian기반의 Nokia 6210s, 5800 XPressMusic, Apple의 iPhone 3G, 3GS밖에 없군요. SKT의 스마트폰 라인업과 비교불가능할 정도로 내세울 스마트폰이 iPhone과 쇼옴니아 2개밖에 없습니다.)

SKT에서는 Tstore에 안드로이드용 마켓을 열어 놓을 계획까지 있는 마당에, KT는 어떠한 노력을 보일련지가 궁금하였지요.

드디어, KT 공식 트위터@ollehkt 님께서 Android Platform기반의 스마트폰 출시관련 공식적인 글이 올라왔습니다.

  1. 2010년에는 약 10~15종의 스마트폰 모델을 보급할 계획을 가지고 있습니다. 이 중에는 구글 안드로이드 스마트폰과 같은 새로운 단말 라인업을 추가하여, 소비자의 선택권을 최대한 확대할 수 있도록 노력하고 있습니다.
  2. 특히 올해는 스마트폰 모델 중 약 50% 이상을 안드로이드 스마트폰으로 기획하여 글로벌 시장트렌드에 발 맞출 수 있도록 준비하고자 합니다.
  3. 스마트폰 라인업에 대한 자세한 내용은 향후 준비가 완료되는 대로 트위터 등을 통해 공지하도록 하겠습니다. 궁금해하시는 넥서스원은 현재 기술적인 정합성 검증 중입니다.
  4. < 정정 공지 > 넥서스원 관련 정정 공지 드립니다. 워낙 민감한 사항이라서 정확하게 알려드려야 할듯 싶네요. " 현재 정합성 검증을 검토중입니다. " 가 가장 정확한 표현입니다. 죄송합니다.

 




KT 공식 트위터@ollehkt 님께서 Android Platform기반의 스마트폰출시에 대한 공식적 답변을 듣고 나선 올레!를 외쳤습니다.


추가로 KT에서는 Google사에서 직접 출시한 안드로이드기반의 스마트폰인 넥서스원(Nexus One)에 대한 정합성 검증을 검토중이라고 하군요.

KT에서도 아이폰(iPhone)뿐만 아니라 Android 기반의 스마트폰 라인업을 늘려 스마트폰의 대중화에 앞세울듯 한데, 과연 스마트폰들이 언제 출시될지 궁금합니다.

이번 2010년, 휴대폰 시장에서 스마트폰 시장이 커지고, 어떤 판도로 흘러갈지가 지켜보는 소비자들은 흥미롭게 관전할수 있겠습니다!

Google NexusOne

NexusOne의 실물사진. 출처 : http://kr.engadget.com/2010/01/04/nexus-one/

출처 : 최초 공개: 구글 넥서스원(Nexus One) 실물 입수! http://kr.engadget.com/2010/01/04/nexus-one/


결론 : "KT에서는 언젠간 안드로이드 기반의 휴대폰을 언젠간 출시할 계획이다"

 ps. 설마 아이폰처럼 다음달, 다음달외치는 다음달 폰이라는 구설수가 넘치지 않을정도로 조기에 나왔으면 하는 바람이 있습니다^^

Buy me a coffeeBuy me a coffee


이번 SKT에서 Tstore에 올라갈 Android 기반의 Application 공모전을 개최할 것이라고 발표하고, 임시 홈페이지를 개설하였습니다.


이 공모전 포스트를 보고 나서 느낀 점이 있었습니다.

1. SKT에서 스마트폰에 들어갈 통합메세지함은 포기했구나는 생각을 하였지요.
 SKT에서는 문자와 MMS에 대해 국제표준이 아닌 SKT독자방식으로 운영하였습니다. 그러다 보니 다른 통신사와 다르게 휴대폰 업체의 폰에 SKT에서 직접 작성한 통합메시지함을 넣어야 제대로 문자를 보낼수 있다는 문제점이 있었답니다.

WIPI라는 국내 장벽이 있을때엔 일반폰에서는 별로 큰 문제가 없었다만, WIPI가 철폐되고 스마트폰들에 국제표준을 준수한 휴대폰업체의 메시지함이 아닌 SKT의 통합메시지함을 넣다보니 메시지를 보내는데 속도도 느리고, 리소스를 많이 잡아 먹어 문자 보내기가 힘들다는 문제가 있었습니다.

안드로이드폰에 들어가는 건 정말 Google Android폰에 들어가는것으로 쓰게 되었다는 걸 알게 되었습니다.

2. SKT에서는 Tstore를 Windows Mobile뿐만 아니라 Android등의 Mobile Platform을 추가하여 Apple의 Appstore만큼 키워 국내의 Appstore을 키울 거라는 예측을 해봅니다.

Windows Mobile기반의 Application만 파는 것만 아니라 Android 기반의 Application도 추가하여 여러 플랫폼에서도 Tstore를 사용할수 있게 되어 경쟁력이 높아질겁니다.

공모전에 대한 2가지 생각을 정리를 한후, 저도 Tstore에 Android기반의 어플리케이션을 3~4개 정도를 만들까 생각하고 있습니다.

Android기반 폰이 SKT에 나온다는건 확실한 정보이니 SKT에 안드로이드폰을 구입해서 쓸 예정입니다.

Buy me a coffeeBuy me a coffee

2009년 12월 11일 금요일, Future of Mobile : MobileWeb VISION 2010에 참석합니다.

모바일, 스마트폰에 관심을 가지게 된 계기가 있었습니다. 

2009년도 1학기 대학원 석사 1차수업시간, P모교수님께서 Mobile로 돈 벌수 있는 기회를 찾아라는 것에 대해 조사를 하다, 원래 관심분야였던 웹(Web), 인터넷(Internet)뿐만 아니라 모바일 웹이라는 거에도 관심을 가지기 시작하였습니다.

거기에 Google의 Android Platform이 출시되니 더더욱 모바일 플랫폼에 대해서 많은 관심을 가지기 시작을 하였죠. ReadWriteWeb이나 TechCrunch같은 기사들을 펼쳐보면서 스마트폰에 대해서도 흥미를 가지기 시작하였습니다.

결국 2009년 6월 5일 Nokia 6210s라는 Symbian S60v3 OS의 스마트폰을 구입하여 사용하게 되었습니다.


스마트폰이라는 걸 사용하다 보니 모바일이라는 것이 미래에 엄청 뜰거라는 예감이 들었습니다. 왜 애플(Apple)사의 아이팟터치(iPod Touch)와 아이폰(iPhone)을 가지고 사람들이 열광하는지에서도 느낌을 알 수 있었지요.

이런저런 스마트폰의 경험을 바탕으로 모바일관련 행사가 있다는 것을 알고 Future of Mobile : MobileWeb VISION 2010 라는 행사에 신청하였습니다.

Future of Mobile : MobileWeb VISION 2010 에서는 2010년도의 모바일 웹의 전망에 대해서 이야기 해보자는 시간으로 아래 단락에 나오는 글처럼 진행된다고 합니다.

2010년을 앞두고 우리는 급변하는 모바일 서비스 산업의 패러다임을 어떻게 대비할 것인가? 

내년의 새로운 돌파구를 찾기 위해  모바일웹2.0포럼 전문가들이 2010년 모바일과 모바일웹을 전망하는 “Future of Mobile - 모바일웹 VISION 2010"을 개최하고자 합니다.

모바일웹2.0포럼은 모바일 업계 선도적인 전문가 그룹으로서 실용적인 내용과 치열한 고민을 담아  올해를 망라하고 내년을 준비하는 의미있는 기회를 마련하고자 하오니 많은 참석바랍니다.

행사에선 아래와 같은 4개의 큰 세션으로 구성되어 있습니다.

  1. 대한민국 모바일 비즈니스의 현 주소 진단
  2. 미리보는 2010년 모바일웹 주요기술 전망 - MobileWebAppsCamp 미니세션
    1. Widget
    2. HTML5 & WebApp
    3. Device API
    4. Mobile AR(Augmented Reality,증감현실)
  3. 꼭 알아야하는 주요 Player 모바일 비즈니스 전략 2010
  4. 전문가 대토론회 (패널토의) 

과연 어떤 내용으로 발표될련지는 정말 궁굼하군요. 대충 어떤 내용인지는 머릿속으로 그려보긴 하지만, 제가 생각한 것과 전문가가 설명한 것이랑 어떤 차이가 있을지 궁금합니다.

행사 참석하면서, 석사 1차때 들었던 수업에서 생각했던 내용과 여기 행사에서 전문가가 발표한 내용과의 비교를 통해서 석사 1차때의 생각을 쭉 정리도 해보고, 연구 방향에 대해서도 생각을 해볼 예정입니다.

대학원생이 가면 뻘쭘하겐 하지만 과감하게 가봐야겠습니다. (혼자서 듣는 용기는 가상해도, 기말 과제는 마무리하고 가야할텐데 -_-;; )

Buy me a coffeeBuy me a coffee

+ Recent posts