GoF(Gangs of Four) 디자인 패턴
- singleton pattern(단일체) 생성패턴
한 클래스에 한 객체만 존재하도록 제한한다 - bridge pattern
구현부에서 추상층을 분리하여 각자 독립적으로 확장이 가능하게 하는 패턴 - adapter pattern(적응자) 구조패턴
인터페이스가 호환되지 않는 클래스들을 함께 이용할 수 있도록, 타 클래스의 인터페이스를 기존 인터페이스에 덧씌운다 - decorator pattern(장식자) 구조패턴
0개, 1개 혹은 그 이상의 객체를 묶어 하나의 객체로 이용할 수 있다 - 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 기능
- 소프트웨어 생명주기(Software Lifecycle) 전 단계의 연결
- 그래픽 지원
- 다양한 소프트웨어 개발 모형 지원
- 모델들 사이의 모순검사 기능
- 자료흐름도 작성 기능
UML 행위다이어그램
기능적 모델
- 사용자 측면에서 본 시스템 기능
- Use case Diagram
정적 모델
- 객체, 속성, 연관관계, 오퍼레이션의 시스템의 구조
- Class Diagram
동적 모델
- 시스템의 내부 동작
- Sequence Diagram, State Diagram, Activity Diagram
UML 구조적다이어그램
- 클래스(Class) 다이어그램
- 객체(object) 다이어그램
- 복합체 구조(Composite Structure) 다이어그램
- 배치(Deployment) 다이어그램
- 컴포넌트(Component 다이어그램
- 패키지(Package) 다이어그램
힙(Heap)정렬
- 정렬할 입력 레코드들로 힘을 구성하고 가장 큰 키 값을 갖는 루트 노드를 제거하는 과정을 반복하여 정렬하는 기법이다.
- 평균과 최악 모두 O(nlog2n)
- 완전 이진트리(complete binary tree)로 입력자료의 레코드를 구성한다.
- 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. 해시
종류 : SHA, MD5, N-NASH, SNEFRU 등
특징 :
임의의 길이의 입력 데이터나 메시지를 고정 길이의 값이나 키로 변환
암호화, 무결성 검증을 위하여 사용
- 양방향
2-1. 개인키(=대칭키)
종류 :
- 블록 방식 : DES, SEED, AES, ARIA
- 스트림 방식(비트/바이트/단어들을 순차적으로 암호화) : RC4, LFSR
[DES]
IBM에서 개발
특징 :
암호화/복호화 속도가 빠르며, 알고리즘이 단순, 공개키 암호 기법보다 파일 크기가 작음
사용자의 증가에 따라 관리해야 할 키의 수가 상대적으로 많아진다
2-2. 공개키 (암호화 시 사용자에게 공개되는 공개키 사용, 복호화 시 비밀키 사용, 비대칭 암호 기법이라고도 함)
종류 : RSA, ECC
[RSA]
큰 숫자를 소인수 분해하기 어렵다는 기반 하에 1978년 MIT에 의해 제안된 공개키 암호화 알고리즘
특징 :
키의 분배가 용이하고, 관리해야 할 키 수가 적음
10명이 공개키 암호를 사용할 경우 2n이니까 20개의 키가 필요
암호화/복호화 속도가 느리며 알고리즘이 복잡, 개인키 암호화 방법보다 파일의 크기가 크다.
'# 4. 자격증 > 정보처리기사' 카테고리의 다른 글
(합격후기) 2021년 정보처리기사 3회차 필기_비전공자 공부 방법 (2) | 2021.09.01 |
---|---|
정보처리기사 # 2019.08 기출문제 (0) | 2021.08.13 |
정보처리기사 # 2020.06_5과목 정보시스템 구축관리 (0) | 2021.08.13 |
정보처리기사 # 2020.08_5과목 정보시스템 구축관리 (0) | 2021.08.13 |
정보처리기사 # 2020.09_5과목 정보시스템 구축관리 (0) | 2021.08.13 |