yousrain
70
2021-02-19 11:51:48
4
172

spring 이미지 업로드 설계 팁 부탁드립니다!


현재 react와 통신하는 spring boot api서버를 개발하고 있습니다.

다중 이미지를 처리하는데 이미지는 AWS S3버킷에 저장하고 그 URL만 DB에 저장하고 있습니다.


보통 현업에선

front에서 이미지를 업로드하고 URL만 backend로 넘기나요??

아니면 이미지를 통째로 backend로 넘기고 backend에서 업로드까지 처리하나요??


지금 backend에서 업로드하는 방식으로 처리하는데 

구현은 가능하나 도저히 깔끔한 코드가 안나와서 고민중입니다.

업로드 시점을 controller에서 처리하거나, service에서 처리하거나

dto에서 처리하는 고민이 계속 해결이 안되네용 ㅠㅠ


답변 주시면 감사하겠습니다!

추가로 backend 업로드 시 설계 팁 주셔도 너무너무 감사드리겠습니다!!

0
  • 답변 4

  • 오후
    2k
    2021-02-19 12:11:25

    정답은없겟지만 위같은구성이라면


    api 쪽에서 처리하고

    해당 처리또한 service 단에서 처리하는게 일반적일거같습니다.

  • yousrain
    70
    2021-02-19 12:28:34

    답변 정말 감사드립니다.


    MultipartFile이 포함된 dto를 controller에서 전달받고

    이 dto를 service로 전달한 뒤

    service에서 MultipartFile을 업로드하고 그 URL을 String으로 변환한 새 dto를 

    생성하는 로직으로 짜보겠습니다!



  • 피자7
    637
    2021-02-19 12:43:07

    현업에서는 어느 방식을 일반적으로 사용하는지는 모르겠지만

    서버에서 직접 업로드하면 대용량파일의 경우 

    서버 부하때문에 프론트에서 직접 업로드하는게 더 좋다라는 의견이 있더라고여


    구현의 경우는 백엔드에서 전부 처리하는게 훨씬 편하긴 합니다

    프론트에서 업로드할경우 여러번 요청하고 처리해야하는게 많아져요



    똑같은 사례는 아니지만 프론트에서 s3로 직접 업로드할경우 대략 이런식으로 동작합니다

  • yousrain
    70
    2021-02-19 12:58:58

    이미지까지 너무 감사드립니다!


    1, 2, 3 단계로 나뉘는 이유는 

    1) 기본 데이터 저장 후 ID값 받기

    2) 받은 ID를 이용해 식별가능한 값으로 이미지 저장하기

    3) 저장한 이미지 URL ID값의 DB에 넣기


    라고 이해하면 될까요?? 

    너무너무 감사드립니다!

  • 로그인을 하시면 답변을 등록할 수 있습니다.