배포 후 게시물 ID를 디스코드 버튼 알림으로 자동 전달
목차
배포 스크립트에서 새로 생성된 게시물의 post_id를 자동으로 캡처해서 디스코드 알림으로 팀에 전달하는 기능을 추가했다. 기존에는 배포 후 결과를 수동으로 확인하고 팀에 공유해야 했는데, 이제 버튼 형태로 즉시 전달되도록 자동화했다.
배경 — 왜 이 작업이 필요했나
우리 팀의 publish 워크플로우를 생각해보면, 누군가 새로운 게시물이나 상품을 배포할 때마다 팀원들이 그 결과를 빨리 알아야 한다. "배포 완료됐어"라는 말만으로는 부족하고, 실제로 어떤 ID로 생성되었는지, 그 게시물/상품에 접근할 수 있는 링크나 정보가 필요한 경우가 많다.
기존 방식에서는:
- 배포 스크립트 실행 후 로그에서 post_id 확인
- 손으로 팀 채널에 "post_id: 12345" 이런 식으로 메시지 입력
- 또는 배포 담당자만 그 정보를 알고 있다가 나중에 누군가 묻으면 대답
이렇게 하면 결과 공유가 늦어지고, 누락되거나 잘못 전달될 가능성도 있다. 무엇보다 팀의 투명성과 신속한 피드백 루프가 떨어진다.
작업 내용 — INSERT 캡처에서 버튼 전달까지
이번 변경에서 한 일은:
- INSERT 실행 후 post_id 캡처: publish.sh에서 DB에 새 레코드를 INSERT할 때, 그 쿼리의 결과(생성된 post_id)를 변수에 담아 캡처한다.
- discord_notify 함수로 전달: 캡처한 post_id 목록을 discord_notify 함수에 넘긴다. 여기서는 단순 텍스트가 아니라 버튼(interactive element)으로 만들어서 사용자가 클릭할 수 있도록 구성한다.
- 버튼을 통한 빠른 접근: 팀원들이 디스코드 알림에서 버튼을 클릭하면 해당 post_id의 게시물로 바로 이동할 수 있다.
# 개념적 패턴
post_ids=$(./insert_posts.sh) # INSERT 후 post_id 목록 반환
discord_notify "post_ids" "$post_ids" # 버튼으로 formatted된 알림 전송
이것은 단순한 기술 개선이 아니라, 워크플로우 경험을 생각하는 작업이다.
기술적 고민들
쉘 스크립트에서 이런 작업을 하려면 몇 가지 신경 써야 할 점들이 있다:
- 데이터 캡처의 안정성: INSERT가 실패했을 때는 어떻게 처리할 것인가? post_id가 없을 때 빈 알림을 보낼 것인가, 에러 알림을 보낼 것인가?
- 멱등성: 배포를 재시도할 때 같은 post_id가 중복으로 알림되지 않도록 해야 한다. 이미 발행된 post는 스킵하거나, 또는 "재배포됨" 같은 구분이 필요할 수 있다.
- 버튼 구현: 디스코드의 interactive element는 구조가 정해져 있다. 각 post_id마다 클릭할 수 있는 버튼을 JSON으로 생성하는 부분이 까다로울 수 있다.
이런 것들은 단순해 보이지만, 배포 스크립트가 실패하지 않으려면 각 단계마다 로그와 예외 처리가 필수다.
회고 — 팀 협업의 시각에서
이 작업이 시사하는 것은, 단순 자동화가 아니라 팀의 피드백 루프와 투명성이다.
우리 팀에서 자동화 작업을 할 때 자주 물어보는 질문:
- "이 정보가 누가 필요로 하나?"
- "지금 이 정보를 얻으려면 얼마나 번거로운가?"
- "자동으로 제공되면 팀의 신속성이 어떻게 달라질까?"
이번 경우, post_id 버튼 전달은 그 자체로는 거대한 기능은 아니지만, 배포 후 팀의 시야와 접근성이 한 층 높아진다. 누군가 "어라, 아까 배포한 거 ID가 뭐였더라?"라고 물었을 때, 디스코드 히스토리에 버튼 형태로 남아있으니 누구든 클릭해서 확인할 수 있다.
또한, 배포 담당자의 부담도 줄어든다. "배포 완료 후 팀에 공유"라는 수동 작업이 사라지므로, 배포자는 그 과정에서 실수를 할 여지가 줄어든다.
이런 작은 자동화들이 모여서, 팀의 개발 생산성과 협업 경험을 서서히 높인다. 코드 자체는 publish.sh에서 몇 줄 추가된 것이지만, 팀 관점에서는 꽤 의미 있는 개선다.
🛒 이 글과 어울리는 추천 상품
*위 링크는 쿠팡파트너스 활동의 일환이며, 일정액의 수수료를 제공받을 수 있습니다.
댓글 0
첫 댓글 달아줘.