미숑이의 블로그
블로그 홈소개

© 2025 Ryu Mi Sung. All rights reserved.

목차

들어가기 전에
운세봇 플로우
구현 완료된 view
Step 1. Slack 익숙해지기
Step 2. Slack에서 생년월일 가져오기
Step 3. ChatGPT를 통해 운세 정보 가져오기
Step 4. 운세를 DM으로 전송받기
Step 5. QA 및 피드백
Step 6. 피드백 반영
Step 7. 런칭
런칭 직후 이슈
인턴

[인턴] Slack 봇, 운세구르미 – OpenAI API를 활용한 개발 및 전사 런칭 (1편)

류미성
2025년 2월 12일

들어가기 전에

구름에서는 사내 소통 채널로 Slack을 사용하며, 점심 메뉴를 공유하는 ‘밥봇’, 생일을 알려주는 ‘생일 봇’ 등 다양한 봇이 운영되고 있었습니다.

나와 팀원은 인턴 미션으로 각각 ‘운세봇’과 ‘명언봇’ 개발을 맡았고, 구름 IDE 환경에서 Python을 활용해 개발을 진행했어요.


운세봇 플로우

  • Slack에 등록된 사용자의 생년월일을 기반으로 OpenAI API를 활용해 매일 운세 메시지를 자동 발송한다.
  • 한국 시간(Asia/Seoul) 기준 매일 오전 10:30에 운세 메시지가 전달된다.

구현 완료된 view

3d03a582-9329-4c06-ad2d-bf58edd7a7ec.png

Step 1. Slack 익숙해지기

본격적인 기획에 앞서 Slack과 OpenAI API 모두 처음이었기 때문에, 우선 간단한 Slack 봇을 만들어보며 구현 가능한 범위를 파악하고자 했습니다. 마침 구름 기술 블로그에 슬랙봇 만들기 어렵지 않아요 라는 글이 있어, 이를 참고해 기본적인 봇을 구현해볼 수 있었어요.

무한 테스트(?)를 위해 테스트용 워크스페이스를 개설하고, 채널에서 봇을 태그한 뒤 hello를 입력하면 인사를 반환하도록 만들었어요. 또, 응답 메시지에 포함된 Click Me 버튼을 누르면 봇이 다시 나를 태그하며 응답하도록 설정해 간단한 인터랙션까지 구현했습니다.

ad2a5a5f-e164-4c59-b360-398feaf65903.webp

Step 2. Slack에서 생년월일 가져오기

ChatGPT에게 생년월일을 기반으로 운세를 요청하려면, 먼저 Slack에서 해당 정보를 불러올 수 있어야 했습니다.

이를 위해 오늘의 운세 확인 버튼을 클릭하면, 봇이 Slack 프로필에 저장된 생년월일 정보를 읽어와 응답하도록 구현했어요.

9f6d7a67-b637-4a82-bff1-8548a112b9c0.png

Step 3. ChatGPT를 통해 운세 정보 가져오기

개인적으로 ChatGPT 4o 유료 모델을 사용 중이라, 내 ChatGPT API 키를 활용해 운세 정보를 가져오는 것을 시도했어요. 하지만 사용량이 초과 되었다는 응답을 받았고, 오늘 너무 많이 사용할 탓일까 싶어 다음날에 다시 시도해 보았습니다. 하지만 여전히 운세 정보를 가져오지 못하네요..

329ab097-1eee-4ef6-9439-39b5ed357de9.png

1b5b271f-7be6-4a55-89cc-0325ef09c5dc.png

혹시 엔터프라이즈 계정이 아니라서 그런 건 아닐까 싶어, 회사 워크플로우를 통해 GPT API 키를 요청했습니다.

승인 후 전달받은 키를 코드에 적용하니 곧바로 응답이 돌아왔는데, 첫 응답이 비록 일부 잘려 있었지만 max_tokens값을 늘리자 더 길고 완전한 내용을 받을 수 있었어요.

98d43778-c9ed-4ab1-96f4-7b17ab572ad2.png

d45e043b-e93f-49a2-9934-b531b88b60fb.png

Step 4. 운세를 DM으로 전송받기

모든 사람이 운세를 받기를 원하지 않을 수도 있기 때문에, 채널에서 오늘 운세 확인 🍀 버튼을 클릭할 경우에만 DM으로 메시지를 보내도록 설정했습니다. 또 Slack 프로필에 생년월일이 등록되지 않은 상태에서 해당 버튼을 누른다면, 생년월일을 추가해야한다는 메시지를 보내도록 구현했습니다.

6aafceb2-168c-40b5-978f-f2bd768a7887.png

434843f3-155b-4f9b-9d3b-855f5bd2f1ff.png

Step 5. QA 및 피드백

대표님과 팀의 리더에게 직접 받은 미션이기에 함께 QA 진행하였고, 이때 받은 피드백을 정리해보았습니다.

  • 프롬프트 엔지니어링 고도화
    • 결과물이 의미있기 위해, 프롬프트를 구체적으로 작성하기
    • 페르소나를 지정해서, 반말로 강한 어투로 사용하기 ex) 너는 운세 전문가야. 별자리에 대해 언급하지마.
    • 모델을 gpt-4로 상향조정하기
  • 기획 및 운영 변경
    • 채널에서 버튼을 눌러 DM으로 운세를 받는 방식 대신, 매일 특정 시간에 자동으로 DM을 받도록 변경하기
    • 구름 IDE에서 서버를 실행하고, 자동으로 메시지를 발송하도록 설정하기

Step 6. 피드백 반영

QA 이후 가장 많이 신경 써서 수정했던 부분은 프롬프트 엔지니어링이었어요.

어떤 내용을 포함해야 하는지, 그리고 어떤 내용은 제외해야 하는지를 보다 구체적으로 명시하니, 내가 원하는 답변에 훨씬 더 가까운 결과를 얻을 수 있었습니다.

6442577e-0979-414c-b2da-750341365655.png

Step 7. 런칭

수정 후 일주일간 테스트를 진행하며 최종 점검을 마쳤고, 마침내 사내 운세봇의 런칭 일정이 확정되었습니다.

약 150명이 있는 워크스페이스에 봇을 설치하는 것 만으로도 너무 떨렸어요. 😱 이후 리더의 전사 공지를 통해 운세봇과 명언봇이 공식적으로 소개되었고, 덕분에 많은 관심을 받게 되었습니다..^-^ (사실 부담이 되기도)

f4c92e9a-3e3d-41e2-8285-d9886504d848.png


런칭 직후 이슈

이슈가 많았던 관계로 다음 글에서..^^

🔗 [인턴] 3일에 걸친 운세구르미(Slack 봇) 이슈 해결