창 (컴퓨팅)

[섬네일|300px|[그누/리눅스의 그래픽 사용자 인터페이스의 예. 두 개의 창이 보이고 한 창이 다른 창을 가렸다.]]
**창**(窓) 또는 **윈도**(window)는 그래픽 컨트롤 요소이다. 이는 해당 창이 속한 프로그램의 그래픽 사용자 인터페이스 일부를 포함하는 시각적 영역으로 구성되며, 창 장식으로 테두리가 둘러쳐져 있다. 보통 다른 창의 영역과 겹칠 수 있는 직사각형 모양을 띤다. 하나 이상의 프로세스에 대한 출력을 표시하며 입력을 허용할 수도 있다.

창은 주로 그래픽 디스플레이와 연관되며, 여기서는 포인터와 일종의 포인팅 장치를 사용하여 조작할 수 있다. 텍스트 전용 디스플레이 또한 이맥스의 다중 버퍼와 같이 여러 개의 독립된 표시 영역을 유지하는 방법으로 창 기능을 지원할 수 있다. 텍스트 창은 대개 키보드로 제어되지만, 일부는 마우스에도 반응한다.

창을 주요 "메타포" 중 하나로 사용하는 그래픽 사용자 인터페이스(GUI)를 윈도 시스템이라고 하며, 그 주요 구성 요소는 디스플레이 서버와 창 관리자이다.

## 역사
이 개념은 더글러스 엥겔바트가 이끄는 스탠퍼드 연구소에서 개발되었다. 그들의 초기 시스템은 다중 창을 지원했지만, 창 테두리나 제목 표시줄 등 창 사이의 경계를 나타내는 명확한 방법이 없었다.

연구는 앨런 케이가 이끄는 제록스 코퍼레이션의 팰로앨토 연구소 / PARC에서 계속되었다. 그들은 겹치는 창을 사용했다.

1980년대에 창(window), 아이콘(icon), 메뉴(menu), 포인터(pointer)를 의미하는 "WIMP"라는 용어가 PARC에서 만들어졌다.

애플은 당시 PARC와 잠시 협력했다. 애플은 PARC의 인터페이스를 기반으로 한 인터페이스를 개발했다. 이는 애플 리사에서 처음 사용되었고 나중에는 매킨토시 컴퓨터에 적용되었다. 마이크로소프트는 당시 맥용 오피스 애플리케이션을 개발하고 있었다. 일부에서는 이것이 마이크로소프트가 애플의 OS가 출시되기 전에 접근할 수 있게 했으며, 결과적으로 마이크로소프트 윈도우라 불리게 될 시스템의 윈도 시스템 설계에 영향을 주었다고 추측한다.

## 속성
창은 데스크톱 메타포라 불리는 평면 위에 배열된 2차원 객체이다. 현대의 기능을 모두 갖춘 윈도 시스템에서 창은 크기 조절, 이동, 숨기기, 복원 또는 닫기가 가능하다.

창은 대개 메뉴 모음, 도구 모음, 컨트롤, 아이콘 및 작업 영역을 포함한 다른 그래픽 객체들을 포함한다. 작업 영역에는 문서, 이미지, 폴더 내용 또는 기타 주요 객체가 표시된다. 작업 영역 주변의 경계 창 내부에는 관련 정보나 옵션을 보여주는 패인(pane) 또는 패널이라 불리는 더 작은 창 영역들이 있을 수 있다. 단일 문서 인터페이스의 작업 영역은 하나의 주요 객체만 유지한다. 다중 문서 인터페이스의 "자식 창"이나 많은 웹 브라우저의 탭 등을 통해 단일 메인 응용 프로그램 창 내에서 여러 개의 유사한 문서나 주요 객체를 사용할 수 있다. MacOS의 일부 창에는 창 옆면에서 슬라이드처럼 나와 추가 옵션을 보여주는 서랍(drawer)이라는 기능이 있다.

그래픽 사용자 인터페이스나 텍스트 사용자 인터페이스 모두에서 실행 가능한 응용 프로그램은 서로 다른 용어를 사용할 수 있다. GNU 이맥스는 디스플레이 내의 영역을 지칭할 때 "창"이라는 용어를 사용하며, X11 창 관리자에 의해 제어되는 전통적인 창은 "프레임"이라고 부른다.

모든 창은 창 장식과 창 내용으로 나눌 수 있으나, 일부 시스템은 미니멀리즘의 일환으로 의도적으로 창 장식을 생략하기도 한다.

## 창 장식

[섬네일|창의 전형적인 요소들. 창 장식은 창 관리자와 같은 운영체제 수준의 프로세스에 의해 그려진다. 내용의 드로잉은 [응용 소프트웨어의 과업이다.]]
**창 장식**은 대부분의 윈도 시스템에서 창의 일부를 이룬다.

창 장식은 일반적으로 각 창의 상단을 따라 위치하는 **제목 표시줄**과 나머지 세 면을 둘러싼 최소한의 테두리로 구성된다. 마이크로소프트 윈도우에서는 이를 "비클라이언트 영역(non-client area)"이라고 부른다.

현대 창 장식의 지배적인 레이아웃에서, 상단 바에는 해당 창의 제목과 다음과 같은 창 관련 동작을 수행하는 버튼들이 포함된다:
* 닫기
* 최대화
* 최소화
* 크기 조절
* 롤업 (창 말아올리기)

테두리는 주로 사용자가 창의 크기를 조절할 수 있게 하기 위해 존재하지만, 창의 내용과 나머지 데스크톱 환경 사이를 시각적으로 분리하는 역할도 한다.

창 장식은 운용체제의 룩 앤드 필 디자인에 중요한 요소로 간주되며, 일부 시스템에서는 사용되는 색상, 스타일 및 애니메이션 효과를 사용자 정의할 수 있다.

### 창 테두리
[섬네일|[중첩 창 관리자는 창 주위에 테두리를 그리는 반면, 합성 창 관리자는 창 주위에 드롭 섀도를 그린다.]]
**창 테두리**는 일부 창 관리자가 제공하는 창 장식 구성 요소로, 활성 창 주위에 나타난다. 일부 창 관리자는 배경 창 주위에도 테두리를 표시할 수 있다. 일반적으로 창 테두리를 드래그하여 창의 크기를 조절하거나 이동할 수 있다. 일부 창 관리자는 순수하게 장식적인 목적일 뿐 창 이동 기능을 제공하지 않는 쓸모없는 테두리를 제공하기도 한다. 이러한 창 관리자들은 테두리 드래그 동작을 통한 창 크기 조절을 허용하지 않는다.

### 제목 표시줄
[섬네일|[GNOME Calculator의 제목 표시줄]]

**제목 표시줄**은 그래픽 컨트롤 요소이자 일부 창 관리자가 제공하는 창 장식의 일부이다. 관례상 창의 상단에 가로 막대 형태로 위치한다. 제목 표시줄은 일반적으로 응용 프로그램의 이름이나 열려 있는 문서의 이름을 표시하는 데 사용되며, 응용 프로그램 창을 최소화, 최대화, 닫기 또는 말아올리기 위한 제목 표시줄 버튼을 제공할 수 있다. 이러한 기능들은 대개 경계 포인팅을 통해 빠르고 부정확한 입력이 가능하도록 화면 우측 상단에 배치된다. 일반적으로 제목 표시줄을 잡고 드래그하여 화면에서 창을 이동시킬 수 있다. 일부 창 관리자는 순수하게 장식적인 목적일 뿐 창 이동 기능을 제공하지 않는 제목 표시줄을 제공한다. 이러한 창 관리자들은 제목 표시줄 드래그를 통한 창 이동을 허용하지 않는다.

기본 제목 표시줄 텍스트에는 종종 응용 프로그램의 이름이나 개발자의 이름이 포함된다. 응용 프로그램을 실행 중인 호스트명이 나타나기도 한다. 컴퓨팅 환경에 따라 최종 사용자가 제목 표시줄 텍스트를 제어할 수 있는 다양한 방법(메뉴 선택, 이스케이프 시퀀스, 설정 파라미터, 명령줄 인터페이스 옵션 등)이 존재할 수 있다. 문서 편집기와 같은 문서 중심 응용 프로그램은 편집 중인 문서의 파일 이름이나 경로를 표시할 수 있다. 대부분의 웹 브라우저는 HTML 요소 `title`의 내용을 제목 표시줄에 렌더링하며, 때때로 응용 프로그램 이름이 앞이나 뒤에 붙기도 한다. 구글 크롬과 일부 버전의 모질라 파이어폭스는 탭을 제목 표시줄에 배치한다. 이렇게 하면 탭을 위해 메인 창 영역을 사용할 필요가 없어지지만, 대개 제목이 잘리게 된다. 저장되지 않은 변경 사항을 나타내기 위해 제목 시작 부분에 별표가 사용될 수 있다.

제목 표시줄에는 최대화, 최소화, 롤업 및 닫기 버튼과 같이 창과 관련된 시스템 명령용 위젯이 포함되는 경우가 많으며, 응용 프로그램 아이콘이나 시계 등 다른 내용이 포함될 수도 있다.

#### 제목 표시줄 버튼
일부 창 관리자는 응용 프로그램 창을 최소화, 최대화, 말아올리기 또는 닫기 기능을 제공하는 제목 표시줄 버튼을 제공한다. 일부 창 관리자는 제목 표시줄 버튼을 제목 표시줄 대신 작업 표시줄이나 작업 패널에 표시하기도 한다.

다음 버튼들이 제목 표시줄에 나타날 수 있다:
* 닫기
* 최대화
* 최소화
* 크기 조절
* 롤업 (또는 WindowShade)

일부 제목 표시줄 버튼이나 우클릭을 통해 콘텍스트 메뉴를 사용할 수 있다.

#### 제목 표시줄 아이콘
일부 창 관리자는 해당 응용 프로그램에 따라 달라지는 작은 아이콘을 제목 표시줄에 표시한다. 제목 표시줄 아이콘은 메뉴 버튼처럼 작동하거나 콘텍스트 메뉴 기능을 제공할 수 있다. macOS 응용 프로그램은 대개 창 제목 옆에 파일 관리자의 문서 아이콘과 동일하게 작동하는 프록시 아이콘을 가지고 있다.

#### 문서 상태 아이콘
일부 창 관리자는 창의 내용이 저장되지 않았거나 확인되지 않았음을 나타내는 아이콘이나 기호를 표시한다. macOS는 닫기 버튼 중앙에 점을 표시하며, RISC OS는 제목에 별표를 추가한다.

#### 타일형 창 관리자
일부 타일형 창 관리자는 순수하게 정보 제공 목적으로만 사용되며 컨트롤이나 메뉴를 제공하지 않는 제목 표시줄을 제공한다. 이러한 창 관리자들은 제목 표시줄 드래그를 통한 창 이동을 허용하지 않으며, 중첩 창 관리자의 상태 표시줄과 같은 용도로 쓰이기도 한다.

#### 대중적인 운영체제에서

## 각주


## 같이 보기
* 그래픽 사용자 인터페이스

분류:그래픽 사용자 인터페이스