균일 유형 식별자

Uniform Type Identifier

UTI(Uniform Type Identifier)는 Apple Inc.에서 제공하는 소프트웨어에서 주어진 클래스 또는 항목 유형을 고유하게 식별하기 위해 사용하는 텍스트 문자열이다.Apple은 문서 또는 이미지 파일 형식, 폴더 및 애플리케이션 번들, 스트리밍 데이터, 클리핑 데이터, 동영상 데이터 등 일반적인 시스템 개체를 식별하기 위해 내장된 UTI를 제공하며 타사 개발자가 애플리케이션별 또는 독점적 용도에 자체 UTI를 추가할 수 있도록 허용한다.UTI 지원은 Mac OS X 10.4 운영 체제에서 추가되었으며, 문서를 분류하기 위해 UTI를 사용하는 스포트라이트 데스크톱 검색 기술에 통합되었다.UTI의 주요 설계 목표 중 하나는 MIME 유형, 파일 이름 확장명 또는 유형 또는 작성자 코드에서 파일 내용을 추론하는 것과 관련된 모호성과 문제를 제거하는 것이었다.[1]

UTI는 역-DNS 명명 구조를 사용한다.이름에는 ASCII 문자 A–Z, a–z, 0–9, 하이픈("-" 및 마침표") 및 U+007F 이상의 모든 유니코드 문자가 포함될 수 있다.[1]콜론 및 슬래시는 Macintosh POSIX 파일 경로 규칙과의 호환성을 위해 금지된다.UTI는 복수의 상속을 지원하므로, 포함된 데이터에 적합한 수만큼 관련 유형으로 파일을 식별할 수 있다.

배경

사용자가 액세스할 수 있는 운영 체제를 유지하는 데 있어 어려움 중 하나는 데이터 유형과 이러한 데이터를 효과적으로 사용할 수 있는 응용 프로그램 또는 프로세스 간의 연결을 설정하는 것이다.예를 들어 특정 압축 형식의 사진 데이터를 포함하는 파일은 사진 데이터를 처리할 수 있는 애플리케이션에서만 열고 처리할 수 있으며, 이러한 애플리케이션은 해당 데이터를 추출하고 작업하기 위해 어떤 압축 유형을 사용했는지 식별할 수 있어야 한다.초기 컴퓨터 시스템(특히 DOS, 그 변종 및 일부 버전의 Windows)에서는 파일 확장자에 의해 파일 연결이 유지된다.파일 이름 뒤에 나오는 3~4개의 문자 코드는 특정 응용프로그램에서 파일을 열도록 시스템에 지시한다.

시스템 1부터 매킨토시 운영체제는 파일 메타데이터의 일부로 타입 코드크리에이터 코드를 첨부하였다.[2]이러한 4자 코드는 파일을 만든 애플리케이션(작성자 코드)과 파일의 특정 유형(유형 코드)을 모두 지정하여 다른 애플리케이션이 파일 데이터를 쉽게 열고 처리할 수 있도록 설계되었다.그러나 유형과 작성자 코드는 시스템의 유연성을 확장시켰지만(특정 유형의 파일은 특정 응용프로그램에서 여는 것으로 제한되지 않음) 파일 확장자와 동일한 많은 문제를 겪었다.파일이 비 매킨토시 시스템(예: Unix 기반 서버)을 통해 전송될 때 유형 및 작성자 코드가 손실될 수 있으며, 유형 코드의 과다로 식별이 문제가 되었다.

또한 기존의 Mac OS는 파일 확장자를 전혀 인식하지 못해 DOS/Windows 시스템에서 파일을 전송할 때 인식되지 않는 파일 오류가 발생하였다.맥 OS X의 기반을 형성한 오픈스텝(OPENSTEP)은 확장을 사용했고 맥 OS X의 초기 버전이 그 뒤를 이었다.이는 사용자 및 개발자가 NEXT에서 OST로 오거나 Windows에서 파일 확장자의 지속적 사용을 옹호하며 OST로 오거나, Classic Mac OS에서 온 사용자 및 개발자들이 애플에 파일 확장자를 유형 및 생성자로 대체 또는 보완할 것을 촉구하는 등 일부 논란이 일기도 했다.[3]

예를 들어 MIME 유형은 웹을 통해 전송되는 데이터를 식별하는 데 사용된다.그러나, 애플의 UTI 시스템은 데이터를 계층적으로 기술하고, 더 나은 분류와 검색을 가능하게 하고, 문맥에 걸쳐 데이터 설명을 표준화하고, 데이터 유형을 확장하는 통일된 방법을 제공하는 유연한 파일 연결 시스템을 만들기 위해 고안되었다.예를 들면 대중.jpegpublic.png UTI는 public.image UTI로부터 상속받으므로 사용자는 검색에 사용된 UTI의 특수성을 변경하기만 하면 JPEG 이미지나 PNG 이미지를 근소하게 검색하거나 모든 종류의 이미지를 광범위하게 검색할 수 있다.또한 새로운 데이터 유형을 설계하는 애플리케이션 개발자는 이용 가능한 UTI를 쉽게 확장할 수 있다.예를 들어 회사가 개발한 새로운 이미지 형식은 com.company.p수용체-image의 UTI를 가질 수 있으며 public.image 유형으로부터 상속되도록 지정될 수 있다.

애플의 MacOS는 다른 형태의 파일 연결을 계속 지원하며, 이들 사이의 변환을 위한 유틸리티를 포함하고 있지만, 가능한 경우 선호도에 따라 UTI를 사용할 것이다.

UTI 구조

애플은 이 기술을 유지한다.모든 UTI에 대해 설정된 기본 데이터 유형으로 공용.* 도메인.다른 UTI는 이러한 기본 UTI와 연관되어 있는데, 이는 클래스 상속과 유사한 시스템이다.다른 UTI를 준수하는 UTI는 기본 유형을 공유하며, 일반적으로 보다 일반적인 UTI의 데이터와 작동하는 모든 애플리케이션은 해당 일반 UTI를 준수하는 모든 UTI의 데이터로 작업할 수 있어야 한다.

Apple 공용 UTI

애플 서열에서 가장 기본적인 공공 UTI는 다음과 같다.

식별자 에 적합하다 댓글
공설의 물리적 계층의 기본 클래스
공적인.내용 모든 문서 내용의 기본 클래스
공용.데이터 공설의 모든 파일, 바이트 스트림, 붙여넣기판 등의 기본 클래스.
public.image 공개 데이터, 공개 콘텐츠 모든 영상의 기본 클래스

UTI는 다른 파일 형식 식별자를 식별하는 데까지 사용된다.

식별자 에 적합하다 댓글
공용.공용-공용-공용-공용-공용-공용. public.case-case-text 파일 이름 확장명
public.property형 public.case-case-text MIME형
com.apple.ostype publass.text 4자 코드(형식 OSType)
com.apple.nsp보드형 publass.text NSPasteboard 유형

응용 프로그램에 의해 필요에 따라 동적 UTI를 만들 수 있다. 이러한 UTI는 접두사 dyn을 가지고 있으며 "다른 방법으로 알려지지 않은 파일 이름 확장명, MIME 유형, OSType 등 주위에 UTI 호환 래퍼"[1]의 형태를 취한다.

타사 UTI

애플은 시스템에서 선언된 균일형 식별자를 대량으로 제공한다.타사 애플리케이션은 애플리케이션 패키지 내에서 선언된 UTI를 "내보내기"하여 MacOS가 관리하는 데이터베이스에 UTI를 추가할 수 있다.새로운 UTI는 기존 시스템 UTI에 "적합"하다고 선언할 수 있고, 선언문은 새로운 UTI를 파일 확장자와 연관시킬 수 있기 때문에, 내보낸 선언만으로도 새로운 파일 형식의 Quick Look 활성화와 같은 새로운 기능을 가능하게 하는 충분한 정보를 운영 체제에 제공할 수 있다.

타사 공통 UTI 목록

설명 UTI 확장 에 적합하다 MIME 유형 참조 URL
OPML 문서 org.opml.opml .opml public.xml text/xml, text/x-opml, application/xml http://dev.opml.org/spec2.html
문서 마크다운 net.daringfireball.markdown[4] .md, .markdown public.plain-text text/markdown https://daringfireball.net/projects/markdown/
SQLite 데이터베이스 vnd.sqlite3[5] .sqlite3, .sqlite, .db public.database, public.data application/vnd.sqlite3 https://www.sqlite.org/fileformat2.html

UTI 조회 중

지정된 파일의 UTI를 가져오려면 터미널에서 mdls(meta data list, Spotlight의 일부) 명령을 사용하십시오.

mdls -name kMDItemContentType -name kMDItemContentTypeTree -name kMDItemKind FILE

참조

  1. ^ a b c "Uniform Type Identifiers Overview". Guides and Sample Code. Apple Inc. October 29, 2007. Retrieved September 12, 2016.
  2. ^ "Folklore.org: The Grand Unified Model (2) - The Finder". www.folklore.org. Retrieved April 12, 2018.
  3. ^ "Mac OS X 10.1 File Name Extension Guidelines - Cocoabuilder". www.cocoabuilder.com. Retrieved April 12, 2018.
  4. ^ "Uniform Type Identifier For Markdown". Daring Fireball. Retrieved August 21, 2019.
  5. ^ "SQLite database file format media type at IANA". Internet Assigned Numbers Authority. IANA. Retrieved August 21, 2019.