카카오톡 챗봇을 만들고 싶은 거북이의 사례!

소개

나만의 카카오톡 챗봇을 만들고 싶어 도전하는 중입니다.

바쁜 현대인들에게 정보는 넘쳐 나는데 정보를 흡수할 시간이 턱없이 부족하다고 생각합니다.

스터디장 '복받어 현우님'이 만들어 선보였던 카톡 챗봇을 보고 '나도 단톡방 요약을 해주고, 신문기사 요약을 해주는 카톡 챗봇을 만들어 보고 싶다'고 생각했습니다.

이번 스터디를 통해서 만들고 싶은 챗봇은 1. 카카오톡 단체 채팅방 요약봇, AI와 연동해서 작동하는 챗봇(닿님의 뽀야봇 같은)을 만드는 것을 목표로 하고 스터디를 시작하였습니다.

이번주에는 "츤데레 냥이봇" 개발과 '스터디 과제 실습 사례'를 작성하겠습니다.

진행 방법

어떤 도구를 사용했고, 어떻게 활용하셨나요?

Tip : 사전 준비물 : 안드로이드폰(중고 안드로이드 핸드폰 구매 추천), 알뜰폰 유심 구매 후 카톡계정 새로 생성하기, openai API key발급받기

  1. 우선 저는 안드로이드 운영체제인 갤럭시 탭에서도 메신져봇이 가능하다는 이야기를 듣고 갤럭시 탭에 메신져 봇을 설치하여 시도하였으나 결론은 실패하고 '안드로이드폰'에 메신져 봇을 재설치하고 진행하게 되었습니다.

  2. LLM은 클로드를 사용하였습니다. '츤데레 냥이봇' 개발을 위해 요건 정의를 해줍니다. 순서대로 캐릭터와 패르소나를 설정해주고, 응답스타일, 구현방식 등을 정의해줍니다.

한국어 단어가있는 페이지의 스크린 샷
화면의 한국어 목록
  1. 메신져봇은 최신 버젼이 오류가 많다고 해서 처음에는 "0.7.36a"로 설치해서 테스트하였으나, 결국 최신 버젼인 "0.7.39a"로 다시 설치해서 진행했습니다.

    웹 사이트의 한국 버전의 스크린 샷
  2. 갤럭시탭에 메신져봇 설치하고 진행했을 때, 컴파일 후 API작동하지 않음

🟢 버전 1.3 (성공한 코드)의 해결책

1. Jsoup 직접 사용으로 전환

JavaScript 창의 스크린 샷

🎯 개선 포인트: Jsoup 라이브러리를 직접 사용 ConsString 변환 문제 완전 회피 더 안정적인 HTTP 통신

🛠 코드 수정 가이드 (비개발자용)

1) API 키 변경하기 위치: 코드 상단 CONFIG 섹션

  1. ) 대상 채팅방 변경하기 위치: CONFIG의 TARGET_ROOMS

    텍스트가있는 컴퓨터 화면 사진

3) 츤데레 성격 바꾸기 위치: callOpenAI 함수 내 systemPrompt

4) 세션 시간 조정하기 위치: CONFIG의 SESSION_TIMEOUT

JavaScript의 세션 시간 초과
  1. 에코봇, 계산봇, 츤데레냥이봇 등 테스트 완료함!

결과와 배운 점

📝 개발 교훈 정리

1. API 통신 방법 선택

❌ Http.request는 ConsString 오류 위험 ✅ Jsoup 직접 사용이 안정적

2. 문자열 처리 : ❌ 불필요한 Java 변환 시도 ✅ JavaScript 문자열 그대로 사용

3. 비동기 처리 : ❌ 복잡한 콜백 구조 ✅ Thread로 명확한 비동기 처리

4. 로깅 시스템 : 메신저봇 버전에 따라 다른 로깅 방식 0.7.39는 console.log 지원

  1. 기타 : 갤럭시탭사용, 메산져봇 버젼 등 다른 스터디원들과 다르게 변수를 줬더니 어떤 문제로 오류가 해결이 안되는 건지 몰라서 한참을 고생했습니다. 예를들어 코드 문제인지, 탭 문제인지 몰라서 메신져봇 세팅과 재설치를 여러번 반복하고 코드도 여러번 수정하는 등 시행착오를 많이 겪었습니다.

안드로이드 운영체제인 "갤럭시탭 7"에 메신져봇 설치를 하고 테스트를 해보았으나 실패하고 결국 '안드로이드 폰'에 메신져 봇을 설치해서 챗봇을 만듬 -> 그냥 처음부터 시행착오 겪지 마시고 '안드로이드 폰'으로 하세요!

스터디장님(복받어현우님)과 스터디원들의 도움에 감사드립니다.

2
1개의 답글

뉴스레터 무료 구독

👉 이 게시글도 읽어보세요