[Claude Code] 무거운 AI 에이전트는 그만 — 필요한 기능만 담은 나만의 Slack 에이전트 봇

📝 한줄 요약

별도 API 키도, 무거운 에이전트 프레임워크도 없이 — 내 Claude 구독만으로 Slack에서 코딩 작업을 시키는 봇을 만들어 VPS에 직접 올렸습니다. 설계부터 실서비스 기동까지 한 번의 대화 세션에서 끝났습니다.

바쁘시면 이것만 읽어도 돼요:

  • 사용한 도구와 목표: Claude Code로 "Slack 채널 = 작업 폴더, 스레드 = 대화 세션"인 코딩봇을 만들어 셀프호스팅

  • 동기: 기존 AI 에이전트 도구들이 토큰을 많이 먹고 기능이 과해서, 필요한 것만 담은 가벼운 내 도구가 필요했다

  • 핵심 해결: API 키 없이 VPS에 이미 로그인된 구독 계정으로 인증 (추가 비용 0)

  • 가장 인상적이었던 점: 생각만 하던 걸 너무 쉽고 빠르게, 한 세션에 배포까지 끝내버림

  • 작은 고비: 딱 한 번 "권한 오류"로 멈췄지만 같은 세션 안에서 원인 추적 → 수정까지 바로 해결

  • 확장성: 채널마다 다른 프로젝트를 연결해 여러 작업을 병행할 수 있게 설계

🎯 이런 분들께 도움돼요

  • 자기 VPS에 자기 도구를 직접 올려 쓰는 걸 좋아하는 셀프호스팅 관심층

  • AI 코딩 도구를 쓰지만 무겁고 과한 에이전트 프레임워크는 부담스러웠던 분

  • 터미널 대신 익숙한 Slack에서 바로 작업을 시키고 싶은 분

  • API 추가 비용 없이 기존 구독을 최대한 활용하고 싶은 분

😫 문제 상황 (Before)

AI 코딩 도구는 잘 쓰고 있었지만, 늘 PC 앞 터미널에 묶여 있었습니다. 외출 중이거나 다른 일을 하다가 떠오른 작업을 바로 시키기가 번거로웠죠.

시중의 에이전트 프레임워크들을 살펴봤지만 — 토큰을 과하게 소모하는 것처럼 보였고, 제겐 필요 없는 기능이 잔뜩 얹혀 있어 과하다는 느낌이었습니다. "이 정도면 내가 필요한 것만 가볍게 직접 만드는 게 낫겠다"는 생각이 들었습니다.

조건은 셋이었습니다: ① 어디서든(=Slack에서) 시킬 수 있을 것, ② 익숙한 환경일 것, ③ API 키·추가 비용 없이 기존 구독으로 굴릴 것.

🛠️ 사용한 도구

  • 도구명: Claude Code (Slack 봇의 두뇌이자, 봇을 만든 도구이기도 함)

  • 모델: Claude Opus 4.8 (Max 구독)

  • 실행 환경: 직접 운영하는 VPS (Linux)

  • 특이사항: 봇을 "만드는 일"과 봇이 "실행하는 일" 모두 Claude Code 한 도구로 처리


🔧 작업 과정

머릿속 그림을 그대로 설계로 — "채널은 폴더, 스레드는 대화"

먼저 머릿속에 있던 구조를 그대로 던졌습니다.

슬랙 메신저 봇으로 클로드코드를 운영하고 싶어. 슬랙의 채널은 워크스페이스, 세션은 스레드로 구분할거야. 시스템 설계해줘

곧바로 몇 가지 선택지를 정리해주더군요. 저는 "내 서버에서 직접 돌리고, 추가 비용은 안 쓴다"는 방향만 짚어줬습니다.

anthropic_API_KEY 없이 VPS의 CLI로 운영할 계획이야.

그러자 설계가 깔끔하게 잡혔습니다 — Slack 채널 하나가 작업 폴더 하나, 채널 안의 스레드 하나가 이어지는 대화 한 세션. 제가 평소에 머리로만 그리던 그림이 그대로 문서가 됐습니다.

비용 0의 비밀 — "이미 로그인된 구독을 그대로 써"

가장 신경 쓴 부분이 비용이었습니다.

anthropic_API_KEY 없이 VPS의 클로드코드 CLI에 접근하도록 구현해줘.

핵심은, 봇이 띄우는 작업이 VPS에 이미 로그인돼 있는 내 구독 계정을 그대로 쓰게 하는 것이었습니다. 게다가 혹시라도 과금되는 경로로 새지 않도록 차단 장치까지 꼼꼼히 넣어줬습니다. 덕분에 추가 결제 수단을 등록하는 일 없이, 쓰던 구독만으로 돌아가게 됐습니다.

"전부 직접 해줘" — 그리고 정말 다 해버림

가이드만 받을 생각이었는데, 마침 이 작업을 하던 환경이 바로 그 VPS였습니다. 그래서 그냥 맡겼습니다.

전부 직접 해줘. 지금 이 환경이 VPS 환경이야.

여기서부터가 놀라웠습니다. 필요한 실행 환경을 깔고, 봇의 뼈대를 만들고, 스스로 점검(테스트)까지 돌리고, 심지어 진짜로 내 구독으로 한 번 호출해보며 "인증이 된다"는 걸 확인까지 했습니다. 상시 켜두는 설정과, Slack 앱을 한 번에 만들 수 있는 설정 파일까지 준비됐습니다. 제가 한 일은 그저 지켜본 것뿐이었습니다.

토큰 3개만 넣으니, 바로 살아남

봇을 만들 권한은 제 몫이라 — Slack에서 토큰 3개를 받아 건넸습니다.

슬랙 토큰 [signing secret], [xapp-...], [xoxb-...]

값을 넣자마자 봇이 Slack에 연결됐습니다. 상시 가동 상태로 등록까지 마치니, 이제 멈추지 않고 떠 있는 진짜 서비스가 됐습니다.

딱 한 번의 고비 — 그마저도 같은 자리에서 해결

처음 실제로 시켜봤을 때 한 번 멈췄습니다.

(작업 연결 후) 됐어?  →  오류: 코드 1로 종료됨

원인이 표면에 안 드러나는 종류였는데 — 숨겨진 오류 메시지를 끄집어내는 장치를 더하고, 실제 서비스와 똑같은 상황을 재현해 진짜 원인을 잡아냈습니다. "관리자 권한으로는 안전상 막혀 있던" 설정이 문제였고, 곧바로 풀어줬습니다. 막혔지만, 자리를 옮기지 않고 같은 대화 안에서 추적부터 수정까지 끝났습니다. 덤으로, 앞으로는 이런 일이 바로 보이도록 작업 기록(로그) 까지 남게 해뒀습니다.

멘션 없이도, 한 줄로

쓰다 보니 매번 봇을 부르는 게 번거로웠습니다.

멘션이 없어도 답변하도록 할 수 있어?

채널마다 켜고 끌 수 있는 자동 응답 기능이 추가됐습니다. 단, 여러 사람이 떠드는 채널에서 봇이 모든 말에 끼어들지 않도록 기본은 꺼두고, 원하는 채널에서만 켜는 방식으로요. 이런 세심한 기본값까지 알아서 챙겨줬습니다.


✅ 결과 (After)

Before vs After

항목

Before

After

작업 가능한 곳

PC 앞 터미널

어디서든 Slack(폰 포함)

도구 무게

과한 기능의 무거운 에이전트

필요한 기능만, 가벼운 내 봇

추가 비용

API 키·과금 필요

0원 (기존 구독 그대로)

만드는 데 걸린 시간

한 세션 (아이디어→실배포)

결과물

Slack 채널에 프로젝트를 연결하고 봇을 부르면, 그 자리에서 코드를 읽고 분석해 답하는 — 상시 떠 있는 나만의 코딩 동료가 생겼습니다. 채널이 곧 작업 폴더, 스레드가 곧 이어지는 대화입니다.

💬 이 과정에서 배운 AI 활용 팁

효과적이었던 것

  1. "내가 뭘 원하는지"만 명확히 주면 된다. 구조(채널=폴더, 스레드=세션)와 제약(비용 0, 내 서버)만 짚어줘도 나머지 설계는 알아서 채워줬습니다.

  2. 막히면 그 자리에서 같이 푼다. 오류가 났을 때 자리를 옮기지 않고 "왜 멈췄는지"를 함께 추적하니, 숨은 원인까지 빠르게 잡혔습니다.

  3. 기본값을 맡겨도 안전하게 챙겨준다. "자동 응답"처럼 자칫 시끄러울 수 있는 기능도, 기본은 꺼두는 신중한 설계로 제안해줬습니다.

이렇게 하면 안 돼요

  1. 출처 모를 설치 명령을 그냥 실행하지 않기. 작업 중 외부 스크립트를 받을 일이 있었는데, 바로 실행하는 대신 내용을 먼저 확인한 뒤 진행했습니다. 편하다고 검증을 건너뛰면 위험합니다.

  2. 민감 정보(토큰 등)는 다루는 위치에 주의. 접근 토큰 같은 비밀값은 노출 위험을 늘 의식하고, 필요하면 재발급하는 습관이 좋습니다.

🌍 다른 업무에 적용한다면?

"채팅으로 명령 → 서버에서 실행 → 결과를 다시 채팅으로"라는 구조는 코딩에만 한정되지 않습니다. 정기 리포트 생성, 데이터 정리, 사내 문서 질의응답 같은 반복 업무도 Slack 한 줄로 시키는 봇으로 옮길 수 있습니다.

🚀 앞으로의 계획

  • 여러 repo/채널로 확장 — 채널마다 다른 프로젝트를 연결해 여러 작업을 동시에 굴리기

  • (추후 과제) 보안 강화 — 관리자 권한 대신 전용 사용자로 분리

📋 재사용 가능한 프롬프트

프롬프트 1: 머릿속 구조를 설계로 바꾸기

[만들고 싶은 것]을 만들고 싶어. [핵심 구조나 비유 — 예: "채널은 폴더, 스레드는 세션"]로 동작하면 좋겠어. 시스템 설계해줘.
[대괄호] 부분을 본인 상황에 맞게 바꾸세요.

프롬프트 2: 추가 비용 없이 기존 구독으로 운영

[도구]를 API 키 없이, 이 서버에 이미 로그인된 구독 계정으로 동작하게 구현해줘. 실수로 과금 경로로 새지 않게 차단도 넣어줘.

프롬프트 3: 막혔을 때 원인 추적

[실패 증상]으로 멈췄어. 숨은 오류 메시지를 드러내고, 실제 환경과 똑같은 조건으로 재현해서 진짜 원인을 찾아줘.

1
1개의 답글

뉴스레터 무료 구독