파일 형식

파일 형식의 개요

JSON

JSON은 어떤 프로그래밍 언어로도 읽을 수 있는 단순한 파일 포맷으로, 이때 단순함은 XML 같은 포맷에 비해 컴퓨터가 처리하기 쉽다는 것을 의미한다.

XML

XML은 데이터 상호교환을 위해 폭넓게 사용되는 포맷으로, 데이터 구조를 유지하는데 유리하며 개발자는 파일을 읽는 간섭없이 데이터에 문서의 일부를 작성할 수 있다.

RDF

W3C가-권고하는 포맷인 RDF는 다수의 자료원으로부터 데이터를 쉽게 조합할 수 있는 형식으로 데이터를 표현할 수 있다. RDF 데이터는 여러 가지 직렬화 방법이 있으며, XML과 JSON으로 저장될 수 있다. RDF는 웹에 있는 열린 데이터 이니셔티브를 서로 연결하는데 편리한 방법을 제공하는 식별자로 URL 사용을 장려한다. RDF는 폭넓게 확산되어 있지 않지만, 영국과 스페인 정부의 Linked Data 프로젝트를 포함한 열린 정부 이니셔티브 사이에서 트렌드가 되고 있다. 웹의 창시자인 팀 버너스리는 최근 5개 별 스키마를 제안하였는데, 이는 오픈데이터 이니셔티브들이 추구하는 목표로써 연결된 RDF 데이터를 포함하고 있다.

스프레드시트

많은 정부 기관이 마이크로소프트 엑셀과 같은 스프레드시트로 정보를 갖고 있다. 이러한 데이터는 서로 다른 컬럼의 의미를 올바르게 기술하기 위해 사용될 수 있다.

그러나 때로는 스프레드쉬트안에 다루기 어려운 매크로와 공식이 있기 때문에, 사용자가 읽기 쉽도록 해당 스프레드시트와 나란히 계산 공식을 제공하는 것이 바람직하다

콤마로 구분된 파일

CSV 파일은 간결하고 동일한 구조로 대용량 데이터 집합을 전송하기 위해 적합하기 때문에 매우 유용한 형식이 될 수 있다. 그러나 이 형식으로 표현된 데이터는 별도의 문서가 없을 경우 서로 다른 컬럼의 중요성을 추측하는 불가능하여 유용성이 떨어질 수 있다. 따라서 개별 필드에 대한 문서화가 정확하게 만드는 것이 콤마로 구분된 형식에 중요하다.

더구나 파일 구조가 침해받지 않아야 된다. CSV 파일에서 하나의 필드가 삭제되면 나머지 데이터를 해석하기 위한 방법이 없기 때문에, 파일 수정 없이는 남아있는 모든 데이터의 해석이 방해 받을 수 있다.

텍스트 문서

Word, ODF, OOXML, PDF와 같은 포맷의 표준적인 문서들은 일정한 종류의 데이터를 보여주는데 충분하다 - 예를 들어 비교적 안정적인 메일링 리스트 또는 이와 유사한. 이 포맷은 일관적으로 구조를 유지하지 않으며 자동적으로 데이터를 입력하기 어려울 수 있다. 데이터를 재사용할 수 있게 보여주기 위해 문서의 기준으로 템플릿을 사용한다면, 최소한 정보를 문서 밖으로 추출할 수 있다.

(어떤 형식인지 기록된) 기계가 콘텐트로부터 표제를 구분하기 쉽게 되어 가능한 많은 활자 마크업을 이용하는 것은 데이터의 추가 사용을 이끌어낼 수 있다. 일반적으로 다른 포맷으로 데이터가 있다면, 워드 프레세싱 포맷에 표현하는 것을 추천하지 않는다.

Plain Text

일반 텍스트 문서 (.txt) 는 컴퓨터가 읽기 매우 쉬우며, 문서 내에 구조화된 메타데이터를 갖지 않는다. 즉 개발자는 개별 문서를 처리할 수 있는 파서를 개발할 필요가 있다.

운영체제 사이에서 일반 텍스트 문서를 전환할 때 문제가 생길 수 있다. MS 윈도우, Mac OSX, Unix 시스템은 라인 끝을 처리하는 서로 다른 방식을 갖고 있다.

스캔된 이미지

아마도 대부분의 데이터에서 가장 적합한 형식은 문서의 전체 텍스트와 문서의 이미지를 함께 표시하는 것이다. 그러나 TIFF과 JPEG-2000은 적어도 사진에 있는 것을 문서로 표시할 수 있다. 이 포맷은 전자적으로 만들어지지 않은 데이터를 이미지로 표현하는데 적합하다 - 확실한 예는 오래된 교회 기록과 기록 자료- 사진은 없는 것보다 낫다.

전용 형식

전용 시스템은 데이터를 저장하고 추출할 수 있는 독립적인 데이터 포맷을 갖고 있다. 종종 이와 같은 포맷으로 데이터를 노출시키는 것이 충분하다 - 특히 데이터를 유사한 시스템에서 사용할 것으로 기대된다면. 전용 포맷에서만 찾을 수 있는 정보는 항상 표시해야 한다. 예를 들어 공급자의 웹사이트에 링크를 제공하는 것 같이. 일반적으로 전용 포맷이 아닌 방법으로 표시하는 것을 추천한다.

HTML

최근에는 다양한 사이트에서 많은 데이터가 HTML 형식으로 사용된다. 만약 데이터가 매우 안정적이고 한정적인 범위를 갖는다면 이 포맷이 적합할 수 있다. 때로는 다운로드와 조작을 쉽게 하기 위한 형식으로 데이터를 확보하는 것이 선호될 수 있다. 그러나 웹사이트의 페이지에 표시하는 것이 저렴하고 쉽기 때문에 데이터의 표시를 위한 시작점이 될 수 있다.

일반적으로 데이터를 표현하기 위해 HTML 문서에서 테이블을 이용하는 것이 가장 적절하며, 이 때 데이터의 탐색과 조작을 쉽게 하기 위해 다양한 데이터 항목이 주어진 ID로 표시되는 것이 중요하다. 야후는 웹사이트로부터 구조적인 정보를 추출할 수 있는 도구(http://developer.yahoo.com/yql/)를 개발하고 있으며, 이런 툴을 이용하여 데이터가 추가된다면 더 많은 데이터를 얻을 수 있다.

오픈 파일 형식

정보가 전자적으로, 기계가-읽을 수 있는 형식으로 자세히 제공된다해도, 파일 자체의 형식과 관련된 이슈가 있을 수 있다.

정보가 발행된 포맷은 - 즉, 정보가 저장된 디지털 베이스 - “개방형”이거나 “폐쇄형”일 수 있다. 개방형 포맷은 누구나 무료로 이용할 수 있는 소프트웨어 명세를 갖고 있다. 따라서 누구나 지적재산권로 인한 재사용의 제한 없이 소프트웨어의 명세를 사용할 수 있다.

파일 포맷이 “폐쇄적”이라면, 해당 파일 포맷의 명세가 공개되어 있지 않고 소유권이 있거나, 명세가 공개되었으나 소유권이 있는 경우를 뜻하는데 모두의 경우에서 재사용은 제한적이다. 정보가 폐쇄적인 파일 포맷으로 배포된다면 정보를 재사용하는데 심각한 장애를 줄 수 있으며, 정보를 사용하기 위해 필요한 소프트웨어를 구매해야되는 부담이 있다.

공개 파일 형식의 혜택은 개발자들이 다수의 소프트웨어 패키지와 서비스를 만들 수 있는 것을 허용해주는 것이다. 그 다음에 공개 파일에 포함된 정보를 재사용는 장벽은 감소한다.

명세가 공개되지 않는 전용 파일 형식은 제3의 소프트웨어 또는 파일 포맷의 라이센스 소유자에 의존성을 만들 수 있다. 최악의 경우, 정보는 상당히 비싸거나 쓸모없어진 특정한 소프트웨어 패키지를 사용하여 읽어야 된다는 것을 의미한다.

term:열린 정부 데이터 관점에서 선호하는 것은 정보는 **기계가 읽을 수 있는 오픈 파일 포맷**으로 배포되는 것이다.

사례: UK 교통량 데이터

앤드류 니콜슨은 소프트웨어 개발자로 영국의 Westbury Eastern 우회로 건설에 반대하는 캠페인에 참여했었다 (궁극적으로 성공적인). 앤드류는 캠페인 제안서의 정당화를 위해 사용될 수 있는 도로의 교통 정보의 에 관심이 있었다. 그는 정보 요청 자유를 통해 관련 정보를 얻을 수 있었으나, 지방 정부에서 제공된 데이터는 독점적 포맷으로 교통 모델링과 예상 전문업체인 Saturn사에서 개발된 소프트웨어를 사용해서 읽기가 가능했다. 해당 소프트웨어의 읽기 전용 버전이 없어 교육용 할인을 통해 앤드류는 소프트웨어 라이센스를 500 파운드 (600 유로)에 구입했다. 2010년 4월 Saturn사의 주요 소프트웨어 패키지 가격 리스트에 의하면 13,000 파운드 (15,000 유로 이상)에서 시작하면, 이것은 일반 시민들이 접근할 수 있는 가격대가 아니다.

정보법이 오픈 포맷의 정보 접근을 위한 권리를 제공하지 않지만, 오픈 정부 데이터 이니셔티브들은 공식문서가 반드시 오픈 포맷으로 이용 가능해야 된다는 점을 명시한 정책 문서와 함께 시작하고 있다. 황금률은 오바마 정부에 의해 정립이 되었으며, 2009년 Open Government Directive에 다음과 같이 명시하고 있다:

*실용적이고 유효한 제약의 범위에서, 정부 기관은 웹 검색 애플리케이션에 의해 검색, 다운로드, 인덱스될 수 있도록 정보를 오픈 포맷으로 온라인에 발행해야 한다. 오픈 포맷은 플랫폼에 독립적이고, 기계가 읽을 수 있어야하며, 대중이 정보의 재사용에 제약없이 이용할 수 있는 형식이다. *

어떻게 주어진 형식을 사용할 것인가

정부 기관이 이전에 공개되지 않은 새로운 데이터를 제출해야되는 경우, 목적에 대한 비용과 적합성 사이에서 최고의 균형을 제공해주는 포맷을 선택해야 한다. 각각의 포맷에서 고려해야 되는 것이 있는데, 본 섹션은 이에 대한 설명을 다룬다.

본 섹션은 기계가 데이터에 직접 접근할 수 있도록 해주기 위해 최선의 방법이 무엇인지 집중한다. 웹 사이트와 솔루션이 어디에서나 검색될 수 있게 설계하는 방법에 대한 조언과 가이드를 제공한다.

웹 서비스

데이터의 변경이 빈번하게 발생하고, 데이터를 읽는 크기에 제한이 있다면 웹서비스를 통해 데이터를 노출시키는 것이 적당하다. 웹서비스를 생성하는 몇 가지 방법이 있지만, SOAP과REST가 가장 보편적이다. SOAP이 REST보다 광범위하지만, REST 서비스는 개발과 사용이 매우 쉬우며, 표준으로 폭넓게 사용되고 있다.

데이터베이스

웹 서비스와 같이, 데이터베이스는 데이터에 동적으로 직접 접근할 수 있는 기능을 제공한다. 데이터베이스는 사용자가 관심있는 추출 작업을 한데 모을 수 있는 장점이 있다.

원격으로 데이터베이스 추출과 데이터베이스 접근을 허용하는 것은 데이터베이스의 구조와 개별 테이블과 필드의 중요성이 잘 정리된 경우에만 유용할 수 있다는 보안 이슈가 있다. 종종 안정성 문제를 설명하기 쉬운 방법으로 데이터베이스에서 데이터를 노출하시키기 위해 웹서비스를 만드는 것이 비교적 간단하고 저렴할 수 있다.