데이터 계약이란 무엇인가요?

데이터 계약의 정의

데이터 계약은 데이터품질, 구조, 의미 및 가용성을 정의하는 데이터 생산자와 데이터 소비자 간의 공식적인 계약입니다. 이러한 계약을 수립하고 시행하면 기업은 데이터 기반 의사결정 역량을 강화할 수 있습니다.

 

기존의 비즈니스 계약과 마찬가지로 데이터 계약에도 한 당사자에서 다른 당사자로 전달되는 항목을 규정하는 조건과 조항이 포함됩니다. 데이터 계약에는 데이터 품질 규칙, 스키마 정의, 서비스 수준 계약(SLA), 데이터 생산자 정보 및 서버 정보와 같은 요소가 포함될 수 있습니다.

그러나 데이터 계약이 진정으로 차별화되는 점은 코드로 작성된다는 것입니다. 따라서 이러한 계약은 수작업 프로세스가 아니라 자동화를 통해 시행할 수 있습니다.

데이터 엔지니어링에 대한 데이터 계약의 영향력은 애플리케이션 프로그래밍 인터페이스(API)소프트웨어 개발에 미친 영향력에 비유됩니다. API는 소프트웨어 애플리케이션 간 통신을 가능하게 하는 규칙을 정의하는 반면, 데이터 계약은 데이터 소비자가 다양한 소스의 데이터를 성공적으로 통합하고 활용할 수 있도록 하는 규칙을 정의합니다.

또한 API가 소프트웨어 개발의 생산성을 높이고 혁신을 가속화한 것으로 평가받듯이, 데이터 계약을 성공적으로 구현하면 기업과 데이터 사용자에게 다양한 이점을 제공할 수 있습니다.

그중 가장 중요한 것은 데이터 파이프라인 장애를 예방하는 것입니다. 데이터 계약이 없으면 상류 단계의 데이터 생성 변경이 하류 단계 사용자에게 심각한 결과를 초래할 수 있습니다. 데이터 계약은 이러한 호환성 파괴 변경 사항이 데이터 소비자에게 영향을 미치기 전에 식별되고 해결되도록 보장할 수 있습니다.

데이터 계약의 다른 이점으로는 데이터 품질, 데이터 거버넌스 및 확장성 향상이 있습니다. 데이터 계약은 또한 비즈니스 사용자가 조직 전반의 데이터에서 가치를 발견하고 활용할 수 있도록 지원하는 데이터 제품데이터 메시 아키텍처의 기반을 제공합니다.

데이터 품질 툴과 데이터 거버넌스 플랫폼을 포함하여, 기업이 데이터 계약을 정의하고 시행하도록 지원하는 다양한 툴과 플랫폼이 존재합니다.

데이터 계약이 중요한 이유는 무엇인가요?

취약하고 손상된 데이터 파이프라인은 많은 데이터 엔지니어의 골칫거리입니다. 한 연구에 따르면 엔지니어의 절반 이상이 데이터 시스템에서 파이프라인 장애를 적어도 한 달에 한 번 이상 경험하는 것으로 나타났습니다.1

한 데이터 아키텍트가 지적했듯이, 파이프라인은 너무나 자주 "덕트 테이프와 절박함으로 겨우 유지되는 상태"입니다. 이러한 파이프라인이 실패하면 의사결정과 인공지능(AI) 이니셔티브에 심각한 악영향을 미칠 수 있습니다.

데이터 계약은 파이프라인 장애의 빈번한 원인인 데이터 생산자와 데이터 소비자 간의 불일치를 해결함으로써 이러한 결과를 예방하는 데 도움이 될 수 있습니다. 불일치는 데이터 생산자가 제공한 새로운 데이터가 소비자의 기대를 충족하지 못할 때 발생하며, 소비자는 자신의 사용 사례에 맞추기 위해 특정 데이터 유형, 스키마 및 기타 제약 조건에 의존할 수 있습니다.

IBM Lifetime Champion인 Jean-Georges Perrin에 따르면, 하류 단계의 소비자는 자신이 사용하는 데이터의 안정성에 대해 "의구심을 가질 수 있습니다." Perrin은 다음과 같이 말했습니다. "신뢰를 구축하려면 데이터 생산자 또는 데이터 소유자가 약속을 제시하고 보장해야 합니다."

이러한 약속은 데이터 품질, 검증, 액세스 또는 구조에 관한 것이든 관계없이 데이터 계약 구현을 통해 보장될 수 있습니다. 데이터 생산자와 데이터 소비자가 데이터 요구 사항에 합의하고 이를 명문화하면, 데이터 품질 문제가 하류 단계 워크플로에 영향을 미치기 전에 예방할 수 있습니다.

모델 학습과 데이터 분석에 적합한 데이터를 확보하는 것이 정확한 예측에 매우 중요하기 때문에, 데이터 계약은 AI 워크플로에서 특히 중요한 요소로 부상하고 있습니다.

Perrin은 "시스템에 더 나은 데이터가 들어가면, 잘못된 데이터를 넣어 잘못된 결과가 나오는 상황을 피할 수 있습니다."라고 말했습니다.

데이터 생산자와 데이터 소비자: 주요 차이점과 역할

데이터 생산자와 소비자 간의 불일치가 데이터 계약의 필요성을 크게 촉진하기 때문에, 이 두 그룹과 데이터 에코시스템 내에서의 역할을 자세히 살펴볼 필요가 있습니다.

  • 데이터 생산자는 애플리케이션을 구축하면서 데이터를 수집하고 저장하는 소프트웨어 엔지니어인 경우가 많습니다. 이 데이터에는 고객 주문과 같은 트랜잭션 이벤트가 포함되는 경우가 많으며, 이러한 데이터는 스키마, 크기, 내용 등 여러 측면에서 크게 달라질 수 있습니다.2

  • 데이터 소비자에는 데이터 엔지니어, 데이터 과학자 및 프로그래밍 언어를 사용해 데이터를 변환 및 분석하고 데이터 파이프라인을 구축하는 기타 데이터 팀 구성원과 같은 기술적 데이터 소비자와, 변환된 데이터를 활용해 의사결정을 내리는 비기술적 데이터 소비자, 즉 비즈니스 사용자가 포함됩니다.

데이터 소비자는 하류 단계에서 활용할 수 있도록 데이터를 제공하는 생산자에게 의존합니다. 그러나 이러한 의존 관계만으로는 소비자와 생산자 간의 견고한 관계가 형성되지 않습니다. 이는 생산자가 일반적으로 자신의 애플리케이션에 가장 적합한 형식으로 데이터를 저장하기 때문이며, 하류 단계 소비자의 데이터 관리 요구 사항은 본래 생산자의 주요 관심사가 아닙니다.

그 결과 소프트웨어 엔지니어가 애플리케이션과 코드를 업데이트할 때, 해당 변경 사항이 최종적으로 데이터 소비자에게 전달되는 데이터에 어떤 영향을 미치는지 고려하지 않을 수 있습니다.

이러한 변경 사항이 예상치 못한 경우에는, 1,000개 열이 있는 테이블에서 단 하나의 열을 제거하는 것처럼 비교적 작은 변경이라도 데이터 소비자에게 큰 혼란을 초래할 수 있습니다. 이른바 호환성 파괴 변경 사항은 데이터 흐름을 방해하고 데이터 세트 호환성을 위태롭게 할 수 있습니다.

그 결과 스크립트가 실패하고, 대시보드가 오래되거나 부정확해지며, 사람과 AI 에이전트 모두 핵심 의사결정과 운영에 필요한 신뢰할 수 있는 데이터를 확보하지 못하게 됩니다.

데이터 생산자와 데이터 소비자 간에 명확한 계약을 수립함으로써 데이터 계약은 두 그룹을 분리하는 사일로를 해소하고, 불일치를 방지하며, 보다 효과적인 데이터 파이프라인을 지원할 수 있습니다.

데이터 계약에는 무엇이 포함되나요?

지지자들이 강조하듯이 데이터 계약은 암묵적인 가정을 명시적인 보장으로 전환합니다. 즉, 데이터 생산자가 데이터 소비자에게 정확히 무엇을 제공해야 하는지, 그리고 이를 어떤 방식으로 제공해야 하는지를 구체적으로 규정합니다. 데이터 계약의 주요 요소는 다음과 같습니다.

  • 기본 정보
  • 스키마
  • 데이터 품질
  • 지원 채널
  • 가격
  • 역할
  • 서비스 수준 계약(SLA)
  • 인프라 및 서버

기본 정보

기본 정보(데모그래픽 정보라고도 함)는 계약에 대한 일반적인 정보를 포함합니다. 여기에는 고유 식별자, 계약 버전(예: 1.0 또는 2.0), 계약 상태(예: "활성" 또는 "사용 중단"), 데이터의 사용 목적 및 데이터 사용에 대한 법적 제한 사항이 포함될 수 있습니다.

스키마

스키마 정의는 데이터가 어떻게 구성되는지를 상세히 설명합니다. 여기에는 객체(테이블 및 문서와 같은 데이터 구조), 객체 속성(예: 테이블의 열) 및 타임스탬프나 문자열 길이 제한과 같은 포함된 데이터 유형의 메타데이터가 명시됩니다. 스키마를 관리하기 위한 중앙 집중식 저장소인 스키마 레지스트리는 데이터 계약을 지원하는 데 도움이 될 수 있습니다.

데이터 품질

데이터 계약은 고품질 데이터를 보장하기 위한 규칙과 매개변수를 정의합니다. 데이터 계약은 정확성, 완전성, 유효성 및 Null 값 개수와 같은 여러 데이터 품질 지표를 다룰 수 있습니다. 또한 사용자 지정 규칙을 통해 데이터 품질 툴이 품질 검사를 수행할 수 있도록 할 수 있습니다.

지원 채널

데이터 계약에는 데이터 계약과 관련해 도움이 필요한 데이터 소비자를 위해 Slack 채널, Teams 채널, Discord 채팅, 이메일 배포 목록 및 웹사이트와 같은 지원 채널을 명시할 수 있습니다.

가격 책정

데이터 계약의 가격 책정 섹션에는 데이터 소비자가 데이터 제품에 대해 지불해야 하는 비용이 명시됩니다. 여기에는 사용되는 통화와 비용 계산에 사용되는 측정 단위(예: 메가바이트 또는 기가바이트)가 포함될 수 있습니다.

일부 오래된 데이터 계약 템플릿에서는 "이해관계자"라고 불리기도 했던 팀 섹션에는 데이터를 소유한 팀 구성원과 이들이 데이터 계약과 맺고 있는 관계에 대한 정보가 포함됩니다.

역할

데이터 계약의 역할 섹션에는 데이터 소비자에게 데이터 세트에 대한 다양한 유형의 액세스 권한(예: 읽기 또는 쓰기 권한)을 제공하는 역할이 나열됩니다.

서비스 수준 계약(SLA)

데이터 계약에는 공급자가 달성해야 하는 성능 수준을 정의하는 서비스 수준 계약(SLA)에 대한 설명이 포함됩니다. 예를 들어 SLA 섹션에는 데이터가 언제 사용 가능한지, 그리고 얼마나 오랫동안 보존되는지에 대한 보장 사항이 명시될 수 있습니다.

인프라 및 서버

Kafka, Microsoft SQL, Google BigQuery 또는 IBM Db2와 같은 데이터 서버를 명시하면 데이터 소비자가 데이터를 검색 가능하게 되는 동시에 플랫폼 엔지니어는 액세스를 자동화하는 데 필요한 정보를 얻을 수 있습니다. 이 섹션에는 개발 환경과 운영 환경 등 다양한 환경에 대한 정보도 포함될 수 있습니다.

핵심 데이터 계약 값 외에도 이해관계자는 자신의 특정 요구 사항에 맞게 사용자 지정 속성을 데이터 계약에 추가할 수 있습니다. 최신 버전의 널리 사용되는 데이터 계약 템플릿에는 속성 간 관계를 문서화하고, 외부 계약을 참조하며, 일관된 품질 검사를 위한 사전 정의된 데이터 품질 규칙 라이브러리에 액세스하는 기능도 포함되어 있습니다.

데이터 계약의 형식은 무엇인가요?

데이터 계약은 일반적인 언어로 작성되지 않는다는 점에서 다른 계약과 뚜렷하게 구별됩니다. 대신 일반적으로 사람이 읽을 수 있고 기계도 읽을 수 있는 데이터 직렬화 언어인 YAML 또는 JSON으로 작성됩니다. (직렬화 언어 코딩에 익숙하지 않은 사용자의 경우 데이터 계약을 Excel에서 작성한 후 오픈 소스 툴인 Data Contract CLI를 사용해 YAML 파일로 변환할 수 있습니다.)

데이터 계약을 직렬화 언어로 작성하는 장점은 많은 수작업이 필요한 프로세스를 자동화로 대체할 수 있다는 점입니다. 기계가 읽을 수 있는 데이터 계약은 데이터 플랫폼 및 시행 툴에 통합될 수 있습니다. 조직은 이러한 솔루션을 배포해 데이터 세트가 데이터 계약 규칙을 준수하는지 검증할 수 있으며, 이를 통해 문제가 파이프라인 장애로 이어지기 전에 해결할 수 있습니다.

데이터 계약은 어떻게 설계되나요?

많은 데이터 계약은 Open Data Contract Standard(ODCS)를 기반으로 합니다. 이름에서 알 수 있듯이 ODCS는 데이터 계약을 표준화하기 위한 오픈 소스 프레임워크입니다. 이 표준은 Apache 2.0 라이선스 기반의 Linux Foundation AI & Data 샌드박스 프로젝트인 Bitol이 정의했으며 GitHub에서 제공됩니다.

이 이니셔티브의 지지자들은 조직이 공급업체 종속 위험 없이 데이터 아키텍처를 지원하는 데이터 계약을 구현할 수 있게 함으로써 혁신을 촉진한다고 설명합니다.

데이터 계약의 이점은 무엇인가요?

데이터 계약은 데이터 파이프라인의 다양한 문제를 해결하여 조직이 데이터 자산의 가치를 활용할 수 있도록 지원합니다. 데이터 계약의 이점은 다음과 같습니다.

데이터 품질 향상

오래된 격언처럼 측정되는 것은 관리됩니다. 데이터 계약에서 정확성, 유효성, 적시성 및 기타 데이터 품질 지표에 대한 기준을 설정하면 지연 시간을 줄이는 동시에 제공되는 데이터의 품질을 향상시킬 수 있습니다.

종속성에 대한 투명성 향상

데이터 계약은 상호 연결된 작업 간의 관계, 즉 종속성을 명확히 정의할 수 있습니다. 이러한 종속성이 명확해지면 데이터 생산자는 호환성 파괴 변경 사항을 방지할 수 있습니다.

향상된 변경 관리

데이터 계약은 버전 관리되므로 중요한 변경 사항을 반영하기 위해 새로운 버전의 계약이 생성됩니다. 이를 통해 생산자는 스키마 변경과 같은 수정 사항을 소비자가 적응할 시간을 가질 수 있는 "안전한" 방식으로 도입할 수 있으며, 갑작스러운 파이프라인 장애 위험을 줄일 수 있습니다.

협업 강화

데이터 계약을 만드는 과정은 데이터 생산자와 소비자 간의 소통과 합의를 촉진합니다. 계약이 생성된 후에는 버전 관리를 통해 변화하는 데이터와 요구 사항을 반영하면서 지속적인 협업의 기반 역할을 합니다.

책임감 강화

데이터 계약은 누가 데이터를 소유하는지, 어떤 역할이 액세스할 수 있는지, 그리고 사용자가 어떻게 지원을 받을 수 있는지를 포함하여 이해관계자와 데이터 간의 관계를 명확히 정의합니다. 계약은 각자의 책임 범위를 명확히 함으로써 더 높은 수준의 책임성을 보장합니다.

데이터 거버넌스

데이터 계약은 데이터 거버넌스 툴로 간주될 수 있습니다. 이는 데이터 계약이 데이터 라이프사이클 전반에 걸쳐 데이터 품질, 보안 및 가용성을 보장하는 것과 같은 핵심 거버넌스 목표를 반영하고 시행하기 때문입니다.

향상된 확장성

데이터 계약은 데이터 거버넌스와 협업을 지원함으로써 데이터 규모가 전례 없는 속도로 증가하더라도 조직과 비즈니스 부서가 데이터를 성공적으로 공유할 수 있도록 지원합니다.

AI 아카데미

데이터 관리가 생성형 AI 구현의 비결일까요?

생성형 AI를 성공적으로 사용하기 위해 고품질 데이터가 필수적인 이유를 알아보세요.

데이터 계약과 데이터 제품 및 데이터 메시의 비교

데이터 계약은 데이터 제품 및 데이터 메시와 관련된 논의에서 자주 언급됩니다. 그럴 만한 이유가 있습니다. 데이터 계약은 이 두 기술을 지원하는 데 핵심적인 역할을 하기 때문입니다.

먼저 데이터 제품부터 살펴보겠습니다. 데이터 제품은 다양한 비즈니스 사용 사례를 지원하기 위해 데이터, 메타데이터, 의미 정보 및 템플릿을 결합한 재사용 가능한 독립형 패키지입니다. 데이터 계약은 데이터 제품의 "품질 관리" 역할을 하며, 제품 내 데이터가 일관되고 신뢰할 수 있으며 올바른 형식으로 제공되도록 보장합니다.

Perrin은 데이터 제품과 데이터 계약의 관계를 가족 관계에 비유하며 다음과 같이 설명합니다. "데이터 계약과 데이터 제품은 떼려야 뗄 수 없는 사촌과 같습니다. 항상 함께 일하고, 항상 정렬되어 있으며, 모든 것이 원활하게 작동하도록 보장합니다."

데이터 제품에 대한 데이터 계약의 중요성은 데이터 메시의 기능 측면에서도 중요한 의미를 가집니다. 데이터 메시는 마케팅, 영업 또는 고객 서비스와 같은 비즈니스 도메인별로 데이터를 구성하는 분산형 데이터 아키텍처입니다.

데이터 메시 아키텍처에서는 도메인 데이터 생산자가 데이터 제품을 활용하여 비즈니스 사용자가 조직의 여러 부문에 있는 데이터를 검색하고 사용할 수 있도록 합니다. 따라서 데이터 계약이 데이터 제품의 성능을 보장하면 데이터 메시 전체의 성공을 지원하게 됩니다.

데이터 계약은 어떻게 구현되고 시행되나요?

데이터 전문가 Chad Sanderson, Mark Freeman 및 B.E. Schmidt는 저서 Data Contracts에서 데이터 계약이 작동하는 과정을 다음과 같이 설명합니다.3

  • 데이터 소비자는 비즈니스 목표를 달성하기 위해 필요한 데이터 요구 사항을 식별합니다.

  • 기술적 데이터 소비자는 비즈니스 요구 사항을 데이터에 대한 기술적 요구 사항으로 변환합니다.

  • 데이터 소비자는 이러한 요구 사항을 바탕으로 데이터 생산자에게 데이터 계약을 요청합니다.

  • 데이터 생산자는 해당 요청이 실행 가능한지 판단합니다.

  • 데이터 계약은 YAML과 같은 코드 형태로 작성됩니다.

  • 데이터 생산자는 데이터 자산을 변경해야 할 경우 풀 리퀘스트(저장소 변경 사항을 제안하는 방식)를 생성합니다.

  • 요청된 변경 사항이 계약 조건을 위반하지 않는지 확인하기 위해 CI/CD 파이프라인의 일부로 데이터 계약 기반 검사가 수행됩니다.

  • 변경 사항이 계약을 위반하는 경우 데이터 생산자에게 경고가 전달되며, 위반 사항을 해결하기 위한 조치가 시작됩니다.

데이터 계약 솔루션

조직은 데이터 계약을 생성하고 관리하기 위해 다양한 툴과 플랫폼을 선택할 수 있습니다. 그 이점에는 다음이 포함됩니다.

  • Apache Avro 및 Google Protocol Buffers(protobuf)와 같이 데이터를 직렬화 및 역직렬화하는 오픈 소스 프로젝트

  • Great Expectations 및 dBT와 같은 데이터 품질 및 테스트 툴

  • Confluent Registry와 같이 스키마 호환성을 확인하는 스키마 레지스트리

  • 데이터 리니지 추적 및 데이터 카탈로그와 같은 기능을 제공하는 데이터 거버넌스 플랫폼

조직의 고유한 요구 사항과 기존 데이터 스택은 어떤 데이터 계약 솔루션 또는 솔루션 조합이 데이터 계약을 지원하는 데 가장 적합한지를 결정하는 데 도움이 될 수 있습니다.

작성자

Alice Gomstyn

Staff Writer

IBM Think

Alexandra Jonker

Staff Editor

IBM Think

관련 솔루션
IBM StreamSets

직관적인 그래픽 인터페이스를 통해 스트리밍 데이터 파이프라인을 생성하여 하이브리드 및 멀티클라우드 환경 전반에서 완벽한 데이터 통합을 촉진합니다.

StreamSets 살펴보기
IBM watsonx.data™

watsonx.data를 사용하면 오픈, 하이브리드 및 관리형 데이터 저장소를 통해 데이터의 위치와 관계없이 모든 데이터로 분석과 AI를 확장할 수 있습니다.

watsonx.data 알아보기
데이터 및 분석 컨설팅 서비스

IBM Consulting을 통해 엔터프라이즈 데이터의 가치를 실현하여 비즈니스 이점을 제공하는 인사이트 중심의 조직을 구축하세요.

분석 서비스 알아보기
다음 단계 안내

탁월한 고객 및 직원 경험을 제공하기 위해 데이터 사일로를 제거하고, 복잡성을 줄이며, 데이터 품질을 개선하는 데이터 전략을 구축하세요.

  1. 데이터 관리 솔루션 살펴보기
  2. watsonx.data 알아보기