EPILOGUE
델타의 속도로, 그리고 70일간 열려 있던 .git
www · 그리고 델타 · 약 4분
본문의 시계는 2026년 8월 초에서 멈췄다. 마지막으로 한 번만 5월로 돌아간다.
5월 23일 토요일 15:01, 포트폴리오 사이트 www.albertrim.com의 첫 커밋을 만들고 그날 안에 런칭했다. 프레임워크 없는 순수 HTML 단일 파일, DB 없음. 6개월간 만든 것들을 한 페이지에 정리한, 이 책의 축소판 같은 저장소다.
하루 만에 만들었다고 대충 만든 건 아니다. 같은 날 기획서가 아홉 번 갱신됐다. 16:33에는 히어로 카피를 "지금의 속도로"에서 "델타의 속도로"로 고쳤다. 얼마나 가졌느냐가 아니라 얼마나 달라졌느냐. 6개월의 기록에 어울리는 말은 그쪽이었다.
만든 사람이 팩트체크를 한다
런칭 당일 가장 많은 시간을 쓴 일은 코딩이 아니라 팩트체크였다. Claude가 쓴 내 포트폴리오 카피에 그럴듯한 거짓이 섞여 있었다. 보유하지도 않은 도메인을 보유했다고 쓰고, 어떤 프로젝트에 쓰인 AI 모델을 다른 회사 것으로 적고, 아직 아닌 것에 production 딱지를 붙였다.
기획서 changelog에는 "보유 도메인 표기 삭제 (사실 아님)" 같은 정정 기록이 줄줄이 남았다. 내가 만든 서비스의 소개문을, 만든 내가 검증해야 했다. AI와 일한 6개월이 이 한 장면에 있다.
3주 뒤인 6월 14일에는 사이트에 한/영 토글을 붙였다. 20:05에 출시했고, 20:07에 첫 버그를, 21:58에 두 번째 버그를 고쳤다. 같은 커밋에서 AI 지침 문서에 "양국어 동시 업데이트 — NON-NEGOTIABLE"이라는 규칙을 적어 넣었다. 두 시간 사이에 실수 두 번, 규칙 하나. 사고가 규칙으로 남는 순서는 이 작은 저장소에서도 똑같았다.
70일간 열려 있던 문
성취담으로 끝낼 수 없는 이유가 있다. 8월 1일 보안 점검 커밋의 원문이다. "웹루트가 저장소 루트라 .git 전체와 내부 문서가 그대로 서빙되고 있었음 (https://albertrim.com/.git/config 200 확인)".
5월 23일 런칭부터 8월 1일까지 약 70일간, 이 사이트의 .git 전체와 기획서, AI 지침 문서가 인터넷에 그대로 열려 있었다. "정적 사이트니까"라고 넘겼다. 25년을 해도 이런다.
같은 커밋에서 배포 파이프라인의 타임아웃이 exit 0으로 — 실패가 초록불로 — 넘어가던 문제까지 고쳤다. 책 전체에서 조용한 실패를 그렇게 사냥해 놓고, 내 이름을 걸고 만든 포트폴리오 사이트의 문은 70일간 열어 두고 있었다.
8월 1일에는 나머지도 같이 손봤다. 초기 기획본이라 지금과 어긋난다며 기획서를 삭제했고, 2.4MB짜리 PNG를 194KB WebP로 바꿨고, 소개 이미지의 "20년"을 "25년"으로 고쳤고, 영문 모드에서 스크린리더가 한글을 읽던 aria-label 일곱 개를 손봤다. nginx 설정을 고칠 때는 깨진 설정 파일을 일부러 넣어 원본 복원과 exit 1까지 확인했다. 그 검증 방법을 커밋 메시지 말미에 남겼다. 무엇을 했는가만이 아니라 어떻게 검증했는가까지 적으면, 저장소는 그대로 운영 기록이 된다.
결과물이 말하게 한다
이 저장소의 커밋 트레일러에는 6개월의 모델 세대교체가 그대로 찍혀 있다. 6월 14일에는 푸터의 "Made with Claude Code." 문구를 지웠다. 무엇으로 만들었는지는 결국 중요하지 않아서다. 방문자에게 중요한 것은 사이트가 정확한가, 빠른가, 열려 있는가다. 이 책도 같은 기준으로 읽혔기를 바란다. AI로 만들었다는 사실이 아니라, 무엇이 만들어졌고 어디서 넘어졌고 무엇이 남았는가로.
델타의 속도로. 다음 6개월의 기록은 또 다를 것이다. 시작의 비용이 떨어진 것은 나에게만이 아니다. 무엇을 커밋할지 모르겠다면 1월의 나를 베끼면 된다. 코드가 아니어도 된다 — 내 첫 커밋은 맡고 있던 시스템의 ERD 정리였다. 첫 커밋은 이 책을 덮는 오늘 밤이어도 된다.