홍진경
🐶 AI 찐친
📚 학습반장
🚀 SNS 챌린지 달성자

클로드코드로 카톡봇 개발/배포 환경 만들기

소개

카카오톡 챗봇을 만들기를 진행하기 위해서는 개발 환경을 먼저 제대로 구성하고, 데이터가 어떻게 오가는지 이해하는 과정이 필요합니다.

Claude Code 를 활용해 PC에서 작성한 Rhino JavaScript 챗봇 코드를 안드로이드 폰에 설치된 메신저봇R 앱으로 연동하고, 간단한 명령어로 챗봇을 배포/실행할 수 있는 구조를 만들었습니다. 🙌

진행 방법

1. 환경 구성 개요

  • 개발환경 : PC & Claude Code -> Rhino JS 챗봇 코드 작성/편집

  • 배포환경 : 별도의 Android 폰 + '메신저봇R' 앱 -> 챗봇 동작 확인

  • 연결방식 :

    • Android 버전이 낮아 무선 디버깅이 불가 -> 대신 USB 연결로 문제 해결

    • 클로드코드에서 자동 배포

    • Android에서 메신저봇R이 코드 컴파일 및 실행

2. 사용한 도구

  • Claude Code, 메신저봇R, 카카오톡

    안드로이드 장치와 PC 간의 연결 다이어그램

3. 핵심 흐름

  • 프로젝트 구조 📁

    ### PC 코드에디터 디렉토리 구조
    ```
    search-bots/
    ├── .claude/commands/botpush.md    # 커스텀 명령어 정의
    ├── Bots/                          # 봇 소스코드
    │   ├── PerBot/
    │   │   └── PerBot_js_only_cat.js
    │   └── HelloBot/
    │       └── HelloBot_clean.js
    ```
    
    ### Android 메신저봇R 구조
    ```
    /storage/emulated/0/msgbot/Bots/
    ├── PerBot/
    │   └── PerBot.js        # 폴더명과 파일명 일치 필수
    └── HelloBot/
        └── HelloBot.js
    ```

  • 테스트 봇 🔁

    • PerplexityBot : 사용자의 질문에 -> Perplexity 를 통해서 답변함

    • HelloBot : 사용자의 인사에 -> 시간에 따라 다른 인사말로 답변함

    • 확인 항목 :

      • 채팅방 이름 & 챗봇의 트리거 메세지

      • 챗봇의 말투와 회신내용 (ex. 탐정봇)

      • 실행/로그 파일의 생성 여부

  • 커스텀커맨드 생성 및 사용 ⚙️

    • 배포작업 과정이 있음. 명령어, 파일경로가 길고 + 반복작업이다

    • ADB (Android Debug Bridge) 연결과 PowerShell 경유해서 권한/경로문제를 해결하는 방안으로 배포 작업이 진행됨

    • 이 과정을 스크립트화하여 자동 배포 흐름 구현

    • 클로드코드에서 botpush.md 커스텀커맨드로 명령어 한 줄로 배포 가능

      > /botpush PerBot
      > /botpush HelloBot
    • 기존 배포 봇 (PerBot)과 신규 배포 봇 (HelloBot)에 대해서 배포 및 동작 성공

    • 배포한 챗봇이 각 트리거 메세지에 따라 동작하는 것 확인

      단어에 대한 한국어

  • 실행 결과

iPhone의 Hellobot 앱의 스크린 샷

iPhone의 문자 메시지 스크린 샷

  • 추가된 내용 ( DB 연동과 RAG 검색 )

    • ChatSearchBot : 채팅방 대화내용을 맥락으로 답변함

    • DifyBot : 지식문서 내용을 맥락으로 답변함

    • ChatSearchBot - Supabase DB에 대화내용 저장

      검은 색 화면의 한국 이름 목록

    • 신규봇 배포 후 컴파일

      > /botpush ChatSearchBot
      > /botpush DifyBot

    • 선택한 검색전략으로 맥락을 가져와서 회신

      한국인 두 사람 간의 대화의 스크린 샷

4. 기타 이슈 및 해결 방법

  • 사용한 Android 버전 8 기기에서는 무선디버깅 옵션이 없음

    -> USB 연결로 해결: 유선 연결 시 바로 인식되어 원활한 개발 가능

  • 대화방을 (사용자 폰)에서 만드는 것 Yes .vs. 메신저봇R이 있는 폰에서 대화방 생성 No

  • 메신저봇R 기기에 있는 대화방이 알람을 받을 수 있는 상태여야 함 (트리거)

[ 해결한 ERROR 메시지 ]

  • OO 관련 대화를 찾을 수 없습니다.

    • RAG 데이터에서 내용을 가져오는 경우, 컴파일 후에 약간의 시간이 소요됨

    • 대화맥락이 짧아서 생략된 경우

  • Supabase 검색 실패: 404

    • param 에 정의된 파라미터명 일치, 검색전략 지정

      filter_strategy: null           // 원래 코드
      search_strategy: "hybrid_llm"   // 수정 코드

결과와 배운 점

  • (1주차 미션) 환경을 제대로 세팅하면, 챗봇 배포와 테스트가 간편해짐 💡

  • Claude Code의 custom command 기능은 반복 작업을 줄이는 데 효과적

  • 챗봇의 트리거/응답 흐름을 실제로 테스트하며 작동 구조를 자연스럽게 이해

  • Android 버전마다 디버깅 지원 기능이 다르므로 기기 확인은 필수!

  • RAG 데이터에서 가져오는 경우의 테스트 케이스 (임계값, 검색 전략 등)

  • 하이브리드 RAG 데이터를 활용하기

도움 받은 글 (옵션)

  • 스터디장님의 (입문자를 위한) 친절한 자료와 코드 😊


📝 한 줄 메시지: 실습하다 보면 꼬꼬무 질문과 해답을 찾아가면서 배우게 됩니다. 시도해보세요! 💪

3
2개의 답글

👉 이 게시글도 읽어보세요