Perplexity 메신저봇 개발기 — 자바스크립트와 FastAPI, 그리고 시행착오들

소개

스터디장 현우님께서 내주신 미션을 수행하기 위해, Perplexity LLM을 붙인 메신저봇을 직접 제작해보았습니다. 단순한 JS 기반부터 FastAPI, n8n을 포함한 다양한 조합을 실험하며, 실제 배포 환경에서의 경험을 얻는 것이 목표였어요.

  • 시도한 방식:

    • 자바스크립트 only

    • 자바스크립트 + FastAPI

    • 자바스크립트 + n8n

각 방식마다 구현 난이도, 연동 방식, 배포 편의성이 달라서 비교하는 재미도 있었답니다 😊

진행 방법

사용한 도구

  • 개발 환경: Cursor IDE, GitHub, FastAPI, n8n, Git Sync 앱

  • 사용한 언어: JavaScript(메신저봇), Python(FastAPI)

구현 흐름

  1. GitHub 및 Git Sync 앱 활용하여 메신저봇 폴더구조 통째로 Git 연동

    • msgbot/Bots 디렉토리를 git에 push

    • Git Sync에서 연동하여 자동 반영되도록 구성

      전화 화면에서 GI 동기화
  2. Cursor에서 Repo Clone하여 메신저 봇에 사용될 자바스크립트 작성 (현우님 스크립트 참조)

    • 봇별로 디렉토리 구성되어 있어 해당 디렉토리의 스크립트를 수정

    • Cursor가 개발환경을 잘 이해하도록 현우님이 작성해주신 rule 추가

      검은 색 화면의 항목 목록
  3. 다시 GitHub 및 Git Sync 앱 활용하여 메신저봇에 자바스크립트 연동

  4. FastAPI 서버 구성 (현우님 스크립트 참조)

    • Cursor에서 FastAPI 스크립트 작성 후, SSH를 통해 서버에 배포

    • GitHub push → 원격 서버 pull → 적용까지 자동화

  5. n8n 플로우 구성 (호트만님 사례글 참고)

    • 봇 로직을 n8n에서 구현해 테스트

      Google 챌린지의 프로세스를 보여주는 다이어그램
  6. 메신저봇 활성화 확인

    • 실제 앱에서 3가지 봇이 전부 활성화된 모습

    에코 봇 - 스크린 샷
  7. 봇 응답 테스트

    • 실제 대화 예시와 함께 응답 결과 확인

    <위에서 부터 자바스크립트 only / 자바스크립트 + FastAPI / 자바스크립트 + n8n>

    두 개의 한국 문자 메시지 스크린 샷
    한국 문자 메시지의 스크린 샷

결과와 배운 점

시행착오 🧩

  • FastAPI 서버 셋업 시 working directory 등 기본적인 변수를 이해하지 못해 시행착오 발생

  • 메신저봇 최신 버전 사용 시, 이유 없이 앱이 종료되는 문제가 있어 구버전으로 교체했지만, 구버전에서는 script function의 bot.send가 동작하지 않아 디버깅에 꽤 시간 소요됨 😵

배운 점 💡

  • Cursor + GitHub 조합이 매우 유용

    • Cursor에서 코드 수정 → Commit → Push → GitHub → Pull (Git Sync 앱 사용) → 메신저봇에 자동 반영 가능

  • Cursor + GitHub + FastAPI 서버 운영도 매우 효율적

    • 서버 코드 역시 동일하게 관리 가능하며, 필요시 remote SSH로 직접 수정도 가능

  • 운영 서버의 상태보다는, 정상 작동 중인 자바스크립트 파일을 프로젝트에 명확히 남겨두는 것이 훨씬 중요함

    • per-js-bot.js, per-fastapi-bot.js와 같은 핵심 봇 파일이 확실하게 관리되어야 에이전트가 참조 가능함

도움 받은 글 (선택)

  • 현우님 강의자료 및 샘플 스크립트 (혼자서 따라하기에 큰 도움이 되었어요)

  • 호트만님 1주차 사례글

5
2개의 답글

👉 이 게시글도 읽어보세요