모놀리틱 아키텍쳐에서의 데이터베이스

CosmoNumb·2024년 7월 30일
0

MSA

목록 보기
2/13

모놀리틱 아키텍처에서의 데이터베이스

소프트웨어 아키텍처의 세계에서 모놀리틱 아키텍처와 마이크로서비스 아키텍처(MSA)는 자주 비교되며, 이 두 가지 아키텍처는 각각의 특성과 장단점이 있습니다.

특히 데이터베이스 사용 방식에서 큰 차이를 보이는데, 이전에 수행한 프로젝트에서 모놀리틱 아키텍쳐의 구조를 사용함과 동시에 두 개의 데이터베이스(Redis, MySQL)를 사용했기 때문에, 이번 글에서는 지난 글에서 언급한 특장점 외에 모놀리틱 아키텍처에서의 데이터베이스 사용에 대해 상세히 살펴보겠습니다.

모놀리틱 아키텍처에서의 데이터베이스 사용

모놀리틱 아키텍처에서는 일반적으로 하나의 데이터베이스를 사용합니다. 하지만 이는 절대적인 규칙이 아니며, 필요에 따라 다양한 데이터 저장소를 함께 사용할 수 있습니다. 예를 들어, MySQL과 같은 관계형 데이터베이스와 Redis와 같은 캐시 시스템을 동시에 사용하는 경우가 이에 속합니다.

데이터베이스 사용 예

  • 단일 데이터베이스 사용: 애플리케이션의 모든 데이터가 하나의 데이터베이스(MySQL, PostgreSQL 등)에 저장됩니다.
  • 추가 저장소 사용: 성능 향상이나 특정 기능을 위해 Redis와 같은 캐시 시스템이나 NoSQL 데이터베이스를 사용할 수 있습니다.

예시

  • MySQL + Redis: 웹 애플리케이션에서 주 데이터 저장소로 MySQL을 사용하고, 빠른 데이터 접근을 위해 Redis를 캐시로 사용하는 경우. 이 경우 애플리케이션은 여전히 하나의 통합된 코드베이스로 관리되므로 모놀리틱 아키텍처에 속합니다.

데이터베이스 사용 시 고려해야 하는 사항

  1. 성능: 데이터베이스의 성능이 전체 애플리케이션의 성능에 직접적인 영향을 미칩니다. 따라서 성능 최적화가 중요합니다.
  2. 확장성: 데이터베이스가 확장에 어려움을 겪을 수 있으므로, 이를 고려한 설계가 필요합니다.
  3. 유지보수: 단일 데이터베이스 사용으로 인해 발생할 수 있는 유지보수 문제를 미리 예측하고 대비해야 합니다.
  4. 백업 및 복구: 데이터베이스의 백업 및 복구 절차를 잘 마련해 두어야 합니다.

결론

소프트웨어 아키텍처를 선택할 때는 적절한 데이터베이스를 선택하고 이를 아키텍처에 반영하는 것이 중요합니다. 각 아키텍처의 특성과 장단점을 고려하여 프로젝트에 가장 적합한 아키텍처와 데이터베이스를 선택해야 합니다. 저의 프로젝트에서도 Redis와 MySQL을 함께 사용하였지만, 이는 여전히 모놀리틱 아키텍처의 범주에 속했습니다. 결국 중요한 것은 애플리케이션의 전체적인 구조와 데이터베이스 사용 방식이 어떻게 설계되고 관리되는지에 있습니다.


2개의 댓글

comment-user-thumbnail
2024년 8월 1일

TIL 너무 잘 작성해주셨군요! 앞으로도 꾸준히 작성해보아요~!

답글 달기
comment-user-thumbnail
2024년 8월 1일

연속으로 TIL 너무 잘 작성해주셨군요! 앞으로도 꾸준히 작성해보아요! 최고최고!

답글 달기