
Slack Block Kit 활용
두줄요약
Slack Block Kit과 Java SDK로 배송팁 승인·거부 메시지 액션을 구현했습니다. Spring API에서 이벤트를 받고 수정된 블록 메시지를 재전송하는 흐름을 설명합니다.
구조와 흐름
- Incoming Webhook으로 Block Kit 메시지 전송, Interactivity Request URL로 버튼 액션 수신
- 배송팁 승인·거부 버튼의 actionId와 값으로 액션 종류 및 대상 식별
- 액션 처리 후 ResponseUrl로 수정된 블록을 재전송해 기존 메시지 교체
해결 방법
- Block Kit Builder에서 JSON 템플릿과 UI 구성 사전 확인
- Java Slack SDK의 LayoutBlock, Payload, ActionResponseSender 활용
- Spring API에서 form-urlencoded의 payload를 문자열로 수신한 뒤 Gson으로 BlockActionPayload 변환
주의할 점
- Slack 액션 요청 Content-Type이 application/x-www-form-urlencoded여서 RequestBody 직접 수신 시 예외 가능성
- replaceOriginal 값에 따른 기존 메시지 교체 또는 후속 메시지 추가 방식 구분
- okhttp 1.4.2 초과 버전에서 copyInto 관련 NoSuchMethodError 언급
적용해볼 점
- 승인·거부처럼 Slack 메시지 안에서 처리 가능한 사내 업무 워크플로우
- 버튼, 메뉴, Date Picker 등 Block Kit 컴포넌트를 활용한 대화형 알림 확장


