MySQL(Maria) vs Mongo

보통은 RDBMS 를 이용하여 테이블간의 관계를 잘 정리해서 개발하는것이 데이타베이스의 기본이다. 테이블에 데이타가 많아질경우 1:n, n:m 형태가 되는데 초기에는 속도가 빠르지만 데이타가 많이 들어갈경우 속도는 매우느려지고 서버의 부하가 급증하는 문제가 생긴다. 물론 테이블을 더 잘게 자르고 잘 만들면 되지만 서버의 스팩을 늘리는 방법으로 해결해야 한다.

20년간을 RDMS로 개발을 하다 10년정도 NoSQL로 개발을 하고 있다.

지금은 NoSQL이 더 편하게 사용하는 수준이 되었다. RDMS로 돌아가 생각이 안든다. 쇼핑몰하나 만들려고 해도 너무 많은 테이블이 생기고 속도도 느리고 문제는 중간에 데이타 구조가 바뀌는 순간 처음으로 돌아가서 다시 설계를 하는것이 아니라 그냥 땜방으로 가야 한다. 결국 완젼히 뒤집기 전에는 도저히 답이 안나온다.

NoSQL을 처음 접하면 뭔가 이상하게 느끼는건 당연하다. 처음 접했을때 이건 아주 특수한 분야에서나 사용가능하다고 생각했었다. 초기에는 RDBMS보다 구조가 복잡해지기도 하고 계속 꼬인다. 마치 c 언어에서 c++을 공부하고 나서 하나의 클래스로 전체를 코딩하던 때가 생각난다. 하지만 oop를 이해하면서 c언어의 어려움을 c++로 설계하고 해결되던 감정과 비교가 된다.

단순 json이 아니라 가변 array를 사용하기 시작하면 RDBMS의 join의 무덤에서 해어나올수 있다. 수많은 테이블을 분리하고 연결하는 것이 아니라 그냥 하나의 테이블에 모든걸 담아내는 NoSQL은 정말 매력있는 데이타베이스라고 생각한다.