# 4. 자격증/정보처리기사

정보처리기사 필기_시험 전 볼 내용 정리

둥굴둥굴둥굴레차 2021. 8. 24. 07:30

GoF(Gangs of Four) 디자인 패턴

  1. singleton pattern(단일체) 생성패턴
    한 클래스에 한 객체만 존재하도록 제한한다
  2. bridge pattern
    구현부에서 추상층을 분리하여 각자 독립적으로 확장이 가능하게 하는 패턴
  3. adapter pattern(적응자) 구조패턴
    인터페이스가 호환되지 않는 클래스들을 함께 이용할 수 있도록, 타 클래스의 인터페이스를 기존 인터페이스에 덧씌운다
  4. decorator pattern(장식자) 구조패턴
    0개, 1개 혹은 그 이상의 객체를 묶어 하나의 객체로 이용할 수 있다
  5. state pattern(상태) 행위패턴
    동일한 동작을 객체의 상태에 따라 다르게 처리해야 할 때 사용하는 디자인 패턴

 

패턴별 정리

생성 패턴

추상 팩토리(Abstract Factory)
빌더(Builder)
팩토리 메서드(FactoryMethod)(=Virtual-Constructor 패턴)

  • 객체를 생성하기 위한 인터페이스를 정의하여 어떤 클래스가 인스턴스화 될 것인지는 서브 클래스가 결정하도록 하는 것.
  • 프로토타입(Prototype)
  • 싱글톤(Singleton)

 

구조 패턴

어댑터(Adapter)
브리지(Bridge)

  • 구현부에서 추상층을 분리, 서로가 독립적으로 확장함
  • 기능과 구현을 두 개의 별도 클래스로 구현함

컴포지트(Composite)

데코레이터(Decorator)
파사드(Facade)
플라이 웨이트(Flyweight)
프락시(Proxy)

 

행위 패턴

  • 책임 연쇄(Chain of Responsibility)
  • 커맨드(Command)
  • 인터프리터(InterPreter)
  • 이터레이터(Iterator)
  • 중재자(Mediator)
  • 메멘토(Memento)
  • 옵서버(Observer)
  • 상태(State)
  • 전략(Strategy)
  • 템플릿 메서드(Template Method)
  • 방문자(Visitor)

 

 

CASE(computer-aided software engineering)

컴퓨터 지원 소프트웨어 공학
  • 소프트웨어 공학의 자동화를 의미
  • 자동화를 지원하는 소프트웨어 도구를 제공해 반복적인 작업량을 줄이도록 하는 것

 

  • CASE의 원천 기술
    • 구조적 기법
    • 프로토타이핑 기술
    • 자동프로그래밍 기술
    • 정보 저장소 기술
    • 분산 처리 기술
  • CASE 기능
    1. 소프트웨어 생명주기(Software Lifecycle) 전 단계의 연결
    2. 그래픽 지원
    3. 다양한 소프트웨어 개발 모형 지원
    4. 모델들 사이의 모순검사 기능
    5. 자료흐름도 작성 기능

 

UML 행위다이어그램

기능적 모델

  • 사용자 측면에서 본 시스템 기능
  • Use case Diagram

정적 모델

  • 객체, 속성, 연관관계, 오퍼레이션의 시스템의 구조
  • Class Diagram

동적 모델

  • 시스템의 내부 동작
  • Sequence Diagram, State Diagram, Activity Diagram

 

UML 구조적다이어그램

  1. 클래스(Class) 다이어그램
  2. 객체(object) 다이어그램
  3. 복합체 구조(Composite Structure) 다이어그램
  4. 배치(Deployment) 다이어그램
  5. 컴포넌트(Component 다이어그램
  6. 패키지(Package) 다이어그램

 


 

힙(Heap)정렬

  1. 정렬할 입력 레코드들로 힘을 구성하고 가장 큰 키 값을 갖는 루트 노드를 제거하는 과정을 반복하여 정렬하는 기법이다.
  2. 평균과 최악 모두 O(nlog2n)
  3. 완전 이진트리(complete binary tree)로 입력자료의 레코드를 구성한다.
  4. O(N^2) : 제곱형 (버블 정렬, 삽입 정렬, 선택 정렬)

 

소프트웨어 테스트

 

화이트박스 테스트

  • 조건 검사
    기초 경로 검사
    루프 검사
  • 모듈 안의 작동을 직접 관찰 할 수 있다.
  • 내부의 논리적인 모든 경로를 테스트해 테스트 케이스를 설계.

 

블랙박스 테스트

  • 경계값 분석
    동치분할검사
    원인-효과 그래프 검사
    오류 예측 검사
    비교 검사
  • 내부 구조나 작동 원리를 모르는 상태에서 입력에 따른 출력 결과를 테스트

 

DRM

  • 콘텐츠 분배자(Contents Distributor): 암호화된 콘텐츠를 유통하는곳/사람
  • 콘텐츠 제공자(Contents Provider) : 콘텐츠를 제공하는 저작권자
  • 패키저(Packager): 콘텐츠를 메타데이터와 함께 배포가능한 형태로 묶어 암호화. 사용자 중심으로 패키징(아마?)
  • 클리어링 하우스(Clearing House): 키 관리 및 라이센스 발급 관리
  • DRM Controller : 배포된 콘텐츠의 이용권한을 통제
  • 그 외 : 저작권 표현, 콘텐츠 식별체계 표현, 정책 관리, 크랙 방지

 

 

인터페이스 구현 검증 도구

xUnit, STAF, Fitnesse, NTAF, Selenium, watir

  • xUnit : Java, C++ 등 다양한 언어 지원하는 단위 테스트 프레임워크
  • STAF : 서비스 호출 및 컴포넌트 재사용 등 환경 지원하는 테스트 프레임워크
  • FitNesse : 웹 기반 테스트케이스 설계, 실행, 결과 확인 등을 지원하는 테스트 프레임워크
  • NTAF : FitNesse의 장점인 협업 기능과 STAF의 장점인 재사용 및 확장성을 통합한 네이버의 테스트 자동화 프레임워크이다.
  • Selenium : 다양한 브라우저 및 개발 언어 지원하는 웹 애플리케이션 테스트 프레임워크
  • Watir : Ruby를 사용하는 애플리케이션 테스트 프레임워크
  • Ruby : 인터프리터 방식의 객체지향 스크립트 언어

 

그래프

  • 정점이 n개인 무방향 그래프에서 최대의 간선수는 n(n-1)/2개
  • 정점이 n개인 그래프에서 최대 간선수는 n(n-1)개
  • McCabe의 cyclomatic 수 V(G) = Edge - Node + 2
  • 트리의 차수 : 전체 트리 중에서 가장 많은 차수
  • 단말노드(terminal node) : 자식이 없는 노드

 


 

병행 제어

동시에 여러 개의 트랜잭션을 병행 수행할 때, DB의 일관성을 파괴하지 않도록 제어하는 것
  • 로킹 기법
  • 타임스탬프 기법
  • 다중 버전 기법

 

로킹(Locking)

  • 로킹단위
    • 로킹의 대상이 되는 객체의 크기다.
    • 병행 제어에서 한꺼번에 로킹 할 수 있는 객체의 크기이다.
    • 데이터베이스, 파일, 레코드, 필드 등은 로킹 단위가 될 수 있다.
    • 로킹 단위가 크면 : 오버헤드 감소 등 모두 낮아짐
    • 로킹 단위가 작으면 : 오버헤드 증가 등 모두 높아짐

 

뷰(View)

  • 뷰는 가상 테이블. 즉, 저장장치 내에 물리적으로 존재하지 않지만 사용자에게는 있는 것처럼 간주된다.
  • 뷰가 정의된 기본 테이블이 제거되면 뷰도 자동적으로 제거된다.
  • 장점
    • 뷰 위에 또 다른 뷰를 정의할 수 있다.
    • 데이터 보안 용이
    • 논리적 독립성 제공
    • 사용자 데이터 관리 용이
  • 단점
    • 뷰의 단점으로 삽입, 삭제, 갱신 연산에 제약이 따름
    • 독립적인 인덱스를 가질 수 없다.
    • 뷰의 정의를 변경하려면 뷰를 DROP하고 다시 CREATE해야 된다.

 

 

SQL

DML(데이터 조작어) - SELECT/INSERT/DELETE/UPDATE
DDL(데이터 정의어) - CREATE/ALTER/DROP
DCL(데이터 제어어) - GRANT/REVOKE/COMMIT/ROLLBACK/SAVEPOINT
  • DCL의 기능
    • 데이터 보안
    • 무결성 유지
    • 병행 제어
    • 회복 하기 위해 DBA가 사용하는 제어용 언어

 

순수관계연산자
select / project / join / division

 


 

결합도

내공외 제스데

 

응집도

기차교환절차 시논연

 


 

OSPF(Open Shortest Path First)

  • 네트워크 변화에 신속하게 대처할 수 있다.
  • 멀티캐스팅을 지원
  • 최단경로탐색에 '링크 상태 알고리즘'을 사용.

 

Putnam

Rayleigh-Norden 곡선의 노력 분포도

 

PERT

계획 평가 및 재검토 기술

 

 

암호화 방식

  1. 단방향
1-1. 해시

종류 : SHA, MD5, N-NASH, SNEFRU 등

 

특징 :
임의의 길이의 입력 데이터나 메시지를 고정 길이의 값이나 키로 변환
암호화, 무결성 검증을 위하여 사용

 

  1. 양방향
2-1. 개인키(=대칭키)

종류 :

  • 블록 방식 : DES, SEED, AES, ARIA
  • 스트림 방식(비트/바이트/단어들을 순차적으로 암호화) : RC4, LFSR

[DES]
IBM에서 개발

 

특징 :
암호화/복호화 속도가 빠르며, 알고리즘이 단순, 공개키 암호 기법보다 파일 크기가 작음
사용자의 증가에 따라 관리해야 할 키의 수가 상대적으로 많아진다

 

2-2. 공개키 (암호화 시 사용자에게 공개되는 공개키 사용, 복호화 시 비밀키 사용, 비대칭 암호 기법이라고도 함)

 

종류 : RSA, ECC

 

[RSA]
큰 숫자를 소인수 분해하기 어렵다는 기반 하에 1978년 MIT에 의해 제안된 공개키 암호화 알고리즘

 

특징 :
키의 분배가 용이하고, 관리해야 할 키 수가 적음

10명이 공개키 암호를 사용할 경우 2n이니까 20개의 키가 필요

암호화/복호화 속도가 느리며 알고리즘이 복잡, 개인키 암호화 방법보다 파일의 크기가 크다.