시스템 설계 및 디자인 패턴/클라우드 디자인 패턴

데이터 관리 패턴

검정비니 2023. 12. 25. 22:14
728x90
반응형

데이터는 중앙화된 방식과 분산 방식 이렇게 2가지 방법으로 관리할 수가 있다.

 

1. 중앙 데이터 관리

중앙 데이터 관리 (centralized data management) 방식은 전통적인 데이터 중심 애플리케이션에서 가장 자주 사용하는 방식이었다.

모든 데이터를 단일 중앙 집중형 데이터베이스에 저장하는 방식으로 데이터를 저장 및 처리하도록 하는 것이다.

 

이 방식은 DB의 정규화가 가능하며, 아주 높은 데이터 일관성을 제공하는 등의 장점이 있다.

여러 컴포넌트가 데이터베이스의 모든 테이블에 접근할 수 있기 때문에 중앙 데이터 스토어가 여러 테이블에 데이터를 빠르게 저장하고 가져올 수 있다.

반면, 데이터베이스와 애플리케이션들 간에 강한 연관성이 생기게 되기에  Cloud-Native하지 못한 방법으로 취급된다.

 

2. 분산 데이터 관리

중앙 데이터 관리의 문제를 해결하기 위해, 각각의 독립적인 기능들을 마이크로서비스로 셜계하고, 각 마이크로서비스가 별도의 데이터 스토어를 사용하도록 만든다. 이런 분산 데이터관리 방식은 각 마이크로서비스가 다른 마이크로서비스에 아무런 영향을 미치지 않고도 그 크기를 자유롭게 조절할 수 있도록 해준다.

이런 방식으로 데이터베이스를 사용하게 되면 데이터베이스가 애플리케이션과 강한 연관성을 가지지 않으며, 쉽게 애플리케이션을 바꿀 수 있게 된다. 이를 통해 유지 보수를 용이하게 하며, 각 팀마다 배포를 더 유연하고 자유롭게 할 수 있도록 만들게 된다.

 

분산 데이터 관리 방식을 사용하면 각 서비스별로 데이터에 더 적합한 데이터 스토어를 사용할 수도 있다. 예를 들어 온라인 쇼핑몰 애플리케이션의 지불 서비스의 경우 트랜잭션 처리를 위해 관계형 데이터베이스를 사용하고, 조회 서비스는 각 조회 내용에 대한 세부 정보를 저장하기 위한 도큐먼트 스토어를, 장바구니 서비스는 고객이 골라 담은 아이템을 저장하기 위한 분산 key-value 스토어를 사용할 수 있다.

 

3. 하이브리드 데이터 관리

단일 데이터베이스를 사용하게 되면 운영 상 많은 이점을 가질 수 있다. 데이터 보호 관련 법률 적용 및 보안 정책 강제하는 등의 방법론에 있어서는 분산 방식보다 단일 방식이 더 사용하기 용이할 것이다.

 

분산 데이터 관리 방식의 단점 중 하나로는 각 서비스별로 별도의 데이터 스토어를 사용하는데 따른 비용 부담이다. 그래서 크지 않은 조직의 경우에는 하이브리드 관리 방식을 사용하기도 한다. 이 방식에서는 여러 마이크로서비스가 같은 데이터베이스를 공유하며, 같은 팀이 이 서비스들을 관리하고 같은 바운디드 컨텍스트 내에 존재하게 된다.

하지만 하이브리드 데이터 관리 방식을 사용할 때는 다른 서비스가 사용하는 테이블에 직접 접근하지 않도록 주의해야 한다.

즉, 하이브리드 데이터 관리의 경우, 마이크로서비스들이 동일한 DB 인스턴스 (혹은 클러스터)를 사용하나, 서로 사용하는 테이블이 다르도록 설정함으로써 관리의 용이함과 개발 및 유지보수의 유연성을 모두 가지게 되는 것이다.

 

반응형