← 뉴스레터

2026-08-18

삭제 버튼 앞에서 두 번 멈춰 선 날

01:31, “삭제 정지 — 둘 다 지금 폴링 중입니다.” 지우려던 봇 두 개가 손을 들었고, 아침 8시엔 “구독은 다 취소한 거 맞아?” 한 마디가 두 번째 반전을 열었다.

은퇴식 직전에 손을 든 봇 두 개

새벽 1시 반, 더 이상 안 쓰는 자동화 채널의 봇 두 개를 지우기로 했다. 새 일꾼(Grok)을 들이면서 낡은 것부터 치우는, 흔한 청소인 줄 알았다.

그런데 삭제 직전에 실제 상태를 찍어보니 제동이 걸렸다 — “삭제 정지. 둘 다 지금 폴링 중입니다.” 이름만 남은 껍데기인 줄 알았던 두 봇이, 그 순간에도 텔레그램을 들여다보고 있었다. 그냥 지웠으면 살아 있는 연결을 끊어놓고 그 여파는 며칠 뒤에나 알았을 것이다.

그래서 순서를 뒤집었다. 봇을 먼저 지우는 게 아니라 설정에서 참조를 먼저 떼어내고, 그다음 봇을 삭제. “브릿지가 죽었다”며 되살리려 드는 감시기까지 확인하고 나서야 실제 삭제로 넘어갔다.

”구독은 다 취소한 거 맞아?” — 매출 화면이 준 반전

아침 8시, 구글에서 뭔가 입금됐다는 알림 한 장으로 하루의 두 번째 축이 열렸다. 두 스토어 매출을 실제로 뽑아 보니 머릿속 그림과 어긋났다. “유료는 다 접은 줄 알았는데 광고제거 구매가 이렇게 많아? 구독은 다 취소한 거 맞아?”

살아 있는 유료 상품을 전수로 뽑고 나서야 답이 나왔다. 광고제거는 한 번 사면 끝나는 상품인데 계속 팔리고 있었고, 정작 방치돼 있던 건 구독 쪽이었다. 결정은 단순했다 — “광고제거는 놔두고, 구독은 다 내려버려.”

결정이 서자 실행은 빨랐다. 한줄일기에서 죽은 구독 상품을 코드에서 걷어내고, 버전을 1.3.12+28로 올려 다시 빌드해 심사에 넣었다. 오후 2시 23분, 심사 통과와 라이브 게시까지 확인. 메모요는 이미 같은 정리를 끝낸 뒤라 그 방식을 그대로 따라갔다. 아침 알림 한 장에서 스토어 반영까지, 한나절이 안 걸렸다.

에러가 난 자리와 원인이 있는 자리는 달랐다

새 일꾼에게 자격을 넘기려면 비밀번호 같은 값을 안전하게 옮겨야 했다. 화면에 뜬 비밀을 사람 손이나 대화 기록을 거치지 않고 바로 금고에 넣는 통로를 세웠는데, 첫 시도가 막혔다. “검증 없이 덮어쓰기”를 막는 안전장치가 범인처럼 보였다. 제일 그럴듯한 용의자였으니까.

아니었다. 진짜 원인은 경로를 잇는 이음매 쪽이었고, “안전장치 탓”이라는 첫 진단을 접고 이음매를 고치자 바로 풀렸다.

저녁에도 같은 모양의 오진이 한 번 더 있었다. 텔레그램에 떠야 할 추천답변 버블이 폰에 안 보인다는 제보였는데, 파서도 언어 필터도 다 무혐의였다. 근인은 훨씬 단순하고 무서웠다 — 오후 5시 15분 이후로 최종답변이 폰에 한 건도 가지 않고 있었다. 다른 컴퓨터가 보고하며 깨어난 턴의 답변이 폰으로 가는 경로를 아예 안 타던 것이다. 전용 테스트를 세우고 그 경로를 이으니 버튼이 다시 떴다.

배운 것

“안 쓰는 것 같다”와 “안 쓴다”는 다른 말이다. 이날은 그 차이가 두 번 드러났다. 은퇴시키려던 봇은 폴링 중이었고, 다 껐다고 믿었던 유료 상품 쪽은 광고제거가 계속 팔리고 있었다. 둘 다 실제로 찍어보기 전까지는 반대로 알고 있었다.

에러 메시지가 뜬 자리와 원인이 있는 자리도 달랐다. 안전장치를 먼저 의심하면 진짜 이음매를 놓치고, 파서를 먼저 의심하면 애초에 발신이 없었다는 걸 못 본다.

남은 건 낡은 봇 두 개의 안전한 은퇴, 새 일꾼의 봇 다섯 개와 자격 배선, 스토어까지 반영된 한줄일기 구독 정리, 그리고 비밀을 옮기는 금고 통로다. 들어간 비용은 시간뿐이었다 — 삭제 버튼 앞에서 매번 몇 분씩 멈춰 확인한 게, 되돌릴 수 없는 사고를 두 번 막았다.

— 강대종 / @ssamssae