• 카테고리

    질문 & 답변
  • 세부 분야

    풀스택

  • 해결 여부

    미해결

이미지 업로드 시점 질문입니다.

21.09.24 05:23 작성 조회수 216

1

안녕하세요. 강의 다시한번 듣고있는 중에 이미지를 서버로 보내는 시점에 대한 궁금증이 생겨서요.
 
서버로 이미지를 보내는 방법이 크게 2가지가 있다고 생각하는데요.
1. image들과 title, description을 submit 버튼을 유저가 누르게 되면 서버로 한꺼번에 보낸다
 
 
2. 유저가 이미지를 올리자마자 프론트앤드에서 서버로 이미지를 바로 보내고 접근할수 있는 url을 response로 받아온다.
2-1 FE는 추가,삭제,순서등을 react state로 관리하고 이미지 title, description과 같은 string 값들을 submit button을 누르게 되면 image들의 url과 같이 서버로 보낸다.
 
어떤게 실제 서비스하는데 적합한가요?

답변 1

답변을 작성해보세요.

2

좋은 질문입니다!

 

무엇을 개발하느냐에 따라 다릅니다. 

페이스북, 트위터, 블로그, 이커머스 등을 개발하게 되면 후자의 방법이 적합합니다. 많은 사람들에게 많은 이미지들이 노출되니 리사이징은 당연히 필요하겠죠. 2번째 방법으로 하면 submit 버튼을 누를 시점에 이미 리사이징이 완료 됬을 가능성이 높아요. 근데 이미지 리사이징이야 어짜피 거의 바로 처리가 되고요. 제일 큰 장점은 업로드 하는 사람 입장에서 2번째의 방법이 업로드가 훨씬 빠르다는거죠. 페이스북, 트위터 같이 게시글을 자주 올리는 서비스인데 업로드가 느리면 UX가 안좋을 수 있겠죠. 다만 이 경우 이미지를 올렸는데 게시글을 작성 도중 취소하면 S3에서 해당 이미지를 삭제해주는 기능 추가가 필요하다는게 번거러운점이 있어요. 그 외 다른 변수들이 있을 수도 있어요. 예를 들어 게시글 작성 취소가 아니라 그냥 브라우저를 종료할 수도 있어요. 물론 이런 상황이 크진 않고 S3에 일부 누락된 이미지가 존재한다고 해도 사실 큰 문제는 아닙니다. 근데 만약 서비스 특성상 이런 누락이 엄청 많아질 수 있을 것으로 추정된다? 그러면 또 조치가 필요하겠죠.

 

submit 버튼 누를 때 이미지 업로드를 하는 경우는 대용량 업로드일 때 많이 하는거 같아요. 드랍박스 같은걸 개발한다던지. 혹은 용량이 큰 영상 업로드를 한다던지요.

 

저희는 이미지 파일만 다루었는데 만약 유투브처럼 고해상도 영상 업로드를 받는다면 단 한개의 영상 파일이더라도 상당히 부담이 크겠죠? 그리고 영상은 제가 다루어보진 않았지만 화질에 따른 영상 "리사이징"과 같은 가공이분명 있을거에요. 이건 이미지 리사이징보다 비용이 훨씬 클거고요. 그래서 유투브는 페이스북처럼 컨텐츠를 올리는 sns지만 파일 용량이 크기 때문에 업로드 유저가 조금 불편하더라도 1번째 방법을 하고 있을것 같아요.

참고로 인프런 같은 경우에도 1번째 방법으로 강의를 업로드 해요. 그리고 업로드 하고 바로 해당 강의를 보려고 하면 아예 재생이 안되고 한 1~2분 동안 가공중이라고 떴었어요.