출처:

Coding at the speed of thought: how I talk to Rovo Dev from Slack

작성자:

Anuj Shah (Software Engineer)

발행일: 2026년 08월 05일



약 300줄의 Python 브리지를 구축해 Slack에서 바로 Rovo Dev와 AI 지원 코딩을 수행할 수 있도록 구성했습니다.

터미널을 열거나 작업 환경을 전환할 필요 없이, 기존 업무 공간에서 AI 기반 코딩 지원을 활용할 수 있습니다.


이 글은 Rovo Dev CLI를 Slack에 연결하는 실험 과정을 소개하며, 터미널을 열지 않고도 AI와 함께 코딩하는 방법을 다룹니다.

 

환경 구성: 터미널에서 Slack으로 전환하기


평소 업무는 대부분 Slack에서 이루어집니다.

반면 터미널을 사용하는 경우는 많지 않습니다.

그래서 이런 생각을 하게 되었습니다.

“Slack에서 바로 Rovo Dev(Atlassian의 AI 코딩 에이전트)와 대화할 수 있다면 어떨까?”

작업 맥락을 전환할 필요도 없고, 터미널을 열 필요도 없으며, 매번 acli rovodev run --yolo 명령을 실행할 필요도 없습니다.


결과적으로 이는 충분히 구현 가능했습니다.
이 글에서는 주말 동안 어떻게 구축했는지 소개합니다.


전체 구조 살펴보기



주요 특징


  • 터미널 없이 사용 가능

    • Slack에서 바로 AI 코딩 에이전트와 작업할 수 있습니다.

  • Socket Mode 지원

    • 공개 URL, ngrok, 방화벽 설정이 필요 없습니다.

  • 지정된 메시지만 처리

    • 지정된 사용자의 메시지만 처리하며, 다른 사용자의 메시지는 자동으로 무시됩니다.

  • 부팅 시 자동 실행

    • systemd 서비스로 실행되어 항상 사용할 수 있습니다.

  • Rovo Dev 기능 그대로 활용

    • 파일 읽기, bash 실행, Jira 조회, Confluence 검색 등을 지원합니다.


동작 방식: 단계별 살펴보기



기술 스택 


구성 요소

기술

목적

AI 에이전트

acli rovodev serve

Rovo Dev CLI의 HTTP API 모드

Slack 연동

Slack Bolt(Python) + Socket Mode

Slack 메시지 수신 및 전송

브리지

Python 3 (약 300줄)

Slack과 Rovo Dev 연결

프로세스 관리자

systemd

부팅 시 자동 실행 및 장애 발생 시 자동 재시작


핵심 기능: acli rovodev serve


이 구성의 핵심은 acli rovodev serve PORT입니다.

이는 잘 알려지지 않은 Rovo Dev CLI 모드 중 하나로, 간단한 API를 제공하는 로컬 HTTP 서버를 실행합니다:

  

acli rovodev serve 18888 --disable-session-token


이를 통해 두 가지 주요 엔드포인트를 사용할 수 있습니다:


  • POST /v3/set_chat_message – AI에 메시지 전달

  • GET /v3/stream_chat – Server-Sent Events(SSE) 스트림 형태로 응답 수신


브리지는 Slack 메시지를 POST 요청으로 전달한 뒤, SSE 스트림을 읽어 전체 응답을 수집하고 완료된 결과를 다시 Slack으로 전송합니다.


보안: 지정된 메시지만 처리


누구나 봇에게 DM을 보내거나 @mention으로 호출할 수 있지만, 지정된 Slack 사용자 ID에서 보낸 메시지만 처리됩니다.
다른 사용자의 메시지는 별도의 알림 없이 자동으로 무시됩니다.

구현은 한 줄의 로직으로 처리할 수 있습니다:


ALLOWED_USER_ID = os.environ.get("ALLOWED_USER_ID", "")

def is_allowed(event) -> bool:

if not ALLOWED_USER_ID:

return True # no restriction set

return event.get("user") == ALLOWED_USER_ID



  • “홈 디렉터리에 어떤 파일이 있나요?”

    • Rovo Dev가 ls -la ~ 명령을 실행하고 결과를 전달합니다.

  • “해결되지 않은 Jira 이슈를 보여주세요.”
    → Jira를 조회하고 미해결 이슈 목록을 제공합니다.

  • “해결되지 않은 Jira 이슈를 보여주세요.”

    • Jira를 조회하고 미해결 이슈 목록을 제공합니다.

  • “feature/xyz라는 새 브랜치를 만들어 주세요.”

    • git 명령을 실행해 브랜치를 생성합니다.

  • “이 함수의 단위 테스트를 작성해 주세요. [코드 붙여넣기]”

    • 테스트 코드를 생성합니다.

다음 단계


  • 스트리밍 응답

    • ChatGPT처럼 Rovo Dev가 응답을 생성하는 동안 부분 결과를 실시간으로 전송합니다.

  • 멀티 세션 지원

    • Slack의 각 스레드를 서로 다른 Rovo Dev 세션으로 관리합니다.

  • 슬래시 명령어 지원

    • /rv plan, /rv ask, /rv review와 같은 명령어를 제공합니다.

  • 파일 업로드 지원

    • Slack에 파일을 첨부하면 Rovo Dev가 해당 파일을 읽고 처리합니다.


핵심 요약 


acli rovodev serve를 HTTP + SSE 방식으로 연결하는 Slack 봇을 구축했습니다.

이 봇은 systemd 서비스로 실행되어 부팅 시 자동으로 시작되며, 지정된 사용자의 메시지에만 응답합니다.

이를 통해 터미널을 사용하지 않고도 Slack에서 AI 지원 코딩 환경을 활용할 수 있습니다.

전체 코드는 약 300줄의 Python으로 구성되었으며, 구축에는 약 2시간이 소요되었습니다.

대부분의 시간은 Slack 권한 설정 작업에 사용되었습니다.

  • No labels