오늘은 Mongodb에 대해 알아보는 시간을 가져보겠습니다. Mongodb라는 데이터 베이스가 왜 생겨났는지, 어떤 이점이 있길래 최근 많은 사람들이 RDB에서 Nosql로 넘어오는지 차근차근 알아가며 최종적으로는 NoSQL의 심화 과정까지 알아가보겠습니다.
이번 Mongodb 시리즈는 MongoDB 프로그래밍 | T아카데미 유투브를 시청하고 개인적으로 작성한 내용이며 추후에는 여러 관련 내용을 공유해 드리는 시간을 가져보겠습니다.
처음 개발을 시작하신 분들은 RDBMS라는 관계형 데이터베이스에 대해 많이들 들어보셨을 겁니다. RDBMS가 아니더라도 Mysql, Oracle, Postgresql 등으로도 접했을 수도 있고요.
다음 자료를 한 번 보실까요?
처음에는 이 RDB를 통해 개발하는 것이 매우 편리하였습니다. 데이터간에 관계를 정의하고 트랜잭션을 통한 데이터 처리, ACID를 경험해 본 개발자들은 SQL문만 조금 공부한다면 RDB를 사용할 수 있다는 점에 큰 매력을 가지고 사용하였습니다.
하지만 시간이 지나면서 데이터는 점점 많아졌습니다. 인터넷과 모바일 시장이 활성화되면서 RDB만으로는 이 데이터들을 감당하기가 어려워졌습니다. 또한, 빠르게 변화해가는 시대에 따라가는 시스템이 되어야만 했습니다.
관계형 데이터베이스를 사용하는 시스템들은 기존에 정해진 관계로 인해 기능 추가를 위해 테이블 컬럼 하나를 추가하는 일은 시스템 코드를 크게 개편해야만 하는 문제가 존재하였습니다.
이러한 문제를 해결하기 위해 NoSQL이라는 개념이 등장하였습니다.
NoSQL이란 비관계형 데이터베이스입니다. 말 그대로 관계가 없습니다. 이러한 특징으로 인해 현대적인 애플리케이션 구축을 가능하게 합니다.
개발 도중 기능이 변경되거나 추가될 경우 데이터를 추가만 하면 되므로 확장성과 유연성에 굉장히 강력한 이점을 가지고 있습니다.
그럼 Mongodb는 뭐길래 이렇게 갑자기 인기가 많아졌을까요?
Mongodb는 NoSQL의 대표적인 데이터베이스로서 오픈 소스로 이용이 가능한 프로젝트입니다.
스키마를 고정하지 않는 형태로서 json 형태(Key-value)값으로 데이터를 저장하고 있습니다.
MongoDB에 대해 좀 더 자세히 알아볼까요?
이렇게 우리는 MongoDB의 특징과 기능, 장단점에 대해 알아보았습니다. 그럼 관계형 데이터베이스인 MySQL과 비교해볼까요?
RDB에 어울리는 시스템이 존재하듯, Mongodb가 어울리는 시스템 또한 존재합니다. 어떤 종류의 시스템이 Mongodb와 가장 어울릴까요?
이렇게만 보면 MongoDB가 어떻게 사용되는지 구체적으로 알 수 없을 것 같아 실제로 도입된 사례와 오히려 MongoDB의 단점으로 인해 MongoDB -> Mysql로 이전한 사례를 공유드리겠습니다.
MongoDB는 RDB의 시대에서 정반대의 성격을 가지고 꿋꿋이 살아남은 NoSQL의 대표적인 데이터베이스입니다.
RDB와 상반되는 이점으로 처음 프로젝트를 시작할 경우 NoSQL로 시작하면 좀 더 빠른 개발이 가능할 것이라 생각되어집니다.
단지 처리가 빠르다고 MongoDB를 도입하는 것은 옳지 않습니다. NoSQL과 RDB, 두 가지의 이점을 비교하여 내가 개발할 시스템에 가장 적합한 데이터 베이스를 선택하여 개발하시는 것을 추천드립니다.
다음 편에서는 기능에 대해 세부적으로 알아보는 시간을 가져보겠습니다.