⚡ 임계값 테스트 파일
업로드 한도 경계값 테스트용 바이트 단위 정확한 크기 파일.
경계값 테스트란
많은 서비스는 파일 크기 상한이 있습니다. 상한 근처(정확히, 직전, 직후)에서 테스트하면 검증 로직의 정확성을 효율적으로 확인할 수 있습니다.
직전 (9.9MB / 24.9MB)
상한 이하. 업로드 성공해야 함.
정확히 (10MB / 25MB)
경계값. 성공 여부 확인 필요.
직후 (10.1MB / 25.1MB)
상한 초과. 오류가 되어야 함.
PNG
JPG
ZIP
주요 서비스 업로드 한도
| 서비스 | 한도 | 테스트 파일 |
|---|---|---|
| Gmail 첨부 | 25MB | 24.9MB / 25MB / 25.1MB |
| Discord (무료) | 25MB | 24.9MB / 25MB / 25.1MB |
| WordPress (기본) | 10MB | 9.9MB / 10MB / 10.1MB |
📖 자주 걸리는 지점
9.9 / 10.0 / 10.1 MB 처럼 경계 바로 앞·정확히·바로 뒤를 바이트 단위로 맞춘 파일입니다. 한도가 이하인지 미만인지, 어느 계층에서 거부되는지를 한 번에 가려낼 수 있습니다. 반대로 경계의 동작밖에 알 수 없습니다. 평상시 성능과 동시 실행 시 동작은 따로 측정하세요.
| 사례 | 무슨 일이 일어나는가 | 어떻게 하면 되는가 |
|---|---|---|
| 10 MB 제한에 10 MB 가 통과하지 않는다 | 10 MB 가 10,000,000 바이트인지 10,485,760 바이트 (10 × 1024²) 인지에 따라 48 만 바이트 차이가 납니다. 구현에 따라 둘 다 있습니다. |
어느 해석인지 먼저 확인하세요. 단위 대응표는 파일 크기 단위, 환산은 바이트 변환. |
| 오류 메시지 없이 끊긴다 | nginx 가 client_max_body_size 로 거부하는 경우 PHP 까지 도달하기 전에 413 이 반환됩니다. 애플리케이션 로그에는 아무것도 남지 않습니다. |
구분은 nginx 의 access / error 로그를 보는 것이 확실합니다. 413 의 의미와 대처는 413 오류 글에 정리해 두었습니다. |
| 경계 정확히가 통과했다 안 했다 한다 | 비교 대상이 파일 본체 크기가 아니라 요청 전체 크기라면, 경계에 딱 맞는 파일은 헤더만큼 초과합니다. 파일명 길이로도 달라집니다. | 9.9 MB 와 10.1 MB 결과를 나란히 놓고 어느 쪽에서 동작이 바뀌는지를 봅니다. 둘 다 실패하면 임계값은 더 앞에 있습니다. |
경계가 제대로 동작해도 한도에 가까운 파일이 동시에 여러 개 올 때 디스크와 메모리가 버티는지는 별개입니다. upload_max_filesize × 동시 접속 수가 남은 용량을 넘지 않는지 함께 확인하세요.