ICEFiction 개발기 ②: 다른 앱에서도 열리는 원고, 자료를 스스로 읽는 AI, 그리고 라이트 모드
첫 설치본 이후의 업데이트. 마크다운 호환성, AI가 자료 폴더를 직접 읽기, 통합 라이트/다크와 집중 모드, codex 연결과 앱 내 PDF, 그리고 GitHub 공개까지.
첫 개발기에서 "0에서 Windows 설치본까지"를 적었다. 그 뒤로 실제로 원고를 써 보면서 부딪힌 것들을 하나씩 고쳤다. 이번 글은 그 다음 이야기 — 호환성, 자료를 스스로 읽는 AI, 그리고 눈에 편한 화면까지.

원고가 다른 프로그램에서도 열리게
처음엔 이미지를 옵시디언 방식(![[경로]])으로, 그것도 프로젝트 루트 기준으로 저장했다. 앱 안에서는 잘 보였지만 VS Code·GitHub·타이포라 같은 표준 뷰어에서는 이미지가 아예 안 떴다. 원고를 다른 데로 가져가면 깨지는 셈이다.
그래서 이미지 삽입을 표준 마크다운 로 바꿨다. 어디서 열어도 이미지가 뜬다. 기존 원고를 위해서는 옛 링크를 한 번에 변환하는 도구도 넣었다(변환 전 자동 백업). "폴더가 곧 프로젝트, 다른 컴퓨터에서 그대로 열린다"는 원칙을 이미지까지 지키게 된 셈이다.
AI가 자료 폴더를 스스로 읽는다
가장 크게 바뀐 부분이다. 처음엔 AI에게 자료를 하나하나 첨부해야 했는데, 그게 아니라 자료 폴더에 넣어둔 PDF·메모를 AI가 매 대화마다 직접 훑어 읽도록 했다. 조사 노트, 설정 자료를 폴더에 두기만 하면 AI가 근거로 삼는다. 토큰이 폭발하지 않게 예산 한도와 on/off 토글을 뒀다.
여기에 더해:
- 이미지·PDF 첨부: PDF는 텍스트를 추출해서, 이미지는 그대로(vision) AI에게 보낸다.
- 캐릭터 별칭 인식: "그", 성만, 애칭으로 불러도 AI가 해당 인물 시트를 자동으로 참고한다.
- "AI에게 보낸 내용 보기": AI가 실제로 무엇을(원고·설정·자료까지) 받았는지 그대로 확인한다. "정말 내 작품을 보고 있나?"라는 의심을 눈으로 해소하는 장치다.
통합 라이트/다크 모드, 그리고 집중 모드
원래 이 앱은 "도구창은 어두운 톤, 원고 종이만 밝게"라는 두 겹 설계였다. 쓰다 보니 밝은 화면을 원할 때가 있어 앱 전체가 밝아지는 라이트/다크 모드를 넣었다(워드·노션처럼). 색은 즉흥적으로 넣지 않고 디자인 토큰으로 정리해, 어느 모드에서도 대비가 유지되게 했다.

집중 모드도 넣었다. 좌우 패널을 접어(Ctrl+\\) 원고만 화면 전체에 두고 쓸 수 있다. 글만 쓰고 싶을 때를 위한 것이다. 그 외 구분선·마크다운 강조색이 종이 배경에 묻히던 문제, 드래그 오버레이가 창을 덮고 안 사라지던 버그도 잡았다.
codex 연결, 그리고 앱 안에서 PDF 보기
AI 조수는 로컬 CLI도 붙는다. 기존 claude에 더해 codex(GPT) CLI를 연결했다. 프로바이더와 모델을 모두 드롭다운으로 고르고, codex 모델 목록은 로컬 캐시에서 자동으로 불러온다.
자료로 넣은 PDF는 앱 안에서 바로 열어 본다(Chromium 내장 뷰어). 처음엔 인라인 렌더가 안 잡혀서, 별도 뷰어 창으로 여는 방식으로 바꿨다.
설치·이식·공개
- 설치할 때 바탕화면 바로가기를 물어본다 — 체크박스로 선택. (NSIS 커스텀 페이지)
- macOS 이식 준비 — 코드는 이미 크로스플랫폼이라, 맥에서
npm run dist:mac한 줄로 dmg가 나오게 설정을 맞췄다. - GitHub에 올렸다 — 소스를 저장소로 관리하기 시작했다.
검증
기능을 하나 넣을 때마다 테스트로 못을 박았다. 지금은 유닛과 E2E(실제 Electron 창을 띄워 검증)를 합쳐 71개가 통과한다. 컴파일만으로는 못 잡는 런타임 버그(드롭 오버레이, 라이트 모드 색 대비, PDF 창 열림 등)를 전부 실동작으로 확인한다. 현재 버전은 0.4.0.
만들면서 다시 확인한 건, 결국 도구는 믿을 수 있어야 쓴다는 것이다. 원고가 다른 데서도 열리고, AI가 무엇을 보는지 눈에 보이고, 실행해서 확인한 것만 "됐다"고 말하는 것. 화면 두 장은 같은 원고를 어두운 톤과 밝은 톤으로 띄운 모습이다. 다음엔 위키링크와 검색, 그리고 맥 빌드를 실제로 돌려볼 차례다.