개인(팀) 프로젝트/기타 프로젝트 & 활동

[웨비나] 'RDBMS에서 MongoDB로의 Replacement 전략과 사례' 를 들으며

한소희DE 2021. 6. 24. 16:09

나는 현재 스마트 해상물류 ICT 멘토링 프로젝트에서, MongoDB를 다루고 있다.

그리고, 예비 데이터 엔지니어로써 RDBMS와 NoSQL에 대해 공부하고 있기도 한다. 따라서, NoSQL 중에 인지도가 높은 MongoDB의 다양한 사례를 보면, 추후 인사이트를 넓히는 데에 도움이 될 것 같아 웨비나를 신청했다.

 

 

 

 

 

 

 

 

 

목차

웨비나 개요

기존 RDBMS와 MongoDB의 차이, MongoDB의 장점

웨비나 후기

 


 

 

01. 웨비나 개요

관계형 데이터베이스는 30년 넘게 엔터프라이즈 데이터 관리의 토대가 되어 왔다고 한다. 그러나 오늘날 애플리케이션을 구축하고 실행하는 방식과 끊임없이 증가하는 새로운 데이터 소스 및 사용자 로드가 더해지면서 관계형 데이터베이스는 한계에 부딪히게 된다. 따라서 최신 애플리케이션의 요구 사항에 보다 잘 맞는 데이터베이스를 찾고 있다면 지금이 바로 마이그레이션해야 할 때기 때문에, 이 세미나에서는 MongoDB로의 Replacement 사례를 다룬다.

 


 

 

02. 기존 RDBMS와 MongoDB의 차이, MongoDB의 장점

기존의 RDBMS는, 일반적으로 많이 쓰이고 있는 형태로, 데이터의 스키마가 명확히 정의된 시스템이다.

이에 반해, MongoDB는 NoSQL의 일종인데, 이는 테이블 간 관계를 정의하지 않고 하나의 테이블로 구성되어 있다. 일반적으로 테이블 간 Join도 불가능한 게 NoSQL이다.

 

RDBMS는 비교적 체계적이라는 장점이 있지만, 데이터의 중복 및 데이터 이동에 많은 자원이 소비된다. 이는 코드 변경에 따른 테스트 범위가 넓고, 데이터 사용이 단순하지 않다.

 

요즘은 데이터 소스가 매우 다양하다. 따라서 RDBMS 처럼 구조화된 데이터 설계에서의 Legacy Modernization이 왜 필요한 실정이다.

 

그중에서도, 넓은 확장성과 복잡성이 감소된 MongoDB를 추천한다는 것이 웨비나의 최종 결론이었다.

 

MongoDB는 다양한 클라우드로 원활한 이동이 가능하며, 효율적인 데이터 스토리지를 제공한다. 이는 복잡성을 감소시키며, 비즈니스 가치 실현에 대한 시간이 단축된다고 한다. 따라서 분산 스토리지에서도 확장성이 좋은 MongoDB가 후보로 많이 거론되고 있다.

 

 

2-1. ORM 

 

MongoDB는 ORM이 필요 없다는 것이 큰 특징이다.

기존 RDBMS는, 비즈니스 로직에서 ORM을 사용해, DB 엔진에 접근해야 한다.

하지만, MongoDB는 ORM 필요 없이, 바로 비즈니스 로직에서 DB 엔진에 접근이 가능하다.

 

ORM이란?

객체와 관계형 데이터베이스의 데이터를 자동으로 매핑(연결)해주는 것을 말한다. RDBMS에서는 데이터베이스 종속성을 없애기 위해 ORM을 사용한다.

 

 

 

2-2. 도큐먼트 테이블 : Key-Value Store

 

MongoDB는 Key-Value 형식을 이용해 데이터를 수집해둔다. RDBMS에서 사용하는 행이라는 개념보다 유연한 개념이다. 따라서 이 복잡한 계층 관계를 하나의 레코드에 입력 및 표현한다. 따라서, 데이터를 한 번에 저장해도 효율성이 높다. (일반적인 통신규격으로 json을 사용한다고 한다.)

 

Key-Value 형식이란?
키와 값을 한 쌍으로 저장하여, 저장된 위치에서 값을 가져온다. 해시와 비슷한 원리라고 보면 된다.

 

 

2-3. Scale-Out - Sharding

 

MongoDB는 Sharding을 통해 데이터 증가에 따른 효율적인 Scale-Out 방식을 구현하고, 스키마도 유연해서 효율적으로 데이터 저장이 가능하다는 특징이 있다.

 

Scale-Out이란?
접속된 서버의 대수를 늘려 처리 능력을 향상하는 방법. RDBMS의 단점인 성능 이슈를 향상할 수 있다.

🔥 Sharding이란?
데이터의 일관성은 없지만, 여러 대의 서버에 데이터를 분산 저장하는 방법. RDBMS 스키마에 맞춰 데이터를 저장 및 관리해야 한다는 한계를 극복하고 수평적인 확장성을 실현하게 한다.

예를 들어, 날씨 데이터를 각 계절 서버에 저장한다. 이때 노드를 추가해가며 데이터를 분산 저장하는 것을 뜻한다.

 

RDBMS에서는 Sharding이 안 되는가? 어렵다. 테이블 간 매핑이 되어 있기 때문이다.

 

 

 

 


 

03. 웨비나 후기

 

최근 문서를 보면, RDBMS보다 NoSQL에 대한 언급이 점차 많아지는 것을 느끼고 있다. 이렇게 RDBMS에서 NoSQL로 대체되었을 때의 긍정적 효과를 보며 NoSQL에 대해 더 많이 공부해야겠다고 느꼈다. (사실 학교에서는 예전 자료 즉, RDBMS에 대해서 더 많이 다뤘던 것 같다... 역시 책상과 실무는 다르다는 것을 느꼈다.)

 

이번 해상물류 ICT 멘토링에서도, 사실 테이블을 설계해야겠다고 생각하고 있었는데, 데이터 웨어하우스를 보다 더 효율적으로 설계하는 방법론에 대해 더 고민해보아야겠다는 생각을 할 수 있었다. NoSQL을 활용한 다양한 사례를 더 구글링해보아야지! 짧은 웨비나였지만, 의미 있는 시간이었다.

 

 

그리고 무엇보다도, 의미있는 질문을 한 세 명에게 도서 증정을 하는 이벤트에 당첨이 되었다! 짝짝

 

출처: 바이라인 네트워크, 몽고DB

세미나를 들으며, 궁금한 점이 참 많았는데 그중에서도 sharding에 대해 궁금했다. 따라서 sharding 관련 질문을 드렸는데, 운 좋게도 실시간 QnA 이벤트 당첨자가 되었다!

 

 

내가 했던 질문. 답변 정리는 위 2-3에 작성해두었다.

 

아무래도 MongoDB에서 Sharding 구현이 핵심 기능 중 하나여서, 의미있는 질문으로 선발이 되지 않았나 싶다.

무료로 양질의 웨비나를 들을 수 있던 것도 좋았는데, 경품까지 받게되어 더더 좋았던 ㅎㅎ 시간이었다!