Close

Frictionless R·Python 라이브러리, Data Package v2 지원

Open Knowledge Foundation이 Frictionless Data의 R 라이브러리(frictionless)와 Python 라이브러리(frictionless-py)가 Data Package v2 명세를 지원하게 되었다고 알렸다. 두 라이브러리의 관리자들이 기술적 접근을 서로 맞춰 버전 감지 방식과 v1 사용자를 위한 하위 호환 전략을 정리했다. 작업은 NLnet 재단의 NGI0 Entrust 기금으로 진행되었다.

  • R 2.0.1 (2026년 10월 29일 릴리스): read_package(), read_resource(), write_package()로 v2 패키지를 읽고 쓴다. 새로 만드는 객체(create_package(), create_schema(), add_resource())는 기본값이 v2 JSON Schema 프로필이다.
  • R의 명시적 업그레이드: upgrade_package()로 패키지, 리소스, 스키마를 v1에서 v2로 직접 올릴 수 있다. 자동 변환이 아니라 개발자가 호출하는 방식이다.
  • Python 5.21.0: v2 디스크립터의 읽기, 쓰기, 검증을 지원한다. 버전은 디스크립터에서 추론한다. 커스텀 프로필처럼 추론이 어려울 때는 v1과 v2 문법을 모두 받아들이는 관대한 동작으로 처리한다.
  • Python 내부 정비: 검증 시 부모·자식 클래스가 컨텍스트를 공유하게 했고, 정규(canonical) 디스크립터 형태를 도입해 메타데이터 읽기·쓰기의 멱등성을 확보했다. 이 과정에서 기존 버그도 여럿 고쳤다고 한다.
  • 품질과 보안: 보안 취약점 2건을 수정했다. 테스트는 R 661개(코드 커버리지 100%), Python 2,334개이며 Python 3.14를 지원한다.

Data Package는 표 형태 데이터셋과 메타데이터를 사람과 기계가 모두 읽을 수 있게 기술하는 가벼운 명세라서, 공공데이터나 연구 데이터를 배포하고 검증하는 파이프라인에서 자주 쓰인다. 이런 파이프라인을 Python이나 R로 운영하고 있다면 v2 지원 버전으로 올려 볼 만하다. 특히 Python 쪽은 버전을 자동으로 추론하므로, 기존 v1 디스크립터와 새 v2 디스크립터를 한 코드에서 함께 다루는 전환기에 부담이 줄 것이다.

다만 주의할 점이 있다. Python의 관대한 동작은 v1과 v2 문법이 섞인 디스크립터도 통과시킬 수 있다는 뜻이므로, 엄격한 검증이 필요한 곳에서는 어떤 버전으로 해석되는지 직접 확인하는 편이 안전하다. R에서는 v1 자료가 자동으로 바뀌지 않으니 upgrade_package()를 쓰는 시점과 결과물을 점검해야 한다. 또 보안 수정이 포함된 릴리스이므로 버전을 고정해 두고 있다면 이번 기회에 올릴 시점을 잡아 두자. 본문 요약에는 v1과 v2 사이의 세부 명세 차이가 없으므로, 실제 전환 전에는 각 저장소의 릴리스 노트를 읽고 기존 데이터로 테스트하길 권한다.


원문: Announcing Data Package v2 Support in Frictionless R and Python Libraries (Open Knowledge Blog)

Leave a Reply

Your email address will not be published. Required fields are marked *

이 사이트는 Akismet을 사용하여 스팸을 줄입니다. 댓글 데이터가 어떻게 처리되는지 알아보세요.

© 2026 NORICOMPANY