Tab 키

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

1. 개요

탭 키는 데이터를 정렬하는 데 사용되는 "tabulate"에서 유래된 용어로, 타자기에서 스페이스바의 불편함을 해소하기 위해 개발되었다. 초기에는 탭 스톱을 수동으로 설정했지만, 이후 탭 설정 및 지우기 키가 개발되어 편리성이 향상되었다. 컴퓨터에서는 탭 키가 QWERTY 자판의 Q 키 왼쪽에 위치하며, 응용 프로그램에 따라 표의 다음 탭 정지점으로 이동하거나, ASCII 탭 문자를 삽입하는 등의 다양한 기능을 수행한다. 또한 GUI 환경에서 위젯 간 포커스 이동, 명령줄 자동 완성, 게임 내 정보 표시, 코드 들여쓰기 등 다양한 용도로 활용된다. 탭 문자는 수평 탭(HT)과 수직 탭(VT)으로 나뉘며, ASCII 및 유니코드에서 특정 코드 값을 갖는다. 탭으로 구분된 값(TSV)은 데이터베이스 필드 값을 내보내고 가져오는 데 사용되며, HTML 및 CSS에서도 탭 문자를 표현하고 제어하는 방법이 존재한다.

Tab 키
📚 더 읽어볼만한 페이지
  • 컴퓨터 키 - AltGr 키
    AltGr 키는 특수 문자 입력에 사용되며, 운영체제와 키보드 레이아웃에 따라 기능이 다르다.
  • 컴퓨터 키 - 프린트 스크린
    프린트 스크린은 컴퓨터 화면 내용을 이미지 형태로 캡처하는 기능으로, 초기에는 프린터 복사에 사용되었으나 현재는 클립보드 복사 방식으로 발전하여 편집 프로그램에 붙여넣거나 파일로 저장할 수 있다.
  • 제어 문자 - 공백 문자
    공백 문자는 단어를 구분하고 텍스트의 구조를 나타내기 위해 사용되며, 언어와 컴퓨터 환경에 따라 다양한 형태로 존재하고 활용된다.
  • 제어 문자 - 이스케이프 시퀀스
    이스케이프 시퀀스는 컴퓨터 주변 장치의 상태를 변경하는 문자열로, 초기 보도 코드에서 시작하여 ASCII 표준을 거쳐 발전했으며 터미널, 프린터, 모뎀 제어 등에 사용되고, C 언어에서는 백슬래시를 사용하여 특수 문자를 표현한다.
  • 컴퓨터에 관한 - 고속 패킷 접속
    고속 패킷 접속(HSPA)은 3세대 이동통신(3G)의 데이터 전송 속도를 높이는 기술 집합체로, 고속 하향/상향 패킷 접속(HSDPA/HSUPA)을 통해 속도를 개선하고 다중 안테나, 고차 변조, 다중 주파수 대역 활용 등의 기술로 진화했으나, LTE 및 5G 기술 발전으로 현재는 상용 서비스가 중단되었다.
  • 컴퓨터에 관한 - 데이터베이스
    데이터베이스는 여러 사용자가 공유하고 사용하는 정보의 집합으로, 데이터베이스 관리 시스템을 통해 접근하며, 검색 및 갱신 효율을 높이기 위해 고도로 구조화되어 있고, 관계형, NoSQL, NewSQL 등 다양한 모델로 발전해왔다.

2. 역사

"탭"(tab)이라는 용어는 데이터를 테이블 등의 형태로 정렬하는 것을 의미하는 "tabulate"라는 단어에서 기원한다. 숫자나 텍스트로 된 표를 입력할 때, 스페이스 바백스페이스 키를 반복적으로 사용해야 했기 때문에 시간이 많이 소요되었다. 이를 단순화하기 위해 태뷸레이터 랙(tabulator rack)이라는 구조에 수평바를 설치했다. 탭 키를 누르면 캐리지를 다음 탭 스톱으로 이동시킬 수 있었다. 원래의 탭 스톱은 태뷸레이터 랙에서 여러 위치로 이동시킬 수 있는 조정 가능한 클립 형태였다. 프레드릭 힐러드(Fredric Hillard)는 1900년에 이러한 메커니즘에 대한 특허를 출원했다.

탭 메커니즘은 각 단락의 첫 줄을 일관되고 빠르게 들여쓰기하는 방식으로도 활용되었다.

2.1. 타자기의 탭

타자기에서 표를 만들 때, 처음에는 스페이스 바나 백스페이스 키를 사용하여 글자 사이의 공백을 수동으로 조정해야 했다. 이를 간단하게 하기 위해 탭 기능이 도입되었다. 탭 키를 누르면 다음 탭 스톱(tab stop)까지 용지가 이동하는 방식이었다. 초기에는 탭 스톱을 수동으로 설정해야 했으나, 나중에 "탭 설정"과 "탭 지우기" 키가 개발되어 등간격의 탭 스톱을 자동으로 설정할 수 있게 되었다.

이 탭 기능은 각 단락의 첫 줄을 들여쓰기하는 데에도 사용되었다. 첫 번째 탭 스톱은 보통 5번째 또는 6번째 글자에 설정되었는데, 이는 활자를 조판할 때의 들여쓰기보다 훨씬 컸다.

2.2. 컴퓨터의 탭

워드 프로세서 및 텍스트 편집기에서 Tab 키는 표의 다음 탭 정지점으로 이동하거나, ASCII 탭 문자를 삽입하거나, 여러 개의 공백 문자를 삽입한다(사용하는 프로그램에 따라 다름).

스프레드시트 소프트웨어에서 탭 키를 누르면 커서를 다음 셀로 이동하고, Shift영어 키와 탭 키를 동시에 누르면 이전 셀로 이동한다.

대부분의 GUI 응용 프로그램(특히 Windows)에서는 탭 키를 누르면 다른 위젯 (버튼 등)으로 포커스가 이동한다. 이를 통해 마우스를 사용하지 않고 키보드만으로 GUI를 조작할 수 있게 되었다. 이는 원래 IBM의 커먼 유저 액세스 설계의 일부였다. macOS에서는 이 기능을 "전체 키보드 접근"이라고 부른다.

탭은 부분적으로 입력된 텍스트를 보완하는 데에도 사용된다. 예를 들어, 일부 명령줄 인터페이스(CUI)에서는, 명령어나 파일명의 처음 몇 글자를 입력하고 탭 키를 누르면 입력한 문자로 시작하는 명령어 또는 파일명으로 자동 완성된다.

탭 키를 눌렀을 때의 작동 방식은 응용 소프트웨어에 따라 다양하다. 워드 프로세서 소프트웨어 및 텍스트 편집기에서는 커서 위치에 ASCII 탭 문자(후술)를 삽입하거나, 8자 또는 4자마다 설정된 기준선(타자기의 탭 스톱에 해당)까지 공백을 삽입한다. 소프트웨어에 따라 탭 위치를 자유롭게 변경할 수 있거나, 탭 바로 뒤를 왼쪽 정렬뿐만 아니라, 가운데 정렬 또는 오른쪽 정렬하는 기능을 가진 것도 있다.

개인용 컴퓨터 비디오 게임에서 Tab 키는 멀티플레이어 게임에서 점수를 표시하는 데 매우 자주 사용된다. 싱글 플레이어 게임의 경우 가상 세계 내 지도나 플레이어의 인벤토리, 기타 유용한 정보를 표시하는 데에도 사용된다.

소프트웨어 공학에서 컴퓨터 프로그램을 개발하거나 파일에서 데이터를 저장하고 조작할 때 Tab 문자는 코드 또는 데이터의 흐름을 안내하고 의미론적 구조를 추가하기 위해 들여쓰기에 자주 사용된다.

3. 탭 문자

탭 문자에는 수평 탭(HT)과 수직 탭(VT) 두 가지 종류가 있다.

ASCII에서 수평 탭(HT)은 10진 문자 코드 9를 가지며, 캐럿 표기법으로는 (^I), 이스케이프 시퀀스로는 `\t`로 표현된다. 수직 탭(VT)은 ASCII 10진 문자 코드 11을 가지며, (^K) 또는 `\v`로 표현된다. EBCDIC에서 HT 코드는 5이고, VT는 11로 ASCII와 동일하다.

초기 프린터는 기계식 탭 정지를 사용하여 탭 위치를 표시했다. 수평 탭은 가로로 움직이는 금속 갈고리로, 수직 탭은 구멍이 뚫린 페이지 길이의 테이프로 표시했다. 이들은 미리 인쇄된 양식에 맞게 수동으로 설정되었다. 이후 설정 가능한 탭 정지는 가로 8자, 세로 6줄 간격의 고정 탭 정지로 대체되었다. 탭 문자는 데이터 압축의 한 형태가 되었다. 8문자 수평 탭이 보급된 것은 8이 2의 거듭제곱이고, 당시 디지털 전자 기기에서 다루기 쉬웠기 때문이다.

ISO 6429에는 탭 정지를 설정하고 지울 수 있는 코드 136(수평 탭 설정), 137(정렬 포함 수평 탭), 138(수직 탭 설정)이 있지만, 거의 사용되지 않는다.

3.1. 수평 탭 (HT)

가장 널리 사용되는 탭은 수평 탭(HT)이다. ASCII유니코드에서 10진수 코드 9로 표현된다. 캐럿 표기법으로는 `^I`로 표현되며, C를 비롯한 수많은 프로그래밍 언어에서 사용되는 이스케이프 시퀀스로는 `\t`로 표현된다.

3.2. 수직 탭 (VT)

ASCII유니코드에서 10진수 코드 11로 표현된다. 캐럿 표기법으로는 `^K`, 이스케이프 시퀀스로는 `\v`로 표현된다. 현대에는 수평 탭에 비해 사용 빈도가 낮다.

3.3. 탭으로 구분된 값 (TSV)

탭으로 구분된 값 (TSV)은 데이터를 교환하기 위한 형식 중 하나로, 각 필드를 탭 문자로 구분한다. 쉼표로 구분된 값 (CSV) 형식과 비교할 수 있다.

탭으로 구분된 값 (TSV)은 데이터베이스 또는 스프레드시트 필드 값을 내보내고 가져오는 데 사용된다. 탭으로 구분된 텍스트는 워드 프로세서에 붙여넣어 단일 명령으로 표로 서식을 지정할 수 있다. 예를 들어, Microsoft Word 2010에서는 삽입 > 표 > 텍스트를 표로 변환... 명령을 사용하여 사용자가 자세한 내용을 선택하는 대화 상자를 생성한다.

데이터를 내보내는 TSV 규칙은 대안인 쉼표로 구분된 값 (CSV) 규칙(쉼표 대신 세미콜론을 사용할 수 있음)과 비교할 수 있으며, 둘 다 쉽게 서로 변환할 수 있다.

고퍼 메뉴는 탭으로 구분된 값을 사용하여 선택기를 나타낸다.

TSV는 또한 코드 정렬에 탭과 공백을 사용하는 것에 대한 프로그래밍 논쟁을 해결하기 위한 현대적인 접근 방식으로 탄성 탭 정지에서 인용되었다. 이 아이디어는 유사한 탭으로 구분된 값 (TSV) 대신 탭으로 구분된 열 (TSC)이라는 체계를 사용한다.

표 계산 소프트웨어 또는 워드 프로세서의 표에서 데이터를 복사하거나 데이터를 붙여넣을 때 탭으로 구분된 텍스트가 사용된다.

3.4. HTML에서의 탭

HTML에서 가로 탭은 ` ` 또는 ` `으로 표현할 수 있다. 그러나 HTML에서 `

` 태그 내부나 CSS의 `white-space` 속성이 `pre`로 설정된 경우를 제외하면, 연속된 공백 문자는 하나로 표시된다.

다음은 `
` 요소 안에서 `	`를 사용한 예시이다.

```html
These 2 lines are tabbed:
2009 This line uses a tab.
This line also uses a tab.
This line does not use a tab.
```

위의 HTML은 다음과 같이 표시된다.


These 2 lines are tabbed:
2009 This line uses a tab.
This line also uses a tab.
This line does not use a tab.


CSS3는 탭 문자에 대한 공백 수를 기본값인 8에서 조정하는 `tab-size` 속성을 정의한다. WebKit은 `tab-size` 속성을 지원하며, 오페라는 `-o-tab-size`, 파이어폭스는 `-moz-tab-size` CSS 속성을 지원한다.

수직 탭은 ` `이지만, XML 1.0 및 HTML에서는 사용할 수 없다.

3.5. 유니코드

유니코드에서 수평 탭(HT)과 수직 탭(VT)은 ASCII와 동일한 코드 포인트를 가진다. 탭 문자를 나타내는 특수 기호와 탭 키 기호도 유니코드에 포함되어 있다.

* 수평 탭 (HT): 코드 포인트 U+0009 (CHARACTER TABULATION).
* 수직 탭 (VT): 코드 포인트 U+000B (LINE TABULATION).

탭 문자는 특수 기호로 그래픽 표현이 가능하다.

* U+2409 (SYMBOL FOR HORIZONTAL TABULATION)
* U+240B (SYMBOL FOR VERTICAL TABULATION)

탭 키를 나타내는 기호는 다음과 같다.

* U+21B9 (LEFTWARDS ARROW TO BAR OVER RIGHTWARDS ARROW TO BAR) (shift 탭이 있는 탭)
* U+21C6 (LEFTWARDS ARROW OVER RIGHTWARDS ARROW)
* U+21E4 (LEFTWARDS ARROW TO BAR) (왼쪽 탭)
* U+21E5 (RIGHTWARDS ARROW TO BAR) (오른쪽 탭)