[Multiple Database Banking Simulation] 0. 프로젝트 초기 방향성 및 주제

dbdbdeep·2025년 8월 31일
post-thumbnail

프로젝트 진행

주제선정

원하는 것

  1. 다양한 MDBS를 경험
  2. 각 MDBS별로 다양한 설정 및 튜닝 경험
  3. 다양한 최적화 방법을 통한 통계
  4. 대용량 서비스를 통한 실무적인 경험( 대용량 서비스를 경험할 순없어서 가상의 데이터를 생성 )

결론 : 대용량 서비스를 가상으로 만들어 다양한 MDBS를 실험할 수 있는 시스템 개발

나온결론

하나의 서버에 4개의 MDBS를 설치한다.
1. Mysql
2. Oracle
3. PostgreSQL
4. MongoDB

각 DBMS를 하나의 은행으로 생각하고 시스템을 개발할 것이며, RDG라는 Python 파일을 만들어 가상으로 데이터를 발생시킬 것이다.


위의 그림이 시스템의 간단한 구조가 된다.

React,Flask,DBMS들을 Docker로 관리하여 시스템을 편리하게 관리할 것이다.
우분투 서버에서 사용하는 Shell Programming, Python 프로그램, DB에서 사용하는 데이터만 서버에서 관리하며 local로 관리를 한다.

FE(React)

디자인은 "v0"이라는 서비스를 이용해 디자인을 할 것이다.
react로 만들어주니 약간만 수정해주면 될 것같다.

BE(Flask)

기본적인 기능들을 구현한 후에 추후에 데이터 엔지니어링 관점에서 BE를 발전시킬 예정이다.

MDBS

각 DB를 설치한 후 기본적인 세팅을 기준으로 여러가지 튜닝이나 설정을 테스트할 예정이다.

4개의 DBMS를 설치한 후 기본세팅(스키마, TableSpace등)을 한 후 데이터를 저장하는 공간과 분리하여 언제든지 초기상태로 돌아갈 수 있게 설정을 할 예정이다.
데이터는 삭제가 되지않으며, 설정값만 돌아갈 수 있게할 예정이다. 그래서 그림에서 DB Data와 분리하였다.

Docker

Docker Compose를 이용하여 4개의 DBMS와 FE,BE를 동시에 관리할 예정이다.

RDG

RDG(Random Data Generator)라는 이름을 지어 파이썬으로 백그라운에서 실행하게될 프로그램이다. 이 프로그램에서 초당 n개의 데이터를 계속 발생시킬 예정이다.
예를들면 Mysql 은행에서 Oracle 은행으로 Random값 만큼 돈을 보낼 것이다.

Shell Programming

다양한 Shell을 활용할 것이다. 예를 들면 각 DB에 대한 CPU, Ram점유율 등을 BE로 보내 FE에 표현, RDG 프로그램을 FE에서 신호를 보내면 끌 수 있게한다던지 다양한 Shell을 작성하게 될 예정이다.

profile
DB관련 공부를 합니다.

0개의 댓글