커서 (사용자 인터페이스)

right|frame|위키백과라는 단어를 입력하는 동안 깜빡이는 텍스트 커서
컴퓨팅에서 **커서**(←currō('달리다')+ -or(동작주 접미사)에서 유래)는 컴퓨터 모니터 또는 다른 디스플레이 장치에서 텍스트 커서나 마우스 포인터와 같이 입력에 반응할 현재 위치를 나타내는 데 사용되는 지표이다.

## 어원
커서는 라틴어로 '주자'를 뜻한다. 커서는 계산자에서 한 지점을 표시하는 데 사용되는 머리카락 같은 선이 새겨진 투명한 슬라이드에 주어진 이름이다. 이 용어는 비유를 통해 컴퓨터로 옮겨졌다.

섬네일|계산자의 커서
1963년 11월 14일, 네바다주 리노에서 열린 컴퓨터 그래픽 컨퍼런스에 참석하던 증강 연구 센터(ARC)의 더글러스 엥겔바트는 면적기의 기본 원리를 X- 및 Y-좌표 데이터 입력에 적용하는 방법을 고심하며 인간 지능을 증강하기 위한 하드웨어 및 소프트웨어 컴퓨터 기술 개발 목표를 추구하려는 자신의 생각을 처음으로 표현했으며, 그가 처음에는 버그라고 불렀던 마우스의 커서와 같은 것을 상상했는데, 3점 형태로 "드롭 포인트와 2개의 직교 휠"을 가질 수 있었다. 그는 그 "버그"가 사용하기에 "더 쉽고" "더 자연스러울" 것이며, 스타일러스와 달리 놓았을 때 움직이지 않아 "키보드와의 조정에 훨씬 더 좋을 것"이라고 썼다.

빌 잉글리시 휘하 ARC의 젊은 하드웨어 디자이너인 로저 베이츠에 따르면, 당시 화면상의 커서는 알 수 없는 이유로 CAT라고도 불렸는데, 이로 인해 새로운 포인팅 장치도 마우스라고 불리게 되었다.

## 텍스트 커서

[섬네일|332px|[Windows 명령 프롬프트의 커서(줄 끝에 밑줄로 표시)]]
대부분의 명령줄 인터페이스 또는 문서 편집기에서, **[[Caret navigation|캐럿]]**으로도 알려진 텍스트 커서는 밑줄 문자, 단색 사각형 또는 수직선으로 나타나며, 깜빡이거나 고정되어 있을 수 있고, 텍스트가 입력될 위치(**삽입 지점**)를 나타낸다. 텍스트 모드 디스플레이에서는 새 텍스트가 삽입될 위치를 보여주기 위해 문자 사이에 수직 막대를 표시할 수 없었으므로, 대신 밑줄 또는 블록 커서가 사용되었다. 블록이 사용되는 상황에서는 일반적으로 배타적 논리합 함수를 사용하여 문자의 픽셀을 반전시켜 블록을 만들었다. 비트맵 디스플레이의 현대적인 문서 편집기 및 워드 프로세서에서는 일반적으로 수직 막대가 대신 사용된다.

일반적인 문서 편집기 응용 프로그램에서 커서는 다양한 키를 눌러 이동할 수 있다. 여기에는 네 개의 커서 키, Page Up 및 Page Down 키, Home 키, End 키, 그리고 Control 키와 같은 수식키를 포함하는 다양한 키 조합이 포함된다. 커서의 위치는 마우스 포인터를 문서의 다른 위치로 이동하고 클릭하여 변경할 수도 있다.

텍스트 커서의 깜빡임은 이동 중에는 일시적으로 중단된다. 그렇지 않으면 커서가 보이지 않을 때 위치가 변경되어 위치를 추적하기 어려울 수 있다.

깜빡이는 커서의 개념은 1967년 8월에 제출된 미국 특허 3531796을 통해 찰스 키즐링 시니어에게 귀속될 수 있다.

일부 인터페이스는 사용자가 삽입 모드에 있음을 나타내기 위해 밑줄 또는 얇은 수직 막대를 사용하는데, 이 모드에서는 기존 텍스트 중간에 텍스트가 삽입되며, 사용자가 덮어쓰기 모드에 있음을 나타내기 위해 더 큰 블록을 사용하는데, 이 모드에서는 삽입된 텍스트가 기존 텍스트를 덮어쓴다. 이러한 방식으로 블록 커서는 한 문자 너비의 선택된 텍스트로 간주될 수 있는데, 이는 입력 시 커서의 텍스트가 새 텍스트로 대체되기 때문이다.

### 양방향 텍스트
작은 왼쪽 또는 오른쪽을 가리키는 부속이 있는 수직선 텍스트 커서는 양방향 텍스트를 지원하는 시스템에서 텍스트 흐름 방향을 나타내기 위한 것으로, 따라서 프로그래머들 사이에서는 일반적으로 '양방향 커서'로 알려져 있다. 어떤 경우에는 커서가 두 부분으로 나뉘어 각각 왼쪽에서 오른쪽으로, 오른쪽에서 왼쪽으로 텍스트가 삽입될 위치를 나타낼 수 있다.

## 포인터
섬네일|포인터 세트의 일반적인 포인터 역할
섬네일|right|일반적인 포인터 유형 (확대됨)
컴퓨팅에서 **포인터** 또는 **마우스 포인터**(개인용 컴퓨터의 WIMP 스타일 상호 작용의 일부로서)는 컴퓨터 모니터 또는 기타 디스플레이 장치에 나타나는 기호 또는 그래픽 이미지로, 일반적으로 마우스, 터치패드 또는 디지털 펜과 같은 포인팅 장치의 움직임을 반영한다. 이는 사용자의 동작이 일어나는 지점을 알려준다. 텍스트 기반 또는 그래픽 사용자 인터페이스에서 다른 요소를 선택하고 이동하는 데 사용될 수 있다. 키보드 커서도 포인터를 사용하여 재배치할 수 있다.

텍스트 커서와는 다르지만, 마우스 포인터도 커서 또는 마우스 커서라고 불린다.

포인터는 일반적으로 기울어진 화살표로 나타나지만(역사적으로 저해상도 화면에서 모양을 개선하기 위해 기울어졌기 때문), 다른 프로그램이나 운영체제에 따라 다를 수 있다. 포인터는 입력 방식 또는 포인팅 장치가 화면에서 유동적으로 움직이며 화면의 개체를 선택하거나 강조 표시할 수 있는 장치일 때 사용된다. 많은 휴대 전화의 5방향 키와 같이 하드 키에 의존하는 GUI에서는 포인터가 사용되지 않으며, 대신 GUI는 명확한 포커스 상태에 의존한다.

포인터는 일반적으로 마우스, 터치패드 또는 트랙볼과 같은 포인팅 장치의 움직임을 반영한다.
이러한 종류의 포인터는 메뉴, 버튼, 스크롤바 또는 기타 위젯과 같은 그래픽 사용자 인터페이스의 요소를 직접 조작하는 데 사용된다.

### 모양
[48x48px|섬네일|대기 포인터는 포인터를 [모래시계로 대체한다.]]

포인터 핫스팟은 포인터의 활성 픽셀로, 포인트 앤드 클릭 또는 드래그 앤드 드롭을 대상으로 지정하는 데 사용된다. 표준 화살표 포인터는 끝에 핫스팟이 있으며, 그렇지 않은 경우 종종 중앙에 있지만 포인터의 어느 위치에나 있을 수 있다.

많은 GUI에서 포인터를 화면 여기저기로 움직이면 상황에 따라 포인터 모양이 달라지면서 다른 스크린 핫스팟이 나타날 수 있다. 예를 들어:

* 사용자가 선택하거나 편집할 수 있는 텍스트에서 포인터는 위아래에 작은 십자선(또는 구부러진 세리프와 유사한 확장선)이 있는 수직 막대로 변경된다. 이는 때때로 같은 이름의 건설 세부 사항인 형강의 단면과 닮았기 때문에 I-빔이라고 불리기도 한다.
* 문서를 표시할 때 포인터는 모든 손가락을 뻗은 손 모양으로 나타나 표시된 페이지를 밀어 스크롤할 수 있게 한다.
* 그래픽 애플리케이션은 활성 도구에 따라 브러시, 연필 또는 페인트 통과 같은 포인터를 자주 표시한다.
* 창의 가장자리나 모서리에서 포인터는 일반적으로 이중 화살표(수평, 수직 또는 대각선)로 변경되어 사용자가 표시된 방향으로 가장자리/모서리를 드래그하여 창 크기를 조정할 수 있음을 나타낸다. 이중 화살표는 창이 두 개 이상의 부분으로 분할될 때 이동 가능한 분할자와 유사하게 사용된다.
* 전체 화면의 모서리와 가장자리도 스크린 핫스팟으로 작동할 수 있다. 대상 영역에 도달하는 데 걸리는 시간을 예측하는 피츠의 법칙에 따르면, 마우스 및 스타일러스 포인터를 해당 지점으로 이동하는 것은 쉽고 빠르다. 포인터는 일반적으로 화면 가장자리에 도달하면 멈추기 때문에 해당 지점의 크기는 가상적으로 무한하다고 간주될 수 있으므로 포인터를 가장자리로 던져 핫 코너와 가장자리에 빠르게 도달할 수 있다.
* 컴퓨터 프로세스가 작업을 수행 중이고 사용자 입력을 받을 수 없을 때, 마우스 포인터가 해당 창에 있으면 대기 포인터(Windows Vista 이전의 Windows 및 기타 많은 시스템에서는 모래시계, Windows Vista 이후에는 회전하는 고리, 클래식 Mac OS에서는 시계, macOS에서는 돌아가는 바람개비)가 표시된다.
* 포인터가 하이퍼링크 위에 있으면 마우스오버 이벤트로 포인터가 검지를 뻗은 손 모양으로 바뀐다. 종종 링크에 대한 일부 정보 텍스트가 말풍선으로 나타나며, 사용자가 포인터를 멀리 이동하면 사라진다. 상자에 표시되는 말풍선은 웹 브라우저의 구현에 따라 다르다. 많은 웹 브라우저는 요소의 제목(요즘 가장 일반적), Alt 속성(역사적으로), 또는 웹 표준이 아닌 tooltips 속성을 표시한다. 이 포인터 모양은 Apple Computer의 하이퍼카드에서 하이퍼링크에 처음 사용되었다.
* Windows 7에서 Windows Touch가 Windows를 터치 친화적으로 만들기 위해 주류로 도입되면서 마우스 포인터 대신 터치 포인터가 표시된다. 터치 포인터는 제어판에서 끌 수 있으며 작은 다이아몬드 모양을 닮았다. 화면이 터치되면 터치 포인터 주위에 파란색 잔물결이 나타나 시각적인 터치 피드백을 제공한다. 스와이프하여 스크롤 등을 할 때, 터치 포인터는 손가락이 움직이는 대로 따라간다. 길게 눌러 오른쪽 클릭이 활성화된 경우, 길게 누르면 터치 포인터 주위에 두꺼운 흰색 고리가 나타난다. 이 고리가 나타나면 손가락을 떼면 오른쪽 클릭이 수행된다.
** 펜이 사용되면 왼쪽 클릭 잔물결은 파란색 대신 무색이며, 오른쪽 클릭 고리는 펜촉과 화면이 접촉하는 곳에 더 가깝게 나타나는 얇은 고리이다. 클릭(왼쪽 또는 오른쪽)은 터치 포인터를 표시하지 않지만, 스와이프는 여전히 포인터를 표시하며 펜촉을 따라간다.
** 또한, 터치 포인터는 사용자가 Windows 7에 로그인한 후에만 바탕 화면에 나타난다. 로그인 화면에서는 마우스 포인터가 단순히 터치된 지점으로 점프하고 탭 시 왼쪽 클릭이 전송되는데, 이는 Windows 7 이전 운영체제에서 터치 입력이 사용될 때와 유사하다.
* 터치스크린이 있는 Windows 8 이상에서는 시각적인 터치 피드백이 손가락이 화면과 접촉하는 부분에 반투명한 원을 표시하고, 길게 눌러 오른쪽 클릭을 시도할 때는 사각형을 표시한다. 스와이프는 두께가 다른 반투명한 선으로 표시된다. 피드백은 Windows 8 및 Windows 8.1의 제어판의 펜 및 터치 설정 또는 Windows 10의 설정 앱에서 켜고 끌 수 있으며, 프레젠테이션과 같이 강조해야 할 때는 더 어둡고 크게 만들 수도 있다. 그러나 터치 포인터는 일반적으로 Windows 7 이후의 Windows 운영체제의 터치스크린 환경에서는 덜 자주 보인다.
* 마우스오버 또는 호버 제스처는 말풍선을 표시하여 포인터가 위에 있는 콘텐츠에 대한 정보를 제공할 수 있다. 이 정보는 활성 요소를 선택하는 목적이나 수행할 동작에 대한 설명이다. 말풍선은 콘텐츠 위에 정지해 있을 때만 나타난다. 정보를 확인하는 일반적인 용도는 URL이 인식할 수 없는 경우 링크를 선택하기 전에 인터넷을 탐색할 때 링크의 목적지를 아는 것이다.
** Windows에서 터치 또는 펜을 사용할 때, 지원되는 경우 호버링하거나 설정된 제스처 또는 플릭을 수행하면 말풍선이 표시될 수 있다.

#### I-빔 포인터
섬네일|I-빔 포인터
I-빔 포인터(I-커서라고도 함)는 세리프가 있는 대문자 I 모양의 커서이다. 이 커서의 목적은 커서 아래의 텍스트를 강조 표시할 수 있고 때로는 삽입하거나 변경할 수 있음을 나타내는 것이다.

### 포인터 트레일 및 애니메이션
섬네일|right|마우스 포인터 트레일의 예

****은 이동 중 가시성을 높이는 데 사용될 수 있다. 포인터 트레일은 포인터의 가시성을 높이기 위한 GUI 운영체제의 기능이다. 기본적으로 비활성화되어 있지만, 포인터 트레일은 Windows 3.1x 이후 모든 버전의 마이크로소프트 윈도우에서 옵션으로 제공되었다.

포인터 트레일이 활성화되고 마우스나 스타일러스가 움직이면 시스템은 화면의 이전 위치에서 포인터 이미지를 제거하기 전에 잠시 기다린다. 포인터가 그 순간 방문한 모든 지점에 포인터 복사본이 유지되어 실제 포인터를 따라가는 뱀과 같은 포인터 아이콘의 흔적이 남는다. 사용자가 마우스 움직임을 멈추거나 화면에서 스타일러스를 제거하면 트레일은 사라지고 포인터는 정상으로 돌아온다.

포인터 트레일은 주로 시력 장애가 있는 사용자와 밝은 햇빛 아래 LCD 스크린과 같이 가시성 문제가 발생할 수 있는 화면을 위해 기능으로 제공되었다.

윈도우에서 포인터 트레일은 제어판에서 일반적으로 마우스 애플릿 아래에서 활성화할 수 있다.

윈도우 NT와 함께 도입된 애니메이션 포인터는 포인터 위치에서 재생되는 작은 반복 애니메이션이었다. 이는 예를 들어 컴퓨터가 작업을 수행하느라 바쁘다는 시각적 신호를 제공하는 데 사용된다. 도입 이후 많은 애니메이션 포인터가 타사 공급업체에서 다운로드할 수 있게 되었다. 애니메이션 포인터에도 문제가 없는 것은 아니다. CPU에 약간의 추가 부하를 주는 것 외에도 애니메이션 포인터 루틴은 보안 취약점을 도입했다. Windows의 애니메이션 커서 로드 루틴의 버퍼 오버플로 취약점을 이용하여 악성 코드를 로드하는 클라이언트 사이드 보안 취약점인 윈도우 애니메이션 커서 원격 코드 실행 취약점(Windows Animated Cursor Remote Code Execution Vulnerability)이 사용되었다.

## 3D 커서
섬네일|블렌더 내의 3D 커서 예시(중앙)

커서가 새로운 데이터 또는 회전과 같은 변형을 위한 마커 또는 삽입 지점으로 사용된다는 아이디어는 3차원 모델링 환경으로 확장될 수 있다. 예를 들어 블렌더는 3D 뷰포트에서 폴리곤 메시와 같은 작업을 수행할 위치를 결정하는 데 3D 커서를 사용한다.

## 같이 보기
* 수전 케어, 여러 일반 커서 모양의 디자이너
* 마이크로앤젤로 툴셋
* 스로버
* 말풍선 (위젯)
* 커서리얼

## 각주

## 외부 링크

* 브라우저 커서 생성 및 제어
* 크로스 브라우저 CSS 사용자 정의 커서
* 컴퓨터에 커서 설치하기
* Windows 데스크톱 애플리케이션 디자인 지침: 일반적인 포인터 모양
* Apple 인간 인터페이스 지침: 포인터

분류:의사소통
분류:사용자 인터페이스 기술
분류:가상 현실
분류:사용자 인터페이스
분류:인간-기계 상호 작용