← 작업일지

2026-07-25 · v1.0.0

2026.07.25 작업일지 v1.0.0

14:16, 폰에서 물었다. “아테나 왜 멈춘 거야?” 15:08, 지시가 떨어졌다. “모든 작업 정지하고, 인프라부터 교체하라니까.” 16:57, 두 단톡방에 새 팀 아바타가 걸렸다. 부엉이와 날개.

오늘은 우리 집 AI 함대가 조직을 갖춘 날이다. 아침에 다섯 노드가 그리스 신화 이름(아테나·볼칸·라이덴·테미스·헤르메스)을 정식으로 받았고, 저녁에는 단톡방 두 개가 “개발 1팀”과 “개발 2팀”이라는 승인 대기함으로 다시 태어났다. 그 사이에 42분짜리 침묵 미스터리와, 어떤 클릭도 받아주지 않는 팝업과의 사투가 있었다.

1. 이름을 바꾸면 고장나는 것들

이름 교체는 낭만이고, 실제 작업은 배관이다. 새벽에 라이덴이 세 저장소를 전수조사해서 옛 노드명이 등장하는 표면을 네 부류로 갈랐다 — 화면에 찍히는 표시층, 건드리면 안 되는 내부 식별자, 역사 기록, 그리고 함정인 입력 별칭. 라벨 출력을 다시 입력으로 받는 왕복 경로가 있어서, 출력만 바꾸면 소리 없이 고장난다. 그래서 원칙은 “출력은 새 이름, 입력은 옛것도 계속 받기”.

핵심 6파일 교체 PR을 시작으로 오전 내내 회귀 물결이 이어졌다. 새 맥북(헤르메스)을 옛 본진으로 착각하는 분기 7곳, 배차 후보에서 빠지는 버그, 카나리 즉사 경로까지 — 머지된 수리 PR만 열 건이 넘는다. 표시명 실측을 해보니 봇 12기(클로드 6, 코덱스 6)의 텔레그램 이름·아바타는 이미 전부 신화 체제였다.

배운 것 — 이름 교체의 90%는 이름이 아니라, 그 이름을 입력으로 되받는 경로를 찾는 일이다.

2. “왜 멈춘 거야” — 42분 침묵의 범인

오후에 폰으로 “아테나 왜 멈춘 거야”가 날아왔다. 세션은 멀쩡히 일하고 있었다. 진짜 결함은 “지금 이 작업 오래 걸리는 중”이라는 진행 안내가 42분간 한 번도 안 나간 것.

라이덴이 통제 재현으로 범인을 잡았다. 진행 시계 파일이 노드 전역 1개인데, 같은 기계에서 도는 세션이 11개. 남의 턴이 시작될 때마다 시계가 0으로 리셋되니, 긴 턴은 10분 문턱을 영원히 못 넘는다. 수정은 세션별 시계 분리 + 최초 관측값을 고정하는 래치. 사고를 그대로 재현하는 테스트 케이스가 함께 들어가서, 같은 병은 이제 테스트가 막는다.

배운 것 — “멈췄다”는 신고의 절반은 일이 멈춘 게 아니라 신호가 멈춘 것이다. 신호 경로에도 소유권(세션별 상태)이 필요하다.

3. 단톡방 두 개가 개발팀이 되기까지

승인이 필요한 일들이 다섯 봇 채팅방에 흩어져 묻히는 문제가 있었다. 설계는 이렇다 — 기존 방 두 개를 재활용해서 개발 1팀(아테나 지휘 + 테미스)과 개발 2팀(헤르메스 지휘 + 라이덴)으로 개명하고, 승인이 필요한 건마다 티켓·요약·위험등급·승인/보류 버튼이 달린 카드를 방에 올린다. 승인은 버튼(본인 확인 콜백)만 유효 — “누가 대신 눌렀나” 혼선을 규격으로 봉쇄한다.

설계 승인이 떨어지고 방 개명에 들어갔는데, 여기서 오늘의 빌런이 등장한다. 텔레그램 맥앱의 메뉴 팝업이 자동화 클릭을 전부 무시했다. 좌표 클릭, 키보드 내비게이션, 접근성 API, 이벤트 경로를 바꾼 클릭 — 하이라이트만 되고 실행이 안 된다. 답은 의외로 소박했다: 채팅 제목을 더블클릭하면 정보 페이지가 열리고, 거기의 “편집”은 평범한 버튼이라 눌린다. 그렇게 개명은 뚫었는데 사진 업로드는 팝업 지옥이 한 겹 더 있어서 세 경로 모두 실패. 결국 봇을 두 방의 관리자로 승격받아 API 한 방으로 팀 아바타를 걸었다. 앞으로 이 두 방의 이름·사진은 몇 초짜리 API 호출이다.

저녁엔 방의 심장인 승인 카드 규격(버튼 위조 6케이스를 전부 무효로 떨어뜨리는 회귀 가드 포함)이 머지됐고, 발신 경로 전환은 스택 PR이 얽혀서 재정렬 중이다.

배운 것 — GUI 자동화가 벽이면 권한 모델을 바꿔라. 클릭과 싸우는 것보다 API 자격을 얻는 쪽이 영구적이다.

4. 전자책 스크린샷 대작전

병렬 트랙에서는 볼칸이 “AI 텔레그램 연결하기” 전자책의 실물 스크린샷을 하루 종일 찍었다. 10컷 중 9컷 완료. 격리 데모 환경에서 찍는데도 지뢰가 많았다 — API 응답을 통째로 띄웠다가 실명이 찍힌 컷은 폐기하고 재촬영, 배경 창에 내부 호스트명이 비친 원본은 크롭, 데모 브릿지의 tmux 기본값이 라이브 세션과 같아서 무설정이면 실제 작업 세션에 붙을 뻔한 것도 사전에 차단했다. 개인정보는 화면에 뿌려지기 전에 치환하는 방식이라 픽셀 편집보다 구조적으로 안전하다.

부산물로 30쪽짜리 PDF 초안이 나왔고, 남은 한 컷은 폰 특유의 질감이 필요해서 사람 손(폰 스크린샷)을 기다린다.

5. 그래서 뭐가 남았나

  • 머지된 PR: 자동화 저장소에만 14건+ (신화명 회귀 물결, 42분 침묵 수리, 승인 카드 규격), 코디 저장소에 전자책 스샷 3건.
  • 방 2개: 개발 1팀 🦉⚖️ / 개발 2팀 🪽⚡ — 이름·아바타·설계 확정, 카드 라우트는 마무리 중.
  • 조직도 1장: 친구가 “말로는 이해가 안 된다”고 해서 그려 보낸 조직도 — 대표(유일한 인간) 아래 두 팀과 공용 배포실(볼칸), 구석에 연수생 트리톤.
  • 발견된 구멍 2개: 저장소 자동커밋 레일이 PR 관문을 우회하는 문제, 테스트가 격리 없이 실발신 1건을 낸 사고 — 둘 다 티켓으로 박아 재발 방지 대기열에.

내일은 발신 경로 전환을 마저 얹고, 두 팀이 실제 승인 카드로 굴러가는 첫 날이 될 예정이다.


다음 이야기는 개발 2팀의 첫 지휘, 헤르메스 이야기.

— 강대종 / @ssamssae