1. UI 설계
1.1 UI (User Interface) 개념⭐
1.1.1 UI 개념
- 컴퓨터, 웹 사이트, 시스템 등의 정보기기와 사용자가 서로 상호작용을 할 수 있도록 연결해주는 매개체
- 디스플레이 화면, 아이콘, 검색창, 키보드, 문자, 색상, 폰트 등의 여러 요소들이 포함
- UI의 핵심은 특별한 설명이 없이, 사용자 누구나 알아보기 쉽고, 편리하게 이용할 수 있도록 만든 보편적이고 직관적인 디자인 이어야 함
1.1.2 UX (User eXperience) 개념
- 사용자가 컴퓨터, 웹 사이트, 시스템 등 정보기기의 UI를 직/간접적으로 이용하여 경험한 모든 것
- 모바일 화면에 대한 사용자의 경험, 포장박스를 개봉할 때의 느낌, 디바이스 인터페이스를 사용하며 느끼는만족감이나 불편함 등 사용할 때의 모든 행동, 느낌, 감정 등이 UX에 포함
- 사용자들의 경험을 분석하여 사용자의 불만족을 최소화하고, 보다 편리하게 이용할 수 있도록 디자인
- UI를 기반으로 사용자들의 공감과 만족을 이끌어내는 역할이 UX
1.1.3 UI 유형 : CGNO⭐
CLI (Command Line Interface): 사용자가 컴퓨터 자판을 이용해 명령을 입력하여 컴퓨터를 조작하는 시스템GUI (Graphical User Interface): 그래픽과 텍스트로 이루어져 있어, 사용자의 입력이나 출력이 마우스 등을 통해 이루어짐NUI (Natural User Interface): 특별한 하드웨어 없이 인간의 자연스러운 움직임을 인식하여 정보를 제공OUI(Organic User Interface): 현실의 모든 사물을 입출력장치로 변화하는 사용자 인터페이스- e.g., 영화
<아이언맨>그래픽 화면들
- e.g., 영화
AUI (Auditory User Interface): 보다 나은 사용자 경험을 제공하기 위해 만들어진 임베디드 사운드
1.2 UI 설계
1.2.1 UI 요구사항 구분⭐
기능적 요구사항- 시스템이 제공해야 하는 기능에 대한 요구사항
- 입력, 출력, 데이터, 연산에 관한 요구사항
비기능적 요구사항- 사용성, 효율성, 신뢰성, 유지 보수성, 재사용성 등 품질에 관한 요구사항
- 플랫폼, 사용 기술 등 시스템 환경에 관한 요구사항
- 비용, 일정 등 프로젝트 계획에 관한 요구사항
1.2.2 UI 설계 절차
| 순서 | 설명 |
|---|---|
| UI 개발목표 및 범위 수립 | - 해당 프로젝트의 UI 부분의 목표와 범위에 대한 계획을 수립하는 단계- 프로젝트 계획 전반에 UI 계획을 반영한다. - 이해 당사자의 UI 요구 사항을 조사하고, 정의한다. - UI 트렌드 및 해당 서비스의 사용자를 분석한다. |
| UI 전략 수립 | - 서비스를 사용할 사용자 조사 및 시장 조사를 통해 UI, UX 전략을 수립하는 단계 - 기술적 관점에서도 전략을 수립한다. |
| 사용자 요구사항 분석 | - 사용자 조사 결과를 기반으로 사용자 요구사항을 추출하고 선별하여 요구사항을 분석하는 단계 - 프로토타입(Prototype)을 제작 |
| UI 상세 설계 | UI 기능에 대한 구조와 화면 간의 상호 흐름, 예외 처리 등의 UI 전반에 걸친 설계를 하는 단계 |
| 구현 | HTML5, CSS3, JavaScript 등의 언어들로 구현하는 단계 |
| 테스트 | 소프트웨어의 사용성을 검증하는 단계 |
1.2.3 UI 설계 원칙 : 직유학유⭐
직관성: 누구나 쉽게 이해하고 사용할 수 있어야 한다.유효성: 사용자의 목적을 정확하게 달성해야 한다.학습성: 누구나 쉽게 배우고 익힐 수 있어야 한다.유연성: 사용자의 요구사항을 최대한 수용하며, 오류를 최소화해야 한다
1.2.4 UI 설계 도구 : 와스프⭐
| 도구 | 설명 |
|---|---|
| 와이어프레임(Wireframe) | - 선(Wire)으로 틀(Frame)을 잡는다는 뜻- 화면 단위의 레이아웃을 설계하는 작업- 간단한 모양만을 사용하여 인터페이스를 시각적으로 묘사- 와이어프레임에는 내용, 구조, 흐름, 기능 등이 포함- 제작 방법에 제한은 없지만, 실무에서는 손그림이나 파워포인트로 작성 |
| 스토리보드 | - 개발 후 완성된 콘텐츠의 최종 결과를 예상할 수 있는 기초 문서- 디자이너와 개발자가 최종적으로 참고하는 설계 산출 문서- 정책, 프로세스 및 콘텐츠 구성, 와이어 프레임, 기능 정의 등 서비스 구축을 위한 대부분의 정보가 수록 |
| 프로토타입 | - 프로토타입은 실제 서비스와 흡사한 모형을 만드는 작업- 와이어프레임, 스토리보드에 인터랙션(동적효과)을 적용해 실제 구현된 것처럼 시뮬레이션- 실제 개발하는 것보다 단시간에 구현이 가능하기 때문에 사용자 경험에 대한 테스트를 진행 가능 |
| 목업(Mockup) | - 와이어프레임보다 좀 더 실제 화면과 유사하게 만든 정적인 형태의 모형- 시간적으로만 구성 요소를 배치하는 것으로 실제로 구현되지는 않는다 |
| 유스케이스(Use Case) | 사용자 측면에서의 요구사항으로, 사용자가 원하는 목표를 달성하기 위해 수행할 내용을 기술 |
1.3 감성공학⭐
1.3.1 감성공학의 개념
- 인간의 심상을 구체적인 물리적 설계 요소로 번역하여 이를 실현하는 기술
- 인간의 감성과 이미지를 물리적인 디자인 요소로 해석하여 구체적 제품으로 만들어내는 공학적 접근 방법
- 감성공학 = 마음속의 이미지 파악(심리학) + 형상화(인간공학) + 구체적인 제품 생산(생산공학)
- 요소화 → 형상화 → 구현 → 생산
1.3.2 제품과 관련된 인간의 감성
감각적 감성: 제품에 관하여 사용자가 느끼는 감성, 제품의 외관, 색상, 디자인에 관련된 것기능적 감성: 제품의 성능과 사용시 편리함에 대한 것문화적 감성: 개인이 속한 사회나 문화에 관련된 것
1.3.3 감성공학의 접근 방법
1류 접근 방법- 의미 미분법
- 인간의 감성을 표현하는 어휘를 이용하여 제품에 대한 이미지를 조사하고, 그 분석을 통해 제품 디자인 요소 연계
2류 접근 방법- 문화적 감성의 일부를 반영한 개념
- 1류와 기본틀은 같으나, 감성어휘 수집의 전 단계에서 평가자들의 생활 양식을 고려하는 것이 추가
- 제품에 대한 소비자군의 소속지역, 생활양식, 의식문화가 많은 영향을 미칠 때 사용하는 접근 방법
- 1류와 함께 감성의 심리적 특성을 강조한 접근 방법
3류 접근 방법- 특정 시제품을 사용하여 감각 척도를 계측하고, 정량화된 값을 환산
- 대상 제품의 물리적 특성에 대한 객관적 지표 연관분석을 통해 제품 설계에 응용
- 인간 감각계측과 이의 활용이 강조된 접근 방법
1.4 UI 설계 지침
1.4.1 한국 HCI 연구회 설계 지침
| 원칙 | 설명 |
|---|---|
| 가시성의 원칙(Visibility) | 소프트웨어의 기능을 노출시켜 최대한 조작이 쉽도록 한다 |
| 조작 결과 예측의 원칙(Natural Mapping) | 조작하여 작동시킨 결과를 조작 부위만 보고도 예측 가능하게 설계 |
| 일관성의 원칙(Consistency) | 조작방식에 일관성을 제공하여 사용자가 쉽게 기억하고 빠르게 적응할 수 있게 한다 |
| 단순성의 원칙 (Simplicity) | 기능구조를 단순화시켜 조작에 요구되는 노력을 최소화한다. |
| 지식 배분의 원칙(Knowledge in World & Head) | 학습하기 쉽고 기억하기 쉽게 설계 |
| 조작오류의 원칙 (Design for Error) | 사용간 발생한 오류를 쉽게 발견하고 수정 또한 쉽게 이루어져야 한다 |
| 제한사항 선택사용의 원칙(Constraints) | 소프트웨어를 조작할 때 선택의 여지를 줄여 조작 방법이 명확하도록 유도한다. |
| 표준화의 원칙 (Standardization) | 기능 구조와 디자인을 한 번 학습한 이후 보다 효과적으로 서비스를 사용할 수 있어야 한다. |
| 행동 유도성의 원칙 (Affordance) | 사용자가 디자인을 보고 기능 및 조작법을 유추할 수 있도록 해야 한다 |
| 접근성의 원칙 (Accessibility) | 다양한 계층의 사용자가 받아드릴 수 있는 사용자 인터페이스를 구축해야 한다 |
1.4.2 전자정부 웹 사이트 UI·UX 설계 기준
- 사용자에게 필요한 정보와 기능을 제공한다.
- 작업에 소요되는 시간과 단계를 최소화 한다.
- 직관적이고 일관성 있게 만든다.
- 사용자가 원하는 방식으로 이용할 수 있게 만든다.
- 사용자가 실수하지 않게 만든다.
- 모든 유형의 사용자가 이용할 수 있게 만든다.
- 원하는 서비스와 정보를 쉽게 찾을 수 있게 만든다.
2. UI 구현
2.1 화면 레이아웃 구성
2.1.1 레이아웃(Layout)의 개념
- 특정 공간에 여러 구성 요소를 보기 좋게 효과적으로 배치하는 작업
- 레이아웃 작성 방법
- DIV 요소를 이용한 레이아웃
- SPAN 요소를 이용한 레이아웃
- TABLE 요소를 이용한 레이아웃
- 시맨틱(semantic) 태그를 이용한 레이아웃
2.1.2 HTML5
(1) HTML5 개념
- 월드와이드웹(World Wide Web)을 통해 제공되는 정보를 나타낼 목적으로 사용 되는 마크업 언어
- HTML의 5번째 버전을 의미한다.
- 웹 페이지의 기본 구조를 담당
(2) HTML5 특징
- 플러그인의 설치 없이 동영상이나 음악을 웹 브라우저 상에서 재생
- 다양한 2차원 그래픽 표현 가능(SVG 태그, CANVAS 이용)
- 실시간으로 서버와 양방향 통신 가능
- GPS를 통한 위치 확인 및 장치 접근이 가능
- 오프라인 상태에서도 작업이 가능
(3) 시맨틱 요소
| TAG | 설명 |
|---|---|
<header> | - 헤더 영역- 제목, 내비게이션, 검색 등의 내용을 포함 |
<nav> | 메인 메뉴나 목차 등을 정의 |
<section> | 맥락이 같은 요소들을 주제별로 그룹화 |
<article> | 본문의 주요 내용이 들어가는 공간 |
<aside> | - 본문 외의 컨텐츠 영역- 사이드 메뉴나 광고 등의 영역 |
<footer> | - 푸터 영역- 작성자나 회사 정보 등을 포함 |
(4) INPUT 요소
| TAG | 설명 |
|---|---|
| 텍스트 입력 (text, textarea) | - text : 한 줄의 텍스트 입력- textarea : 여러 줄의 텍스트 입력 |
| 비밀번호 입력 (password) | 입력받은 문자를 별표나 작은 원으로 표시 |
| 라디오 버튼(radio) | - 여러 개의 라디오 버튼 옵션 중에서 단 하나만의 값을 선택- 라디오 버튼이 재생, 정지 등 한 상태만 선택하는 데에서 유래 |
| 체크 박스 (checkbox) | 여러 개의 체크박스 중에서 여러 개의 옵션 값을 선택 |
| 파일 선택 (file) | 사용자 컴퓨터의 파일을 입력 |
| 선택 입력 (select) | 여러 개의 드롭다운 리스트(drop-down-list) 중에서 한 개의 옵션을 선택 |
| 버튼 (button) | 사용자가 클릭했을 때 작업을 수행 |
| 전송 (submit) | 입력 받은 데이터를 서버로 전송 |
| 필드셋 (fieldset) | 관련된 데이터를 하나로 묶어준다 |
2.1.3 CSS(Cascading Style Sheet)
(1) CSS 개념
- HTML과 함께 웹을 구성하는 기본 프로그래밍 요소
- 색상이나 크기, 이미지 크기나 위치, 배치 방법 등 웹 문서의 디자인 요소를 담당
(2) CSS 특징
- HTML로 부터 디자인적인 요소를 분리해 정의할 수 있다.
- 잘 정의된 css 는 서로 다른 여러 웹페이지에 적용할 수 있다.
- 자바스크립트와 연계해 동적인 콘텐츠 표현이나 디자인 적용 가능
- 다양한 기기(PC, 스마트폰, 태블릿 등)에 맞게 탄력적으로 바뀌는 콘텐츠(
반응형 웹) 적용 가능
(3) CSS3
- 이전 버전 CSS와 완전히 호환되는 CSS의 최신 표준 권고안
- 차세대 웹 개발을 위한 새로운 표준
2.1.4 JavaScript
(1) JavaScript 개념
- 모질라 재단의 프로토타입 기반의 프로그래밍 언어로, 스크립트 언어에 해당된다.
- HTML, CSS와 함께 웹을 구성하는 요소 중 하나이다.
- 클라이언트 단에서 웹 페이지가 동작하는 것을 담당
(2) JavaScript 특징
- 웹 문서에 삽입해서 사용하는 스크립트 언어
- 이벤트 중심(event-driven)의 프로그래밍 언어
- 프로토타입 기반 객체 지향 언어
- 값에 따라 변수의 형변환이 자동으로 이루어지는 동적 형변환
- 주로 웹 브라우저에서 사용되나, Node.js 와 같은 프레임워크를 사용하면 서버측 프로그래밍도 가능
(3) JavaScript 프레임워크
React- 유저 인터페이스를 만드는 데 사용되는 오픈 소스 자바스크립트 라이브러리
- 페이스북에서 개발
- 싱글 페이지 애플리케이션(SPA)이나 모바일 애플리케이션 개발에 사용될 수 있다.
Vue.js- 자바스크립트로 개발된 컴포넌트 구조 기반 프론트엔드 프레임워크
- 고성능의 싱글 페이지 애플리케이션(SPA)을 구축하는데 이용가능하다.
- Evan You에 의해 개발
AngularJS- 자바스크립트 기반의 오픈 소스 프론트엔드 웹 애플리케이션 프레임워크
- 구글에서 개발
Ajax(Asynchronous JavaScript and XML): 비동기적인 웹 애플리케이션의 제작을 위한 웹 개발 기법
2.2 UI 관련용어
| 용어 | 설명 |
|---|---|
| 웹 표준 | 월드 와이드 웹의 측면을 서술하고 정의하는 공식 표준이나 다른 기술 규격을 말한다 |
| 웹 호환성 | 이용자의 단말기 (PC, 모바일 기기 등)의 하드웨어 및 소프트웨어 환경이 다른 경우에도 동등한 서비스를 제공할 수 있는 것을 말한다 |
| 웹 접근성 | 장애인과 비장애인 모두가 동등하게 웹 사이트에 접근하여 이용할 수 있도록 보장하는방식을 말한다. |
| 반응형 웹 | PC, Mobile 등 다양한 디바이스에서 화면크기에 맞춰 하나의 사이트를 보여준다 |
| 인포그래픽 (Infographic) | 정보(Information)와 그래픽(Graphic)의 합성어로, 복잡한 정보를 쉽고 빠르게 전달하기위해 정보를 분석, 정리하여 차트, 그래프, 아이콘, 그래픽스, 이미지 등을 활용하여 시각화한 것을 말한다 |
| 브랜드 아이덴티티(BI) | 사용자에게 전달하고자 하는 특정 브랜드의 가치와 의미를 반영한 심적 표상을 말한다 |
| 네비게이션 (Navigation) | 하이퍼링크를 따라 웹 공간의 정보를 요청하고 받아오는 웹 브라우징을 의미하며, 웹 사이트를 탐색하기 위한 도구를 뜻하기도 한다. |
| 아코디언(Accordion) | 사용자가 원하는 정보만 선택적으로 볼 수 있게 접을 수 있는 내용 패널을 말한다. |
| 플레이스 홀더 (Placeholder) | 사용자가 값을 입력하는 데 참고할 수 있도록, 입력 필드에 제공되는 간략한 텍스트 도움말을 말한다 |
| 필터링(Filtering) | 원하지 않는 데이터를 차단하거나, 원하는 데이터만 볼 수 있도록 해주는 기능을 말한다 |
| 입력 폼(Input Form) | 다양한 입력 필드로 구성되어, 사용자가 웹 서버로 전송할 정보를 입력 할 수 있는 웹문서의 일부를 말한다 |
| 입력 필드(Input Field) | 사용자가 정보를 입력하거나 선택하는데 이용되는 사용자 인터페이스 요소를 말한다 |
| 썸네일(Thumbnail) | 커다란 이미지를 축소하여 제공한 이미지를 말한다 |
| 레이블(Label) | 입력폼을 구성하는 다양한 입력 필드를 식별하기 위해 사용하는 명칭을 말한다 |
| 대체 텍스트 (Alternative Text) | 콘텐츠를 대신하기 위해 제공되는 텍스트를 의미한다 |
| 초점(Focus) | 웹 페이지에서 사용자가 선택한 해당 요소에 있을 때, 해당 요소에 Focus가 있다고 한다 |