예전에 공부하면서 타 커뮤티니 유저분께서 친절하게 정리해서 올려준 내용입니다.
20년 1회 ~ 21년 2회차 기출 문제 동향 위주.
1챕터 : 1문제로 나올 시 개발방법론, 2문제가 나올시 1문제는 개발방법론 1문제는 디자인패턴에서 나올 확률이 높음.
▶ 소프트웨어 개발방법론 종류
⦁ 구조적 방법론 : 전체 시스템을 기능에 따라 나누어 개발하고, 이를 통합한다. 나씨-슈나이더만 차트 사용
⦁ 정보공학 방법론 : 정보시스템 개발에 필요한 관리 절차와 작업 기반을 체계화
⦁ 객체지향 방법론 : ‘객체’라는 기본 단위로 시스템 분석 및 설계
⦁ 컴포넌트 기반 방법론(CBD) : 컴포넌트를 조립해 하나의 새로운 운용 프로그램 작성
⦁ 애자일 방법론 : 절차보다는 사람이 중심이 되어 변화에 유연하고 신속하게 적응하면서 효율적으로 시스템 개발
⦁ 제품 계열 방법론 : 특정 제품에 적용하고 싶은 공통된 기능을 정의해 개발, 임베디드
▶ 애자일 방법론의 유형
⦁ XP : 의사소통 개선과 즉각적 피드백으로 소프트웨어 품질 높이기 위한 방법론
⦁ SCRUM : 매일 정해진 시간, 장소에서 짧은 시간의 개발을 하는 팀을 위한 프로젝트 관리 방법론
⦁ LEAN : 도요타의 린 시스템 품질기법을 소프트웨어 개발 프로세스에 적용해 낭비 요소를 제거하는 방법론
▶ XP의 5가지 가치 : 용기, 단순성, 의사소통, 존중, 피드백
▶ XP의 12가지 기본원리
⦁ 짝 프로그래밍 : 개발자 둘이서 짝으로 코딩하는 원리
⦁ 지속적인 통합(CI) : 매일 여러 번씩 소프트웨어를 통합하고 빌드
⦁ 메타포어(Metaphor) : 공통적인 이름 체계와 시스템 서술서를 통해 고객과 개발자간의 의사소통을 원활하게 한다.
⦁ 테스트 기반 개발(TDD) : 만들 프로그램에 대한 테스트를 먼저 수행하고 이 테스트를 통과할 수 있도록 실제 프로그램의 코드를 작성한다.
⦁ 리팩토링(Refactoring) : 프로그램의 기능은 바꾸지 않고 중복제거, 단순화 등을 위해 시스템 재구성을 한다.
▶ 델파이 기법
전문가의 경험적 지식을 통한 문제 해결 및 미래예측을 위한 기법
▶ 디자인 패턴 종류
◇ 생성 패턴
⦁ Builder : 복잡한 인스턴스를 조립해 만드는 구조, 복합 객체 생성 시 방법 분리, 서로 다른 표현 결과 만들 수 있음
⦁ Prototype : 처음부터 일반적인 원형을 만들어 놓고, 그것을 복사한 후 필요한 부분만 수정해 사용하는 패턴
⦁ Factory Method : 상위 클래스에서 객체를 생성하는 인터페이스를 정의하고, 하위 클래스에서 인스턴스를 생성하도록 하는 방식
⦁ Abstract Factory : 구체적인 클래스에 의존하지 않고 서로 연관되거나 의존적인 객체들의 조합을 만드는 인터페이스 제공하는 패턴
⦁ Singleton : 전역 변수를 사용하지 않고 객체를 하나만 생성하도록 하며, 생성된 객체를 어디에서든지 참조할 수 있도록 하는 디자인 패턴
◇ 구조 패턴
⦁ Bridge : 기능의 클래스 계층과 구현의 클래스 계층을 연결, 구현부에서 추상 계층 분리
⦁ Decorator : 기존에 구현되어 있는 클래스에 필요한 기능 추가해 나감
⦁ Facade : 복잡한 시스템에 대해 단순한 인터페이스 제공, 시스템 구조에 대한 파악 쉽게
⦁ Flyweight : 메모리 절약, ‘클래스의 경량화’ 목적
⦁ Proxy : 실체 객체에 대한 대리 객체, 실체 객체를 드러나지 않게 해 정보은닉
⦁ Composite : 객체들의 관계를 트리 구조로 구성, 부분-전체 계층 표현
⦁ Adapter : 기존에 생성된 클래스를 재사용할 수 있도록 중간에서 맞춰주는 역할
◇ 행위 패턴
⦁ Mediator : 중간에 통제, 중재자
⦁ Interpreter : 언어의 다양한 해석, 구문의 해석을 맡는 클래스 가각 작성
⦁ Iterator : 컬렉션 구현 방법 노출시키지 않으면서도 그 집합체 안에 들어있는 모든 항목에 접근할 방법을 제공
⦁ Template Method : 어떤 작업을 처리하는 일부분을 서브 클래스로 캡슐화, 상위 클래스-추상, 하위 클래스-구체
⦁ Observer : 한 객체의 상태가 바뀌면 그 객체에 의존하는 다른 객체들에 연락
⦁ State : 상태에 따라 다르게 처리할 수 있도록 행위 내용 변경
⦁ Visitor : 클래스의 메서드가 각 클래스를 돌아다니며 특정 작업 수행
⦁ Command : 명령이 들어오면 그에 맞는 서브 클래스 선택되어 실행
⦁ Strategy : 알고리즘 군 정의, 행위를 클래스로 캡슐화해 동적으로 행위 자유롭게 변환
⦁ Memento : Undo 기능 개발
⦁ Chain of Responsibility : 정적으로 어떤 기능에 대한 처리의 연결이 하드 코딩 되어 있을 때, 이를 동적으로 연결되어 있는 경우에 따라 다르게 처리될 수 있도록 연결한 디자인
2.챕터: UI의 설계원칙 물어볼 확률이 높음. 역대 기출이 전부 ui를 묻거나 설계원칙 이게 뭔가 물어보는거. 안나오거나 무조건 유연성 물어본다. 학습성은 너무 쉬워서 안나올 확률이 높음. 무조건 1문제만 나오고 안나올 확률도 존재.
▶ UI 설계 원칙(직유학유)
⦁ 직관성(Intuitiveness) : 누구나 쉽게 이해하고, 쉽게 사용할 수 있어야 한다.
⦁ 유효성(Efficiency) : 정확하고 완벽하게 사용자의 목표가 달성 될 수 있도록 제작한다.
⦁ 학습성(Learnability) : 모두가 쉽게 배우고 사용할 수 있어야 한다.
⦁ 유연성(Flexibility) : 사용자의 인터랙션을 최대한 포용하고, 실수를 방지할 수 있도록 제작
3챕터 : 높은확률로 해당 과정은 무슨 정규화인가 혹은 x정규화는 무엇인가. 및 관계 대수 (2회차때 그림주고 뭐냐고 물어봤는데 정규화 단계 외워도 막상 그림으로 보면 모르는 사람 많으니 따로 검색해서 겉으로 라도 볼 것) 데이터 마이닝은 이미 나와서 안나올확률 99%고 외우는데 10초걸리니 시멘틱 웹 온톨로지 개념은 알아두자.
▶ 관계 대수 : 원하는 정보와 그 정보를 어떻게 유도하는가를 기술하는 절차적 정형 언어
⦁ 일반 집합 연산자 : 합집합, 교집합, 차집합, 카티션 프로덕트
⦁ 순수 관계 연산자 : 셀렉트, 프로젝트, 조인, 디비전
▶ 정규화 단계
1NF : 도메인이 원자값
2NF : 부분함수 종속 제거
3NF : 이행함수 종속 제거
BCNF : 결정자 함수이면서 후보키 아닌 것 제거
4NF : 다치 종속 제거
5NF : 조인 종속 제거
▶ 이상 현상(Anomaly)
데이터의 중복성으로 인해 릴레이션을 조작할 때 발생하는 비합리적인 현상
⦁ 삽입 이상, 삭제 이상, 갱신 이상
▶ 반 정규화(De-Normalization)
정규화 된 엔티티, 속성, 관계에 대해 성능 향상과 개발 운영의 단순화를 위해 중복, 통합, 분리 등을 수행하는 과정
▶ 시맨틱 웹(Semantic Web)
기계가 이해할 수 있는 온톨로지 형태로 표현하고 자동화된 기계가 처리하도록 하는 지능형 웹
▶ 온톨로지(Ontology)
실세계에 존재하는 모든 개념들과 개념들의 속성, 개념들 간의 관계 정보를 컴퓨터가 이해할 수 있도록 서술해 놓은 지식베이스
4챕터 : 역대 출제 문제 전부 용어 묻는 문제가 나왔다. 약술형 가능성도 있으니 외우자. (99% UDDI ESB 중에 나온다.)
▶ EAI(Enterprise Application Integration)
⦁ 기업에서 운영되는 서로 다른 플랫폼 및 애플리케이션들 간의 정보 전달, 연계, 통합을 가능하게 해주는 솔루션, 어댑터 사용
▶ EAI 구축 유형
포인트 투 포인트(Point-to-Point), 허브 앤 스포크(Hub & Spoke), 메시지 버스, 하이브리드
▶ ESB(Enterprise Service Bus)
⦁ 기업에서 운영되는 서로 다른 플랫폼 및 애플리케이션들 간을 하나의 시스템으로 관리 운영할 수 있도록 서비스 중심의 통합을 지향하는 아키텍처
▶ 웹 서비스 유형
⦁ SOAP(Simple Object Access Protocol) : HTTP, HTTPS, SMTP 등을 사용하여 XML 기반의 메시지를 네트워크 상태에서 교환하는 프로토콜
⦁ WSDL(Web Service Description Language) : 웹 서비스 명, 제공 위치, 메시지 포맷, 프로토콜 정보 등 웹 서비스에 대한 상세 정보가 기술된 XML 형식의 언어
⦁ UDDI(Universal Description, Discovery and Integration) : WSDL을 등록하고 검색하기 위한 저장소로 공개적으로 접근, 검색이 가능한 레지스트리이자 표준
5챕터 : 용어 묻는 문제만 나왔는데 최근 4회차동안 1문제도 출제 안됨. 안나올 확률 높으나 외우는데 몇분 안걸리니 꼭 외우자. (JSON AJAX XML은 기출이라 안나올 확률99%)
▶JSON(Javascript Object Notation)
속성-값 쌍 또는 “키-값 쌍”으로 이루어진 데이터 오브젝트를 전달하기 위해 인간이 읽을 수 있는 텍스트를 사용하는 개방형 표준 포맷, AJAX에서 많이 사용되고 XML을 대체하는 주요 데이터 포맷
▶ XML(Extensible Markup Language)
HTML의 단점을 보완한 인터넷 언어, SGML의 복잡한 단점을 개선한 특수한 목적을 갖는 마크업 언어
▶ AJAX(Asynchronous Javascript And XML)
자바스크립트를 사용하여 웹 서버와 클라이언트 간 비동기적으로 XML 데이터를 교환하고 조작하기 위한 웹 기술, XMLHttpRequest 객체를 이용해 전체 페이지를 새로 로드하지 않고 필요한 부분만 로드한다.
▶ REST(Representational State Transfer)
⦁ 웹과 같은 분산 하이퍼미디어 환경에서 자원의 존재/상태 정보를 표준화된 HTTP 메서드로 주고받는 웹 아키텍처 (리소스, 메서드, 메시지)
⦁ HTTP URI를 통해 자원을 명시하고, HTTP 메서드(POST, GET, PUT, DELETE)를 통해 해당 자원에 대한 생성, 조회, 갱신, 삭제 등의 명령을 적용할 수 있는 분산 하이퍼미디어 시스템을 위한 소프트웨어 아키텍처이다.
▶ 인터페이스 구현 검증 도구
⦁ xUnit : 자바, C++, .Net 등 다양한 언어를 지원하는 단위테스트 프레임워크
⦁ STAF : 서비스 호출, 컴포넌트 재사용 등 다양한 환경 지원하는 테스트 프레임 워크
⦁ FitNess : 웹 기반 테스트 케이스 설계/실행/결과 확인 등을 지원
⦁ NTAF : FitNess + STAF
⦁ Selenium : 다양한 브라우저 지원 및 개발언어를 지원, 테스트 스크립트 언어 학습할 필요 없음, 웹 애플리케이션 테스트 프레임워크
⦁ watir : 루비 기반 웹 애플리케이션 테스트 프레임워크
▶ 인터페이스 감시 도구(APM; 성능 모니터링 도구)
⦁ 스카우터(SCOUTER) : 애플리케이션에 대한 모니터링 및 DB Agent를 통해 오픈 소스 DB모니터링 기능, 인터페이스 감시 기능 제공
⦁ 제니퍼(Jennifer) : 애플리케이션 개발부터 테스트, 오픈, 운영, 안정화까지 전 생애주기 단계 동안 성능을 모니터링하고 분석해주는 APM 소프트웨어
6챕터 : 전공자는 알아서 할테고 비전공은 늦었으니 유튜브에 배열과 포인터 검색해서 강의 보고1문제 맞추자.
7챕터 : 무조건 SELECT문 작성 나오고
정리 상당히 잘 되있음.
▶ 이상 현상(Anomaly)
데이터의 중복성으로 인해 릴레이션을 조작할 때 발생하는 비합리적인 현상
⦁ 삽입 이상, 삭제 이상, 갱신 이상
1. 이 로 끝나는 이름 검색 %이 (시작은 이%인데 기출이라 안나옴)
2. 2번째로 이로 시작하는 이름 검색 _이%
3. 이름이 세글자 이상 검색 ___%
4. 맨뒤 앞 글자가 이로 끝나는 이름 검색 %이_
8챕터 : 역대 기출이 전부 형상 관리, 결응쪽에서 나왔다. 그림 주고 팬아웃 구해라, 형상관리 중에 ㅁㅁ는 무엇인가, ㅁㅁ결합응집도는 무엇인가 로만 나온다고 봐도 무방. ( 대충 이름만 알면 적당히 끼워맞추기 가능하니 식통감기 기순교절시논우 내공외제스자 달달 외우면 됨. )
▶ 형상 관리(Configuration Management)
소프트웨어 개발을 위한 전체 과정에서 발생하는 모든 항목의 변경 사항을 관리하기 위한 활동
▶ 형상 관리의 절차
⦁ 형상 식별 : 형상 관리 대상 정의 및 식별
⦁ 형상 통제 : 형상 항목 버전 관리를 위해 변경 여부와 변경 활동 통제
⦁ 형상 감사 : 소프트웨어 베이스라인의 무결성 평가, 베이스라인 변경 시 요구사항과 일치하는지 검토
* 베이스 라인 : 개발과정의 각 단계별 산출물에 대한 변화를 통제하는 시점의 기준
⦁ 형상 기록 : 형상 및 변경관리에 대한 각종 수행결과 기록
▶ 응집도(Cohesion)
모듈의 독립성을 나타내는 정도, 모듈 내부 구성요소 간 연관 정도
▶ 결합도(Coupling)
모듈 내부가 아닌 외부의 모듈과의 연관도, 모듈 간의 상호의존성, 모듈 간의 관련성
▶ 응집도 유형
⦁ Coincidental Cohesion(우연적 응집도) : 모듈 내부의 구성요소가 각 연관이 없을 경우
⦁ Logical Cohesion(논리적 응집도) : 유사한 성격, 특정 형태로 분류되는 처리 요소들이 한 모듈에서 처리되는 경우
⦁ Temporal Cohesion(시간적 응집도) : 특정 시간에 처리 되어야 하는 활동들
⦁ Procedural Cohesion(절차적 응집도) : 모듈이 다수의 관련 기능을 갖고, 모듈 안의 구성요소들이 그 기능을 순차적으로 수행할 경우
⦁ Communication Cohesion(교환적 응집도) : 동일한 입력과 출력을 사용해 다른 기능을 수행하는 활동들이 모임
⦁ Sequential Cohesion(순차적 응집도) : 모듈 내 한 활동으로부터 나온 출력값을 다른 활동이 사용할 경우
⦁ Functional Cohesion(기능적 응집도) : 모듈 내부의 모든 기능이 단일한 목적을 위해 수행되는 경우
▶ 결합도 유형
⦁ Content Coupling(내용 결합도) : 다른 모듈 내부에 있는 변수나 기능을 다른 모듈에서 사용하는 경우
⦁ Common Coupling(공통 결합도) : 파라미터가 아닌 모듈 밖에 선언되어 있는 전역 변수를 참조하고 갱신하는 식으로 상호작용하는 경우
⦁ External Coupling(외부 결합도) : 두 개의 모듈이 외부에서 도입된 데이터 포맷, 통신 프로토콜, 또는 디바이스 인터페이스를 공유할 경우
⦁ Control Coupling(제어 결합도) : 어떻게 처리를 해야 한다는 제어요소가 전달되는 경우
⦁ Stamp Coupling(스탬프 결합도) : 모듈 간의 인터페이스로 배열이나 객체, 구조 등이 전달되는 경우
⦁ Data Coupling(자료 결합도) : 모듈 간의 인터페이스로 전달되는 파라미터를 통해서만 모듈 간의 상호 작용이 일어나는 경우
▶ 팬인(Fan-In) / 팬 아웃(Fan-Out)
⦁ 팬인 : 모듈 자신을 기준으로 들어오면 팬인
⦁ 팬 아웃 : 모듈 자신을 기준으로 나가면 팬 아웃
9챕터 : 공격 유형, 보안 유형 물어봄. 약술형 가능성 높은 챕터
▶ DoS(Denial of Service)
시스템을 악의적으로 공격해 해당 시스템의 자원을 부족하게 해 사용하지 못하게 하는 공격
▶ DoS 공격의 종류
⦁ SYN 플러딩(Flooding) : TCP 프로토콜의 구조적 문제를 이용한 공격, SYN 패킷만 보냄
⦁ UDP 플러딩(Flooding) : 대량의 UDP 패킷을 만들어 임의의 포트 번호로 전송
⦁ 스머프(Smurf)/스머핑(Smurfing) : 출발지 주소를 공격 대상의 IP로 설정하여, 네트워크 전체에게 ICMP Echo 패킷을 직접 브로드 캐스팅해 마비시킴
⦁ 죽음의 핑(PoD) : ICMP 패킷(핑)을 정상적인 크기보다 아주 크게 만들어 전송
⦁ 랜드 어택 : 출발지 IP와 목적지 IP를 같은 패킷 주소로 만들어 보내, 수신자가 자기 자신에게 응답
⦁ 티어 드롭 : IP 패킷의 재조합 과정에서 잘못된 Fragment Offset 정보로 인해 수신 시스템이 단편화된 패킷의 재조합 과정에서 문제를 발생하도록 만드는 Dos 공격, IP 헤더가 조작된 일련의 IP 패킷 조각들을 전송
⦁ 봉크(Bonk) : 같은 시퀀스 번호 계속 보냄
⦁ 보잉크(Boink) : 일정한 간격으로 시퀀스 번호에 빈 공간 생성
▶ DDoS(Distrivuted DoS)
여러 대의 공격자를 분산 배치해 동시에 동작하게 함으로써 특정 사이트 공격
▶ 네트워크 공격
⦁ 스니핑(Sniffing) : 공격대상에게 직접 공격 하지 않고 데이터만 몰래 들여다보는 수동적 공격
⦁ 네트워크 스캐너(Scanner), 스니퍼(Sniffer) : 공격자가 HW, SW 구성의 취약점을 탐색하는 공격 도구
⦁ IP 스푸핑(Spoofing) : 침입자가 인증된 컴퓨팅 시스템인 것처럼 속여 정보를 빼내기 위해 본인의 패킷 헤더를 인증된 호스트의 IP 어드레스로 위조해 타깃에 전송
⦁ ARP 스푸핑(Spoofing) : 공격자가 특정 호스트의 MAC 주소를 자신의 MAC 주소로 위조한 ARP Reply를 만들어 희생자에게 지속적으로 전송
⦁ ICMP Redirect 공격 : 스니핑 시스템을 네트워크에 존재하는 또 다른 라우터라고 알림으로써 패킷의 흐름을 바꾸는 공격 기법
⦁ 트로이 목마(Trojan Horses) : 악성 루틴이 숨어 있는 프로그램, 겉보기에는 정상적인 프로그램처럼 보이지만 실행하면 악성 코드를 실행하는 프로그램
⦁ 패스워드 크래킹/공격(Password Cracking)
- 사전(Dictionary) 공격 : ID와 패스워드가 될 가능성이 있는 단어를 파일로 만들어 놓음
- 무차별(Brute Force) 대입 공격 : 패스워드로 사용 될 수 있는 영문자, 숫자, 특수 문자 등 을 무작위로 패스워드 자리에 대입해 패스워드를 알아내는 공격 기법
- 패스워드 하이브리드 공격 : 사전 공격 + 무차별 대입 공격
- 레인보우 테이블 공격 : 패스워드 별로 해시 값을 미리 생성해 테이블에 모아 놓음
▶버퍼 오버플로우(Buffer Overflow) 공격
메모리에 할당된 버퍼 크기를 초과하는 양의 데이터를 입력해 공격
▶ 보안 관련 용어
⦁ 스피어피싱 : 사회 공학의 한 기법, 메일을 이용한 공격 기법
⦁ 스미싱 : 문자를 이용한 공격 기법
⦁ 큐싱 : 큐알 코드를 이용한 공격 기법
⦁ APT 공격 : 특정 타깃을 목표로 해 다양한 수단을 통한 지속적이고 지능적인 맞춤형 공격 기법
⦁ 랜섬웨어(Ransomware) : 감염된 시스템의 파일들을 암호화해 인질처럼 잡고 몸값을 요구하는 악성 소프트웨어
⦁ 이블 트윈 공격 : 무선 WiFi 피싱 기법, 합법적인 WiFi 제공자처럼 행세해 정보를 탈취하는 무선 네트워크 기법
⦁ 공급망 공격(Supply Chain Attack) : 소프트웨어 개발사의 네트워크에 침투하여 소스 코드의 수정 등을 통해 악의적인 코드를 삽입해 사용자 PC에 소프트웨어를 설치 또는 업데이트 시 자동적으로 감염되도록 하는 공격
▶ 서버 접근 통제 유형
⦁ DAC : 시스템에 대한 접근을 사용자/그룹의 신분 기반으로 제한
⦁ MAC : 시스템에 대한 접근을 시스템 정보의 허용등급을 기준으로 제한
⦁ RBAC : 시스템에 대한 접근을 조직 내 맡은 역할을 기반으로 제한
▶ 대칭 키 암호화 알고리즘
⦁ DES : 1975년 미국 연방 표준국(NIST)에서 발표
⦁ SEED : 1999년 한국인터넷진흥원(KISA) 개발
⦁ AES : 2001년 미국 표준 기술 연구소(NIST)에서 발표, DES 상휘호환
⦁ ARIA : 2004년 국가정보원과 산학연구협회가 개발
⦁ IDEA : DES를 대체하기 위해 스위스 연방기술 기관에서 개발
⦁ LFSR : 선형 되먹임 시프트 레지스터, 선형 함수로 계산
▶ 해시 암호화 알고리즘
⦁ MD5 : MD4를 개선한 알고리즘 , 프로그램이나 파일의 무결성 검사에 사용
⦁ SHA-1 : NSA에서 미 정부 표준으로 지정, DSA에서 사용, 해시 값 생성
⦁ SHA-256/384/512
⦁ HAS-160 : 국내 표준 서명 알고리즘을 위해 개발된 해시 함수, MD5장점+SHA-1장점
▶ IPSec(Internet Protocol Security)
IP계층에서 무결성과 인증을 보장하는 인증 헤더와 기밀성을 보장하는 암호화를 이용한 IP 보안 프로토콜
⦁ 인증, 암호화, 키 관리 프로토콜로 구성
▶ SSL/TLS
전송계층과 응용계층 사이에서 클라이언트와 서버 간의 웹 데이터 암호화, 상호 인증 및 전송 시 데이터 무결성을 보장하는 보안 프로토콜
▶ S-HTTP(Secure Hypertext Transfer Protocol)
웹상에서 네트워크 트래픽을 암호화하는 주요 방법, 클라이언트와 서버 간 전송되는 모든 메시지를 각각 암호화해 전송하는 기술
▶ 비즈니스 연속성 계획 관련 주요 용어
⦁ BIA(Business Impact Analysis) : 장애나 재해로 인한 운영상의 주요 손실을 볼 것을 가정하여 비즈니스 영향 분석
⦁ RTO(Recovery Time Objective) : 업무중단 시점부터 업무가 복구되어 다시 가동될 때까지의 시간
⦁ RPO(Recovery Point Objective) : 업무중단 시점부터 데이터가 복구되어 다시 정상 가동될 때 데이터의 손실 허용 시점
⦁ DRP(Disaster Recovery Plan) : 재난으로 장기간에 걸쳐 시설의 운영이 불가능한 경우를 대비한 재난 복구 계획
⦁ DRS(Disaster Recovery System) : 재해 복구 센터
10챕터 : 20-4회에 블랙박스 테스트를 21-1회차에 블랙박스 기법 21-2회차에 화이트박스 기법을 묻는 문제가 출제 됨 자격증 특성상99% 화이트박스 테스트를 묻는 문제 나온다.
⦁ 개발 초기에 테스팅 시작 > 요르돈의 법칙(Snowball Effect, 눈덩이 법칙) : 개발 초기에 테스팅 하지 않으면 비용이 커진다.
⦁ 결함 집중 > 파레토 법칙 : 소프트웨어 테스트에서 오류의 80%는 전체 모듈의 20% 내에서 발견된다.
⦁ 살충제 패러독스 : 동일한 테스트 케이스로 반복해서 테스트하면 새로운 버그를 찾지 못한다.
⦁ 오류-부재의 궤변 : 요구사항을 충족시키지 못한다면, 결함이 없다고 해도 품질이 높다고 볼 수 없다.
▶ 화이트박스 테스트(구조 기반 테스트)
각 응용프로그램의 내부 구조와 동작을 검사하는 소프트웨어 테스트
⦁ 테스트 커버리지 : 프로그램의 테스트 수행 정도를 나타내는 값
- 기능 기반, 라인, 코드 커버리지
▶ 테스트 목적에 따른 분류
⦁ 회복 테스트 : 시스템에 고의로 실패를 유도하고, 시스템의 정상적 복귀 여부를 테스트
⦁ 안전 테스트 : 소스 내 보안적인 결함을 미리 점검하는 테스트
⦁ 성능 테스트 : 응답 시간, 반응 속도, 처리량 등을 측정하는 테스트
⦁ 구조(Structure) 테스트 : 시스템의 내부 논리 경로, 소스 코드의 복잡도를 테스트
⦁ 회귀(Regression) 테스트 : 오류 제거와 수정에 의해 새로 유입된 오류가 없는 지 확인하는 일종의 반복 테스트 기법
⦁ 병행(Parallel) 테스트 : 변경된 시스템과 기존 시스템에 동일한 데이터 입력 후 결과 비교
▶ 테스트 오라클
테스트의 결과가 참인지 거짓인지를 판단하기 위해 사전에 정의된 참값을 입력하여 비교
하는 기법
▶ 테스트 오라클 종류
⦁ 참 오라클 : 모든 입력값에 대해 기대하는 결과를 생성함으로써 발생된 오류를 모두 검출
⦁ 샘플링 오라클 : 특정한 몇 개의 입력값에 대해서만 기대하는 결과를 제공
⦁ 휴리스틱 오라클 : 샘플링 오라클을 개선, + 나머지 값들에 대해서는 휴리스틱(추정) 처리
⦁ 일관성 검사 오라클 : 애플리케이션 변경이 있을 때, 수행 전과 후의 결괏값이 동일한지 확인
▶ 테스트 레벨의 종류
단위 테스트, 통합 테스트, 시스템 테스트
⦁ 인수 테스트 :
- 알파 테스트 : 선택된 사용자가 개발자 환경에서 통제된 상태로 개발자와 함께 수행
- 베타 테스트 : 실제 환경에서 일정 수의 사용자에게 소프트웨어를 사용하게 하고 피드백을 받는 테스트
▶ 통합 테스트의 분류
⦁ 빅뱅 테스트 : 모든 모듈을 동시에 통합 후 테스트
⦁ 상향식 테스트 – 테스트 드라이버
⦁ 하향식 테스트 – 테스트 스텁
⦁ 샌드위치 테스트 : 상향식 + 하향식 테스트, 병렬 테스트 가능
▶ 테스트 자동화 도구 유형
⦁ 정적 분석 도구(Static Analysis Tools) : 만들어진 애플리케이션을 실행하지 않고 분석, 코딩 표준, 코딩 스타일 등 남은 결함을 발견하기 위해 사용
⦁ 테스트 실행 도구(Test Execution Tools) : 작성된 스크립트를 실행
- 데이터 주도 접근 방식, 키워드 주도 접근 방식
⦁ 성능 테스트 도구(Performance Test Tools) : 처리량, 응답시간, 경과시간, 자원 사용률에 대해 가상의 사용자를 생성하고 테스트 수행
⦁ 테스트 통제 도구(Test Control Tools) : 테스트 관리, 형상 관리, 결함 추적/관리 도구
11챕터 :
▶ 프로세스 스케줄링 유형
◇ 선점형 스케줄링
⦁ 라운드 로빈(Round Robin) : 같은 크기의 CPU 시간 할당
⦁ SRT(Shortest Remaining Time First) : 가장 짧은 시간이 소요되는 프로세스를 먼저 수행하고, 남은 처리 시간이 더 짧다고 판단되는 프로세스가 준비 큐에 생기면 언제라도 프로세스가 선점됨
⦁ 다단계 큐(Multi Level Queue) : 작업들을 여려 종류 그룹 분할
⦁ 다단계 피드백 큐 : 큐마다 서로 다른 CPU시간 할당량 부여, FIFO와 라운드 로빈 스케줄링 기법을 혼합한 것
◇ 비선점형 스케줄링
⦁ 우선순위(Priority) : 프로세스별 우선순위가 주어지고, 우선순위에 따라 CPU 할당
⦁ 기한부(Deadline) : 작업들이 명시된 시간이나 기한 내에 완료되도록 계획
⦁ FCFS(First Come Frist Service) : 프로세스가 대기 큐에 도착한 순서에 따라 CPU 할당
⦁ SJF(Shortest Job First) : 프로세스가 도착하는 시점에 따라 그 당시 가장 작은 서비스 시간을 갖는 프로세스가 종료 시까지 자원 점유, 기아 현상 발생
⦁ HRN(Highest Response Ratio Next) : 대기 중인 프로세스 중 현재 응답률이 가장 높은 것을 선택, 기아 현상 최소화 기법
▶ 클라우드 컴퓨팅(Cloud Computing)
인터넷의 서버를 통해 IT 관련 서비스를 한 번에 사용할 수 있는 컴퓨팅 환경
▶ 클라우드 컴퓨팅 유형
⦁ 인프라형 서비스(laaS) : 서버, 스토리지 같은 시스템 자원을 클라우드로 제공하는 서비스
⦁ 플랫폼형 서비스(PaaS) : 애플리케이션을 개발, 실행, 관리할 수 있게 하는 플랫폼을 제공하는 서비스
⦁ 소프트웨어형 서비스(SaaS) : 클라이언트를 통해 접속하여 소프트웨어를 서비스 형태로 이용하는 서비스
▶ OSI 7계층
◇ 물리 계층(Physical Layer)
⦁ 0과 1 비트 정보를 회선에 보내기 위한 전기적 신호 변환
⦁ 전송 단위 : 비트(Bit)
장비 : 허브, 리피터
⦁ 허브
⦁ 리피터
◇ 데이터 링크 계층(Data Link Layer)
⦁ 링크의 설정과 유지 및 종료 담당, 노드 간의 오류제어, 회선제어, 흐름제어
⦁ 전송 단위 : 프레임(Frame)
장비 : 브리지, 스위치
⦁ 브리지
⦁ L2 스위치
◇ 네트워크 계층(Network Layer)
⦁ 다양한 길이의 패킷 전송, 단말기 간 데이터 전송을 위한 최적화된 경로 제공
⦁ 전송 단위 : 패킷(Packet)
장비 : 라우터, 게이트웨이, 스위치, 백본 스위칭 허브
⦁ 라우터
⦁ 게이트웨이
네트워크 계층 프로토콜 : IP, ARP, RAPR, ICMP, IGMP, 라우팅 프로토콜
⦁ IP(Internet Protocol) : 송수신 간의 패킷 단위로 데이터 교환, 네트워크에서 정보를 주고받는 데 사용
⦁ ARP(Address Resolution Protocol) : IP네트워크상에서 IP주소를 MAC주소(물리 주소)로 변환
⦁ RARP(Reverse Address Resolution Protocol) : 호스트가 자신의 MAC주소는 알지만 IP주소를 모르는 경우, 서버로부터 IP주소를 요청하기 위해 사용
⦁ ICMP(Internet Control Message Protocol) : IP패킷을 처리할 때 발생되는 문제를 알려주는 메시지 형식 프로토콜
⦁ IGMP(Internet Group Management Protocol) : 인터넷 그룹 관리, 호스트 컴퓨터와 인접 라우터가 멀티캐스트 그룹 멤버십을 구성하는 데 사용
⦁ 라우팅 프로토콜 : 데이터 전송을 위해 목적지까지 갈 수 있는 최적의 경로를 설정해주는 라우터 간의 상호 통신 프로토콜
라우팅 프로토콜의 구성
<내부라우팅 프로토콜(IGP)>
⦁ RIP(Routing Information Protocol) : AS 내에서 사용하는 거리 벡터 알고리즘에 기초해 개발된 내부 라우팅 프로토콜, 벨만-포드 알고리즘, 15홉 제한, IGRP
⦁ OSPF(Open Shortest Path First) : 규모가 크고 복잡한 TCP/IP네트워크에서 RIP의 단점 개선위한 링크 상태 알고리즘 적용해 최단 경로를 찾는 프로토콜, 다익스트라 알고리즘, 홉 제한 없음, ELGRP
<외부 라우팅 프로토콜(EGP)>
⦁ BGP : AS 상호 간에 경로 정보를 교환하기 위한 라우팅 프로토콜
라우팅 알고리즘의 유형
⦁ 거리 벡터(Distance Vector) 알고리즘 : 인접 라우터와 정보를 공유해 목적지까지의 거리와 방향을 결정하는 알고리즘, 벨만-포드 알고리즘 사용
⦁ 링크 상태 알고리즘 : 링크 상태 정보를 모든 라우터에게 전달해 최단 경로 트리 구성, 다익스트라(Dijkstra) 알고리즘 사용
◇ 전송 계층(Transport Layer)
⦁ 종단 간의 사용자들에게 신뢰성 있는 데이터 전달, 송수신 프로세스 간의 연결
⦁ 전송단위 : 세그먼트(Segment)
전송 계층 프로토콜 : TCP, UDP
⦁ TCP(Transmission Control Protocol) : 신뢰성 보장, 연결 지향적 특징, 흐름 제어, 혼잡 제어
⦁ UDP(User Datagram Protocol) : 비신뢰성, 비연결성, 순서화되지 않은 데이터그램 서비스 제공, 단순 헤더, 실시간 응용 및 멀티캐스팅 가능
◇ 세션 계층(Session Layer)
⦁ 프로세스들의 논리적인 연결, 응용 프로그램 간의 대화를 유지하기 위한 구조 제공
⦁ 전송단위 : 데이터
◇ 표현 계층(Presentation Layer)
⦁ 통신에 알맞은 형태로 만듦, 사용자가 이해할 수 있는 형태로 만듦. 부호교환, 암복호화
⦁ 전송단위 : 데이터
표현 계층 프로토콜 : JPEG, MPEG
⦁ JPEG : 이미지를 위해 만들어진 표준 규격
⦁ MPEG : 멀티미디어를 위해 만들어진 표준 규격
◇ 응용 계층(Application Layer)
⦁ 사용자와 네트워크 간 응용서비스 연결
⦁ 전송단위 : 데이터
응용 계층 프로토콜 : HTTP, FTP, SMTP, Telnet, POP3/IMAP
⦁ HTTP : 텍스트 기반의 통신규약, 인터넷에서 데이터를 주고받을 수 있는 프로토콜
⦁ FTP(File Transfer Protocol) : TCP/IP 프로토콜을 가지고 서버와 클라이언트 사이의 파일을 전송하기 위한 프로토콜
⦁ SMTP(Simple Mail Transter Protocol) : 인터넷에서 TCP 포트 번호 25번, 이메일을 보내기위해 이용
⦁ Telnet : 인터넷이나 로컬 영역에서 네트워크 연결에 사용되는 네트워크 프로토콜
▶ 패킷 스위칭 관련 기술
⦁ X.25 : 통신을 원하는 두 단말장치가 패킷 교환망을 통해 패킷을 원활히 전달하기 위한 통신 프로토콜
⦁ 프레임 릴레이 : ISDN을 사용하기 위한 프로토콜, ITU-T에 의해 표준으로 작성됨
⦁ ATM(Asynchronous Transfer Mode) : 비동기 전송모드, 광대역 전송에 쓰이는 스위칭 기법
▶ IPv4 전송방식 : 유니, 멀티, 브로드
- IPv4 : 32bit
▶ IPv6 전송방식 : 유니, 멀티, 애니
- IPv6 : 128bit, 주소 확장, 이동성, 인증 및 보안 개선
12챕터 : 5회차 연속 출제 안됨. 안외워도 되긴함
크랙방지 : 코드 난독화, Secure DB
⦁ 코드 난독화(Code Obfuscation) : 역공학을 통한 공격을 막기 위해 프로그램의 소스 코드를 알아보기 힘든 형태로 바꾸는 기술
⦁ Secure DB : 커널 암호화 방식으로 데이터베이스 파일을 직접 암호화하고, 접근 제어와 감사 기록 기능이 추가된 데이터베이스 보안 강화 기술
◇ 인증 : SSO
⦁ SSO(Sigle Sign On) : 한 번의 시스템 인증을 통하여 여러 정보시스템에 재인증 절차 없이 접근할 수 있는 통합 로그인 기술
'정보처리기사(2020개정)' 카테고리의 다른 글
정보처리기사 실기 약술형 대비 정리 (0) | 2022.03.11 |
---|---|
[정보처리기사] 네트워크, SW, HW, DB 관련 신기술 (5-2. IT프로젝트 정보시스템 구축관리) (0) | 2021.05.10 |