창 기초: 컨텍스트 설정
이 섹션은 창 기반 사용자 인터페이스 조직의 개요를 제공합니다. 이 개요는 이 가이드라인의 나머지 지침을 이해하는 데 필요합니다.
창 기반 사용자 인터페이스는 여러 개의 창으로 나누어집니다. 창은 화면 여기저기를 이동할 수 있고 다른 창 위에 쌓을 수도 있고 아이콘화할 수도 있습니다. 시스템은 보통 하나의 기본 창과 다수의 보조 창을 가지고
있습니다. 기본 창은 사용자와의 주요 상호작용을 처리하고 대개의 경우 임의 수의 오브젝트를 포함합니다. 보조 창은 관련 오브젝트에 관한 세부사항과 해당 오브젝트에 대한 오퍼레이션을 제공함으로써 기본 창과의
상호작용을 지원하는 데 사용됩니다.
기본 창
기본 창은 대개의 경우 사용자가 상호작용하는 임의 수의 오브젝트를 포함합니다. 일반적으로 사용자는 우선 하나 또는 여러 개의 오브젝트를 선택한 다음(예: 오브젝트 클릭) 선택한 모든 오브젝트에 대해 실행되는
오퍼레이션(예: 메뉴 사용)을 선택하여 시스템과 상호작용합니다. 공통 오퍼레이션은 잘라내기, 복사, 붙여넣기, 삭제 및 특성 보기입니다.
기본 창에는 보통 사용자가 오퍼레이션을 선택할 수 있는 메뉴 표시줄이 포함되어 있습니다. 또한 사용자는 팝업 메뉴를 통해 오브젝트를 마우스 오른쪽 단추로 클릭하거나 직접 오퍼레이션으로 오브젝트를 클릭하여 끄는
방법으로 오퍼레이션을 선택할 수도 있습니다. 총 오브젝트 수가 기본 창 내에 맞지 않을 수 있으므로, 사용자는 경우에 따라 화면 이동 막대를 사용하여 오브젝트를 스크롤하거나 창 크기를 조정할 수 있습니다. 또한
기본 창은 창의 하위 영역을 정의하는 분할창으로 나누어질 수 있고, 분할창 역시 사용자가 크기를 조정할 수 있습니다.
컴포지트
사용자 인터페이스의 컴포지트 오브젝트는 시각적으로 다른 오브젝트로 구성되어 있는 오브젝트입니다. 예를 들어, 단락은 문자의 컴포지트이고, 복잡한 그림 오브젝트는 보다 원시
그림 오브젝트의 컴포지트입니다.
보조 창
보조 창은 관련 오브젝트에 대한 세부사항(예: 특성) 및 해당 오브젝트에 대한 오퍼레이션을 제공함으로써 기본 창을 지원합니다. 일반적으로 몇 개의 오브젝트 특성만 기본 창에 표시됩니다. 오브젝트의 특성은 오브젝트의
속성을 모두 표시하는 특성 창(보조 창)에서 열어 볼 수 있습니다. 사용자는 대개 토글 및 단일 선택 단추, 스케일, 콤보 상자 및 텍스트 필드 등의 제어로 속성을 변경할 수 있습니다.
기본 창과 보조 창은 구별하기 어렵습니다. 기본 창과 보조 창이 동일한 복잡도 레벨을 표시할 수 있습니다. 그러나 기본 창과 보조 창 사이에는 다음 두 가지의 주된 차이점이 있습니다.
-
기본 창은 광범위한 사용성을 제공해야 하므로 응용프로그램에 더 중요한 것으로 간주될 때가 많습니다. 따라서 개발 작업은 기본 창에 초점을 맞추는 경향이 있습니다.
-
보조 창은 보통 기본 창을 탐색하여 표시되지만, 기본 창은 보조 창을 탐색하여 표시되지 않습니다.
특성 창 외에도 다른 유형의 보조 창(예: 대화 상자, 메시지 상자, 팔레트 및 팝업 창)이 있습니다.
많은 응용프로그램은 파일 기반입니다. 사용자는 파일 오브젝트의 열기 오퍼레이션(예: 폴더에서 파일 아이콘을 두 번 클릭)으로 이 응용프로그램을 시작할 수 있습니다. 기본 창은 해당 파일에 저장된
오브젝트를 표시합니다. 파일의 공통 오퍼레이션은 저장, 다른 이름으로 저장, 열기 및 새로 작성이며, 이는 일반적으로 기본 창의 파일 메뉴를 통해 선택할 수
있습니다. 기본 창은 여러 개의 파일(다중 문서 인터페이스(Multiple Document Interface) 또는 MDI라고도 함)도 표시할 수 있으며, 사용자는 다른 파일 간에 전환할 수 있습니다.
시각적 차원
사용하기 편리한 기본 창의 핵심은 제한된 오브젝트와 관련 속성을 시각화할 때 시각적 차원을 사용하는 것입니다. 식별에 필요한 것보다 더 많은 속성을 표시하면 다음과 같은 이점이 있습니다.
-
사용자가 기본 창에 표시되는 속성을 확인할 때 표시해야 할 창의 수를 줄여주므로 창 탐색 오버헤드를 피할 수 있습니다.
-
사용자는 동시에 다양한 오브젝트의 다른 측면을 볼 수 있으므로 비교 및 패턴 인식 시작 시에 도움이 됩니다. 시각적 차원을 잘 사용하면 사용자가 해당 작업에 대해 완전히 새로운 형태의 간편함을 느낄 수
있습니다.
시각적 차원은 다음과 같습니다.
이 차원은 아래에 설명되어 있습니다. 단, 오브젝트의 시각화를 디자인할 때는 사용 가능한 화면 영역에 주의하십시오. 화면 영역을 이용할 때 오버헤드가 가능한 적게 작성하고, 여러 개의 시각적 차원을 사용하여 화면
영역을 추가로 사용할 가치가 있는지를 고려하십시오. 사용자가 실제로 원하는 것은 가능한 많은 오브젝트를 보는 것이므로 이름 목록만으로도 이를 충분히 만족시킬 수도 있습니다.
오브젝트를 고유하게 식별할 수 있으려면 이 시각적 차원을 사용 또는 확장해야 합니다. 아래에 이 주제에 대한 논의가 포함되어 있습니다(아래 "식별" 섹션
참조).
또한 시각적 차원은 시간 차원과 상관하여 사용할 수도 있습니다. 예를 들어 오브젝트를 이동하거나(오브젝트의 위치가 시간에 따라 변경됨) 오브젝트의 모양이나 색상을 변경할 수 있습니다(오브젝트의 상태가 시간에 따라
변경됨). 후자의 경우는 아래 "모양" 섹션에서 논의합니다.
위치
해당 위치가 나타낼 수 있는 가장 직관적인 측면은 현실 세계의 위치입니다. 예제는 다음과 같습니다.
-
현실 세계에서의 위도 및 경도와 같은 위도 및 경도에 오브젝트를 나타내는 지도를 표시하는 GIS(Geographical Information System)
-
오브젝트 및 오브젝트의 현실 세계 좌표에 정확히 일치하는 환경을 나타내는 CAD(Computer Aided Design) 프로그램
-
오브젝트(문자)가 용지 인쇄 출력물에 표시되는 위치와 같은 창 위치에 해당 오브젝트를 표시하는 WYSIWYG(What You See Is What You Get) 편집기
현실 세계 크기를 표시하는 것이 적절한 경우도 있고(CAD 프로그램 및 WYSIWYG 편집기 예제) 그렇지 않은 경우도 있습니다(예: 오브젝트의 크기가 오브젝트 간 거리보다 훨씬 더 작을 때).
예를 들어, 사용자가 대상을 입력해야 하는 항공편 예약 시스템이 있다고 가정해 보십시오. 이에 대해 가능한 표시로는 다른 공항을 포함하는 지도가 있을 수 있습니다(공항이 오브젝트임). 자연히, 공항의 현실 세계
크기는 문제가 되지 않으므로(너무 작아서 보이지 않음) 모든 공항이 같은 크기의 아이콘으로 표시됩니다.
이 예제는 현실 세계의 위치가 관련이 없어도 사용자가 오브젝트를 식별하는 데 도움이 된다면 이를 사용할 수 있음을 보여줍니다. 예제에서 사용자는 공항의 위치를 알아야 할 필요가 없습니다. 그러나 사용자가 지역을
훤히 알고 있는 경우, 대상을 목록에서 찾는 것보다 지도에서 찾는 것이 더 쉬울 수 있습니다.
또한 위치를 사용하여 "가상" 현실 세계의 위치를 나타낼 수도 있습니다. 예를 들어, 사용자가 다양한 상점에서 물건을 살 수 있는 홈 쇼핑 시스템을 상상해 보십시오. 이에 대한 가능한 표시로는 다양한 상점이 위치한
가상 쇼핑 몰의 개략적인 그림이 있을 수 있습니다(상점이 오브젝트임). 이 개략적인 그림은 상점의 실제 위치와 아무런 관계가 없으며 사용자의 공간 기억만을 이용합니다. 즉, 목록 또는 계층 구조의 항목을 기억하는
것보다 x-y 위치를 기억하기가 더 쉽습니다.
또다른 위치 사용 방법은 오브젝트 간에 연관을 표시하는 방법입니다. 즉, 세로 위치가 같은 모든 오브젝트는 어떤 방식으로 연관되어 있고 가로 위치가 같은 모든 오브젝트는 다른 방식으로 연관되어 있습니다.
스프레드시트가 이에 대한 예제입니다.
비슷한 대안은 하나의 축에 일부 속성 값 범위를 표시하는 방법입니다. 예를 들어, 여행 예약 시스템에서 예약된 항공편(항공편이 오브젝트인 경우)은 비행 지속 시간 및 사용자가 각 목적지에 머무는 시간 등 시간에
대한 관계를 보여주는 가로 시간 축을 따라 표시될 수 있습니다. 이 모든 사항을 사용자가 알아야 할 필요는 없지만 두드러지지 않게 나타낼 수 있으면 표시하는 것도 좋습니다.
전체 값 범위를 나타내는 데 그렇게 많은 화면 영역을 사용할 필요가 없는 경우, 오브젝트 간의 거리를 접을 수 있습니다. 여행 예약 예제에서 이는 예약된 모든 항공편이 사이에 간격이 없이 가로로 표시되는 것을
의미합니다. 즉, 첫 번째 항공편은 왼쪽에, 두 번째 항공편은 첫 번째 항공편 바로 오른쪽에 있습니다. 사용자는 각 목적지에 머무는 시간의 길이는 알 수 없으나 비행 지속 시간은 알 수 있습니다.
크기
많은 경우에 "크기"는 위치와 같은 내용을 나타내야 합니다. 예를 들어, CAD 시스템에서 크기는 자연히 현실 세계의 범위를 나타내야 합니다. 그러나 나타내야 하는 크기를 임의로 선택하는 경우도 있습니다(예:
목적지 선택을 도와주는 지도 위의 공항).
이 경우 크기는 가장 먼저 오브젝트의 현실 세계 크기로 인식되는 내용을 나타냅니다. 파일의 오브젝트 크기는 사용된 디스크 공간의 양을 나타냅니다. 은행 계정의 오브젝트 크기는 잔액을 나타냅니다. 비례 계산자는
일반적으로 너무 많은 화면 영역을 필요로 하므로, 대부분의 크기에서 대수 계산자가 비례 계산자보다 더 바람직합니다.
크기는 실제로 매우 직관적이므로 관련이 없어도 크기를 표시하고자 할 수 있습니다. 결국 현실 세계에서 각기 다른 사물(오브젝트)은 각기 다른 크기로 각기 다른 정도의 시각적 필드를 차지합니다. 또한 크기는
두드러지지 않으면서 사물과 사물을 바르게 구별하게 해줍니다. 마찬가지로 사용자 인터페이스에서 다양한 크기를 사용하면 대개의 경우 사용자가 서로 다른 오브젝트를 구별하는 데 도움이 됩니다.
가로 범위로 어느 한 속성을 나타내고 세로 범위로 다른 속성을 나타낼 수 있어도(다소 비직관적이고 사용자를 혼란시킬 수 있음) 크기는 일반적으로 하나의 속성만 나타내도록 사용해야 합니다.
가로 범위나 세로 범위 중 어느 하나는 표시하려는 크기 속성에 (대수적으로) 비례하고, 다른 한 범위는 고정(또는 예를 들어 이름의 길이에 비례)됩니다. 가로 및 세로 범위가 모두 같은 속성에 비례하는 경우,
나아지는 점은 거의 없이 두드러져 보이고 화면 영역만 더 많이 이용합니다.
모양
모양은 일반적으로 그래픽 사용자 인터페이스에서 아이콘으로 표시됩니다. 유형 차이를 세밀히 나타내는 것보다 외양 차이를 자세히 나타내는 것이 더 직관적이므로 모양은 유형을 나타내는 데 가장 많이 사용됩니다. 현실
세계에서 같은 유형의 서로 다른 오브젝트는 비슷하게 보이지만 다른 유형의 오브젝트는 다르게 보입니다. 예를 들어, 의자에 속하는 서로 다른 오브젝트는 비슷하게 보이지만(네 개의 다리, 의자 및 등받이가 있음)
자동차는 의자와 매우 다르게 보입니다.
그렇다면 다른 오브젝트가 다른 유형에 속하는 경우에 대한 기준은 무엇입니까? 다른 클래스는 분명히 다른 유형으로 고려해야 합니다. 또한 일부 속성은 "유형과 유사"합니다. 이 속성은 가능한 값 세트가 제한되어
있어야 하고 해당 값은 보통 오브젝트에 대해 수행할 수 있는 작업을 판별합니다(다른 속성의 오퍼레이션 및 가능한 값을 통해). 현실 세계에서도 마찬가지입니다. 의자와 자동차의 가장 중요한 차이점은 두 오브젝트의
사용 방식입니다. 의자는 휴식용으로 사용되고 자동차는 운송용으로 사용됩니다.
그러나 다른 유형으로 고려해야 하는 대상을 분석할 때 사용자가 유형으로 인식할 가능성이 가장 큰 속성이 무엇인지가 가장 중요하다는 점을 기억하십시오.
복수 클래스가 없거나 "유형"과 유사한 속성이 없으면, 이 속성이 사용자의 주요 관심 대상인 경우에 한해 아이콘을 사용하여 일부 다른 제한 값 속성에 대해 다른 값을 표시할 수 있습니다.
또한 아이콘은 유형 표시 기능 외에 오브젝트의 다양한 상태를 표시하는 데도 사용됩니다. 오브젝트를 선택하면 보통 색상이 검은색으로 변경되거나 오브젝트 주위에 직사각형이 표시되는 두 가지 방법 중 어느 하나로
표시됩니다. 다른 가능한 상태는 오브젝트의 특성 창을 연 경우입니다. 일반적으로 표시 가능한 다른 응용프로그램 특정 상태도 있습니다(예: 전자 우편을 읽었는지 여부). 상태 표시가 사용자의 유형 인식을 더 어렵게
만들지 않도록 하고 반대의 경우도 마찬가지로 확인하십시오.
색상
색상은 시각적 지각을 기반으로 하여 세 가지 컴포넌트로 나뉠 수 있습니다. 즉, 색조(예: 빨간색, 파란색, 갈색 등), 채도 및 음영입니다. 하지만 사용자가 인식하기 너무 어려우므로 다른 컴포넌트를 사용하여 다른
속성을 나타내서는 안됩니다.
색조는 가능한 값 설정이 제한된 유형이나 속성을 나타내는 데 사용할 수 있습니다. 그러나 아이콘을 사용하면 표시하는 값을 사용자가 이해하기 쉽게 디자인할 수 있지만 색상 컨텐츠와 대부분의 값 유형 간에는 그러한
직관적 맵핑이 없으므로 색조 대신 아이콘을 사용하는 것이 더 좋습니다. 직관적 아이콘을 찾을 수 없는 경우 아이콘 대신에 색조를 사용할 수 있습니다. 많은 유형 아이콘이 있는 경우, 대안으로 색조를 사용하여 유형
아이콘을 분류하는 방법이 있습니다(예: 비슷한 의미를 갖는 일부 아이콘은 빨간색, 다른 의미를 갖는 아이콘은 파란색으로 분류).
채도는 값 범위를 갖는 속성을 나타내는 데 사용할 수 있지만 이 방법은 결국 사용자 인터페이스를 보기 흉하고 두드러지게 합니다. 다양한 채도를 사용하면 눈에 좋지 않고 높은 채도를 사용하면 두드러져 보입니다.
음영은 가장 사용하기 편리한 색상 컴포넌트입니다. 음영은 값 범위를 갖는 속성을 나타내는 데 사용할 수 있으며, 두드러지지 않으므로 두 번째로 중요한 속성에도 사용할 수 있습니다. 음영을 두드러지지 않게 하려면,
음영 없음(흰색)에서 전체 음영(검은색)으로 이동하지 않고 낮은 음영(밝은 회색)에서 높은 음영(어두운 회색)으로 이동해야 합니다. 사용자가 오브젝트의 대부분을 작성하는 많은 시스템에서 추이(예: 마지막 변경 이후
시간의 양)에 따라 오브젝트를 나타내면 매우 도움이 됩니다. 이렇게 하면 사용자가 작업 대상 오브젝트(대개의 경우 "마지막 변경 이후 가장 짧은 시간"에 대한 오브젝트)를 식별하는 데 도움이 됩니다. 그러므로
실제로 사용자에게 나타내야 하는 값 범위 속성이 없는 경우 추이 표시를 고려하십시오.
대개의 경우 색상은 아이콘을 감각적으로 보기 좋게 만들고 사용자가 빨리 구별할 수 있게 하기 위해 사용됩니다. 여러가지 색상의 아이콘을 제공하는 경우 다른 목적으로 해당 색상을 사용하지 않아야 합니다.
어떤 사람들은 색맹이고 모든 화면에서 색상을 지원하는 것은 아니므로 일부 필수 정보를 표시하는 유일한 수단으로 색상을 사용해서는 안됩니다. 한편 잘 디자인되고 두드러지지 않은 색상 사용은 사용자 인터페이스를
감각적으로 보기 좋게 만듭니다.
식별
사용자는 각 오브젝트를 고유하게 식별할 수 있어야 합니다. 식별하기에 충분한 다른 시각적 차원이 있는 경우도 있지만 그렇지 않은 경우가 대부분입니다. 아이콘 내부 또는 가까이에 이름을 표시하는 방법은 식별을
지원하는 가장 보편적인 기법입니다. 이름을 사용하면 아주 작은 화면 영역에 많은 다른 이름을 표시할 수 있는 장점이 있습니다.
이름을 속성 값(보통은 텍스트형임)에서 생성할 수 있으면 가장 바람직합니다. 대안은 오브젝트를 작성할 때 사용자가 이름을 지정하게 하는 방법입니다. 그러나 이 방법은 다소 시간이 걸리므로 사용성이 감소됩니다.
때로는 아이콘 내에 이름을 포함할 수 있도록 아이콘 모양을 만들 수 있습니다. 이를 통해 화면 영역을 절약하고 아이콘과 이름 간의 관계를 보다 효과적으로 표시할 수 있습니다. 하지만 다음과 같은 문제점이 발생할 수
있습니다.
-
아이콘은 중간(이름이 표시되는 부분)이 비어 있어야 합니다.
-
이름은 길이가 가변적입니다. 즉, 아이콘의 가로 범위가 이름의 길이에 따라 결정되거나 어떤 이름은 잘리게 됨을 의미합니다.
-
일반적인 길이의 텍스트는 모두 너비보다 길이가 더 길기 때문에 아이콘은 높이보다 너비가 더 넓어야 합니다.
결과적으로 보통 아이콘 아래나 오른쪽에 이름을 표시해야 하므로, 화면 영역을 절약하는 장점이 있는 반면 오브젝트(아이콘 + 이름)의 높이보다 너비가 훨씬 더 넓은 단점도 있습니다. 이름을 표시하기에 충분한 공간이
없는 경우 커서가 아이콘 위에 있을 때 표시되는 팝업 창을 통해 이름을 표시할 수 있습니다(대개 아이콘 이름을 지정하지 않아도 아이콘을 식별할 수 있기 때문에 가능함).
글꼴과 속성 값 간에 직관적 맵핑을 찾을 수 있는 경우 이름의 글꼴을 사용하여 제한된 선택 속성을 표시할 수 있습니다. 예를 들어, 굵은체 또는 기울임체를 사용하여 오브젝트를 구별하거나 중요성을 강조할 수
있습니다. 그러나 대부분의 경우 두드러지고 직관적이지 않으므로 글꼴 사용은 적합하지 않습니다.
이름을 표시(또는 사용자가 변경하도록 허용되는 다른 텍스트를 표시)하는 경우, 기본 창에서 직접 이름을 편집할 수 있도록 지원해야 합니다. 대안은 사용자가 이름 바꾸기 오퍼레이션을 요청한 다음 새 이름을 입력하거나
특성 창을 열어 이름을 편집하도록 하는 방법입니다. 기본 창에서 직접 이름을 편집하면 더 빠를 뿐만 아니라 "보는 곳이 변경하는 곳(WYSIWYG)"이라는 원칙도 지원합니다.
강력한 찾기 및 선택
변경 또는 조작해야 하는 오브젝트의 그룹이 구성되어 사용자가 해당 오브젝트를 식별하는 선택 기준을 표현할 수 있는 경우. 기본 창의 검색 도구는 언제나 모든 기준 일치를 선택하여 문제점을 해결할 수 있습니다.
가능한 검색 관리 방법은 두 가지가 있습니다.
-
검색 기준이 적용되는 모든 오브젝트는 기본 창에서 선택됩니다. 발견한 모든 오브젝트가 너무 멀리 떨어져 있어서 기본 창에 동시에 표시되도록 할 수 없는 경우, 검색 창에 히트 목록을 표시할 수도 있습니다.
검색 후 사용자는 추가 검색 기준을 지정하거나 선택된 오브젝트에 대한 오퍼레이션을 수행합니다. 이 접근 방식의 장점은 사용자가 검색 기준에 일치하는 모든 오브젝트에 대해 일부 오퍼레이션의 순서를 지정할 수
있다는 점입니다.
-
검색 창에 검색 단추를 제공하여 검색 기준에 맞는 다음 오브젝트를 선택하고 이 오브젝트가 보이도록 기본 창의 컨텐츠를 화면 이동합니다. 검색 후 사용자는 선택된 오브젝트에 대한 오퍼레이션을
수행한 다음 계속해서 검색 기준에 맞는 오브젝트를 순차적으로 검색할 수 있습니다. 이 접근 방식의 장점은 사용자가 주위에서(독립 히트 목록이 아닌 기본 창에서) 찾은 오브젝트 각각을 볼 수 있다는 점입니다.
많은 경우 두 가지 경우를 결합해야 합니다(순차 검색 창에 모두 선택 단추 포함 또는 병렬 검색 창에 다음 보기 단추 포함).
정렬
정렬 예제로 시스템이 모든 오브젝트를 알파벳 이름순으로 또는 속성 값에 따라 세로로 배열하는 경우를 들 수 있습니다. 그러면 사용자는 스크롤하여 오브젝트를 찾을 수 있습니다. 이 방법은 구현 및 사용자 오퍼레이션
관점에서 가능한 가장 단순한 찾아보기 지원입니다. 정렬 작업은 사용자가 필요한 오브젝트의 이름(또는 정렬 시 기준이 되는 속성)을 항상 알고 있을 때 가장 효과적입니다. 이 방법으로 구현되는 시스템의 예제는
전화번호부입니다. 정렬 순서 및/또는 기준 변경 오퍼레이션은 대개 기본 창에서 수행합니다.
사용자 제어 상속
사용자 제어 상속의 예제는 각 단락이 속하는 "스타일"을 정의한 다음 이 스타일(즉, 이 스타일에 속하는 모든 문자)의 레이아웃 방법을 정의하는 WYSIWYG 편집기입니다.
검색 도구에 비해 단점은 사용자 제어 상속이 복수 오브젝트에 대한 속성(및 가능한 연관) 변경만 지원하고 오퍼레이션 수행을 지원하지 않는다는 점입니다. 또한 사용자 제어 상속은 사용자가 그룹(즉, 사용 가능한
스타일)을 명시적으로 정의하고 유지보수해야 한다는 점에서 오버헤드를 더합니다. 게다가 개념이 더 복잡합니다.
그러나 오브젝트에 대한 검색 기준을 지정할 수 없는 경우 또는 사용자가 속성 값에 따라 적절히 변경해야 할 경우(예: 2씩 증가), 사용자 제어 상속을 제공하는 방법이 솔루션이 될 수 있습니다.
사용자 제어 상속이 도움이 되려면, 클래스의 특성이 오브젝트를 속성 값의 대부분이 동일한 그룹(사용자에게 어떤 논리적 의미를 가짐)으로 분류될 수 있는 것이어야 합니다.
검색 도구에 비해 장점은 사용자 제어 상속이 대체를 지원한다는 점입니다. 예를 들어 오브젝트에 명시적으로 정의되지 않은 경우에만 속성 값을 변경합니다. 또한 사용자 제어 상속을 사용하면 사용자가 보다 더 일반적이고
효과적인 속성 값 정의를 작성할 수 있습니다. 예를 들어, 이 스타일의 글꼴을 상속하지만 두 픽셀 더 크게 작성할 수 있습니다. 사용자 제어 상속은 그룹에 지정하기 쉬운 검색 기준이 없는 경우에 특히 도움이
됩니다.
사용자 제어 상속을 지원할 클래스는 자체를 상속하거나 상속을 목적으로 하는 클래스를 새로 작성할 수 있습니다. 자체를 상속하도록 클래스를 작성하면 상속할 때와 오브젝트에 대해 원래 의도된 작업(예: 송장, 계정
등)을 수행할 때 모두 같은 오브젝트를 사용할 수 있으므로 좀 더 효과적입니다. 이 경우 사용자 및 시스템이 관리할 클래스가 더 적어집니다. 한편 상속할 클래스를 새로 작성하면 상속이 클래스의 정상 오퍼레이션과
명확히 구분되므로 이해하기가 더 쉬운 장점이 있습니다. 대부분의 경우, 특히 사용자가 컴퓨터 및 객체 지향 모델에 대한 경험이 많지 않은 경우 클래스를 새로 작성하는 방법이 가장 적합한 솔루션입니다. 작성하는 새
클래스는 가급적 여러 상속 레벨을 지원하도록 자체를 상속해야 합니다.
대부분의 시스템에서 사용자는 사용자가 상속 그룹을 구조화되는 방법을 미리 정확하게 알지 못하므로 특정 오브젝트의 상속 그룹을 변경해야 하는 경우가 있습니다. 해당 작업에 대한 오퍼레이션을 제공하십시오.
시스템에서 사용자 제어 상속을 지원하기로 결정한 경우, 상속해야 할 대상(속성, 연관, 클래스)을 분석한 다음 이 대상에 대해서만 상속을 지원하십시오. 이 방법은 (사용자와 개발자에게 모두) 덜 일반적이지만 더
쉬운 기능성 관리 방법입니다. 새 클래스에 상속되어야 하는 사항을 모델링하십시오. 그러면 상속하는 클래스와 상속받는 클래스 모두에서 많은 속성이 모델링됩니다. 사용자 제어 상속은 사용자의 시간을 절약하게 해줍니다.
클래스가 자체를 상속하는 경우 모든 내용이 상속 가능함을 의미합니다.
사용자가 실제로 상속된 클래스의 오브젝트를 새로 작성해야 하는지 혹은 시스템이 확정적으로 충분한 수의 오브젝트를 제공할 수 있는지를 결정하십시오. 사용자가 오브젝트를 새로 작성하지 못하게 하면 상속의 유연성은 크게
줄어들지만 한편으로는 조작하기가 더 쉬워집니다.
또한 상속하는 오브젝트의 수치 속성 변경을 상속된 값에 따라 상대적으로 해석할지 고정적으로 해석할지 결정하십시오. 예를 들어, 오브젝트가 글꼴 크기 12를 상속하는데 사용자가 이를 14로 변경한다고 가정하십시오.
상대 해석에 의하면 시스템은 오브젝트의 글꼴 크기를 상속된 값 +2로 기억합니다. 다시 말해서, 상속된 오브젝트의 글꼴 크기가 해당 글꼴 크기를 변경하는 경우, 상속하는 오브젝트도 해당 글꼴 크기를 변경합니다.
상대 해석을 지원하는 경우, 상속된 오브젝트의 속성에 대해 유의해야 합니다(상속을 점검할 때 살펴보는 부분임). 사용자에게 상대 해석을 표시해야 합니다(예: "글꼴 크기: 14" 대신 "글꼴 크기:
12+2=14"로 표시). 시나리오를 탐색하여 상대 또는 고정된 해석과 관련된 상황을 찾을 수 있습니다. 보통 상대 및 고정된 해석을 모두 지원해야 합니다.
사용자 제어 상속은 중급 및 파워 유저만을 위한 것이므로 일반 사용(예: 사용자가 상속을 사용하지 않는 경우)에 방해가 되지 않도록 디자인해야 합니다. 그렇지 않으면, 초보 사용자가 두려워할 수 있습니다.
생성한 사용자 제어 상속은 사용자에게 편이성을 더하기 위한 것이므로 일반적이거나 단순해야 할 필요는 없지만 사용하기에 편리해야 합니다.
브라우징 계층 구조를 통해 사용자(또는 가능한 경우 시스템)는 오브젝트를 계층적으로 조직된 기본 창 또는 컴포지트로 분류할 수 있습니다. 브라우징 계층 구조는 사용자가 하나 또는 일부 카테고리만 검색할 수 있게
해줍니다. 이 방법은 일정한 시점에 표시해야 하는 오브젝트의 수를 줄여줍니다. 한 가지 결점은 대개 사용자가 분류를 관리해야 한다는 것입니다. 이 기법의 예제는 파일 브라우저이며, 디렉토리나 폴더는 사용자가 파일을
찾는 데 도움을 주기 위해 포함됩니다.
창 관리
창 크기 및 위치는 보통 완전히 사용자에 의해 제어됩니다. 그러나 시스템이 창 크기 및 위치에 영향을 주어 윈도윙 오버헤드를 줄이도록 할 수 있습니다.
기본 창이 커질수록 표시되는 오브젝트는 더 많아지지만 화면 영역을 더 많이 이용하게 됩니다. 기본 창은 일반적으로 가능한 많은 오브젝트를 표시해야 하지만 화면 영역을 불필요하게 이용하면 안됩니다.
-
각 기본 창을 모든 오브젝트를 표시할 수 있을 정도로 크게 작성하되 화면 크기보다는 작게 작성하십시오. 각 기본 창을 전체 오브젝트를 표시할 수 있을 정도로 크게 작성하되 편집 디자인의 여백과 같이 필요한
내용을 표시하지 않는 영역은 사용하지 마십시오. 이 비어 있는 영역은 표시할 공간이 있어도 다른 응용프로그램을 가릴 수 있습니다.
-
사용자는 세션 간의 크기를 변경할 수 있습니다. 오브젝트 수가 증가하면 모든 오브젝트가 보일 정도로 창 크기를 늘리십시오(단, 창 크기가 아직 전체 화면 높이가 아니거나 사용자가 기본값보다 더 작은 크기를
선택한 경우). 오브젝트 수가 감소하면 크기를 줄이십시오(단, 사용자가 기본값보다 더 큰 크기를 선택하지 않은 경우). 이 규칙은 사용자의 크기 변경 오퍼레이션의 의도를 따르게 해줍니다.
기본 창 크기에 대해 가능한 추가 제한사항은 종종 다른 응용프로그램과 병렬로 응용프로그램을 사용해야 하는 경우입니다. 이 경우에는 창의 기본 크기를 반 화면(전체 화면과 대조됨)으로 최대화할 수 있습니다.
기본 창의 기본 위치는 가능한 다른 응용프로그램을 가리는 부분이 없게 작성하십시오. 창을 가려야 하는 경우, 가장 오랜 시간 동안 사용되지 않은 창을 선택하고 해당 창을 조금 보이게 하여 사용자가 쉽게 활성화할 수
있도록 하십시오.
위의 규칙 적용 시 단점은 사용자의 제어 권한을 어느 정도 제한한다는 점입니다(시스템은 요청을 받지 않아도 창 크기를 조정할 수 있고, 세션 간 사용자 위치 재지정을 기억하지 않음). 따라서 이 규칙을 적용하는
경우 사용자가 제어를 통해 해당 규칙을 사용하지 않을 수 있도록 허용해야 합니다.
보조 창의 크기 및 위치는 호출된 창을 가리지 않으면서 가능한 다른 보조 창을 가리지 않아야 합니다. 보조 창이 호출된 창을 가려야 하는 경우에는 선택된 오브젝트를 가리지 않도록 하십시오. 중요한 내용(예: 선택된
오브젝트)을 가리면 보조 창의 공통 사용성 결함을 가져옵니다.
주 기본 창이 아닌 다른 기본 창에 대해서도 마지막 단락의 크기 조정 규칙을 적용하십시오.
한편 대화 상자는 활성 창을 가리도록 놓아야 합니다. 대화 상자는 보통 임시로 사용되고 작으므로, 대화 상자 창이 열려 있는 동안에는 보통 활성 창을 볼 필요가 없습니다. 대화 상자를 활성 창 위에 놓으면 사용자가
해당 대화 상자를 확실히 인식할 수 있고 보통 커서가 활성 창 위에 있으므로 필요한 마우스 이동을 줄어듭니다.
특성 창의 속성 수는 크기를 결정합니다. 크기가 너무 크면(화면의 약 1/4) 탭을 더 많이 사용해야 합니다.
세션 정보
모든 응용프로그램 구성은 사용자가 지정할 필요 없이 세션 사이에 저장해야 합니다. 창의 크기 및 위치, 선택된 보기 및 화면 이동 막대의 위치도 저장해야 합니다. 사용자가 응용프로그램을 다시 시작하면 응용프로그램은
마지막으로 종료했을 때와 똑같이 보여야 합니다. 이렇게 하는 이유는 보통 사용자가 세션을 시작할 때 수행하는 첫 번째 작업이 최근 세션을 종료했을 때의 상태로 돌아가서 작업하는 것이기 때문입니다.
온라인 도움말
온라인 도움말은 시스템의 매우 중요한 부분입니다. 올바르게 디자인된 도움말 시스템은 대부분의 시스템에서 사용자 매뉴얼을 대신할 수 있어야 합니다. 대부분의 사용자가 매뉴얼을 전혀 사용하지 않는다는 것이 주지의
사실임에도 불구하고 대부분의 프로젝트에서 매뉴얼을 구성하고 생산하는 데 상당한 노력을 투자합니다. 매뉴얼 대신 적절한 도움말 시스템에 노력을 투자하는 방안을 고려하십시오.
다음과 같이 많은 가능한 도움말 도구를 고려할 수 있습니다.
-
주제별 도움말은 가장 중요한 도움말 도구입니다. 사용자가 주제를 입력하거나 기존 주제를 찾아보게 하고 해당 주제에 대한 도움말을 제공합니다. 키를 입력하면 많은 도움말 색인이 많은 동의어와 함께
제공됩니다. 유의사항: 도움이 필요한 데 정확한 용어를 모를 수도 있습니다.
-
오브젝트별 도움말은 컨텍스트 도움말입니다. 이는 사용자 인터페이스의 특정 파트(오브젝트)를 설명하는 텍스트를 표시합니다. 사용자는 컨텍스트 도움말을 요청한 다음 도움말이 필요한 사용자
인터페이스의 파트를 선택합니다. 이 도움말 유형은 사용자 인터페이스의 모든 파트에서 지원되어야 합니다(사용 가능한 경우). 다른 대안은 팝업 창에 내재적 도움말을 제공하는 것입니다. 이 도움말은 사용자가 수
초 동안 머무를 때 시스템이 커서 부근에 표시하는 요약된 컨텍스트 도움말입니다. 팝업 창의 내재적 도움말을 사용하면 사용자 인터페이스의 일반 오퍼레이션에 방해가 되지 않으므로 좋습니다.
-
메시지 영역은 사용자의 조치에 대해 요청되지 않은 "설명"을 인쇄하는 영역입니다(일반적으로 기본 창). 제공되는 경우 선택적입니다.
-
마법사는 사용자가 어떤 일을 수행하는 방법에 대한 도움말을 요청할 때 제공을 고려해야 하는 보편적인 기법입니다. 마법사는 "손으로 잡아서 안내하는" 기법을 사용하여 사용자를 타스크로 안내합니다.
마법사는 사용자가 텍스트에 설명된 타스크의 파트를 수행하도록 오퍼레이션(단추)와 관련된 설명 텍스트를 표시합니다. 대안으로 마법사는 질문을 하고 사용자의 응답에 기초하여 타스크를 자동으로 수행합니다.
마법사는 사소하지 않고 자주 사용되지 않는 타스크용으로 아주 좋습니다.
컨텍스트 도움말 및 마법사에 대한 필요성은 사용 테스트 중에 식별되기 쉽습니다. 사용 테스트 중에 사용자가 사용자 인터페이스의 다른 부분을 파악하지 못하는 경우 컨텍스트 도움말이 필요함을 알 수 있습니다. 특정
타스크를 수행하는 데 어려움이 있는 경우에도 마법사가 필요함을 알 수 있습니다.
많은 도움말 시스템의 문제점은 초보자용(명확한 설명을 위해 엄청난 양의 텍스트를 사용) 또는 전문가용(사용자가 거의 응용프로그램을 작성한 프로그래머만큼 알고 있다고 기대하는 참조 매뉴얼)으로 작성되어 있다는
점입니다. 대부분의 시스템 사용자는 대다수가 "발전 중인 중급" 수준입니다. 이들을 위한 도움말 텍스트를 작성하십시오.
실행 취소
실행 취소는 일반적으로 달성(구현)하기는 어렵지만 매우 유용한 기능입니다. 이 기능을 사용하면 사용자는 작업 손상에 대한 두려움을 가질 필요가 없으므로 보다 빨리 학습할 수 있습니다. 또한 정보를 잃어버릴 위험성도
감소합니다. 정보 손실을 막기 위한 대체 솔루션은 정보를 잃을 수 있는 모든 오퍼레이션을 사용자에게 확인하도록 하는 것입니다. 하지만 이 솔루션은 많은 상호작용 오버헤드를 추가하고 사용자는 곧 무의식적으로 확인을
누르게 되어 버리므로 적합하지 않습니다.
바람직한 옵션은 가능한 한 여러 레벨의 실행 취소 및 다시 실행을 제공하는 것입니다. 그러나 첫 번째 실행 취소 레벨로도 사용성 증가의 대부분이 달성됩니다.
매크로 에이전트
매크로를 제공하는 경우, 사용자의 조치를 지속적으로 모니터하여 반복된 상호작용 시퀀스를 찾는 에이전트를 사용하는 것이 매우 유용할 수 있습니다. 반복된 상호작용 시퀀스를 찾는 즉시 에이전트는 사용자에게 허용을
요청한 후 해당 시퀀스에 대한 매크로를 작성합니다. 사용자가 두 개의 텍스트 단락에 "밑줄"을 지시했으며 "밑줄"을 지시한 직후 두 번 다 텍스트 색상을 파란색으로 변경했다고 가정해 보십시오. 이 경우 에이전트는
사용자가 선택한 텍스트 단락에 대해 "밑줄" 및 "색상을 파란색으로 설정"을 둘 다 수행하는 매크로를 필요로 하는지 물어봐야 합니다. 사용자가 이를 원하는 경우 에이전트는 해당 매크로와 이를 실행하는 누름
단추(또는 메뉴 항목)를 작성해야 합니다.
사용자가 레코딩 중에 오브젝트를 선택하면 해당 오브젝트는 일반적으로 "델타" 스펙 즉, 이전 선택과 관련하여 선택된 오브젝트(예: "다음 선택", "첫 번째 하위 선택" 등)로 해석됩니다.
오브젝트의 속성 변경을 델타 스펙으로 해석해야 할지 여부(예: 속성 값을 12에서 14로 변경한 내용을 14로 설정으로 해석하는 대신 2만큼 증가로 해석함)가 분명하지 않습니다. 델타 스펙으로 해석하는 방법이
일반적으로 더 효과적입니다. 복수 오브젝트의 속성을 고정된 값으로 변경하려면 대개 복수 오브젝트를 선택한 다음 해당 속성 창을 열어야 가능하지만, 이 방법을 사용하면 속성을 한 번에 14로 설정할 수 있기
때문입니다.
동적 강조표시
클래스 간에 연관은 보통 양방향인 경우가 많으며, 이는 실제 사용자 인터페이스에서 연관이 두 오브젝트 모두에서 표시됨을 의미합니다. 오브젝트 A에 초점을 맞춘 사용자가 A가 오브젝트
B에 연관되어 있음을 알 수 있는 경우, 보통 오브젝트 B에 초점을 맞추면 B가 A에 연관되어 있음을 알 수 있게 됩니다. 연관은 일반적으로 연관된 오브젝트를
이름으로 식별하는 오브젝트의 특성 창에 표시됩니다.
일반적으로 기본 창에서 오브젝트 간의 연관을 시각화하려면 주의해야 합니다. 화살표나 선으로 연관을 시각화하면 오히려 보기 싫고 두드러지는 "아수라장"이 됩니다. 연관을 시각화하는 적절한 방법은 커서가 연관 오브젝트
위에 있을 때 연관된 모든 오브젝트를 강조표시하는 방법입니다. 이에 대한 예제로 각주가 문서 편집기의 문자와 연관되어 있는 경우 커서가 연관된 문자 위에 있을 때 각주가 강조표시됩니다.
|