https://inpa.tistory.com/entry/WEB-%F0%9F%8C%90-NAT-%EB%9E%80-%EB%AC%B4%EC%97%87%EC%9D%B8%EA%B0%80
운영과 개발을 분리한다! 당연한 얘기..
회의 전 정리한 내용
네트워크 대역폭은 서버와 클라이언트 간의 데이터 전송 속도를 결정하는 중요한 요소입니다. 대역폭은 초당 얼마나 많은 데이터가 전송될 수 있는지를 나타내며, 일반적으로 Mbps(Megabits per second) 또는 Gbps(Gigabits per second) 단위로 측정됩니다.
업링크 대역폭(Uplink Bandwidth): 서버에서 외부로 데이터를 전송할 때의 속도를 의미합니다.
다운링크 대역폭(Downlink Bandwidth): 외부에서 서버로 데이터를 수신할 때의 속도를 의미합니다.
대기 시간(Latency): 데이터가 네트워크를 통해 이동하는 데 걸리는 시간으로, 실시간 통신에서는 대역폭만큼 중요한 요소입니다.
소켓 통신을 사용하는 애플리케이션의 경우 실시간 데이터 전송이 이루어지기 때문에 대역폭과 대기 시간이 중요합니다. 하지만 실제로 필요한 대역폭은 애플리케이션의 데이터 전송량과 통신 빈도에 따라 달라집니다.
실시간 데이터 전송량이 크지 않은 경우: 대역폭이 크게 필요하지 않을 수 있습니다. 예를 들어, 텍스트 기반의 채팅 애플리케이션이나 상태 정보 업데이트 정도라면 대역폭 요구량이 상대적으로 낮습니다.
실시간 데이터 전송량이 큰 경우: 동영상 스트리밍, 대용량 파일 전송, 고해상도 이미지 전송 등은 높은 대역폭이 필요합니다.
데이터 전송량과 빈도를 고려하여 필요한 대역폭을 추산할 수 있습니다. 예를 들어, 초당 1MB의 데이터를 전송해야 한다면 최소 8Mbps 이상의 대역폭이 필요합니다.
소켓 통신의 패킷 크기, 주기, 데이터 압축 여부 등을 고려하여 정확한 대역폭 요구 사항을 결정하는 것이 중요합니다.
결론
소켓 통신으로 실시간 데이터 전송이 이루어진다면, 애플리케이션의 데이터 전송량이 많을수록 고대역폭이 필요합니다. 만약 데이터량이 크지 않고 텍스트나 경량 데이터라면 중간 정도의 대역폭으로도 충분할 수 있습니다. 정확한 대역폭 요구량을 파악하려면 실제 데이터 전송량과 주기를 모니터링하는 것이 좋습니다.
웹소켓 메시지 사이즈는 Stomp 디폴트 값인16640바이트(16 kb)를 사용.

https://intruder.tistory.com/326
이미지, pdf의 경우 10MB 까지 be로 api 전송, MultipartFile 형식사용
커넥션 풀 크기는 데이터베이스에 동시에 연결할 수 있는 최대 연결 수를 결정하는 것으로, 예상 동시 접속자 수에 따라 적절하게 설정해야 합니다. 너무 작게 설정하면 커넥션 부족으로 애플리케이션이 대기 상태에 빠질 수 있고, 너무 크게 설정하면 데이터베이스 서버의 리소스가 고갈될 수 있습니다.
spring:
datasource:
url: jdbc:mysql://localhost:3306/mydb
username: dbuser
password: dbpassword
driver-class-name: com.mysql.cj.jdbc.Driver
hikari:
maximum-pool-size: 30 # 최대 커넥션 수
minimum-idle: 10 # 최소 유휴 커넥션 수
idle-timeout: 300000 # 유휴 커넥션의 최대 대기 시간 (밀리초, 5분)
connection-timeout: 30000 # 커넥션 풀에서 커넥션을 가져올 때까지의 대기 시간 (밀리초, 30초)
max-lifetime: 1800000 # 커넥션의 최대 수명 (밀리초, 30분)