개발 slecs

디스코드 배포 알림에 변경 파일 목록과 로그 첨부 추가

목차

디스코드 발행 알림에 파일 첨부 기능을 추가했다. 배포 완료 메시지가 단순 텍스트만 던지는 것에서 벗어나, 실제 변경된 파일 목록과 로그까지 함께 보낼 수 있게 개선한 작업이다.

왜 알림을 풍부하게 해야 했나

배포 후 팀이 받는 디스코드 메시지는 보통 "배포 완료" 한 줄에 불과했다. 문제는 누군가 "어떤 파일이 들어갔어?" 물어보면 또 다시 배포 시스템을 뒤져야 한다는 것. 아니면 발행 로그를 직접 찾아봐야 하고. 이게 반복되다 보니 매번 같은 정보를 요청받는 낭비가 생긴다.

특히 버그 리포트가 들어왔을 때 "어, 그게 이번 배포에 포함됐나?" 확인하려면 채팅창 위로 올라가 메시지를 찾거나, 변경 로그를 별도로 조회해야 했다. 동기식으로 정보가 함께 떨어지지 않으니 의사결정이 한 박자 늦어지는 느낌이었다.

publish.sh에 파일 첨부 로직 추가

이번에는 배포 스크립트(publish.sh)에서 발행되는 파일 목록과 fortune.log 를 함께 담아 디스코드 메시지로 보내기로 했다. 구체적으로는:

항목 설명
갱신 파일 목록 이번 배포에서 실제로 변경/추가된 파일들을 정렬해서 표기
fortune.log 발행 과정의 상세 로그를 텍스트 파일로 첨부

이렇게 하면 디스코드에서 메시지를 클릭하자마자 "아, 이 파일들이 들어갔구나" 한눈에 알 수 있다. 로그도 텍스트 파일 형태로 담으면 나중에 문제가 생겼을 때 타임라인 추적이 훨씬 수월해진다.

스크립트 레벨에서 고려할 점

publish.sh 같은 배포 스크립트를 손대려면 몇 가지 신경 써야 할 부분이 있다.

먼저 파일 목록을 추출하는 로직이 정확해야 한다. 실제로 변경된 파일만 골라야지, 임시 파일이나 빌드 아티팩트까지 섞이면 안 된다. 보통 git diff 나 manifest 파일을 참고하는데, 이 과정에서 경로 정규화, 중복 제거 같은 세부 처리가 필요하다.

fortune.log 를 첨부할 때는 파일 크기도 고려해야 한다. 로그가 너무 커지면 디스코드 API 제한에 걸릴 수 있으니, 최근 N줄만 잘라낸다든지, 또는 압축해서 보낸다든지 하는 전략이 필요할 수 있다.

# 예시: 파일 목록 추출 + 필터링
changed_files=$(git diff --name-only $(git rev-parse HEAD~1) HEAD \
  | grep -v '\.log$' \
  | grep -v 'temp/' \
  | sort)

# 로그 최근 50줄만
tail -50 fortune.log > /tmp/publish.log.short

이런 식으로 스크립트 내에서 이미 필터링을 해두면, 알림 받는 입장에서 노이즈가 줄어든다.

팀 관점의 효과

개별 개발자 입장에선 이 개선이 작은 것 같지만, 팀 전체로 보면 배포 후 의사소통 비용이 확실히 줄어든다. 특히 문제가 발생했을 때 "어떤 배포가 들어갔는지" 확인하는 과정이 동기식으로 처리되니 대응 속도가 빨라진다.

또한 누군가 신규 팀원이라면 "배포마다 뭐가 어떻게 변하는가"를 더 쉽게 학습할 수 있다. 텍스트 메시지만 날라다니는 것보다 실제 파일과 로그가 함께 떨어지니 context 가 훨씬 풍부하다.

비슷하게 많은 팀들이 배포/빌드 알림을 점진적으로 개선해 나간다. 처음엔 "배포 완료", 그 다음 "변경 요약", 그 다음 "파일 목록", 마지막엔 "변경 diff 까지" 이렇게 단계적으로 늘려나가는 패턴을 본다. 이 작업은 그 여정에서 한 걸음 더 나아간 셈이다.


🛒 이 글과 어울리는 추천 상품

*위 링크는 쿠팡파트너스 활동의 일환이며, 일정액의 수수료를 제공받을 수 있습니다.

댓글 0

첫 댓글 달아줘.