개발자 도구
더미 파일 생성기
이미지·음성·동영상·PDF·텍스트 등 지정한 바이트 수 그대로의 더미 파일을 브라우저에서만 생성합니다. 업로드 폼의 크기 제한 테스트에 유용하며, 파일 내용은 서버로 전송되지 않습니다.
형식
| 형식 | 확장자 | MIME 타입 | 사양상 상한 | 비고 |
|---|---|---|---|---|
| 텍스트 (TXT) | .txt |
text/plain |
사실상 무제한 | 읽을 수 있는 반복 텍스트로 채웁니다 |
| CSV | .csv |
text/csv |
사실상 무제한 | 헤더가 있는 더미 표 데이터 |
| JSON | .json |
application/json |
사실상 무제한 | 하나의 문자열 필드에 채웁니다 |
| 바이너리 (BIN) | .bin |
application/octet-stream |
사실상 무제한 | 0x00~0xFF를 반복하는 임의 바이트열 |
| 이미지 (PNG) | .png |
image/png |
사실상 무제한 | 유효한 1x1 이미지 + 패딩 청크 |
| 음성 (WAV) | .wav |
audio/wav |
4 GiB | 무음 PCM 데이터(실제로 재생 가능) |
| 동영상 (MP4) | .mp4 |
video/mp4 |
사실상 무제한 | 지원 브라우저에서는 실제 녹화, 미지원 시 구조만 유효한 플레이스홀더 |
| 동영상 (WebM) | .webm |
video/webm |
사실상 무제한 | 실제로 녹화한 몇 초 분량의 애니메이션(지원 브라우저 한정) |
.pdf |
application/pdf |
사실상 무제한 | 유효한 빈 페이지 1장짜리 PDF | |
| ZIP | .zip |
application/zip |
4 GiB | 무압축 단일 항목 아카이브 |
더미 파일 생성 팁
- 업로드 폼의 검증 로직은 대부분 확장자·MIME 타입·파일 크기 세 가지를 별도로 검사합니다. 이 도구는 그 외 모든 부분을 사양에 맞게 생성하므로, 크기 제한만 따로 테스트할 수 있습니다.
- "10MB까지"라는 제한은 구현에 따라 10,000,000바이트(106)일 수도, 10,485,760바이트(220)일 수도 있습니다. 단위 선택란에서 두 기준을 모두 선택할 수 있어, 경계값 정확히 그리고 1바이트 초과 두 경우 모두 테스트할 수 있습니다.
- Chrome과 Edge는 저장할 드라이브에 직접 스트리밍으로 기록하므로, 수십 GB 규모의 파일도 메모리 부담 없이 생성할 수 있습니다. Firefox와 Safari는 일단 메모리에서 조립하는 방식이라 크기에 실용적인 상한이 있습니다.
- 지원 브라우저에서는 동영상(MP4/WebM)이 브라우저 내장 인코더로 실제 몇 초 분량의 애니메이션을 녹화하므로, 열어 보면 실제로 재생됩니다. 그 외 부분(파일 대부분을 차지하는 패딩)과 다른 이미지·음성 형식의 내용물은 더미입니다. 어디까지나 크기·확장자·MIME 타입 검증이 목적입니다.
자주 묻는 질문
여담 ― "유효한 파일"과 "손상된 파일"의 경계선
대부분의 파일 형식에는 파서가 "건너뛰어도 된다"고 정의한 영역이 있습니다. PNG의 알 수 없는 청크, MP4의 free 박스, WebM의 Void 요소 등이 그 예입니다. 이들은 원래 "향후 확장을 위해 예약된, 지금의 파서는 무시해야 할 자리"로 설계되어 있어, 임의의 데이터로 채워도 파일이 손상되지 않습니다.
동영상의 경우, 패딩 앞에 "실제 영상"을 배치해 실제로 재생할 수 있도록 하고 있습니다. 영상 코덱의 비트 단위 인코딩을 직접 작성하는 것은 정확성을 보장하기 어렵기 때문에, 대신 브라우저 자체의 내장 인코더(MediaRecorder API)로 몇 초 분량의 애니메이션을 녹화하게 하고 그 뒤에 패딩을 추가하는 방식을 택했습니다. "항상 확실히 유효한 파일을 반환한다"는 방침과 "실제로 보이는 동영상을 원한다"는 요구를 양립시키기 위한 방법입니다.
흥미롭게도 ZIP 파일은 끝부분의 "중앙 디렉터리"만 읽으면 전체 내용 목록을 알 수 있도록 설계되어 있습니다. 이는 자기 테이프 시절 끝에서부터 읽어 나가던 운용 방식의 흔적이라고도 하며, 지금도 거대한 ZIP에서 특정 파일 하나만 빠르게 꺼낼 수 있는 이유가 됩니다.