포크 폭탄을 만든 날: 한 달간의 AI 코딩 실험기
2월 27일 금요일, 오전 11시쯤
업무를 시작하는 시간은 보통 늦다. 책상에 앉아 마우스를 흔들어봤는데 아무 반응이 없었다.
"어? 뭐가 이상한데?"
키보드를 몇 번 눌러봤다. 지문 인식 센서도 누른다. 트랙패드도 두드려본다. 아무것도 반응하지 않는다.
"진심이야?"
케이블을 확인해본다. 어제 밤 정리할 때 뭔가 빠진 게 있나 싶어서다. 그런데 모든 게 제대로 연결되어 있었다. 강제 재부팅을 시도해본다. 그 순간 컴퓨터가 뜨거웠다.
배가 철렁하다. 몇 달 전 이 노트북에 차를 쏟았었다. 하단 섀시는 교체했지만, 혹시 놓친 부분이 있나 싶다. 3일 뒤가 온콜(on-call) 당번이다.
"음..."
재부팅을 해본다. 정상적으로 켜진다. 터미널을 열어 claude 명령을 치고 엔터를 누른다. 무엇을 해야 할지 확인하려고 /adhd 플래그를 쓰려 했는데, 컴퓨터가 느려지기 시작했다.
cd 명령어도 버벅거린다.
Activity Monitor를 열어본다. 메모리 압박 표시가 빨간색이다.
"어?"
프로세스 목록을 스크롤 내리다가 눈에 띈다. CC 인스턴스가 수백 개다.
퍼즐 조각이 맞춰진다.
어제 밤 컴퓨터가 느렸고(오, 그러네), 섀시가 뜨거웠고(어?), 메모리 압박이 붉은색이고(오 안 돼), 섀시가 여전히 뜨거웠다(젠장).
어떤 실수들은 즉시 알아챈다. 다른 실수들은... 한참 뒤에야 깨닫는다.
이건 후자였다.
거슬러 올라가기: 늦은 밤/새벽
새벽 2시, 터미널이 느려지기 시작했을 때 나는 중얼거렸다.
"뭐야?"
그리고 침대로 향했다. 내일 해결하자는 생각으로.
내가 방금 만든 SessionStart 훅이 문제였다. claude -p ... 명령으로 백그라운드 CC 인스턴스 2개를 생성하도록 설정했었는데, 각 인스턴스가 정상적인 시작 시퀀스를 따라갔던 것이다.
책상을 떠났다. 터미널을 그대로 두고 자러 갔다.
다시 금요일 오전 11시로
Activity Monitor에서 CC 인스턴스를 강제 종료하려고 시도한다. 그런데 죽이는 것보다 빠르게 생성된다.
ghostty + pkill이 더 잘 먹을 텐데, ghostty가 먹통이다.
깨달음이 밀려온다.
"젠장, 젠장, 젠장!"
각 CC 인스턴스가 CC 인스턴스 2개를 더 생성하고 있었다. 내가 만든 훅이 기하급수적으로 증폭되고 있었던 것이다.
1 → 2 → 4 → 8 → 16 → 32 → 2^N…
파워 버튼에 손을 뻗었다. 강제 재부팅했다.
"정신 차려, 멍청이."
나는 자책했다. 밤새 실행된 이 프로세스들이 컴퓨터를 완전히 먹통으로 만들어버렸다. 거의 20년을 개발해온 지금에야 내가 처음으로 포크 폭탄(fork bomb)을 만든 셈이었다.
또 다른 깨달음이 찾아온다.
"API 빌 말이야."
우리 회사는 API 사용량에 따라 요금을 청구한다.
"완전 망했네."
Edge 브라우저를 띄운다. 심장이 철렁거린다. Usage 페이지를 본다.
$600이 올라가 있었다.
한숨을 돌린다.
다행스러운 역설
CC의 형편없는 코드가 나를 구했다.
각 인스턴스가 Bun → React → TUI 체인 때문에 엄청난 메모리를 소비하는 바람에 결국 메모리 압박으로 컴퓨터가 락업되었다. 요청이 계속 쌓이다 보니 결국 폭탄이 터지지 않고 자체 소화되어버린 것이다.
형편없고 부풀려진 코드가, Claude의 캐싱과 함께, 회계팀의 질문이 날아오기 전에 나를 구해줬다.
소프트웨어가 구리고 비대하다고 감사한 적은 이게 처음이자 마지막일 거다.
처음으로 돌아가기: 2월 초
2025년 초, 우리 회사에서 Cursor 접근 권한을 줬다. 나는 어마어마한 코드베이스를 리서치할 때마다 가벼이 썼다. 311M 토큰 이상을 사용했다.
2월이 되니 에이전트 워크플로우와 프로그래밍이 새로운 화두가 됐다.
기꺼이 받아들일 수 없었다. AI가 생성한 '슬롭'을 작성하고, 리뷰하고, 유지보수하고 싶지 않았다. 완전 자동화된 에이전트 프로그래밍 루프를 제안하는 RFC에 반대했다.
그런데 생각해보니, 이게 새로운 표준이라면, 새로운 메타라면, 새로운 패러다임이라면... 마스터하는 게 낫지 않을까?
뒤쳐지고 싶지 않았다.
CC(Claude Code) 계정 접근 권한을 요청했다. 대시보드를 열었다. API 가격표를 본다.
"토큰이 줄줄 새나네?"
마지못해 brew install --cask claude-code를 실행했다. 탐색해본다. 긍정적으로 생각해본다. 이제 ghostty + nvim + tmux를 CC와 조합해서 쓸 수 있다. VSCode 클론에 AI를 덧붙인 것 같은 불편함을 느낄 필요가 없다.
실험을 거쳐 잘 작동하는 유스케이스를 찾았다. 더 중요하게는, 거친 모서리들을 발견했다.
CC 실험으로 너무 많은 토큰을 썼다. 그래서 팀에게 CC 사용법에 대한 빠른 강좌를 해주기로 결정했다. 문서를 작성했고, 발표했고, 일주일을 정리했다.
ADHD 하이퍼포커스, 불안감, 그리고 반발심으로 무장해, 나는 자신에게 도움이 되는 도구들을 만들었다. 그리고 많은 걸 배웠다.
2월이 끝났을 때, $3800의 API 빌 뒤에 남은 건 이 괴물 같은 창조물이었다.