대용량 게시물 export 정책 정리 v1.5.19

This commit is contained in:
2026-06-01 12:13:32 +09:00
parent 052ce316df
commit abce690546
7 changed files with 17 additions and 3 deletions

View File

@@ -1,5 +1,9 @@
# 의사결정 이력
## 2026-06-01 v1.5.19 — 대용량 Export는 요청과 다운로드를 분리
게시물이 수만 개까지 늘어나면 관리자가 Export 버튼을 누르는 순간 모든 게시물과 자산을 하나의 zip으로 만드는 방식은 요청 타임아웃, 메모리 사용량, 브라우저 다운로드 실패 가능성이 크다. Export는 요청 즉시 파일을 내려주는 기능이 아니라 백그라운드 작업으로 분리한다. 서버는 게시물 개수나 산출 용량 기준으로 여러 zip을 만들고, 준비가 끝나면 이메일로 알린다. 관리자 화면은 각 분할 파일을 독립적으로 다운로드할 수 있게 하며, 일괄 다운로드는 브라우저에서 순차 실행해 중간 실패 시 해당 범위부터 다시 받을 수 있게 한다. 산출물은 백업 생성물이라 서버 용량을 계속 차지하므로 최대 100일 후 만료·삭제한다.
## 2026-06-01 v1.5.18 — 게시물 백업은 URL이 아닌 로컬 자산 번들
게시물 Export는 다른 도구로 읽는 이동성뿐 아니라, 원본 서버나 `/uploads` URL이 사라져도 복원 가능한 백업이어야 한다. 따라서 Markdown 본문이 기존 URL을 그대로 참조하는 방식은 백업 요구에 맞지 않다. 게시물마다 폴더를 만들고 `제목.md`와 함께 `images/`, `files/`에 내부 자산을 복사하며, Markdown 안의 내부 업로드 URL은 상대 경로로 재작성한다. Import는 이 구조를 역으로 읽어 자산을 미디어 저장소에 다시 올리고 본문 경로를 새 업로드 URL로 매핑한다.