경고 대화 상자

경고 대화 상자(alert dialog box)는 그래픽 사용자 인터페이스에서 즉각적인 사용자 조치가 필요한 예기치 않은 상황이 발생했을 때 표시되는 특별한 대화 상자다.

전형적인 경고 대화 상자는 별도의 상자를 통해 사용자에게 정보를 제공하며, 사용자는 이를 닫는 한 가지 방식으로만 응답할 수 있다. 경고 대화 상자를 닫으면 원래 창에 다시 접근할 수 있게 되며, 경고 대화 상자가 나타나 있는 동안에는 원래 창을 사용할 수 없다.

애플리케이션을 차단하는 경고 대화 상자는 사용성 전문가들 사이에서 나쁜 디자인 솔루션으로 간주되는데, 이는 모드 오류를 유발하기 쉽기 때문이다. 또한 오류 대화 상자로 사용될 경우, 사용자에게 오류 상태를 알리거나 파괴적인 작업으로부터 보호하려는 목적을 달성하는 데 효과적이지 않음이 밝혀졌다.

 용도 

경고는 몇 가지 전형적인 용도로 사용된다:Java Look and Feel Design Guidelines, second edition.

 오류: 극복할 수 없는 오류로 인해 작업을 계속하거나 완료할 수 없음을 사용자에게 알린다.
 경고: 현재 진행하려는 작업 방식이 어떤 면에서 위험하거나 해로울 수 있음을 알리고, 종종 진행하지 않을 옵션을 제공한다.
 정보: 최근 사건에 대한 일반적인 알림을 제시한다.
 질문: 현재 프로세스를 완료하는 데 필요한 사용자의 응답을 유도한다.

경고 및 질문 알림은 일반적으로 대화 상자를 닫기 위한 두 가지 반대되는 옵션("허용/거부", "확인/취소", "예/아니오")을 제공한다. 이는 대화 상자를 트리거한 일시 중지된 프로세스를 계속 진행할 것인지, 아니면 작업 없이 프로세스를 중단할 것인지에 대한 암묵적인 가정을 바탕으로 한다. 인터페이스 디자인의 좋은 관행이자 휴먼 인터페이스 가이드라인에 자주 포함되는 내용은 각 옵션에 해당 작업이 프로세스에 미칠 정확한 효과를 레이블로 지정하는 것이다. (예를 들어, 저장되지 않은 변경 사항이 있는 문서를 편집하는 중에 트리거된 대화 상자에서 "저장/저장 안 함"을 사용하는 경우)

기본 프로그램 창을 통해 소통하는 대신 경고 대화 상자를 사용하는 주된 이유는 모달리티 때문이다. 일반적인 온라인 양식은 비모달(non-modal) 방식이다. 이는 사용자에게 어떤 순서로든 수행할 수 있는 많은 작업을 제시한다. 반면 경고 대화 상자는 양식의 특정 요소를 격리하는 모달 상태를 생성하며, 다음 단계로 진행하기 전에 사용자가 이를 처리하도록 요구한다.

모바일 기기 보급이 확대됨에 따라 경고 대화 상자의 유용성이 높아지고 있는데, 그 이유는 다음과 같다:
 모달 경고는 모바일 기기의 기본 기능 중 일부이므로, 플랫폼 간 불일치가 발생하기 쉬운 시각적 스타일링 기법과 달리 기기 생태계 전반에 걸쳐 일관되게 배포할 수 있다.
 뷰포트(화면)가 작을수록 오류나 정보를 찾기 위해 기본 프로그램 창을 검토하는 것이 더 어렵다.
 작은 뷰포트는 사용자가 큰 화면에서 모든 문맥 정보를 한 번에 보는 것보다, 정의된 작업이 있는 일련의 작은 화면들과 상호작용하는 것에 익숙해지게 만들었다.

 예시 

alert()는 자바스크립트에서 경고 대화 상자를 생성하는 데 사용되는 메서드의 이름이다. 메서드의 인수는 창에 표시될 텍스트다.

이러한 방식으로 생성된 대화 상자에는 (전기 장치에서 볼 수 있는 것과 유사한) 노란색 삼각형 경고 기호, 경고 메시지 텍스트, 그리고 창을 닫는 "확인"이라는 단일 버튼이 포함된다.

이러한 대화 상자는 또한 사용자 인터페이스에 대한 제어권을 가져가며, 대화 상자 창이 닫힐 때까지 사용자가 애플리케이션의 다른 작업을 진행하지 못하도록 차단한다.

 비판 

모달 경고 대화 상자는 요청되지 않은 특성으로 인해 모드 오류를 일으키기 쉽다. 인간공학 및 인간공학회(Human Factors and Ergonomics Society) 회의록에 실릴 예정인 한 연구에 따르면, 사용자 대화 상자가 나타날 때 사용자의 주된 목표는 일반적으로 대화 상자가 나타난 원인에 대한 분석 없이 가능한 한 빨리 대화 상자를 없애는 것이다.Fake popup study sadly confirms most users are idiots Ars Technica, 23 September 2008 질문을 받았을 때, 사용자들은 모든 대화 상자를 할당된 작업으로부터의 방해 요소로 치부했다.

이는 경고 상자의 메시지 문구가 사용자에게 이해할 수 없는 경우가 많다는 일반적인 불만으로 설명된다. 적절한 사용자 중심 설계가 없는 애플리케이션에서 개발자는 프로그래머의 정신 모델에 있는 용어와 개념을 포함하여 메시지 텍스트를 결정하며, 이는 사용자의 시각을 반영하지 못한다. 대화 상자가 사용자의 요구를 충족시키는 역할을 하지 못하기 때문에, 일반적인 반응은 더 이상의 고려 없이 경고를 닫는 것이 된다.Raymond Chen, The Old New Thing: The default answer to every dialog box is "Cancel"

위험한 작업은 가능한 한 실행 취소가 가능해야 한다. 예기치 않게 나타나거나 습관화에 의해 닫히는 모달 대화 상자는 위험한 작업으로부터 사용자를 보호하지 못한다. 이 문제는 경고를 제공하는 대신 실행 취소 작업을 제공하거나,아자 래스킨, A List Apart: Never Use a Warning When you Mean Undo 대화 상자 대신 정보 표시줄(infobar)에 경고를 표시함으로써 피할 수 있다.

또 다른 알려진 문제는 모달 윈도로서 대화 상자가 닫힐 때까지 프로그램의 모든 워크플로를 차단한다는 점이다. 사용자는 대화 상자가 주의를 요구한다는 사실을 인식하지 못해 메인 창이 응답하지 않는 것으로 오해하거나, 사용자의 데이터 입력 내용이 손실될 수 있다. 이는 잘못된 데이터로 인해 경고가 발생한 후의 데이터 입력 양식에서 자주 발생한다. 선호되는 디자인은 잘못된 입력을 반영하기 위해 입력 요소의 시각적 측면을 변경하거나(예: 빨간색 테두리 적용), 수정이 필요한 입력 요소 옆에 별표와 같은 문자를 추가하는 것을 포함한다.

 각주 

분류:위젯