
"왜 다들 MySQL을 쓸까? 그리고 몽고DB는 언제 쓰는 걸까?"
프로젝트를 할 때마다 습관적으로 MySQL을 설치해서 썼습니다.
문득 '다른 데이터베이스는 언제 쓰는 거지?'라는 의문이 들어서,
가장 대표적인 RDBMS와 NoSQL의 차이점을 공부해보고 정리합니다.
지금까지 제가 써왔던 MySQL은 RDBMS(관계형 데이터베이스)였습니다.
공부해보니 가장 큰 특징은 '엑셀(Excel) 표'와 비슷하다는 것이었습니다.
특징: 행(Row)과 열(Column)이 딱 정해져 있습니다.
장점: 데이터의 형태가 일정해서 관리가 쉽고, 테이블끼리 연결(JOIN)해서 정보를 가져오기 좋습니다.
단점: 데이터 구조를 바꾸려면 테이블 전체를 수정해야 해서 번거롭습니다.
내 생각: 회원가입 정보나 결제 내역처럼 '딱 떨어지고 정확해야 하는 데이터'를 저장할 때 좋은 것 같습니다.
NoSQL은 'Not Only SQL'의 약자라고 합니다.
SQL 말고 다른 방식도 있다는 뜻인데, 대표적으로 MongoDB가 있습니다.
특징: 표 형태가 아니라, JSON 문서(Document) 형태로 저장합니다.
스키마(구조)가 없어서 데이터를 자유롭게 넣을 수 있습니다.
장점: 데이터 구조가 자주 바뀌어도 상관없고, 읽고 쓰는 속도가 굉장히 빠르다고 합니다.
단점: 데이터가 중복될 수도 있고, 관리가 조금 느슨할 수 있습니다.
내 생각: 게임 로그나 SNS 피드처럼 '엄청 빠르게 쌓이고 형태가 다양한 데이터'에 적합해 보입니다.
무조건 "최신 기술인 NoSQL이 좋다" 가 아니라, 데이터의 성격에 따라 골라 써야 한다는 걸 배웠습니다.
지금 하고 있는 공부나 프로젝트에서는 데이터의 정확성 (관계) 이 중요하기 때문에 MySQL을 계속 사용하겠지만, 나중에 로그를 수집하거나 채팅 기능을 만든다면 MongoDB 도입을 고려해봐야겠습니다.