클라이언트 런타임 번들로 문서 변환을 로컬에서 처리하는 설계
문서 변환용 로컬 툴체인 번들의 보안·운영 설계와 버전 고정, 격리 실행, 폴백, 자원 관리 기준을 정리한다.
2026-09-03 · 최초 발행 2026-09-02
ChatGPT 데스크톱의 macOS 캐시 폴더에서는 Python, Node.js, git, Poppler, LibreOffice 등을 담은 1.7GB 규모의 런타임 번들이 확인됐다. Codex 앱이 신규 ChatGPT 데스크톱으로 병합되는 과정에서, 완성 문서·시트·슬라이드 산출 기능이 서버 변환 호출이 아니라 로컬 도구 체인을 실행하는 형태로 구현되고 있음을 보여주는 사례다.
원문을 단말 밖으로 보내지 않으면 전송과 서버 저장 구간의 유출 경로는 줄어든다. 네트워크가 없는 상태에서도 변환을 수행할 수 있다. 대신 사용자 단말마다 독립된 실행 환경이 생기며, 그 안의 도구·취약점·캐시·업데이트·디스크 사용량이 모두 관리 범위에 들어온다.
로컬 번들은 무엇을 함께 관리하게 만드는가
번들에는 문서 변환에 실제로 필요한 도구만 넣고, 부수 의존성은 최소 구성으로 줄여야 한다. 동봉된 모든 구성 요소가 취약점 관리 대상이 되기 때문이다. 각 도구가 필요한 이유와 대체 가능 여부를 남겨두면, 이후 구성 요소를 추가하거나 제거할 때 근거가 된다.
도구 버전은 고정하고 해시로 검증한다. 시스템에 이미 설치된 같은 이름의 도구를 재사용하면 단말별 실행 결과가 달라질 수 있다. 버전 고정은 재현성을 위한 조치이며, 보안 패치 반영을 멈춘다는 뜻은 아니다. 패치 적용 주기는 별도 정책으로 둬야 한다.
문서 파서와 오피스 도구는 오래된 취약점의 단골 표적이다. 변환 도구는 별도 프로세스에서 실행하고, 접근 가능한 파일 경로와 네트워크를 제한하는 경계가 필요하다. 변환 과정에서 생기는 중간 파일은 한 위치에 모으고 작업 종료 시 폐기한다. 비정상 종료 뒤 남은 파일을 정리하는 경로도 있어야 한다. 캐시에 남은 원문 조각은 사후 유출 경로가 될 수 있다.
실패와 갱신을 로컬 처리 흐름에 포함하기
로컬 변환이 실패했을 때 서버 변환으로 넘길지, 사용자에게 알리고 중단할지는 문서 유형별로 정해야 한다. 서버 경유 폴백을 선택한다면 사용자에게 그 사실을 알려야 한다. 로컬 처리를 전제로 파일을 올린 사용자에게 서버 전송을 조용히 수행하면 신뢰 문제가 된다.
앱과 번들의 갱신을 함께 배포할지 분리할지도 설계 대상이다. 함께 묶으면 보안 패치가 앱 릴리스 주기에 종속된다. 갱신 실패 뒤 이전 번들로 되돌아갈 수 있어야 하며, 갱신 후 기존에 변환되던 문서가 실패하는 상황을 대비해야 한다.
결과 파일은 페이지 수, 텍스트 추출 가능 여부, 파일 크기처럼 최소한의 지표로 검증한다. 검증 실패를 성공으로 처리하면 빈 PDF처럼 사용자가 늦게 발견하는 실패가 남는다.
번들·캐시·임시 산출물을 합친 디스크 사용량에는 상한을 두고, 초과 시 오래된 항목부터 정리한다. 사용자가 사용량을 확인하고 정리할 수 있는 경로도 제공해야 한다. 보이지 않는 1.7GB는 단말 관리자의 조사 대상이 된다.
로컬 처리 대상을 정하는 기준
민감도가 높고 변환 규격이 안정적인 문서는 로컬 처리에 적합하다. PDF 텍스트 추출과 오피스 문서 변환이 대표적이다. 반면 대용량 미디어와 특수 포맷은 서버에 남길 수 있다. 단말 자원으로 감당하기 어려운 작업을 로컬로 밀어 넣으면 사용자 경험이 무너진다.
번들을 확정할 때는 도구별 라이선스와 배포 의무를 확인한다. 오픈소스 도구를 앱에 동봉하는 것은 재배포에 해당하므로 표기 의무가 따른다. 알려진 취약점 이력이 있는 도구는 별도의 격리 수준을 정한다.
디스크 여유 공간과 메모리 요구치를 명시하고, 요구치를 충족하지 못하는 단말에서 어떻게 동작할지도 정해야 한다. 저사양 단말 비중을 조사하면 서버 폴백의 필요성을 판단할 수 있다.
보안 패치는 즉시, 기능 갱신은 정기로 분리해 갱신 경로를 운영한다. 1.7GB 규모의 다운로드가 업무 시간에 대역폭을 점유하지 않도록 갱신 시점을 조정할 수 있어야 한다. 또한 네트워크 없이 가능한 기능과 불가능한 기능, 오프라인 상태의 결과 저장 위치와 동기화 시점을 문서화한다.
변환 실패 시 수집할 로그와 사용자에게 요청할 정보를 표준화하되, 로그에 문서 내용이 섞이지 않게 해야 한다. 진단 로그가 유출 경로가 되면 로컬 처리의 명분이 사라진다. 번들 도구 추가와 버전 상향은 승인 대상으로 등록하고, 동봉 오픈소스의 취약점 공지 감시와 대응 기한도 운영 항목으로 편성한다.
로컬 실행과 서버 변환의 선택 지점
| 구분 | 로컬 번들 실행 | 서버 변환 호출 |
|---|---|---|
| 데이터 유출 위험 | 낮음 | 전송·처리 구간 존재 |
| 단말 자원 부담 | 높음 | 없음 |
| 취약점 관리 대상 | 단말 전체 | 서버로 한정 |
| 오프라인 동작 | 가능 | 불가 |
| 처리 성능 편차 | 단말별 상이 | 균일 |
| 갱신 반영 속도 | 배포 주기 의존 | 즉시 |
로컬 번들은 원문이 단말을 떠나지 않아 전송 구간과 서버 저장 구간의 유출 경로가 없고, 네트워크 단절 상태에서도 변환할 수 있다. 서버 처리 비용도 사용량에 비례해 늘지 않는다. 그러나 1.7GB 규모의 실행 환경이 단말마다 생기고, 취약점 관리 대상은 사용자 수만큼 늘어난다. 저사양 단말에서는 처리 시간이 길어질 수 있으며, 동봉 도구의 보안 패치도 앱 배포 주기에 묶인다.
서버 변환은 취약점 관리 범위를 서버로 제한할 수 있고, 패치를 즉시 전면 적용할 수 있다. 단말 성능과 관계없이 균일한 처리 시간을 보장하며 앱 크기도 작아 배포와 갱신이 가볍다. 다만 원문이 네트워크를 거쳐 외부 인프라에 도달하므로 규제 산업에서는 도입 자체가 막히는 경우가 있고, 서버 장애나 네트워크 단절은 곧 기능 정지로 이어진다.
민감 문서와 오프라인 요구가 있는 구간은 로컬로, 대용량·특수 포맷과 즉시 패치가 중요한 구간은 서버로 나누는 이중 경로가 실무적인 배치다.
전량 번들 동봉은 설치 직후 모든 변환을 사용할 수 있고 첫 실행 지연이 없으며, 오프라인에서도 기능 누락이 생기지 않는다. 사용자 간 번들 구성이 같아 문제 재현도 쉽다. 대신 초기 설치 크기가 1.7GB 규모로 커져 배포 대역폭과 디스크를 크게 차지하고, 실제로 쓰지 않는 도구도 취약점 관리 대상이 된다.
필요할 때 내려받는 방식은 초기 설치를 가볍게 하고 실제 사용 도구만 단말에 남겨 관리 범위를 좁힌다. 도구별 개별 갱신도 가능하다. 하지만 처음 기능을 실행하는 순간 수백 MB 내려받기가 발생해 사용자 경험을 해칠 수 있고, 오프라인 상태에서는 미설치 도구가 필요한 작업이 실패한다. 단말마다 구성도 달라져 문제 재현이 어려워진다. 사용 빈도가 높은 핵심 도구는 동봉하고 드물게 쓰는 도구는 지연 내려받기로 두는 혼합 구성이 두 부담을 나눈다.
고정 버전 번들은 모든 단말에서 같은 도구 버전을 실행해 변환 결과를 재현할 수 있고, 문제 보고를 특정 버전으로 좁힐 수 있다. 사용자의 시스템 환경 변화도 앱 동작에 영향을 주지 않는다. 다만 시스템에 설치된 도구와 중복 저장되어 디스크가 이중으로 소모되고, 시스템 도구가 보안 패치를 받아도 번들은 별도 갱신을 기다려야 한다.
시스템 설치 도구를 재사용하면 중복 저장을 피하고 운영체제나 패키지 관리자의 보안 패치를 반영할 수 있으며 앱 크기도 작아진다. 반대로 단말별 버전 차이로 같은 문서의 변환 결과가 달라질 수 있다. 사용자가 도구를 제거하거나 갱신하면 앱 기능이 예고 없이 깨질 수 있고, 문제 재현도 사실상 불가능해진다. 재현성이 지원 비용을 좌우하는 제품에서는 디스크 중복을 감수하고 고정 버전을 택하는 편이 총비용에서 유리하다.
배포·보안·자원 관리로 이어지는 구조
버전 고정과 해시 검증은 형상 식별 및 배포 무결성 확보의 구조를 따른다. 번들 갱신 경로와 롤백은 릴리스 관리에서 요구되는 되돌림 조건에 대응한다.
격리 실행 경계와 임시 산출물 폐기는 처리 중 데이터의 노출면을 줄이는 통제다. 동봉 오픈소스의 취약점 공지를 감시하는 일은 소프트웨어 구성 요소 관리와 공급망 보안 활동에 해당한다.
디스크 사용량 상한과 단말 자원 요구치 산정은 용량 계획을 클라이언트 측에 적용하는 방식이다. 갱신 다운로드 시점을 조정하는 일은 네트워크 자원 사용을 시간적으로 분산하는 기법이기도 하다.
데스크톱 에이전트 배포가 향하는 곳
데스크톱 에이전트가 로컬 툴체인을 동봉하는 구성은 늘고, 앱 설치 크기는 기가바이트 단위로 커지는 방향이다. 동봉 오픈소스의 취약점 관리는 앱 벤더의 명시적 책임 범위로 요구되는 흐름도 이어진다.
민감 문서의 로컬 처리 보장은 규제 산업 도입 심사에서 확인할 항목으로 자리 잡는 방향이다. 핵심 도구는 동봉하고 나머지는 지연 내려받기로 두는 혼합 배포도 표준 구성으로 수렴하는 흐름이다.
문서가 서버를 떠나지 않게 하는 선택은 유출 위험을 줄이지만, 단말마다 실행 환경 전체를 관리 대상으로 만든다. 처리 대상 유형을 나누고, 버전 고정으로 재현성을 확보하며, 격리 실행과 임시 파일 폐기로 노출면을 좁히고, 결과 검증으로 조용한 실패를 막아야 한다. 동봉 오픈소스의 취약점은 앱 벤더가 아니라 도구 쪽 일정으로 공개되므로, 공지 감시와 패치 기한이 빠지면 로컬 처리의 보안 이점은 반대로 뒤집힐 수 있다.