Skip to content

대용량 파일

VMark는 대부분의 마크다운 파일을 즉시 열지만, 매우 큰 파일은 응답성을 유지하기 위해 추가적인 주의가 필요합니다. 이 페이지에서는 VMark가 대용량 파일을 어떻게 처리하는지, 그리고 동작을 조정하는 방법을 설명합니다.

"대용량"의 기준

VMark는 파일을 열기 전에 크기에 따라 분류합니다:

크기분류동작
< 1 MB작음WYSIWYG(서식 있는 텍스트) 모드에서 즉시 열립니다.
1 MB – 5 MB기본적으로 소스 모드에서 열립니다 — 1초 미만. 상태 표시줄에서 "WYSIWYG으로 전환"을 제공합니다.
5 MB – 50 MB매우 큼먼저 확인 대화상자가 나타납니다. 소스 모드에서만 열립니다.
≥ 50 MB거부됨VMark가 파일 열기를 거부합니다. 대신 less, bat 또는 유사한 도구를 사용하세요.

크기는 파일을 읽지 않고 운영 체제를 통해 확인되므로, 결정이 빠르며 데이터를 미리 로드하지 않습니다.

대용량 파일에 소스 모드를 사용하는 이유

소스 모드는 뷰포트 가상화가 적용된 CodeMirror를 사용합니다 — 문서의 보이는 부분만 렌더링됩니다. WYSIWYG 모드는 Tiptap/ProseMirror를 사용하며, 문서의 모든 블록에 대해 DOM 노드를 만들어야 합니다. 1.4 MB / 약 2,250개 블록의 마크다운 파일에서 처음 열 때 약 15초가 소요됩니다. 소스 모드는 동일한 파일을 1초 이내에 엽니다.

병목은 파싱이 아니라 ProseMirror의 뷰 구성 단계입니다. 파싱을 메인 스레드 밖으로 이동시켜도 체감 대기 시간을 의미 있게 개선하지는 못합니다.

상태 표시줄 안내

  • WYSIWYG에서 대용량 파일 열기: 에디터가 마운트되는 동안 상태 표시줄 왼쪽에 "대용량 파일을 여는 중 (N MB)…" 라벨과 함께 무한 스피너가 표시됩니다. 에디터가 상호작용 가능해지면 사라집니다.
  • 자동으로 소스 모드에서 열린 파일: 상태 표시줄에 "소스 모드에서 열렸습니다 (대용량 파일)."WYSIWYG으로 전환 링크가 표시됩니다. 링크를 클릭하면 활성 탭이 WYSIWYG으로 전환됩니다. 파일을 닫고 다시 열면 소스 모드로 돌아갑니다 — 재정의는 세션별로 적용됩니다.

설정

설정 → 에디터 → 대용량 파일을 엽니다:

  • 1 MB 이상 파일을 자동으로 소스 모드에서 열기 (기본값: 켜짐) — 5 MB까지의 파일에 대해 더 긴 열기 시간을 감수하고 WYSIWYG을 선호한다면 끄세요.
  • 5 MB 이상 파일을 열기 전에 경고 (기본값: 켜짐) — 5 MB와 50 MB 사이의 파일에 대한 확인 대화상자를 건너뛰려면 끄세요. 이러한 파일은 여전히 소스 모드에서 열립니다.

50 MB의 강제 거부 한계는 사용자가 조정할 수 없습니다. 웹뷰는 메모리 부족 충돌의 위험 없이 임의로 큰 문자열을 안전하게 보유할 수 없습니다.

  • 매우 큰 파일을 WYSIWYG에서 계속 편집해야 한다면, 인덱스 문서에서 링크된 더 작은 파일들로 분할하는 것을 고려하세요. 마크다운은 더 작은 챕터들의 집합으로 잘 작동합니다.
  • 대용량 파일을 읽거나 검색만 해야 한다면, 줄 번호 표시기와 찾기(Mod + F)가 있는 소스 모드가 보통 가장 빠른 작업 흐름입니다.
  • 서식 > CJK 텍스트 서식과 같은 전체 문서 명령은 소스 모드 문서에서도 올바르게 실행됩니다.

엣지 케이스

  • 파일이 열린 상태에서 커집니다. VMark는 열 때의 크기를 기준으로 분류를 결정합니다. 편집 중에 2 MB로 커진 파일은 선택한 모드를 유지합니다.
  • 심볼릭 링크. 크기는 대상 파일을 반영하므로, 10 MB 파일에 대한 심볼릭 링크는 매우 큰 파일로 처리됩니다.
  • 빈 파일. 0바이트 파일은 작은 파일로 분류되어 WYSIWYG에서 열립니다.
  • 크기 확인과 읽기 사이에 파일이 사라짐. 일반적인 "파일을 찾을 수 없음" 오류가 표시되며, 추가 경고는 발생하지 않습니다.

알려진 제한 사항

  • 임계값은 바이트 크기이며, 이는 실제 비용(블록 수)에 대한 대리 지표입니다. 짧은 블록이 수천 개 있는 600 KB 파일은 긴 단락으로 구성된 1.2 MB 파일보다 느릴 수 있습니다. 기본값은 보수적으로 설정되어 있습니다.
  • 대용량 파일 이니셔티브의 C 단계(지연된 WYSIWYG 렌더링)는 아직 출시되지 않았습니다 — 상태는 dev-docs/plans/20260422-large-file-open-ux.md를 참조하세요.