자주 묻는 질문

BrewMyPDF 가 무엇을 하고, 얼마가 들고, 어디서 멈추는지에 대한 짧은 답입니다. 아래 한도는 실제로 돌고 있는 코드에서 읽어 온 값이라, 서비스가 실제로 적용하는 수치입니다.

시작하기 전에

BrewMyPDF 는 무엇인가요?
템플릿을 한 번 만들어 두고, 거기에 데이터를 넣어 PDF 를 받는 서비스입니다. 편집기에서 디자인한 다음 코드에서 REST API 로 부르거나, AI 도구가 MCP 로 부르게 할 수 있습니다. 같은 서식을 데이터만 바꿔 여러 번 만드는 문서 — 청구서·영수증·증명서·리포트·라벨 — 를 위해 만들었습니다.
무료로 얼마나 쓸 수 있나요?
Free 플랜은 카드 등록 없이 월 50건, 저장 템플릿 3개입니다. 그 외에는 편집기·API·MCP·배치까지 유료 플랜과 똑같이 동작합니다. Free 에는 하루 10건 상한도 함께 있어, 잘못 도는 스크립트가 한 달치를 하루 오후에 다 쓰는 일은 생기지 않습니다.
가입하지 않고 써볼 수 있나요?
계정이 필요합니다. 편집기·템플릿 저장·API 가 모두 로그인 뒤에 있어, 로그인 없이 써 보는 공간은 따로 없습니다. 다만 가입은 무료이고 카드도 요구하지 않으며, Free 플랜만으로 템플릿을 만들어 PDF 까지 뽑아 볼 수 있습니다 — 써 보는 데 드는 것은 메일 주소 하나입니다.

만들기와 편집기

어떤 용지 크기를 쓸 수 있나요?
A4 794×1123 · A5 559×794 · LETTER 816×1056 · LEGAL 816×1344 (세로 방향, 가로×세로 픽셀). 가로 방향은 두 값이 바뀝니다. 편집기가 픽셀 캔버스라 96 DPI 기준 픽셀로 표시합니다 — A4 는 어디서 열어도 같은 크기라, 화면에서 놓은 위치가 그대로 인쇄됩니다.
여백·머리말·꼬리말은 어디서 바꾸나요?
오른쪽 패널의 페이지 항목에 있습니다. 무엇을 선택하고 있든 항상 보입니다 — 하나의 요소가 아니라 모든 쪽에 걸리는 설정이기 때문입니다. 여백, 머리말, 꼬리말, 용지 크기, 방향이 모두 거기 있습니다. 머리말과 꼬리말은 모든 쪽에 반복되고, 본문이 그 사이로 흐릅니다.
표에 행을 몇 개까지 넣을 수 있나요?
렌더링 한 번에 그려지는 행은 모두 합해 2,000행까지입니다. 표 하나는 그 표만으로 500행에서 멈추고, 표가 여럿이면 2,000행을 함께 나눠 씁니다 — 먼저 바닥나는 쪽에서 행이 잘립니다. 그래서 500행짜리 표 4개면 예산을 다 쓰고, 그 뒤에 오는 표는 한 줄도 안 나옵니다. 새 쪽을 여는 반복 블록은 100벌짜리 별개 예산이라 행을 깎지 않습니다. 넘는 행은 잘리고 작업에 절단 경고가 남습니다 — 다 들어갔다고 가정하지 말고 작업의 경고를 확인하십시오. 문서 하나에 그려지는 요소 수 상한 20,000개는 성격이 다릅니다. 이쪽은 줄이지 않고 렌더가 실패합니다. 행 하나가 복잡하면(열이 아주 많으면) 2,000행보다 훨씬 앞에서 이 상한에 닿습니다.
이미지 크기 제한이 있나요?
템플릿 안에 넣는 이미지는 320KB, 페이지 배경으로 쓰는 PDF·PNG 는 2MB 까지입니다. 넘으면 렌더할 때가 아니라 업로드할 때 거부되므로, 운영 중이 아니라 편집하는 동안 알게 됩니다.
템플릿 하나가 얼마나 커질 수 있나요?
저장되는 템플릿 문서(JSON)는 1MB 까지이고, 넣은 이미지가 여기에 포함됩니다 — 편집기가 이미지를 따로 저장하지 않고 base64 로 문서 안에 심기 때문입니다. base64 는 원본보다 약 1/3 크므로, 상한(320KB)에 가까운 이미지 두 장이면 이미 상당 부분을 씁니다. 포함되지 않는 것은 렌더할 때 보내는 데이터입니다. 공간이 모자라면 이미지를 줄이거나 작게 하고, 반복되는 내용은 반복 영역으로 옮기십시오.
편집 중인 내용은 자동 저장되나요?
자동 저장하지 않습니다 — 저장을 눌러야 저장됩니다. 의도한 동작입니다. 저장할 때마다 직전 상태가 버전으로 남는데, 자동 저장을 하면 정작 돌아가고 싶은 버전이 수백 개의 자동 저장 사이에 묻힙니다. 대가는 분명하니 그렇게 다루십시오 — 저장하지 않은 채 탭을 닫으면 그 작업은 사라집니다.

API 와 MCP

API 인증은 어떻게 하나요?
콘솔에서 API 키를 만들어 `Authorization: Bearer <api_key>` 로 보냅니다. 키는 만들 때 한 번만 보여 줍니다 — 저장하는 것은 해시뿐이라 다시 보여 드릴 수 없습니다. 잃어버리면 지우고 새로 만드십시오. MCP 도 같은 키를 씁니다.
요청 속도 제한이 있나요?
세 축으로 있습니다 — API 키당 분 120회, 계정당 300회, 출발지 IP 당 300회. 넘으면 HTTP 429 와 함께 얼마나 기다려야 하는지 `retry-after` 헤더로 알려 드립니다. 이것은 월 사용량과 별개입니다 — 429 는 기다리면 풀리지만, 소진된 월 한도는 기다려도 풀리지 않습니다.
요청 본문 크기 제한은 얼마인가요?
10MB 까지입니다. 넘으면 처리 전에 HTTP 413 이 돌아갑니다. 정말로 그만큼 크다면 대개 둘로 나눠야 할 배치이거나, 매 요청에 이미지를 끼워 넣은 경우입니다 — 이미지는 자산으로 한 번 올려 두고 템플릿에서 참조하십시오.
한 번에 여러 개를 만들 수 있나요?
됩니다. 배치 한 번에 각각의 PDF 로 50건까지, 하나로 합치는 경우 20건까지입니다. 배치는 시작 전에 남은 사용량과 통째로 대조합니다 — 모자라면 하나도 실행하지 않습니다. 반쯤 처리된 배치는 재시도도 환불도 애매하기 때문입니다.
동기와 비동기는 언제 나눠 쓰나요?
문서 하나를 만들고 그 응답으로 바로 파일을 받아야 하면 동기입니다 — 결제 직후 영수증, 예약 직후 티켓 같은 것. 문서가 무겁거나, 배치를 보내거나, 부르는 쪽이 기다릴 수 없으면 비동기입니다 — 작업 ID 를 즉시 받고, 이후 조회하거나 웹훅으로 완료를 받습니다.

결제와 해지

한도를 넘으면 어떻게 되나요?
한도가 초기화되거나 플랜을 올릴 때까지 새 렌더가 거부됩니다. 이미 만든 것은 지워지거나 가려지지 않습니다. 거부는 빈 PDF 가 아니라 오류로 돌아가므로 연동한 쪽에서 구분할 수 있습니다. 현재 사용량은 구독 화면과 API 양쪽에서 볼 수 있어, 벽에 부딪히고 나서 아는 대신 다가오는 것을 지켜볼 수 있습니다.
어떻게 해지하나요?
구독 화면에서 Manage subscription 을 누르면 결제 대행사의 관리 페이지로 이동합니다. 해지하면 다음 청구가 중단되고, 이미 결제한 기간이 끝날 때까지는 유료 플랜을 그대로 쓰다가 Free 로 내려갑니다. 템플릿은 남습니다 — Free 계정도 계속 동작하고, 한도만 Free 기준이 됩니다.
환불되나요?
결제일로부터 15일 이내이고, 그 결제 이후 서비스를 이용한 기록이 없다면 환불됩니다. 여기서 “이용”이란 그 결제 이후 파일을 하나라도 만들었거나 템플릿을 하나라도 만든 경우이며, 나중에 삭제했더라도 이용한 것으로 봅니다. 요건을 충족하면 결제 대행사가 부과한 결제 수수료를 제외한 금액을 10 영업일 이내에 최초 결제수단으로 돌려드립니다. 문의하기로 요청해 주십시오.

결과물과 데이터

만든 PDF 는 얼마나 보관되나요?
내려받기 링크는 서명된 단기 링크입니다 — 기본 10분, 더 길게 요청해도 최대 24시간입니다. 저장된 파일 자체는 7일 주기로 정리됩니다. BrewMyPDF 는 문서를 만드는 곳이지 보관하는 곳이 아니라고 보시고, 남겨야 할 것은 내려받아 두십시오.
제가 보낸 데이터는 저장되나요?
성공하면 렌더가 끝나는 즉시 요청 데이터를 지웁니다. 실패한 경우에만 재실행할 수 있도록 24시간 보관한 뒤 지웁니다. 이 시간을 두는 이유는, 예전에 실패하는 순간 바로 지웠더니 재실행이 원리적으로 불가능했기 때문입니다 — 작업은 있는데 입력이 이미 없었습니다.
데이터는 어디에 저장되나요?
Cloudflare 네트워크에 저장됩니다. Premium · Business 플랜에서는 저장 파일이 EU 관할로 고정되어, 렌더 결과와 요청 데이터가 EU 안에 머무릅니다. 계정 정보는 두 경우 모두 기본 데이터베이스에 있습니다.
실수로 지운 템플릿을 되살릴 수 있나요?
예전 버전은 됩니다 — 다만 현재는 API 로만 가능합니다. `GET /v1/templates/<template_id>/versions` 로 목록을 보고 `POST /v1/templates/<template_id>/versions/<version_id>/restore` 로 되돌립니다. 콘솔에는 아직 버전 목록 화면이 없습니다. 삭제한 템플릿은 즉시 파기되지는 않지만 직접 되살리는 기능은 없으니, 문의해 주시면 확인해 드립니다. 계정 삭제는 다릅니다 — 그것은 실제 파기이고 되돌릴 수 없습니다.
계정을 지우면 어떻게 되나요?
계정에 묶인 것이 모두 사라집니다 — 템플릿, 버전, API 키, 저장 파일, 작업 기록, 보내신 문의까지. 비활성화가 아니고 복구 기간도 없으니, 남길 것은 먼저 내보내십시오. 다시 청구되지 않도록 삭제 전에 구독을 해지하시기 바랍니다.

막혔을 때

401 — invalid or missing API key
키가 없거나, 잘못 적혔거나, 이미 삭제된 경우입니다. `Authorization: Bearer <api_key>` 로 보내고 있는지, 그 키가 콘솔에 아직 있는지 확인하십시오. 셋 중 무엇인지는 일부러 알려 드리지 않습니다 — “키는 있는데 틀렸다”는 것은 공격하는 쪽에 주고 싶지 않은 힌트입니다.
429 — rate limit exceeded
분당 제한보다 빠르게 보냈습니다. `retry-after` 헤더에 적힌 만큼 기다리십시오 — 곧바로 다시 시도하면 차단이 늘어날 뿐입니다. 몰릴 때만이 아니라 꾸준히 이 오류가 난다면, 한 건씩 도는 대신 배치로 묶으십시오.
413 — payload too large
요청 본문이 크기 제한을 넘었습니다. 가장 흔한 원인은 매 호출마다 이미지를 base64 로 끼워 넣는 것입니다 — 자산으로 한 번 올리고 참조하십시오. 그다음으로 흔한 원인은 둘로 나눠야 할 배치입니다.
400 — 템플릿 문서가 올바르지 않습니다
템플릿 JSON 이 문서 스키마와 맞지 않습니다 — 최상위 구조가 틀렸거나, 모르는 노드 종류이거나, 속성 값의 타입이 다른 경우가 대부분입니다. 응답에는 오류 코드만 담기고 어느 항목이 문제인지는 오지 않습니다 — 노드 종류와 허용값이 전부 적힌 문서의 스키마 문서와 대조해 찾으십시오.

계정과 보안

비밀번호를 잊었습니다
로그인 화면의 비밀번호 찾기를 쓰시면 재설정 링크를 메일로 보내 드립니다. 새 비밀번호를 정하면 다른 기기의 로그인이 모두 해제됩니다 — 의도한 동작입니다. 누군가 접근하고 있었다면 재설정으로 끊어집니다.
인증 메일이 오지 않습니다
먼저 스팸함을 확인해 주십시오 — 새 도메인에서 나가는 자동 메일은 그리로 자주 갑니다. 로그인 화면에서 다시 보낼 수 있고, 여러 통이 왔다면 가장 최근 링크가 유효합니다. 그래도 오지 않으면 문의해 주십시오. 발송되었는지, 어디서 막혔는지 확인해 드립니다.
카드 정보는 안전한가요?
저희는 카드 정보를 보지 않습니다. 결제는 Stripe 를 통해 이뤄지고, 카드 정보는 Stripe 페이지에서 입력되어 Stripe 에 저장됩니다. 저희가 갖는 것은 고객 식별자와 플랜, 그 기간뿐입니다 — 무엇을 쓸 수 있는지 알기에 충분하고, 카드를 청구하는 데는 쓸 수 없는 정보입니다.