카톡봇, 구형폰과 삽질을~ (떠먹여주는 밥도 받아먹기가 쉽지 않더라.)

"떠먹여주는 밥도 받아먹기가 쉽지 않더라"

지난 글에서 제가 만든 단순한 카톡봇을 소개 했었고, 스터디장님의 고급 봇 사이의 충격적인 격차를 느꼈다는 이야기를 했었습니다.

그리고, 그때 목표로는 일단 카톡봇 제작 과정 전체는 시리즈 영상으로 만들겠다. 였는데, 여기까지는 실행 했습니다.

https://youtu.be/F6VPM1LqK2o

https://youtu.be/UUJx8r9ww1A

그리고 두번째 목표로는 Android Studio를 설치해 보고, 지금까지 제가 생각해 보지 못했던 방식의 변화를 주자는 것 그리고, 스터디장님의 코드를 내게도 적용하자 라는 것을 세웠었더랍니다.

그런데... 이 과정이 쉽진 않더라고요.

현실의 벽 1: Android Studio와의 첫 만남 (그리고 이별)

지난번 글에서는 Android Studio로 가상환경에서 시도해볼생각을 못했다는 글을 썼었고, 시도해 보겠다고 했었습니다. 그리고, 지난 목요일 스터디 발표 전까지는 계속 중국의 Great firewall 방화벽에 걸려서 다운로드 조차 못받는 어려움이 있었지요.

대망의 스터디 발표날인 9/11일, 기적의 저주(?)가 걸린 덕에 Android Studio 설치 파일은 다운로드 받을 수 있었습니다.

※ 중국에서는 다운로드도 안됩니다. 를 보여드리려 했는데 갑자기 순식간에 다운로드가 되는 것은 무엇? 시연의 저주가 긍정적인 역할을 할 때도 있더라능...

하지만....

역시 중국의 국가 방화벽은 무시무시 했습니다.

SDK Component라는 녀석에 대한 접근을 막아버려서....

전혀 제대로 동작하지는 않더라고요...

※ 이 화면도 이번주 목요일에 보여드리겠습니다. 이번에도 시연의 저주(?)가 발동하기를...

결국 안타깝게도, 스터디장님이 찾으신 가상 안드로이드 환경 그리고, 극강의 파일 관리 도구인 ADB는 안타깝게도 포기할 수 밖에 없었습니다.

삼성 Flow: 그래도, 네가 있어서 다행이다.

그때 발견한 게 삼성 Flow였어요. 스마트폰과 컴퓨터를 연결해서 화면을 공유할 수 있는 앱이었는데, 이걸로 컴퓨터에서 코드를 다듬고, 복사하고, 붙여넣기를 반복할 수 있었습니다.

ADB에 비하면 정말 원시적인 방법이었지만...

카톡에 메시지 보내고 코드 붙여 넣고 하는 삽질보다는 조금은... 아주쪼금은 낫더라능...

전화기의 파일 관리자의 스크린 샷

현실의 벽 2: 구형 스마트폰의 반란

두 번째 문제는 제 구형 스마트폰이었습니다.

폰이 구형인것도 문제였지만... 한국에서 산 것이 아니라 폴란드에서 샀던 폰인지라 뭔지는 잘 모르겠지만 SW상의 충돌이 있는것 같더라고요.

스터디장님이 최신 버전의 메신저봇R에 맞춰 코드를 작성해주셨는데, 제 폰에서는 신규 버전의 메신저R을 돌리면 2~3시간만에 죽어버리는 문제가 발생하곤 했습니다.

어쩔수 없이 구 버전의 메신저R을돌리고 스터디장님이 떠먹여주신 밥.

검증된 코드를 구버전 메신저R에 맞게 수정하는 수 밖에 없었습니다.

이때 진찌 함이 되어준 것은 바로 Claude Code였습니다!

Claude Code와의 첫 만남

필요한 코드들을 하나의 폴더에 넣고, Claude Code에게 상황을 설명하고 코드를 구 버전에 맞게 수정해달라고 요청했습니다.

놀랍게도 금방 수정해주더라고요!

(아, 이미 GPTers 스터디원분들께는 많이 겪어 오셔서 익숙한 일일지도...)

결과물을 보니 생각보다 많이 바뀌지는 않았는데, 핵심적인 몇 부분만 바뀌면 되는 거였어요.

그리고 실행해 보니 더미데이터 생성과 저장, 그리고 통계 기능까지 잘 동작하는 것을 확인할 수 있었습니다.

하지만 문제는 검색 기능이었습니다.

현실의 벽 3: 유령 같은 에러들

세 번째 문제가 가장 골치 아팠습니다.

분명 더미 데이터가 잘 생성되고 Supabase에 잘 저장되는 것도 확인했건만...

검색을 돌리기만 하면 검색결과가 없다고 뜨는게 문제였습니다.

Claude Code에게 물어보면 Supabase에 함수가 없는거 아니냐는 질문이 되돌아오고...

메신저봇에 Log남기는 코드가 있으니 Log가 있으리라는 생각에 찾아봤지만...

메신저봇R에서 로그 남기는 기능은 너무나 빈약하더라고요.

코드에서 상세하게 짜면 뭐하나요... 보이질 않는데...

분명히 중간 어딘가에서 에러가 발생하고 있는 건 확실한데, 어디서 왜 에러가 나는지 전혀 알 수가 없었어요. 마치 유령과 싸우는 기분이었죠.

그래서 생각해낸 방법이 로그를 메신저 메시지로 모두 남기는 것이었어요.

아이디어만 내고 실제 코드 고치는건 클로드 코드가 다 해줬지만요...

그 결과 드디어 원인을 찾아 냈습니다.

채팅 검색 APK- 스크린 샷

메신저창이 로그로 도배되긴 했지만, 덕분에 문제를 찾아서 고칠 수 있었어요!

한국어 한국어 한국인 한국인 한국인

알고 봤더니 중요한 매개변수가 하나 누락되어 있었더라고요.

아마도 코드를 다운 그레이드 하는 과정에서 누락되었었나봐요.

여기까지 수정한 덕에 드디어 겨우 스터디장님이 떠먹여주신 밥을 먹을 수 있게 되었습니다.

삽질 속에서 찾은 보물들

Claude Code와의 깊어진 우정 (그리고 토큰 공포)

이 과정에서 Claude Code와 정말 많이 친해졌어요. 모르는 게 있으면 바로 물어보고, 코드 수정도 요청하고, 에러 해결책도 같이 고민하고...

다만 토큰 소모량을 보니까 살짝 겁이 나긴 했어요. 😅 "이렇게 쓰다가 요금 폭탄 맞는 거 아니야?" 하는 생각이 들더라고요.

※ 실제 지금 이 글도 Claude의 도움을 받아서 쓰고 있었는데... 글을 다듬는 과정에서 아래와 같이 5시간 한도 도달 이라는 메시지가 뚜악!

전화에 한국어 앱의 스크린 샷

60% 이해도 달성!

가장 뿌듯했던 건 스터디장님의 코드를 60% 정도는 이해하게 된 것 같다는 점이었습니다.

처음에는 "이게 뭔 소린가" 싶었는데, 삽질하면서 하나하나 뜯어보다 보니 "아, 이 부분은 이런 역할이구나", "저 함수는 저런 기능이구나" 하는 게 보이기 시작했어요.

(물론 자세한 내용 하나하나는 다 이해하지 못했지만요.)

드디어 테스트 환경 구축!

우여곡절 끝에 우리 가족 카톡방과 나와 봇의 1:1 대화에서 기록을 남기는 테스트를 시작할 수 있게 되었습니다.

겨우 떠먹여주신 밥 떠먹게 된 작은 성취지만, 개인적으로는 정말 뿌듯했습니다!

앞으로의 계획: 밀린 숙제도 하고, 실질적인 도움이 되는 봇도 만들고...

과제 1: 봇에게 캐릭터를 입히자!

원래 이번 주 스터디장님의 숙제는 내 봇에 캐릭터성 부여하기였었죠.

페르소나는 이미 생각해뒀어요.

똘똘이 스머프 느낌의 잔머리 마왕 캐릭터!

똑똑한듯 하지만, 무언가를 하나씩 빠뜨리는 허당끼가 있는,
도움은 주지만 약간의 장난기도 있는 그런 느낌의 캐릭터를 만들어 봤으면 합니다.

문제는 만들어진 페르소나를 어떻게 봇에 입히는 지를 아직 완전히 이해하지 못했다는 점이에요. 이부분은 다른 분의 샘플을 보고 다시 한번 도전해보려고 합니다!

과제 2: 중국에서도 쓸 수 있는 봇 만들기

사실 더 큰 목표가 있습니다.
현재 중국에서 근무하고 있는 관계로, 카톡보다는 위쳇에서 쓸 수 있는 봇을 만들고 싶거든요.

메신저봇R 대신 사용할 수 있는 도구를 찾고 있는데, 현재로서는 Tasker라는 앱이 가장 가능성이 높아 보여요. 이것도 좀 더 연구해봐야겠습니다!

메신저봇 만들기 후기: 삽질도 하나의 성장 과정

돌이켜보면 이번 메신저봇 개발 경험에서 진도는 많이 나가지 못했어요. 하지만 삽질하는 과정 자체가 정말 값진 학습이었던 것 같아요.

메신저봇 만들기에서 배운 3가지 교훈

  • 환경이 완벽하지 않아도 창의적으로 문제를 해결할 수 있다: Android Studio 대신 삼성 Flow 활용

  • AI 도구(Claude Code)를 실제 개발에 어떻게 활용할 수 있는지: 코드 수정과 디버깅 지원

  • 작은 성취라도 차근차근 쌓아가면 큰 성장이 된다: 60% 이해도 달성의 의미

"떠먹여주는 밥"도 내 환경에 맞게 소화시켜야 진짜 내 것이 되는 카톡봇 개발 과정이더라고요.

다음번에는 캐릭터가 입혀진 메신저봇과의 대화 후기를 들고 올게요! (만약 성공한다면 말이죠 😊)

1
1개의 답글

뉴스레터 무료 구독

👉 이 게시글도 읽어보세요