카톡봇 구현 계획입니다!

소개

이번 스터디에서는 카카오톡 메신저봇RFastAPI 서버를 연동하여, 카톡봇의 기본 구조를 이해하고 직접 구축해보았습니다.

처음 목표는 방별 기능 제어(AdminBot), 메인 대화 및 기능 실행(MainBot), 전체 대화 백업(BackupBot) 구조를 완성하는 것이었습니다.

이렇게 3봇 구조를 나눈 이유는 역할을 분리해서 관리성을 높이고, 이후 캐릭터봇이나 RAG 기능을 확장할 때 충돌을 최소화하기 위함입니다.

진행 방법

사용 도구

  • 메신저봇R: 카카오톡 메시지를 FastAPI 서버로 전달

  • FastAPI (Claude Code): 웹훅 수신 및 로직 라우팅

  • PostgreSQL: 방/사용자/메시지/설정 데이터를 저장

구현 흐름

  1. 메신저봇R에서 카톡 메시지를 FastAPI의 /webhook/kakao로 전달

  2. FastAPI 서버가 메시지를 PostgreSQL DB에 저장

  3. /admin 명령으로 방별 기능을 on/off (예: 대화, 검색)

  4. 메인봇은 캐릭터 대화/검색 실행, 백업봇은 모든 대화를 원문 백업

검은 색 화면에 한국 문자 메시지 스크린 샷

결과와 배운 점

  • 배운 점

    • 봇을 단일 구조로 두는 것보다 관리자/메인/백업으로 나누니 유지보수가 훨씬 수월했습니다.

    • PostgreSQL 스키마 설계를 초기에 잘 해두면 이후 캐릭터봇·RAG로 확장하려고 합니다.

    • message_id를 room_id + timestamp + user_id 조합으로 두면 중복 방지조회 효율을 동시에 잡을 수 있을 것 같습니다.

  • 시행착오

    • 초기에 DB에 한글 인코딩 문제(UTF-8 미설정)로 메시지가 깨지는 문제가 있었습니다.

    • 관리자봇의 권한 체크 로직을 두지 않으면, 모든 사람이 /admin 명령을 실행할 수 있어서 위험했습니다.

  • 앞으로의 계획

    • 2주차에는 캐릭터 말투/성격을 설정하는 캐릭터봇 기능을 추가하고,

    • 3주차에는 RAG 검색과 멀티턴 기억 기능을 붙일 예정입니다.


도움 받은 글

1
2개의 답글

뉴스레터 무료 구독

👉 이 게시글도 읽어보세요