*기능: 경희대 국제학과 공식 누리집에 게시되는 공지 사항들을 자동으로 수집해서 텔레그램 채널로 전송해줍니다.
*특장:
1. 빠르다. - 현재 자체 호스팅 중인 서버에서 30분 간격으로 신규 공지 사항을 크롤링하도록 설정함.
2. 편리하다. - 한 번 원하는 채널에 가입하면 이후부터는 학과 누리집을 방문하지 않고도 공지 사항들을 준실시간으로 확인 가능.
3. 정확하다. - 학생들이 직접 학과 누리집을 방문하기가 귀찮아서 에X리X임과 같은 커뮤니티 정보 게시판에 의존하는 경우가 많음. 본 크롤러는 학과 누리집에서 직접 정보를 수집해서 전파하기에 여느 수단보다도 학과관련 정보가 정확함.
*사용법:
♣일반 이용자(학과 공지 사항만 수신 희망):
1. 텔레그램 가입
2. 추적하고 싶은 공지 게시판에 따라 채널 가입
Undergraduate - https://t.me/kic_notices_undergraduate / @kic_notices_undergraduate
Jobs & Activities - https://t.me/kic_notices_jna / @kic_notices_jna
Scholarships - https://t.me/kic_notices_scholarships / @kic_notices_scholarships
Others - https://t.me/kic_notices_others / @kic_notices_others
♣개발자(자체 서버에 탑재 또는 코드 이용 희망):
1. 텔레그램 가입
2. 코드 상 존재하는 각종 경로, API 키 또는 토큰, 그리고 텔레그램 채널과 봇을 알맞게 기입 및 생성
3. Linux 계열 서버에서 코드 실행 시 crontab, Windows 계열 서버에서는 작업 스케쥴러 등의 반복 실행 메커니즘을 활용해 원하는 주기로 크롤링을 실행
*동기:
♣'사람에게 도움이 된다'는 코딩의 본질을 할 수 있는 범위 안에서 조금이나마 실천해보고 싶었음.
♣2020-1학기에 웹파이썬 강의를 수강하던 도중 텀프로젝트와는 별개로 구상을 가진 뒤 조금씩 시간을 내어 작업하다가 여름방학 때 완성함.
*기타:
♣텔레그램을 매체로 선택한 이유는 다른 여느 메신저 보다도 API와 관련 모듈 개발이 활발하다고 생각해서임. 2018년 기준 리얼미터 통계에 따르면, 텔레그램이 한국 인기 1위 메시저보다는 못하지만 2위를 차지하고 있음.
♣크롤링 주기는 학교 담당 부서들과의 상의 하 30분(수강 신청 등 특수 사례에도 문제없는 정도)으로 설정함. 국제학과 누리집은 학교 도메인(khu.ac.kr)을 사용하지만 서버는 별도로 두고 있는 것으로 파악함. 그러나 크롤링 주기는 학교 서버 접속 시 권장받은 기준에 준하도록 설정함.
♣적어도 본인의 재학 기간 동안은 자체 서버에서 호스팅 및 운용할 계획임. 이후 계획은 이용률을 봐서 판단할 예정임.
♣본 작품은 개발자 본인이 선의로서 개발한 작품이고 최선을 다해서 유지관리에 임하겠지만, 본 작품은 각 개인이 각자의 책임 하 이용해야 하며 이로 인해 발생할 수 있는 어떠한 피해에 대해서도 개발자는 책임질 수 없음.
*모듈 별 역할:
♣kic_crawler - 각종 모듈의 도움을 받아 학과 누리집의 네 개 공지 게시판(Undergraduate, Jobs & Activities, Scholarships, Others)을 크롤링한 뒤 수집한 내용을 텔레그램 봇을 통해 각 채널에 전파.
♣dbman - sqlite3을 이용한 최신 공지 사항의 관리.
♣bitly - URL 단축 서비스인 'Bitly'(bitly.com)의 API를 통해 수집한 공지 사항의 URL 단축.