피드로 돌아가기
Dev.toBackend
원문 읽기
엔지니어가 Next.js와 Claude 3.5로 Slack 메시지를 분석하여 자동으로 Jira 티켓을 종료하는 봇 구축
How I used Next.js and Claude 3.5 to stop my PM from nagging me about Jira
AI 요약
Context
개발자들이 Slack 일일 스탠드업에서 작업 완료를 자연스럽게 보고하지만, PM의 요청으로 별도로 Jira 티켓을 수동으로 완료 상태로 변경해야 하는 반복적인 컨텍스트 스위칭이 발생하고 있었다.
Technical Solution
- Slack Events API 웹훅 수신 시 @vercel/functions의 waitUntil 함수를 사용하여 3초 타임아웃 제약 우회: 즉시 200 OK 응답 후 백그라운드에서 AI 파이프라인 실행
- Claude 3.5 Sonnet에 엄격한 시스템 프롬프트 설계: 신뢰도 점수(0.0~1.0) 포함 JSON 응답 강제로 할루시네이션 방지
- 신뢰도 점수 0.95 이상 시 자동 종료, 0.70~0.94 범위 시 사용자에게 임시 Slack 메시지로 확인 버튼 제공
- Jira/Linear API 호출 후 티켓에 감사 추적 목적의 댓글 작성: 원본 Slack 메시지 인용 및 봇 동작 내역 기록
- Next.js API 라우트(src/app/api/webhooks/slack/route.ts)에서 processSlackMessage 함수로 메시지 분석 및 API 호출 오케스트레이션
Key Takeaway
LLM 기반 자동화 시스템을 구축할 때 외부 API의 응답 시간 제약(Slack 3초 규칙)과 AI의 오류 위험성을 동시에 해결하려면, 비동기 처리 패턴(waitUntil)과 신뢰도 임계값 기반 의사결정(자동 vs 사용자 승인) 계층화가 필수적이다.
실천 포인트
Slack 또는 다른 메시징 플랫폼과 프로젝트 관리 도구를 연동하는 서비스에서 LLM 기반 자동 작업 상태 동기화를 구현할 때, @vercel/functions의 waitUntil 패턴을 사용하면 타임아웃 제약을 우회할 수 있으며, 신뢰도 점수 기반 분기(>0.95 자동 처리, 0.70~0.94 사용자 확인, <0.70 무시)를 도입하면 오류 위험을 최소화하면서 자동화 이점을 취할 수 있다.