채널 하나 바꿨을 뿐인데
지난주 드림팀 슬랙 채널을 정리하다가 `#bot-collab`을 임시로 다른 이름으로 바꿨다. 봇 셋에게 각자 다른 시각에 이 채널로 보고를 시키고 있었는데, 리네임 직후 상황이 이상하게 흘러갔다.
첫 번째 봇은 예전 채널 ID를 그대로 쓰고 있어서 문제없이 보고를 올렸다. 두 번째 봇은 채널 이름으로 검색하는 방식이라 새 이름을 못 찾고 조용히 실패했다. 세 번째 봇은 아예 기본 채널로 폴백하도록 짜여 있어서, 평소엔 안 쓰던 개인 DM 채널에 보고를 올려버렸다.
같은 지시를 세 봇에게 내렸는데, 결과는 채널 ID·채널 이름·폴백 경로로 각각 달랐다.
코드를 열어보니 원인은 뻔했다.
# 봇 A: 채널 ID 하드코딩
channel = "C0AQG9CFT0V"
# 봇 B: 채널 이름으로 조회
channel = get_channel_by_name("bot-collab")
# 봇 C: 실패 시 DM으로 폴백
channel = channel or DEFAULT_DM
세 방식 다 나름의 이유가 있었다. ID는 리네임에 강하고, 이름 조회는 가독성이 좋고, 폴백은 최소한 어딘가엔 도착한다는 안전장치였다. 문제는 이 셋이 한 팀 안에 섞여 있다는 걸 아무도 기록해두지 않았다는 점이다.
결국 모든 봇을 채널 ID 기준으로 통일하고, 이름은 참고용 주석으로만 남겼다. 리네임 같은 사소한 변경이 왜 무서운지, 봇 셋의 서로 다른 실패 방식을 보고 나서야 제대로 이해했다.