← 뉴스레터

2026-08-13

새벽에 켜진 안전장치가 카톡봇을 침묵시킨 날

11:15, 폰에서 스크린샷이 날아왔다 — “카톡봇 답변이 안 와.” 00:01에 켜진 안전장치가 범인이었다. 봇은 멀쩡히 보고 있었고, 일부러 침묵하고 있었다.

새벽에 켜진 안전장치가 아침의 침묵이 됐다

그저께 밤 “오픈채팅 불특정다수 노출이 두렵다”는 요청으로 만든 트리거 화이트리스트 게이트가 00:01에 라이브됐다. 문제는 초기 허용목록에 딱 세 곳만 들어갔다는 것 — 전날 밤 22:42까지 잘 답하던 친구 방·가족 방이 통째로 빠졌다. 봇은 죽은 게 아니라 “명단에 없는 방이니 침묵하라”는 규칙을 정확히 지키고 있었고, 로그에는 차단 기록이 초 단위로 쌓이고 있었다.

방을 하나 열면 다른 방에서 또 신고가 왔다. 하루 동안 친구 방, 가족 방, 또 다른 친구 방 둘 — 총 네 번. 중간에 “내 질문에만 답하게” 잠금 실험도 있었는데, 가족이 봇을 부르자 설계대로 무시하는 걸 보고 다시 전원 개방으로 돌렸다.

배운 것 — 허용목록 게이트를 라이브할 땐 기존 트래픽 인벤토리부터 시딩해야 한다. 새 안전장치의 첫 피해자는 어제까지 되던 것들이다.

”머지해” — 영수증보다 판단이 먼저였던 릴리스 체인

오전은 텔레그램 브릿지 릴리스 체인이었다. 수리 PR 머지 → 5노드 브릿지 재시작 → 공개 릴리스 v0.13.1(GitHub+PyPI)까지가 오전에 끝났고, 남은 정비 PR 세 개가 차례로 들어갔다. 검증 영수증이 아직 안 붙은 PR 하나는 “머지해” 한 마디로, 사유가 그대로 도장에 남는 정식 override 경로를 태워 넣었다. 대신 후속 PR의 브랜치를 그 main으로 동기화해 재발행 스윕을 돌렸다 — 672건 통과, 실패 0. 사후검증이 선검증을 대신한 셈이다.

덤으로, 추천답변을 전부 확인 버튼으로 묶어두던 “전부 보류” 스위치가 나흘째 방치된 걸 발견하고 5노드에서 내렸다. 삭제 대신 보관 이동이다 — 정리는 삭제가 아니다.

방마다 문을 여는 대신 문지방을 고쳤다

네 번째 신고쯤 되니 구조가 문제라는 게 분명해졌다. “그냥 전체방 다 풀어줘”라는 결정이 떨어졌고, 게이트 자체를 없애는 대신 config 한 줄(와일드카드)로 켜고 끄는 전방개방 스위치를 게이트에 심는 쪽으로 갔다. 픽스처 23케이스에 변이 프로브 3축까지 물려 PR을 만들었고, 완주 영수증(112 통과, 실패 0)을 받아 머지, 라이브 반영 후 존재하지 않는 가짜 방 키로 “허용” 판정까지 실측했다. 이제 새 방은 등록 없이 바로 반응하고, 무서워지면 그 한 줄만 지우면 등록제로 복귀한다.

봇의 눈은 통로만 있고 손이 없었다

“카톡봇 이미지 이제 읽기 가능?” — 실측해 보니 아니었다. 사진 읽기는 갤럭시 캐시 직독이 1순위, 화면캡처가 폴백인 2단 구조인데, 직독은 계속 실패로 미끄러지고 캡처는 맥 카톡이 로그인 화면이라 무장해제 상태였다.

원인 부검이 오늘의 백미다. 어제 사진 동기 회수 통로가 머지됐는데도 안 됐던 이유 — 통로를 만들면서 그걸 받아 쓰는 소비자 배선을 아무도 안 붙였다. 호출부가 0곳이었다. 여기에 방 키 좌표계 불일치(갤럭시식 키 vs 맥 창 이름)까지 겹쳐 있었다. 두 축을 다 고친 PR을 픽스처 29케이스+완주 영수증으로 올렸고, 실제 사진을 투입한 왕복 테스트에서 봇이 캡처 속 게시글의 게시판·제목·기사 내용까지 구체적으로 판독해 답하는 걸 확인했다. 18:18 라이브 재기동. 맥 카톡 로그인과 무관하게 도는 경로라는 게 이 수리의 요점이다.

배운 것 — 통로를 만든 것과 소비자를 배선한 것은 다른 일이다. “머지됐다”와 “실전에서 돈다” 사이에는 호출부 확인 한 번이 있다.

배운 것

브릿지는 v0.13.1 공개 릴리스 + 수리·정비 PR 4건이 main에 착지했고, 전부보류 스위치도 해제됐다. 카톡봇은 전방개방 스위치와 사진 읽기가 둘 다 라이브됐다 — 실물 왕복까지 실증했다. 그 외 발신 오류 근본수리, 전송정지 감지 레일, macOS 셸 테스트 전수 수리, 주간 외부매출 집계까지 같은 날 main에 들어갔다.

결말부터 다시 말하면 PR 일곱 개가 main에 들어갔고, 카톡봇은 이제 아무 방에서나 부르면 답하고 사진도 읽는다. 남은 숙제는 맥미니 카톡 로그인 복구와 그날 밤 전량 스윕 결과 확인이었다.

— 강대종 / @ssamssae