Closed yerim53 closed 1 year ago
07/16
살충제 패러독스 동일한 테스트에 의한 반복적 테스트는 새로운 버그를 찾지 못한다는 테스트의 원리
프로토콜 3요소
- 프로토콜 : 복수의 컴퓨터 사이에서 데이터 통신을 원활하게 하기 위해 필요한 통신 규약 ex) IP/TCP
- 구문(Syntax) : 시스템 간의 정보 전송을 위한 데이터 형식, 코딩, 신호 레벨등을 규정
- 의미(Semantic) : 시스템 간의 정보 전송을 위한 제어 정보로 조정과 에러 처리를 위한 규정
- 타이밍(Timing) : 시스템 간의 정보 전송을 위한 속도 조절과 순서 관리 규정
XML
- 송,수신 시스템 간 데이터 연계의 편의성을 위해서 전송되는 데이터 구조를 동일한 형태로 정의, 데이터를 효율적으로 정확하게 읽을 수 있으므로 모든 네트워크에서 데이터를 XML 파일로 손쉽게 전송 가능
- 데이터를 정의하는 규칙을 제공하는 마크업 언어, 자체적으로 컴퓨팅 작업 수행 X, 구조적 데이터 관리를 위해 모든 프로그래밍 언어 또는 소프트웨어 구축 가능
- 비즈니스 간 트랜잭션 지원
- 데이터 무결성 유지
- 검색 효율성 향상
- 유연한 애플리케이션 설계
트랜잭션 특성
- 트랜잭션 ? 데이터베이스의 상태를 변화시키는 하나의 논리적 기능을 수행하기 위한 작업의 단위 또는 한꺼번에 모두 수행되어야 할 일련의 연산
- 원자성(Atomicity) : 분해가 불가능한 작업의 최소단위
- 일관성(Consistency) : 트랜잭션이 실행 성공 후 항상 일관된 데이터베이스 상태를 보조해야하는 특성
- 격리성/독립성(lsolation) : 트랜잭션 실행 중 생성하는 연산의 중간 결과를 다른 트랜잭션이 접근 불가한 특성
- 영속성/지속성(Durability) : 성공이 완료된 트랜잭션의 결과는 영속적으로 데이터베이스에 저장하는 특성
TCL(Transaction Control Language)의 명령어
- 커밋 : 트랜잭션 확정, 트랜잭션을 메모리에 영구적으로 저장하는 명령어
- 롤백 : 트랜잭션 취소, 트랜잭션 내역을 저장 무효화시키는 명령어
- 체크 포인트 : 저장 시기 설정, 롤백을 위한 시점을 지정하는 명령어
JSON
- 비동기 브라우저
- 서버 통신(AJAX)을 위해 '속성-값 쌍', '키-값-쌍'으로 이루어진 데이터 오브젝트를 전달하기 위해 인간이 읽을 수 있는 텍스트를 사용하는 개방형 표준 포맷
비선점형 스케줄링 알고리즘 유형
- 비선점형 : 하나의 프로세스가 끝나지 않으면 다른 프로세스는 CPU를 사용할 수 없다.
- 우선순위(Priority) : 프로세스별로 우선순위가 주어지고, 우선순위에 따라 CPU를 할당
- 기한부(Deadline) : 작업들이 명시된 시간이나 기한 내에 완료되도록 계획
- FCFS(First Come First Service) : 프로세스가 대기 큐에 도착한 순서에 따라 CPU를 할당
- SJF(Shortest Job First) : 프로세스가 도착하는 시점에 따라 그 당시 가장 작은 서비스 기간을 갖는 프로세스가 종료까지 원 점유
- HRN(Highest Response Ratio Next) : 대기 중인 프로세스 중 현재 응답률이 가장 높은 것을 선택 (대기 시간 + 서비스 시간) / 서비스 시간
선점형 스케줄링 알고리즘
- 선점형 : 하나의 프로세스가 다른 프로세스 대신에 프로세서(CPU)를 차지할 수 있다
- RR(Round Robin) : 시분할 시스템에서 사용 / FCFS와 유사하지만 제한시간이 지난 후, 다음 프로세스에게 자원을 할당
- SRT(Shortest Remaining Time) : SJF기법을 선점혐으로 바꾼 스케줄링
- 다단계 큐 : 프로세스의 우선순위에 따라 시스템 프로세스, 대화형 프로세스, 일괄처리 프로세스 등으로 나누어 준비상태 큐를 상위 중위 하위단계로 배치
- 다단계 피드백 큐 : 다단계 큐의 단점을 보완함. 큐마다 timeout을 설정하여 timeout초과시 우선 순위가 낮은 다음단계 큐로 이동
랜드 어택
- 출발지(Source) IP와 목적지(Destination) IP를 같은 패킷 주소로 만들어 보냄으로써 수신자가 자기 자신에게 응답을 보내게 하여 시스템의 가용성을 침해하는 공격 기법
해시 암호화 알고리즘 종류
- MD5 (Message-Digest algorithm 5) - 각각의 512bit짜리 입력 메세지 블록에 대해 차례로 동작하여 128bit의 해시값을 생성하는 해시 알고리즘
SHA-1 (Secure Hash Algorithm) - 160bit의 해시값을 생성하는 해시 알고리즘
SHA-256/384/512 (Secure Hash Algorithm) - SHA알고리즘의 한 종류로써 256bit의 해시값을 생성하는 해시 함수
HAS-160 - 국내 표준 서명 알고리즘 KCDSA(Korean Certificate-based Digital Signature Algorithm)를 위하여 개발된 해시 함수
결합도 유형
- 내용 결합도(Content Coupling) - 다른 모듈 내부에 있는 변수나 기능을 다른 모듈에서 사용하는 경우의 결합도
공통 결합도(Common Coupling) - 파라미터가 아닌 모듈 밖에 선언되어 있는 전역 변수를 참조하고, 전역 변수를 갱신하는 식으로 상호작용하는 경우의 결합도
외부 결합도(External Coupling) - 두 개의 모듈이 외부에서 도입된 데이터 포맷, 통신 프로토콜, 또는 디바이스 인터페이스를 공유할 경우의 결합도
제어 결합도(Control Coupling) - 단순 처리할 대상인 값만 전달되는 게 아니라 어떻게 처리를 해야 한다는 제어 요소가 전달되는 경우의 결합도
스탬프 결합도(Stamp Coupling) - 모듈 간의 인터페이스로 배열이나 객체, 구조 등이 전달되는 경우의 결합도
자료 결합도(Data Coupling) - 모듈 간의 인터페이스로 전달되는 파라미터를 통해서만 모듈간의 상호작용이 일어나는 경우의 결합도
결합도 순서 내용>공통>외부>제어>스탬프>자료 ->이쪽으로 갈수록 결합도가 낮아 좋은 품질
응집도 유형
- 우연적 응집도(Coincidental Cohesion) - 모듈 내부의 각 구성요소가 연관이 없을 경우의 응집도
논리적 응집도(Logical Cohesion) - 유사한 성격을 갖거나 특정 형태로 분류되는 처리 요소들이 한 모듈에서 처리되는 경우의 응집도
시간적 응집도(Temporal Cohesion) - 연관된 기능이라기보다는 특정 시간에 처리되어야 하는 활동들을 한 모듈에서 처리할 경우의 응집도
절차적 응집도(Procedural Cohesion) - 모듈 다수의 관련 기능을 가질 때 모듈 안의 구성요소들이 그 기능을 순차적으로 수행할 경우의 응집도
교환적 응집도(Communication Cohesion) - 동일한 입력과 출력을 사용하여 다른 기능을 수행하는 활동들이 모여 있을 경우의 응집도
순차적 응집도(Sequential Cohesion) - 모듈 내에서 한 활동으로부터 나온 출력값을 다른 활동이 사용할 경우의 응집도
기능적 응집도(Functional Cohesion) - 모듈 내부의 모든 기능이 단일한 목적을 위해 수행되는 경우의 응집도
응집도 순서 우연적>논리적>시간적>절차적>교혼적>순차적>기능적 ->이쪽으로 갈수록 응집도 높아 좋은 품질
릴리즈 노트의 주요 작성 항목
- 릴리즈 노트 : 소프트웨어 제품과 함께 배포되는 문서
- 헤더 : 문서 이름, 제품 이름, 버전 번호, 릴리즈 날짜, 참고 날짜 , 노트 버전 등의 정보
- 개요 : 제품 및 변경에 대한 간략한 전박적 개요
- 목적 : 릴리즈 버전의 새로운 기능 목록과 릴리즈 노트의 목적에 대한 개요, 버그 수정 및 새로운 기능 기술
- 이슈 요약 : 버그의 간단한 설명 또는 릴리즈 추가 항목 요약 -재현 항목 : 버그 발견에 따른 재현 단계 기술
- 수정 . 개선 내용 : 수정 . 개선의 간단한 설명 기술
- 사용자 영향도 : 버전 변경에 따른 최종 사용자 기준의 기능 및 응용 프로그램상의 영향도 기술
- 소프트웨어 지원 영향도 : 버전 변경에 따른 소프트웨어의 지원 프로세스 및 영향도 기술
- 노트 : 소프트웨어 및 하드웨어 설치 항목, 제품 문서를 포함한 업그레이드 항목 메모
- 면책 조항 : 회사 및 표준 제품과 관련된 메세지, 프리웨어 및 불법 복제 방지, 중복 등 참조에 대한 고지 사항
- 연락 정보 : 사용자 지원 및 문의에 관련한 연락처 정보
반정규화의 주요 기법
- 반정규화? 시스템의 성능 향상, 개발 미 운영의 편의성 등을 위해 정규화된 데이터 모델을 통합, 중복, 분리하는 과정으로 의도적으로 정규화 원칙을 위배하는 행위
- 테이블 병합
- 테이블 분할
- 중복 테이블 추가
- 컬럼 중복화
- 중복 관계 추가
OSI 7계층
- OSI 7계층 ? 국제 표주화 기구인 ISO에서 개발한 컴퓨터 네트우크 프로토콜 디자인과 통신을 계층으로 나누어 설명한 개방형 시스템 상호 연결 모델
- 응용 계층(Application Layer) : 사용자와 네트워크 간 응용서비스 연결, 데이터 생성
- 표현 계층(Presentation Layer) : 데이터 형식 설정, 부호교환, 암.복호화
- 세션 계층(Session Layer) : 송수신 간의 논리적 연결 / 연결 접속, 동기제어
- 전송 계층(Transport Layer) : 송수신 프로세스 간의 연결 / 신뢰성 있는 통신 보장 / 데이터 분할, 제조립, 흐름제어, 오류 제어, 혼잡 제어
- 네트워크 계층(Network Layer) : 단말기 간 데이터를 전송하기 위한 최적화된 경로 제공
- 데이터링크 계층(DataLink Layer) : 인접 시스템 간 데이터 전송, 전송 오류 제어 / 동기화, 오류 제어, 흐름 제어, 회선 제어
- 물리 계층(Physical Layer) : 0과 1의 비트 정보를 회선에 보내기 위한 전기적 신호 변환
애플리케이션 성능 측정 지표
- 사용자가 요구한 애플리케이션의 기능을 최소한의 자원을 사용해서 최대한 많은 기능을 어느 정도 처리하는 지 측정하는 지표
- 처리량(Throughput) : 애플리케이션이 주어진 시간에 처리할 수 있는 트랜잭션의 수
- 응답시간(Response Time) : 사용자 입력이 끝난 후, 애플리케이션의 응답 출력이 개시될때까지의 시간
- 경과 시간(Turnaround Time) : 애플리케이션에 사용자가 요구를 입력한 시점부터 트랜잭션을 처리 후 그 결과의 출력이 완료할 때까지 걸리는 시간
- 자원 사용률(Resource Usage) : 애플리케이션이 트랜잭션을 처리하는 동안 사용하는 CPU 사용량, 메모리 사용량, 네트워크 사용량
비즈니스 연속성 계획(BCP)의 주요 용어
- 비즈니스 연속성 계획(BCP) ? 각종 재해나 재난발생에 대비하여 핵심 업무 기능수행의 연속성을 유지하며 고객 서비스의 지속성 보장과 고객에 대한 신뢰도를 높이는 신속한 절차와 체계를 구축해 기업의 가치를 최대화 해주는 방법론
- BIA(Business Impact Analysis) : 장애나 재해로 인해 운영상의 주요 손실을 볼 것을 가정하여 시간 흐름에 따른 영향도 및 손실평가를 조사하는 BCP를 구축하기 위한 비즈니스 영향 분석
- RTO(Recovery Time Objective) : 업무중단 시점부터 업무가 복구되어 다시 가동될 때까지의 시간
- RPO(Recovery Point Objective) : 업무중단 시점부터 데이터가 복구되어 다시 정상가동될 때 데이터의 손실 허용 시점
- DRP(Disaster Recovery Plan) : 재난으로 장기간에 걸쳐 시설의 운영이 불가능한 경우를 대비한 재난 복구 계획
- DRS(Disaster Recovery System) : 재해복구계획의 원활한 수행을 지원하기 위하여 평상시에 확보하여 두는 인적,물적 자원 및 이들에 대한 지속적인 관리체계가 통합된 재해복구센터
AJAX(Asynchronous JavaScript and XML) 비동기 통신 기법
- 브라우저가 가지고 있는 XMLHttpRequest 객체를 이용해서 전체 페이지를 새로 고치지 않고도 페이지 일부만을 위한 데이터를 로드하는 기법
- 하이퍼텍스트 표기 언어(HTML)만으로 어려운 다양한 작업을 웹 페이지에서 구현해 이용자가 웹 페이지와 자유롭게 상호작용할 수 있도록 하는 기술
소프트웨어 개발 방법론 종류
- 구조적 방법론(Structured Development) : 전체 시스템을 기능에 따라 나누어 개발하고, 이를 통합하는 분할과 정복 접근 방식의 방법론
- 정보공학 방법론(Information Engineering Development) : 정보시스템 개발에 필요한 관리 절차와 작업 기반을 체계화한 방법론
- 개체지향 방법론(Object-Oriented Development) : '객체'라는 기본 단위로 시스템을 분석 및 설계하는 방법론
- 컴포넌트 기반 방법론(CBD : Component Based Development) : 소프트웨어를 구성하는 컴포넌트를 조립해서 하나의 새로운 응용 프로그램을 작성하는 방법론
- 애자일 방법론(Agile Development) : 절차보다는 사람이 중심이 되어 변화에 유연하고 신속하게 적용하면서 효율적으로 시스템을 개발할 수 있는 신속 적응적 경량 개발방법론
- 제품 계열 방법론(Product Line Development) ; 특정 제품에 적용하고 싶은 공통된 기능을 정의하여 개발하는 방법론
IPSec의 주요 프로토콜
- IP계층에서 무결성과 인증을 보장하는 인증 헤더와 기밀성을 보장하는 암호화를 이용한 IP 보안 프로토콜
- 인증(AH) 프로토콜 : 메세지 인증 코드(MAC)를 이용하여 인증과 송신처 인증을 제공해주는 프로토콜로 기밀성(암호화)은 제공하지 않는 프로토콜
- 암호화(ESP) 프로토콜 : 메세지 인증 코드(MAC)와 암호화를 이용하여 인증과 송신처 인증과 기밀성을 제공하는 프로토콜
- 키 관리(IKE) 프로토콜 : Key를 주고 받는 알고리즘 / 공개된 네트워크를 통하여 Key를 어떻게 할 것인가를 정의
안드로이드 특징
- 안드로이드 ? 구글에서 개발한 운영체제로 리눅스 위에서 구동하며, 휴대폰 전화를 비롯한 휴대용 장치를 위한 운영체제와 미들웨어, 사용자 인터페이스 그리고 표준 응용 프로그램 등을 포함하고 있는 소프트웨어 스택이자 리눅스 모바일 운영체제
SOAP(Simple Object Access Protocol)
- SOAP는 HTTP, HTTPS, SMTP 등을 사용하여 XML 기반의 메세지를 네트워크 상태에서 교환하는 프로토콜
입력 데이터 검증 및 표현에 대한 취약점
- XSS(Cross Site Script) : 검증되지 않은 외부 입력 데이터가 포함된 웹 페이지가 전송되는 경우, 사용자가 해당 웹 페이지를 열람함으로써 웹 페이지에 포함된 부적절한 스크립트가 실행되는 공격
- 사이트 간 요청 위조 (CSRF) : 사용자가 자신의 의지와는 무관하게 공격자가 의도한 행위를 특정 웹 사이트에 요청하게 하는 공경
- SQL 삽입 (Injection) : 응용 프로그램의 보안 취약점을 이용하여 악의적인 SQL 구문을 삽입, 실행을 하여 데이터베이스의 접근을 통해 정보를 탕취하거나 조작 등을 행위하는 공격 방법
UI 설계 윈칙
- 직관성(Intuitiveness) : 누구나 쉽게 이해하고, 쉽게 사용할 수 있어야 함
- 유효성(Effciency) : 정확하고 완벽하게 사용자의 목표가 달성될 수 있도록 제작
- 학습성(Learnability) : 초보와 숙련자 모두가 쉽게 배우고 사용할 수 있게 제작
- 유연성(Flexibility) : 사용자의 인터랙션을 최대한 포용하고, 실수를 방지할 수 있도록 제작
LOD(Linked Open Data)
- 웹상에 존재하는 데이터를 개별 RUI(Uniform Resource Identifier)로 식별하고, 각 URI에 링크 정보를 부여함으로써 상호 연결된 웹을 지향하는 데이터
데이터 모델링의 절차
- 데이터 모델링의 구성요소 : 개체(Entity) · 속성(Attribute) · 관계(Relation)
- 개념적 데이터 모델(Conceptual Data Modeling) : 현실 세계에 대한 인식을 추상적, 개념적으로 표현하여 개념적 구조를 도출하는 데이터 모델
- 논리적 데이터 모델(Logical Data Modeling) : 업무의 모습을 모델링 표기법으로 형상화화여 사람이 이해하기 쉽게 표현한 데이터 모델
- 물리적 모델(Physical Data Modeling) : 논리 데이터 모델을 특정 DBMS의 특성 및 성능을 고려하여 물리적인 스키마를 만드는 일련의 모델
형상관리의 절차
- 형상 관리 ? 소프트웨어 개발을 위한 전체 과정에서 발생하는 모든 항목의 변경 사항을 관리하기 위한 활동
- 형상 식별 : 형상 관리 대상을 정의 및 식별하는 활동
- 형상 통제 : 형상 항목의 버전 관리를 위한 형상통제위원회 운영
- 형상 감사 : 소프트웨어 베이스라인의 무결성 평가
- 형상 기록 : 소프트웨어 형상 및 변경관리에 대한 각종 수행결과를 기록
리팩토링의 목적
- 리팩토링 ? 소프트웨어 모듈의 외부적 기능은 수정하지 않고 내부적으로 구조, 관계 등을 단순화하여 소프트웨어의 유지보수성을 향상시키는 기법
- 유지보수성 향상 : 복잡한 코드의 단순화, 소스의 가독성 향상
- 유연한 시스템 : 소프트웨어 요구사항 변경에 유연한 대응
- 생산성 향상 : 정제 및 최적화된 소스의 재사용
- 품질 향상 : 솦트웨어 오류발견이 용이하여 품질향상
OSFP(Open Shortest Path First)의 특징
- OSFP ? 대표적인 내부 라우팅 프로토콜로 다익스트라 알고리즘을 이용한 대규모 네트워크에 적합한 링크 상태 라우팅 프로토콜로도 불리는 라우팅 프로토콜 OSPF
- 다익스트라 알고리즘 사용 : 다익스트라 알고리즘을 사용하는 내부 라우팅 프로토콜
- 라우팅 메트릭 지정 : 최조, 지연 , 최대 처리량 등 관리자가 라우팅 메트릭 지정
- AS분할 사용 : 자치 시스템을 지역으로 나누어 라우팅을 효과적으로 관리
- 홉 카운트 무제한 : 홉 카운트에 제한이 없음
ICMP(Internet Control Message Protocol)
- IP 패킷을 처리할 때 발생하는 문제를 알려주는 프로토콜로, 메세지 형식은 8비트의 헤더와 가변 길이의 데이터 영역으로 분리되어 있음
식별자 표기법
- 가멜 표기법 : 식별자 표기 시에 여러 단어가 이어지면 첫 단어 시작만 소문자로 표시하고, 각 단어의 첫 글자는 대문자로 지정하는 표기법 (ex : goodMan)
- 파스칼 표기법 : 식별자 표기 시에 여러 단어가 이어지면 각 단어의 첫 글자는 대문자로 지정하는 표기법 (ex : GoodMan)
- 스네이크 표기법 : 식별자 표기 시에 여러 단어가 이어지면 단어 사이에 언더 바를 넣는 표기법(ex : good_man)
- 헝가리안 표기법 : 식별자 표기 시, 두어에 자료형을 붙이는 표기법 (ex : goodMan > 정수형)
블랙박스 테스트
- 블랙박스 테스트 ? 소프트웨어 검사 방법 중 하나로 어떤 소프트웨어를 내부 구조나 작동 원리를 모르는 상태에서 소프트웨어의 동작을 검사하는 방법
- 동등분할 테스트 : 입력 데이터의 영역을 유사한 도메인별로 유효 값/ 무효 값을 그룹핑하여 대푯값 테스트 케이스를 도출하여 테스트하는 기법
- 경곗값 분석 테스트 : 등가 분할 후 경곗값 부분에서 오류 발생 확률이 높기 때문에 경곗값을 포함하여 테스트 케이스를 설계하여 테스트하는 기법
- 결정 테이블 테스트 : 요구사항의 논리와 발생 조건을 테이블 형태로 나열하여 조건과 행위를 모두 조합하여 테스트하는 기법
- 상태 전이 테스트 : 테스트 대상, 시스템이나 객체의 상태를 구분하고 이벤트에 의해 어느 한 상태에서 다른 상태로 전이되는 경우의 수를 수행하는 테스트 기법
- 유스케이스 테스트 : 시스템이 실제 사용되는 유스케이스로 모델링 되어있을 때 프로세스 흐름을 기반으로 테스트 케이스를 명세화하여 수행하는 테스트 기법
- 분류 트리 테스트 : SW의 일부 또는 전체를 트리 구조로 분석 및 표현하여 테스트 케이스를 설계하여 테스트하는 기법
- 페어와이즈 테스트 : 테스트 데이터값 간에 최소한 한번씩 조합하는 방식
- 원인-결과 그래프 테스트 : 그래프를 활용하여 입력 데이터 간의 관계 및 출력에 미치는 영향을 분석하여 효용성이 높은 테스트 케이스를 선정하여 테스트하는 기법
- 비교 테스트 : 여러 버전의 프로그램에 같은 입력값을 넣어서 동일한 결과 데이터가 나오는지 비교해 보는 테스트 기법
EAI의 구축 유형
- EAI(Enterprise Application Integration) ? 기업 응용 프로그램의 구조적 통합 방안
- 포인트 투 포인트 : 가장 기초적인 애플리케이션 통합방법으로 1:1 단순 통합방법
- 허브 앤 스포크 : 단일한 접점의 허브 시스템을 통하여 데이터를 전송하는 중앙 집중식 방식
- 메시지 버스 : 애플리케이션 사이 미들웨어(버스)를 두어 연계하는 미들웨어 통합 방식
- 하이브리드 : 그룹 내부는 허브 앤 스포크 방식을 사용하고, 그룹 간에는 메세지 버스 방식을 사용하는 통합 방식
IPv4 주소
- 주소체계는 10진수로 총 12자리이며, 네 부분으로 나뉨
- 각 부분은 0~255까지 3자리의 수로 표현
- IPv4 주소는 32bit로 구성되어 있으며, 인터넷 사용자의 증가로 인해 주소 공간의 고갈로 128bit 주소체계를 갖는 IPv6가 등장하고 점점 확산
IPv6 주소
- IPv4의 기존 32bit 주소 공간에서 벗어나, IPv6는 128bit 주소 공간을 제공하고, IPv6는 네트워크의 물리적 위치에 제한받지 않고 같은 주소를 유지
디자인 패턴의 유형 목적
- 생성 : 객체 인스턴스 생성에 관여, 클래스 정의와 객체 생성 방식을 구조화, 캡슐화를 수행하는 패턴
- 구조 : 더 큰 구조 형성 목적으로 클래스나 객체의 조합을 다루는 패턴
- 행위 : 클래스나 객체들이 상호작용하는 방법과 역할 분담을 다루는 패턴 범위
- 클래스 : 클래스 간 관련성 / 컴파일 타임에 정적으로 결정
- 객체 : 객체 간 관련성을 다루는 패턴 / 런타임에 동적으로 결정
네트워크 공격 기법
- 스니핑 : 공격 대상에게 직접 공격하지 않고 데이터만 몰래 들여다보는 수동적 공격 기법
- 네트워크 스캐너, 스피너 : 네트워크 하드웨어 및 소프트웨어 구성의 취약점 파악을 위해 공격자가 취약점을 탐색하는 공격 도구
- 패스워드 크래킹 : 사전 크래킹 공격, 무차별 크래킹 공격, 패스워드 하이브리드 공격, 레인보우 테이블 공격 활용
- IP 스푸핑 : 침입자가 인증된 컴퓨팅 시스템인 것처럼 속여서 타깃 시스템의 정보를 빼내기 위해서 본인의 패킷 헤더를 인증된 호스트의 IP 어드레스로 위조하여 타깃에 전송하는 공격기법
- ARP 스푸핑 : 공격자가 특정 호스트의 MAC 주소를 자신의 MAC 주소로 위조한 ARP Reply를 만들어 희생자에게 지속적으로 전송하여 희생자의 ARP Cache Table에 특정 호스트의 MAC 정보를 공격자의 MAC 정보로 변경, 희생자로부터 특정 호스트로 나가는 패킷을 공격자가 스니핑하는 공격 기법
- ICMP Redirect 공격 : 3계층에서 스니핑 시스템을 네트워크에 존재하는 또 다른 라우터라고 알림으로써 패킷의 흐름을 바꾸는 공격 기법
- 트로이 목마 : 악성 루틴이 숨어 있는 프로그램으로 겉보기에는 정상적인 프로그램으로 보이지만 실행하면 악성 코드를 실행하는 프로그램
NAT 유형
- NAT(Network Address Transformation) ? 보통 사설 네트워크에 속한 여러 개의 호스트가 하나의 공인 IP 주소를 사용하여 인터넷에 접속하기 위하여 사용
- Static NAT : 사설 IP주소와 공인 IP주소가 1:1로 연결되는 구성
- Dynamic NAT : 사설 IP와 공인 IP주소가 N:1 또는 N:M으로 연결되는 구성
블록체인 합의 알고리즘
- 블록체인 ? 분산 컴퓨팅 기술 기반의 데이터 위변조 방지 기술로 P2P 방식을 기반으로 소규모 데이터들이 연결되어 형성된 '블록'이라는 분산 데이터 저장 환경에 관리 대상을 데이터를 저장함으로써 누구도 임의로 수정할 수 없고 누구나 변경의 결과를 열람할 수 없게끔 만드는 기술
- PoW (Proof of Work) : 확률적으로 해답이 어려운 문제를 가장 빨리 해결한 사람에게 블록을 만들 수 있도록 허가
- PoS (Proof of Stake) : 이더러움이 채택한 알고리즘으로 화폐량을 더 많이 소유하고 있는 승인자가 우선하여 블록을 생성할 수 있는 알고리즘
하둡의 구성
- 하둡(Hadoop) ? 오픈 소스를 기반으로 한 분산 컴퓨팅 플랫폼으로, 일반 PC급 컴퓨터들로 가상화된 대형 스토리지를 형성하고 그 안에 보관된 거대한 데이터 세트를 병렬로 처리할 수 있도록 개발된 자바 소프트웨어 프레임워크로 구글, 야후 등에 적용한 기술
- 하둡 분산 파일 시스템 (HDFS) : 대용량 파일을 분산된 서버에 저장하고 그 저장된 데이터를 빠르게 처리할 수 있게 하는 시스템
- 맵리듀스 (Map Reduce) : 대용량 데이터 세트를 분산 병렬 컴퓨팅에서 처리하거나 생성하기 위한 목적으로 만들어진 소프트웨어 프레임워크
데이터베이스 이상 현상
- 데이터 베이스 이상현상 ? 갱신/삽입/삭제하였을 때 그 속성의 다른 속성값들과의 불일치가 발생하는 현상
- 삽입 이상 : 정보 저장 시 해당 정보의 불필요한 세부정보를 입력해야 하는 경우
- 삭제 이상 : 정보 삭제 시 원치 않는 다른 정보가 같이 삭제되는 경우
- 갱신 이상 : 중복 데이터 중에서 특정 부분만 수정되어 중복된 값이 모순을 일으키는 경우
프로세스 상태 전이
- 생성 상태 : 사용자에 의해 프로세스가 생성된 상태
- 준비 상태 : CPU를 할당받을 수 있는 상태
- 살행 상태 : 프로세스가 CPU를 할당받아 동작 중인 상태
- 대기 상태 : 프로세스 실행 중 입출력 처리 등으로 인해 CPU를 양도하고 입출력 처리가 완료까지 대기 리스트에서 기다리는 상태
- 완료 상태 : 프로세스가 CPU를 할당받아 주어진 시간 내에 완전히 수행을 종료한 상태
테스트 오라클 유형
- 결과가 참인지 거짓인지 판단하기 위해서 사전에 정의된 참 값을 입력하여 비교하는 기법
- 참 오라클 : 모든 입력값에 대하여 기대하는 결과를 생성함으로써 발행된 오류를 모두 검출할 수 있는 오라클
- 샘플링 오라클 : 특정한 몇 개의 입력값에 대해서만 기대하는 결과를 제공해주는 오라클
- 휴리스틱 오라클 : 샘플링 오라클을 개선한 오라클로, 특정 입력값에 대해 올바른 결과를 제공하고, 나머지 값들에 대해서는 휴리스틱(추정)으로 처리하는 오라클
- 일관성 검사 오라클 : 애플리케이션 변경이 있을 때, 수행 전과 후의 결과값이 동일한지 확인하는 오라클
네트워크 계층(3계층) 프로토콜 종류
- IP (Internet Protocol) : 송수신 간의 패킷 단위로 데이터를 교환하는 네트워크에서 정보를 주고받는 데 사용하는 통신 프로토콜
- ARP (Address Resolution Protocol) : IP 네트워크상에서 IP 주소를 MAC 주소(물리 주소)로 변환하는 프로토콜
- RARP (Reverse Address Resolution Protocol) : IP 호스트가 자신의 물리 네트워크 주소(MAC)는 알지만 IP주소를 모르는 경우, 서버로부터 IP 주소를 요청하기 위해 사용하는 프로토콜
- ICMP (Internet Control Message Protocol) : IP 패킷을 처리할 때 발생하는 문제를 알려주는 프로토콜 메세지 형식은 8bit 헤더와 가변 길이의 데이터 영역으로 분리
- IGMP (Internet Group Management Protocol) : 인터넷 그룹 관리 프로토콜은 호스트 컴퓨터와 인접 라우터가 멀캐스트 그룹 멤버십을 구성하는데 사용하는 통신 프로토콜
- 라우팅 프로토콜 (Routing Protocol) : 데이터 전송을 위해 목적지까지 갈 수 있는 여러 경로 중 최적의 경로를 설정해 주는 라우터 간의 상호 통신 프로토콜
DB 설계 절차 요구사항 분석 -> 개념적 설계(E-R다이어그램) -> 논리적 설계(정규화과정) -> 물리적 설계 -> 구현 (SQL문 실행)
테스트 레벨 종류
- 단위 테스트 - 사용자 요구사항에 대한 단위 모듈, 서브루틴 등을 테스트하는 단계 (개발)
- 통합 테스트 - 단위 테스트를 통과한 모듈 사이의 인터페이스, 통합된 컴포넌트 간의 상호작용을 검증하는 테스트 단계 (설계)
- 시스템 테스트 - 통합된 단위 시스템의 기능이 시스템에서 정상적으로 수행되는지를 검증하는 테스트 단계 (기계 명세 분석)
- 인수 테스트 - 계약상의 요구사항이 만족하였는지 확인하기 위한 테스트 단계 (요구사항 분석)
- 알파 테스트 - 선택된 사용자가 개발자 환경에서 통제된 상태로 개발자와 함께 수행하는 인수 테스트
- 베타 테스트 - 실제 환경에서 일정 수의 사용자에게 대상 소프트웨어를 사용하게 하고 피드백을 받는 인수 테스트
- 회귀 테스트 - 회귀 테스트는 오류를 제거하거나 수정한 시스템에서 오류 제거와 수정 때문에 새로이 유입된 오류가 없는지 확인하는 일종의 반복 테스트 기법
IPC 기법
- IPC(Inter-Process Communication) ? 프로세스 간 통신 기술
- 메시지 큐 - 메시지 단위로 동작하여 프로세스 간 통신함
- 공유메모리 - 한 프로세스의 일부분을 다른 프로세스와 공유
- 소켓 - 클라이언트와 서버 프로세스 둘 사이에 통신을 가능하게 함
- 세마포어 - 프로세스 사이의 동기를 맞추는 기능을 제공함
데이터 모델 구성 요소
- 연산 - 데이터베이스에서 저장된 실제 데이터를 처리하는 작업에 대한 명세
- 구조 - 논리적으로 표현된 개체 타입 간의 관계
- 제약조건 - 데이터베이스에 저장될 수 있는 실제 데이터의 논리적인 제약조건
서버 접근통제 유형
- 임의적 접근통제(DAC:Discretionary Access Control) - 시스템에 대한 접근을 사용자/그룹의 신분 기반으로 제한하는 방법
- 강제적 접근통제(MAC:Mandatory Access Control) - 시스템 정보의 허용등급을 기준으로 사용자가 갖는 접근 허가 권한에 근거하여 시스템에 대한 접근을 제한하는 방법
- 역할 기반 접근통제 (RBAC:Role Based Access Control) - 중앙 관리자가 사용자와 시스템의 상호관계를 통제하며 조직 내 맡은 역할에 기초하여 자원에 대한 접근을 제한하는 방법
정보처리기사 실기 개념 요약본
프로토콜의 3요소 - 구문 / 의미 / 타이밍
선점형 스케줄링 알고리즘 유형 - 라운드 로빈 / SRT / 다단계 큐 / 다단계 피드백 큐
비선점형 스케줄링 알고리즘의 유형 - 우선순위 / 기한부 / FCFS / SJF / HRN
트랜잭션 특성 - 원자성 / 일관성 / 격리성 / 영속성
해시 암호화 알고리즘의 종류 - MD5 / SHA-1 / SHA-256 / HAS-160
결합도 유형 순서(품질낮음에서 높음으로) - 내용 > 공통 > 외부 > 제어 > 스템프 > 자료
응집도 유형 순서(품질낮음에서 높음으로) - 우연적 > 논리적 > 시간적 > 절차적 > 통신적 > 순차적 > 기능적
반정규화의 주요 기법 - 테이블 병합 / 테이블 분할 / 중복 테이블 추가 / 컬럼 중복화 /중복 관계 추가
OSI 7계층의 특징 - 응용 계층 / 표현 계층 / 세션 계층 / 전송 계층 / 네트워크 계층 / 데이터링크 계층 / 물리 계층
애플리케이션 성능 측정 지표 - 처리량 / 응답 시간 / 경과 시간 / 자원 사용률
비즈니스 연속성 계획(BCP)의 주요 용어 - BIA / RTO / RPO / DRP / DRS
소프트웨어 개발방법론 종류 - 구조적 방법론 / 정보공학 방법론 / 객체지향 방법론 / 컴포넌트 기반 방법론 / 애자일 방법론 / 제품 계열 방법론
TCL(트랜잭션 제어언어) 명령어 - 커밋 / 롤백 / 체크 포인트
IPSec(IP 계층(3계층)에서 인증,기밀성 보장하는 IP보안 프로토콜) 의 주요 프로토콜 - 인증(AH) 프로토콜 / 암호화(ESP) 프로토콜 / 키(KEY) 관리 프로토콜
디자인패턴
디자인 패턴 중 행위 패턴 - Mediator / Interpreter / Iterator / Template Method / Observer / State / Visitor / Command / Strategy / Memento / Chain of Responsibility
디자인 패턴 중 구조 패턴 - Bridge / Decorator / Facade / Flyweight / Proxy / Composite / Adapter
안드로이드 특징 - 리눅스 기반 / 자바와 코틀린 언어 / 런타임 라이브러리 / 안드로이드 소프트웨어 개발 키드 (SDK)
입력 데이터 검증 및 표현에 대한 취약점 - XSS / 사이트 간 요청 위조 / SQL 삽입(Injection)
UI 설계 원칙 - 직관성 / 유효성 / 학습성 / 유연성
UI 품질 요구 사항 - 신뢰성 / 성숙성 / 고장 허용성 / 회복성
데이터 모델링의 절차 - 개념적 데이터 모델 / 논리적 데이터 모델 / 물리적 데이터 모델
형상관리 - 형상 식별 / 형상 통제 / 형상 감사 / 형상 기록
리팩토링의 목적 - 유지보수성 향상 / 유연한 시스템 / 생산성 향상 / 품질 향상
OSPF의 특징 - 다익스트라 알고리즘 사용 / 라우팅 메트릭 지정 / AS 분할 사용 / 홉 카운트 무제한
순수 관계 연산자 - 셀렉트(σ) / 프로젝트(π) / 조인(⋈) / 디비전(÷)
식별자 표기법 - 카멜 표기법 / 파스칼 표기법 / 스네이크 표기법 / 헝가리안 표기법
블랙박스/화이트박스
- 블랙박스 테스트 유형 - 동등분할 테스트 / 경곗값 분석 테스트 / 결정 테이블 테스트 / 상태 전이 테스트 / 유스케이스 / 분류 트리 테스트 / 페어와이즈 테스트 / 원인-결과 그래프 테스트 / 비교 테스트
- 화이트박스 테스트 유형 - 구문 커버리지 / 결정 커버리지 / 조건 커버리지 / 조건/결정 커버리지 / 변경 조건/결정 커버리지 / 다중 조건 커버리지 / 기본 경로 커버리지 / 제어 흐름 테스트 / 데이터 흐름 테스트
- EAI의 구축 유형 - 포인트 투 포인트 / 허브 앤 스포크 / 메시지 버스 / 하이브리드
- EAI 구성요소 - EAI플랫폼 / 어댑터 /브로커 /메시지 큐 / 비즈니스 워크플로우
- 디자인 패턴의 유형 - 목적(생성,구조,행위) / 범위(클래스,객체)
- 회복 기법의 종류 - 로그 기반 회복 기법(지연 갱신 회복 기법, 즉각 갱신 회복 기법) / 체크 포인트 회복 기법 / 그림자 페이징 회복 기법
- 네트워크 공격 기법 - 스니핑 / 네트워크 스캐너, 스니퍼 / 패스워드 크래킹 / IP 스푸핑 / ARP 스푸핑 / ICMP Redirect 공격 / 트로이 목마 -NAT 유형 - Static NAT / Dynamic NAT
- 블록체인 합의 알고리즘 - PoW (Proof of Work) / Pos (Proof of Stake)
- 하둡의 종류 - 하둡 분산 파일 시스템 / 맵리듀스
- 데이터베이스 이상 현상 - 삽입 이상/ 삭제 이상/ 갱신 이상
- 프로세스 상태 전이 - 생성 상태 / 준비 상태 / 실행 상태 / 대기 상태 / 완료 상태
- 테스트 오라클의 유형 - 참 오라클 / 샘플링 오라클 / 휴리스틱 오라클 / 일관성 검사 오라클
- SW 개발 보안의 3대 요소 - 기밀성 / 무결성 / 가용성
- 네트워크 계층(3계층) 프로토콜 유형 - IP / ARP / RARP / ICMP / IGMP / 라우팅 프로토콜
- DB 설계 절차 - 요구사항 분석 / 개념적 설계 / 논리적 설계 / 물리적 설계 / 구현
- 요구사항의 분류 - 개념 / 도출 방법 / 특성 / 사례
- 인수 테스트 종류 - 단위 테스트 / 통합 테스트 / 시스템 테스트 / 인수 테스트 / 알파 테스트 / 베타 테스트 / 회귀 테스트
- IPC 기법 - 메시지 큐 / 공유메모리 / 소켓 / 세마포어
- 데이터 모델 구성요소 - 연산 / 구조 / 제약조건
- 서버 접근통제 유형 - 임의적 접근통제 / 강제적 접근통제 / 역할 기반 접근통제
- 리뷰의 유형 - 관리 리뷰 / 기술 리뷰 / 동료 검토 / 워크 스루 / 인스펙션 데이터베이스 정규화 단계 1정규형(1NF) : 원잣값으로 구성 2정규형(2NF) : 부분 함수 종속 제거(완전 함수적 종속 관계) 3정규형(3NF) : 이행함수 종속 제거 보이스-코드 정규형(BCNF) : 결정자 함수이면서 후보 키가 아닌 것 제거 4정규형(4NF) : 다치(다중 값) 종속성 제거 5정규형(5NF) : 조인 종속성 제거
패키징 도구 구성 암호화 : 공개키 구조기반 / 대칭 및 비대칭 암호화 / 전자서명 식별기술 : DOI / URI 저작권 표현 : XrML / MPEG-21 암호화 파일 생성 : Pre-packaging / On-the-fly Packaging 정책관리 : XML / CMS 크랙 방지 : 코드 난독화 / Secure DB 인증 : SSO
보안 관련 용어 - 이블 트윈 공격 / 난독화 / 랜섬웨어 / 사이버 킬체인
데이터베이스 장애 유형 - 실행 장애 / 트랜잭션 장애 / 시스템 장애 / 미디어 장애
CMMI 단계적 표현 - 초기화 단계 > 관리 단계 > 정의 단계 > 정량적 관리 단계 > 최적화 단계
소프트웨어 공학의 원칙과 관련된 법칙 - 브록스의 법칙 / 파레토 법칙 / 롱테일 법칙
암호화 알고리즘 대칭 키 암호화 알고리즘 : AIA 128/192/256, SEED 비대칭 키 암호화 알고리즘 : RSA, ECC, ECDSA 해시 암호화 알고리즘 : SHA-256/384/512, HAS-160
배치 프로그램의 유형 - 이벤트 배치 / 온디맨드 배치 / 정기 배치
주요 시스템 보안 공격 - 포맷 스트링 공격 / 레이스 컨디션 공격 / 키로거 공격 / 루트킷
트랜잭션의 상태 변화 - 활동 상태 / 부분 완료 상태 /완료 상태 / 실패 상태 / 철회 상태
테이블 구성요소 - 릴레이션 / 튜플 / 속성 / 카디널리티 / 차수
파티션의 종류 - 범위 분할 / 해시 분할 / 목록 분할 / 조합 분할
데이터베이스의 특징 - 통합된 데이터 / 저장된 데이터 / 운영 데이터 / 공용 데이터
DROP TABLE 명령어 옵션 - CASCADE / RESTRICT
다차원 베이터베이스 관련 용어 - MOLAP / HOLAP / OLAP / ROLAP
배드코드의 사례 - 외계인코드 / 스파게티 코드 / 알수없는 변수명 / 로직 중복
사용자 요구사항 도출 세부 활동 - 페르소나 정의 / 콘셉트 모델 정의 / 사용자 요구사항 정의 / UI 컨셉션
프로세스의 교착상태 - 교착상태 / 상호배제 / 점유와 대기
원거리 통신망 연결 기술 - 전용 회선 방식 / 회선 교환 방식 / 패킷 교환 방식
소프트웨어 개발 보안의 주요 용어 - 자산 / 위협 / 취약점 / 위험
성능 테스트의 유형 - 부하 테스트 / 스트레스 테스트 / 스파이크 테스트 / 내구성 테스트
UI 품질 요구사항 - 이식성 / 적용성 / 설치성 / 대체성
모듈화의 주요 기법 - 루틴 / 메인 루틴 / 서브 루틴
전송 계층의 프로토콜 - TCP / UDP
키의 종류 - 기본 키 / 대체 키 / 후보 키 / 슈퍼 키 / 외래 키
무선보안의 주요 용어 - SSID / WPA
UI 개발을 위한 주요 기법 - 3C 분석 / SWOT 분석 / 시나리오 플래닝 / 사용성 테스트 / 워크숍
UML의 구성요소 - 사물 / 관계 / 다이어그램
피싱의 주요 용어 - 파밍 / 스미싱 / 큐싱 / 시피어 피싱
다중화의 종류 - 시간 분할 다중화 /주파수 분할 다중화 / 코드 분할 다중화
DSR 유형 - Mirror site / Hot Site / Warm Site / Cold Site
소프트웨어 생명주기 모델 - 폭포수 모델 / 프로토타이핑 모델 / 나선형 모델 / 반복적 모델
논리적 데이터 모델링 종류 - 관계 데이터 모델 / 계층 데이터 모델 / 네트워크 데이터 모델
유스케이스 다이어그램 주요 구성 요소 - 유스케이스 / 액터 / 시스템
테스트 목적에 따른 분류 - 회복 테스트 / 안전 테스트 / 성능 테스트 / 구조 테스트 / 회귀테스트 / 병행 테스트
데이터 링크 계층 기법 - 회선 제어 / 흐름 제어 / 오류 제어
23 1회 기출문제
4 ( )은/는 비동기적인 웹 애플리케이션의 제작을 위해 JavaScript와 XML을 이용한 비동기적 정보 교환 기법이다.
( )은/는 필요한 데이터만을 웹서버에 요청해서 받은 후 클라이언트에서 데이터에 대한 처리를 할 수 있다. 보통 SOAP이나 XML 기반의 웹 서비스 프로토콜이 사용되며, 웹 서버의 응답을 처리하기 위해 클라이언트 쪽에서는 자바스크립트를 쓴다.
( )은/는 Google Map과 Google pages에서 사용한 기술에 기반하여 제작되었다.
5
- 가상회선
- 데이터그램
6
- L2TP
7
- SSH(Secure SHell)
8 (1) 웜 (2) 트로이 목마 (3) 바이러스
9
23/1회 기출
네이버웍스 , 구글워크스페이스, 플로우 상품 비교 정리