ICEPDF — 아크로벳을 닮은 PDF 에디터, AI와 0에서 1.0까지 2026.06.12

AGPL을 이해하고 GitHub에 공개하기까지 — ICEPDF v1.1.0 (마지막)

mupdf의 AGPL 전염성을 이해하고, 남의 파일을 지운 깨끗한 히스토리로 오픈소스 공개. 후원 탭과 v1.0의 최종 모습, 그리고 회고.

ICEPDF를 v1.0을 거쳐 v1.1.0으로 마무리하고 GitHub에 공개했다. 마지막 단계에서 가장 많이 배운 건 코드가 아니라 라이선스였다.

저장소: github.com/icenovel-rgb/icepdf

라이선스 — AGPL이라는 전염성

공개하려고 보니 핵심 엔진 mupdf.js가 AGPL-3.0이었다. 라이선스를 요리 레시피에 비유하면 이렇다.

  • MIT — "맘대로 쓰세요." 원작자 이름만 남기면 됨. (kordoc, Electron, React)
  • Apache-2.0 — 관대하지만 특허 방어 조항이 붙음. (pdfjs, tesseract.js)
  • AGPL-3.0 — 가장 강한 카피레프트. "이 레시피로 만든 요리를 남에게 내놓으면, 요리의 레시피 전체를 똑같이 공개해야 한다." 게다가 웹서비스로만 제공해도 소스 공개 의무가 생긴다.

즉 mupdf를 품은 ICEPDF는 통째로 AGPL로 공개해야 했다. 비공개·상업화하려면 별도 상용 라이선스가 필요하다. 마침 "소스를 다 공개해도 괜찮다"는 생각이었으니, 깃 공개가 오히려 그 의무를 자연스럽게 채워줬다.

공개 전 정리한 것:

  • 테스트에 썼던 남의 PDF(잡지·전자책)를 저장소에서 제거 — 과거 커밋에도 안 남도록 깨끗한 히스토리로 새로 시작
  • LICENSE(AGPL-3.0 전문) + THIRD_PARTY-NOTICES.md(모든 라이브러리 출처·라이선스)
  • 내 원저작물(앱 코드 전체, 아이콘)과 빌려온 라이브러리를 명확히 구분해 고지

후원 탭

마지막으로, 도움이 됐다면 커피 한 잔으로 응원할 수 있게 메뉴와 툴바에 후원 탭을 넣었다. 누르면 Buy Me a Coffee 링크와 QR이 뜬다.

후원 모달 — Buy Me a Coffee

v1.0.0의 최종 모습

  • 보기: 스크롤 / 그리드(2배 확대) / 슬라이드 / 한쪽·두쪽(표지 오른쪽) · 폭·쪽 맞춤 · 손도구 · 전체화면
  • 편집: 텍스트 선택·복사 / 각진 형광펜·지우개 / 이미지 삽입·이동·회전·반전 / 페이지 삽입·삭제 / 책갈피
  • OCR: 페이지 위 선택 가능한 텍스트 레이어(현재/범위/전체)
  • 내보내기: 한글(.hwpx) · Markdown · 이미지(폴더)
  • 열기: 파일 연결·드래그드롭, 단일 설치파일

회고

AI(클로드)와 함께 하루 남짓한 작업으로, 머릿속 요구사항을 실제 설치 가능한 프로그램으로, 그리고 공개 가능한 오픈소스로 만들었다. 인상 깊었던 건 두 가지다.

하나, 검증을 코드로 했다는 것. "될 것 같다" 대신 매번 테스트를 돌려 증거로 확인했다. 둘, 안 되는 건 정직하게 뺐다는 것. 한글 레이아웃 유지처럼 환경상 신뢰성을 보장 못 하는 기능은 억지로 끌고 가지 않고 더 확실한 대안(이미지 내보내기)으로 대체하고, 사용자에게 한계를 미리 안내했다.

도구는 결국 쓰면서 자란다. ICEPDF도 그렇게 0에서 1.0이 됐다.

ICEPDF — 아크로벳을 닮은 PDF 에디터, AI와 0에서 1.0까지 프로젝트로