파일 모듈을 개발 중인데, 사용자가 대략 어느 정도 크기의 파일을 올리겠다는 예상치가 없어 난감하다..
10MB 이정도 크기는 1초도 안 걸리는 것 같아 큰 문제가 될 것 같진 않다. 하지만 1GB, 2GB 등의 기가바이트 단위라면..? 그래서 측정해보기로 했다.
일단 더미 데이터를 만든다. 더미 데이터는 WINDOWS 기준으로 아래와 같이 만들 수 있다.
명령 프롬프트에 들어가 fsutil file createnew [파일명] [파일크기] 와 같이 작성한다. 이때 파일크기는 바이트 단위다.
정확한 파일 크기를 위해 https://convertlive.com/u/convert/gigabytes/to/bytes#0.5에서 GB to B 컨버전을 하여 파일크기를 입력했다.
Convert Gigabytes to Bytes (GB → B)
Bytes (B) Bits (bit) Exabytes (EB) Exabits (Ebit) Gigabytes (GB) Gigabits (Gbit) Kilobytes (kB) Kilobits (Kbit) Megabytes (MB) Megabits (Mbit) Petabytes (PB) Petabits (Pbit) Terabytes (TB) Terabits (Tbit) Nibbles Bytes (B) Bits (bit) Exabytes (EB) Exabits
convertlive.com
500MB | 536870912 |
1GB | 1073741824 |
1.5GB | 1610612736 |
2GB | 2147483648 |
3GB | 3221225472 |
내가 테스트한 단위는 위 표와 같다.
테스트 환경: 클라이언트 pc에서 파일을 전송하면 서버 pc가 이를 받아서 서버 pc에 파일을 올린다. 이때 파일 크기에 따른 전송시간을 구해보고자 했다. 대략적으로 걸린 시간을 체크해봤더니 다음과 같은 결과가 나왔다.
500MB | 5초 |
1GB | 10초 |
1.5GB | 15초 |
2GB | 20초 |
3GB | 30초 |
시간과 용량이 완전 정비례라 깜짝 놀람.. (원격 서버 테스트 결과는 또 완전 다르다)
참고로 스프링 부트에서 파일용량 제한을 없애기 위해 application.properties에 다음과 같이 설정을 했다.
# Max file size.
spring.servlet.multipart.max-file-size=-1
# Max Request Size
spring.servlet.multipart.max-request-size=-1
'공부기록 > 스프링 프레임워크' 카테고리의 다른 글
The method of() is undefined for the type List 오류(@Builder) (0) | 2023.07.07 |
---|---|
Spring Boot Security session timeout not working (0) | 2022.12.28 |
이클립스 build path 없어짐..? (프로젝트 생성시) (0) | 2021.05.18 |
[스프링] 화면에 이미지 출력하기(url로 접근) (0) | 2021.04.19 |
[스프링] 공통 java class 라이브러리화 하기 (0) | 2021.04.14 |