대화 상자

컴퓨팅에서 대화 상자 또는 다이얼로그 박스(dialog box) 또는 간단히 대화창은 사용자에게 정보를 전달하고 응답을 요청하는 작은 창 형태의 그래픽 제어 요소이다.

대화 상자는 대화를 시작한 소프트웨어와의 상호작용을 차단하는지 여부에 따라 "모달" 또는 "모달리스(modeless)"로 분류된다. 표시되는 대화 상자의 유형은 원하는 사용자 상호작용에 따라 달라진다.

가장 단순한 유형의 대화 상자는 경고창으로, 메시지를 표시하고 대개 "확인"을 클릭하여 메시지를 읽었음을 확인하거나, "확인" 또는 "취소"를 클릭하여 작업을 진행할지 여부를 결정하도록 요구한다. 경고창은 응용 프로그램이나 운영체제가 의도적으로 종료되거나 의도치 않게 종료(충돌)되었을 때 "종료 통지"를 표시하는 데에도 사용되며, 때로는 통지를 읽었는지 확인을 요청하기도 한다. (예: "Gedit에 오류가 발생하여 종료해야 합니다.") 이것은 모달 대화 상자의 빈번한 상호작용 디자인 패턴이지만, 파괴적인 행동으로 인한 오류를 방지하려는 의도된 용도에 비해 효과적이지 않고 더 나은 대안이 존재한다는 점에서 사용성 전문가들의 비판을 받기도 한다.

대화 상자의 한 예로 많은 소프트웨어 프로그램에서 볼 수 있는 정보 상자(about box)가 있으며, 보통 프로그램의 이름, 버전 번호를 표시하고 저작권 정보를 포함하기도 한다.

 모달리스 
비모달 또는 모달리스(modeless) 대화 상자는 요청된 정보가 작업을 계속하는 데 필수적이지 않을 때 사용되며, 따라서 다른 곳에서 작업을 계속하는 동안 창을 열어둘 수 있다. 모달리스 대화 상자의 한 유형으로는 메인 응용 프로그램에서 분리되어 있거나 분리될 수 있는 도구 모음이 있으며, 도구 모음의 항목을 사용하여 응용 프로그램의 특정 기능이나 함수를 선택할 수 있다.

일반적으로 좋은 소프트웨어 디자인은 사용자를 특정 조작 모드에 가두지 않기 때문에 가능한 경우 대화 상자를 이 유형으로 만들 것을 권장한다. 예를 들어 배경색이나 텍스트 색상과 같은 현재 문서의 설정 대화 상자가 있을 수 있다. 사용자는 색상이 무엇이든 메인 창에 텍스트를 계속 추가할 수 있으며, 대화 상자를 사용하여 언제든지 색상을 변경할 수 있다. (이것이 가능한 최선의 인터페이스 예라는 의미는 아니다. 종종 동일한 기능이 응용 프로그램 메인 창의 도구 모음 버튼으로 구현되기도 한다.)

 시스템 모달 
시스템 모달 대화 상자는 화면의 다른 모든 창과의 상호작용을 차단하며, 대화 상자에서 제시된 문제가 해결될 때까지 사용자가 다른 응용 프로그램으로 전환하거나 다른 동작을 수행하는 것을 방지한다. 시스템 모달 대화 상자는 한 번에 하나의 응용 프로그램만 실행할 수 있었던 과거의 단일 작업 시스템에서 더 흔히 사용되었다. 현재의 예로는 최신 윈도우 버전의 종료 화면이 있다.

 애플리케이션 모달 

모달 대화 상자는 일시적으로 프로그램을 중단시킨다. 사용자는 대화 상자를 닫지 않고는 계속 진행할 수 없다. 프로그램은 계속하기 전에 추가 정보가 필요하거나, 잠재적으로 위험한 작업을 진행할 것인지 사용자의 확인을 받고자 할 수 있다(확인 대화 상자). 사용성 전문가들은 모달 대화 상자가 모드 오류를 일으키기 쉽기 때문에 일반적으로 나쁜 디자인 솔루션으로 간주한다. 위험한 작업은 가능한 한 취소 가능해야 한다. 예기치 않게 나타나거나 (사용자가 습관화되어) 자동으로 닫히는 모달 경고 대화 상자는 위험한 작업으로부터 보호해주지 못한다.아자 래스킨, A List Apart: Never Use a Warning When you Mean Undo

모달 대화 상자는 메인 워크플로를 방해한다. 이러한 효과는 현재 작업의 완료에 집중시키기 위해 개발자가 의도한 것일 수도 있고, 필요할 때 사용자가 다른 작업으로 전환하는 것을 막기 때문에 배제되기도 한다.

 문서 모달 
문서 모달 대화 상자의 개념은 최근에 MacOS 및 오페라 브라우저에서 주로 사용되었다. 이 대화 상자들은 사용자가 대화 상자를 닫을 때까지 해당 창만 차단하며, 동일한 응용 프로그램 내에서도 다른 창에서의 작업은 계속할 수 있도록 허용한다.

MacOS에서 MacOS 빅서 이전에는 대화 상자가 부모 창의 슬롯에서 튀어나오는 것처럼 보였으며 강화된 애니메이션과 함께 표시되었다. 이는 사용자가 대화 상자가 단순히 앞에 표시된 것이 아니라 부모 창에 붙어 있다는 것을 이해하도록 돕는다. 빅서 이후 버전에서는 부모 창이 회색으로 변하고 대화 상자가 부모 창 중앙 위에 나타난다. 대화 상자가 표시되는 동안 기본 문서 자체에서는 작업을 수행할 수 없지만, 부모 창을 이동하거나 크기를 조절하고 최소화할 수 있으며, 사용자가 작업할 수 있도록 다른 창을 앞으로 가져올 수 있다.

동일한 유형의 대화 상자를 윈도우 및 기타 운영체제에서 사용되는 "표준" 모달 대화 상자와 비교할 수 있다.

유사점은 다음과 같다:
 대화 상자가 열리면 부모 창이 고정되어 해당 창의 기본 문서 작업을 계속할 수 없다.
 해당 창의 기본 문서로는 어떤 작업도 할 수 없다.
차이점은 다음과 같다:
 대화 상자가 부모 창의 어느 위치에서나 열릴 수 있다.
 부모 창이 위치한 곳에 따라 대화 상자가 화면의 거의 모든 곳에서 열릴 수 있다.
 대화 상자를 이동할 수 있고(거의 모든 경우), 일부 경우에는 크기 조절이 가능하지만 보통 최소화할 수 없다.
 대화 상자가 열려 있는 동안 부모 창에 대한 어떠한 변경도 불가능하다(크기 조절, 이동, 최소화 불가).

두 메커니즘 모두 단점이 있다:
 윈도우 대화 상자는 부모 창을 잠그는데, 이는 사용자가 대화 상자와 상호작용하는 동안 참조해야 할 다른 창을 가릴 수 있다. 다만 다른 창들은 작업 표시줄을 통해 접근 가능하므로 완화될 수 있다.
 MacOS 대화 상자는 부모 창을 차단하여 사용자가 대화 상자와 상호작용하는 동안 부모 창을 참조하지 못하게 한다. 이로 인해 사용자가 필요한 정보에 접근하기 위해 대화 상자를 닫았다가 다시 열어야 할 수도 있다.

 각주 

 내용주

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