식별자

[섬네일|400x400px|alt=A Russian license plate with the value "C051KO199" is mounted on the front grille of a Toyota car|[차량 번호판|등록판은 자동차의 식별자를 표시하는 데 사용된다.]]

**식별자**(識別子, identifier)는 고유한 객체 또는 고유한 객체 클래스를 식별(즉, 정체성을 표시)하는 이름으로, 여기서 "객체" 또는 클래스는 아이디어, 사람, 물리적 셀 수 있는 명사 객체(또는 그 클래스) 또는 물리적 불가산 명사 물질(또는 그 클래스)일 수 있다. 약어 **ID**는 종종 신원, 식별(식별 과정) 또는 식별자(즉, 식별의 인스턴스)를 나타낸다. 식별자는 단어, 숫자, 문자, 기호 또는 이들의 조합일 수 있다.

단어, 숫자, 문자 또는 기호는 인코딩 시스템을 따를 수 있으며(문자, 숫자, 단어 또는 기호가 아이디어 또는 더 긴 이름을 나타냄) 단순히 임의적일 수도 있다. 식별자가 인코딩 시스템을 따를 때, 종종 **코드** 또는 **ID 코드**라고 불린다. 예를 들어, ISO/IEC 11179 메타데이터 레지스트리 표준은 코드를 상징적 의미가 없는 식별자와 대조적으로 더 긴 값을 대체하는 유효한 기호 시스템으로 정의한다. 어떤 인코딩 체계도 따르지 않는 식별자는 종종 **임의&nbsp;ID**라고 불리며, 임의로 할당되고 더 큰 의미를 갖지 않는다. (때로는 식별자가 실제로는 임의적일 때도 "코드"라고 불리는데, 이는 화자가 그것이 더 깊은 의미를 갖는다고 믿거나 단순히 비격식적이고 부정확하게 말하기 때문이다.)

고유 식별자(**UID**)는 우주에서 단 하나의 인스턴스, 즉 단 하나의 특정 객체만을 참조하는 식별자이다. 부품 번호는 식별자이지만 고유 식별자는 아니다. 이를 위해서는 각 부품 디자인의 인스턴스를 식별하는 일련번호가 필요하다. 따라서 식별자 "모델 T"는 포드의 모델 T가 포함하는 자동차의 클래스(모델)를 식별하는 반면, 고유 식별자 "모델 T 일련 번호 159,862"는 그 클래스의 특정 구성원, 즉 한 특정 사람이 소유한 한 특정 모델 T 자동차를 식별한다.

이름과 식별자의 개념은 의미적으로 동등하며, 따라서 용어는 의미적으로 동의어이지만, 항상 함축적으로 동의어인 것은 아니다. 왜냐하면 **[[암호명]]**과 **ID 번호**는 종종 전통적인 자연어 명명의 의미에서 이름과 함축적으로 구별되기 때문이다. 예를 들어, "제이미 재윈스키"와 "넷스케이프 직원 번호 20"은 모두 동일한 특정 인간에 대한 식별자이지만, 일반적인 영어의 함축적 의미에서는 "제이미 재윈스키"를 "이름"으로 간주하고 "식별자"로 간주하지 않는 반면, "넷스케이프 직원 번호 20"은 "식별자"로 간주하지만 "이름"으로 간주하지 않는다. 이는 내재적 구별이지 외재적 구별이 아니다.

## 메타데이터
메타데이터에서 식별자는 식별 체계 내에서 객체를 고유하게 식별하는 언어 독립적인 레이블, 기호 또는 토큰이다. "식별자" 접미사는 데이터 요소를 명명할 때 표현 용어로도 사용된다.

ID 코드는 본질적으로 메타데이터를 함께 포함할 수 있다. 예를 들어, 당신 앞에 있는 식품 패키지에 "2011-09-25T15:42Z-MFR5-P02-243-45"라는 식별자가 있다는 것을 알면, 당신은 그 데이터뿐만 아니라 2011년 9월 25일 UTC 15시 42분에 포장되었고, 라이선스 공급업체 번호 5에 의해 미국 일리노이주 피오리아 공장 2동에서 생산되었으며, 해당 교대 근무에서 243번째로 생산된 패키지이고, 검사관 번호 45가 검사했다는 메타데이터도 알게 된다.

임의의 식별자는 메타데이터가 부족할 수 있다. 예를 들어, 식품 패키지에 단순히 100054678214라고만 적혀 있다면, 그 ID는 신원 외에는 아무것도 알려주지 않을 수 있다. 날짜, 제조업체 이름, 생산 순서 또는 검사관 번호가 없다. 어떤 경우에는 순차적인 일련번호와 같은 임의의 식별자가 정보(예: 독일 탱크 문제)를 유출하기도 한다. 그러한 작은 정보량조차도 유출하는 것을 피하도록 설계된 불투명 식별자에는 "정말 불투명 포인터"와 버전 4 UUID가 포함된다.

## 컴퓨터 과학에서
컴퓨터 과학에서 식별자(ID)는 어휘 토큰으로 엔터티의 이름을 지정한다. 식별자는 사실상 모든 정보 처리 시스템에서 광범위하게 사용된다. 엔터티를 식별하면 엔터티를 참조할 수 있으며, 이는 모든 종류의 상징적 처리에 필수적이다.

### 컴퓨터 언어에서

컴퓨터 언어에서 식별자는 언어 엔터티의 이름을 지정하는 토큰(기호라고도 함)이다. 식별자가 나타낼 수 있는 엔터티의 종류로는 변수, 유형, 레이블, 서브루틴, 패키지 등이 있다.

## 모호성
### 식별자(ID) 대 고유 식별자(UID)

하나의 자원은 여러 식별자를 가질 수 있다. 일반적인 예시는 다음과 같다.
* 여러 이름, 별명, 호칭(직함, 인사말)을 가진 한 사람
** 예를 들어: 한 특정 인물은 다음 모든 식별자로 식별될 수 있다. 제인 스미스; 제인 엘리자베스 메레디스 스미스; 제인 E. M. 스미스; 제인 E. 스미스; 제이니 스미스; 제이니; 리틀 제이니 (어머니나 여동생, 사촌인 빅 제이니와 달리); 제인 아주머니; 제이니 아주머니; 엄마; 할머니; 나나; 켈리의 엄마; 빌리의 할머니; 스미스 씨; 스미스 박사; 제인 E. 스미스, 박사; 그리고 퍼지 (직장에서의 농담 별명).
* 여러 버전의 문서
* 여러 이름을 가진 한 물질 (예: CAS 인덱스 이름 대 IUPAC 이름; INN 일반 의약품 이름 대 USAN 일반 의약품 이름 대 브랜드 이름)

여러 자원이 동일한 식별자로 표현되는 역방향도 가능하다(아래에서 논의).

### 암묵적 문맥 및 이름공간 충돌

많은 코드와 명명법 시스템은 작은 이름공간 내에서 발생한다. 수년 동안 그 중 일부는 더 큰 이름공간으로 스며들게 된다 (사람들이 이전에 없었던 방식으로 상호 작용함에 따라, 예: 국경 간 무역, 과학 협력, 군사 동맹, 일반적인 문화적 상호 연결 또는 동화). 그러한 확산이 발생하면, 이전에는 잠재적이고 논쟁의 여지가 없었던 원래 명명 규칙의 한계가 고통스럽게 분명해지고, 종종 레트로님, 동의어, 번역/트랜스코딩 등을 필요로 한다. 이러한 한계는 일반적으로 원래 문맥에서 더 넓은 문맥으로의 전환과 함께 발생한다. 일반적으로 시스템은 암묵적 문맥(문맥은 이전에는 가정되었고 좁았음), 용량 부족(예: 구식의 좁은 문맥을 반영하는 적은 수의 가능한 ID), 확장 가능성 부족(미래의 필요에 대비하여 정의 및 예약된 기능 없음), 그리고 특정성 및 모호성 해소 능력 부족(오랫동안 유지되던 고유성이 새로운 비고유성과 마주치는 문맥 전환과 관련됨)을 보인다. 컴퓨터 과학 내에서 이 문제는 이름 충돌이라고 불린다. CODEN 시스템의 기원과 확장 이야기는 최근 수십 년간의 기술 명명법 문맥에서 좋은 사례를 제공한다. 특정 지시어에서 볼 수 있는 대문자 표기 변화는 자연어에서 발생하는 이 문제의 한 사례를 보여주는데, 여기서 고유명사/일반명사 구별(및 그 복잡성)을 다루어야 한다. 모든 객체가 UID를 갖는 우주에서는 어떤 이름공간도 필요하지 않을 것이며, 이는 하나의 거대한 이름공간을 구성할 것이라는 의미이다. 그러나 인간의 정신은 그렇게 많은 UID를 추적하거나 의미적으로 상호 연결할 수 없을 것이다.

## 다양한 분야의 식별자

## 같이 보기

## 각주


분류:프로그래밍 언어 개념
분류:메타데이터