jsstar522
40
2019-03-29 20:41:48
4
406

NodeJs와 Database에 관련된 질문이 있습니다.


안녕하세요 NodeJs와 React 웹개발을 공부하고 있는 학생입니다.


제가 지금 구현하고 있는 기능은 단순히 글과 이미지를 올리는 기능입니다. 그리고 몽고디비에 연동을 해놓은 상태입니다. 글을 포스팅하면 몽고디비에 내용이 잘 올라갑니다. 하지만 문제는 이미지입니다. NodeJs를 학습할 때 Multer라는 미들웨어를 본적이 있습니다. 튜토리얼을 다시 잘 살펴보니, Multer의 diskStorage 함수로 로컬스토리지(정적파일폴더)에 이미지를 저장해놓고 db에는 정적파일폴더에 저장된 이미지 Id만 들어가더라구요. 그리고 이미지를 불러올 때는 db에서 이미지 id를 통해 정적폴더에 있는 해당 이미지를 볼러오구요. 즉, db자체에 이미지가 들어가있는게 아닌겁니다. 그래서 조금 혼란스럽네요. 여태 데이터베이스 안에 이미지 자체가 들어가는 것이라고 생각했거든요. 찾아보니 이미지 버퍼를 db에 저장하는 방법도 있지만 추천하진 않는 것으로 보였습니다.

제가 이해를 잘못한 부분이 있을까요?? 원래 이미지는 데이터베이스에 이미지 자체로 넣는게 아닌 이미지 URL만 저장하는 것인가요?? 있다면 어떤 방식으로 하는지 팁을 알려주시면 정말 감사하겠습니다. 

0
0
  • 답변 4

  • skill
    425
    2019-03-29 20:45:48

    네 원래 데이터베이스에 저장하지 않습니다.

    노드 서버나 AWS S3에 저장하세요.

    1
  • 아스키
    10k
    2019-03-29 21:04:32

    이미지를 저장한다는 건..데이타 용량이 늘어난다는 것인데요.DB 스토리지 용량과 속도가 빵빵하다면 몰라도..대부분 그렇게 처리하지 않지요..이미지의 id, 스토리지 위치 정보, 사이즈 등을 저장해두고 조회하여 처리하는 것이 나은 방법이기 때문입니다.

    1
  • 세브라이드
    1k
    2019-03-29 21:38:55 작성 2019-03-29 21:39:06 수정됨

    이미지를 DB에 저장하는건 비유하자면 화물 컨테이너를 회사에 보관하는 것과 비슷한 일입니다.

    아무리 귀중한 물건이어도 화물 컨테이너는 컨테이너 창고에 놔두고 사무실에는 키만 보관하는게 낫겠죠. ㅎㅎ

    1
  • jsstar522
    40
    2019-03-29 22:59:06

    @skill 그렇군요 그래서 multer-s3 미들웨어가 따로 존재했군요
    @아스키 너무 감사드립니다!
    @세브라이드 비유가 너무 적절하네요 ㅎㅎ 감사합니다

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