목록으로

자료형·스키마·provenance

범주형·연속형·날짜형 자료를 올바르게 정의하고 데이터 사전, 스키마, provenance로 재현 가능한 바이오 데이터셋을 만드는 방법을 설명합니다.

입문
|
18
|
검증 완료 (2026-08-07)
BioStatPy바이오 데이터 스키마데이터 사전data provenancePython dtype
진행률0/33 (0%)

자료형·스키마·provenance

이 토픽을 마치면

데이터를 읽기 전에 열의 자료형과 단위를 확인하고, 한 행의 의미를 schema로 기록할 수 있습니다. 외부 데이터의 accession, 다운로드 경로, 버전, 사용 조건을 provenance에 남기며, 공개 접근과 자유로운 재배포를 구분할 수 있습니다.

출발점: 파일을 열었다고 분석할 수 있는가

CSV 파일이 열리고 첫 행이 보인다고 해서 분석 준비가 끝난 것은 아닙니다. 열 이름이 무엇을 뜻하는지, 숫자가 실제 측정값인지 코드인지, 한 행이 독립 단위인지 반복 측정인지 확인해야 합니다. 데이터 파일은 계산에 들어가는 입력이지만, 파일 자체가 연구 질문과 측정 과정을 모두 설명해주지는 않습니다.

예를 들어 sample_id, condition, value, date가 있는 표를 보겠습니다. value가 어떤 단위인지, date가 측정일인지 처리일인지, sample_id가 생물학적 단위인지 단순 파일 행 번호인지 모르면 통계 계산을 시작할 수 없습니다.

스키마: 데이터의 계약서

스키마는 데이터의 구조와 각 필드의 의미를 기록하는 계약입니다.

필드자료형의미단위/허용값결측 규칙
sample_idstring분석 단위 식별자사전 정의 ID비어 있으면 중단
conditioncategory비교 조건A, B별도 코드 없음
valuefloat측정 결과문서에 적은 단위NA
measured_atdatetime측정 시점ISO 8601timezone 기록

자료형은 장식이 아닙니다. 숫자로 보이는 ID를 연속 변수로 사용하면 이름에 크기와 순서를 부여하는 오류가 생깁니다. 날짜가 문자열로만 남으면 시간 순서나 구간 계산을 잘못할 수 있습니다. 자료형·단위·허용값·결측 표현을 데이터와 함께 고정합니다.

provenance: 값이 어디서 왔는가

Provenance는 값이 생성·수집·변환·저장된 경로를 추적하는 기록입니다. 외부 repository에서 데이터를 받았다면 최소한 accession, 원본 페이지, 다운로드 일시, 파일 hash, 변환 단계, 인용 정보를 남깁니다. GEO와 ENCODE의 공식 안내도 accession과 출처 인용을 식별 가능한 기록의 일부로 다룹니다.

이 기록은 데이터가 “진짜인지”를 자동으로 보증하지 않습니다. 대신 어떤 입력을 사용했고 어떤 변환을 거쳤는지 다른 사람이 재검토할 수 있게 합니다. raw count를 정규화 값으로 바꿨다면 변환 코드와 입력·출력 파일을 함께 기록해야 합니다.

권리와 접근 조건을 분리하기

공개 웹페이지에서 내려받을 수 있다는 사실은 public domain 또는 자유로운 재배포를 의미하지 않습니다. accession은 데이터의 식별자이고, license는 사용 조건입니다. 두 필드를 같은 것으로 취급하지 않습니다.

데이터를 교육 콘텐츠에 포함할 때는 다음 상태를 분리해 기록합니다.

  • access: 어디에서 확인할 수 있는가
  • license: 어떤 조건으로 사용할 수 있는가
  • redistribution: 파일 자체를 다시 배포할 수 있는가
  • attribution: 누구와 어떤 프로젝트를 표시해야 하는가
  • privacy/ethics: 교육용 재사용에 추가 제한이 있는가

권리 상태를 확인하지 못했으면 원본 파일을 콘텐츠에 포함하지 않고 accession과 공식 접근 절차만 안내합니다. 저작권의 아이디어·사실과 표현의 구분은 콘텐츠를 독립적으로 작성하는 데 도움이 되지만, 개별 사용에 대한 법률 판단을 대신하지 않습니다.

스키마와 provenance를 함께 작성하기

한 데이터셋의 최소 manifest는 다음과 같이 구성할 수 있습니다.

text
dataset_id: example-001
source_type: synthetic | repository
accession: none | verified accession
source_url: canonical page
downloaded_at: ISO 8601
file_sha256: verified hash
schema_version: 1.0.0
transformations: []
license_status: verified | pending | restricted
redistribution_status: allowed | link_only | prohibited | unknown

합성 데이터라면 accession이 없다는 사실도 기록합니다. 원본이 없는 것이 아니라 자체 생성 규칙, seed, 생성 코드, 출력 schema가 provenance가 됩니다. 외부 데이터라면 source URL만 남기지 말고 어떤 파일과 버전을 사용했는지 특정해야 합니다.

연구 질문으로 돌아가 해석하기

스키마와 provenance를 작성하면 분석 결과의 의미를 추적할 수 있습니다. 어떤 단위의 값인지, 어느 시점의 측정인지, 어떤 변환을 거쳤는지 알 수 있기 때문입니다. 그러나 provenance가 완전하다고 해서 측정의 품질이나 연구 질문의 타당성이 자동으로 증명되는 것은 아닙니다.

반대로 출처와 단위가 없는 숫자는 계산이 가능해도 해석의 범위가 좁습니다. 분석 전에 데이터를 거부하는 것은 번거로운 절차가 아니라, 결과가 어떤 입력에 의존하는지 밝히는 방법입니다.

분석 전에 통과시킬 점검표

실제 분석을 시작하기 전에는 schema와 provenance를 따로 읽지 않고 함께 대조합니다.

  1. analysis_unit이 curriculum과 연구 질문의 단위에 맞는가?
  2. outcome의 자료형·단위·측정 시점이 문서와 표에서 일치하는가?
  3. 모든 ID가 고유성 규칙 또는 그룹 구조를 설명하는가?
  4. 범주형 값의 표기 차이(A, a, condition_A)가 없는가?
  5. 결측 코드와 제외 규칙이 원본 manifest에 남아 있는가?
  6. 변환 전후 파일과 실행 환경을 다시 찾을 수 있는가?

이 점검은 데이터가 완벽한지 판정하는 절차가 아닙니다. 적어도 어떤 전제를 확인했고 어떤 전제를 확인하지 못했는지 남기는 절차입니다. 확인되지 않은 항목은 pending으로 두고, 분석 결과의 확신을 높이는 표현을 사용하지 않습니다.

provenance를 분석 문장으로 연결하기

최종 보고서에서 provenance는 별도의 행정 부록에만 머물지 않습니다. “이 결과는 어떤 데이터에서 계산됐는가?”라는 질문에 답할 수 있어야 합니다. 예를 들어 dataset_id, schema_version, transformations, file_sha256를 결과 manifest에 연결하면, 같은 이름의 파일이 바뀌었을 때 이전 결과와 새 결과를 구분할 수 있습니다.

반대로 파일을 내려받은 날짜만 기록하고 hash나 변환 단계를 빠뜨리면, 같은 URL에서 다른 파일을 받았는지 확인하기 어렵습니다. reproducibility는 seed 하나로 완성되는 것이 아니라 입력·환경·변환·출력을 함께 추적할 수 있을 때 가까워집니다.

자주 생기는 실패와 점검법

  • 파일명을 accession이나 license로 착각하지 않습니다.
  • 숫자처럼 보이는 ID를 측정값으로 사용하지 않습니다.
  • NA, 빈 문자열, 0을 같은 결측 표현으로 합치지 않습니다.
  • 원본을 덮어쓰고 변환 전후를 추적하지 못하게 만들지 않습니다.
  • 공개 접근 가능성을 재배포 허가로 쓰지 않습니다.

핵심 정리

  • 스키마는 행·열·자료형·단위·결측을 설명하는 데이터 계약입니다.
  • provenance는 데이터의 출처와 변환 경로를 추적하는 기록입니다.
  • accession, license, redistribution, attribution은 서로 다른 필드입니다.
  • 합성 데이터도 생성 규칙과 버전을 기록해야 합니다.
  • 권리나 출처가 불확실하면 원본을 포함하지 않고 공식 접근 경로만 남길 수 있습니다.

다음 토픽으로

다음 편에서는 데이터가 가진 중심·산포·분포를 더 자세히 시각화합니다. 스키마와 단위가 확인된 뒤에야 품질 점검을 해석할 수 있습니다.

참고 자료

본 편의 schema와 manifest 예시는 BioStatPy가 독립적으로 작성한 교육용 구성입니다.

💬 질문과 댓글

0개의 댓글

로그인 없이 작성할 수 있습니다. 비로그인 댓글은 작성 후 직접 수정·삭제할 수 없습니다.

0/2000

로딩 중...