프로젝트 때 이런 이유로 mongoDB를 사용하였는데 알맞게 사용한게 맞을까요?
505
작성한 질문수 11
안녕하세요 제로초님!
같이 프로젝트를 진행한 동기가 말하기를
"서비스에 join 작업이 많은 데이터의 반복적인 요청이 많을때에는 lazy loading 이슈가 있을 수 있기 때문에 mongoDB를 사용하는게 좋다" 고 하는데... 이게 무슨 말인지 잘 모르겠습니다.
mysql에서 join한 데이터를 반복적으로 조회하는게 lazy loading 이슈가 있을 수 있다는 건 이해가 되지만, mogoDB도 mongoose의 populate를 사용하기 때문에 똑같이 lazy loading 이슈가 있을 수 있는거 아닌가요?
답변 1
0
lazy loading 이슈라는게 무슨 이슈를 말씀하시는건가요? lazy loading은 기법이지 그 자체로 이슈는 아닙니다. lazy loading 기법 시 데이터의 중복 이슈가 많다는 것을 말씀하신 건가요?
몽구스 파퓰레이트도 orm 레이지로딩이랑 비슷한 것이라 똑같다고 생각됩니다. 데이터 중복도 잘만 하면 피할 수 있습니다. graphql의 data-loader같은 라이브러리가 그런 역할을 합니다.
0
제가 설명이 부족했습니다. lazy loading이라고 표현한 것은 단순히 데이터를 받아오는데 오래걸린다는 뜻이었습니다. 이렇게 사용하는 단어가 아니었다니 죄송합니다.
그리고 데이터 중복 문제보다는
'join 작업이 많이 필요한 데이터 요청일 경우에 join하는 과정에서 오래걸릴 수 있기 때문에 join을 사용하지 않는 mongoDB를 사용하는게 좋다'
라는 말이 맞는 말인지 다시 한번 질문드립니다!
0
그 말이 맞으려면 몽고디비 하나의 다큐먼트 안에 관련 데이터를 모두 갖고 있어야 합니다. 이런 경우 몽고디비가 더 빠를 수는 있겠으나, 데이터 수정, 삭제가 어려워서 상황에 따라서는 더 불리할 수 있습니다. 하나의 다큐먼트 안에 관련 데이터를 모두 갖고 있지 않다면 sql과 똑같은 join 작업을 거쳐야 해서 몽고디비가 이점이 없습니다.
0
mongoose를 사용하면서 데이터 타입을 정형화 할 수 있고, join도 할 수 있다면 제로초님 말씀대로 이점이 없어 보이는데 기업에서 mongoDB를 사용하려는 이유는 확장성에서의 장점이 크게 작용하기 때문에 사용하는걸까요?
mongoDB가 방대한 데이터에 유리하다는 것 외에는 사용하는 이유를 잘 모르겠습니다 ㅠㅠ
0
대부분의 서비스는 sql이 정답입니다. 대부분은 데이터가 관계를 형성하고 있어서 그렇습니다. 저도 공부는 했지만 실무에서 몽고디비를 그렇게 활용해본 적은 없습니다.
리눅스 노드 설치시 패키지
0
162
0
socket.js 에서 referer로부터 roomId를 가져올 때
0
907
3
스트리밍 방식으로 대용량 파일 업로드 & 다운로드 관련 질문
0
2281
2
a[title] 질문드립니다
0
376
1
리뉴얼 강의 및 공부 방법
0
583
1
jwt decode
0
1129
1
node.js 교과서 3판 질문드립니다
0
392
1
passport와 jwt
0
434
1
리뉴얼 강의
0
421
2
혹시 Node.js 교과서 3판 이북은 언제 나오나요?
0
355
1
몽고디비 사용자도 MYSQL부분을 들어야 하나요???
0
482
1
sql 쿼리 로그는 어떤 모듈이 작성하나요?
0
506
2
nunjucks res.render('error'); 작동을 안합니다.
0
512
1
질문있습니다.
0
348
1
multer 한글 파일 업로드시 파일명이 깨져요.
1
3536
1
수업자료는 어디있나요?
0
368
1
질문 있습니디
0
237
1
multer 사용시 file 외 name값은 못받나용?
0
417
1
코드 중복 부분 질문드립니다.
0
299
1
api 만드는 이유 질문드립니다.
0
288
1
Strategy의 done에 대해 질문드립니다.
0
367
1
안녕하세요 fs 권한 관련 질문드립니다
0
451
1
시퀄라이즈 연결질문...
0
500
2
res.setHeader vs res.cookie
0
1789
3





