정보 처리 기사

[정보처리기사] 2장 정리

왕초보코딩러 2023. 6. 11. 14:35
728x90

2023.06.04 - [정보 처리 기사] - [정보처리기사] 1장 정리

 

[정보처리기사] 1장 정리

현행 시스템 파악 절차 1단계 -시스템 구성 파악 -시스템 기능 파악 -시스템 인터페이스 파악 2단계 -아키텍처 구성 파악 -소프트웨어 구성 파악 3단계 -하드웨어 구성 파악 -네트워크 파악 개발

dogfoot1.tistory.com

 

<자료구조>

자료구조의 분류

1. 선형 구조

-배열

-연속리스트(Contiguous List)

-연결리스트(Linked List)

-스택

-

-테크

2. 비선형 구조

-트리

-그래프

 

 

트리(Tree)

트리의 운행법

-Preoreder(전위): 중앙->왼쪽->오른쪽

-Inorder(중위): 왼쪽->중앙->오른쪽

-Postorder(후위): 왼쪽->오른쪽->중앙

 

수식의 표기법

-Prefix(전위): 연산자->왼쪽->오른쪽

-Infix(중위): 왼쪽->연산자->오른쪽

-Postfix(후위): 왼쪽->오른쪽->연산자

 

 

<정렬>

-삽입 정렬(Insertion sort)

-쉘 정렬

-선택 정렬(selection sort)

-버블 정렬

-퀵 정렬

-힙 정렬

-2-way 합병 정렬(Merge sort)

-기수 정렬(Radix sort=Bucket sort)

 

 

<데이터베이스의 개요>

데이터베이스 정의

-통합된 데이터(Intergrated data)

-저장된 데이터(stored)

-운영 데이터(Operational)

-공용 데이터(Shared)

 

DBMS 필수기능 3가지

-정의 기능

-조작 기능

-제어 기능(무보권병)

 

스키마

-외부스키마

-개념스키마

-내부스키마

 

 

 

DB - 스키마(Schema)의 뜻과 특징, 외부 스키마, 개념 스키마, 내부 스키마

DB를 공부하면서 가장 처음 배우는 것이 스키마(Schema)에 대한 개념입니다. 데이터베이스에서 가장 기초적인 내용이지만 처음 데이터베이스를 접하는 학생이나 비전공자들이 이해하기에는 쉽지

ggulbeee.tistory.com

 

 

 

<데이터 입출력>

SQL

-데이터 정의어(DDL)

-데이터 조작어(DML)

-데이터 제어어(DCL)

 

데이터 접속(Data Mapping)

-SQL Mapping

-ORM(Objcet-Relational Mapping)

 

TCL(Transaction Control Language)

-Commit

-Rollback

-Savepoint

 

 

<절차형 SQL>

절차형 sql 종류

-프로시저(Procedure)

-트리거(Trigger)

-사용자 정의 함수

 

해싱함수

-제산법(Division)

-제곱법(MD-Square)

-폴딩법(Folding)

-기수 변환법(Radix)

-대수적 코딩법(Algebraic Coding)

-계수 분석법(숫자 분석법)

-무작위법(Random)

 

제어 검색(Control Search)

-이분검색(이진 검색)

-피보나치 검색

 

 

<단위 모듈 구현>

IPC(Inter-Process Communication) 대표 메소드 5가지

-Shared Memory

-Socket

-Semaphores

-Pipes&named Pipes

-Message Queueing

 

단위 기능의 종류에 따른 구현되는 모듈

-디바이스 드라이버 모듈

-네트워크 모듈

-파일 모듈

-메모리 모듈

-프로세스 모듈

 

 

<단위 모듈 테스트>

테스트 케이스 구성요소

-테스트 항목(Test Item)

-입력 명세(Input Specification)

-출력 명세(Output Specification)

-환경 설정(Environmental Needs)

 

테스트 프로세스 5단계

계획 및 제어 단계->분석 및 설계 단계->구현 및 실현 단계->평가 단계->완료 단계

 

 

<개발 지원 도구(통합 개발 도구, 빌드 도구, 그룹웨어)>

통합 개발 환경(IDE) 프로그램

-이클립스

-비주얼 스튜디오

-엑스 코드

-안드로이드 스튜디오

-IDEA

 

빌드 도구

-ANT

-Maven

-Gradle

 

https://choseongho93.tistory.com/296

 

빌드, 배포, 컴파일의 개념 & 차이점 (Build, Deploy, Complie)

빌드, 배포, 컴파일의 개념 & 차이점 (Build, Deploy, Complie) 서버에 기능을 추가 하려면 개발자가 로컬 PC에서 개발을 하고 테스트까지 진행한 뒤에 문제가 없을 경우 사용자가 사용할 수 있도록 수정

choseongho93.tistory.com

 

소프트웨어 패키징

패키징 작업 순서

기능 식별->모듈화->빌드 진행->사용자 환경 분석->패키징 및 적용 시험->패키징 변경 개선->배포

 

디지털 저작권 관리(DRM)

디지털 저작권 관리의 흐름 및 구성 요소

-클리어링 하우스(권한, 라이선스, )

-콘텐츠 제공자(패키저)

-콘텐츠 분배자

-콘텐츠 소비자(DRM 컨트롤러)

 

 

소프트웨어 설치 매뉴얼 작성->소프트웨어 사용자 매뉴얼 작성

 

 

<소프트웨어 버전 등록>

형상 관리 기능

-형상 식별

-버전 제어

-형상 통제(변경 관리)

-형상 감사

-형상 기록(상태 보고)

 

소프트웨어 버전 등록 과정

가져오기(Import)->인축(Check-out)->예치(Commit)->동기화(Update)->차이(Diff)

 

 

소프트웨어 버전 관리 도구

-공유 폴더 방식

-클라이언트/서버 방식

-분산 저장소 방식

 

버전관리 도구 종류

-CVS

-Subversion(SVN):/

-Git():분산 저장소

 

SVN 주요 명령어

add, commit, update, checkout, lock/unlock, import, export, info, diff, merge

Git 주요 명령어

add, commit, branch, checkout, merge, init, remote add, push, fetch, clone, fork

 

 

빌드 자동화 도구(Ant, Make, Maven, Gradle, Jenkins) 

 

 

<애플리케이션 테스트>

-확인(Validation)

-검증(Verification)

 

 

검증과 확인 (V&V : Varification & Validation)

(이해한대로 정리한거니 잘못되었다면 코멘트 부탁드립니다.) varification (검증) : - 정적 테스팅 - (개발자 관점) 개발하고 있는 시스템이 요구사항에 맞는지 - 제공된 요구사항이 실제 요구사항과

under-desk.tistory.com

 

애플리케이션 테스트의 기본원리

-특정 모듈 집중

-파레토 법칙

-살충제 패러독스

-정황에 의존

-오류-부재의 궤변(Absence of Errors Fallacy)

 

 

<애플리케이션 테스트의 분류>

프로그램 실행 여부에 따른 테스트

-정적 테스트(워크스루, 인스팩션, 코드 검사)

-동적 테스트(화이트 박스 테스트, 블랙 박스 테스트)

 

테스트 기반에 따른 테스트

-명세 기반 테스트(블박)

-구조 기반 테스트(화박)

-경험 기반 테스트

 

시각에 따른 테스트

-검증 테스트

-확인 테스트

 

목적에 따른 테스트 7가지

-회복 테스트

-안전 테스트

-강도 테스트

-성능 테스트

-구조 테스트

-회귀 테스트

-병행 테스트

 

 

테스트 기법에 따른 애플리케이션 테스트

1. 화이트 박스 테스트

-기초 경로 검사(Base Path Testing)

-제어 구조 검사(Control Structure Testing) (조건 검사, 루프 검사, 데이터 흐름 검사)

2. 블랙 박스 테스트

-동치 분할 검사(Equivalence Testing)

-경계값 분석(Boundary Value Analysis)

-원인-효과 그래프 검사(Cause-Effect Graphing Testing)

-오류 예측 검사(Error Guessing)

-비교 검사(Comparison Testing)

 

 

개발 단계에 따른 애플리케이션 테스트

소프트웨어 생명 주기 v 모델

소프트웨어 개발 단계: 요구사항->분석->설계->구현

테스트 단계: 단위 테스트->통합 테스트->시스템 테스트->인수 테스트

 

단위 테스트로 발견 가능한 오류: 알고리즘 오류, 탈출구 없는 반복문, 틀린 계산 수식

 

인수 테스트 종류 6가지

-사용자 인수 테스트

-운영상의 인수 테스트

-계약 인수 테스트

-규정 인수 테스트

-알파 테스트

-베타 테스트

 

 

<통합 테스트>

통합테스트 방법

1. 비점진적 통합 방식

2. 점진적 통합 방식(하스상드)

-하향식 통합 테스트(넓이 우선 통합법, 깊이 우선 통합법)

-상향식 통합 테스트

3. 혼합식 통합 테스트

 

상향식 통합 방법

하위 모듈들을 클러스터로 결합-> 드라이버 작성-> 통합된 클러스터 단위로 테스트-> 클러스터를 상위로 결합하고 드라이버는 실제 모듈로 대체

 

테스트 케이스/ 테스트 시나리오/ 테스트 오라클

테스트 오라클 종류 4가지

-참 오라클

-샘플링 오라클

-추정 오라클

-일관성 검사 오라클

 

테스트 자동화 도구

테스트 자동화 도구 유형 6가지

-정적 분석 도구

-테스트 케이스 생성 도구(자료 흐름도, 기능 테스트, 입력 도메인 분석, 랜덤 테스트)

-테스트 실행 도구

-성능 테스트 도구

-테스트 통제 도구(형상 관리 도구, 결함 추적/관리 도구)

-테스트 하네스 도구

 

테스트 수행 단계별 테스트 자동화 도구

(테스트 단계-자동화)

테스트 계획-요구사항 관리

테스트 분석/설계-테스트 케이스 생성

테스트 수행-테스트 자동화, 정적 분석, 동적 분석, 성능 테스트, 모니터링

테스트 관리-커버리지 분석, 형상 관리, 결함 추적/관리

 

 

<결함(Fault) 관리>

결함 관리 측정 지표

-결함 분포

-결함 추세

-결함 에이징

결함 관리 순서

에러 발견->에러 등록->에러 분석->결함 확정->결함 할당->결함 조치

 

결함 관리 도구

-Mantis

-Trac

-Redmine

-Bugzilla

 

 

애플리케이션 성능 분석

애플리케이션 성능 측정 지표 4가지

-처리량(Throughput)

-응답 시간(Response Time)

-경과 시간(Turn Around Time)

-자원 사용률*Resource Usage)

 

성능 테스트 도구

-JMeter

-LoadUI

-OpenSTA

 

 

복잡도

복잡도 측정 방법

-LOC

-순환 복잡도

-시간 북잡도

 

애플리케이션 성능 개선

-소스 코드 최적화

-소스 코드 품질 분석 도구 사용

 

나쁜 코드 종류

-스파게티 코드

-외계인 코드

 

클린 코드 작성 원칙 5가지

-단순성

-가독성

-의존성 배제

-중복성 최소화

-추상화

 

소스 코드 품질 분석 도구 종류

-정적 분석 도구(pmd, cppcheck, SonarQube, checkstyle, ccm, cobertura)

-동적 분석 도구(Avalanche, valgrind) val 들어가있음

 

 

<모듈 간 공통 기능 및 데이터 인터페이스 확인>

인터페이스 설계서

1. 일반적인 인터페이스 설계서

-시스템 인터페이스 설계서

-상세 기능별 인터페이스 명세서

2. 정적 동적 모형을 통한 인터페이스 설계서

 

 

<모듈 연계를 위한 인터페이스 기능 식별>

모듈 연계 방법

-EAI(Enterprise Application Interface)

-ESB(Enterprise Service Bus)

 

EAI 구축 유형

-point to point

-hub&spoke

-message bus

-hybrid

 

 

모듈 간 인터페이스 데이터 표준 확인

모듈 간 인터페이스 데이터 표준 확인 순서

1. 데이터 인터페이스를 통해 인터페이스 데이터 표준 확인

2. 인터페이스 기능을 통해 인터페이스 표준 확인

3. 1,2를 검토하여 인터페이스 데이터 표준 확인

 

 

인터페이스 기능 구현 정의

모듈 세부 설계서

-컴포넌트 명세서

-인터페이스 명세서

 

 

인터페이스 구현 

인터페이스를 구현하는 방법

-데이터 통신을 이용한 인터페이스 구현(JSON, XML)

-인터페이스 엔티티를 이용한 인터페이스 구현(인터페이스 테이블)

 

 

<인터페이스 예외 처리>

데이터 통신을 이용한 인터페이스 예외 처리

1. 인터페이스 객체 송신 실패 시 예외 사항

-네트워크 불안정

-송신 데이터 크기, 데이터 정합성 체크 오류 발생

-송신 데이터 생성 시 프로세스의 논리적 결함

2. 인터페이스 객체 수신 실패 시 예외 사항

-네트워크 및 서버 불안정

-특수문자 등으로 파싱 시 오류 발생

-수신 데이터 처리 시 프로그램의 논리적 결함

 

인터페이스 엔티티를 이용한 인터페이스 예외 처리

1. 송신 인터페이스 테이블을 이용한 인터페이스 기능 실패 시

-인터페이스 데이터 생성 시 선택 SQL, 프로그램 오류, 데이터 객체 생성 오류

-테이블에 입력 시 입력 SQL 오류, 데이터 정합성 오류

-데이터 전송 시 DB connection 오류, 데이터 전송 주체의 논리적 오류

2. 수신 인터페이스 테이블을 이용한 인터페이스 기능 실패 시

-인터페이스 데이터 읽기 시 데이터 선택 시 오류

-데이터 트랜잭션 시 프로그램의 논리상 오류

-처리 결과 응답 시 DB connection 오류

 

<인터페이스 보안 >

인터페이스 보안 기능 적용

-네트워크 영역

-애플리케이션 영역

-데이터베이스 영역

 

데이터 무결성 검사 도구

-Tripwire

-AIDE

-Samhain

-Claymore

-Slipwire

-Fcheck

 

 

<연계 테스트>

연계 테스트 순서

연계 테스트 케이스 작성-> 연계 테스트 환경 구축-> 연계 테스트 수행-> 연계 테스트 수행 결과 검증

 

 

<인터페이스 구현 검증>

인터페이스 구현 검증 도구(통합 테스트 자동화 도구)

-Xunit: 다양한 언어 지원

-STAF: 다양한 환경 지원

-FitNesse: 웹 기반

-NTAF: STAF Fitnesse 통합

-Selenium: 개발 언어 지원 웹 애플리케이션

-watir:Ruby 사용

 

인터페이스 구현 감시 도구

-스카우터

-제니퍼

 

 

인터페이스 오류 확인 및 처리 보고서 작성

인터페이스 오류 발생 즉시 확인

-오류 메시지 알람 표시

-오류 SMS 발송

-오류 내역 이메일 발송

 

주기적인 인터페이스 오류 발생 확인

-인터페이스 오류 로그 확인

-인터페이스 오류 테이블 확인

-인터페이스 감시 도구(APM) 사용

 

 

 

 

 

 

 

 

'정보 처리 기사' 카테고리의 다른 글

[정보처리기사] 1장 정리  (0) 2023.06.04