[MongoDB] “몽고DB 쓰지 마세요”…왜?

-- MongoDB 2012. 11. 15. 16:10
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.
NoSQL을 대표하는 오픈소스로 각광받고 있는 ‘몽고DB’를 사용하지 말라는 얘기가 고개를 쳐든다. 지난해 말 엔터프라이즈 소프트웨어 개발자 모임인 인포매이션큐(InfoQ)를 시작으로 몽고DB 개발자 커뮤니티와 해커뉴스를 비롯한 다양한 사이트에서 몽고DB 성능을 문제 삼는 개발자들이 늘어나는 추세다. 이들은 몽고DB의 데이터 ‘안정성’을 문제 삼으며, 몽고DB가 명성에 비해 기능이 떨어진다고 지적했다.

몽고DB는 스키마 제약 없이 키와 밸류로 이뤄진 도큐먼트를 저장하는 오픈소스 NoSQL DB로 스키마 제약이 없기 때문에 좀 더 유연하게 데이터를 처리할 수 있다는 장점을 갖고 있다. 1천만 사용자를 갖고 있는 포스퀘어가 몽고DB를 도입해 데이터를 처리하기 시작하면서 널리 알려지기 시작했다.

지금까지 몽고DB는 데이터 처리가 빠르게 이뤄진다는 점에서 개발자들 눈길을 끌었다. 데이터를 쓸 때 메모리에 데이터를 저장한 후 백그라운드 쓰레드를 통해 디스크에 기록하는 특징 때문이었다. 이는 빅데이터 처리 오픈소스 대열에 하둡과 함께 몽고DB도 올라가게 만드는 요인이었다. 방대한 데이터를 몽고DB를 통해 빠르게 처리할 수 있다는 기대감에서다.

그러나 영국IT전문지 더레지스터는 “몽고DB개발자를 원하는 시장 수요가 많음에도 불구하고, 막상 개발자들은 몽고DB를 활용하려고 하지 않는다”라며 “몽고DB에서 카산드라로 이동하려는 움직임이 보인다”라고 전했다. 실제 적용해보니 ‘하둡’처럼 대용량으로 가는 시스템에 적합한 구조가 아닐 뿐더러 스케일 아웃에 한계가 있는 것으로 드러난 탓이다. 몽고DB 속도는 인덱스 사이즈와 메모리에 달려 있는데, 메모리가 가득 차서 HDD로 내려가 데이터를 처리할 경우 처리 속도가 급감한다고 설명했다.

한 개발자는 해커뉴스를 통해 다음과 같이 총 8가지 이유를 들어 몽고DB를 쓰지 말아야 한다고 밝혔다. 요컨대 

▲‘기본설정’으로 데이터를 쓰는(Write)것은 안전하지 않으며 
▲다양한 이유로 데이터가 그냥 날아갈 수 있고 
▲써야 할 데이터 양이 많으면 감당하지 못하며 
▲데이터를 불러올 때 ‘샤딩’이 정상적으로 작동하지 않을 때가 있으며 
▲데이터 삭제나 업데이트를 했을 때 단편화 문제를 발생시켜 데이터 처리에 필요 이상의 메모리를 사용하고 
▲몽고DB 1.8버전에서 문제가 해결됐지만, 데이터셋을 전부 다 날리는 경향이 있고 
▲몽고DB에서 발견된 버그가 빨리 해결되지 않으며 
▲데이터 복제가 필요 이상의 서버를 차지

한다는 이유에서였다.

여기에 카산드라, HBASE, HIVE처럼 더 나은 데이터 처리 능력을 보이는 오픈소스들의 등장도 몽고DB 인기 제동에 한몫했다.국내 업계 관계자는 “몽도DB로는 중요한 서비스를 구축하지 않는다”라며 “일시적인 데이터 처리에 사용하는 게 낫다”라고 말했다. 그는 “결국 DB 선택은 딱 맞는 게 없으니, 개발자가 해야 한다”라고 덧붙였다. 데이터 크기와 모델에 따라 장단점이 있다는 얘기다.

결국 어떤 오픈소스를 사용할 것이냐는 전적으로 개발자에게 달린 셈이다. 이 업계 관계자는 “개발자들이 쉽게 접하는 게 몽고DB고, 그 다음이 카산드라고, 하둡을 모르면 사용하기 까다로운 게 HBASE다”라며 “결국은 오픈소스에는 생각지도 못한 변수가 있기 때문에 항상 공부해야지, 공부 안하고 쓰면 큰코다친다”라고 지적했다.

'-- MongoDB' 카테고리의 다른 글

[MongoDB] MongoDB 기본쿼리  (0) 2012.12.28
[MongoDB] ObjectID 구조  (0) 2012.12.27
[MongoDB] MongoDB 기본요소  (0) 2012.12.27
[MongoDB] MongoDB 핵심기능  (0) 2012.12.21
[MongoDB] 윈도우XP에 몽고DB 설치하기  (0) 2012.11.15
posted by 어린왕자악꿍