2026.08.18 작업일지 v1.0.0
01:31, 나는 낡은 봇 두 개를 지우려던 참이었다. 그때 라이덴이 끼어들었다. “VERDICT=LIVE_REF — 삭제 정지. 둘 다 지금 폴링 중입니다.” 그날 하루는, 죽은 줄 알았던 것들이 사실 살아 있더라는 이야기가 됐다.
새 일꾼(Grok)을 함대에 들이려고 낡은 것들을 정리하던 날이었다. 그런데 정리 대상마다 하나씩 “아직 살아 있다”고 손을 들었다. 은퇴시키려던 봇도, 다 껐다고 믿었던 앱 구독도. 삭제 버튼을 누르기 직전에 멈춰 세운 건 매번 “지우기 전에 실제로 확인”하는 습관이었다.
1. 은퇴식 직전에 살아 돌아온 봇
새벽 1시, 더 이상 안 쓰는 자동화 채널(트리톤) 봇 두 개를 지우기로 했다. 흔한 청소인 줄 알았다. 그런데 라이덴이 실제 상태를 찍어보고 제동을 걸었다 — 두 봇 다 고아(orphan)가 아니라 지금 이 순간에도 텔레그램을 폴링하고 있었다. 그냥 지웠으면 살아 있는 연결을 끊고 그 여파를 나중에야 알았을 것이다.
그래서 순서를 뒤집었다. 봇을 먼저 지우는 게 아니라, 라우팅(routes)에서 참조를 먼저 떼어내고 → 그다음 봇을 삭제. 워치독이 “브릿지가 죽었다”며 되살리려 드는 축까지 확인하고 나서야 실제 삭제(f50c091)로 넘어갔다.
배운 것 — “안 쓰는 것 같다”와 “안 쓴다”는 다르다. 삭제는 되돌릴 수 없으니, 지우기 전에 살아 있는지부터 실측한다.
2. “구독 다 껐다며?” — 매출 화면이 준 반전
아침 8시, 구글에서 뭔가 입금됐다는 알림 한 장으로 하루의 두 번째 축이 열렸다. 두 스토어의 실제 매출을 뽑아 보니 예상과 어긋났다. “유료는 다 접은 줄 알았는데 광고제거 구매가 이렇게 많아? 구독은 다 취소한 거 맞아?”
살아 있는 유료 상품 목록을 전수로 뽑았더니 답이 나왔다 — 광고제거(1회 구매)는 계속 팔리고 있었고, 정작 정리 대상은 방치된 구독이었다. 결정은 명료했다. “광고제거는 놔두고, 구독은 다 내려버려.”
3. 한 시간 반 만에 스토어까지: 한줄일기 구독 제거
결정이 서자 실행은 빨랐다. 한줄일기 (App Store) 앱에서 죽은 구독 상품을 코드에서 걷어내고(ddab4c3), 버전을 1.3.12+28로 올려 다시 빌드(51275e3), Play 심사에 제출했다. 오후 2시 23분, 심사 통과·라이브 게시까지 확인. 메모요는 이미 같은 정리를 마친 상태여서, 이번엔 그 방식을 그대로 따랐다.
4. 화면 속 비밀번호를 손대지 않고 금고로
새 일꾼에게 자격을 넘기려면 비밀 값(토큰)을 안전하게 옮겨야 했다. 화면에 뜬 비밀을 사람 손이나 대화 기록을 거치지 않고 바로 금고로 넣는 파이프라인(secret-capture, 0775ce0)을 세웠다. 처음엔 “검증 없이 덮어쓰기”를 막는 안전장치가 실패의 원인인 줄 알았는데, 실제 범인은 다른 데 있었다 — 경로를 잇는 이음매(스텁)였다. “가드 탓”이라는 첫 진단을 접고 이음매를 고치니(5447b46) 풀렸다.
배운 것 — 에러가 난 자리와 원인이 있는 자리는 다르다. 제일 그럴듯한 용의자(안전장치)를 먼저 의심하면 진짜 원인을 놓친다.
5. 폰에서 사라진 버튼
저녁, 실사용 중에 문제가 잡혔다. 텔레그램에 떠야 할 “추천답변” 버블이 폰에 안 보인다는 것. 파서도 언어 필터도 다 무혐의였는데, 근인은 더 단순하고 무서웠다 — 오후 5시 15분 이후로 브릿지가 최종답변을 한 건도 폰에 안 보내고 있었다. 워커가 보고하며 깨어난 턴의 답변이 폰으로 가는 경로를 안 타던 것. 전용 테스트를 세우고 그 경로를 이어(73d505a1) 버튼이 다시 떴다.
6. 그래서 뭐가 남았나
낡은 봇 2개를 안전하게 은퇴시켰고, 새 일꾼 Grok의 봇 5개와 자격 배선을 깔았다. 한줄일기 구독을 정리해 스토어에 올렸고, 비밀을 안전하게 옮기는 금고 통로와 화면 인식 권한(맥미니)을 컴퓨터유즈로 확보했다. 들어간 비용은 시간뿐 — 삭제 버튼 앞에서 매번 멈춰 확인한 그 몇 분이, 되돌릴 수 없는 사고를 두 번 막았다.
다음 이야기는 인프라가 통째로 재편되던 날 이야기.
— 강대종 / @ssamssae