자격증/정보처리기사

[정보처리기사_실기] Chapter 5. 인테페이스 구현

ZZJJing 2020. 10. 11. 14:24

■ 사용자 인터페이스 (UI , User Interface) 

UI는 사용자와 컴퓨터가 정보를 주고받기 위해 사용자와 프로그램 간의 상호작용을 연결해 줍니다.

 

■ UI 설계원칙 [직 유 학 유] 

직관성 : 누구나 쉽게 이해하고 사용할 수 있어야한다. 

유연성 : 사용자의 요구사항을 최대한 수용하고 실수를 최소화해야한다. 

학습성 : 누구나 쉽게 배우고 익힐 수 있어야한다. 

유효성 : 사용자의 목적을 정확하고 완벽하게 달성해야한다. 

 

■ UI 설계 순서 

문제정의 → 사용자 모델 정의 → 작업분석 → 컴퓨터 오브젝트 및 기능 정의 → 사용자인터페이스정의 → 디자인평가

 

■ UI 설계 절차 

UI 표준수립  → UI 요구사항 분석  →프로토타입작성 → UI작성 구조  →UI 구조설계  →UI 사용성검토

(정책등 기준)    (사용자요구사항 유즈케이스)               (기능 목록 정의)   

 

■ UI 표준 

UI 표준은 조직의 브랜드나 정체성과 일치되는 디자인 철학과 원칙이 정리되고 공통적으로 사용하는 UI 요소 및 배치규칙 등을 정의하는 문서

 

■ UI 지침 

웹/모바일 서비스 구축 시 효율적인 정보전달이 가능하도록 지켜야 할 세부사항을 규정한 문서

 

■ 스타일 가이드 (keyword:  기본원칙, 레이아웃, 엘리먼트 규칙의 기준)

사용자의 인터페이스를 만들 때 기본원칙(Basic Rule), 레이아웃(Layout), 엘리먼트(Element)등 각종 규칙들의 기준이 되는 집합을 의미

사이트의 추가개발 및 유지보수의 편리성을 높이는데 목적이 있다. 

 

■ 스토리보드 (keyword:  설계 산출 문서)

UI 설계 과정 중 디자이너와 개발자가 최종적으로 참고하는 설계 산출 문서로 정책, 프로세스 및 콘텐츠의 구성, 와이어프레임, 기능 정의, 데이터베이스의 연동 등 서비스 구축을 위한 대부분의 정보가 수록되어있다.

 

스토리보드 와이어프레임 프로토타입
정책, 프로세스 및 콘텐츠의 구성, 와이어프레임, 기능정의, 데이터베이스의 연동 등이 수록된 설계 산출물  이해관계자들과의 의사소통을 위해 서비스의 간략한 흐름을 살계 와이어프레임 또는 스토리보드의 정적 화면에 동적효과를 적용하여 실제 구현된 것처럼 테스트 가능 

(UI 설계 과정 중 사용자의 요구사항을 충분히 분석할 목적으로 시스템의 중요 부분을 우선 구현하고, 이후 요구사항을 반영하는 과정을 재반복하는 개발모델)
파워포인트, 키노트, 스케치 등  손그림, 파워포인트, 키노트, 스케치, 일러스트, 포토샵 등  HTML/CSS, 네이버, 프로토나우, 카카오 오븐 등 

■ 프로토타입의 장단점 

[장점] : 사용자 요구사항의 정확한 파악에 용이, 그로인한 위험 감소 

          발주자와 개발자에 공통의 참조모델 제공으로 시스템 이해와 품질 향상 

          발주자와 개발자 간 의사소통 원활 

[단점] : 실제 소프트웨어와의 차이가 발생할 수 있음 (사용자에게 혼란 야기) 

          단기간에 제작해야 하기에 비효율적인 언어나 알고리즘을 사용할 수 있음 

          발주자가 프로토타입 모형의 시제품을 완성 제품으로 오해할 수 있음 

 

 

■ 시스템 인터페이스 외부 및 내부 모듈 연계 방법 EAI / ESB가 있다. 

 

■ EAI (Enterprise Application Integration) 

- Point-to-point : 중간에 미들웨어 두지 않고 각각 연결 / 상대적으로 저렴/ 변경, 재사용 어려움

- Hub & Spoke : 단일 접점인 허브를 통해 데이터를 전송하는 중앙 집중적 방식 / 모든 데이터 전송 보장 / 확장, 유지보수 용이, 허브 장애 시 전체 영향 

- Message Bus (ESB 방식): 애플리케이션 사이에 미들웨어(버스)를 두어 처리 / 미들웨어를 통한 통합 / 뛰어난 확장성, 대용량 처리가능 

- Hybrid : 그룹 내는 Hub&Spoke 방식, 그룹간에는 Message Bus 방식을 사용 / 표준 통합 기술, 데이터 병목 현상 최소화 

 

■ ESB (Enterprise Service Bus) 

웹 서비스 중심으로 표준화된 데이터, 버스를 통해 유연하게 통합하는 핵심 플랫폼 인터페이스 방식이다.

 

■ 인터페이스 통신을 위한 도구 

- JSON (JavaScript Object Notation) : 속성-값 쌍(Attribute-Value)으로 이루어진 데이터 오브젝트를 전달하기 위해 사용되는 개방형 표준 포맷이다. / AJAX에서 많이 사용되고 XML을 대체하는 주요 데이터 포맷이며, 언어 독립형 데이터 포맷으로 다양한 언어에서 사용되고 있다. 

- XML (eXtensible Markup Language) : 웹 페이지의 기본 형식인 HTML문법이 각 브라우저에서 상호호환적이지 못하다는 문제와 SGML의 복잡함을 해결하기 위해 개발됨. / 특수한 목적을 갖는 마크업 언어 

- AJAX (Asychronous Javascript And XML) : 자바스크립트를 사용하여 웹 서버와 클라이언트간 비동기적으로 XML 데이터를 교환하고 조작하기 위한 웹 기술 

 

■ 데이터 통신을 사용한 인터페이스에서 예외 처리 방법

AJAX (Asynchronous Javascript And XML) 방식을 사용하여 JSON 객체를 전달 

그래서 AJAX 방식의 예외 처리 방식에 따라 구현 

 

(1) 송신측 예외 처리 방법 

- 반환 케이스는 크게 success 와 fail 두 가지 케이스로 나뉜다. 

- 예외처리는 fail 시 일어나며 예외 처리 반환 메시지에 따라 세부적으로 예외처리 기능이 나누어짐 

 

 

(2) 수신 측 예외처리 방법 

- 수신 측에서 받은 JSON 객체를 처리시 에는 try ~ catch 구문을 이용한다. 

- 별도 예외 결과를 response에  set 하지 않아도 에러발생시 에러 결과가 반환된다. 

 

 

■ 데이터 통신 데이터 탈취 위협 

- 스푸핑 (Spoofing) :TCP/IP 의 구조적 결함을 이용해서 사용자 시스템 권한을 획득한뒤 ,정보를 뺴감 
- 스누핑: 네트워크 상에 떠도는 중요정보를 몰래 획득하는 행위 
- 스니핑(Sniffing) : 네트워크 상에서 자신이 아닌 다른 상대방들의 패킷 교환을 훔쳐보는(도청, 감청) 행위를 의미

 + 중간에 도청할 수 있도록 설치되는 도구 스니퍼(Sniffer) 

 

■ 시큐어 코딩

보안상 취약점이 발생 할 수 있는 부분을 보완하여 프로그래밍하는 것 

 

■ 시큐어 코딩 가이드 보안약점 [ 입 보 시 에 코 캡 아 ]

력 데이터 및 검증 : XSS , SQL 인젝션을 방지하기 위함 

안 취약점 

간 및 상태 

드 

슐화 

API 오용 

 

■ 데이터 베이스 암호화 

-대칭키 암호 알고리즘 : APIA 128/192/256, SEED 

   * 한국 : ARIA(국정원) , SEED (한국 정보 보호 진흥원 / 한국 인터넷 진흥원 / KISA 에서 개발한 암호화 알고리즘) 

   * 미국 : DES, AES 

-해시 알고리즘 : SHA-256/384/512, HAS-160

-비대칭키 알고리즘 : RSA , ECDSA 

 

■ 데이터 베이스 암호화 기법 

- API 방식 : 애플리케이션에서 암호화 수행

- Plug-in 방식 : 테이터베이스에서 암호화 수행 

- Hybrid 방식: API 방식 + Plug-in 방식 혼합 

 

■ 인터페이스 구현 검증 도구 

- xUnit : Java, C++, .Net 등 다양한 언어를 지원하는 단위 테스트 프레임워크

- STAF : 서비스호출, 컴포넌트 재사용 등 다양한 환경을 지원하는 테스트 프레임워크 

- NTAF : Naver 테스트 자동화 프레임 워크이며, STAF + FitNesse를 통합 

- FitNesse :  웹 기반 테스트 케이스 설계/실행/결과 확인 등일 지원하는 테스트 프레임워크

- Selenium : 다양한 브라우저 지원 및 개발 언어를 지원하는 웹 애플리케이션 테스트 프레임워크 

- watir : Ruby 기반 웹 애플리케이션 테스트 프레임워크