정보처리기사

정보처리기사 실기 정리

whyHbr 2023. 10. 2. 17:58
728x90
반응형

소프트웨어 생명 주기

폭포수 모델 : 고전적 모델, 변경 어려움

프로토타이핑모델 : 견본품을 만들어 피드백 반영. 최종 결과물 예측

나선형 모델: 점진적 개발 과정.

반복적 모델:병렬적으로 개발 후 통합. 반복적 개발

 

소프트웨어 개발 방법론

구조적 방법론: 전제 시스템을 나눠 개발, 통합하는 분할-정복 방식의 방법론, 니씨 슈더만 차트 이용

정보공학 방법론: 정보 시스템 개발에 필요한 정차를 체계화한 방법론

객치지향 방법론: 객체라는 단위로 시스템을 설계

컴포넌트 방법론: 컴포넌트를 조힙해 작성

애자일 방법론: 절차보다 사람 중시 변화에 유연하고 신속하게 대비 ex) XP, 스크럼, 칸반, 크리스탈, 린

제품계열 방법론: 제품에 적용할 공통 기능을 정의하여 개발 (임베디드 소프트웨어 작성에 유용)

 

XP의 5가지 가치 : 용기, 단순성, 의사소통, 피드백, 존중

원리 : 짝 프로그래밍, 공동 코드 소유, 지속적인 통합. 계획 세우기, 작은 릴리즈, 메타포어, 간단한 디자인. 테스트 기반 개발,리팩토링, 40시간 작업, 고객 상주, 코드 표준

 

스크럼: 

백로그, 스프린트, 스크럼 미팅, 스크럼마스터, 스프린트 회고, 번다운 차트

 

디자인 패턴 유형

생성

빌더 Builder: 작게 분리된 인스턴스를 건축하듯 조합하여 객체 생성. 객체의 생성 과정과 표현 방법을 분리 -> 동일 객체 생성에서도 다른 결과를 만들어 낼 수 있음

프로토타입 Prototype:원본 객체를 복제하는 방법으로 객체를 생성

팩토리 메서드Factory Method: 생성할 객체의 클래스를 국한하지 않고 객체를 생성. 상위 클래스에서 인터페이스만 정의. 실제 생성은 서브 클래스가 담당

추상 팩토리  Abstract Factory: 인터페이스를 통해 서로 연관, 의존하는 객체들의 그룹으로 생성하는 객체들의 그룹으로 생성하여 추상적으로 표현. 연관된 서브 클래스를 묶어 한번에 교체하는 것 가능

싱글톤 Singleton : 전역 변수 사용하지 않음. 한 클래스에 한 객체만 존재. 생성된 객체는 어디서든지 참조 가능. 여러 프로세스가 동시에 참조할 수는 없다.

 

구조

브리지 Bridge: 구현부에서 추상층을 분리 -> 서로 독립적으로 확장할 수 있도록 구성한 패턴. 기능과 구현을 두 개의 별도의 클래스로 구현

프록시 Proxy: 실체 객체에 대한 대리 객체를 사용, 메모리 아끼고 정보은닉 가능

퍼사드 Facade: 더 상위의 인터페이스를 구현, 서브 클래스들의 기능을 간편하게 사용할 수 있도록 하는 패턴. 통합된 인터페이스 제공

플라이웨이트 Fly weight: 모두가 갖는 요소를 클래스화 해 공유. 클래스의 경량화

컴포지트 Composite: 복합 객체와 단일 객체를 구분 없이 다루고자 할 때 사용. 복합 객체 안에 복합 객체가 포함되는 구조 구현 가능

데코레이터  Decorator: 객체 간 결합을 통해 능동적으로 기능들을 확장할 수 있는 패턴. 임의의 객체에 부가된 기능을 추가하기 위해 다른 객체들을 덧붙이는 방식으로 구현

어댑터 Adapter: 기본에 생성된 클래스를 재사용할 수 있도록 중간에서 맞춰주는 인터페이스 패턴/ 클래스 패턴

 

행위

중재자 Mediator: 중재자를 만들어 중재자에게 모든 것을 요구, 복잡한 상호작용을 캡슐화

인터프리터 Interperter: 언어의 다양한 해석을 맡는 클래스를 각각 작성해 여러 형태의 언어 구문을 해석할 수 있게 만드는 패턴

이터레이터 Iterator: 컬렉션 구현 방법을 노출하지 않으면서 그 집합테 안에 들어있는 모든 항목에 접근 할 수 있는 방법을 제공

템플릿 메소드  Template Method: 작업 처리 일부분을 서브 클래스로 캡술화해 전체 수행 구조는 바꾸지 않으면서 특정 단계 수행 내역을 바꾸는 패턴

옵저버 Observer: 한 객체의 상태가 바뀌면 그 객체에 의존하는 다른 객체에 연락이 가고 자동으로 내용이 수정되는 방식

상태 state: 객체 싱태를 캡슐화 하여 클래스화함으로써 그것을 참조하게 하는 방식. 상태에 따라 다르게 처리 할 수 있도록 행위 내용 변경 가능

방문자 Visitor:  클래스의 메서드가 각 클래스를 돌아다니며 특정 작업을 수행함

커맨드 Command:  요청을 객체 형태로 캡슐화.재이용하거나 취소할 수 있도록 요청에 필요 정보를 저장하거나 로그를 남기는 패턴

전략 Strategy: 알고리즘 정의 후 각각 하나의 클래스 캡슐화 필요할 때 서로 교환해서 사용.행위 객체를 클래스로 캡슐화해 동적으로 자유롭게 변환

메멘토 Memento: 객체를 이전의 상태로 복구 시켜야 하는 경우.작업취소 Undo 요청

책입 연쇄 Chain of responsibility: 한 객체가 처리하지 못하면 다음 객체로 넘어가는 형태의 패턴. 요청을 처리할 수 있는 각 객체들이 고리들로 묶여 있어 요청이 해결될 때 까지 고리를 따라 책임이 넘어감

 

OSI 7계층 

Application 응용 : 인터페이스 담당 HTTP FTP

Presentation표현: 데이터의 변환, 압축, 암호화 JPEG, MPEG

Session 세션: 응용 프로그램 간의 연결을 성립하게 하고 연결이 안정되게 유지 관리, 작업 완료 후 연결 끊음 SSL/STL

Transport 전송 :종단과 종단 사이 오류 수정과 흐름 제어 혼잡제어 수행. 신뢰성.  TCP, UDP

Network 네트워크 :최종 목적지까지의 최적의 경로 IP. ICMP

Datalink 데이터 링크 : 노드와 노드 사이 데이터를 전송, 상위 계층이 물리 계층을 정상적인 상태로 인식 할 수 있도록 도와줌 이더넷

Physical 물리: 0,1비트. 기계적, 전기적 RS-232C

 

트랜잭션 특징 ACID

원자성 Atomicity: all or nothing 연산 전체가 모두 저장 되거나 모두 취소 되어야 하는 특성

일관성 Consistency : 트랜잭션 성공 후 일관된 데이터베이스 상태를 보존해야하는 특

격리성 Isolation : 트랜잭션 연산 중에 다른 트랜잭션이 접근 할 수 없어야 함

영속성 Durability: 성공이 완료된 트랜잭션의 결과는 계속적으로 데이터베이스에 저장함

 

요구공학 개발 단계 : 도출 - 분석 - 명세 - 확인

요구공학 관리 단계 : 협상 - 기준성 설정 - 변경관리 - 확인 및 검증

 

uml다이어그램

구조적 

클래스 : 클래스의 속성 및 연산과 클래스간의 정적인 관계 표현

객체: 객체와 객체 사이의 관계

컴포넌트: 컴포넌트와 그들 사이의 의존 관계

배치: 컴포논트 사이의 종속성, 몰리적 요소들의 위치

복합체 구조: 클래스나 컴포넌트가 복합 구조를 갖는 경우

 

행위

유스케이스: 기능과 관련 외부 요소를 사용자 관점에서 표현

시퀀스: 객체간 동적 상호작용을 시간적 개념 중심으로 메시지 흐름으로 표현

커뮤니케이션: 객체들이 주고받는 메시지와 객체 간 연관 표현

상태: 하나의 객체가 자신이 속한 클래스의 상태변화 혹은 다른 객체와의 상호장굑에 따라 어떻게 변화하는지 표현

활동: 시스템이 어떤 기능을 수행하는지, 객체의 처리 로직이나 조건에 따른 처리 흐름을 순서대로 표현

타이밍: 객체 상태 변화와 시간 제약을 명시적으로 표현

 

관계대수연산자

 일반집합연산자 : 합집합U (전체), 교집합 뒤집힌 U(공통), 차집합 - (전자에만 존재하고 후자에는 없음), 카티션 프로덕트 X(전자와 후자에 속한 모든 튜플 연결)

 순수관계연산자 :select 조건만족하는 튜플 반환 (시그마 ), Project 속성리스트 (파이), Join 공통속성 반환 (보타이), Division관련 튜플 반환 (나누기 )

 

EAI( 기업에서 운영되는 서로 다른 플랫폼 및 애플리케이션 간 연계를 돕는 솔루션)

구성요소

어댑터: 핵심 장치, 입출력 도구

브로커:데이터 포맷과 코드를 변환하는 솔루션

메시지큐: 사용하는 다른 응용 프로그램사이에서 데이터를 송수신하는 기술

 

유형

포인트 투 포인트: 1:1 단순 통합 방식

허브 앤 스포크 : 단일한 접점의 허브 시스템을 통하여 데이터 전송, 중앙 집중 방식

메시지 버스 : 앱 사이 미들웨어를 두어 연계하는 미들웨어 통합 방식 , 대용량에 적절

하이브리드: 그룹 내는 허브앤스포크, 그룹 간은 메시지버스

 

인터페이스 관련:

Json: 키값쌍으로 이루어진 데이터를 전달하기 위해 인간이 읽기 쉽게

Ajax: 서버 클라이언드 간 비동시적으로 데이터를 교환하기 위한 기술

XML: HTML의 단점 보완. 특수 목적 마크업언어

REST: HTTP URI 자원을 표시 HTTP 메서드를 통해 해당 자원에 대한 삽입 삭제갱신 등의 명령을 적용하는 아키텍쳐

IPSec: 3 네트워크계층에서 사용하는 보안 프로토콜

SSL/TSL: 4전송계층과 7응용계층 사이에서 안전한 데이터 전송을 보장하는 보안 프로토콜

S-HTTP: 클라이언트 서버 간 메시지를 암호화하는 보안기술

 

추상클래스 : 유사 클래스들의 공통된 특성을 정의, 하나 이상의 추상 메서드와 일반 필드, 메서드를 포함하는 클래스

오버라이딩: 부모에게 상속받은 메서드 재정의

오버로딩: 한 클래스 내에서 메서드를 중복해서 생성하는 것

상속Inheritance: 객체 지향 개념에서 이미 정의되어 있는 상위 클래스의 메소드 등 모든 속성을 하위 클래스가 물려받는 것

캡슐화:객체의 속성과 행위를 하나로 묶고 실제 구현 내용 일부를 외부에 감추어 은닉

 

병행제어 미보장시 문제점 : 갱현모연

갱신손실 lost Update, 현황파악오류 Dirty read, 모순성 Inconsistency, 연쇄복귀 Casading Rollback

 

회복기법 :회로체크

로그기반기법

 지연 갱신 회복 기법: 트랜잭션 완료 전에는 로그에만 기록, 장애 발생 시 로그 폐기

 즉각 갱신 회복 기법: 트랜잭션 갱신 결과를 바로DB 에 기록, 장애 발생시 로그 참고

체크포인트회복기법: 체크포인트 이전으로 복원

그림자페이징회복기법: 트랜잭션 수향 시 복제본을 생성해 이를 이용해 복구

 

형상관리 : 식통감기

형상식별, 형상통제, 형상감사. 형상기록

 

응집도  Cohesion(낮->높)

우연적 Coincidental: 모듈 내부의 각 구성요소들이 연관 없음 (낮)

논리적 Logical: 유사한 성격, 특정 형태로 분류되는 처리 요소들이 한 모듈에서 처리

시간적 Temporal:특정 시간에 처리되어야 하는 활동들을 한 모듈에서 처리하는 경우

절차적 Procedure:모듈이 다수의 기능을 가질 때 모듈 안의 구성 요소들이 그 기능을 순차적 수행

통신적 Communication:동일한 입력과 출력을 사용하여 다른 기능을 수행하는 활동들이 모여있음

순차적 Sequential:모듈 내에서 한 활동으로부터 나온 출력 값을 다른 활동이 사용할 경우

기능적 Functional:모듈 내부의 모든 기능이 단일한 목적을 위해 수행되는 경

 

결합도 Coupling(높음 -> 낮음)

내용결합도:  다른 모듈 내부에 있는 지역 변수나 기능을 다른 모듈에서 사용하는 경우

공통: 모듈 밖에서 선언된 전역 변수를 참조 갱신하는 등 상호 작용

외부: 두 개의 모듈이 외부에서 도립된 데이터 포맷, 통신 프로토콜, 또는 디바이스 인터페이스를 공유

제어: 단순 처리할 대상인 값과 어떻게 처리를 해야 한다는 제어 요소가 전달되는 경우

스탬프: 모듈 간의 인터페이스로 배열이나 오브젝트, 스트럭처 등이 전달되는 경우

자료: 모듈 간의 인터페이스로 전달되는 파라미터를 통해서만 모듈간의 상호작용

 

정보보안 3요소

기밀성 confidentiality: 인가받지 않은 사용자 혹은 시스템 접근에 따른 정보 공개 및 노출 차단

가용성 Availabilty: 권한을 가진 사용자는 서비스를 지속해서 사용 할 수 있어야

무결성 Intergrity: 정당한 방법을 따르지 않고서는 데이터가 변경 될 수 없음. 

 

DOS서비스 거부 공격: 시스템을 악의적으로 공격해 시스템 자원을 고갈시켜 이용할 수 없게 만듦

SYN flooding : 3 way hand shakes 과정을 의도적으로 중단

UDP Flooding : 대량의 UDP 패킷을 만들어 임의의 포트 번호로 전송, 응답 메세지를 생성하게 해 자원 고갈시킴

스머프, 스머핑: 출발지 주소를 공격 대상의 IP로 설정,네트워크 전체에 ICMP Echo패킷을 직접 브로드캐스팅하여 타켓 시스템 마비

죽음의 핑 : 큰 사이즈의 패킷을 지속적으로목표 시스템에 발생시켜 서비스 마비 시킴

랜드어택: 출발지ip주소와 도착지 ip주소를 동일하게 설정해 동작 마비

티어드롭: ip패킷의 재조합 과정에서 잘못된 Fragment offset 정보로 인해 수신 시스템의 문제 발생

봉크 : 시스탬 패킷 재전송과 재조립이 과부하를 유발하게 하는 공격 기법

 

DDOS

Trinoo:  udp flooding 공격도구

TFN: 여러 공격이 가능한 도구

Stacheldraht: 에이전트 역할을 하는 도구

 

세션 하이재킹 : tcp의 세션 관리 취약점을 이용한 공격 기법

 

애플리케이션 공격 

HTTP GET Floding : 과도한 get 메시지를 이동하여 웹 서버에 과부하를 유발시키는 공격

slowloris: 헤더의 최종 끝을 알리는 개행 문자열을 전송하지 않아 연결 상태를 지속시켜 자원 고갈

RUDY:요청 헤더의 content - length를 비정상적으로 크게 설정, 메시지 바디 부분을 매우 소량으로 보내 계속 연결상태를 유지하는 공격

Slow Http Read Dos: TCP원도 크기와 데이터 처리율을 감소시킨 상태에서 다수 HTTP 패킷을 지속적으로 전송.  연결자원 소진

Hulk Dos: 공격자가 공격대상 URL을 계속 변경하면서 다량의 GET 요청을 보내는 공격

Hash Dos:웹 서버의 해시 테이블에 해시 충돌을 일으켜 자원을 소모시키는 공격

 

네트워크 공격

스니핑 : 직접 공격하지 않고 데이터만 몰래 봄

네트워크 스캐너/ 스니퍼 : 공격도구

사전 크래킹 = 사전 대입 공격: 가능성 있는 단어 대입

무차별 대입 공격: 

레인보우 테이블 공격: 패스워드별로 해시값 생성

스푸핑: 승인받은 사용자 인 것 처럼 접근헤 허가된 주소로 가장, 접근 제어 우회하는 공격기법

 ip 스푸핑, ARP 스푸핑, 트로이목마

ICMP Redirect: 3계층에서 스니핑 시스템을 네트워크에 존재하는 또다른 라우터라고 알려 패킷의 흐름을 바꿈

 

버퍼오버플로우: 할당된 메모리에 버퍼 크기를 초과하는 데이터를 입력헤해 프로세스 흐름을 변경시키는 공격

스택 버퍼 오버 플로우, 힙 버퍼 오버플로우

 

XSS: 검증되지 않은 외부 입력 데이터가 포함된 웹 페이지를 열 때 부적절한 스크립트가 실행되는 공격

사이트간 요청 위조 CSRF:사용자가 자신의 의도와는 무관하게 공격자가 의도한 행위를 특정 웹 사이트에 요청하는 공격기법

SQL Injection: 외부에서 SQL 쿼리를 삽임해 시스템 권한을 획득하거나 데이터를 훔치는 공격기법

 

접근 통제 방법:

임의적 접근 통제 DAC : 접근을 사용자/ 그룹 신분을기준으로 제한

강제적 접근 통제 MAC: 객체에게 부여된 허용 등급을 비교해접근을 통제

역할기반 접근 통제RBAC: 조직 내에서 맡은 역할에 기초하여 자원에 대한 접근 허용 여부를 결정하는 방법

 

대칭키 암호화 방식 :

 DES: 미국표준 nist 블록 암호 알고리즘. 블록크기 64bit, 키 길이 56bit 인 페이스텔 구조. 16라운드 반복

3DES:암호화키 2개를 사용

AES:DES의 대안. 전사공격 가능. 키 길이에 따라 128, 192, 256으로 분류

SEED: 한국 인터넷 진흥원KISA 에서 개발.

ARIA:아카데미, 연구기관,정부

IDEA: 스위스 연방 기술 기관에서 개발

RC4:스트림암호

LFSR:시프트 레지스터의 일종

 

비대칭키 암호 방식

디피-헬만: 최초의 공개키 알고리즘, 유한 필드 내에서 이산 대수의 계산이 어려운 문제를 기본 원리로 둠.

RSA: MIT 교수 세 명,소인수 분해하는 알고리즘

DSA: 이산대수의 어려움을 안전성의 바탕으로 개발

ECC: 이산 대수의 문제에 기초한 공개키 암호화 알고리즘. 타원 기반 구조체의 안전성과 효율성 기반으로 생성

ELGamal:이산 대수의 어려운 문제를 기본 원리로 하고 있음. 전자서명서 사용

 

해시 암호 방식

MD5: MD4개선. 무결성 검사에 사용

SHA:1993, NSA 미국 국가 표준으로 발표. DSA에서 사용

SHA-256/384/512: AES에 대응하도록 출력 길이를 늘인 해시알고리즘

HAS-160:국내 표준 디지털 서명 알고리즘을 위해 개발, MD5+SHA1

HAVAL:다이제스트를 출력하는 해시 알고리즘

 

라우팅 프로토콜: 송수신측 간의 전송 경로 중 최적 패킷 교환 경로를 설정하는 기능

 RIP: 인접한 라우터와 라우팅 정보를 교환하는 거리벡터 라우팅. 홉 카운트 15

 OSFP:  홉수제한 없음. 랑크상태 라우터. 

 BGP: snumber가 서로 다른 네트워크 간에 라우팅 정보를 주고 받을 때 사용하는 외부 프로토콜

 

BCP비즈니스 영속성 계획 

BIA Busimess Impact Analysis: 장애나 재해로 인해 운영상의 주요 손실을 볼 것을 가정해 시간 흐름에 따른 영향도 및 손실 평가하는 BCP를 구축하기 위한 비즈니스 영향 분석

RTO Recovery time objective: 업무 중단 시점부터 업무가 복구되어 다시 가동될때 까지의 시간,재해시 복구 목표의 시간 설정

RPO Recovery Point Objective: 업무 중단 시점으로부토 데이터가 복구되어 다시 정상가동 될 때 데이터의 손실 허용 시점. 재해시 복구 목표 지점의 선정

DRP Disaster Recovery Plan : 재난으로 장기간에 걸쳐 시설의 운영이 불가능한 경우를 대비한 재난 복구 계획

DRS Disaster Recovery System: 재해복구 계획의 원활한 수행을 지원하기 위하여 평상시에 확보해두는 인적,물적 자원 에 대한 지속적인 관리체계가 통합된 재해복구센터

 

IDS: 네트워크에 대한 공격을 실시간으로 탐지하는 시스템

IPS: 네트워크에 대한 공격을 실시간으로 차단 및 능동적으로 대응하는 시스

 

블랙박스 : 동등분할, 경곗값분석, 결정테이블, 상태전이, 유스케이스, 분류트리, 페어와이즈, 원인결과, 비교

화이트박스: 구문,결정,조건, 조건/결정,변경 조건/결정, 다중조건, 기본겨오 커버리지, 제어흐름, 데이터흐름 테스트

 

성능 테스트

부하 테스트:부하 증가, 시스템의 임계점 테스트

스트레스: 부하 가해 비정상적인 상황에서의 처리를 테스트

스파이크: 짧은 시간 많은 사용자 반응 측정

구성: 오랜시간 동안 시스템에 높은 부하를 가함

 

선점 스케줄링 알고리즘 

SRT: 가장 짧은시간이 소요되는 프로새스 먼저 실행

다단계 큐: 큐 생성. 프로세스 할당

다단계 피드백 큐 : 큐 생성, 무조건 첫 큐 할당

라운드로빈: 균등한 시간 할당.처리 실패시 뒤로

 

비선점 스케줄링 알고리즘

우선순위: 주요/ 긴급 프로세스에 대한 우선처리

기한부: 

HRN: 응답률 높은 것 선택, 기아현상 최소화

FCFS: 도착한 순서대로 처리

SJF: 도착 시점에 따라 가장 작은 서비스 시간을 갖는 프로세스가 끝날 때까지 점유 

728x90

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

정보처리기사: 데이터베이스 구축  (0) 2025.01.11
정보처리기사 실기 데이터베이스  (1) 2023.10.03
정보처리기사 실기 정리  (0) 2023.10.01
정보처리기사 실기 정리  (0) 2023.09.28
정보처리기사  (0) 2023.09.24