VCard
1. 개요
vCard는 개인 및 조직의 연락처 정보를 저장하기 위한 파일 형식 표준이다. 초기 제안과 표준화를 거쳐, JSON 형식의 jCard, HTML 내 vCard를 포함하는 hCard, QR 코드를 사용하는 MeCard 등 관련 형식과 확장으로 발전했다. vCard는 `BEGIN:VCARD`로 시작하여 `END:VCARD`로 끝나며, `VERSION` 속성을 포함하며, 주소, 전화번호, 이메일, 이름, 사진 등 다양한 속성을 정의한다. vCard는 2.1, 3.0, 4.0 버전이 있으며, 각 버전별로 속성 사용법이 다르다.
| 이름 | vCard |
|---|---|
| 확장자 | .vcf, .vcard |
| 마임 유형 | text/vcard |
| 유형 코드 | vCrd |
| 유니폼 타입 | public.vcard |
| 소유자 | Versit Consortium (초기) 인터넷 메일 컨소시엄 (1996년 이후) CalConnect (2004년 이후) |
| 종류 | 전자 명함 |
| 포함 정보 | 연락처 정보 |
| 확장 | 해당 없음 |
| 표준 | IETF RFC 6350 |
-
파일 포맷 -
바로 가기
바로 가기는 운영체제에서 파일, 폴더, 프로그램, 웹 페이지에 대한 참조를 제공하는 기능 및 파일로, 사용자들이 원본에 빠르게 접근하도록 GUI 환경의 사용성을 향상시킨다. -
파일 포맷 -
EXE
EXE 파일 형식은 운영 체제에 따라 다양한 종류가 있는 실행 파일의 한 형태로, DOS MZ 실행 파일에서 PE, PE32+까지 발전해 왔으며, 코드, 데이터, 스택을 별도 관리하고 재배치 항목을 통해 실행 환경에 유연하게 대응하는 특징을 가진다. -
인터넷 표준 -
DNSSEC
-
인터넷 표준 -
IPv6
IPv6는 IPv4 주소 고갈 문제를 해결하고자 개발된 차세대 인터넷 프로토콜로, 128비트 주소 체계를 통해 사실상 무한대에 가까운 IP 주소를 제공하며, 주소 자동 설정, 패킷 처리 효율성 향상, 보안 기능 강화 등의 특징을 갖는다.
2. 역사
vCard는 웹 페이지에 포함될 수 있으며, vCard 온톨로지를 사용한 RDFa는 HTML 및 다양한 XML 계열 언어(예: SVG, MathML)에서 사용될 수 있다. W3C는 vCard의 RDF 기반 인코딩에 관한 주석을 공표했다.
블루투스를 통한 vCard 전송은 광범위한 호환성을 가지지만, 장치 간 대조를 필요로 하지 않으므로 익명 메시지를 보내는 데 사용되기도 한다.
vCard 구현은 애플리케이션에 따라 다르다. macOS의 연락처는 하나의 vcf 파일에 모든 연락처를 담는 반면, Microsoft Outlook은 하나의 파일에 하나의 연락처만 담는다. 리눅스의 KDE 콘택트 애플리케이션은 하나의 파일에 한 건 또는 여러 건의 연락처를 가져오거나 내보낼 수 있다.
2.1. 초기 제안 및 표준화
1995년, 애플, AT&T 테크놀로지스(이후의 루슨트 테크놀로지), IBM, 지멘스가 설립한 버싯 컨소시엄이 vCard를 제창했다. 1996년12월, 규격 제정권이 인터넷 메일 컨소시엄으로 넘어갔다. vCard 부속 규격인 vCalender는 나중에 iCalendar로 확장되었다. vCalendar와 iCalendar는 서로 호환성을 갖도록 되어 있다.
vCard 버전 2.1은 이메일 클라이언트에서 널리 채택되고 있다. 버전 3.0은 IETF RFC 2425 및 RFC 2426의 준 표준화 제안이 되었다. vCard 확장자는 ".vcf"이다.
2.2. 관련 형식 및 확장
vCard의 부속 규격이었던 vCalender는 나중에 iCalendar로 확장되었다. vCalendar와 iCalendar는 서로 호환성을 갖도록 되어 있다. hCard 마이크로포맷에서는 웹 페이지에 vCard의 데이터를 삽입하는 것이 가능하다. 그것은 Firefox의 Operator 등, 브라우저의 확장 기능으로 실현된다. 또한 hCard와 vCard는 서로 변환 가능하며 호환성을 갖도록 되어 있다. jCard는 vCard를 위한 JSON 형식이다. MeCard는 QR 코드를 사용하는 스마트폰용으로 NTT DoCoMo에서 만든 vCard의 변형이다. XML vCard 포맷은 XMPP 표준화 재단에 의해 정의되어 있으며, XMPP 및 Light-Weight Identity 등의 기술에서 이용된다.
3. 속성
vCard는 다양한 속성 유형을 정의한다. 모든 vCard는 `BEGIN:VCARD`로 시작하여 `END:VCARD`로 끝나며, vCard 버전을 지정하는 `VERSION` 속성을 포함해야 한다. vCard 2.1 및 3.0 표준에서는 `VERSION` 속성이 vCard 내 어디에든 위치할 수 있지만, vCard 4.0에서는 `BEGIN` 바로 다음에 와야 한다.
vCard의 각 속성은 특정 정보를 나타내며, 버전에 따라 지원 여부가 다를 수 있다. 다음 표는 vCard의 속성들과 각 버전별 지원 여부를 나타낸다.
| 이름 | 속성 존재 여부 | 설명 | 예시 | ||
|---|---|---|---|---|---|
| 2.1 | 3.0 | 4.0 | |||
ADR | vCard 개체의 물리적 배달 주소의 구조화된 표현이다. | ADR;TYPE=home:;;123 Main St.;Springfield;IL;12345;USA | |||
AGENT | vCard 개체를 대신하여 작동할 다른 사람에 대한 정보이다. 일반적으로 이 정보는 개인에 대한 지역 관리자, 보조자 또는 비서가 될 것이다. URL 또는 포함된 vCard일 수 있다. | AGENT: | |||
ANNIVERSARY | 해당 개인의 기념일을 정의한다. | ANNIVERSARY:19901021 | |||
BDAY | vCard와 관련된 개인의 생년월일이다. | BDAY:19700310 | |||
CALADRURI | 해당 개인의 캘린더에 일정을 요청하는 데 사용할 URL이다. | CALADRURI: | |||
CALURI | 해당 개인의 캘린더에 대한 URL이다. | CALURI: | |||
CATEGORIES | 이 vCard로 표현되는 객체를 설명하는 데 사용할 수 있는 "태그" 목록이다. | CATEGORIES:swimmer,biker | |||
CLASS | vCard의 정보 민감도를 설명한다. | CLASS:public | |||
CLIENTPIDMAP | 동일한 vCard의 다른 버전을 동기화하는 데 사용된다. | | |||
EMAIL | vCard 개체와 전자 메일 통신을 위한 주소이다. | EMAIL:[email protected] | |||
FBURL | 해당 개인이 캘린더에서 "사용 가능"한지 "사용 중"인지 표시하는 URL을 정의한다. | FBURL: | |||
GENDER | 해당 개인의 성별을 정의한다. | GENDER:F | |||
GEO | 위도와 경도를 지정한다. | 2.1, 3.0: GEO:39.95;-75.16674.0: [geo:39.95,-75.1667 GEO:geo:39.95,-75.1667] | |||
IMPP | 인스턴트 메신저 핸들을 정의한다. | IMPP:aim:[email protected] | |||
KEY | vCard 개체와 관련된 공개 암호화 키이다. 외부 URL을 가리키거나, 일반 텍스트이거나, Base64로 인코딩된 텍스트 블록으로 vCard에 포함될 수 있다. | 2.1: KEY;PGP:2.1: KEY;PGP;ENCODING=BASE64:[base64-data]3.0: KEY;TYPE=PGP:3.0: KEY;TYPE=PGP;ENCODING=b:[base64-data]4.0: KEY;MEDIATYPE=application/pgp-keys:4.0: KEY:data:application/pgp-keys;base64,[base64-data] | |||
KIND | 이 vCard가 나타내는 엔티티 유형을 정의한다: 'application', 'individual', 'group', 'location' 또는 'organization'; 'x-*' 값은 실험적인 목적으로 사용할 수 있다. | KIND:individual | |||
LABEL | vCard와 관련된 개인/객체에게 물리적 패키지를 배달할 때 우편 라벨에 넣어야 하는 실제 텍스트를 나타낸다(ADR 속성과 관련됨). | LABEL;TYPE=HOME:123 Main St.\nSpringfield, IL 12345\nUSA | |||
LANG | 해당 개인이 사용하는 언어를 정의한다. | LANG:fr-CA | |||
LOGO | vCard가 속한 개인과 관련된 조직의 로고 이미지 또는 그래픽이다. 외부 URL을 가리키거나 Base64로 인코딩된 텍스트 블록으로 vCard에 포함될 수 있다. | 2.1: LOGO;PNG:2.1: LOGO;PNG;ENCODING=BASE64:[base64-data]3.0: LOGO;TYPE=PNG:3.0: LOGO;TYPE=PNG;ENCODING=b:[base64-data]4.0: LOGO;MEDIATYPE=image/png:4.0: LOGO;ENCODING=BASE64;TYPE=PNG:[base64-data] | |||
MAILER | 사용된 이메일 프로그램의 유형이다. | MAILER:Thunderbird | |||
MEMBER | 이 vCard가 나타내는 그룹의 일부인 멤버를 정의한다. 이 속성을 사용하려면 KIND 속성을 "group"으로 설정해야 한다. | | |||
NAME | SOURCE 속성의 텍스트 표현을 제공한다. | ||||
NICKNAME | 이 vCard로 표현되는 개체에 대한 하나 이상의 설명/친숙한 이름이다. | NICKNAME:Jon,Johnny | |||
NOTE | vCard와 관련된 보충 정보 또는 설명을 지정한다. | NOTE:I am proficient in Tiger-Crane Style,\nand I am more than proficient in the exquisite art of the Samurai sword. | |||
ORG | vCard 개체와 관련된 조직의 이름과 선택적으로 단위이다. 이 속성은 X.520 조직 이름 속성 및 X.520 조직 단위 속성을 기반으로 한다. | ORG:Google;GMail Team;Spam Detection Squad | |||
PHOTO | vCard와 관련된 개인의 이미지 또는 사진이다. 외부 URL을 가리키거나 Base64로 인코딩된 텍스트 블록으로 vCard에 포함될 수 있다. | 2.1: PHOTO;JPEG:2.1: PHOTO;JPEG;ENCODING=BASE64:[base64-data]3.0: PHOTO;TYPE=JPEG;VALUE=URI:3.0: PHOTO;TYPE=JPEG;ENCODING=b:[base64-data]4.0: PHOTO;MEDIATYPE=image/jpeg:4.0: PHOTO;ENCODING=BASE64;TYPE=JPEG:[base64-data] | |||
PRODID | vCard 개체를 만든 제품의 식별자이다. | PRODID:-//ONLINE DIRECTORY//NONSGML Version 1//EN | |||
PROFILE | vCard가 vCard임을 나타낸다. | PROFILE:VCARD | |||
RELATED | 해당 개인이 관련된 다른 엔티티이다. | | |||
REV | vCard가 마지막으로 업데이트된 시점에 대한 타임스탬프이다. | REV:20121201T134211Z | |||
ROLE | vCard 개체의 조직 내 역할, 직업 또는 비즈니스 범주이다. | ROLE:Executive | |||
SORT-STRING | 응용 프로그램이 이 vCard를 어떤 식으로든 정렬할 때 사용해야 하는 문자열을 정의한다. | SORT-STRING:Doe | |||
SOUND | 기본적으로, 이 속성이 다른 속성과 그룹화되지 않은 경우 vCard 개체의 FN 속성의 발음을 지정한다. 외부 URL을 가리키거나 Base64로 인코딩된 텍스트 블록으로 vCard에 포함될 수 있다. | 2.1: SOUND;OGG:2.1: SOUND;OGG;ENCODING=BASE64:[base64-data]3.0: SOUND;TYPE=OGG:3.0: SOUND;TYPE=OGG;ENCODING=b:[base64-data]4.0: SOUND;MEDIATYPE=audio/ogg:4.0: SOUND:data:audio/ogg;base64,[base64-data] | |||
SOURCE | 이 vCard의 최신 버전을 가져오는 데 사용할 수 있는 URL이다. | SOURCE: | |||
TEL | vCard 개체와의 전화 통신을 위한 전화 번호의 정규 숫자 문자열이다. | TEL;TYPE=cell:(123) 555-5832 | |||
TITLE | vCard 개체와 관련된 개인의 직함, 기능적 직위 또는 조직 내 기능을 지정한다. | TITLE:V.P. Research and Development | |||
TZ | vCard 개체의 표준시이다. | 2.1, 3.0: TZ:-05004.0: TZ:America/New_York | |||
UID | 개체와 관련된 영구적이고 전역적으로 고유한 식별자를 나타내는 값을 지정한다. | | |||
URL | 어떤 방식으로든 해당 개인을 나타내는 웹사이트를 가리키는 URL이다. | URL: | |||
XML | vCard에 첨부된 모든 XML 데이터이다. vCard가 XML(xCard 표준)로 인코딩되었고 XML 문서에 xCard 표준의 일부가 아닌 요소가 포함된 경우에 사용된다. | XML:<b>Not an xCard XML element</b> | |||
각 속성에 대한 자세한 내용은 기본 속성 및 기타 속성 하위 섹션을 참조하면 된다.
3.1. 기본 속성
모든 vCard는 `BEGIN:VCARD`로 시작하여 `END:VCARD`로 끝난다. 모든 vCard는 vCard 버전을 지정하는 `VERSION` 속성을 포함해야 한다. vCard 2.1 및 3.0 표준에서는 `VERSION`이 vCard 내 어디에나 위치할 수 있지만, vCard 4.0에서는 `BEGIN` 바로 다음에 와야 한다. 그렇지 않으면 속성은 어떤 순서로든 정의할 수 있다.
`FN` 속성은 vCard에 기록된 사람의 전체 이름을 나타내며, vCard 3.0부터는 필수 속성이다. `N` 속성은 성, 이름, 추가 이름, 존칭 접두사, 존칭 접미사 등으로 구성된 구조화된 이름 표현이다.
3.2. 기타 속성
VCard는 연락처 정보를 담는 표준 파일 형식이며, 다양한 속성을 포함할 수 있다. 주요 속성은 다음과 같다.
| 이름 | 설명 | 예시 |
|---|---|---|
| `ADR` | 물리적 배달 주소. | `ADR;TYPE=home:;;123 Main St.;Springfield;IL;12345;USA` |
| `TEL` | 전화번호. | `TEL;TYPE=cell:(123) 555-5832` |
| `EMAIL` | 이메일 주소. | `EMAIL:[email protected]` |
| `BDAY` | 생년월일. | `BDAY:19700310` |
| `ANNIVERSARY` | 기념일. | `ANNIVERSARY:19901021` |
| `ORG` | 소속 조직 및 부서. | `ORG:Google;GMail Team;Spam Detection Squad` |
| `TITLE` | 직함. | `TITLE:V.P. Research and Development` |
| `ROLE` | 역할, 직업. | `ROLE:Executive` |
| `PHOTO` | 사진 (외부 URL 또는 Base64 인코딩). | `PHOTO;JPEG: |
| `LOGO` | 로고 (외부 URL 또는 Base64 인코딩). | `LOGO;PNG: |
| `SOUND` | 이름 발음 (외부 URL 또는 Base64 인코딩). | `SOUND;OGG: |
| `URL` | 웹사이트 주소. | `URL: |
| `IMPP` | 인스턴트 메신저. | `IMPP:aim:[email protected]` |
| `NOTE` | 추가 설명. | `NOTE:I am proficient in Tiger-Crane Style,\nand I am more than proficient in the exquisite art of the Samurai sword.` |
4. vCard 파일의 예
vCard는 다양한 버전으로 제공되며, 각 버전마다 형식이 조금씩 다르다.
다음은 RFC 6350의 저자인 "Simon Perreault"의 vCard 예시이다. 여기에는 생일(연도 제외), 이메일 주소, 성별 정보가 포함되어 있다.
```text
BEGIN:VCARD
VERSION:4.0
FN:Simon Perreault
N:Perreault;Simon;;;ing. jr,M.Sc.
BDAY:--0203
GENDER:M
EMAIL;TYPE=work:[email protected]
END:VCARD
4.1. vCard 2.1
다음은 1인에 대한 정보가 담긴 vCard 2.1 파일의 예시이다.
```
BEGIN:VCARD
VERSION:2.1
N:Gump;Forrest;;Mr.
FN:Forrest Gump
ORG:Bubba Gump Shrimp Co.
TITLE:Shrimp Man
PHOTO;GIF:http://www.example.com/dir_photos/my_photo.gif
TEL;WORK;VOICE:(111) 555-1212
TEL;HOME;VOICE:(404) 555-1212
ADR;WORK;PREF:;;100 Waters Edge;Baytown;LA;30314;United States of America
LABEL;WORK;PREF;ENCODING=QUOTED-PRINTABLE;CHARSET=UTF-8:100 Waters Edge=0D=
=0ABaytown\, LA 30314=0D=0AUnited States of America
ADR;HOME:;;42 Plantation St.;Baytown;LA;30314;United States of America
LABEL;HOME;ENCODING=QUOTED-PRINTABLE;CHARSET=UTF-8:42 Plantation St.=0D=0A=
Baytown, LA 30314=0D=0AUnited States of America
EMAIL:[email protected]
REV:20080424T195243Z
END:VCARD
```
vCard의 내용은 일반 텍스트로 되어 있다.
4.2. vCard 3.0
다음은 vCard 3.0 형식의 예시이다.
```text
BEGIN:VCARD
VERSION:3.0
N:Gump;Forrest;;Mr.;
FN:Forrest Gump
ORG:Bubba Gump Shrimp Co.
TITLE:Shrimp Man
PHOTO;VALUE=URI;TYPE=GIF:;http://www.example.com/dir_photos/my_photo.gif
TEL;TYPE=WORK,VOICE:(111) 555-1212
TEL;TYPE=HOME,VOICE:(404) 555-1212
ADR;TYPE=WORK,PREF:;;100 Waters Edge;Baytown;LA;30314;United States of America
LABEL;TYPE=WORK,PREF:100 Waters Edge\nBaytown\, LA 30314\nUnited States of America
ADR;TYPE=HOME:;;42 Plantation St.;Baytown;LA;30314;United States of America
LABEL;TYPE=HOME:42 Plantation St.\nBaytown\, LA 30314\nUnited States of America
EMAIL:[email protected]
REV:2008-04-24T19:52:43Z
END:VCARD
4.3. vCard 4.0
다음은 RFC 6350 표준에 기반을 둔 vCard 4.0 형식의 예시이다.
```text
BEGIN:VCARD
VERSION:4.0
N:Gump;Forrest;;Mr.;
FN:Forrest Gump
ORG:Bubba Gump Shrimp Co.
TITLE:Shrimp Man
PHOTO;MEDIATYPE=image/gif:http://www.example.com/dir_photos/my_photo.gif
TEL;TYPE=work,voice;VALUE=uri:tel:+1-111-555-1212
TEL;TYPE=home,voice;VALUE=uri:tel:+1-404-555-1212
ADR;TYPE=WORK;PREF=1;LABEL="100 Waters Edge\nBaytown\, LA 30314\nUnited States of America":;;100 Waters Edge;Baytown;LA;30314;United States of America
ADR;TYPE=HOME;LABEL="42 Plantation St.\nBaytown\, LA 30314\nUnited States of America":;;42 Plantation St.;Baytown;LA;30314;United States of America
EMAIL:[email protected]
REV:20080424T195243Z
x-qq:21588891
END:VCARD
5. 활용 및 구현
vCard 버전 2.1은 널리 이메일 클라이언트에 채용되고 있다. 버전 3.0은 RFC 2425 및 RFC 2426의 준 표준화 제안이다. vCard의 확장자는 ".vcf"이다.
hCard 마이크로포맷을 이용하면 웹 페이지에 vCard 데이터를 삽입할 수 있다. 이는 Firefox의 Operator 등, 브라우저 확장 기능으로 구현된다. hCard와 vCard는 서로 변환 가능하며 호환성을 갖도록 되어 있다.
XML vCard 포맷은 XMPP 표준화 재단에 의해 정의되어 있으며, XMPP 및 Light-Weight Identity 등의 기술에서 이용된다. W3C는 vCard의 RDF 기반 인코딩에 관한 주석을 공표하고 있다.
애플리케이션에 따라 vCard 구현 내용은 다르다.
5.1. 운영체제별 구현
macOS의 연락처는 모든 연락처를 하나의 vcf 파일 안에 담는 형태를 사용하지만, Microsoft Outlook은 하나의 파일에 1건의 연락처를 담는 형태를 사용한다. 리눅스의 KDE 콘택트 애플리케이션은 하나의 파일에 1건씩 또는 여러 건을 가져오기(입력)와 내보내기(출력)를 할 수 있다.
5.2. 블루투스 전송
블루투스를 이용한 vCard 전송은 폭넓은 호환성을 가지지만, 장치 간의 확인 절차가 필요 없으므로 익명 메시지 전송을 위한 표준으로 사용되기도 한다.
6. 관련 기술
jCard는 "vCard를 위한 JSON 형식"으로, IETF RFC 7095에 따른 2014년의 표준 제안이다. jCard는 vCard 인스턴스를 JSON으로 나타내는 무손실 방법을 설명하며, 순서에 종속적인 태그-값 쌍의 배열을 사용한다. jCard는 RDAP, 화이트 스페이스 데이터베이스에 접근하는 프로토콜(PAWS, IETF RFC 7545에 설명됨), SIP을 포함한 여러 다른 프로토콜에 통합되었다.
hCard는 HTML 페이지 내에 vCard를 포함할 수 있게 해주는 마이크로포맷이다. 각 vCard 속성을 식별하기 위해 CSS 클래스 이름을 사용한다. h-card는 hCard의 microformats2 업데이트 버전이다.
MeCard는 QR 코드를 사용하는 스마트폰용으로 NTT DoCoMo에서 만든 vCard의 변형이다. 매우 유사한 구문을 사용하지만, QR 코드의 저장 공간이 제한되어 있으므로 보다 통합된 방식으로 사용한다.