2008년 7월 1일 화요일

MSN으로 ANT 자동 빌드 bot 운영

현재 제가 몸담고 있는 플랫폼 개발팀의 인원이 무려 13명이나 됩니다.  첫 산업기능요원으로 일했던 회사의 초기 인원이 20명이 안됐으니 이정도면 팀 인원치고는 꽤 많은 편이지요.

하지만 실제로는 팀 내부에서 2~3명이 한 그룹으로 이루어져서 소규모 프로젝트들을 진행하고 있고 멤버들마다 프로젝트 한두개, 많은 분들은 서너개씩도 발을 담그고 일을 하고 있습니다.

이렇게 팀이 운영되는 경우 인력을 아주아주 효율적으로 사용할 수 있는 장점이 있지만(어쨌거나 같은 팀이고 팀장은 1명이므로 시급성에 따라 인력을 여기저기 붙이기가 수월) 발 담근 프로젝트들이 모두 동시에 급박하게 진행되는 경우는 쌍코피 터질 가능성이 아주 농후합니다.


각설하고 -_- 아무튼 지금 제가 하고 있는 프로젝트가 있는데 저까지 멤버가 3명이고 개발환경이 Eclipse + wtp + cvs + iBATIS + Struts1 + maven2 +  수많은 이클립스 플러그인들 입니다.

최근 프로젝트인데 왜 Struts2 가 아니고 Struts1 이냐고 묻는다면 초기에 다른 팀에서 '데모용' 으로 진행할 때 팀 인력이 부족해 일부분을 외주를 줬었는데 그쪽에서 Struts 으로 개발을 했기 때문이라고밖에 -_-;;


많은 팀에서 그렇게 하듯이 저희도 CVS에서 checkout 해서 로컬에서 수정 및 개발 후 테스트를 완료하고 나면, 수정된 부분을 CVS 로 커밋을 합니다.

하루에 2번, 식사시간이 시작되는 12시와 대충 하루 업무가 끝나고 사람들이 퇴근했을(?) 시간인 오후 8시에 CVS에서 소스코드를 checkout 하여 개발서버에서 빌드를 행하고, 필요에 따라 일주일에 한두번 정도 상용서버로 개발된 내용을 배포하는 식입니다.


문제는 개발서버에 cron 으로 등록해 놓은 일일 2회 빌드 외에 현재 개발기의 빌드가 깨져 있거나 상용에 뭔가를 패치하기 위해서 개발서버에서 체크를 하기 위해서 수동빌드를 해야 할 때가 있는데, 몇몇 이유로 해서 프로젝트를 통째로 .war 로 배포하지 못하기 때문에 ant 로 약간 복잡한 빌드스크립트를 만들어서 사용하고 있고.. 때문에 일일이 서버에 접속해서 ant 로 빌드를 돌려줘야 한다는 것입니다.

MSN이나 NateOn, Google Talk 쪽 bot 을 만들어 두고 명령을 내리면 참 좋겠다 싶어 MSNP15 구현물이나 google talk, 장호님의 jmsn, 기타 XMPP  관련 자료들도 뒤져보다가 생각해보니 팀 내에서 가장 사람들이 많이 사용하는 메신저가 MSN  이고 NateON은 nateon 자체 문제는 아닌 nate 의 저질스팸필터링 기능때문이긴 하지만 아무튼 점점 정내미가 떨어져 가는 관계로( + SMS 도 KTF/LGT 사용자는 팍 줄여버렸다 -_-; ) MSN으로 낙찰.


현재 MSN Live Messenger 는 MSNP15까지 프로토콜이 있지만 이걸 모두 지원하는 구현체는 찾아보기 힘들었고 뒤져보는 중에 msnlib 라는 게 있더군요.(http://auriga.wearlab.de/~alb/msnlib/)

MSNP 8 의 구현체인 듯 한데 파이썬으로 작성되어 있어서 코드의 양도 작고 구조가 간결해서 이걸 쓰기로 했습니다. offline 일 경우 남긴 메세지를 알려주는 NOT 같은 메세지 타입은 구현이 안되는 것 같았습니다만... -_- 뭐 크게 상관없다는 생각하에 작업돌입.

msnlib 를 받아서 푼 다음 utils 에 보면 msnbot 이 있는데, 이 코드를 살펴보면 대충 어떤 식으로 돌아가는지 확인할 수가 있습니다. 그 외에 msncb 도 살펴보시면 메세지 송/수신을 어떻게 할 수 있는지 감을 잡을 수가 있습니다. ( 저도 msnbot 과 msncb 을 기반으로 뚝딱뚝딱 )


봇에게 할당할 아이디를 만들고 일단 제 메신저에 추가


image


안녕? 이라고 입력하면 간단한 인사말이 나오도록 테스트 코드를 작성했는데 왕창 깨져서 메세지가 날라오더군요.

코드를 살펴보니 ISO-8859-1 로 설정이 되어 있길래 UTF-8 설정을 해주고 다시 실행



도움말 보기

image


빌드하기

image


ANT BUILD 한 전체 결과를 죄다 전송하려고 하니 메신저가 받아주질 않는군요. -_-;;

그래서 빌드 결과 중 마지막 20줄만 출력해주도록 했습니다. 어차피 맨 마지막의 BUILD FAILED 또는 BUILD SUCCESSFUL 만 확인하면 되니까요 ㅋ

image

image


요즘 나이가 들었는지 팀원들 내선번호가 잘 생각안나거나 할 때가 많아서 간단히 팀원들 연락처도 추가했습니다.

image

댓글 없음:

댓글 쓰기

가장 많이 본 글