맨위로가기

탭 구분 값

"오늘의AI위키"는 AI 기술로 일관성 있고 체계적인 최신 지식을 제공하는 혁신 플랫폼입니다.
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.

1. 개요

탭 구분 값(TSV)은 탭 문자를 사용하여 데이터를 구분하는 일반 텍스트 형식이다. TSV 형식은 CSV(쉼표로 구분된 값) 형식과 달리 탭 문자를 필드 구분자로 사용하여, 데이터 내에 쉼표가 포함된 경우에도 명확하게 데이터를 구분할 수 있다. TSV는 여러 소프트웨어에서 표준으로 지원되며, 탭 문자가 입력 폼에서 일반적으로 허용되지 않아 데이터 분석 시 구분 문자가 필드에 혼재되는 문제를 방지할 수 있다는 장점이 있다. 탭이나 줄 바꿈 문자를 값으로 표현하기 위해 이스케이프 시퀀스를 사용하기도 한다.

2. 예시

다음은 아이리스 꽃 데이터 세트의 처음 5개 행을 TSV 형식으로 표현한 것이다.



Sepal length Sepal width Petal length Petal width Species

5.1 3.5 1.4 0.2 I. setosa

4.9 3.0 1.4 0.2 I. setosa

4.7 3.2 1.3 0.2 I. setosa

4.6 3.1 1.5 0.2 I. setosa

5.0 3.6 1.4 0.2 I. setosa



위 TSV 일반 텍스트는 다음의 표 데이터와 일치한다.

꽃받침 길이꽃받침 너비꽃잎 길이꽃잎 너비
5.13.51.40.2I. setosa
4.93.01.40.2I. setosa
4.73.21.30.2I. setosa
4.63.11.50.2I. setosa
5.03.61.40.2I. setosa


2. 1. 아이리스 데이터 세트 예시

다음은 아이리스 꽃 데이터 세트의 처음 5개 행을 TSV 형식으로 표현한 것이다.

```text

Sepal length Sepal width Petal length Petal width Species

5.1 3.5 1.4 0.2 I. setosa

4.9 3.0 1.4 0.2 I. setosa

4.7 3.2 1.3 0.2 I. setosa

4.6 3.1 1.5 0.2 I. setosa

5.0 3.6 1.4 0.2 I. setosa

```

위 TSV 일반 텍스트는 다음의 표 데이터와 일치한다.

꽃받침 길이꽃받침 너비꽃잎 길이꽃잎 너비
5.13.51.40.2I. setosa
4.93.01.40.2I. setosa
4.73.21.30.2I. setosa
4.63.11.50.2I. setosa
5.03.61.40.2I. setosa


2. 2. 위 예시의 테이블 표현

wikitext

아이리스 꽃 데이터 세트의 머리 부분을 TSV 형식으로 나타낸 일반 텍스트는 다음과 같다.

```text

Sepal length Sepal width Petal length Petal width Species

5.1 3.5 1.4 0.2 I. setosa

4.9 3.0 1.4 0.2 I. setosa

4.7 3.2 1.3 0.2 I. setosa

4.6 3.1 1.5 0.2 I. setosa

5.0 3.6 1.4 0.2 I. setosa

```

위의 TSV 형식 데이터는 아래와 같은 표로 나타낼 수 있다.

꽃받침 길이꽃받침 너비꽃잎 길이꽃잎 너비
5.13.51.40.2I. setosa
4.93.01.40.2I. setosa
4.73.21.30.2I. setosa
4.63.11.50.2I. setosa
5.03.61.40.2I. setosa


3. 문자 이스케이핑

IANA(인터넷 할당 번호 기관)의 미디어 유형 TSV 표준은 필드 내에서 탭을 허용하지 않음으로써 단순성을 달성한다.

TSV 형식의 값은 리터럴 탭 또는 줄 바꿈 문자를 포함할 수 없으므로, 이러한 문자를 가진 텍스트 값을 손실 없이 변환하기 위한 규칙이 필요하다. 일반적인 규칙은 다음과 같은 이스케이프 시퀀스를 수행하는 것이다.[3][4]

이스케이프 시퀀스의미
\nLF(줄 바꿈)
\t
\r캐리지 리턴
\\백슬래시



또 다른 일반적인 규칙은 탭 또는 줄 바꿈을 포함하는 값을 큰따옴표로 묶는 것이지만, 이는 모호성을 야기할 수 있다.[5][6]

3. 1. 일반적인 이스케이프 시퀀스

다음은 일반적으로 사용되는 이스케이프 시퀀스이다.[3][4]

이스케이프 시퀀스의미
\nLF(줄 바꿈)
\t
\r캐리지 리턴
\\백슬래시



TSV 형식의 값은 리터럴 탭 또는 줄 바꿈 문자를 포함할 수 없으므로, 이러한 문자를 가진 텍스트 값을 손실 없이 변환하기 위한 규칙이 필요하다. 또 다른 일반적인 규칙은 탭 또는 줄 바꿈을 포함하는 값을 큰따옴표로 묶는 것이지만, 이는 모호성을 야기할 수 있다.[5][6]

4. 줄 끝 문자

TSV 파일에서 각 레코드는 일반적으로 줄 바꿈 문자(LF) 또는 캐리지 리턴과 줄 바꿈 문자(CRLF)로 구분된다.[7] 유닉스 시스템에서는 LF가, 마이크로소프트 시스템에서는 CRLF가 주로 사용된다. 사실상의 규격에서는 레코드가 EOL로 구분된다고 명시하고 있지만, 특정 줄 바꿈 문자를 지정하지는 않는다.

5. 장점

쉼표로 구분된 값(CSV) 형식과 비교했을 때 탭 구분 값 (TSV)형식은 다음과 같은 이점이 있다.


  • UNIX 계열 소프트웨어 및 Microsoft Excel 등 표준 형식으로 취급하는 소프트웨어가 많아, 읽기 및 쓰기 작업이 비교적 간단하다.
  • * 예:
  • ** `cut` 아무것도 지정하지 않으면 입력을 탭 구분 형식으로 받는다.[10]
  • ** `mysql` 아무것도 지정하지 않으면 파일로 출력할 때 형식이 탭 구분 형식이다. 또한 `mysqlimport`로 가져올 때도 아무것도 지정하지 않으면 탭 구분 형식이다.
  • ** Microsoft Excel 복사 & 붙여넣기 형식이 탭 구분 형식이다.
  • 탭은 입력 폼에 입력할 수 없는 경우가 일반적이어서, 분석 시 구분 문자가 필드에 혼재하는 것을 상정한 처리를 생략할 수 있다. 예를 들어 HTML 폼의 입력만 저장하고 있는 `mysql` 테이블을 파일로 출력하면 탭이 사용된 것은 구분 문자뿐이라고 예상할 수 있다. HTML 폼을 사용하지 않고 HTML 요청에서 우회하여 탭을 입력할 수도 있지만, 원래 경로에서는 탭을 입력할 수 없으므로 탭이 입력된 경우 부적절한 것으로 간주하여 오류를 발생시킬 수 있다는 점도 이점이 된다.

5. 1. 단순성 및 가독성

TSV는 탭 문자를 구분자로 사용하기 때문에, 쉼표가 포함된 데이터를 다룰 때 쉼표 구분 값(CSV)보다 더 읽기 쉽고 명확하다.[10] TSV 형식은 UNIX 계열 소프트웨어나 Microsoft Excel 등에서 표준 형식으로 취급되어 읽기 및 쓰기 작업이 비교적 간단하다는 장점이 있다.[10] 예를 들어, `cut` 명령어는 별도 지정이 없으면 입력을 탭 구분 형식으로 받으며,[10] `mysql`은 파일 출력 시 기본 형식이 탭 구분 형식이다.[10] 또한, Microsoft Excel에서 복사 및 붙여넣기를 할 때도 탭 구분 형식이 사용된다.[10]

탭 문자는 일반적으로 입력 폼에 입력할 수 없는 경우가 많아, 분석 시 구분 문자가 필드 값에 섞이는 상황을 고려한 별도 처리를 생략할 수 있다. 예를 들어, HTML 폼 입력값을 저장하는 mysql 테이블을 파일로 출력하면, 탭 문자는 구분자로만 사용되었을 것이라고 예상할 수 있다. HTML 폼을 우회하여 탭 문자를 입력하는 것도 가능하지만, 이는 부적절한 입력으로 간주하여 오류 처리할 수 있다.

5. 2. 필드 내 탭 문자 처리

탭은 입력 양식에서 일반적으로 허용되지 않아, 탭 구분 값(TSV) 형식을 사용하면 분석 시 구분 문자가 필드에 섞이는 문제를 방지할 수 있다.[10] 예를 들어 HTML 폼 입력 데이터를 저장하는 MySQL 테이블을 파일로 출력할 때, 필드 내에 탭 문자가 나타나면 부적절한 입력으로 간주하여 오류를 발생시킬 수 있다.[10]

5. 3. 다양한 소프트웨어 지원

UNIX 계열 소프트웨어 및 Microsoft Excel 등 많은 프로그램들이 탭 구분 값(TSV) 형식을 표준으로 지원하여 데이터를 쉽게 읽고 쓸 수 있다.[10] 예를 들어, `cut` 명령어는 기본적으로 탭 구분 형식을 입력으로 사용하고, MySQL은 데이터를 파일로 내보낼 때 기본적으로 탭 구분 형식을 사용한다.[10] Microsoft Excel은 탭 구분 형식으로 복사 및 붙여넣기를 지원한다.[10]

탭 문자는 일반적으로 입력 폼에 입력할 수 없기 때문에, 필드 값에 구분 문자가 섞여 들어가는 것을 고려한 복잡한 처리 과정을 생략할 수 있다는 장점이 있다. 예를 들어, HTML 폼 입력만 저장하는 MySQL 테이블을 파일로 출력하면 탭은 구분 문자로만 사용되었다고 예상할 수 있다.

참조

[1] 웹사이트 Choose the best file formats https://www.ed.ac.uk[...] University of Edinburgh 2023-05-23
[2] 웹사이트 How To Use Tab Separated Value (TSV) files https://www.imf.org/[...] International Monetary Fund 2023-02-01
[3] 웹사이트 Linear TSV: simple, line-oriented, tabular data http://dataprotocols[...] 2014-05-06
[4] 웹사이트 jq Manual https://stedolan.git[...] 2018-11-01
[5] 서적 Text Processing with Ruby: Extract Value from the Data That Surrounds You https://books.google[...] Pragmatic Bookshelf 2015-09-22
[6] 서적 Microsoft Log Parser Toolkit: A Complete Toolkit for Microsoft's Undocumented Log Analysis Tool https://books.google[...] Elsevier 2005-02-10
[7] 웹사이트 IANA: text/tab-separated-values https://www.iana.org[...]
[8] 웹사이트 How To Use Tab Separated Value (TSV) Files https://www.imf.org/[...] International Monetary Fund
[9] 웹사이트 Definition of tab-separated-values (tsv) https://www.iana.org[...] 2020-05-04
[10] 웹사이트 cut(1) - Linux manual page https://man7.org/lin[...] 2023-11-20
[11] 웹사이트 How To Use Tab Separated Value (TSV) Files https://www.imf.org/[...] International Monetary Fund
[12] 웹인용 Definition of tab-separated-values (tsv) https://www.iana.org[...]



본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.

문의하기 : help@durumis.com