2024 정보처리기사 실기 요약 - (3) UI구현 ~ 통합구현
UI 설계 원칙
- 직관성(Intuitiveness) : 누구나 쉽게 이해, 쉽게 사용해야함
- 유효성(Efficiency) : 정확하게 사용자의 목표를 달성 하도록 함
- 학습성(Learnability) : 모두가 쉽게 배우고 사용할 수 있게 해야함
- 유연성(Flexibility) : 사용자의 요구사항을 최대한 수용하고, 실수를 방지해야함
UI 품질 요구사항 (하위항목은 이해위주로)
- 기능성(Functionality) : 정확하지 않은 결과가 발생할 확률과 시스템의 동작 관찰
- 적절성, 정밀성, 상호 운용성, 보안성, 호환성
- 신뢰성(Realiability): 작동되는 시간동안 의도하는 기능을 수행함을 보증
- 성숙성, 고장 허용성, 회복성
- 사용성(Usablity) : 어떠한 행위를 정확하고 쉽게 인지해서 쓰기 쉬운가
- 이해성, 학습성, 운용성
- 효율성(Efficiency) : 할당된 시간에 한정된 자원으로 얼마나 빨리/많이 처리
- 시간 효율성, 자원 효율성
- 유지보수성(Maintainability) : 요구사항 개선, 확장에 있어 용이한가
- 분석성, 변경성, 안정성, 시험성
- 이식성(Portability) : 다른 운영체제로 쉽게 옮길 수 있는가
- 적용성, 설치성, 대체성
UI 개발을 위한 주요 기법
- 3C 분석 : 고객(Customer), 자사(Company), 경쟁사(Competitor) 비교하고 분석
- SWOT 분석 : 기업 내/외부 분석 Strength, Weakness, Opportunity, Threat 요인규정
- 시나리오 플래닝 : 상황 변화를 예측하고 다양한 시나리오를 설계
- 사용성 테스트 : 사용자가 제품을 시나리오에 맞추어 써보고, 질문에 답하도록 하는 테스트
- 워크숍 : 특정 과제에 대한 새로운 지식, 기술, 아이디어들을 서로 교환하고 검토하는 세미나
UI 화면 설계
- 스토리보드 : 정책, 프로세스, 와이어 프레임, 기능정의, DB연동 등이 수록된 문서, 디자이너와 개발자가 최종적으로 참고하는 산출 문서
- 와이어 프레임 : 화면 단위의 레이아웃을 설계하는 작업
- 프로토타입 : 정적인 화면(와이어 프레임, 스토리보드)에 동적 효과를 적용해 실제 구현된 것처럼 시뮬레이션 할 수 있는 모형
UI 시나리오 문서의 작성 요건(완일이가 추수)
완전성, 일관성, 이해성, 가독성, 추적 용이성, 수정 용이성
UI 구현 검증 도구
xUNIT(JUNIT, CppUNIT 등), FitNesse(웹 기반), NTAF(NHN이 만듬), Selenium, Watir
UI 감시 도구
스카우터(모니터링, DB AGENT 제공), 제니퍼(개발부터 운영까지 성능 모니터링 제공)
개발 도구
빌드도구, 구현도구, 테스트도구, 형상관리도구
서버 하드웨어 개발 환경
- 웹 서버 : 정적 콘텐츠 처리 (Apache 웹 서버)
- 웹앱 서버 : 동적 콘텐츠(Servlet, JSP) 처리 (Apache Tomcat)
- 데이터베이스 서버 : MySQL, Oracle
- 파일 서버 : HDD, SSD
서버 형상관리 절차
- 형상식별 : 관리대상 정의 및 식별
- 형상통제 : 버전관리를 위해 변경활동 통제
- 형상감사 : 베이스라인(기준가이드) 무결성 평가, 요구사항 일치 검토
- 형상기록 : 형상 및 변경 관리에 대한 수행 기록
서버 형상관리 도구
- 공유폴더 방식 : RCS, SCCS
- 서버클라이언트 방식 : CVS, SVN, BitKeeper
- 분산저장 방식 : Git
모듈
하나의 완전한 기능을 수행할 수 있는 독립된 실체 응집도는 높을수록 좋고 결합도는 낮을수록 좋음 (하단의 순서와 영문명은 물론 설명까지 이해 필요)
응집도 (낮은순~높은순, Cohesion)
- 우연적(Coincidental) : 모듈 구성 요소가 서로 연관 없음
- 논리적(Logical) : 유사한 성격이나 형태로 분류된게 모여있음
- 시간적(Temporal) : 특정 시간에 처리되어야 하는거 끼리 모여있음
- 절차적(Procedural) : 다수의 관련 기능들이 순서대로 수행되도록 모여있음
- 통신적(Communication) : 동일 입출력을 사용하는 다른 기능 들이 모여있음
- 순차적(Sequential) : 순서대로 수행될 때 앞 기능 출력 값을 다음 기능이 사용하게끔 모여있음
- 기능적(Functional) : 모듈 내 모든 기능이 단일 목적을 위해 수행됨
결합도 (낮은순~높은순, Coupling)
- 자료(Data) : 파라미터를 통해 변수 전달
- 스탬프(Stamp) : 파라미터를 통해 배열, 객체, 구조체 등이 전달
- 제어(Control) : 단순 값만 전달되는게 아니라 메서드(기능) 까지 전달
- 외부(External) : 외부의 모듈 안에 있는 변수를 참조함
- 공통(Common) : 모듈 밖에 선언되어 있는 전역 변수를 참조하고 갱신하며 사용함
- 내용(Content) : 외부의 모듈 안에 있는 변수나 기능을 참조하고 갱신하며 사용함
공통 모듈 구현 절차
DTO/VO -> SQL -> DAO -> Service -> Controller -> View
- DAO : 특정 타입의 데이터베이스에 추상 인터페이스를 제공하는 객체
- DTO(Data Transfer Object) : 프로세스 사이에서 데이터를 전송하는 객체
- VO : 작은 객체 가변 클래스인 DTO와 달리 고정 클래스를 가지는 객체
팬인 / 팬아웃
시스템 복잡도를 최적화 하기 위해 팬인은 높게, 팬아웃은 낮게 (네모로 표현된 모듈의 위에 달린 선은 팬인 , 아래에 달린 선은 팬아웃)
시맨틱 웹(Semantic Web)
기계가 이해할 수 있는 온톨로지 형태로 표현하고 자동화된 기계가 처리하도록 하는 지능형 웹
온톨로지(Ontology)
실세계에 존재하는 모든 개념들과 개념들의 속성, 개념들 간의 관계 정보를 컴퓨터가 이해할 수 있도록 서술해 놓은 지식베이스
데이터 마이닝(Data Minning)
대규모로 저장된 데이터 안에서 체계적이고 자동적으로 통계적 규칙이나 패턴을 찾아내는 기술
데이터 마이닝 주요기법
- 분류 규칙(Classification) : 과거 데이터로부터 특성을 찾아내어 분류모형을 만들어 결과 값 예측
- 연관 규칙(Association) : 데이터 안에 존재하는 항목들 간의 종속관계를 찾아내는 기법
- 연속 규칙(Sequence) : 연관 규칙에 시간 관련 정보가 포함된 형태의 기법
- 데이터 군집화(Clustering) : 대상 레코드들을 유사한 특성을 지는 몇 개의 소그룹으로 분할하는 작업
연계 메커니즘
응용 소프트웨어와 연계 대상 모듈 간 연계 시 요구사항을 고려한 연계 방법과 주기를 설계하기 위한 메커니즘
주요 연계 기술
- 직접 연계
- DB 링크, DB 연결, API, JDBC, 하이퍼 링크
- 간접 연계
- 연계 솔루션(EAI) : 기업에서 운영되는 서로 다른 플랫폼 및 애플리케이션들 간의 정보 전달, 연계, 통합을 가능하게 해주는 솔루션, 어댑터 이용
- Web Service/ESB : WSDL과 SOAP프로토콜을 이용한 시스템 간 연계
- Socket : 소켓을 생성하여 포트를 할당하고, 클라이언트의 요청을 연결하여 통신
EAI(Enterprise Application Integration)
기업에서 운영되는 서로 다른 플랫폼 및 애플리케이션들 간의 정보 전달, 연계, 통합을 가능하게 해주는 솔루션
-
구성요소
- EAI 플랫폼 : 이기종 시스템 간 애플리케이션 상호 운영
- 어댑터 : 애플리케이션을 연결하는 EAI의 핵심장치로 데이터 입출력 도구
- 브로커 : 데이터 포맷과 코드를 변환하는 솔루션
- 메시지 큐 : 비동기 메시지를 사용하는 다른 프로그램 사이에서 데이터를 송수신 하는 기술
- 비즈니스 워크플로우 : 미리 정의된 절차에 따라 업무를 처리하는 기능
-
구축유형
- 포인트 투 포인트 : 1:1 단순 통합 방법
- 허브앤 스포크 : 단일한 접점의 허브 시스템을 통하여 데이터를 전송하는 중앙 집중식 방식
- 메시지 버스 : 미들웨어를 두어 연계하는 통합 방식
- 하이브리드 : 그룹 내는 허브 앤 스포크, 그룹 간에는 메시지 버스
ESB(Enterprise Service Bus)
다른 플랫폼 및 애플리케이션들을 하나로 관리하기 위해 서비스 중심의 통합을 지향하는 아키텍처, 느슨한 결합 방식
- 느슨한 결합 : 특정 서비스를 변경하더라도 연결된 다른 서비스에는 영향을 주지 않는 유연한 구조
JSON (Javascript Object Notation)
딕셔너리 처럼 속성-값 으로 이루어진 데이터 오브젝트, 인간이 읽을 수 있고 개방형 표준 포맷이다.
XML (eXtensible Markup Language)
HTML 의 단점을 보완한 인터넷 언어 (특수목적 마크업 언어)
AJAX (Asynchronous Javascript And XML)
자바스크립트를 사용하여 웹서버와 클라이언트 간 비동기적으로 XML 데이터를 처리하고 조작하는 웹 기술 페이지 전체를 새로고침 하지 않고 일부분만 로드해서 동적인 웹사이트를 표현할 수 있음
REST (REpresentational State Transfer)
웹같은 분산환경에서 데이터를 자원처럼 여기며 자원의 존재와 상태를 HTTP URI로 명시하고 HTTP메서드(POST, GET, PUT, DELETE)로 주고받는 소프트웨어 아키텍쳐
웹 서비스 유형 (매우 중요)
XML 기반의 WSDL 로 설명이 작성되어 있고 UDDI에 등록되어 있는 서비스를 SOAP를 사용해서 접근하고 이용하는 방식으로 동작함
- WSDL(Web Service Description Language) : 웹 서비스 명, 제공 위치, 메시지 포맷, 프로토콜 정보 등 웹 서비스에 대한 상세정보가 기술된 XML 형식의 언어
- UDDI(Universal Description, Discovery and Integration) : WSDL을 등록하고 검색하기 위한 저장소로 공개적으로 접근, 검색이 가능한 레지스트리이자 표준
- SOAP(Simple Object Access Protocol) : HTTP, HTTPS 등을 사용하여 XML 기반의 메시지를 네트워크 상태에서 교환하는 프로토콜(복잡한 구조에 무거운 방식이라 이후 REST가 인기를 끌게됨)