News On Me2day
From Doowon Kim
Contents |
개요
- 동기
- TweetGuru를 보고 재미삼아 미투데이로도 받을 수 있게 한번 만들어 보았다.
- 목적
- 구글 앱엔진을 한번 사용해본다.
-
Python를 익힌다.(Java로도 디플로이가 가능해서 개발 언어를 Java로 변경)
- 사용언어 : Java
- 개발환경 : Eclipse
- 개발기간 : 2009.05
설명
- 개념
- 구글 앱 엔진에 등록된 Java 프로그램이 일정시간마다 실행되어 새로운 소식 게시판에 글이 올라왔는지 판단을 한다.
- 만약 새로운 글이 올라왔다면 제목과 URL를 DB에 저장을 한다.
- 새로운 글이 없다면 아무일도 수행하지 않는다.
- 구글 앱 엔진에 등록된 또 다른 Java 프로그램이 일정시간마다 실행되어 DB에 제목과 URL이 저장되어 있다면 미투데이로 전송을 한다.
- 구현
- clien2me2day.java : 클리앙 새로운 소식 게시판에 새로운 글이 올라왔는지 판단
- Clien 새로운 소식 게시판 RSS feed를 이용
- ROME API를 이용하여 RSS feed를 Parsing한다.
- 작성된 시간과 DB에 저장되어 있는 업데이트 시간를 비교하여 업데이트 시간보다 이후라면 DB에 URL와 제목을 저장한다.
- me2dayPosting.java : DB에 위에서 저장한 URL과 제목이 있다면 미투데이에 전송을 한다.
- Me2day java API를 이용하여 포스팅한다.
후기
- 처음에는 Clien RSS feed로 부터 시작해서 RSS feed Parser, 미투데이 포스팅 API까지 다 구현하려고 했으나 이 프로그램의 목적이 단순히 Google App Engine을 한번 맛 보는 것이기 때문에 위의 2개 API를 가져다 사용함.
- 저 위의 2개(RSS Feed Parser, 미투데이 포스팅 API)가 만약 오픈소스가 아니었다면 저것들을 다시 구현해야 되는데 그에 따르는 시간적 소모가 엄청나다. 이번 계기로 오프소스의 중요성을 더 한번 느낌.
개발일지
- 개발 중 생각치 못했던 문제점
- 미투데이는 한번 포스팅하면 10초를 기다려야 한다.
- 결국 me2dayPosting.java 파일을 새로 만들어서 Cronjob에 올린다.(총 2개 Cronjob이 돌고 있음)
- 미투데이는 한번 포스팅하면 10초를 기다려야 한다.
- 수정해야 할 사항
-
clien2me2day.java가 실행될 때 db에 쓰레기 값이 하나 들어간다.(2009.5.22) -
제목에 댓글수가 표시되는데 [10]와 같이 십의 자리가 넘어가면 ‘[’가 표시된다. 현재 뒤에서 3자리만 지우도록 함.(2009.5.22) - feed parsing 시 시스템 리소스를 많이 차지함
-
제목에 콤마가 들어가면 링크가 깨진다.(2009.5.22) -
2009.5.24 일 같은 게시물이 올라간다.- 원인 : 게시판 rss feed가 시간순으로 정렬되지 않았고 구글 앱 엔진의 디비 확장으로 인해 디비가 꼬여서그런거 같습니다.
- 추가해야 할 사항
- 현재는 새로운 소식만 미투데이에 포스팅하는데 강좌게시판이나 다른 게시판의 글도 포스팅할 수 있도록 이 프로그램를 확장한다.
미투데이 주소는 http://me2day.net/clien_news 입니다.
