본문 바로가기
실습 강의

바이브코딩 실습 8편 — 슬랙 에이전트: 말 걸면 일하는 봇

채팅창에 '뉴스'라고 치면 요약이 오고, '장부'라고 치면 이번 달 합계가 온다. 지금까지 따로 만든 것들을 메신저 안에서 하나로 묶어, 말 한마디에 알아서 움직이는 나만의 비서 봇을 만든다. 이게 '에이전트'의 진짜 실체다.

채팅창에 "뉴스"라고 치면 요약이 오고, "장부"라고 치면 이번 달 합계가 온다. 지금까지 따로 만든 것들이 메신저 안에서 하나로 연결되는 날이다.

이 글 3줄 요약

  • 슬랙에 나 혼자 쓰는 워크스페이스(회사)를 차리고, 봇(직원)을 한 명 뽑아 봇 토큰(사원증)을 받는다. 이 토큰은 지난 편 API 키와 같은 족보의 출입증이다.
  • 봇 코드는 Claude에게 한국어로 시켜서 만든다. Socket Mode(내 컴퓨터에서 도는 방식)로 만들면 서버 없이 바로 굴릴 수 있고, "뉴스"·"장부" 같은 명령에 반응하는 나만의 비서가 완성된다.
  • 따로 만든 뉴스 봇과 장부가 말 한마디에 알아서 움직이는 것 — 이게 바로 '에이전트'의 실체다. 카톡이 아니라 슬랙으로 하는 이유는 개인이 연습하기 좋기 때문이다.

이 글은 AI 바이브코딩 실습 시리즈 9부작 중 8편이다. 코드를 한 줄도 몰라도 AI에게 시켜 실제로 돌아가는 것을 만드는 게 목표다. 바로 앞 실습 7편에서 만든 뉴스 요약 봇을 이번 편에서 그대로 재사용하니, 아직 안 봤다면 먼저 보고 오길 권한다. 개념을 더 파고들고 싶다면 짝이 되는 이론 편도 함께 보면 좋다. 봇 토큰의 정체는 이론 5편 — API에서, '말 걸면 도구를 골라 일하는' 에이전트의 원리는 이론 10편 — AI 도구 생태계에서 다룬다.

오늘 만드는 것 — 슬랙에서 부르면 일하는 내 비서

먼저 완성물부터 보자. 슬랙 채팅창에 "뉴스"라고 치면 지난 편에서 만든 뉴스 요약이 답장으로 오고, "장부"라고 치면 미니 ERP의 이번 달 수입·지출 합계를 알려주는 봇이다. 말 그대로 대화하듯 부르면 일한다.

내가 친 말봇(내비서)의 답장
뉴스📰 오늘의 AI 뉴스 3줄 — · AI 요금 대폭 인하 발표… · 신규 오픈소스 모델 공개… · 국내 스타트업 투자 유치…
장부💰 7월 합계 — 수입 320만원 · 지출 180만원 · 남은 돈 140만원 👍

핵심은 이거다. 지금까지 따로따로 만든 것들이 메신저 안에서 하나로 연결된다는 점이다. 뉴스 비서와 장부가 이제 채팅창의 말 한마디에 알아서 움직인다. 여러분은 오늘 비서를 한 명 고용하는 셈이고, 이게 요즘 자주 들리는 '에이전트'의 진짜 실체다.

시작 전 준비물 — 이 3개면 된다

거창한 준비는 없다. 딱 세 가지만 있으면 바로 시작한다.

  • 지난 편 결과물: Python이 깔려 있고, 뉴스 요약(news-bot)과 API 키가 이미 있는 상태. 장부(my-ledger)까지 있으면 완벽하다. 앞 실습에서 만든 걸 그대로 재활용한다.
  • 이메일 1개: 슬랙 워크스페이스 가입용이다. 평소 쓰는 Gmail이든 네이버든 아무거나 된다.
  • Claude Code: 봇 코드를 말로 시켜서 만든다. 실습 0편부터 쭉 쓰던 그 도구 그대로다.

비용은 걱정하지 않아도 된다. 슬랙은 무료 플랜으로 오늘 할 걸 전부 할 수 있다. 봇을 여러 개 만들어도, 혼자 써도 공짜다. 다만 뉴스 요약에 쓰는 AI 호출 비용만 지난 편과 똑같이 소액 발생한다.

오늘의 전체 흐름은 "회사 차리고 직원 뽑기"로 요약된다. 워크스페이스를 만들고(STEP 1) → 봇을 뽑아 사원증을 받고(STEP 2) → 봇 코드를 짓고(STEP 3) → 실행해 출근시키고(STEP 4) → 첫 대화를 나눈 뒤(STEP 5) → 말로 능력을 하나 더 붙인다(STEP 6). 오늘 만나는 단어는 워크스페이스 · 봇 토큰 · Socket Mode · 에이전트 네 개인데, 뜻은 진행하면서 하나씩 풀어준다. 지금 다 이해 안 돼도 전혀 괜찮다.

STEP 1 — 나 혼자 쓰는 '회사' 하나 차리기

먼저 슬랙에 가입하고 워크스페이스를 만든다. 브라우저에서 아래 주소로 간다.

slack.com/get-started

절차는 세 단계다. 첫째, 이메일로 가입한다(인증 코드가 메일로 오면 입력). 둘째, 새 워크스페이스를 만든다. 회사 이름은 아무거나 좋다 — "내 비서실" 같은 걸로 하면 된다. 셋째, 동료 초대 화면이 나오면 건너뛴다(Skip). 혼자 써도 되니 넘어가도 무방하다.

슬랙은 한마디로 회사용 카톡이다. 오늘은 '나 혼자 회사'를 차리고 곧 직원(봇)을 한 명 뽑을 것이다. 워크스페이스는 우리 회사 건물인 셈이다.

체크포인트 — 화면 왼쪽에 내 워크스페이스 이름이 뜨고, 슬랙 채팅 화면에 들어와 있으면 성공이다. "워크스페이스가 만들어졌어요!" 같은 안내가 보이면 다음으로 넘어가면 된다.

STEP 2 — 직원(봇)을 뽑고 사원증(토큰)을 받는다

이제 봇을 만들 차례다. 브라우저에서 슬랙 앱 관리 페이지로 간다.

api.slack.com/apps

순서대로 눌러가면 된다.

  1. Create New App → From scratch — 이름은 '내비서', 워크스페이스는 방금 만든 내 것을 선택한다.
  2. OAuth & Permissions → Bot Token Scopeschat:write를 추가한다 — 봇이 '메시지를 쓸' 최소 권한이다.
  3. Install to Workspace → 허용 — 이제 봇이 우리 회사에 정식 채용된다.
  4. Bot Token xoxb-…복사한다 — 이게 봇의 사원증이다. 잠깐 메모장에 붙여둔다.

이 토큰이 봇의 사원증이다. 지난 편에서 만든 API 키와 같은 족보로, 프로그램이 출입할 때 내미는 '출입증'이다. 화면에는 BOT USER OAUTH TOKEN 아래에 xoxb-2894-51...-aB9kf 같은 긴 글자와 Copy 버튼이 보인다.

체크포인트xoxb-로 시작하는 긴 글자를 복사했으면 OK다. 한 가지만 명심하자. 토큰은 비밀번호다. 남에게 보여주거나 화면 공유에 노출하면 안 된다. 안전하게 보관하는 법은 다음 편에서 배운다.

STEP 3 — 말로 시켜서 봇을 짓는다

코드는 직접 짜지 않는다. Claude에게 한국어 문장으로 시킨다. 먼저 새 폴더를 만든다.

mkdir my-agent

cd my-agent로 폴더에 들어간 뒤 claude를 켜고, 아래 문장을 그대로 붙여넣는다.

슬랙 봇을 만들어줘. 내가 '뉴스'라고 보내면 news-bot 폴더의 뉴스 요약을 실행해 결과를 답장하고, '장부'라고 보내면 my-ledger의 이번 달 수입·지출 합계를 알려줘. Socket Mode로 만들고 토큰은 .env 파일에 두게 해줘. App Token(xapp-)이 필요하면 어디서 발급받는지 단계별로 알려줘.

여기서 Socket Mode라는 단어가 처음 나온다. 외부 서버 없이 내 컴퓨터에서 봇이 도는 방식이다. 봇이 슬랙에 '전화를 걸어 대기'하는 것과 같아서, 인터넷 주소를 따로 살 필요가 없다. 그래서 App Token(xapp-으로 시작하는 열쇠) 하나를 더 받는데, 발급 위치는 Claude가 안내하는 대로 따라가면 된다. 명령을 외우거나 코드를 이해할 필요는 없다. 화면에 뜨는 지시를 순서대로 밟기만 하면 된다.

STEP 4 — 봇을 실행하면 직원이 출근한다

코드가 만들어졌으면 실행해서 봇을 출근시킨다.

python bot.py

터미널에 붙여넣고 Enter를 친다. "⚡️ Bolt app is running!" 같은 연결 메시지가 뜨면 봇이 대기 상태로 들어간 것이다. 화면에는 대략 이런 흐름이 지나간다.

⚡️ 슬랙에 연결 중…
⚡️ Bolt app is running!
✓ Socket Mode 연결됨
✓ 메시지 대기 중

여기서 중요한 사실 하나. 봇은 내 컴퓨터에서 도는 프로그램이 슬랙에 전화를 걸어 대기하는 구조다. 그래서 **이 터미널 창을 닫거나 컴퓨터를 끄면 봇도 '퇴근'**한다. 24시간 일하는 봇은 상시 켜진 서버가 필요한데, 그건 나중에 배포를 다루는 편에서 이야기한다.

체크포인트 — 슬랙 왼쪽 App 목록에서 '내비서' 옆에 초록불(온라인)이 켜지면 출근 완료다. 초록불이 안 뜨면 터미널에 에러가 없는지 먼저 확인한다.

STEP 5 — 봇에게 DM으로 말을 걸어보라

오늘의 하이라이트다. 이제 봇에게 직접 말을 건다. 채널보다 **DM(개인 메시지)**이 가장 쉬우니 DM으로 시작한다.

  • "뉴스" 입력 → 요약 답장이 온다. 지난 편 뉴스 봇이 그대로 실행돼 결과가 온다.
  • "장부" 입력 → 이번 달 합계가 온다. 미니 ERP 데이터를 읽어서 알려준다.

실제 대화는 이렇게 흐른다.

(오후 2:14) — 뉴스

내비서 APP (오후 2:14) — 📰 오늘의 뉴스 요약 · AI 요금 대폭 인하 발표… · 신규 오픈소스 모델 공개… · 국내 스타트업 투자 유치…

(오후 2:15) — 장부

내비서 APP (오후 2:15) — 💰 7월 합계 · 수입 320만원 · 지출 180만원 · 남은 돈 140만원 👍

이게 왜 특별할까. 따로 만든 뉴스 비서와 장부가 이제 말 한마디에 알아서 움직인다. 여러분은 방금 에이전트를 한 명 고용한 것이다. 여러 도구 중에서 상황에 맞는 걸 골라 실행해주는 비서 — 이게 '에이전트'라는 말의 진짜 실체다.

STEP 6 — 봇에게 재주를 하나 더 가르친다

봇의 좋은 점은 코드를 다시 안 짜도 말로 능력을 계속 늘릴 수 있다는 것이다. Claude에게 이렇게 시켜본다.

봇에게 '도움말'이라고 하면 지금 할 수 있는 일 목록(뉴스, 장부)을 답하게 해줘.

이 문장을 시키고 python bot.py를 다시 실행하면 '도움말' 명령이 추가된다. "이런 것도 답하게 해줘" 한마디면 능력이 하나씩 붙는 식이다. 나만의 명령을 자유롭게 추가해보자. 예를 들면 이런 것들이다.

  • "오늘" → 오늘 날짜·요일·할 일을 알려주기
  • "환율" → 원-달러 환율을 답해주기
  • "명언" → 응원 한마디를 랜덤으로 보내주기

"카톡으로는 왜 안 되나요?"

여기서 가장 많이 나오는 질문을 짚고 간다. "다들 카톡을 쓰는데, 왜 굳이 슬랙이냐"는 것이다.

카카오톡에 봇을 붙이려면 문턱이 높다. 사업자 심사가 필요하고, 채널을 개설한 뒤 승인 절차를 거쳐야 한다. 게다가 개인이 만드는 자동응답은 공식적으로 막혀 있다. 연습 삼아 개인이 봇을 붙이기엔 문이 너무 좁은 것이다.

반대로 슬랙과 디스코드는 가입 즉시, 심사 없이, 무료로 봇을 붙일 수 있다. 전 세계의 봇 실습이 이 둘로 이뤄지는 이유다. 여기서 감을 잡으면 나중에 카톡이든 라인이든 원리는 100% 똑같이 통한다.

정리하면 이렇다. 카톡이 안 되는 게 아니라, 개인이 연습하기엔 문이 좁은 것뿐이다. 봇의 원리는 슬랙에서 배워도 어디서든 그대로 쓸 수 있다.

골라서 더 해보기

기본기가 됐으니 이제 능력을 골라서 더 붙여보자. 전부 Claude에게 말로 시키면 붙는 것들이고, 폴더는 my-agent 안에서 그대로다.

  • ☀️ "날씨" 물어보기 — "날씨"라고 치면 오늘 우리 동네 날씨를 요약해 답장한다. 시킬 문장: 봇에게 '날씨'라고 보내면 오늘 우리 동네 날씨를 요약해서 답장하게 해줘.
  • 🔔 매일 아침 먼저 보내기 — 내가 부르기 전에 봇이 아침마다 뉴스를 먼저 보낸다. 지난 편 스케줄러를 재사용하는 예다. 시킬 문장: 실습 6 스케줄러랑 연결해서, 매일 아침 7시에 봇이 나에게 먼저 뉴스 요약을 DM으로 보내게 해줘.
  • 📝 "메모 ~~~" 저장하기 — "메모"로 시작하면 그 뒷부분을 파일에 한 줄씩 쌓아둔다. 시킬 문장: 봇에게 '메모'로 시작하는 메시지를 보내면 그 뒷부분을 memo.txt 파일에 한 줄씩 저장하게 해줘.
  • 👨‍👩‍👧 가족과 같이 쓰기 — 코드 수정 없이 된다. 슬랙 왼쪽 위 메뉴 → '사람 초대'로 가족 이메일만 넣으면, 같은 봇을 다 같이 부를 수 있다.

막혔을 때 — 자주 나는 3가지

봇을 처음 돌리면 아래 화면들이 종종 뜬다. 놀라지 말고 표대로 대처하면 된다.

증상원인대처
invalid_auth (인증 실패)토큰 복사가 덜 됐거나, Bot Token이 아닌 다른 토큰을 붙임xoxb-로 시작하는지 다시 확인해 .env에 정확히 붙여넣는다
봇이 메시지에 반응이 없음python bot.py가 꺼졌거나, 봇이 그 채널에 없음봇이 실행 중인지 확인한다(창 닫으면 퇴근). 채널이면 봇을 초대하고, DM이 가장 쉽다
missing_scope (권한 부족)봇에게 필요한 권한(Scope)이 빠짐에러 문구를 그대로 복사해 Claude에게 붙여넣으면 어떤 Scope를 추가할지 알려준다

대원칙은 하나다. 뭐가 안 되면 AI에게 그대로 물어보라. 에러 메시지를 복사해 "이거 왜 이래?"라고 붙여넣으면 대부분 풀린다.

오늘 배운 것, 그리고 다음 편

오늘 만난 단어 네 개를 한 줄씩 정리한다.

단어한 줄 정의
워크스페이스슬랙에서 만든 나만의 회사(채팅 공간) — 봇을 채용하는 건물
봇 토큰xoxb-… — 봇의 사원증. 지난 편 API 키와 같은 족보(출입증)
Socket Mode외부 서버 없이 내 컴퓨터에서 봇이 도는 방식 (전화 대기 중인 직원)
에이전트말 한마디에 여러 도구를 알아서 골라 실행해 일해주는 비서 — 오늘의 주인공

봇 토큰은 이론 5편 — API에서 본 출입증 개념 그대로였고, '말 걸면 도구를 골라 일하는' 봇은 이론 10편 — AI 도구 생태계에서 다룬 에이전트를 손으로 만져본 것이다. 개념이 손끝에서 실제로 움직이는 걸 봤으니, 이론이 훨씬 선명해질 것이다.

이제 열쇠가 세 개나 생겼다. API 키, 봇 토큰, 앱 토큰. 다음 편에서는 이 열쇠들을 안전하게 보관하고, 사고 안 치며 운영하는 법을 다룬다. 금고를 점검할 차례다.

다음 편 — 실습 9편 — 사고 안 치는 운영

자주 묻는 질문

카톡으로는 왜 안 되나요? 다들 카톡을 쓰는데요.

안 되는 게 아니라 개인이 연습하기엔 문이 너무 좁습니다. 카카오톡에 봇을 붙이려면 사업자 심사가 필요하고, 채널을 개설한 뒤 승인 절차까지 거쳐야 합니다. 개인이 만드는 자동응답은 공식적으로 막혀 있어서, 취미로 붙여보기엔 진입 장벽이 높습니다. 그래서 전 세계의 봇 실습이 슬랙과 디스코드로 이뤄집니다. 가입 즉시 심사 없이 무료로 봇을 붙일 수 있기 때문입니다. 여기서 원리를 익히면 나중에 카톡이든 라인이든 똑같이 통합니다.

Socket Mode가 뭔가요? 서버 없이 봇을 돌린다는 게 무슨 말인가요?

외부 서버 없이 내 컴퓨터에서 봇이 도는 방식입니다. 보통 봇은 인터넷 어딘가에 상시 켜진 서버가 있어야 하는데, Socket Mode는 봇이 슬랙에 먼저 전화를 걸어 대기하는 구조라 그 서버가 필요 없습니다. 덕분에 인터넷 주소(도메인)를 따로 살 필요도 없습니다. 대신 App Token(xapp-으로 시작하는 열쇠) 하나를 추가로 발급받는데, 어디서 받는지는 Claude가 단계별로 안내해줍니다. 연습용으로는 이 방식이 가장 간단합니다.

봇 토큰(xoxb-)이 뭔가요? 지난 편의 API 키랑 다른 건가요?

같은 족보입니다. 봇 토큰은 봇의 사원증이라고 보면 됩니다. 뉴스 봇 실습에서 만든 API 키가 프로그램이 출입할 때 내미는 출입증이었던 것처럼, 봇 토큰도 프로그램이 슬랙에 드나들 때 내미는 출입증입니다. xoxb-로 시작하는 긴 글자이고, 비밀번호처럼 취급해야 합니다. 남에게 보여주거나 화면 공유에 노출하면 안 됩니다. 이 열쇠를 안전하게 보관하는 법은 다음 편에서 따로 배웁니다.

터미널 창을 닫으면 봇은 어떻게 되나요?

봇도 같이 퇴근합니다. 이 봇은 내 컴퓨터에서 도는 프로그램이 슬랙에 전화를 걸어 대기하는 구조이기 때문입니다. 그래서 python bot.py를 실행한 터미널 창을 닫거나 컴퓨터를 끄면 봇의 대기도 끊깁니다. 24시간 쉬지 않고 일하는 봇을 원한다면 상시 켜진 서버가 필요한데, 그건 배포를 다루는 편에서 따로 이야기합니다. 지금 단계에서는 '내가 켜둘 때만 일하는 봇'으로 충분합니다.

코딩을 전혀 못 하는데 봇을 만들 수 있나요? 비용은 드나요?

코드를 한 줄도 몰라도 됩니다. 봇 코드는 Claude에게 한국어 문장으로 시켜서 만들고, 나중에 능력을 추가할 때도 '이런 것도 답하게 해줘' 한마디면 됩니다. 비용도 걱정할 게 거의 없습니다. 슬랙은 무료 플랜으로 오늘 할 걸 전부 할 수 있고, 봇을 여러 개 만들어도 공짜입니다. 다만 뉴스 요약에 쓰는 AI 호출 비용은 뉴스 봇 실습과 똑같이 소액 발생합니다. 그 외에 새로 드는 돈은 없습니다.

관련 글