폴리글롯 지속성

Polyglot persistence

폴리글롯 지속성은 응용프로그램 전체 또는 응용프로그램의 작은 구성요소 내에서 다양한 데이터 스토리지 요구에 대해 다중 데이터 스토리지 기술을 사용하는 것을 일컫는 용어다. 이와 같이 다양한 데이터 스토리지 요구는 두 경우 모두에서 발생할 수 있다. 즉, 데이터를 다르게 저장해야 하는 애플리케이션의 여러 애플리케이션 또는 단일 구성요소를 가진 기업이다.

설명

폴리글롯 지속성은 폴리글롯 프로그래밍이라는 용어가 어떻게 정의되는지와 그 기원을 공유한다. 폴리글롯 프로그래밍은 닐 포드가 2006년 만든 용어로, 서로 다른 언어들이 서로 다른 문제를 다루는데 적합하다는 점을 이용하기 위해 컴퓨터 어플리케이션을 서로 다른 프로그래밍 언어의 혼합으로 작성해야 한다는 생각을 표현한다. 복잡한 애플리케이션은 다른 유형의 문제를 결합하므로, 각 직업에 맞는 언어를 선택하는 것이 단일 언어를 사용하여 문제의 모든 측면을 해결하려고 하는 것보다 더 생산적일 수 있다. 이러한 동일한 개념을 데이터베이스에 적용할 수 있으며, 애플리케이션은 다른 데이터베이스와 통신할 수 있으며, 최종 목표를 달성하기 위해 가장 적합한 용도로 각각을 사용한다. 따라서 폴리글롯 지속성이라는 용어가 사용된다.

서로 다른 문제를 해결하기 위해 사용할 수 있는 수많은 데이터베이스가 있기 때문에, 프로그램의 모든 요구 사항을 충족하기 위해 단일 데이터베이스를 사용하는 것은 수행되지 않는 "모든 거래의 잭, 어떤 것도 마스터하지 않는" 해결책이 될 수 있다. 를 들어, 관계형 데이터베이스는 다양한 데이터 테이블 사이에 존재하는 관계를 잘 시행한다. 관계를 발견하거나 동일한 객체에 속하는 다른 테이블의 데이터를 찾기 위해 SQL 조인 작업을 사용할 수 있다. 이것은 데이터 크기가 작을 때 효과가 있을 수 있지만, 관련 데이터가 커지면 문제가 된다. 그래프 데이터베이스는 빅 데이터의 경우 관계 문제를 해결할 수 있지만 관계형 데이터베이스 관리 시스템에 의해 더 잘 제공될 수 있는 데이터베이스 트랜잭션의 문제는 해결하지 못할 수 있다. 대신 문제의 특정 부분에 대한 비정형 데이터를 저장하는 데 NoSQL 문서 데이터베이스를 사용할 수 있다. 따라서 서로 다른 문제는 동일한 애플리케이션 내에서 서로 다른 데이터베이스 시스템에 의해 해결된다.

이러한 데이터 스토리지 기술 중 일부는 다음과 같이 제한되지 않을 수 있다.

Martin Fowler는 자신의 기사에서 "이것의 흥미로운 결과 중 하나는 적절한 규모의 기업이 다양한 종류의 데이터를 위한 다양한 데이터 스토리지 기술을 보유하게 폴리글로트 지속성으로 전환하기 위한 준비를 하고 있다는 것이다. 관계형 상점에서 여전히 많은 양의 데이터가 관리될 것이지만, 점점 더 우리는 먼저 데이터를 어떻게 조작하고 싶은지 묻고 그 다음에야 어떤 기술이 가장 적합한지 알아낼 수 있을 것이다."[1]

참조

  1. ^ "bliki: PolyglotPersistence". martinfowler.com. Retrieved 2020-07-09.

외부 링크