개발 2026.07.05

ICEWriter v1.6 「신뢰」 — '되는 척'을 지우는 작업

AI로 책을 만드는 프로그램에 이번엔 기능을 더하지 않았다. 대신 '내 컴퓨터에서 실제로 작동한다'를 증명하는 일에 매달렸다.

이번엔 기능을 늘리지 않았다

ICEWriter는 내가 AI와 함께 만들고 있는 데스크톱 프로그램이다. 주제 하나만 넣으면 AI가 자료를 조사하고, 원고를 쓰고, 삽화를 그리고, PDF 책까지 조판한다. 지난 몇 달은 계속 기능을 붙이는 시간이었다.

이번 v1.6은 달랐다. 버전 이름을 「신뢰」로 붙였다. 새 기능은 거의 없다. 대신 "설치는 됐는데 조용히 안 되는" 상황을 없애는 데 매달렸다.

왜 '신뢰'였나

전체 소스를 처음부터 끝까지 다시 감사했다. 그러다 제일 겁나는 종류의 버그를 발견했다. 에러도 안 나고 로그도 멀쩡한데, 결과물만 틀린 것들.

  • 삽화가 엉뚱한 챕터에 박히는데, 파일은 존재하니 검사를 통과한다.
  • 브라우저가 없는 PC에서 조판이 조용히 다른 엔진으로 떨어져 표지가 달라진다.
  • AI가 아무 출력 없이 멈추면, 프로그램은 몇 시간이고 그대로 기다린다.

사용자는 아무것도 모른다. "되는 줄 알았는데 안 됨" — 이게 제품을 죽이는 실패다. 화려한 기능 하나보다, 조용한 오작동 하나를 지우는 게 급했다.

무엇을 했나

실행 경로를 하나로 합쳤다. '게이트·빌더·드라이버는 앱만 실행한다'는 원칙을 코드로 강제했다. 전에는 AI 에이전트가 제 판단으로 렌더를 다시 돌려 앱이 만든 결과를 덮어쓰곤 했다. 이제는 환경변수 잠금으로 그걸 막는다.

모의 테스트 하네스를 만들었다. 무한 대기, 응답 없음, 한도 초과 같은 고장을 가짜로 주입해서, 그 고장이 조용히 재발하지 않는지 자동으로 잡는다. 진짜 AI도 네트워크도 없이 몇 초 만에 돈다. 한 번 고친 버그가 다시 살아나는 걸 막는 그물이다.

첫 실행 온보딩 마법사를 붙였다. 프로그램을 처음 켜면 필요한 도구가 깔렸는지 확인하고, AI 연결을 점검하고, 마지막에 샘플 한 쪽을 그 자리에서 진짜로 렌더한다. "당신 컴퓨터에서 책이 실제로 만들어집니다"를 말이 아니라 PDF 한 장으로 보여준다.

하드코딩된 모델 이름을 뺐다. 코드에 박아둔 AI 모델 이름이 만료되면, 어느 날 전 사용자의 이미지 생성이 한꺼번에 죽는다. 설정에서 바꿀 수 있게 밖으로 꺼냈다.

배운 것

"완료했습니다"는 증거가 없으면 거짓말이다.

이건 AI와 일하면서 가장 자주 부딪히는 지점이다. AI는 실행해보지도 않고 "됐습니다"라고 말하는 버릇이 있다. 그래서 이번 작업 내내 규칙 하나를 붙들었다 — 주장하지 말고, 돌려서 보여줘라. 테스트 몇 개 통과, 빌드 성공, 실제 화면에서 확인. 그게 없으면 완료가 아니다.

온보딩의 1쪽 렌더 테스트가 그 철학의 압축판이다. 프로그램이 스스로 "작동합니다"라고 우기는 대신, 그 자리에서 진짜 결과물을 하나 만들어 눈앞에 놓는다. 소프트웨어에 신뢰를 심는다는 건 결국 이런 것 같다. 말이 아니라 증거.

다음은 v1.7 「콘텐츠 제어」다. 내가 가진 실제 자료 — 악보든 데이터든 내가 쓴 글이든 — 를 넣어 그걸로 책을 쓰게 하는 기능. 그건 다음 이야기로.

블로그 목록