← AI 용어집

AI 용어집 · 심화 · 데이터 엔지니어링

데이터 컨트랙트 Data Contract

데이터 컨트랙트는 데이터를 만드는 쪽과 쓰는 쪽이 '이 데이터는 어떤 형식과 의미, 품질로 제공한다'는 약속을 문서와 코드로 정해 두는 것이다. 약속을 어기는 변경은 미리 잡아낸다.

쉽게 말하면 부품 공급업체와 완성차 회사가 맺는 납품 사양서와 비슷하다. 나사 규격이 몰래 바뀌면 조립 라인이 멈추듯, 데이터 형식이 예고 없이 바뀌면 그 데이터를 쓰는 보고서와 모델이 망가진다.

어떻게 작동하나

데이터 컨트랙트에는 보통 열 이름과 자료형 같은 구조(스키마), 각 값의 의미, 빈 값 허용 여부나 값의 범위 같은 품질 기준, 갱신 주기, 담당자 등이 적힌다. 이 내용은 사람이 읽는 문서이면서 기계가 검사할 수 있는 설정 파일 형태로 관리되는 경우가 많다. 데이터를 만드는 팀이 코드를 바꾸면 자동 검사가 컨트랙트 위반 여부를 확인하고, 깨지는 변경이면 배포 전에 막거나 알린다. 큰 변경이 필요하면 새 버전을 만들고 쓰는 쪽과 합의한 뒤 옮겨 간다.

데이터 컨트랙트에 담는 것

형식과 의미

  • 열 이름과 자료형(스키마)
  • 각 값의 의미

품질

  • 빈 값 허용 여부
  • 값의 범위

운영

  • 갱신 주기
  • 담당자
  • 변경 시 버전과 합의 절차
컨트랙트에 흔히 적는 항목을 묶어 본 점검 목록이다.

왜 중요한가

데이터 문제의 상당수는 원본 시스템 개발자가 쓰는 쪽이 있다는 사실을 모른 채 열 이름이나 형식을 바꾸면서 생긴다. 데이터 컨트랙트는 이런 사고를 사후 수습이 아니라 사전 예방으로 바꾼다. 데이터 메시처럼 여러 팀이 데이터를 나눠 책임지는 구조에서는 팀 사이의 약속을 명확히 하는 핵심 장치가 된다. AI 모델 학습 데이터가 조용히 바뀌어 성능이 떨어지는 일을 막는 데도 도움이 된다.

알아 둘 점

컨트랙트는 만드는 쪽이 지킬 책임을 받아들여야 효과가 있으므로 기술보다 조직 합의가 더 어렵다. 모든 데이터에 처음부터 적용하기보다 중요한 데이터부터 시작하는 편이 현실적이다. 형식 검사만으로는 '값은 맞는데 의미가 틀린' 문제까지 다 잡지 못하므로 데이터 옵저버빌리티 같은 감시 도구와 함께 쓴다. 정해진 하나의 표준 형식이 있다기보다 회사와 도구마다 작성 방식이 조금씩 다르다.

예시

주문 시스템을 운영하는 개발팀이 '주문 금액' 열의 자료형을 바꾸는 코드를 올리면, 배포 파이프라인의 자동 검사가 이 열을 매출 대시보드와 수요 예측 모델이 쓰고 있다는 컨트랙트를 확인하고 변경을 막는다. 개발팀은 쓰는 쪽 팀과 협의해 새 버전의 컨트랙트를 만든 뒤 순서대로 옮겨 간다.

함께 보면 좋은 용어