모든 프로젝트
Selected Work 2024 · Backend
CaTs
ChatBot
CaTs ChatBot
Role
백엔드 총괄 · 동아리 서버 구축
Timeline
2024.01 – 2024.05
Category
Backend
— Overview

이 프로젝트는.

동아리 가입 신청, 물품 대여, 학식 조회를 카카오톡 채널 안에서 처리할 수 있도록 만든 학술 동아리 챗봇 백엔드입니다. 초기에는 가입 신청을 간소화하는 것이 목표였지만, 운영 중 사용자 피드백을 반영해 물품 대여와 학식 정보 제공 기능까지 확장했습니다. 이후 약 18개월간 유지보수하며 장애 복구, 백업 자동화, 크롤링 최적화까지 맡았습니다.

— Challenge

결정의 흐름.

“무엇을 만들었나” 보다 “왜 그렇게 결정했나” 를 남깁니다.

01·RECOVERY

운영 중 사고를 복구 가능한 구조로 바꾼 경험

동아리 지원자 정보가 관리자 페이지에서 실수로 삭제되는 문제가 있었습니다. 당시 Django 로그를 추적해 데이터를 복구했고, 이후 같은 문제가 반복돼도 대응할 수 있도록 백업 체계를 만들었습니다.

  • Django 로그 기반 삭제 데이터 추적 및 복구
  • mysqldump 기반 정기 백업 스크립트 작성
  • cron으로 주기 실행
  • 생성된 SQL 백업 파일을 NAS에 저장
02·OPTIMIZATION

Selenium 크롤링을 API 호출로 바꿔 응답 시간을 줄인 경험

학식 정보 조회는 처음에 Selenium 기반 동적 크롤링으로 구현되어 CLI 환경에서 무겁고 느렸습니다. 네트워크 요청을 분석해 실제 데이터 API를 찾고, requests 기반 호출로 전환했습니다.

  • 기존 Selenium 크롤링: 약 2300ms
  • 개선 후 API 직접 호출: 약 170ms
  • 93% 응답 시간 단축
  • CLI 서버 환경에 더 적합한 구조로 변경
03·OPERATION

작은 서비스를 오래 운영하며 기능을 확장한 경험

초기 목표는 동아리 가입 신청을 카카오톡 안에서 처리하는 것이었습니다. 이후 실제 사용자 피드백을 반영해 물품 대여와 학식 조회 기능을 추가했고, 약 18개월간 백엔드 운영과 유지보수를 맡았습니다.

  • 가입 신청 기능 구현
  • 물품 대여 기능 추가
  • 학식 조회 기능 추가
  • 약 18개월 운영·유지보수
  • 인수인계 후 현재도 운영 가능한 구조로 정리
— Impact

숫자로 남긴 결과.

Maintenance
운영·유지보수
Crawling Cut
2300ms → 170ms
— Stack

사용한 도구들.

Tools & Technologies
PythonDjangoMySQLKakao Chatbotcronmysqldumprequests
— Quote
복구에서 끝내지 않고, 다시 복구할 수 있는 구조를 남겼습니다.
프로젝트 회고