정보처리기사 필기 정리 - 1과목
업데이트:
2020년 개정된 정보처리기사 필기를 신청해뒀고 공부한 내용을 정리해본다.
총 5과목에 걸쳐 1과목씩 정리 예정이다. 내용이 길면 2편에 나눠서 할 생각이다.
1과목은 소프트웨어 설계이다.
1. 요구사항 확인
1-1. 현행 시스템 분석
현행 시스템 파악
- 현행 시스템 파악 절차
- 구성/기능/인터페이스 파악
- 현행 시스템 구성 현황
- 기능 현황
- 인터페이스 현황
- 아키텍처 및 소프트웨어 구성 파악
- 아키텍처 파악
- 소프트웨어 구성 파악
- 하드웨어 및 네트워크 구성 파악
- 시스템 하드웨어 현황 파악
- 네트워크 구성 파악
- 구성/기능/인터페이스 파악
- 구성요소
- 현행 시스템 아키텍처 구성도
- 소프트웨어 구성도
- 하드웨어 구성도
- 네트워크 구성도
개발 기술환경 정의
- 기술 환경 요소
- 운영체제
- 구축비용
- 신뢰도
- 성능
- DBMS
- 가용성
- 성능
- 기술 지원
- 상호 호환성
- 구축 비용
- 미들웨어
- 가용성
- 성능
- 기술 지원
- 구축 비용
- 오픈 소스 소프트웨어
- 라이선스의 종류
- 사용자 수
- 기술의 지속 가능성
- 라이선스 문제에 대한 판단여부가 어렵다면 → 전자정부 표준 프레임워크 OSS 참조
- 운영체제
1-2. 요구사항 확인
요구사항 정의
- 요구사항 개발 프로세스
- 요구사항 도출(Elicitation)
- 요구사항 소스
- 요구사항 도출기법
- 분석(Analysis)
- 요구사항 분류
- 개념 모델링
- 기술 구조 설계 및 요구사항 할당
- 요구사항 협상
- 명세(Specification)
- 시스템 정의서
- 시스템 요구사항 명세서
- 소프트웨어 요구사항 명세서
- 확인(Validation)
- 검토
- 프로토타이핑
- 모델 검증
- 인수 테스트
- 요구사항 도출(Elicitation)
요구사항의 시스템화 타당성 분석
- 요구사항의 기술적 타당성 검토요소
- 성능 및 용량산정의 적정성
- 시스템 간 상호 운용성
- IT 시장 성숙도 및 트렌드 부합성
- 기술적 위험 분석
- 복잡성
- 검증 여부
- 의존성
1-3. 분석모델 확인
분석모델 검증
- 유스케이스 모델 검증
- 액터
- 유스케이스
- 유스케이스 명세서
- 개념 수준의 분석 클래스 검증
- 클래스 도출
- 클래스 이름과 속성
- 클래스들간 관계
- 0..1 : 0 또는 1개의 인스턴스 n..m은 n에서부터 m까지 범위
- 0..* 또는 * : 0을 포함한 무한개의 인스턴스
- 1 : 1개의 인스턴스
- 1..* : 1개 이상의 인스턴스
- 분석 클래스 검증
- 스테레오 타입
- 경계 boundary
- 엔터티 entity
- 제어 control
- 경계 및 제어 클래스도출
- 관계 및 상세화 정도
- 스테레오 타입
분석모델의 시스템화 타당성 분석
1-2의 요구사항의 시스템화 타당성 분석과 동일
- 성능 및 용량산정 적정성
- 시스템 간 상호 운용성
- 시장성숙도 및 트렌드부합성
- 기술적 위험 분석
2. 화면 설계
2-1. UI 요구사항 확인
소프트웨어 설계의 종류
-
상위 설계
- 아키텍처 설계
- 데이터 설계
- 인터페이스 정의
- 사용자 인터페이스 설계
-
하위 설계
-
모듈 설계
-
자료구조 설계
-
알고리즘 설계
-
소프트웨어 아키텍처
- ISO/IEC 9126 모델 소프트웨어 품질 특성
- 기능성
- 적절성
- 정밀성
- 상호 운용성
- 보안성
- 호환성
- 신뢰성
- 성숙성
- 고장 허용성
- 회복성
- 사용성
- 이해성
- 학습성
- 운용성
- 효율성
- 시간 효율성
- 자원 효율성
- 유지 보수성
- 분석성
- 변경성
- 안정성
- 시험성
- 이식성
- 적용성
- 설치성
- 대체성
- 기능성
UI 표준과 지침
-
UI 분야
-
물리적 제어
-
구성
-
기능
-
-
UI 설계 원칙
-
직관성
-
유효성
-
학습성
-
유연성
-
-
UI 설계 지침
-
사용자 중심
-
일관성
-
단순성
-
결과 예측 가능
-
가시성
-
표준화
-
접근성
-
명확성
-
오류 발생 해결
-
스토리보드
- 스토리보드 작성 순서
- 메뉴 구성도 만들기
- 스타일 확정
- 설계하기
2-2. UI 설계
UI 흐름 설계
- UI 설계서 구성
- UI 설계서 표지
- UI 설계서 개정 이력
- UI 요구사항 정의
- 시스템 구조
- 사이트 맵
- 프로세스 정의
- 화면 설계
- 유용성 개념
- 실행 차 : 실행 가능한 기능과 사용자의 원래 목적이 서로 상이
- 실행 차 최소화 설계
- 사용 의도 파악
- 행위 순서 규정
- 행위의 순서대로 실행
- 실행 차 최소화 설계
- 평가 차 : 시스템의 실행 결과와 사용자의 원래 목적이 서로 상이
- 평가 차 최소화 설계
- 수행한 키 조작의 결과와 키 조작으로 변화된 시스템 상태를 사용자가 빠르게 지각하도록 유도
- 사용자가 가진 원래 의도와 시스템 결과 간의 유사 정도를 사용자가 쉽게 파악하도록 유도
- 평가 차 최소화 설계
- 실행 차 : 실행 가능한 기능과 사용자의 원래 목적이 서로 상이
UI 상세 설계
- UI 시나리오
- 사용자 그룹
- 시놉시스
- 니즈
- 불편 사항
- 대안 마련
- 서비스 구성
- 감성 요소
-
UI 시나리오 문서 작성 요건
-
완전성
-
일관성
-
이해성
-
가독성
-
수정 용이성
-
추적 용이성
-
모범적인 UI 시나리오 문서의 효과
-
- UI 프로토타입 제작
- 주요 키의 위치와 기능
- 공통 UI 요소
- 기본 스크린 레이아웃
- 기본 인터랙션 규칙
- 공통 단위 태스크 흐름
- 케이스 문서
감성공학
- 관련 기술
- 생체측정 기술
- 오감 센서 및 감성 처리 기술
- 감성 디자인 기술
- 마이크로 가공 기술
- 인간에 대한 적합성을 판단하고 새로운 감성을 창출하기 위한 기술
3. 애플리케이션 설계
3-1. 공통 모듈 설계
공통 모듈 개요
- 사용 목적
- 재사용
- 중복개발 방지
- 모듈 간 표준화
- 종류
- 클래스 : 공통 모듈을 실제로 구현한 객체
- 라이브러리 : 클래스가 여러 개 합쳐진 묶음
- 컴포넌트 : 라이브러리가 체계화된 형태의 소프트웨어
- 프레임워크 : 어떠한 기능을 수행하는 클래스 혹은 컴포넌트의 집합
공통 모듈 도출
- 하향식 기법 : 개발 프레임워크에서 공통적인 모듈을 도출
- 상향식 기법 : 기능 목록을 기준으로 여러 부서에서 공통으로 사용되는 모듈 도출
공통 모듈 설계
- 요구사항 분석 : 유스케이스 다이어그램
- 정적 분석 : 클래스 다이어그램
- 동적 분석 : 시퀀스 다이어그램
공통 모듈 평가
-
응집도(Cohesion)
-
공통 모듈 내부의 클래스 간의 유기적인 관계를 나타냄
-
높을수록 품질이 좋음
-
종류
-
기능적
-
순차적
-
통신적
-
절차적
-
시간적
-
논리적
-
우연적
-
-
-
결합도(Coupling)
- 공통 모듈 간의 연관관계를 나타냄
- 낮을수록 품질이 좋음
- 종류
- 내용
- 공통
- 외부
- 제어
- 스탬프
- 자료
3-2. 객체지향 설계
객체지향의 개념과 특징
- 객체지향의 특징
- 추상화
- 상속
- 다형성
- 캡슐화
- 정보은닉
클래스 간의 관계와 설계 원칙
- 클래스 간 관계의 종류
- 연관
- 일반화-특수화 : 두 클래스 간의 상속 관계
- 집합연관
- 복합연관
- 클래스 설계 원칙
- 단일 책임 원칙
- 개방 폐쇄 원칙
- 리스코프 교체 원칙 : 상위 클래스는 하위 클래스로 대체할 수 있어야 한다.
- 의존 관계 역전 원칙
- 인터페이스 분리 원칙
디자인 패턴
-
GoF 디자인패턴 종류
-
생성패턴 : 객체의 생성과정에 관여하는 패턴
- Abstract Factory
- Builder
- Factory Method : 상위 클래스에서 인스턴스 작성법의 뼈대를 세우고 구체적인 작성은 하위 클래스에서 실행하는 패턴
- Prototype
- Singleton : 인스턴스가 하나만 존재하는 패턴
-
구조패턴 : 클래스나 객체의 합성에 관한 패턴
- Adapter : 서로 다른 인터페이스를 갖는 클래스들을 연결하는 패턴
- Bridge
- Composite
- Decorator
- Facade : 복잡하게 얽힌 클래스를 개별적으로 제어하는 것이 아니라 창구 역할을 하는 클래스를 하나 배치해서 시스템 전체의 조작성을 좋게 하는 패턴
- Flyweight
- Proxy
-
행위패턴 : 클래스나 객체들의 상호작용과 책임을 분산하는 방법
-
Chain of Responsibility
-
Command
-
Interpreter
-
Iterator
-
Mediator
-
Memento
-
Observer
-
State
-
Strategy : 알고리즘을 전부 교체해서 수정하기 쉽도록 하는 패턴
-
Template Method
-
Visitor
-
-
4. 인터페이스 설계
4-1. 인터페이스 요구사항 확인
인터페이스 요구사항 분석
- 시스템 인터페이스 요구사항
- 기능적 요구사항 : 입력, 출력 및 그들 사이의 처리 과정
- 비기능적 요구사항 : 내외부의 제약 조건
- 요구사항 분석 기법
- 요구사항 분류
- 개념 모델링을 통한 요구기능 분석
- 요구사항 할당
- 요구사항 협상
인터페이스 요구사항 검증
- 인터페이스 요구사항 검증 절차
- 요구사항 검토 계획을 수립한다.
- 요구사항 명세서를 검토하고 오류를 수정한다
- 요구사항 베이스라인을 설정한다
- 인터페이스 요구사항 검증 항목
- 인터페이스 목록
- 과제 범위
- 인터페이스 명세서
- 기술 요건
-
인터페이스 요구사항 검증 방법
- 요구사항 검토
- 동료 검토(Peer Review)
- 워크 스루(Walk Through)
- 인스펙션(Inspection)
- CASE 도구 활용
- 프로토타이핑
- 테스트 설계
- 요구사항 검토
4-2. 인터페이스 대상 식별
인터페이스 시스템 식별
- 인터페이스 시스템 구성
- 송신 시스템
- 수신 시스템
- 중계 서버
송수신 데이터 식별
-
송수신 전문 구성
-
시스템 공통부
-
거래 공통부
-
송수신 데이터 개별 항목
-
공통 코드
-
-
인터페이스 설계 데이터베이스 산출물
- 개체 정의서
- 테이블 정의서
- 코드 정의서
4-3. 인터페이스 상세 설계
인터페이스 방법 명세화
- 내외부 송수신 연계 방식
- 직접 연계 방식
- 간접 연계 방식
- 내외부 송수신 연계 기술
- 시스템 연계 기술
- DB Link
- DB Connection
- API/OpenAPI
- JDBC
- Hyper Link
- Socket
- Web Service
- 시스템 연계 기술
- 인터페이스 처리 유형
- 실시간 방식
- 단방향
- 동기(Sync)
- 비동기(Async)
- 지연 처리 방식
- 배치 방식
- 실시간 방식
- 인터페이스 오류 유형
- 연계 서버
- 송신 시스템 연계 프로그램
- 연계 데이터
- 수신 시스템 연계 프로그램
인터페이스 설계서 작성
- 인터페이스 목록의 주요 항목
- 인터페이스 ID
- 인터페이스명
- 시스템 및 대내외 구분
- 연계 방식
- 통신 유형
- 처리 유형
- 주기
- 데이터 형식
- 관련 요구 사항 ID
- 인터페이스 정의서의 주요 항목
- 인터페이스 ID
- 최대 처리 횟수
- 데이터 크기(평균/최대)
- 시스템 정보(송수신 시스템 각각 작성)
- 데이터 정보(송수신 시스템 각각 작성)
댓글남기기