AI Briefing

컬리, Slack Block Kit과 Java SDK로 승인 워크플로우 자동화

·2020.04.08 00:00

핵심 내용

컬리가 Slack Block Kit과 Java SDK를 활용해 휴가 알림 및 배송팁 승인 워크플로우를 자동화했다.

자세히 보기

컬리는 Slack을 단순 메신저가 아닌 정보 공유 및 알림 플랫폼으로 활용하기 위해 Slack API와 Block Kit을 도입했다. 이를 통해 PDE 휴가자 알리미, 통합 개발팀 이벤트 알림, 터미널 입고 스캔 오류 알림 등 사내 주요 업무 흐름을 자동화했다. 특히 메시지 기반의 승인/거부 이벤트를 처리하기 위해 Block Kit의 인터랙티브 기능을 적극 활용했다.

Slack App 설정 및 Block Kit 활용

Slack App 생성 후 Incoming Webhooks와 Interactivity & Shortcuts를 활성화하여 Action 발생 시 호출할 API 경로를 설정한다. Block Kit Builder를 통해 Button, Menu, Date Picker 등 UI 컴포넌트를 디자인하고 JSON 코드를 생성한다. 생성된 Template은 Spring Framework의 Java SDK에서 LayoutBlock 인터페이스로 구현하여 메시지 Payload에 포함시킨다.

Java SDK 연동 및 Action 처리

Spring Framework 환경에서는 slack-api-model, slack-api-client, slack-api-backend 모듈을 Dependency로 추가한다. 승인 및 거부 버튼의 actionId는 Slack App 설정의 Callback ID와 일치시켜야 한다. 사용자가 버튼을 클릭하면 Slack은 application/x-www-form-urlencoded 형식으로 요청을 보내므로, 서버에서는 String으로 수신 후 Gson을 이용해 BlockActionPayload 객체로 변환해야 한다.

메시지 업데이트 및 응답 처리

Action 처리 로직에서는 BlockActionPayload의 정보를 수정하거나 새로운 Template를 생성할 수 있다. 기존 메시지를 교체하려면 ActionResponse의 replaceOriginal(true)를 설정하고, ActionResponseSender를 통해 responseUrl로 응답을 전송한다. 이를 통해 승인 시 '배송팁 등록 승인' 메시지로 업데이트하고 DB 상태를 변경하는 등 동적인 업무 처리가 가능하다.

이 한국어 요약은 AI가 자동으로 만들었습니다. 원문의 주장과 맥락은 원문에서 확인해 주세요. 저작권은 원저작자에게 있습니다.

AI 처리 방식을 확인하거나, 요약 오류와 출처 표기 문제, 삭제 요청을 문의 · 건의로 알려주세요.