CaTs ChatBot (챗봇)

2024.01 – 2024.05
Backend / Chatbot / Automation
CaTs ChatBot
CaTs ChatBot
CaTs ChatBot

About Project

  • 서비스: 학술 동아리 CaTs 챗봇 서비스
  • 팀 구성: 2명 (FE 1, BE 1)
  • 담당: 백엔드 총괄 · 동아리 서버 구축 (기여도 80%)
  • 기간: 2024.01 ~ 2024.05 (운영·유지보수 ~2025)

Objective

동아리 가입 신청을 카카오 챗봇으로 간편화한 서비스. 이후 사용자 피드백을 반영해 물품 대여, 학식 정보 제공 기능까지 확장.

Tools & Technologies

Python, Django, MySQL, Kakao Chatbot, cron, mysqldump, requests

Challenge

프로젝트를 시작하게 된 계기

저희 프로젝트는 기존 동아리 가입 방식에 아쉬움을 느껴 시작하게 되었습니다.

기존에는 구글폼 또는 수기로 동아리 가입 신청을 받았습니다. 이는 타 사이트로의 이동, 많은 가입자들의 정보를 직접 검토 등 비효율적인 문제가 있었습니다.

따라서 저희는 **"동아리 자체 가입폼을 만들어 보자!"**라는 목표를 가지고 프로젝트를 시작하게 되었습니다.

서비스 소개

CaTs의 챗봇은 동아리 가입 신청을 보다 간편하게 하기 위해 개발된 서비스입니다. 이후 사용자 피드백을 통해 여러 기능들을 추가하였습니다.

  • 챗봇을 이용하여 간편하게 CaTs 가입 신청을 할 수 있습니다.
  • CaTs 부원의 경우 동아리 물품 대여를 신청할 수 있습니다.
  • 충북대학교와 기숙사의 학식 정보를 제공받을 수 있습니다.

서비스 둘러보기

카카오 챗봇

많은 사람들이 손쉽게 접근할 수 있도록 하기 위해 카카오 챗봇 플랫폼을 사용하였습니다. 사용자는 단순히 카카오톡에서 CaTs 채널을 추가하여, 바로 서비스를 이용할 수 있습니다.

동아리 가입 신청

챗봇을 이용하여 몇가지 사항을 입력하면 간편하게 가입 신청을 할 수 있습니다. 학번 입력 시, 동아리 면접 결과 또한 확인할 수 있습니다.

물품 대여

부원의 경우 동아리 비품을 손쉽게 대여할 수 있습니다. 카카오톡 ID를 통해 계정이 관리되기에, 별도의 인증 과정 없이 물품 대여가 가능합니다.

학식 정보 제공

CaTs 챗봇 서버는 주기적으로 학식 정보를 크롤링해 가져옵니다. 식당 및 요일을 선택하면, 해당 날짜의 학식 메뉴를 확인할 수 있습니다.

본인이 시도한 기술적 도전

1. 데이터베이스 시스템 백업 체계

챗봇을 구성한 백엔드 API는 동아리 어플리케이션인 CaTs-App 프로젝트에도 그대로 사용되었습니다.

이때 CaTs-App의 관리자 페이지에서, 동아리 지원자의 정보를 실수로 삭제하게 되는 일이 있었습니다. 당시 Django의 모든 로그를 파헤쳐, 해당 학생의 정보를 복구시켰던 헤프닝이 있었습니다.

이후 저는 정기적인 데이터베이스 백업 체계가 필요하다고 느꼈고, 파이썬의 subprocess를 이용하여 mysqldump 명령을 실행하고, 생성된 sql 파일을 NAS에 저장하는 스크립트를 만들었습니다. 해당 스크립트를 cron에 등록하여 주기적으로 백업이 되도록 시스템을 구성하였습니다.

2. 학식 정보 크롤링 최적화

기존에는 selenium을 이용하여 학식 메뉴를 동적 크롤링하고 있었습니다. 하지만 해당 방식은 CLI 환경에서 구동되기에 적합하지 않았고, 자원을 너무 많이 사용하는 문제가 있었습니다.

따라서 저는 해당 사이트의 네트워크 패킷을 분석하였고, 학식 정보를 가져오는 API 주소를 알게 되었습니다. 이를 이용하여 request 라이브러리를 통해 크롤링 시간을 2300ms → 170ms로 93% 가량 최적화하였습니다.

3. 서비스 유지/보수 및 기능 추가

해당 챗봇은 2023.08에 오픈한 뒤 약 18개월 동안 유지 보수를 도맡아 하였고, 인수인계하여 현재도 계속해서 서비스가 되는 중입니다.

초기에는 동아리 홍보 링크와 가입 신청 기능만이 존재했지만, 이후 동아리원들의 피드백을 받아 물품 대여 / 학식 정보 제공 등의 기능을 추가하게 되었습니다.

© 2026 Lagoon Portfolio. All rights reserved.