20230101 ~ 20230108
2023 시나공 정보처리기사 필기
사용자와 시스템 간의 상호작용이 원활하게 이뤄지도록 도와주는 장치나 소프트웨어
인터페이스(Interface)
서로 다른 두 시스템이나 소프트웨어 등을 서로 이어주는 부분 또는 접속 장치
사람이나 시스템이 기계나 프로그램을 편리하게 사용할 수 있도록 하는 연결점
초기의 사용자 인터페이스 -> 사용자와 컴퓨터 간의 상호작용에 국한됨
점차 사용자가 수행할 작업을 구체화시키는 기능 위주로 변경됨
최근에는 정보 내용을 전달하기 위한 표현 방법으로 변경됨
사용자 인터페이스의 세 가지 분야
정보 제공과 전달을 위한 물리적 제어 분야
콘텐츠의 상세 표현과 전체 구성 분야
모든 사용자가 편리하고 간편하게 사용하도록 하는 기능(접근성) 분야
사용자의 만족도에 가장 큰 영향을 미치는 중요한 요소
소프트웨어 영역 중 변경이 가장 많이 발생한다.
사용자 중심 설계로 사용자 중심의 상호작용이 되도록 한다.
사용자의 편리성과 가독성을 높여 작업 시간을 단축시키고 업무 이해도를 높인다.
최소한의 노력으로 원하는 결과를 얻을 수 있게 한다.
수행 결과의 오류를 줄인다.
사용자의 막연한 작업 기능에 대해 구체적인 방법을 제시한다.
정보 제공자와 공급자 간의 매개 역할을 수행한다.
사용자 인터페이스를 설계하기 위해서는 소프트웨어 아키텍처를 반드시 숙지해야 한다.
상호작용의 수단 및 방식에 따라 다음과 같이 구분
CLI(Command Line Interface)
GUI(Graphical User Interface)
NUI(Natural User Interface)
사용자의 말이나 행동(모바일 제스처 등)으로 기기를 조작하는 인터페이스
주요 모바일 제스처(Mobile Gesture)
Tab(누르기) :
화면을 가볍게 한 번 터치하는 동작
Double Tap(두 번 누르기) :
화면을 빠르게 두 번 터치하는 동작
Drag(누른 채 움직임) :
화면의 특정 위치에 손가락을 댄 상태에서 정해진 방향으로 움직인 후 손가락을 떼는 동작
Pan(누른 채 계속 움직임) :
화면에 손가락을 댄 후 손가락을 떼지 않고 계속적으로 움직이는 동작.
움직이는 방향이나 시간에 제한이 없으며, 손가락을 뗄 때까지의 동작을 패닝(Panning)이라고 함.
Press(오래 누르기) :
화면의 특정 위치를 손가락으로 꾹 누르는 동작
Flick(빠르게 스크롤) :
화면에 손가락을 터치하면서 수평 또는 수직으로 빠르게 드래그하는 동작
Pinch(두 손가락으로 넓히기/좁히기) :
두 손가락으로 화면을 터치한 후 두 손가락을 서로 다른 방향으로 움직이는 동작
VUI(Voice User Interface)
OUI(Organic User Interface)
모든 사물과 사용자 간의 상호작용을 위한 인터페이스
소프트웨어가 아닌 하드웨어 분야에서 사물 인터넷(IoT, Internet of Things), 가상현실(VR, Virtual Reality), 증강현실(AR, Augmented Reality), 혼합현실(MR, Mixed Reality) 등과 함께 대두되고 있다.
직관성 / 유효성 / 학습성 / 유연성
직관성
유효성
학습성
유연성
설계할 때 고려할 사항 : 사용자 중심 / 사용성 / 일관성 / 단순성 / 결과 예측 가능 / 가시성 / 심미성 / 표준화 / 접근성 / 명확성 / 오류 발생 해결 등
사용자 중심
사용자가 쉽게 이해하고 편리하게 사용할 수 있는 환경 제공
실사용자에 대한 이해가 바탕이 되어야 한다.
사용성
사용자가 소프트웨어를 얼마나 빠르고 쉽게 이해할 수 있는지, 얼마나 편리하고 효율적으로 사용할 수 있는지의 정도
사용자 인터페이스 설계 시 가장 우선적으로 고려
일관성
버튼이나 조작 방법 등을 일관성 있게 제공
사용자가 쉽게 기억하고 습득할 수 있게 설계
단순성
결과 예측 가능
가시성
심미성
디자인적으로 완성도 높게 글꼴, 색상 적용, 그래픽 요소 배치
가독성을 높일 수 있도록 설계
표준화
기능 구조와 디자인을 표준화
한 번 학습한 이후에는 쉽게 사용할 수 있도록 설계
접근성
명확성
오류 발생 해결
사용자의 입력 검증
에러 처리와 그에 관한 에러 메시지 표시
도움과 프롬프트(Prompt) 제공
UI 표준과 지침을 토대로 기술의 중립성(웹 표준) / 보편적 표현 보장성(웹 접근성) / 기능의 호환성(웹 호환성)이 고려되었는지 확인한다.
UI 표준
전체 시스템에 포함된 모든 UI에 공통적으로 적용될 내용
화면 구성, 화면 이동 등
UI 지침
UI 개발 과정에서 꼭 지켜야 할 공통의 조건
UI 요구사항, 구현 시 제약사항 등
웹 표준 / 웹 접근성 / 웹 호환성
웹 표준(Web Standards)
웹에서 사용되는 규칙 또는 기술
웹 사이트 작성 시 이용하는 HTML, JavaScript 등에 대한 규정, 웹 페이지가 다른 기종이나 플랫폼에서도 구현되도록 제작하는 기법 등을 포함
웹 접근성(Web Accessibility)
웹 호환성(Cross Browsing)
장애인이 비장애인과 동등하게 접근할 수 있는 웹 콘텐츠의 제작 방법을 제시
목적 : 웹 콘텐츠 저작자, 웹 사이트 설계자 등이 접근성이 보장된 웹 콘텐츠를 쉽게 제작할 수 있도록 돕는 것
웹 접근성의 준수 여부를 평가할 수 있는 요구 조건과 모두 준수할 경우 얻을 수 있는 기대 효과 제시
웹 콘텐츠 접근성(사용성) 지침 준수를 위한 고려 사항
인식의 용이성
대체 텍스트
멀티미디어 대체 수단
동영상, 음성 등 멀티미디어 콘텐츠에 대한 이해도를 높일 수 있도록 대체 수단을 제공해야 한다.
대체 수단 :
멀티미디어 콘텐츠에 포함된 음성(대화)을 대체할 수 있는 자막, 대본, 수화 등을 의미한다.
명료성
콘텐츠는 색이나 명도, 방향, 모양, 크기, 소리 등에 관계없이 명확하게 전달될 수 있어야 한다.
소리
콘텐츠에 포함된 모든 소리는 자동으로 재생되면 안되므로 멈춤 / 일시정지 / 음량 조절 등 제어 수단을 함께 제공해야 한다.
단, 3초 미만으로 재생되는 소리는 자동 재생이 허용된다.
운용의 용이성
키보드 접근성
충분한 시간 제공
광과민성 발작 예방
광과민성 발작 :
사람이 장시간 불규칙적으로 깜빡거리거나 번쩍이는 빛의 자극에 노출되어 발생하는 발작
광과민성 발작을 일으킬 수 있는 콘텐츠는 제공하지 않아야 한다.
초당 3 ~ 50회 주기로 깜빡이거나 번쩍이는 콘텐츠 등
쉬운 내비게이션
콘텐츠를 쉽고 편리하게 내비게이션 할 수 있어야 한다.
반복되는 영역은 건너뛸 수 있도록 하거나 용도나 목적을 이해할 수 있도록 링크 텍스트를 제공하는 등
이해의 용이성
가독성
예측 가능성
콘텐츠의 논리성
입력 도움
견고성
문법 준수
웹 콘텐츠는 마크업 언어(Markup Language)의 문법을 준수해야 한다.
마크업 언어(Markup Language) :
태그 등을 이용하여 문서의 포맷이나 구조 등을 지정하는 언어.
HTML, SGML, XML 등.
접근성
사용자가 사이트에서 원하는 정보를 빠르게 찾을 수 있도록 안내하는 것
사용자가 중심이 되어야 한다.
내비게이션은 원하는 정보를 쉽고 빠르게 찾을 수 있도록 다양한 경로나 방법을 제공해야 한다.
내비게이션의 구성 요소는 사용자가 직관적으로 찾아 사용할 수 있도록 설계되어야 한다.
내비게이션의 구성 요소는 사용자가 혼동하지 않도록 전체 페이지에서 일관성이 있어야 한다.
내비게이션 구조의 요소
메뉴(단추)
계층 구조를 표현하는 기본 요소
사용자가 원하는 페이지로 이동할 수 있게 한다.
링크
이미지 맵
사이트 맵
사이트 메뉴바
내비게이션 바
디렉터리
정부기관의 홈페이지 구축 시 반영해야 할 최소한의 규약을 정의한 것
모든 사람이 시스템 환경에 구애받지 않고 정부기관의 홈페이지를 이용할 수 있도록 하기 위한 것
'전자정부 웹 표준 준수 지침'에는 이를 준수할 경우의 기대 효과가 제시되어 있다.
전자정부 웹 표준 준수 지침 사항
내용의 문법 준수
모든 웹 문서는 적절한 문서타입을 명시해야 한다.
명시한 문서타입에 맞는 문법을 준수해야 한다.
모든 페이지는 사용할 인코딩 방식을 표기해야 한다.
내용과 표현의 분리
논리적인 마크업 언어를 사용하여 웹 문서를 구조화해야 한다.
사용된 스타일 언어는 표준적인 문법을 준수해야 한다.
동작의 기술 중립성 보장
스크립트의 비표준 문법을 확장하는 것을 배제해야 한다.
스크립트의 비사용자를 위해 대체 텍스트나 정보를 제공해야 한다.
플러그인의 호환성
플러그인은 다양한 웹 브라우저에서 호환되는 것을 사용해야 한다.
플러그인(Plug-In) :
응용 프로그램에 추가되어 특정한 기능을 수행하도록 구현된 프로그램 모듈
콘텐츠의 보편적 표현
메뉴는 다양한 브라우저에서 접근할 수 있어야 한다.
웹 사이트를 다양한 인터페이스로 이용할 수 있어야 한다.
운영체제에 독립적인 콘텐츠 제공
부가 기능의 호환성 확보
다양한 프로그램 제공
정보를 열람하는 기능은 다양한 브라우저에서 사용할 수 있어야 한다.
별도의 다운로드가 필요한 프로그램은 윈도우 / 리눅스 / 맥킨토시 중 2개 이상의 운영체제를 지원해야 한다.
사용자의 요구사항에 맞게 UI의 화면 구조나 화면 배치 등을 설계할 때 사용하는 도구
와이어프레임 / 목업 / 스토리보드 / 프로토타입 / 유스케이스 등
UI 설계 도구로 작성된 결과물은 사용자의 요구사항이 실제 구현되었을 때의 예상 결과물을 기획단계에서 미리 보여주기 위한 용도로 사용된다.
기획 단계의 초기에 제작하는 것
페이지에 대한 개략적인 레이아웃이나 UI 요소 등에 대한 뼈대를 설계하는 단계
제작할 때 각 페이지의 영역 구분 / 콘텐츠 / 텍스트 배치 등을 화면 단위로 설계
개발자나 디자이너 등이 레이아웃을 협의하거나 현재 진행 상태 등을 공유하기 위해 사용
와이어프레임 툴 : 손그림 / 파워포인트 / 키노트 / 스케치 / 일러스트 / 포토샵 등
사용 방법 설명, 평가 등을 위해 와이어프레임보다 좀 더 실제 화면과 유사하게 만든 정적인 형태의 모형
시각적으로만 구성 요소를 배치하며 실제로 기능이 구현되지는 않는다.
목업 툴 : 파워 목업 / 발사믹 목업 등
와이어프레임에 콘텐츠에 대한 설명 / 페이지 간 이동 흐름 등을 추가한 문서
디자이너와 개발자가 최종적으로 참고하는 작업 지침서
정책 / 프로세스 / 콘텐츠 구성 / 와이어프레임 / 기능 정의 등 서비스 구축을 위한 모든 정보가 들어있다.
상단이나 우측에는 제목, 작성자 등을 입력하고 좌측에는 UI 화면, 우측에는 디스크립션(Description)을 기입한다.
디스크립션(Description)
화면에 대한 설명 / 전반적인 로직 / 분기처리 / 예외처리 등을 작성하는 부분
명확하고 세부적으로 작성해야 한다.
스토리보드 툴 : 파워포인트 / 키노트 / 스케치 / Axure 등
와이어프레임이나 스토리보드 등에 인터랙션을 적용함으로써 실제 구현된 것처럼 테스트가 가능한 동적인 형태의 모형
사용성 테스트나 작업자 간 서비스 이해를 위해 작성하는 샘플
작성 방법에 따라 페이퍼 프로토타입 / 디지털 프로토타입으로 나뉜다.
프로토타입 툴 : HTML/CSS / Axure / Flinto / 네이버 프로토나우 / 카카오 오븐 등
사용자 측면에서의 요구사항
사용자가 원하는 목표를 달성하기 위해 수행할 내용을 기술
사용자의 요구사항을 빠르게 파악함으로써 프로젝트의 초기에 시스템의 기능적인 요구를 결정하고 그 결과를 문서화할 수 있다.
자연어로 작성된 사용자의 요구사항을 구조적으로 표현한 것
유스케이스 다이어그램이 완성되면 각각의 유스케이스에 대해 유스케이스 명세서를 작성
새로 개발할 시스템에 적용할 UI 관련 요구사항을 조사해서 작성하는 단계
다양한 경로를 통해 사용자의 요구사항을 조사하고 분석한 후 작성해야 한다.
UI 요구사항 확인 순서 :
목표 정의 -> 활동 사항 정의 -> UI 요구사항 작성
사용자들을 대상으로 인터뷰를 진행한 후 사용자들의 의견이 수렴된 비즈니스 요구사항을 정의
인터뷰를 통해 사업적, 기술적 요구사항을 명확히 이해
인터뷰 진행 시 유의사항
인터뷰는 가능하면 개별적으로 진행
가능한 많은 사람을 인터뷰하여 다양한 의견을 수렴하되, 다수의 의견으로 인해 개인의 중요한 의견을 놓치지 않도록 주의
인터뷰는 한 시간을 넘지 않도록 한다.
인터뷰 진행은 반드시 사용자 리서치를 시작하기 전에 해야 한다.
사용자 리서치(Research)
사용자들의 요구사항이나 불편사항 등을 파악하기 위해 진행되는 것
리서치 전에 인터뷰를 진행함으로써 효과적인 리서치 계획이 가능
설문조사, 개인 인터뷰 등으로 진행
조사한 요구사항을 토대로 앞으로 해야 할 활동 사항을 정의
사용자와 회사의 비전을 일치
리서치 규모, 디자인 목표 등을 결정할 수 있도록 각각에 필요한 예산과 일정을 결정
기술의 발전 가능성을 파악하고 UI 디자인의 방향을 제시
인터뷰한 내용을 기반으로 경영진마다 다르게 이해하고 있는 프로젝트에 대해 정확히 이해하고 협의
사업 전략 및 목표 / 프로세스의 책임자 선정 / 회의 일정 및 계획 작성 / 우선순위의 선정 / 개별적인 단위 업무를 구분
여러 경로를 통해 수집된 사용자들의 요구사항을 검토하고 분석하여 UI 개발 목적에 맞게 작성
반드시 실사용자 중심으로 작성
여러 사람의 인터뷰를 통해 다양한 의견을 수렴하여 작성
UI 요구사항을 바탕으로 UI의 전체적인 구조를 파악 및 검토
작성 순서 :
요구사항 요소 확인 -> 정황 시나리오 작성 -> 요구사항 작성
파악된 요구사항 요소의 종류와 각각의 표현 방식 등을 검토
요구사항 요소
데이터 요구
기능 요구
사용자의 목적 달성을 위해 무엇을 실행해야 하는지를 동사형으로 설명
기능 요구 리스트는 최대한 철저히 정리
제품/서비스의 품질
제약 사항
제품 완료 데드라인 / 전체 개발 및 제작에 필요한 비용 / 시스템 준수에 필요한 규제가 포함된다.
사전에 제약사항의 변경 가능 여부를 확인한다.
사용자의 요구사항을 도출하기 위해 작성하는 것
사용자가 목표를 달성하기 위해 수행하는 방법을 순차적으로 묘사
정황 시나리오 : 사용자의 어떤 요구사항이 있을 때 이것을 만족하기 위해 사용자가 수행하는 과정을 이야기 형식으로 표현한 것
요구사항 정의에 사용되는 초기 시나리오
개발하는 서비스의 모습을 상상하는 첫 번째 단계
사용자 관점에서 시나리오를 작성해야 한다.
사용자가 주로 사용하는 기능 위주로 작성
함께 발생되는 기능들은 하나의 시나리오에 통합
육하원칙에 따라 간결하고 명확하게 작성
작성된 시나리오는 외부 전문가 또는 경험이 풍부한 사람에게 검토를 의뢰
소프트웨어의 품질은 소프트웨어의 기능 / 성능 / 만족도 등 소프트웨어에 대한 요구사항이 얼마나 충족하는가를 나타내는 소프트웨어 특성의 총체이다.
소프트웨어의 품질은 사용자의 요구사항을 충족시킴으로써 확립된다.
ISO/IEC 9126
ISO/IEC 9126은 소프트웨어의 품질 특성과 평가를 위한 표준 지침으로서 국제 표준으로 널리 사용된다.
개발자 관점에서 본 소프트웨어 품질의 특성에 대한 표준이다.
소프트웨어의 품질에 대한 요구사항을 기술하거나 개발중인 또는 개발이 완료된 소프트웨어의 품질 평가 등에 사용된다.
2011년 호환성과 보안성을 강화하여 ISO/IEC 25010으로 개정되었다.
ISO/IEC 9126에서 제시한 소프트웨어의 품질 특성
품질 특성 | 상세 품질 |
---|---|
기능성 | - 적절성/적합성 - 정밀성/정확성 - 상호 운용성 - 보안성 - 준수성 |
신뢰성 | - 성숙성 - 고장 허용성 - 회복성 |
사용성 | - 이해성 - 학습성 - 운용성 - 친밀성 |
효율성 | - 시간 효율성 - 자원 효율성 |
유지 보수성 | - 분석성 - 변경성 - 안정성 - 시험성 |
이식성 | - 적용성 - 설치성 - 대체성 - 공존성 |
ISO/IEC 25010
ISO/IEC 25010은 소프트웨어 제품에 대한 국제 표준
2011년에 ISO/IEC 9126을 개정하여 만들었다.
ISO/IEC 25010에서 제시한 소프트웨어의 품질 특성
품질 특성 | 상세 품질 |
---|---|
기능 적합성 | - 기능 완전성 - 기능 정확성 - 기능 적절성 |
성능 효율성 | - 시간 효율성 - 자원 효율성 - 사양 |
호환성 | - 공존성 - 상호운용성 |
사용성 | - 적절 인지정도 - 학습성 - 조작성 - 사용자 오류 방지 - UI 미학 - 접근성 |
신뢰성 | - 성숙성 - 사용가능성 - 결함 허용성 - 복구성 |
보안성 | - 기밀성 - 무결성 - 부인방지 - 책임추적성 - 인증성 |
유지 보수성 | - 모듈성 - 재사용성 - 분석성 - 변경성 - 시험성 |
이식성 | - 적응성 - 설치성 - 대체성 |
ISO/IEC 12119
ISO/IEC 9126을 준수한 품질 표준
테스트 절차를 포함하여 규정
ISO/IEC 14598
필요 절차를 소프트웨어 품질의 측정과 평가에 규정한 표준
개발자 / 구매자 / 평가자 별로 수행해야 할 제품 평가 활동을 규정
소프트웨어가 사용자의 요구사항을 정확하게 만족하는 기능을 제공하는지 여부를 나타낸다.
적절성/적합성(Suitability)
정밀성/정확성(Accuracy)
상호 운용성(Interoperability)
보안성(Security)
준수성(Compliance)
기능과 관련된 표준, 관례 및 규정을 준수할 수 있는 능력
준수성은 각 품질 특성에 품질 특성과 관련된 표준, 관례 및 규정을 준수할 수 있는 능력으로서 포함되어 있으나, 동일한 내용이어서 기능성에만 포함하도록 교재에는 적혀 있다. 유의할 부분.
소프트웨어가 요구된 기능을 정확하고 일관되게 오류 없이 수행할 수 있는 정도
주어진 기능을 오류 없이 수행하는 정도
성숙성(Maturity)
고장 허용성(Fault Tolerance)
회복성(Recoverability)
사용자와 컴퓨터 사이에 발생하는 어떠한 행위에 대하여 사용자가 쉽게 배우고 사용할 수 있으며, 향후 다시 사용하고 싶은 정도
쉽게 배우고 사용할 수 있는 정도
이해성(Understandability)
학습성(Learnability)
운용성(Operability)
친밀성(Attractiveness)
사용자가 요구하는 기능을 할당된 시간 동안 한정된 자원으로 얼마나 빠르게 처리할 수 있는지 정도
주어진 기능을 한정된 자원으로 빨리 처리하는 정도
시간 효율성(Rime Behaviour)
자원 효율성(Resource Behaviour)
환경의 변화 또는 새로운 요구사항이 발생했을 때 소프트웨어를 개선하거나 확장할 수 있는 정도
개선과 확장이 쉬운 정도
분석성(Analyzability)
변경성(Changeability)
안정성(Stability)
시험성(Testability)
소프트웨어가 다른 환경에서도 쉽게 적용될 수 있는 정도
적용성(Adaptability)
설치성(Installability)
대체성(Replaceability)
공존성(Co-existence)
사용자 요구사항을 기반으로 실제 동작하는 것처럼 만든 동적인 형태의 모형
완전한 UI를 만들기 전에 사용자와의 의사소통을 위해 만든 모형
테스트가 가능하다.
최종적으로 구현할 화면의 주요 기능을 직접 실행해 볼 수 있도록 미리 만들어본 임시 화면
사용자의 요구사항을 개발자가 맞게 해석했는지 검증하기 위한 것
최대한 간단하게 만들어야 한다.
일부 핵심적인 기능만을 제공하지만 최종 제품의 작동 방식을 이해시키는데 필요한 기능은 반드시 포함되어야 한다.
사용자 요구사항이 모두 반영될 때까지 프로토타입을 계속하여 개선하고 보완해야 한다.
프로토타이핑 및 테스트를 거치지 않고는 실제 사용자와 제품 간의 상호 작용 방식을 예측하기 어려우므로 실제 사용자를 대상으로 테스트하는 것이 좋다.
프로토타이핑
프로토타입을 만드는 과정
사용자의 요구사항 검토부터 최종적인 프로토타입 완성까지 반복적으로 수행되는 전 과정
장점
사용자를 설득하고 이해시키기 쉽다.
요구사항과 기능의 불일치 등으로 인한 혼선을 예방할 수 있어 개발 시간을 줄일 수 있다.
사전에 오류를 발견할 수 있다.
단점
프로토타입에 사용자의 모든 요구사항을 반영하기 위한 반복적인 개선 및 보완 작업 때문에 작업 시간을 증가 시킬 수 있고, 필요 이상으로 자원을 소모할 수 있다.
부분적으로 프로토타이핑을 진행하다보면 중요한 작업이 생략될 수 있다.
페이퍼 프로토타입(Paper Prototype)
아날로그적인 방법
스케치, 그림, 글 등을 이용하여 손으로 직접 작성하는 방법
제작 기간이 짧은 경우 / 제작 비용이 적을 경우 / 업무 협의가 빠를 경우 사용
장점
비용이 저렴
회의 중 대화하면서 생성이 가능
즉시 변경이 가능
고객이 과다한 기대를 하지 않는다.
단점
테스트하기에 부적당
상호 관계가 많은 경우 나타내기 복잡하다.
여러 사람들에게 나눠주거나 공유하기 어렵다.
디지털 프로토타입(Digital Prototype)
프로그램을 사용하여 작성하는 방법
재사용이 필요한 경우 / 산출물과 비슷한 효과가 필요한 경우 / 숙련된 전문가가 있을 경우 사용
장점
최종 제품과 비슷하게 테스트 가능
수정이 쉽다.
재사용 가능
단점
일반적으로 프로토타입의 개발 계획을 수립하는 과정과 프로토타입을 개발한 후 결과를 보고하는 과정으로 진행된다.
계획 시 고려 사항
프로토타입의 개발 목적 확인
소프트웨어, 하드웨어 등 프로토타입 개발 환경 마련
프로토타이핑 일정은 일반적으로 아키텍처가 확정된 이후, 프로젝트의 실제 분석 작업이 완료되기 이전에 진행
대형 프로젝트의 프로토타이핑 일정
프로토타입의 개발 목적이 아키텍처 검증인 경우 :
프로젝트 개발 이전에 완료하거나 대략 1개월 정도로 잡는 것이 좋다.
프로토타입의 개발 목적이 분석, 설계 가이드에 대한 검증인 경우 :
2개월을 추가할 수 있다.
아키텍처의 핵심이 되는 UI 요소를 프로토타입의 범위로 잡는다.
프로토타입의 개발 인원을 확인한다.
리더 / 솔루션 담당자 / 인프라 담당자 / 개발 환경 리더 / 공통 모듈 개발자 / 프로토타입 개발자 등
대형 프로젝트의 프로토타입 개발 인원
주어진 비즈니스 요구사항을 모두 만족하는지 프로토타입 아키텍처를 검증
프로토타입을 통해 발생하는 이슈를 모두 취합하고 해결 방법 제시
프로토타입 이슈
대부분 소프트웨어 아키텍처의 요소를 검증하는 과정에서 발생
이슈는 많이 발생할수록 좋은 것
프로토타입 리더는 이슈를 종류별로 취합하고 해결 방법을 제시해야 하며, 이를 모두 정리해서 보고해야 한다.
프로토타이핑를 진행하면서 분석 / 설계 / 개발 / 테스트 등의 표준 가이드를 확정
프로토타이핑을 진행하면서 가장 많은 시간이 소요된 구간을 찾고 원인 분석, 해결 방법 제시
고객과 프로젝트 매니저, 프로젝트 리더 등에게 완성된 프로토타입을 시연
작성 시 고려 사항
프로토타입의 작성 계획 수립
프로젝트의 범위나 리스크 상황 등 주변 여건을 감안해서 프로토타입의 범위를 결정
프로토타입을 통해서 얻고자 하는 목표 확인
프로토타입의 개발 목표 달성을 위한 필요 최소 기간과 비용을 확인
완성된 프로토타입이 실제 개발에 참조 가능한지 확인
프로토타입으로 검증할 범위가 너무 넓거나 기간이 길면 목표가 커져 문제가 될 수 있으므로 주의
1단계
사용자의 요구사항을 분석하는 단계
사용자 관점에서 기본적인 요구사항이 확정될 때까지 수행
2단계
요구사항을 충족하는 프로토타입을 작성
프로토타입은 개발할 시스템의 핵심 기능을 중심으로 개발
3단계
작성된 프로토타입이 요구사항을 잘 수행하는지 사용자가 직접 확인하는 단계
프로토타입에 대해 다양한 추가 및 수정 의견을 제안 가능
4단계
작성된 프로토타입을 기반으로 수정과 합의가 이뤄지는 단계
개발자는 사용자가 요청한 제안 사항을 수용하여 보완 작업을 진행
작업이 완료된 후 3단계로 되돌아간다.
사용자가 최종적으로 승인을 완료할 때까지 3단계와 4단계가 반복된다.
사용자의 요구사항을 바탕으로 UI 설계를 구체화하여 작성하는 문서
실제 사용할 UI 화면을 설계하기 전에 사용자의 요구사항을 가시화하고 검증하기 위해 작성하는 것
상세 설계 전에 대표적인 화면들을 설계
기획자, 개발자, 디자이너 등과의 원활한 의사소통을 위해 작성
UI 설계서 표지 -> UI 설계서 개정 이력 -> UI 요구사항 정의서 -> 시스템 구조 -> 사이트 맵 -> 프로세스 정의서 -> 화면 설계 순으로 작성
UI 설계서가 수정될 때마다 어떤 부분이 어떻게 수정되었는지를 정리해 놓은 문서
처음 작성 시 첫 번째 항목을 '초안 작성', 버전(Version)을 1.0으로 설정
UI 설계서에 변경 사항이 있을 때마다 변경 내용을 적고 버전을 0.1씩 높인다.
사용자의 요구사항을 확인하고 정리한 문서
사용자 요구사항의 UI 적용 여부를 요구사항별로 표시
UI 요구사항과 UI 프로토타입에 기초하여 전체 시스템의 구조를 설계한 것
사용자의 요구사항이 어떻게 시스템에 적용되는지 알 수 있다.
시스템 구조를 바탕으로 사이트에 표시할 콘텐츠를 한 눈에 알아 볼 수 있도록 메뉴별로 구분하여 설계한 것
사이트 맵을 작성한 후 사이트 맵의 상세 내용(Site Map Detail)을 표 형태로 작성
사용자 관점에서 사용자가 요구하는 프로세스들을 작업 진행 순서에 맞춰 정리한 것
UI의 전체적인 흐름 파악 가능
UI 프로토타입과 UI 프로세스를 참고하여 필요한 화면을 페이지별로 설계한 것
화면을 구분하기 위해 화면별 고유ID를 부여하고 별도 표지를 작성
대표적인 화면들에 대해 포함될 정보 / 인터페이스 요소 / 레이아웃 등이 표현된 와이어프레임을 대략적으로 스케치
와이어프레임(Wireframe)
기획 단계의 초기에 제작하는 것
페이지에 대한 개략적인 레이아웃이나 UI 요소 등에 대한 뼈대를 설계하는 단계
주요 흐름을 스토리보드 형태로 작성
디스크립션에는 시스템 정보 / 인터렉션 / 로직 / 정책 등 디자인하거나 설계할 때 필요한 사항을 기록
스토리보드(Story Board)
윈도우(Window)
메뉴(Menu)
화면에서 수행할 기능들을 일정한 형태로 모아놓은 인터페이스
사용자로 하여금 기능 선택을 수월하게 한다.
아이콘(Icon)
수행하고자 하는 동작 / 동작의 대상 등을 작은 그림 형태로 표현한 인터페이스
동일한 사용 환경 안에서는 아이콘의 크기는 동일하거나 규칙적인 크기 안에서 제공해야 한다.
포인터(Pointer)
입력이 이뤄지는 지점을 알려주는 화면상의 커서
시스템의 상태를 포인터의 모양으로도 표시한다.
유용성(Usability) :
사용자가 시스템을 통해 원하는 목표를 얼마나 효과적으로 달성할 수 있는가에 대한 척도
UI의 주된 목적은 유용성이 뛰어난 UI를 제작하는 것
좋은 UI는 유용성이 뛰어난 UI
유용성이 뛰어난 UI를 설계하려면 사용자와 개발자가 생각하는 완성된 모형의 차이가 작아야 한다.
유용성 평가
사용자 측면에서 복잡한 시스템을 얼마나 편리하게 사용할 수 있는지를 평가하는 것
시스템의 문제점을 찾아내고 개선 방향을 제시하기 위한 조사 과정
유용한 UI를 설계하기 위해서는 UI의 구조 / 기능 / 가치 등에 대해 사용자가 생각하는 사용자 모형과 시스템 설계자가 만들려고 하는 개발자 모형 간의 차이를 최소화해야 한다.
사용자 모형과 개발자 모형 간의 차이가 발생하는 원인
실행 차
평가 차
사용 의도 파악
행위 순서 규정
특정 기능을 사용하기 위한 행위 순서를 세분화시켜 순서대로 제시
사용자가 임의로 행위 순서를 변경할 수 있도록 한다.
특정 작업을 수행하기 위한 단계는 최소화
다양한 방법을 통해 수행할 수 있도록 설계
사용자의 기존 경험에 비추어 가능한 한 친숙하도록 설계
행위의 순서대로 실행
프로세스의 흐름을 직접적으로 파악할 수 있도록 제공
사용자가 행위 순서대로 실행할 때 어려움이 없어야 한다.
과도한 상호 작용은 피한다.
-> 작업이 원활하게 진행되도록 하기 위함
사용자가 의도한 행위를 효율적으로 실행할 수 있도록 피드백 / 취소 기능 / 디폴트 값 등을 적절하게 설정
수행한 키 조작의 결과를 사용자가 빠르게 지각하도록 유도
사용자가 수행한 행위에 대해 최대한 빨리 반응하도록 설계
사용자가 수행한 행위로 인해 현재 시스템의 변화를 직접적으로 파악할 수 있도록 피드백해야 한다.
키 조작으로 변화된 시스템의 상태를 사용자가 쉽게 인지하도록 유도
사용자가 가진 원래 의도와 시스템 결과 간의 유사 정도를 사용자가 쉽게 파악하도록 유도
UI 상세 설계는 UI 설계서를 바탕으로 실제 설계 및 구현을 위해 모든 화면에 대한 자세한 설계를 진행하는 단계
UI 설계서
UI 흐름 설계와 UI 상세 설계 모두에서 작성한다.
UI 흐름 설계에서 UI 설계서의 기본 토대를 작성
UI 상세 설계에서는 흐름 설계에서 작성한 UI 설계서를 다시 한번 확인하고 추가, 수정하여 완성
UI 상세 설계를 할 때는 반드시 시나리오를 작성해야 한다.
사용자 인터페이스의 기능 구조 / 대표 화면 / 화면 간 인터랙션의 흐름 / 다양한 상황에서의 예외 처리 등을 문서로 정리한 것
사용자가 최종 목표를 달성하기 위한 방법을 순차적으로 묘사
UI 설계자 또는 인터랙션 디자이너가 UI 시나리오 문서를 작성하면 그래픽 디자이너가 시나리오를 바탕으로 디자인, 개발자가 UI 구현
개발자가 전체적인 UI의 기능과 작동 방식을 한눈에 이해할 수 있도록 구체적으로 작성
보통 계층(Tree) 구조 또는 플로차트(Flow Chart) 표기법으로 작성
모든 기능에 공통적으로 적용될 UI 요소와 인터랙션을 일반 규칙으로 정의
대표 화면의 레이아웃과 그 화면에 속할 기능을 정의
인터랙션의 흐름을 정의
예외 상황에 대비한 다양한 케이스를 정의
UI 일반 규칙을 지키면서 기능별 상세 기능 시나리오를 정의
UI 시나리오 규칙을 지정
주요 키의 위치와 기능
모든 화면에 공통적으로 배치되는 주요 키의 위치와 기능을 설명한 것
여러 화면 간의 일관성을 보장
공통 UI 요소
체크 박스, 라디오 버튼, 텍스트 박스 등의 UI 요소를 언제, 어떤 형태로 사용할지를 정의
사용자가 조작하면 어떻게 반응하는지 그 흐름을 설명
기본 스크린 레이아웃(Basic Screen Layouts)
기본 인터랙션 규칙(Basic Interaction Rules)
공통 단위 태스크 흐름(Task Flows)
케이스 문서
체크 박스(Check Box) :
여러 개의 선택 상황에서 1개 이상의 값을 선택할 수 있는 버튼
라디오 버튼(Radio Button) :
여러 항목 중 하나만 선택할 수 있는 버튼
텍스트 박스(Text Box) :
사용자가 데이터를 입력하고 수정할 수 있는 상자
콤보 상자(Combo Box) :
이미 지정된 목록 상자에 내용을 표시하여 선택하거나 새로 입력할 수 있는 상자
목록 상자(List Box) :
콤보 상자와 같이 목록을 표시하지만 새로운 내용을 입력할 수 없는 상자
완전성(Complete)
누락되지 않도록 최대한 상세히 기술
해당 시스템의 기능보다는 사용자의 태스크에 초점을 맞춰 기술
일관성(Consistent)
이해성(Understandable)
누구나 쉽게 이해할 수 있도록 설명
불분명하거나 추상적인 표현은 피한다.
가독성(Readable)
표준화된 템플릿 등을 활용하여 문서를 쉽게 읽을 수 있도록 해야 한다.
템플릿(Template)
형판, 형틀이라는 뜻
화면의 기본 레이아웃 형태를 의미
v1.0, v2.0 등과 같이 문서 인덱스에 대한 규칙이나 목차를 제공
읽기 쉽도록 줄 간격, 단락, 들여쓰기 등의 기준 마련
시각적인 효과를 위해 여백 / 빈 페이지 / 하이라이팅 등을 일관성 있게 지정
하이퍼링크 등을 지정하여 문서들이 서로 참조될 수 있도록 지정
수정 용이성(Modifiable)
추적 용이성(Traceable)
요구사항이나 의사소통에 대한 오류 감소
개발 과정에서의 재작업 감소, 혼선 최소화
불필요한 기능 최소화
소프트웨어 개발 비용 절감
개발 속도 향상
사람이 시스템을 보다 편리하고 안전하게 사용할 수 있도록 연구하고 개발하는 학문
최종 목표는 시스템을 사용하는데 있어 최적의 사용자 경험(UX)을 만드는 것
UX와 감성공학
UX : 제품을 사용하고 느낀 총체적 경험
감성공학의 감성 : 경험을 통해 얻은 복합적 감각
원래 HCI는 사람과 컴퓨터의 상호작용을 연구해 사람이 컴퓨터를 편리하게 사용하도록 만드는 학문
대상이 컴퓨터뿐만 아니라 서비스, 디지털 콘텐츠 등으로, 사람도 개인뿐만 아니라 사회나 집단으로 확대됨
HCI는 어떤 제품이 좋은 제품인지, 어떻게 하면 좋은 제품을 만들 수 있는지 등을 연구
사용자가 시스템이나 서비스를 이용하면서 느끼고 생각하게 되는 총체적 경험
단순히 기능이나 절차상의 만족뿐만 아니라 사용자가 참여 / 사용 / 관찰하고 상호 교감을 통해 알 수 있는 가치 있는 경험
기술을 효용성 측면에서만 보는 것이 아니라 사용자의 삶의 질을 향상시키는 하나의 방향으로 보는 새로운 개념
UI가 사용성 / 접근성 / 편의성을 중시한다면 UX는 UI를 통해 사용자가 느끼는 만족, 감정을 중시
UX의 특징
주관성(Subjectivity)
정황성(Contextuality)
총체성(Holistic)
제품이나 작업환경을 사용자의 감성에 알맞도록 설계 및 제작하는 기술
인문사회과학, 공학, 의학 등 여러 분야의 학문이 공존하는 종합과학
'감성'을 과학적으로 측정하기 위해서는 생체계측 기술 / 감각계측 기술 / 센서 / 인공지능 / 생체제어 기술 등이 요구된다.
감성공학의 목적은 인간의 삶을 편리하고 안전하며 쾌적하게 만드는 것
감성공학은 인간의 감성을 구체적으로 제품 설계에 적용하기 위해 공학적인 접근 방법을 사용한다.
인간의 신체적, 정신적 특성을 배려한 제품 설계에서 더 나아가 인간의 감성까지 고려한다.
감성공학은 인간과 컴퓨터의 상호작용을 나타내는 HCI(Human Computer Interaction or Interface) 설계에 인간의 특성과 감성을 반영하였다.
감성공학의 요소기술
기반 기술
구현 기술
응용 기술