[기술적 고민 BE] 게시글 작성 시 서버에 이미지 전송 방법 - boostcampwm2023/iOS05-Village GitHub Wiki
api 명세서 작성중 게시글 등록 방법에 대해 논의를 하던중 이미지파일과 게시글 정보를 어떤 방식으로 서버에 넘기는 방법에 대해 의문이 생겼다. 처음에 생각 한 방법은 다음과 같다.
게시글 등록 시 텍스트와 이미지를 같이 전달하는 방식
한 요청에 게시글의 내용과 모든 사진(바이너리)들을 multipart 로 전달하는 방식이다. 하지만 논의 해본 결과 이 방법을 사용하면 부하가 생길 것 같다는 결론이 나왔다.
- 이미지 데이터가 크기 때문에 데이터 전송량이 증가하여 트래픽이 많아진다.
- 서버에서 한번에 처리할 데이터양이 커져 부하가 많아진다.
이와 같은 이유때문에 아래 방법을 떠올렸다.
이미지를 등록할 때 이미지만 먼저 서버로 보내고 이후에 게시글 등록을 할 때, 이미지 url 과 텍스트 정보를 함께 전송하는 방법
-
흐름
- 클라이언트(ios)에서 사진을 추가한다.
- 사진 정보를 서버에 전송한다.
- 서버에서 사진을 오브젝트 스토리지에 저장하고 저장된 url을 받아온다.
- 사진의 url을 클라이언트에 전송한다.
- 클라이언트는 받은 url을 가지고 있다가 게시글 등록 버튼을 누를 때 서버에 게시글 내용과 url을 함께 전송한다.

이 방법을 사용하면 한번에 대용량 데이터를 처리 하는 것이 아닌 따로 따로 처리 하기 때문에 네트워크와 서버에서 처리하는 부하가 줄어들 것으로 예상된다.
[(1) spring boot 게시글 이미지 구현 흐름 (AWS S3)](https://jjuunn.tistory.com/30)