’브라우저에서 작동한다’는 표현은 유용한 장점이지만 그 자체로 완전한 개인정보 보호 성명은 아닙니다. 브라우저는 파일을 업로드하지 않고 읽을 수 있지만, 문서를 미리보기하는 순간 수십 개의 원격 이미지를 요청할 수도 있습니다.
md2pdf는 백엔드 서버가 없는 정적 웹 애플리케이션입니다. 마크다운 파싱, 보안 살균, 목차 생성, 미리보기, 인쇄 및 도서 PDF 레이아웃이 모두 사용자의 기기에서 실행됩니다. 이는 외부 변환 서버로의 업로드 단계를 완전히 없애주지만, 문서의 모든 네트워크 요청을 차단하는 것은 아닙니다.
변환 프로세스 전반은 GitHub README를 PDF로 변환하는 방법을 참조하시고, 다중 챕터 도서 제작은 다중 파일 마크다운 도서 제작을 확인하십시오.
여기서 ’브라우저 단독(Browser-Only)’이 의미하는 바
md2pdf에서 브라우저 단독이란 제품 내에 서버 측 렌더러가 없음을 뜻합니다. 사이트는 정적 HTML, CSS, 자바스크립트로 구성되어 있습니다. 마크다운을 붙여넣으면 텍스트는 브라우저 탭의 메모리에만 머뭅니다. 파일을 업로드하면 브라우저의 File API를 통해 로컬에서 읽으며 서버로 전송하지 않습니다.
하지만 이것이 페이지가 완전히 오프라인 상태임을 뜻하지는 않습니다. 초기 로딩 시 정적 자산을 다운로드하며, GitHub README를 가져올 때 공개 API 요청이 발생합니다.
우리의 약속은 명확하고 투명합니다. 사용자의 마크다운은 LadeStack 서버로 업로드되지 않으며, 사용자 계정이나 서버 측 문서 보관소도 존재하지 않습니다.
단계별 변환 파이프라인
단일 문서는 다음 순서로 처리됩니다:
source -> parse -> resolve -> render -> sanitize -> preview -> print
- 소스 읽기. 붙여넣은 텍스트, 로컬 파일, 또는 GitHub 공개 README를 읽습니다.
- 파싱. markdown-it이 표, 작업 목록, 코드 등 GFM 문법을 분석합니다.
- 경로 해결. GitHub 문서의 상대 이미지 및 링크를 원격 원본 주소로 변환합니다.
- 렌더링. 파싱된 토큰을 HTML로 변환합니다.
- 보안 살균. DOMPurify가 위험한 태그(
script,iframe등)를 철저히 제거합니다. - 미리보기. 안전한 HTML을 화면에 삽입하고 섹션 ID와 목차를 구성합니다.
- 출력. 브라우저 인쇄 대화상자를 호출하거나 pdf-lib을 통해 ZIP으로 내보냅니다.
소스를 불러온 이후의 모든 변환 과정은 사용자의 기기 내부에서 완료됩니다.
브라우저 외부로 전송되는 데이터
로컬 파일이나 붙여넣은 텍스트의 경우, md2pdf 자체가 문서 내용을 외부로 전송하는 일은 결코 없습니다. 수신할 서버 API 자체가 존재하지 않기 때문입니다.
일반적인 이용 시 발생하는 네트워크 요청:
- 사이트 자산. 페이지 렌더링에 필요한 스타일, 폰트, 스크립트 요청.
- GitHub 공개 불러오기. 지정한 공개 저장소의 기본 브랜치와 README를 가져오는 익명 요청.
- 문서 내부의 원격 이미지. 마크다운 본문에 외부 이미지 링크가 포함된 경우 브라우저가 이를 화면에 표시하기 위해 해당 호스트로 요청을 보냅니다.
예를 들어 본문에 가 포함되어 있다면, 텍스트 자체는 로컬에 머물더라도 이미지 다운로드 요청은 외부 네트워크로 전달됩니다.
일반 하이퍼링크는 클릭 전까지 요청을 발생시키지 않지만, 이미지는 렌더링 시점에 즉시 다운로드됩니다.
로컬 파일 및 붙여넣은 마크다운
로컬 작업 방식은 가장 안전한 격리 환경을 제공합니다:
- 붙여넣기. 원격 이미지가 없다면 텍스트는 탭 밖으로 나가지 않습니다.
- 파일 업로드. 2MB 한도 내에서 브라우저 메모리로 읽히며 서버로 전송되지 않습니다.
- 샘플 불러오기. 사이트에 내장된 정적 데이터를 사용하므로 추가 네트워크 통신이 없습니다.
로컬 파일의 상대 경로 이미지는 기준 저장소가 없으므로 로드되지 않습니다. 절대 URL을 사용하거나 대체 아이콘 상태를 수용해야 합니다.
완벽한 오프라인 출력이 필요하다면 문서 내의 외부 이미지 링크를 미리 제거하십시오.
원격 이미지와 링크는 여전히 네트워크 요청을 발생시킵니다
클라이언트 사이드 처리는 문서 본문 텍스트가 외부로 유출되는 것을 방지하지만, 문서가 참조하는 원격 자원까지 자동으로 차단하지는 않습니다.
다음 예시를 확인하십시오:

See the [operations guide](https://example.test/ops).
GitHub 저장소 문서의 경우 상대 경로는 GitHub의 Raw 콘텐츠 호스트로 자동 변환됩니다. 붙여넣은 문서의 절대 URL은 해당 호스트로 직접 요청됩니다.
기밀 문서를 내보내기 전에 다음 항목을 검색하십시오:
http://및https://이미지 링크- HTML
<img>태그 - 외부 스타일시트나 웹폰트 링크
- 별도 네트워크 통신을 유발하지 않는 데이터 URI 이미지
DOMPurify는 위험한 스크립트를 제거하지만 정상적인 이미지는 문서의 일부로 유지합니다.
GitHub 연동 한도 및 장애 대응
GitHub 연동은 비인증 공개 읽기 방식으로 동작하며 안전한 한도가 적용됩니다:
- API 호출 15초 타임아웃
- 챕터 콘텐츠 수집 20초 타임아웃
- 저장소 구조 탐색 25초 예산
- API 호출 한도 초과 시 원시 파일 직접 요청 전환
- 이미지 로드 실패 시 전체 문서 중단 방지
실용적인 개인정보 보호 체크리스트
민감한 내부 문서를 PDF로 변환하기 전 확인하십시오:
- 사내 인트라넷 전용 이미지 URL이 포함되어 외부 접근 로그를 남기지 않는지 확인.
- 공개 저장소 URL을 정확히 입력했는지 점검.
- 문서 본문에 비밀번호, API 키 등 인증 정보가 없는지 확인.
- 인쇄 대화상자에서 최종 출력 레이아웃을 확인.
- 외부 서비스에 문서를 전송하지 않고 브라우저 내에서 안전하게 생성되었는지 점검.
테마별 인쇄 스타일에 대한 안내는 Clean vs Business vs Academic vs Dark를 참고하십시오.
나만의 README PDF 만들기
무료이고 로그인이 필요 없으며, 모든 처리가 클라이언트에서 이루어집니다.