CorTeX 문서CorTeX 열기
CorTeX 열기
전체 문서 보기

CorTeX의 LaTeX 컴파일이 빠르게 느껴지는 이유

로컬 컴파일, 패키지 미리 가져오기, 체크포인트, 그림 재사용이 편집 후 새 PDF를 보기까지의 시간을 줄이는 방식을 알아봅니다.

이 문서의 내용

LaTeX를 컴파일하려면 엔진, 문서 클래스, 패키지, 글꼴, PDF 뷰어가 필요합니다. CorTeX는 이미 끝난 작업을 되풀이하지 않아 편집 후 새 PDF를 보기까지의 시간을 줄입니다.

핵심은 콜드 컴파일웜 컴파일의 차이입니다. 콜드 컴파일에서는 도구와 파일을 새로 가져와야 할 수 있습니다. 웜 컴파일에서는 이미 끝난 준비 작업의 상당 부분을 재사용할 수 있습니다.

마지막 컴파일 뒤 바뀐 내용 예상되는 경로
새 브라우저 또는 캐시되지 않은 TeX 환경 엔진을 불러오고 필요한 TeX 파일 가져오기
같은 프로젝트의 일반 편집 준비된 엔진과 다운로드한 파일 재사용
준비된 체크포인트 뒤의 호환되는 편집 편집 근처에서 다시 시작해 완전한 PDF 생성
외부화된 그림은 그대로인 텍스트 편집 적격 TikZ 또는 pgfplots 결과 재사용
프리앰블, 레이블, 인용, 의존성, 프로필 변경 전체 컴파일로 전환

이 경로는 자동으로 선택됩니다. 속도를 위해 정확성을 포기하거나 논문의 두 번째 초안 버전을 유지할 필요가 없습니다.

임시 LaTeX 논문을 열고 첫 PDF를 기다린 뒤 문서 뒤쪽의 문장을 바꿔 보세요. 첫 컴파일과 그다음 갱신을 비교하면 차이를 볼 수 있습니다. 결과는 프로젝트, 브라우저, 기기, 캐시된 파일에 따라 달라집니다. 아래에서는 그 이유를 설명합니다.

짧은 용어 설명#

  • 엔진: 소스를 읽는 pdfLaTeX 같은 TeX 프로그램입니다.
  • TeX Live 스냅샷: 프로젝트가 사용하는 클래스, 패키지, 글꼴, 도구의 고정된 모음입니다.
  • 콜드 컴파일: 아직 엔진이나 TeX 파일을 가져와야 하는 컴파일입니다.
  • 웜 컴파일: 브라우저에 이미 준비된 엔진과 파일을 재사용할 수 있는 컴파일입니다.
  • 체크포인트: 이후 호환되는 편집이 다시 시작할 수 있도록 안전하게 저장한 엔진 상태입니다.

편집기 옆에서 실행되는 컴파일러#

일반적인 LaTeX 조판은 브라우저 안에서 실행됩니다. CorTeX는 wasmtex를 사용해 TeX 엔진을 최신 브라우저에서 실행할 수 있는 이식 가능한 바이너리 형식인 WebAssembly로 패키징합니다.

웜 컴파일에서 주 TeX 실행은 원격 서버로 업로드하고 컴파일한 뒤 다운로드하는 왕복 과정을 피합니다. 협업 변경은 공동 저자 사이를 이동할 수 있지만 조판을 위해 별도로 서버의 컴파일 결과를 기다릴 필요는 없습니다. 편집기와 컴파일러는 \input이나 \include로 불러오는 파일을 포함해 같은 브라우저 내 프로젝트 파일을 읽습니다.

연구자 입장에서는 일반 본문이나 수식 편집 뒤 전체 원고를 컴파일 서버에 먼저 업로드하지 않고 미리보기를 갱신할 수 있다는 뜻입니다.

첫 컴파일에서 재사용할 실행 환경을 준비합니다#

브라우저에는 TeX Live가 기본으로 설치되어 있지 않습니다. 콜드 컴파일 중 CorTeX는 선택한 TeX 엔진을 불러오고 문서가 쓰는 패키지, 글꼴, 형식 파일을 가져와야 합니다. 학회 템플릿은 한 페이지짜리 문서보다 더 많은 파일을 불러와야 하는 것이 자연스럽습니다.

이 파일은 변경되지 않는 TeX Live 스냅샷에서 가져옵니다. 특정 주소의 파일이 예기치 않게 바뀌지 않으므로 브라우저가 안전하게 캐시할 수 있고 프로젝트는 선택한 TeX 환경에 계속 연결됩니다.

프로젝트가 열려 있는 동안 CorTeX는 준비된 엔진을 계속 사용할 수 있습니다. 탭을 닫으면 엔진은 종료되지만 다운로드한 TeX 파일은 브라우저 캐시에 남을 수 있습니다. 브라우저 데이터를 지우거나 파일이 캐시에서 제거되거나 프로젝트의 TeX 환경을 바꾸면 이후 컴파일이 다시 콜드 컴파일이 될 수 있습니다.

프로젝트에 필요한 TeX 파일을 기억합니다#

브라우저가 빠진 TeX 파일을 가져올 때마다 엔진은 멈춰야 합니다. 파일을 하나씩 가져오면 조판 시간보다 네트워크 지연이 더 길 수 있습니다.

성공적으로 컴파일한 뒤 CorTeX는 프로젝트가 사용한 TeX Live 파일 이름을 기록합니다. 클래스, 패키지, 글꼴, 형식 파일이 포함될 수 있습니다. 이 기록에는 논문 본문이 없습니다. 프로젝트를 다시 열면 엔진이 각 파일을 하나씩 요청하기 전에 알려진 집합을 병렬로 가져올 수 있습니다.

CorTeX는 현재 컴파일에 필요한 파일을 계속 확인하면서 지난번에 사용한 파일을 미리 준비합니다. 지원되는 기본 템플릿은 시험된 목록으로 시작하므로 첫 열기부터 이점을 얻을 수 있습니다.

CorTeX는 도움이 될 때만 준비를 시작합니다. 활성 작업 공간이 나타날 때까지 기다리고, 탭이 숨겨져 있거나 데이터 절약 모드를 사용 중이거나 연결이 매우 느리면 불필요할 수 있는 사전 다운로드를 피합니다. 사용자가 요청한 컴파일이 언제나 우선합니다.

이 최적화는 패키지가 많은 학술지 템플릿을 다시 열 때 가장 눈에 띕니다. 병렬 준비를 통해 같은 파일을 네트워크 요청 하나씩 다시 발견하지 않습니다.

짧게 이어진 입력을 유용한 컴파일 하나로 모읍니다#

단어 하나를 입력하면 1초보다 짧은 시간에 변경이 여러 번 생깁니다. 글자마다 TeX를 실행하면 작업을 낭비하고 오래된 결과가 새 미리보기를 덮어쓸 수 있습니다.

CorTeX는 짧게 이어지는 편집을 모은 뒤 컴파일합니다. 더 새로운 요청이 진행 중인 컴파일을 앞지르면 이전 결과는 미리보기를 갱신할 수 없습니다. 마지막 성공 결과의 입력이 하나도 바뀌지 않았다면 같은 입력을 다시 컴파일하지 않고 해당 PDF를 유지할 수 있습니다.

편집기는 키 입력을 먼저 처리하고 소스 검사와 PDF 작업은 별도로 예약합니다. 따라서 컴파일이 편집기의 즉각적인 반응을 막지 않습니다.

체크포인트를 이용해 편집 위치 근처에서 재개합니다#

호환되는 pdfLaTeX 프로젝트에서는 성공한 컴파일 뒤 커서 근처에 체크포인트를 준비할 수 있습니다. 체크포인트는 TeX 엔진의 상태를 저장합니다.

다음 편집이 그 위치 뒤에서 일어나고 앞선 입력이 그대로라면 엔진이 해당 지점부터 다시 시작해 나머지를 조판할 수 있습니다. 검증하지 않은 페이지 조각을 이어 붙이는 것이 아니라 여전히 완전한 PDF를 만듭니다.

CorTeX는 성공한 컴파일 뒤 잠시 입력이 없을 때 체크포인트를 준비하여 그 비용이 다음 편집 직후의 컴파일에 들어가지 않게 합니다. 준비가 시작되지 않았다면 새 편집이 준비를 취소합니다.

안전할 때만 이 단축 경로를 사용합니다. 설정 명령, 레이블, 인용, 필수 파일, 주 문서, 엔진, 프로젝트 구조를 바꾸면 전체 컴파일이 필요할 수 있습니다. 일부 오래된 환경은 체크포인트를 지원하지 않습니다. 다시 시작해도 안전하다는 것을 CorTeX가 증명할 수 없으면 전체 컴파일을 실행합니다.

따라서 안정된 원고의 뒤쪽 편집은 가장 짧은 경로의 좋은 후보입니다. 프리앰블을 수정하거나 인용을 바꾸면 전체 경로를 사용하는 것이 정상입니다.

무거운 그림은 자체 결과를 유지할 수 있습니다#

TikZ와 pgfplots 그림은 컴파일 중 그래픽을 그리는 작은 프로그램입니다. 그림이 많은 논문에서는 다시 그리는 시간이 본문을 조판하는 시간보다 길 수 있습니다.

TikZ 외부화가 활성화되어 있고 안전하면 CorTeX가 그림을 별도 작업으로 컴파일합니다. 그다음 TikZ 자체 내용 검사를 통해 텍스트만 편집한 뒤 변경되지 않은 그림을 재사용합니다. 기기에 메모리가 충분하면 그림 작업 여러 개를 함께 실행할 수 있습니다.

모든 그림을 안전하게 분리할 수 있는 것은 아닙니다. 오버레이와 일부 사용자 정의 환경은 전체 문서 문맥이 필요합니다. CorTeX는 이런 경우와 그림 작업 실패 뒤에 전체 컴파일로 돌아갑니다.

일부 보조 도구는 여전히 서버를 사용합니다#

일부 참고문헌과 색인 도구는 브라우저에서 실행할 수 없습니다. 문서에 Biber나 Xindy가 필요하면 CorTeX는 해당 단계에 필요한 파일만 격리된 서비스로 보냅니다. 주 TeX 실행은 계속 로컬에서 이루어지며, CorTeX는 동일한 보조 작업을 재사용할 수 있습니다. 엔진 선택과 단계 확인 방법은 LaTeX 컴파일하고 미리 보기에 설명되어 있습니다.

이 제한된 보조 입력에는 참고문헌, 색인 또는 필요한 소스 데이터가 들어 있을 수 있습니다. 일반적인 브라우저 내 조판 경로의 예외이며, 문서가 요청하지 않은 보조 단계로 프로젝트 파일을 보내지는 않습니다.

빠른 경로도 올바른 PDF를 만들어야 합니다#

모든 최적화에는 전체 컴파일로 돌아가는 경로가 있습니다. 캐시된 파일은 TeX 환경별로 분리됩니다. CorTeX는 소스, 필수 파일, 엔진, 환경이 계속 일치할 때만 결과를 재사용합니다. 오래된 컴파일은 새 미리보기를 덮어쓸 수 없습니다. 정확성은 모든 빠른 경로의 요구 사항이지 속도와 맞바꾸는 대상이 아닙니다.

통제된 측정이 보여 주는 것#

2026년 9월 3일의 내부 앱 내 Worker 추적에서는 검증된 tl2026-20260826-4f5a814 프로필의 24페이지 논문을 사용했습니다. 호환되는 체크포인트 재시작은 해당 추적의 전체 컴파일러 시간의 약 10분의 1이었습니다. 기록에는 절대 시간을 재현하는 데 필요한 브라우저 버전, 기기 CPU와 메모리, 캐시 준비 상태가 보존되지 않았습니다. 따라서 이는 메커니즘의 근거이지 최종 사용자 벤치마크나 속도 약속이 아닙니다. 또한 페이지 로드나 첫 PDF 페이지 표시가 아니라 컴파일러 작업을 측정했습니다. 결과는 문서, 브라우저, 기기, 캐시, 네트워크에 따라 달라집니다.

CorTeX는 컴파일러 준비, PDF 생성, 첫 PDF 페이지 표시를 별도로 측정합니다. 빌드는 최초 작업 공간 다운로드에 포함되는 컴파일러 코드의 크기를 제한하므로 컴파일러 속도를 위해 편집기 열기 속도를 희생하지 않습니다.

작성 중에 체감할 수 있는 차이#

새 브라우저나 파일이 많은 프로젝트에서는 첫 컴파일에 시간이 걸릴 수 있습니다. 브라우저 컴파일은 사용자의 기기를 이용하므로 오래되었거나 메모리가 적은 컴퓨터에서는 큰 논문이 더 느릴 수 있습니다. CorTeX는 작은 기기에서 병렬 작업을 제한하고 단축 경로가 안전하지 않을 때 전체 컴파일을 사용합니다.

직접 경로를 비교할 수 있습니다. 임시 LaTeX 프로젝트를 열고 첫 PDF를 기다린 뒤 끝부분 문장 하나를 바꾸고 다음 컴파일을 살펴보세요. 그다음 프리앰블의 패키지를 바꾸고 전체 경로와 비교합니다. 시간은 환경마다 다르지만 콜드 컴파일과 웜 컴파일의 차이는 확인할 수 있을 것입니다.

설정, 레이블, 인용을 자주 바꾸면 전체 실행이 늘 수 있고 복잡한 그림을 많이 다시 만들 때도 마찬가지입니다. 실용적인 조언은 LaTeX 미리보기 빠르게 유지하기LaTeX 프로젝트를 여러 파일로 나누기를 참고하세요.

편집 후 컴파일 시간을 비교할 때는 설정, 필요한 소스 파일, 그림 중 무엇이 바뀌었는지 기록하세요. 이 정보가 있어야 시간을 의미 있게 비교하고 미리보기 속도 안내에서 다음 확인 사항을 찾을 수 있습니다.