← 작업일지

2026-08-02 · v1.0.0

2026.08.02 작업일지 v1.0.0

10:26, 안내대로 도구를 불렀더니 그런 도구가 없다는 답이 돌아왔다. 20:28, 다섯 대 전부에 없다는 걸 확인했다. 켤 방법도 없었다. 23:45, 「배포 끝났습니다」라고 보고한 지 몇 분 뒤, 스크린샷 한 장이 그 보고를 뒤집었다.

이날의 주제는 하나로 모인다 — 틀린 안내와, 자기가 틀렸다는 걸 모르는 계기판.

1. 경고문이 없는 도구를 권하고 있었다

파일을 셸 명령으로 잘라 보면 토큰이 낭비된다. 그래서 그럴 때마다 「전용 도구를 쓰세요」라는 경고가 뜨도록 해 뒀다. 문구는 이랬다 — “Read 또는 Grep 도구를 쓰세요.”

그런데 안내받은 대로 그 도구를 부르면 이런 답이 돌아왔다.

Error: No such tool available: Grep.
Grep is not available in this session

다섯 대 전부에서 확인했다. 다섯 대 다 없었다. 계기가 죽어서 못 찾는 게 아니라는 것도 따로 확인했다 — 실재하는 다른 도구를 같은 방법으로 조회했더니 정상적으로 나왔다. 조회 방법은 멀쩡하고, 그 도구가 진짜 없었다.

더 파고들어 보니 프로그램 자체는 그 도구를 갖고 있는데 세션에 안 실릴 뿐이고, 로컬에서 켤 수 있는 스위치가 없었다.

이 경고는 하루 1,204번 떴다. 즉 하루에 천 번 넘게 없는 문을 가리키고 있었던 셈이다.

결론은 「도구를 켜자」가 아니라 방향을 바꾸는 쪽이었다. 규율을 도구 이름이 아니라 출력 크기에 걸기로 했다. 셸 검색을 정식 경로로 인정하고, 대신 「한 번에 너무 많이 쏟아내지 마라」를 기준으로 삼는다. 도구 이름은 바뀌지만 출력 경계는 안 바뀐다.

배운 것 — 안내 문구는 시간이 지나면 조용히 거짓말이 된다. 도구 이름·경로처럼 바깥에서 바뀔 수 있는 것을 문구에 박으면, 그 문구는 언젠가 반드시 없는 곳을 가리킨다.

2. 「배포 끝났습니다」가 스크린샷 한 장에 뒤집혔다

폰으로 명령을 보냈을 때 터미널에 확인창이 뜨면, 그 확인창이 폰에는 안 보이고 세션이 그 자리에 멈춰 있었다. 답할 방법이 없으니 사실상 먹통이다.

낮에 이걸 고치는 작업이 들어갔고 밤 22:56에 합쳐졌다. 다섯 대를 원격으로 확인한 보고는 「배포할 것이 없다 — 전부 이미 새 코드」 였다. 나도 그렇게 보고받고 그렇게 믿었다.

23:45, 폰에서 직접 쳐 본 화면 한 장이 왔다.

아직 브릿지가 안됐네

확인해 보니 절반은 맞고 절반은 틀렸다. 새 코드는 실제로 돌고 있었고 — 예전엔 아예 없던, 터미널이 뭘 묻고 있는지가 폰까지 전달되고 있었다. 「바꿀까요? 1. 예 2. 아니오」가 전문 그대로 왔다.

문제는 그 다음이었다. 읽을 수는 있는데 고를 수가 없었다. 폰 메시지가 스스로 이렇게 적고 있었다 — 여기서 숫자를 보내도 이 확인창에는 안 닿아요.

코드를 열어 보니 버튼을 만드는 장치는 전부 완성돼 있었다. 화면을 읽고, 버튼을 그리고, 누르면 그 숫자를 터미널에 실제로 넣는 것까지. 심지어 그새 화면이 바뀌었으면 안 넣고 막는 안전장치까지 있었다. 그런데 그 장치를 부르는 곳이 「도구 승인창」 한 군데뿐이었고, 이 확인창은 그 경로를 안 지나갔다.

그리고 하나 더. 만든 쪽이 「이 명령은 슬라이더라 번호 선택지가 아니다」라고 전제하고 그걸 「버튼 달면 안 되는 예」로 못박아 뒀는데, 실제로는 화면이 두 개였다. 강도를 고르는 슬라이더(전제 맞음)와, 그 다음에 뜨는 번호형 확인창(전제 틀림). 시험지가 두 화면 중 버튼이 필요 없는 쪽만 담고 있었다.

배운 것 — 원격에서 「전부 최신입니다」를 확인하는 것과, 사용자가 그 기능을 실제로 쓸 수 있는가는 다른 질문이다. 전자를 백 번 확인해도 후자의 답은 안 나온다. 스크린샷 한 장이 그걸 몇 초 만에 갈랐다.

3. 계기가 죽었는데 초록을 낸다

이날 같은 종류가 세 번 나왔다.

무엇증상
스풀 노화 감시기맥에 없는 날짜 옵션을 써서 모든 항목을 건너뛴 뒤 「초과 0건」 + 정상 종료
상태줄 읽기 테스트실제 화면이 아니라 직접 만들어 넣은 문자열을 검사해서 항상 통과
요약문 검사우리말 다듬기 기능이 늘어나자, 원문 그대로를 기대하던 검사가 엉뚱하게 빨간불

첫 번째가 특히 고약하다. 「쌓인 게 오래됐는지 감시하는 장치」인데, 날짜를 한 건도 못 읽으면서 「임계 초과 0건」이라고 보고하고 성공으로 끝난다. 출력만 보면 재고는 있는데 초과는 없다처럼 읽히지만, 실제로는 한 건도 재 보지 않았다.

세 번째는 반대 방향의 함정이었다. 빨간불이 났는데 기능은 멀쩡했다. 밤늦게 이걸 갈라내려고 문제의 검사를 세 판본에서 각각 돌려 봤다.

판본결과
다듬기 기능 들어오기 초록
다듬기 기능 들어온 커밋빨강
그 이후빨강

경계선이 딱 떨어졌다. 범인은 이번 작업이 아니라 그 커밋이었다.

배운 것 — 0과 초록을 믿기 전에 계기가 살아 있는지부터 증명해야 한다. 「하나도 안 걸렸다」와 「하나도 못 봤다」는 화면에서 똑같이 생겼다.

4. 한 문장이 여섯 단계를 굴렸다

아침에 「두 팀 요약을 실제로 보내 보자」는 한마디가 나왔고, 그게 자정까지 여섯 번 막혔다.

시계를 심는 프로그램이 컴퓨터 이름을 정본과 문자열로 직접 비교해서 못 심었다. 우리말 다듬기가 영문 단어를 지우고 조사만 남은 문장을 「성공」으로 내보냈다. 요약이 「잰 것」과 「고친 것」을 같은 칸에 담아 오독을 불렀다. 공용으로 쓰는 컴퓨터의 산출물이 두 방 어디에도 안 뜨는 편성 구멍이 있었다. 그리고 마지막으로, 두 팀 발화 시각이 22분과 53분으로 어긋나 있었다.

마지막 건은 원인이 구조적이었다. 「2시간마다」를 올린 시점부터 2시간으로 걸어 놔서, 올릴 때마다 위상이 달라진다. 벽시계에 절대 정렬되는 방식으로 바꿔서 짝수시 정각으로 고정했다.

자정에 두 방이 같은 시각에 떴다. 창이 이어붙는 방식이라 그 사이 구간도 빠짐없이 실렸다.

5. 그래서 뭐가 남았나

  • 자동화 저장소 127건 커밋, 그중 50건이 본선 착지
  • 합친 작업 55건 — 전부 한 사람 손을 거쳤다
  • 새 티켓 100건, 그중 39건 종결
  • 공개 발행: 인사이트 5편, 그리고 텔레그램 연결 도구 공개판 0.11.0 릴리스
  • 컴퓨터 다섯 대 모두 24시간 내내 활동 — 빈 시간대 없음

숫자보다 남는 건 이날의 형태다. 하루 종일 고친 것이 대부분 「돌아간다고 말하는 장치」 였고, 마지막 결정타는 코드가 아니라 폰 화면 한 장이었다. 자동화를 아무리 겹쳐 쌓아도, 결국 사람이 그 화면을 한 번 열어 봐야 확인되는 자리가 남는다.


다음 이야기는 폰에서 숫자를 눌러 터미널에 답하는, 그 마지막 한 칸을 채우는 이야기.

— 강대종 / @ssamssae