관계형 데이터베이스를 MongoDB로 교체
View Presentation 해당 세션에서는 관계형 데이터베이스에서 벗어나, MongoDB를 사용하여 문서 모델에 이르기까지 응용 프로그램의 현대화를 시작하는 방법에 대해 설명합니다. 금융 부문의 실제 사례를 기반으로 애플리케이션의 변환과 클라우드로의 이동을 살펴 보겠습니다. 웨비나 주요내용: 객체 모델링 RDBMS 및 문서 Hibernate등 기존 ORM 사용에 대한 이야기 Sizing 작업 및 RDBMS교체에 대한 서비스 내역 Try MongoDB Atlas, our fully-managed database as a serv…
![]() 서론
NoSQL 이나 RDB가 중요한게 아니다.
기존에 Fail 포인트를 어떤 방식으로 해결 할 수 있느냐가 중요.
2000년대 초
RDMS를 통해서 비정형데이터가 발생됨에 따라 모든걸 다루기 힘들다.
Multi-Model 이냐 Polyglot Persistence 냐 논쟁이 많았다.
최근에 Document Store를 제공하기 시작했다.
시장에서 필요한 데이터 모델이 이 방향으로 다가가고 있다.
MongoDB가 리딩을 하고 있었다.
데이터가 곧 돈이 된다는 것이 각광을 받으면서 어떻게 서비스를 하고 어떤 데이터 모델이 적합한지
고민이 많아지고 있다.
 정형화 되고 구조적인 아키텍처 형태로 이루어져 있다.
  데이터 중복이나 데이터 이동이 많이 발생된다.이런 데이터를 사용하기 위한 공통된 API가 없고, 이런 이유로
코드에 대한 복잡성이 증가되고, 테스트 범위가 증가된다.
운영이나 관리 하는 입장에서는 비용이 증가된다.
왜 리팩토링이 필요한가
 S&P 500개 기업에서의 곤란한 점들.
 예전에 비해 현대화된 시스템에서는 유지보수 기간이 횟수가 증가되고 있다.
(업그레이드, 패치 등)
DownTime에 대해서 경영진 입장에서는 낭비라 생각한다.
1분당 800만원 꼴
 그럼 레거시를 현대화는 것은 무엇이냐?
최신의 기술들과 포트폴리오들을 전략적으로 적용하는 것이 필요하다.
폭포수 조직 -> DevOps로 변경
애자일 문화를 적용
 아키텍처 재설계 관점에서는 디자인, 패러다임, 변경할 것인가 유지할 것인가를 고민하는 것이 중요하다.
 플랫폼 재설계에 관점에서는 핵심역량 재평가, 유지보수 작업 범위를 재설정, 인프라 운영 지출 비즈니스 기회를 고려해야 한다.
클라우드 서비스를 이용할 것인가 아니면 장비를 구매해서 사용할 것인가 이런 저런 고민이 필요하다.
 DB 관점을 찾아보자.
익숙한 RDBMS 모양에서 비즈니스 관점의 모델과 데이터 관점의 모델이 서로 다르다.
ORM을 다뤄서 데이터를 다룬다고 할 때, RDB를 사용하면 개발 생산성이나 효율을 찾기가 힘들다.

 ORM이나 SQL Mapper를 사용하는 것을 발표자 관점에서는 코드 상에서 간편하게 제어 할 수 있도록 하기 위해서 만들어졌다고 생각하지만, 결국엔 SQL Query를 이해해야 하고 깊게 공부해야 한다.
 MongoDB 구성
Document형태의 스키마 구조로 인하여, RDBMS를 이용했을 때 처럼 각 테이블을 맵핑 하는 노력을 할 필요가 없다. 하지만 ORM, RDMS에 너무 익숙하다보니 동일하게 동작하는 방식의 맵핑 방법을 제공해준다.

 구글에서는 RDB와 Document DB를 생산성을 비교하면 25% 정도 향상된다고 한다.
 기존 개발 RDB나 MongoDB의 API의 다른점은 거의 없다.
개발자 친화적인 API는 무엇인가 했을 땐 Document형태가 알맞아보인다.
 RDBMS로 구성했던 것을 MongoDB로 변경하면 아래와 같이 되었다.
 변경하게 되면 데이터베이스가 하나로 통합되는 형태가 된다.
 관계형 분리된 테이블 형태가 Document로 변경된다.
이때 5가지 과정이 필요하다.
  Document로 전환 할 땐, 사용 패턴(엑세스 패턴)에 맞게 스키마 설계를 해야 한다.
   데이터 마이그레이션을 할 수 있는 방법은 무엇이냐?
 여러 회사들이 툴들을 제공해주고 있다. 이런 툴 외에도 마이그레이션 하는 웨비나를 이야기할 예정.
   RDB와 Document DB에서는 하드웨어 선정은 동일하게 바라보면 된다.
따라서 성능이 생각보다 빠르지 않다고 하면, 구성이나 최적화 작업을 해야 한다.
 이러한 작업을 하기 위해서는 인덱수 종류나 기능들이 있는지 살펴봐야 한다.
RDBMS를 버금가는 급의 Index 기능을 제공해준다.
 RDB에서는 되는데 MongoDB에서는 안되는 것은 무엇이냐?
MVIEW라는 기능이 있다.
  마지막으로 QA 테스트를 진행한다.
  
나머지는 MongoDB에서 지원해주는 내용을 주로 다룬다.
    비정규화를 하기 때문에 저장 공간을 50% 절약 할 수 있었다.
 MongoDB가 금융에서 활용이 가능하냐?
 RDB애서 MongoDB로 전환한 회사
