다시는 열어보지 않을 채팅 기록 속에서 당신의 가장 뛰어난 생각 중 얼마나 많은 것들이 썩어가고 있는가?
매일 나는 AI와 대화하며 수 시간을 보낸다. 우리는 레이스 컨디션을 디버깅하고, 아키텍처를 토론하며, 예외 케이스를 해결한다. 최근까지 이러한 통찰은 세션을 닫는 순간 사라져 버렸다. 지적 자본이 새어나가고 있었던 셈이다.
나에게는 다듬어진 결과물을 위한 플랫폼이 아니라, 작업이 일어나는 날 것 그대로를 포착할 시스템이 필요했다.
왜 하는가: 철학
라울 쿠타르와 “언컷(Uncut)”
이 블로그의 이름은 누벨바그 영화의 혁명을 일으킨 프랑스의 촬영감독 라울 쿠타르(Raoul Coutard, 1924-2016)의 이름을 땄다. 정규 영화 교육을 받지 않은 종군 사진기자 출신인 그는 당대의 모든 관습을 깨뜨렸다. 그는 핸드헬드 카메라와 자연광을 사용했으며, 단순함을 유지함으로써 기존 제작진보다 5배나 빠르게 작업했다.
쿠타르의 다큐멘터리적 리얼리즘은 이 블로그의 청사진이다. AI 보조 콘텐츠 제작은 전통적인 블로깅의 규칙을 깬다. 나는 포스트를 ‘쓰지’ 않는다. 대신 날 것 그대로의 세션을 포착한다. 기록은 편집하지 않는다. 쿠타르의 영화처럼, 목표는 작업의 현장감을 그대로 보여주는 것이다. 핸드헬드, 가용한 조명, 그리고 신속함이 그 핵심이다.
도구의 선택
나는 단순함과 속도라는 동일한 철학에 기반하여 기술 스택을 선택했다.
- 왜 Hugo인가: 정적 사이트 생성기이기 때문이다. 런타임도, 데이터베이스도 없으며 오직 파일만 존재한다. 마크다운 네이티브 방식이며 빌드 속도는 밀리초 단위다. 프레임워크의 오버헤드 없이 강력한 기능을 누릴 수 있다.
- 왜 Cloudflare Pages인가: 넉넉한 무료 플랜과 함께 글로벌 에지 배포를 제공한다. Wrangler CLI를 통해 Hugo와 통합되며, git push 시 자동으로 빌드를 트리거한다. 벤더 종속성이 없으며, 결과물은 표준 HTML일 뿐이다.
어떻게 하는가: 시스템
저장소의 분리
나는 인프라와 창의적 결과물을 분리하기 위해 두 개의 독립된 저장소를 운영한다.
- personal-blog-hosting: 인프라 (Hugo 설정, 테마, 배포).
- blog-content (서브모듈): 모든 포스트, 시드(Seed), 그리고 스킬.
왜 분리하는가? 콘텐츠는 일상적인 지식 관리를 위해 옵시디언 볼트(BrainFucked)에 보관된다. 인프라 변경 사항이 콘텐츠 히스토리를 오염시켜서는 안 되기 때문이다. 이러한 분리를 통해 동일한 콘텐츠를 서로 다른 프로젝트에서 마찰 없이 재사용할 수 있다.
콘텐츠 시드 시스템
무에서 유를 창조하는 대신, 나는 AI와의 대화에서 ‘시드(seed)‘를 수확한다.
- 프롬프트(Prompts): 결과를 만들어낸 효과적인 지시사항.
- 아이디어(Ideas): 코딩 도중 발생하는 날 것 그대로의 통찰.
- 실수(Misses): 실패, 버그, 그리고 얻은 교훈.
세션 도중 AI가 이러한 시드들을 식별하도록 지시함으로써, 생각이 증발하는 것을 방지한다.
무엇을 했는가: 구현
그 결과, 블로그가 나의 일상 업무로부터 말 그대로 스스로 구축되는 구조화된 작업 공간이 탄생했다.
blog-content/
├── seeds/
│ ├── prompts/ # 주요 AI 요청 사항
│ ├── ideas/ # 통찰 및 패턴
│ └── misses/ # 실패 및 학습 내용
├── drafts/ # 개발 중인 시드
└── published/ # 최종 확정된 포스트 (Hugo용)
이 포스트는 그 시스템의 첫 번째 테스트다. 나는 이 글을 ‘쓰기’ 위해 자리에 앉지 않았다. 블로그 명칭에 담긴 철학은 idea 시드에서, 기술 스택의 세부 사항은 prompt 시드에서 가져왔을 뿐이다.
이는 메타 재귀적이다. 시스템을 구축하는 과정이 시드를 생성했고, 그 시드가 자라나 이 포스트가 되었다.
다음 포스트에서는 ‘실수(misses)‘에 대해 깊이 파헤쳐 보겠다. 이 시스템을 제대로 작동하게 만든 것은 사실 수많은 실패와 기술적 막다른 길이었다.
