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

저는 이번에 제 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


Firefox Logo
Firefox Logo by Keng Susumpow 저작자 표시

드디어 Mozilla Firefox 3.6이 출시되었습니다!

Firefox의 새버전은 여러가지 향상된 기능을 보여줍니다.

데이터를 로드하는 시간, 시작 속도, 안정성, 자바스크립트 실행을 빠르게, 자바스크립트를 부드럽게 실행할수 있게, 향상시킨 Gecko 1.9.2 web-rendering 엔진을 사용해서, 이전의 Firefox 3.5보다 20% 더 빠른 속도 향상이 있습니다. 

추가로 Personas라는 기능을 추가하여, Firefox에 한번의 클릭과 재시작 없이 마음껏 화면을 고치는 기능을 제공합니다.

또한 HTML5를 전체적으로 지원합니다.

Firefox 3.6에 대한 자세한 특징들은 여기를 클릭하면 됩니다. (영문, English)

아래는 Firefox 3.6의 새로운 기능을 설명해주는 동영상입니다.

What's New in Firefox 3.6

저는 2010년 1월 22일 오전 2시 30분(PST 1월 21일 오전 9시 30분)에 Mozilla Foundation에서 Firefox 3.6이 나온다는 발표를 들었습니다.

Firefox 3.6 will be available for download at www.firefox.com on Thursday, January 21st at 9:30am Pacific Standard Time.

그러나 2010년 1월 22일 오전 1시 30분경 Mozilla측에서 1시간일찍 Firefox 3.6 파일을 올리고는 3.6 출시가 되었다는 발표가 홈페이지에 나왔습니다.

 

Firefox 3.6 파일이 미리 서버에 올려진걸 바로 나온 것을 보고 다운로드 받아서 설치하게 되었습니다.

아래는 Firefox 3.6 설치화면입니다. (기존에 Firefox 3.5버전이 설치되어 있었습니다.)

두근두근, 드디어 Firefox 3.6을 설치하는 순간입니다!

Firefox 3.6설치하는데, 저는 기본적으로 Standard로 설치하였습니다.

Firefox 3.6 설치 경로를 지정하고 Upgrade를 해줍니다. 여기선 이미 Firefox 3.5가 설치되었기 때문에 경로지정을 안해줘도 됩니다.

Firefox 3.6으로 Upgrade중입니다.

드디어 Mozilla Firefox 3.6 설치가 완료되었습니다.

설치를 마무리 하고 나서 Firefox 3.6을 사용하게 되었습니다.

Mozilla Firefox 3.6 설치 인증완료!

나도 이제 Mozilla Firefox 3.6 사용자!

ps. 저는 이번에 Firefox 3.6을 설치하면서 에반게리온(Neon Genesis Evangelion) 테마로 변경하였습니다^^

Mozilla Firefox 3.6 Evangelion Theme



 

 

Buy me a coffeeBuy me a coffee

떡이떡이님 블로그에서 랭키닷컴, 트랜드 짚을 '2009 웹 비즈니스 컨퍼런스' 개최를 보고 나서 컨퍼런스에 가고 싶어졌습니다.


웹쪽에 관심을 두면서 웹사이트나 웹 비즈니스에 대해 많은 관심을 가져왔습니다.

인터넷을 처음 접한 1995년도에 Netscape의 N에 별똥별 떨어질때의 추억이나, 경영대학원 다니던 아부지 서재서 본 웹비즈니스 책들을 보면서 결국은 대학원도 웹쪽으로 가게 되었더군요.

웹 비즈니스쪽이나 국내외 인터넷 사업이 어떻게 돌아가는지에 대해 관심이 많으니 여러 컨퍼런스에 눈독을 들입니다.

그래서 능력이 된다면 2009 Web Biz Conference에 참가하려고 합니다.

그렇다만 대학 졸업하는 마당이라 대학생도 아닌 백수신분으로 소속이 변경되고, 세뱃돈을 저기에 투자해야한다는 상황이라만, 여건이 되는대로 갈 계정입니다.

110,000원이 아깝지 않은 컨퍼런스이니 신청하리라. OTL (어이쿠 내 돈)

2009 Web Biz Conference는 아래와같은 프로그램이 진행된다고 합니다.

인터넷 전망에 관심 많은 사람들에겐 꽤나 흥미로운 주제로 진행됩니다.^^ 여기는 기술쪽이 아니라 인터넷 비즈니스, 마케팅쪽이라서 제 전공인 컴퓨터공학과는 다른 분야라 음 하긴 하지만 들어도 나쁘진 않습니다.

행사장은 서울 도심이군요. 집에서 가까운 강남이 아니라서 아쉽긴 합니다.

참가비 110,000원과 시간이 허락된다면 꼭 가볼 예정입니다. 지도교수님의 허락이 떨어지면 갈수 있을텐데^^ (백수이긴 해도 대학원 입학을 허락받은 사람이라 연구실엔 가야하거든요^^)

Buy me a coffeeBuy me a coffee

이 글은 StudioEgo님의 2008년 12월 23일의 미투데이 내용입니다.

Buy me a coffeeBuy me a coffee


Microsoft Internet Explorer XML Handling Remote Code Execution Vulnerability로 이번에 Microsoft사에서 Internet Explorer의 긴급보안 패치를 발표하였습니다.

전세계 웹 브라우져 점유율의 약 70%를 차지하는 Internet Explorer 전 버전에서 치명적인 결함인 XML을 처리하는 과정에 원격코드 실행이 가능한 취약점이 발견이 되었습니다. XML을 처리하는 과정에 원격코드 실행이 가능한 취약점이 발표되어서, MS사에서 긴급 패치를 내 놓게 되었습니다.

Internet Explorer에서 XML을 처리하는 과정에 원격코드 실행 취약점이 존재하여 공격자는 해당 취약점을 이용하여 악의적인 웹페이지를 구축한 후 사용자의 방문을 유도, 악성코드 등을 설치하여 취약한 시스템에 대한 완전한 권한 획득이 가능한 문제가 있다고 하군요.

위의 결함은 MS사의 모든 Internet Explorer버전에 해당된다고 하더군요. 그래서 요즘 사용하는 Internet Explorer 7뿐만 아니라 Internet Explorer 5, Internet Explorer 6, 거기에 이번에 나온 Internet Explorer 8 Beta 2까지 허점이 있다는 어마어마한 사실을 알게 되어서 뭔가 꺼림직 합니다.

Microsoft has updated its advisory four times. It expanded the list of potentially affected versions of Internet Explorer to include not only IE 7, but also IE 5.01 SP4, IE 6, IE 6 SP1, and IE 8 Beta 2. It also added several workaround options that involve disabling certain features.

아래는 MS사 홈페이지에서 보안 패치에 대한 설명입니다.

출처 : Internet Explorer 보안 업데이트 (960714)
Microsoft 보안 공지 MS08-078 - 긴급

Internet Explorer 보안 업데이트 (960714)
게시 날짜: 2008년 12월 18일

버전: 1.0

일반 정보
요약
이 보안 업데이트는 일반에 공개된 취약점 1건을 해결합니다. 이 취약점은 사용자가 Internet Explorer를 사용하여 특수하게 조작된 웹 페이지를 볼 경우 원격 코드 실행을 허용할 수 있습니다. 시스템에 대한 사용자 권한이 적게 구성된 계정의 사용자는 관리자 권한으로 작업하는 사용자에 비해 영향을 적게 받습니다.

이 보안 업데이트의 심각도는 Internet Explorer 5.01, Internet Explorer 6, Internet Explorer 6 서비스 팩 1 및 Internet Explorer 7에 대해 긴급입니다. Internet Explorer 8 Beta 2에 대한 추가 정보는 이 보안 업데이트와 관련된 자주 제기되는 질문 사항 섹션을 참조하십시오. 자세한 내용은 이 섹션에서 영향을 받는 소프트웨어 및 영향을 받지 않는 소프트웨어를 참조하십시오.

보안 업데이트는 악용 가능 조건을 발생시키는 Internet Explorer의 데이터 바인딩 매개 변수 유효성 확인 및 오류 처리 방식을 수정하여 취약점을 제거합니다. 취약점에 대한 자세한 내용은 다음 섹션, 취약점 정보에서 취약점 항목의 자주 제기되는 질문 사항(FAQ)을 참조하십시오.

이 보안 업데이트는 Microsoft 보안 권고 961051에서 처음 설명한 취약점도 해결합니다.

이러하여 긴급 보안 패치를 설치하게 되었습니다.

위의 긴급 보안 패치(KB960714)를 적용하면 XML을 처리하는 과정에 원격코드 실행이 가능한 취약점를 수정한다고 하더군요.

얼른 업데이트를 하여 보안 취약성을 없애 안전한 인터넷 서핑을 해봅시다.

설치한후의

설치를 하고 나서 스크린 샷으로 찍은 Internet Explorer 제품 정보입니다.

Buy me a coffeeBuy me a coffee

Google 한글 블로그에서 이런 소식이 왔습니다.

Google Chrome

Google 크롬


Google Chrome 웹 브라우저가 나온지 얼마 되지도 않았는데 벌써 Beta딱지를 벗어던지고 정식버전이 나왔다고 하군요.

Google 크롬 0.4.154.29

Google Chrome(크롬) BETA 버전 정보입니다.

실행중인 Google Chrome의 정보를 보고나서 Google 크롬의 새 버전 사용 가능이 나와 지금업데이트 버튼을 클릭했더니 아래와 같이 1.0대 버전으로 변경되었습니다. (1.0대버전의 의미는 정식 버전이라는 의미랍니다.)
Google 크롬 1.0.154.36

Google Chrome(크롬) 정식 버전 정보입니다.

여기서 왜 제가 Google Chrome이 베타딱지를 벗었다는 것에 놀란 것은 Google이 제공하는 여러 서비스 중에서 제일 빨리 베타 딱지를 벗은 것 이라고 할까요?

현재, Google Chrome보다 먼저 나온 구글 어스, Gmail, 등의 서비스가 아직도 베타딱지를 붙으면서 서비스 하는데 비해 구글 크롬은 빠른 시일내에 정식버전이 나왔다는 것은 구글이 웹 브라우져 시장에 자신감이 있다는 걸로 보입니다.

사실, Google Chrome을 쓰면서 수 많은 버그들을 많이 보았습니다. Flash가 로딩 안되는 문제(이건 비디오/오디오 플러그인), 로딩 속도가 약간 느리다던지, CSS해석문제 등 여러가지 버그들이 있었다만 이제는 거의 고쳤는지 벌써 정식버전까지 발표를 했더군요.

구글의 서비스들이 오랜동안 서비스를 해도 아직도 베타딱지를 붙이고 다니는데 비해, Google Chrome은 프로그램이 나온지 얼마 안되어서 바로 베타딱지를 버리고 정식버전을 발표했으니 구글의 노력에 감탄할 노릇입니다. 구글 개발자들이 아마 크롬 개발에 올인을 했다는 생각도 해봅니다.

IE vs Firefox vs Chrome

인터넷 익스플로러 vs Firefox vs Chrome


구글이 웹 서비스 전체에 대해 관심이 많아서 이제는 웹 브라우져까지 휩쓸겠다는 목표도 보이더군요. Google이 선보인 Google Chrome에 대해서 Mozilla Foundation의 Firefox나 Opera의 Opera, MicroSoft사의 Internet Explorer같은 Web Browser 들이 선의의 경쟁을 통해 좋은 모습으로 발전하길 빕니다.

Google Chrome으로 웹 브라우져를 사용하면서 Firefox를 앞지를 수 있는 위험한 웹 브라우져같은 생각을 해봅니다.




Buy me a coffeeBuy me a coffee

사용자 삽입 이미지

제 5회 Daum DevDay


이번에 제주도에 열리는 제 5회 다음 DevDay신청을 하였다.

Jong10님께서 미투데이에 "Daum DevDay 8월 29일(금)~30일(토) -> 저 좀 끼워주실 팀 구합니다!! (초 진지함)"을 올려서 바로 끌렸습니다. 멋모르고 같이 하자고 일을 저질렀는데 이제 실력발휘를 해야할듯 ㄷㄷㄷ

  • 행사명: 제5회 Daum DevDay
  • 일시: 2008년 8월 29일(금)~30일(토)
  • 장소: 제주 Daum GMC

이번 행사는 1박 2일간의 행사로 기획했으며 첫째날은 DevDay를 진행하고 둘째날 제주 투어 프로그램으로 구성했습니다. 지난 행사들과 마찬가지로 직접 프로젝트를 제안하고 다양한 언어를 통해 실제로 현장에서 구현해보는 라이브 코딩 행사입니다. 단, 이번에는 야외에서 바베큐 파티와 함께 개발을 하는 차이가 있지요. ^^ 아울러 이번 행사는 2~4인으로 구성된 팀 단위로만 참가 신청을 받으며 대표 1인만 신청하시면 됩니다. 또한 전체 참가 인원의 20% 이상은 여성으로 선발하는 여성 쿼터제를 적용하고자 하오니 여성 개발자 여러분들의 많은 참여 바랍니다.

참가 신청은 8월 15일(금)까지 가능하며 이 후 추첨을 통해 40명을 선정, 8월 18일(월) 이 곳에 공지하도록 하겠습니다. 많은 신청 바랍니다.

행사 페이지: http://dna.daum.net/devday/

홈페이지에 위와 같이 공지가 되어 있더군요. 저는 제주도가 끌려서 그리고 고수님들과 프로그래밍을 하고 싶어서 참여를 하게 되었습니다.
이 행사에 신청해서 당첨되면 단돈 3만원에 다음에서 밥주고 재워주고 여행까지 시켜준다는 아름다는 혜택을 준다고 하더군요.
Ruby on Rails라는 것으로 매쉬업을 하기로 하고 남들을 어떻게 이길지에 대해서도 의논을 많이 했습니다.

제발 당첨되면 방학 끝무렵에 제주도에 배우면서 거의 공짜로 놀러갈 수 있을텐데, 제 능력이 될지가 의문시;;
Ruby on Rails로 거길 갈 수 있는 기회가 있었으면 좋겠어요 ;ㅁ;
사용자 삽입 이미지

프로그램 진행 순서입니다.

프로그램 진행순서를 보아도 하루는 코딩 하루는 노는 것으로 일정이 잡혀있는데 그 것을 단돈 3만원에 한다는 것이 정말 매력적이다.

'컴퓨터' 카테고리의 다른 글

Tmax Window 발표에 대한 단상  (2) 2009.07.09
노트북 배터리 리필함.  (4) 2009.02.04
정보검색에 대해서  (1) 2008.08.13
Ruby를 이용하여 Egloos에 글쓰기  (0) 2008.08.08
Ruby를 이용하여 Tistory에 글쓰기  (0) 2008.08.08
Buy me a coffeeBuy me a coffee
2006년 02월 18일 09:42 에 작성된 글입니다.
이 글은 예전에 운영하던 Egloos 블로그에 올려진 글을 Tistory로 옮긴 것입니다.
시맨틱 웹(웹 2.0시대의 기회) 상세보기
김중태 지음 | 디지털미디어리서치 펴냄
웹 2.0 가이드. 이 책은 IT 칼럼니스트이자 김중태 문화원 원장인 저자가 쓴 것으로 PC 잡지와 언론 매체를 통해 썼던 칼럼들을 모아서 출간했다. 이 책은 현재의 국내 IT 환경에 대한 고찰과 미래에 대한 통찰 그리고 차세대 웹인 시맨틱웹이 제시하는 비전과 기회를 보여주고 있으며, 앞으로 한국 IT 기업이 나아갈 방향에 대하여 제시하고 있다. 『시맨틱 웹』에서는 시맨틱 웹의 진행과정, 정보의 생성과 배포, 활용까지의
시맨틱 웹을 체계적으로 이해시키려고 노력한 흔적이 보인 책
김중태문화원장이신 김중태씨가 쓴 책이다.
나는 블로그가 좋다라는 책을 본 뒤로 블로그에 미치던 내가 이 분의 책을 다시 보고나서 바로 사버렸다.
읽어보니까 웹2.0과 약간 혼동되는 것이 있다.
이 책을 읽어보는 중이지만 요즘 웹상의 변화를 한눈에 볼수 있게 한 책 같다.
책일 보면 넓은 시야와 '철학'적인 마인드가 컴퓨터공학도에게 필요하다는것을 느끼게 해준다.
나도 넓은 시야를 가졌으면 하는 바람도 있고 철학적인 마인드도 갖췼으면 좋겠다.
결국 공대생도 인문학공부를 해야한다는말?
학교 측에서 공학인증ABEEK이라고 하는 것 때문에 교양도 거의 공학적인 마인드의 교양이던데 참 고민된다.
공학인증에서 요구하는 교양 과목들이 한결같이 대기업에 납품하는 부품을 양성하게 해주는 역할을 해주는 것 같아서다. 취업과 관련된 것만 아니라 다양한 교양을 듣고 싶은데 다양한 시각을 보여주게 하는 교양들은 계절학기때 채워야 하는 불편함까지 있는 것 같다.(말이 좀 샜다.)

나는 이번에 입학하는 후배들에게 꼭 사라고 권유할만한 책을 이 책으로 할 것이다.
대단한 통찰력으로 가득찬 글들이며 다 주옥같다.
우리나라에서 이런 분이 있어서 IT강국이라고 해야 할까?
대한민국에서도 다른나라 못지 않게 이런 IT관련 글들을 일반인에게 쉽게 다가가려고 하는 노력을 보는 것을 알면 알이다.

'독서(讀書)' 카테고리의 다른 글

새 학기 맞이 책 삼  (2) 2006.03.05
시맨틱 웹 - 김중태  (0) 2006.02.18
실용예제로 배우는 웹 표준  (1) 2005.08.15
TC++ PL 구입  (0) 2005.07.14
웹 표준에 대한 책이 나온다네요  (0) 2005.07.13
Buy me a coffeeBuy me a coffee

+ Recent posts