UI 설계 요약
1. UI 설계원칙
직관성 : 누구나 쉽게 이해하고 사용할 수 있어야 함
유효성 : 사용자의 목적을 정확하고 완벽하게 달성해야 함
학습성 : 누구나 쉽게 배우고 익힐 수 있어야 함
유연성 : 사용자의 요구사항을 최대한 수용하고 실수를 최소화 해야 함
2. UI 설계 지침 : 사용자 중심, 일관성, 단순성, 결과 예측 가능, 가시성, 표준화, 적븐성, 명확성, 오류 발생 해결[사일단결 가표접명오]
3. UI 설계 구성요소 : UI 설계서 표지, 개정 이력, UI 요구사항 정의서, 시스템 구조, 사이트맵, 프로세스 정의, 화면 설계
4. UI 표준 및 지침
UI 표준 : 전체시스템에 포함된 모든 UI에 공통적으로 적용될 내용, 화면 구성이나 화면 이동이 포함됨
UI 지침 : UI 요구사항. 구현시 제약사항 등 UI 개발 과정에서 꼭 지켜야할 공통의 조건
웹 표준 : 웹 사이트 작성 시 이용하는 HTML, JavaScript 등에 대한 규정, 웹 페이지가 다른 기종이나 플랫폼에서도 구현되도록 제작하는 기법
웹 접근성 : 누구나, 어떠한 환경에서도 웹 사이트에서 제공하는 모든 정보를 접근하여 이용할 수 있도록 보장하는 것
웹 호환성(Cross browsing) : 하드웨어나 소프트웨어 등이 다른 환경에서도 모든 이용자에게 동등한 서비스를 제공하는 것
5. UI 설계 도구
와이어프레임 : 기획 단계에 초기에 제작하는 것. 페이지에 대한 개략적인 레이아웃이나 UI 요소등에 뼈대를 설계. 각 페이지의 영역 구분, 콘텐츠, 텍스트 배치 등을 화면 단위로 설계.
- 종류 : 손 그림, 파워포인트, 키노트, 스케치, 일러스트, 포토샵 등
목업 : 디자인, 사용방법 설명, 평가 등을 위해 와이어 프레임보다 좀 더 실제 화면과 유사하게 제작한 정적인 형태의 모형. 시각적으로만 구성 요소를 배치
- 종류 : 파워 목업, 발사믹 목업
스토리보드 : 와이어프레임에 콘텐츠에 대한 설명, 페이지 간 이동 흐름(인터랙션)을 추가한 문서. 디자이너와 개발자가 최종적으로 참고하는 구체적인 작업 지침서로, 정책, 프로세스 콘텐츠 구성, 와이어 프레임, 기능 정의 등 서비스 구축을 위한 모든 정보가 들어 있음. 상단이나 우측에는 제목, 작성자를 입력. 좌측에는 UI 화면, 우측에는 디스크립션(설명)을 기입
- 종류 : 파워포인트, 키노트 스케치, Axure
프로토타입 : 와이어프레임이나 스토리보드 등에 인터랙션을 적용함으로 실제 구현된것처럼 테스트가 가능한 동적인 형태의 모형.
- 종류 : HTML/css, Axure, Flinto, 네이버 프로토나우, 카카오 오븐 등
유스케이스 : 사용자 측면에서의 요구사항으로, 목표를 달성하기 위해 수행할 내용을 기술. 사용자의 요구사항을 빠르게 파악함으로 프로젝트 초기에 시스템의 기능적인 요구를 결정하고 그 결과를 문서화함. 자연어로 작성된 사용자의 요구사항을 구조적으로 표현한 것 -> 다이어그램으로 묘사.
6. UI 시나리오 문서의 요건
완전성 : 기능보다는 사용자의 태스크에 초점을 맞춰 최대한 상세하게 기술
일관성 : 목표, 시스템 및 사용자의 요구사항, UI 스타일 등이 모두 일관성을 유지
이해성 : 누구나 쉽게 이해할 수 있도록 설명
가독성 : 문서 인덱스에 관한 규칙이나 목차를 제공, 하이라이팅, 하이퍼링크 사용해 가독성을 증가
수정용이성 : 시나리오의 수정이나 개선이 쉬워야 함.
추적용이성 : 변경 사항은 언제, 어떤 부분이, 왜 발생했는지 추적가능해야함.
7. 소프트웨어 품질 요구사항
기능성 : 소프트웨어가 사용자의 요구사항을 정확하게 만족하는 기능을 제공하는 여부 (정합성, 정확성, 상호운용성, 보안성, 호환성)
신뢰성 : 소프트웨어가 요구된 기능을 정확하고 일관되게 오류 없이 수행할 수 있는 정도(성숙성, 고장허용성, 회복성)
사용성 : 사용자와 컴퓨터 사이에 발생하는 어떠한 행위에 대하여 사용자가 정확하게 이해하고 사용하며, 향후 다시 사용하고 싶은 정도(이해성, 학습성, 운용성, 친밀성)
효율성 : 사용자가 요구하는 기능을 할당된 시간 동안 한정된 자원으로 얼마나 빨리 처리할 수 있는 정도(시간효율성, 자원효율성)
유지보수성 : 환경의 변화 또는 새로운 요구사항이 발생했을 때 소프트 웨어를 개선하거나 확장할 수 있는 정도(분석성, 변경성, 안정성, 시험성)
이식성 : 소프트웨어가 다른 환경에서도 얼마나 쉽게 적용(적응)할 수 있는 정도(적용성, 설치성, 대체성, 공존성)
8. UI 설계 구성요소
UI 설계서 표지 : UI 설계서에 포함될 프로젝트 명 또는 시스템 명을 포함시킨다.
UI 설계서 개정 이력 : UI 설계서 처음 작성 시에는 첫 번째 항목으로 ‘초안 작성’을 포함시키고 그에 해당 되는 초기 버전(version)을 1.0으로 설정한다. 변경 또는 보완이 충분히 이루어져 완성 이 되었다고 판단할 경우 버전을 x.0 으로 바꾸어 설정한다.
UI 요구사항 정의 : UI 요구사항들을 재확인하고 정리한다.
시스템 구조 : UI 프로토타입을 재확인한다. UI 요구사항들과 UI 프로토타입에 기초해 UI 시스템 구조를 설계한다.
사이트 맵(Site Map) : UI 시스템 구조의 내용을 사이트 맵의 형태로 작성한다. 사이트 맵 상세 내용(Site Map Detail)을 표 형태로 작성한다.
프로세스(Process) 정의 : 사용자 관점에서 요구되는 프로세스들을 진행되는 순서에 맞추어 정리한다.
화면 설계 : UI 프로토타입과 UI 프로세서 정의를 참고해 각 페이지 별로 필요한 화면을 설계한다. 각 화면 별로 구분되도록 각 화면 별 고유 ID를 부여하고 별도의 표지 페이지를 작성한다. 각 화면 별로 필요한 화면 내용을 설계한다.
9. UI 개발 주요 기법
3C분석 : 고객, 경쟁사, 자사 분석
SWOT : 강점, 약점, 기회, 위협분석
시나리오 플래닝 : 불확실성이 높은 상황 변화를 예측하고 다양한 시나리오 설계
사용성 테스트 : 사용자가 직접 제품을 사용하면서 미리 작성된 시나리오에 맞춰 과제를 수행한 후 답하는 테스트
워크샵 : 소규모 과제, 회의(세미나)
현행 시스템 파악 : 어떤 하위 시스템으로 구성되어 있고, 제공 기능 및 연계 정보는 무엇이며 어떤 기술요소를 사용하는 지를 파악하는 활동
10. 인터페이스 설계
인터페이스 설계서 : 이기종 시스템 및 컴포넌트 간 데이터 교환 및 처리를 위해 각 시스템의 교환되는 데이터 업무, 송수신 주체 등이 정의된 문서이자 시스템의 인터페이스 현황 파악을 위해 인터페이스 목록 및 각 인터페이스의 상세 데이터 명세, 각 기능의 세부 인터페이스 정보를 정의한 문서
11. 인터페이스 보안 취약점 및 보안 구현(시큐어 코딩 가이드) : 설계 및 구현 단계에서 해킹 등 공격을 유발할 가능성이 있는 보안 취약점을 사전에 제거하고 안전한 소프트웨어를 만드는 코딩 기법[입보시에코켑아(A)]
입력데이터 검증 및 표현 : 프로그램 입력값에 대한 검증 누락 혹은 부적절한 검증, 데이터의 잘못된 형식지정으로 발생할 수 있는 보안 약점(SQL 삽입, 크로스사이트 스크립팅 등)
보안 기능 : 보안 기능(인증, 접근제어, 기밀성, 암호화, 권한관리등)을 적절하지 않게 구현 시 발생할 수 있는 보안약점(부적절한인가, 중요정보 평문저장 등)
시간 및 상태 : 동시 또는 거의 동시 수행을 지원하는 병렬 시스템, 하나 이상의 프로세스가 동작하는 환경에서 시간 및 상태를 부적절하게 관리하여 발생할 수 있는 보안 약점(경쟁조건, 제어문을 사용하지 않는 재귀함수 등)
에러처리 : 에러 처리하지 않거나, 불충분하게 처리하여 에러정보에 중요정보가 포함될때 발생할 수 있는 보안약점(취약한 패스워드 요구조건, 오류메시지를 통한 정보노출 등)
코드 오류 : 타입변환 오류, 자원(메모리 등)의 부적절한 반환 등과 같이 개발자가 범할 수 있는 코딩오류로 인해 유발되는 보안약점(널 포인터 역참조, 부적절한 자원해제 등)
캡슐화 : 중요한 데이터 또는 기능성을 불충분하게 캡슐화하였을 때 인가되지 않는 사용자에게 데이터 누출이 가능해지는 보안약점(제거되지 않고 남은 디버거코드, 시스템 데이터 정보노출 등)
API 오용 : 의도된 사용에 반하는 방법으로 API를 사용하거나 보안에 취약한 API를 사용하여 발생할 수 있는 보안 약점(DNS Lookup에 의존한 보안결정, 널 매개변수 미조사 등)
'2020 정보처리기사 실기 > 실기요약' 카테고리의 다른 글
2020 정보처리기사 실기 요약 - 애플리케이션 테스트 (0) | 2020.11.27 |
---|---|
2020 정보처리기사 실기 요약 - 암호화 및 소프트웨어 보안 요약 (0) | 2020.11.27 |
2020 정보처리기사 실기 요약 - 프로토콜 네트워크 요약 (0) | 2020.11.27 |
2020 정보처리기사 실기 요약 - 운영체제 (0) | 2020.11.26 |
2020 정보처리기사 실기 요약 - 데이터베이스 (0) | 2020.11.26 |