더미 파일 생성기
이미지·음성·동영상·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 | 무압축 단일 항목 아카이브 |
더미 파일 생성기란
업로드 기능을 만들 때는 크기 제한과 확장자 검사가 의도한 대로 동작하는지 확인해야 합니다. 이를 위해서는 "지정한 바이트 수와 정확히 일치하면서도 형식상 유효한 파일"이 필요하지만, 그런 파일을 손쉽게 구하기는 어렵습니다. 이 도구는 텍스트·이미지·음성·동영상·PDF·ZIP 등을 원하는 크기 그대로 생성해 줍니다.
생성되는 파일은 모두 각 형식의 사양에 맞는 유효한 데이터입니다. 많은 형식에는 파서가 건너뛰어도 되는 영역이 정해져 있으며, 이 도구는 바로 그 영역을 이용해 크기를 맞추므로 파일을 열어도 오류가 발생하지 않습니다. 처리는 모두 브라우저 안에서 이루어지며, 생성한 내용이 서버로 전송되는 일은 없습니다. 다만 WAV와 ZIP은 사양상 4GiB가 상한입니다.
더미 파일 생성 방법
- 파일 형식을 선택합니다 테스트 대상이 허용하는 형식을 고릅니다. 확장자나 MIME 타입 검사를 시험하고 싶다면 해당 형식을 그대로 선택합니다.
- 크기를 지정합니다 숫자와 단위를 입력합니다. 제한이 "10MB"라면 10,000,000바이트와 10,485,760바이트 중 어느 쪽으로 해석하느냐에 따라 경계가 달라진다는 점에 유의합니다.
- 파일 이름을 정합니다 확장자를 포함한 이름을 지정할 수 있습니다. 이름으로 걸러내는 로직을 시험하고 싶다면 이 부분을 바꿔서 확인합니다.
- 생성 후 다운로드합니다 "생성" 버튼을 누르면 파일이 만들어집니다. 크기가 클수록 시간이 걸리며, 그동안 언제든 취소할 수 있습니다.
더 잘 활용하기 위한 팁
- 업로드 폼의 검증 로직은 대부분 확장자·MIME 타입·파일 크기 세 가지를 별도로 검사합니다. 이 도구는 그 외 모든 부분을 사양에 맞게 생성하므로, 크기 제한만 따로 테스트할 수 있습니다.
- "10MB까지"라는 제한은 구현에 따라 10,000,000바이트(106)일 수도, 10,485,760바이트(220)일 수도 있습니다. 단위 선택란에서 두 기준을 모두 선택할 수 있어, 경계값 정확히 그리고 1바이트 초과 두 경우 모두 테스트할 수 있습니다.
- Chrome과 Edge는 저장할 드라이브에 직접 스트리밍으로 기록하므로, 수십 GB 규모의 파일도 메모리 부담 없이 생성할 수 있습니다. Firefox와 Safari는 일단 메모리에서 조립하는 방식이라 크기에 실용적인 상한이 있습니다.
- 지원 브라우저에서는 동영상(MP4/WebM)이 브라우저 내장 인코더로 실제 몇 초 분량의 애니메이션을 녹화하므로, 열어 보면 실제로 재생됩니다. 그 외 부분(파일 대부분을 차지하는 패딩)과 다른 이미지·음성 형식의 내용물은 더미입니다. 어디까지나 크기·확장자·MIME 타입 검증이 목적입니다.
더미 파일 활용 사례
업로드 상한의 경계값 테스트
상한과 정확히 같은 파일, 그리고 1바이트만 초과한 파일을 각각 만들어 시험할 수 있습니다. 오류 메시지가 사양대로 정확한 경계에서 나오는지 확인할 수 있습니다.
확장자와 MIME 타입 판정 확인
허용된 형식과 금지된 형식을 각각 생성해 제출해 보면, 어느 기준으로 거부되고 있는지 구분할 수 있습니다.
대용량 전송 시 동작 확인
수 GB 규모의 파일로 진행률 표시, 타임아웃, 중단 후 재개가 올바르게 동작하는지 검증할 수 있습니다. 실제 데이터를 준비할 필요가 없습니다.
저장 공간과 대역폭 산정
예상 크기의 파일을 실제로 두어 봄으로써 저장 공간 사용량과 전송에 걸리는 시간을 실측할 수 있습니다.
파일 검증 관련 용어
- MIME 타입
- 파일의 종류를 나타내는 문자열로,
image/png처럼 표기되며 업로드 허용 여부를 판단하는 데 쓰입니다. - 경계값 테스트
- 상한이나 하한의 정확한 경계와 그 전후 값을 시험하는 검증 방법입니다. 결함이 가장 발생하기 쉬운 지점으로 중시됩니다.
- 패딩
- 목표 크기에 맞추기 위해 추가하는, 의미 없는 데이터를 말합니다. 형식이 건너뛰어도 되는 영역에 넣기 때문에 내용이 손상되지 않습니다.
- GiB와 GB
- GiB는 1,073,741,824바이트, GB는 1,000,000,000바이트를 가리킵니다. 상한 해석이 어긋나는 주된 원인 중 하나입니다.
- 스트리밍 기록
- 데이터를 조금씩 저장 위치에 써 내려가는 방식입니다. 전체를 메모리에 올리지 않아도 되므로 큰 파일도 다룰 수 있습니다.
자주 묻는 질문
여담 ― "유효한 파일"과 "손상된 파일"의 경계선
대부분의 파일 형식에는 파서가 "건너뛰어도 된다"고 정의한 영역이 있습니다. PNG의 알 수 없는 청크, MP4의 free 박스, WebM의 Void 요소 등이 그 예입니다. 이들은 원래 "향후 확장을 위해 예약된, 지금의 파서는 무시해야 할 자리"로 설계되어 있어, 임의의 데이터로 채워도 파일이 손상되지 않습니다.
동영상의 경우, 패딩 앞에 "실제 영상"을 배치해 실제로 재생할 수 있도록 하고 있습니다. 영상 코덱의 비트 단위 인코딩을 직접 작성하는 것은 정확성을 보장하기 어렵기 때문에, 대신 브라우저 자체의 내장 인코더(MediaRecorder API)로 몇 초 분량의 애니메이션을 녹화하게 하고 그 뒤에 패딩을 추가하는 방식을 택했습니다. "항상 확실히 유효한 파일을 반환한다"는 방침과 "실제로 보이는 동영상을 원한다"는 요구를 양립시키기 위한 방법입니다.
흥미롭게도 ZIP 파일은 끝부분의 "중앙 디렉터리"만 읽으면 전체 내용 목록을 알 수 있도록 설계되어 있습니다. 이는 자기 테이프 시절 끝에서부터 읽어 나가던 운용 방식의 흔적이라고도 하며, 지금도 거대한 ZIP에서 특정 파일 하나만 빠르게 꺼낼 수 있는 이유가 됩니다.