기존의 비즈니스 계약과 마찬가지로 데이터 계약에도 한 당사자에서 다른 당사자로 전달되는 항목을 규정하는 조건과 조항이 포함됩니다. 데이터 계약에는 데이터 품질 규칙, 스키마 정의, 서비스 수준 계약(SLA), 데이터 생산자 정보 및 서버 정보와 같은 요소가 포함될 수 있습니다.
그러나 데이터 계약이 진정으로 차별화되는 점은 코드로 작성된다는 것입니다. 따라서 이러한 계약은 수작업 프로세스가 아니라 자동화를 통해 시행할 수 있습니다.
데이터 엔지니어링에 대한 데이터 계약의 영향력은 애플리케이션 프로그래밍 인터페이스(API)가 소프트웨어 개발에 미친 영향력에 비유됩니다. API는 소프트웨어 애플리케이션 간 통신을 가능하게 하는 규칙을 정의하는 반면, 데이터 계약은 데이터 소비자가 다양한 소스의 데이터를 성공적으로 통합하고 활용할 수 있도록 하는 규칙을 정의합니다.
또한 API가 소프트웨어 개발의 생산성을 높이고 혁신을 가속화한 것으로 평가받듯이, 데이터 계약을 성공적으로 구현하면 기업과 데이터 사용자에게 다양한 이점을 제공할 수 있습니다.
그중 가장 중요한 것은 데이터 파이프라인 장애를 예방하는 것입니다. 데이터 계약이 없으면 상류 단계의 데이터 생성 변경이 하류 단계 사용자에게 심각한 결과를 초래할 수 있습니다. 데이터 계약은 이러한 호환성 파괴 변경 사항이 데이터 소비자에게 영향을 미치기 전에 식별되고 해결되도록 보장할 수 있습니다.
데이터 계약의 다른 이점으로는 데이터 품질, 데이터 거버넌스 및 확장성 향상이 있습니다. 데이터 계약은 또한 비즈니스 사용자가 조직 전반의 데이터에서 가치를 발견하고 활용할 수 있도록 지원하는 데이터 제품 및 데이터 메시 아키텍처의 기반을 제공합니다.
데이터 품질 툴과 데이터 거버넌스 플랫폼을 포함하여, 기업이 데이터 계약을 정의하고 시행하도록 지원하는 다양한 툴과 플랫폼이 존재합니다.
취약하고 손상된 데이터 파이프라인은 많은 데이터 엔지니어의 골칫거리입니다. 한 연구에 따르면 엔지니어의 절반 이상이 데이터 시스템에서 파이프라인 장애를 적어도 한 달에 한 번 이상 경험하는 것으로 나타났습니다.1
한 데이터 아키텍트가 지적했듯이, 파이프라인은 너무나 자주 "덕트 테이프와 절박함으로 겨우 유지되는 상태"입니다. 이러한 파이프라인이 실패하면 의사결정과 인공지능(AI) 이니셔티브에 심각한 악영향을 미칠 수 있습니다.
데이터 계약은 파이프라인 장애의 빈번한 원인인 데이터 생산자와 데이터 소비자 간의 불일치를 해결함으로써 이러한 결과를 예방하는 데 도움이 될 수 있습니다. 불일치는 데이터 생산자가 제공한 새로운 데이터가 소비자의 기대를 충족하지 못할 때 발생하며, 소비자는 자신의 사용 사례에 맞추기 위해 특정 데이터 유형, 스키마 및 기타 제약 조건에 의존할 수 있습니다.
IBM Lifetime Champion인 Jean-Georges Perrin에 따르면, 하류 단계의 소비자는 자신이 사용하는 데이터의 안정성에 대해 "의구심을 가질 수 있습니다." Perrin은 다음과 같이 말했습니다. "신뢰를 구축하려면 데이터 생산자 또는 데이터 소유자가 약속을 제시하고 보장해야 합니다."
이러한 약속은 데이터 품질, 검증, 액세스 또는 구조에 관한 것이든 관계없이 데이터 계약 구현을 통해 보장될 수 있습니다. 데이터 생산자와 데이터 소비자가 데이터 요구 사항에 합의하고 이를 명문화하면, 데이터 품질 문제가 하류 단계 워크플로에 영향을 미치기 전에 예방할 수 있습니다.
모델 학습과 데이터 분석에 적합한 데이터를 확보하는 것이 정확한 예측에 매우 중요하기 때문에, 데이터 계약은 AI 워크플로에서 특히 중요한 요소로 부상하고 있습니다.
Perrin은 "시스템에 더 나은 데이터가 들어가면, 잘못된 데이터를 넣어 잘못된 결과가 나오는 상황을 피할 수 있습니다."라고 말했습니다.
Think 뉴스레터를 통해 AI, 자동화, 데이터 등 가장 중요하고 흥미로운 업계 동향에 대한 최신 소식을 받아보세요. IBM 개인정보 보호정책을 참조하세요.
데이터 생산자와 소비자 간의 불일치가 데이터 계약의 필요성을 크게 촉진하기 때문에, 이 두 그룹과 데이터 에코시스템 내에서의 역할을 자세히 살펴볼 필요가 있습니다.
데이터 소비자는 하류 단계에서 활용할 수 있도록 데이터를 제공하는 생산자에게 의존합니다. 그러나 이러한 의존 관계만으로는 소비자와 생산자 간의 견고한 관계가 형성되지 않습니다. 이는 생산자가 일반적으로 자신의 애플리케이션에 가장 적합한 형식으로 데이터를 저장하기 때문이며, 하류 단계 소비자의 데이터 관리 요구 사항은 본래 생산자의 주요 관심사가 아닙니다.
그 결과 소프트웨어 엔지니어가 애플리케이션과 코드를 업데이트할 때, 해당 변경 사항이 최종적으로 데이터 소비자에게 전달되는 데이터에 어떤 영향을 미치는지 고려하지 않을 수 있습니다.
이러한 변경 사항이 예상치 못한 경우에는, 1,000개 열이 있는 테이블에서 단 하나의 열을 제거하는 것처럼 비교적 작은 변경이라도 데이터 소비자에게 큰 혼란을 초래할 수 있습니다. 이른바 호환성 파괴 변경 사항은 데이터 흐름을 방해하고 데이터 세트 호환성을 위태롭게 할 수 있습니다.
그 결과 스크립트가 실패하고, 대시보드가 오래되거나 부정확해지며, 사람과 AI 에이전트 모두 핵심 의사결정과 운영에 필요한 신뢰할 수 있는 데이터를 확보하지 못하게 됩니다.
데이터 생산자와 데이터 소비자 간에 명확한 계약을 수립함으로써 데이터 계약은 두 그룹을 분리하는 사일로를 해소하고, 불일치를 방지하며, 보다 효과적인 데이터 파이프라인을 지원할 수 있습니다.
지지자들이 강조하듯이 데이터 계약은 암묵적인 가정을 명시적인 보장으로 전환합니다. 즉, 데이터 생산자가 데이터 소비자에게 정확히 무엇을 제공해야 하는지, 그리고 이를 어떤 방식으로 제공해야 하는지를 구체적으로 규정합니다. 데이터 계약의 주요 요소는 다음과 같습니다.
기본 정보(데모그래픽 정보라고도 함)는 계약에 대한 일반적인 정보를 포함합니다. 여기에는 고유 식별자, 계약 버전(예: 1.0 또는 2.0), 계약 상태(예: "활성" 또는 "사용 중단"), 데이터의 사용 목적 및 데이터 사용에 대한 법적 제한 사항이 포함될 수 있습니다.
스키마 정의는 데이터가 어떻게 구성되는지를 상세히 설명합니다. 여기에는 객체(테이블 및 문서와 같은 데이터 구조), 객체 속성(예: 테이블의 열) 및 타임스탬프나 문자열 길이 제한과 같은 포함된 데이터 유형의 메타데이터가 명시됩니다. 스키마를 관리하기 위한 중앙 집중식 저장소인 스키마 레지스트리는 데이터 계약을 지원하는 데 도움이 될 수 있습니다.
데이터 계약은 고품질 데이터를 보장하기 위한 규칙과 매개변수를 정의합니다. 데이터 계약은 정확성, 완전성, 유효성 및 Null 값 개수와 같은 여러 데이터 품질 지표를 다룰 수 있습니다. 또한 사용자 지정 규칙을 통해 데이터 품질 툴이 품질 검사를 수행할 수 있도록 할 수 있습니다.
데이터 계약에는 데이터 계약과 관련해 도움이 필요한 데이터 소비자를 위해 Slack 채널, Teams 채널, Discord 채팅, 이메일 배포 목록 및 웹사이트와 같은 지원 채널을 명시할 수 있습니다.
데이터 계약의 가격 책정 섹션에는 데이터 소비자가 데이터 제품에 대해 지불해야 하는 비용이 명시됩니다. 여기에는 사용되는 통화와 비용 계산에 사용되는 측정 단위(예: 메가바이트 또는 기가바이트)가 포함될 수 있습니다.
일부 오래된 데이터 계약 템플릿에서는 "이해관계자"라고 불리기도 했던 팀 섹션에는 데이터를 소유한 팀 구성원과 이들이 데이터 계약과 맺고 있는 관계에 대한 정보가 포함됩니다.
데이터 계약의 역할 섹션에는 데이터 소비자에게 데이터 세트에 대한 다양한 유형의 액세스 권한(예: 읽기 또는 쓰기 권한)을 제공하는 역할이 나열됩니다.
데이터 계약에는 공급자가 달성해야 하는 성능 수준을 정의하는 서비스 수준 계약(SLA)에 대한 설명이 포함됩니다. 예를 들어 SLA 섹션에는 데이터가 언제 사용 가능한지, 그리고 얼마나 오랫동안 보존되는지에 대한 보장 사항이 명시될 수 있습니다.
핵심 데이터 계약 값 외에도 이해관계자는 자신의 특정 요구 사항에 맞게 사용자 지정 속성을 데이터 계약에 추가할 수 있습니다. 최신 버전의 널리 사용되는 데이터 계약 템플릿에는 속성 간 관계를 문서화하고, 외부 계약을 참조하며, 일관된 품질 검사를 위한 사전 정의된 데이터 품질 규칙 라이브러리에 액세스하는 기능도 포함되어 있습니다.
데이터 계약은 일반적인 언어로 작성되지 않는다는 점에서 다른 계약과 뚜렷하게 구별됩니다. 대신 일반적으로 사람이 읽을 수 있고 기계도 읽을 수 있는 데이터 직렬화 언어인 YAML 또는 JSON으로 작성됩니다. (직렬화 언어 코딩에 익숙하지 않은 사용자의 경우 데이터 계약을 Excel에서 작성한 후 오픈 소스 툴인 Data Contract CLI를 사용해 YAML 파일로 변환할 수 있습니다.)
데이터 계약을 직렬화 언어로 작성하는 장점은 많은 수작업이 필요한 프로세스를 자동화로 대체할 수 있다는 점입니다. 기계가 읽을 수 있는 데이터 계약은 데이터 플랫폼 및 시행 툴에 통합될 수 있습니다. 조직은 이러한 솔루션을 배포해 데이터 세트가 데이터 계약 규칙을 준수하는지 검증할 수 있으며, 이를 통해 문제가 파이프라인 장애로 이어지기 전에 해결할 수 있습니다.
많은 데이터 계약은 Open Data Contract Standard(ODCS)를 기반으로 합니다. 이름에서 알 수 있듯이 ODCS는 데이터 계약을 표준화하기 위한 오픈 소스 프레임워크입니다. 이 표준은 Apache 2.0 라이선스 기반의 Linux Foundation AI & Data 샌드박스 프로젝트인 Bitol이 정의했으며 GitHub에서 제공됩니다.
이 이니셔티브의 지지자들은 조직이 공급업체 종속 위험 없이 데이터 아키텍처를 지원하는 데이터 계약을 구현할 수 있게 함으로써 혁신을 촉진한다고 설명합니다.
데이터 계약은 데이터 파이프라인의 다양한 문제를 해결하여 조직이 데이터 자산의 가치를 활용할 수 있도록 지원합니다. 데이터 계약의 이점은 다음과 같습니다.
데이터 계약은 상호 연결된 작업 간의 관계, 즉 종속성을 명확히 정의할 수 있습니다. 이러한 종속성이 명확해지면 데이터 생산자는 호환성 파괴 변경 사항을 방지할 수 있습니다.
데이터 계약은 버전 관리되므로 중요한 변경 사항을 반영하기 위해 새로운 버전의 계약이 생성됩니다. 이를 통해 생산자는 스키마 변경과 같은 수정 사항을 소비자가 적응할 시간을 가질 수 있는 "안전한" 방식으로 도입할 수 있으며, 갑작스러운 파이프라인 장애 위험을 줄일 수 있습니다.
데이터 계약을 만드는 과정은 데이터 생산자와 소비자 간의 소통과 합의를 촉진합니다. 계약이 생성된 후에는 버전 관리를 통해 변화하는 데이터와 요구 사항을 반영하면서 지속적인 협업의 기반 역할을 합니다.
데이터 계약은 누가 데이터를 소유하는지, 어떤 역할이 액세스할 수 있는지, 그리고 사용자가 어떻게 지원을 받을 수 있는지를 포함하여 이해관계자와 데이터 간의 관계를 명확히 정의합니다. 계약은 각자의 책임 범위를 명확히 함으로써 더 높은 수준의 책임성을 보장합니다.
데이터 계약은 데이터 거버넌스 툴로 간주될 수 있습니다. 이는 데이터 계약이 데이터 라이프사이클 전반에 걸쳐 데이터 품질, 보안 및 가용성을 보장하는 것과 같은 핵심 거버넌스 목표를 반영하고 시행하기 때문입니다.
데이터 계약은 데이터 거버넌스와 협업을 지원함으로써 데이터 규모가 전례 없는 속도로 증가하더라도 조직과 비즈니스 부서가 데이터를 성공적으로 공유할 수 있도록 지원합니다.
데이터 계약은 데이터 제품 및 데이터 메시와 관련된 논의에서 자주 언급됩니다. 그럴 만한 이유가 있습니다. 데이터 계약은 이 두 기술을 지원하는 데 핵심적인 역할을 하기 때문입니다.
먼저 데이터 제품부터 살펴보겠습니다. 데이터 제품은 다양한 비즈니스 사용 사례를 지원하기 위해 데이터, 메타데이터, 의미 정보 및 템플릿을 결합한 재사용 가능한 독립형 패키지입니다. 데이터 계약은 데이터 제품의 "품질 관리" 역할을 하며, 제품 내 데이터가 일관되고 신뢰할 수 있으며 올바른 형식으로 제공되도록 보장합니다.
Perrin은 데이터 제품과 데이터 계약의 관계를 가족 관계에 비유하며 다음과 같이 설명합니다. "데이터 계약과 데이터 제품은 떼려야 뗄 수 없는 사촌과 같습니다. 항상 함께 일하고, 항상 정렬되어 있으며, 모든 것이 원활하게 작동하도록 보장합니다."
데이터 제품에 대한 데이터 계약의 중요성은 데이터 메시의 기능 측면에서도 중요한 의미를 가집니다. 데이터 메시는 마케팅, 영업 또는 고객 서비스와 같은 비즈니스 도메인별로 데이터를 구성하는 분산형 데이터 아키텍처입니다.
데이터 메시 아키텍처에서는 도메인 데이터 생산자가 데이터 제품을 활용하여 비즈니스 사용자가 조직의 여러 부문에 있는 데이터를 검색하고 사용할 수 있도록 합니다. 따라서 데이터 계약이 데이터 제품의 성능을 보장하면 데이터 메시 전체의 성공을 지원하게 됩니다.
데이터 전문가 Chad Sanderson, Mark Freeman 및 B.E. Schmidt는 저서 Data Contracts에서 데이터 계약이 작동하는 과정을 다음과 같이 설명합니다.3
조직은 데이터 계약을 생성하고 관리하기 위해 다양한 툴과 플랫폼을 선택할 수 있습니다. 그 이점에는 다음이 포함됩니다.
조직의 고유한 요구 사항과 기존 데이터 스택은 어떤 데이터 계약 솔루션 또는 솔루션 조합이 데이터 계약을 지원하는 데 가장 적합한지를 결정하는 데 도움이 될 수 있습니다.
직관적인 그래픽 인터페이스를 통해 스트리밍 데이터 파이프라인을 생성하여 하이브리드 및 멀티클라우드 환경 전반에서 완벽한 데이터 통합을 촉진합니다.
watsonx.data를 사용하면 오픈, 하이브리드 및 관리형 데이터 저장소를 통해 데이터의 위치와 관계없이 모든 데이터로 분석과 AI를 확장할 수 있습니다.
IBM Consulting을 통해 엔터프라이즈 데이터의 가치를 실현하여 비즈니스 이점을 제공하는 인사이트 중심의 조직을 구축하세요.
1 “현대적인 인프라는 데이터 엔지니어가 최대 가치를 제공할 수 있도록 지원합니다.” Fivetran. 2021년 3월 11일.
2,3 Data Contracts: 대규모 운영 환경을 위한 프로덕션급 파이프라인 개발. O'Reilly Media. 2025년 11월.