오타가 있을 수 있습니다...
시험에 자주 나오는 개념들을 정리해 보았습니다!
기출경향
기출경향은 문제 번호 - 문제 유형으로 표기하였습니다.
또한, 프로그래밍 언어는 따로 유형을 표기 하지 않고, 문제 번호만 작성하였습니다.
목차 | 2020-1 | 개수 | 2020-2 | 개수 |
1. 요구사항 확인 | 16-LOC모형 | 1 | 4- 애자일 방법론 10- 디자인 패턴 | 2 |
2. 화면 설계 | 16- UI설계원칙 | 1 | ||
3. 데이터 입출력 구현 | 17- 반정규화 | 1 | 18- 데이터모델절차 | 1 |
4. 통합구현 | 13 - SOAP | 1 | ||
5. 인터페이스 구현 | 4- XML 5- JSON | 2 | 3- AJAX | 1 |
6. 프로그래밍 언어 활용 | ||||
JAVA | 13, 14 | 2 | 5 | 1 |
C | 12 | 1 | 19 | 1 |
Python | 2 | 1 | ||
7. SQL | 6 | 1 | 6, 12 | 2 |
7-1. SQL개념 | 8- 트랜잭션의 특성 | 1 | 7- 트랜잭션 제어 | 1 |
8. 서버 프로그램 구현 | 11- 공통 모듈 구현 개념 20- Fanin-Fanout | 2 | 20- 형상관리 | 2 |
9. 소프트웨어 개발 보안 구축 | 9- Dos공격의 종류 10- 해시 암호화 알고리즘 | 2 | 1- 비즈니스 연속성 8- 데이터 암호화전송 14- SQL Injection | 3 |
10. 애플리케이션 테스트 관리 | 1- 소프트웨어 테스트 원리 19- 애플리케이션 성능 측정 지표 | 2 | 9- 정적 분석 도구 | 1 |
11. 응용 SW기초 기술 활용 | 2- DB관련 신기술용어 3- 프로토콜 기본 3요소 7- HRN 18- OSI7계층 | 4 | 11- 안드로이드 15- chmod | 2 |
12. 제품 소프트웨어 패키징 | 15- 릴리스 노트 항목 | 1 | ||
? (책에 안나옴) | 17- LOD | 1 |
목차 | 2020-3 | 개수 | 2020-4 | 개수 |
1. 요구사항 확인 | 2- 디자인 패턴 | 1 | ||
2. 화면 설계 | 16- UI설계원칙 | 1 | 3- 패키지 다이어그램 | 1 |
3. 데이터 입출력 구현 | 10- 관계대수 | 1 | 12- 이상현상 | 1 |
4. 통합구현 | ||||
5. 인터페이스 구현 | 18- 모듈 연계방법 | 1 | ||
6. 프로그래밍 언어 활용 | 11- 식별자 표기법 19- 생성자 | 2 | ||
JAVA | 15, 17 | 2 | 5, 6, 19 | 3 |
C | 2, 13 | 2 | 18 | 1 |
Python | 9 | 1 | ||
7. SQL | 8, 9, 20 | 3 | 16 | 1 |
7-1. SQL개념 | 14- 스키마 | 1 | 4- 회복기법 | 1 |
8. 서버 프로그램 구현 | 4- 형상관리 | 1 | ||
9. 소프트웨어 개발 보안 구축 | 7- 스니핑 20 - SW개발의 3대요소 | 2 | ||
10. 애플리케이션 테스트 관리 | 1- 리팩토링 7- 화이트박스 테스트 12- 블랙박스 테스트 | 3 | 14- 테스트 오라클 15- 블랙박스 테스트 | 2 |
11. 응용 SW기초 기술 활용 | 3- OSPF 5- 프로토콜 6- ICMP | 3 | 1- IPv6 10- 소프트웨어관련 신기술 용어 11- 소프트웨어관련 신기술 용어 13- 프로세스 상태 17- 유닉스 | 5 |
12. 제품 소프트웨어 패키징 | ||||
? (책에 안나옴) | 8 | 1 |
목차 | 2021-1 | 개수 | 2021-2 | 개수 |
1. 요구사항 확인 | 3- 요구사항 | 1 | 13- 디자인 패턴 15- 럼바우 데이터 모델링 | 2 |
2. 화면 설계 | 2- UI개념 | 1 | ||
3. 데이터 입출력 구현 | 8- 반정규화 14- 관계 데이터 모델(차수 등) 16- 데이터 모델 표시 요소 | 3 | 4 - 정규화의 단계 | 1 |
4. 통합구현 | 4- 웹 서비스 유형(WSDL) 12- IPC | 2 | ||
5. 인터페이스 구현 | 5- 외/내부 모듈 연계(EAI) | 1 | ||
6. 프로그래밍 언어 활용 | ||||
JAVA | 7, 17 | 2 | 17, 19 | 2 |
C | 15 | 1 | 16, 18 | 2 |
Python | 5 | 1 | 7 | 1 |
7. SQL | 6 | 1 | 5, 6, 10 | 3 |
7-1. SQL개념 | 2- 데이터 모델 설계 절차 | 1 | 3- 트랜잭션의 특성 14- 병행 제어 기법 | 2 |
8. 서버 프로그램 구현 | 19- 결합도 | 1 | 11- 응집도 | 1 |
9. 소프트웨어 개발 보안 구축 | 18 - 서버 접근 통제 유형 20- 세션 하이재킹 | 2 | 8- 대칭키 암호화 알고리즘 | 1 |
10. 애플리케이션 테스트 관리 | 9- 블랙박스 테스트 10- 테스트 레벨의 종류 | 2 | 9- 화이트 박스 테스트 20- 하향식 통합 | 2 |
11. 응용 SW기초 기술 활용 | 1-RARP 11- IPv6 | 2 | 1- 애드 훅 네트워크 12- 패킷 교환 방식 | 2 |
12. 제품 소프트웨어 패키징 | ||||
? (책에 안나옴) |
목차 | 2021-3 | 개수 | 2022-1 | 개수 |
1. 요구사항 확인 | 7- 객체 지향 기법 16- 디자인 패턴 | 2 | ||
2. 화면 설계 | 15- 클래스 다이어그램 19- UI유형 | 2 | 9- UI유형 | 1 |
3. 데이터 입출력 구현 | 5- 이상현상 17- 키의 종류 | 2 | ||
4. 통합구현 | ||||
5. 인터페이스 구현 | ||||
6. 프로그래밍 언어 활용 | ||||
JAVA | 1, 11 | 2 | 3, 11 | 2 |
C | 12, 17 | 2 | 14, 15, 19 | 3 |
Python | 14 | 1 | 6, 7 | 2 |
7. SQL | 13 | 1 | 4 | 1 |
7-1. SQL개념 | 3- GRANT 18- 인덱스 | 2 | 2- 회복기법 종류 | 1 |
8. 서버 프로그램 구현 | 5- 결합도 | 1 | 12- 공통모듈테스트종류 | 1 |
9. 소프트웨어 개발 보안 구축 | 2- 3A 4- ARP스푸핑 10- 대칭키 암호화 알고리즘 20- 상향식 통합 | 4 | 8- 보안공격대응 관련 용어 16 - 보안공격대응관련용어 18- 보안 관련 용어 | 3 |
10. 애플리케이션 테스트 관리 | 8- 테스트 케이스 필요 항목 9- 블랙박스 테스트 | 2 | 10- 정적 테스트 13- 블랙박스테스트 20- 테스트 레벨의 종류 | 3 |
11. 응용 SW기초 기술 활용 | 6- OSI7계층 | 1 | 1- RAID | 1 |
12. 제품 소프트웨어 패키징 | ||||
? (책에 안나옴) |
목차 | 2022-2 | 개수 | 2022-3 | 개수 |
1. 요구사항 확인 | 6- 객체 지향 설계 원칙 | 1 | 3- 디자인 패턴 | 1 |
2. 화면 설계 | 17- uml다이어그램 | 1 | ||
3. 데이터 입출력 구현 | 1- 관계해석 18- 함수 종속 | 2 | 2- 관계대수 18- 개체 관계 다이어그램 | 2 |
4. 통합구현 | 19- 웹 서비스 관련 용어 | 1 | ||
5. 인터페이스 구현 | ||||
6. 프로그래밍 언어 활용 | ||||
JAVA | 7, 17 | 2 | 4, 19, 20 | 3 |
C | 8, 15, 16 | 3 | 1, 13 | 2 |
Python | 13 | 1 | 9 | 1 |
7. SQL | 3, 4, 12 | 3 | 7, 12 | 2 |
7-1. SQL개념 | ||||
8. 서버 프로그램 구현 | 20- 팬인, 팬아웃 | 1 | 11- 형상관리 도구 유형 | 1 |
9. 소프트웨어 개발 보안 구축 | 2- 대칭키 암호화 알고리즘 5- 네트워크 보안 솔루션 | 2 | 10- 네트워크 보안 솔루션 14- 보안 관련 용어 15- 인증 관련 기술 | 3 |
10. 애플리케이션 테스트 관리 | 10- 테스트 레벨의 종류 11- 테스트 목적에 따른 분류 | 2 | 6- 블랙박스 테스트 | 1 |
11. 응용 SW기초 기술 활용 | 9- 서브넷 마스크 14- 라우팅 프로토콜(3계층) | 2 | 5- 서브네팅 8- 신기술 용어 (9단원 포함) 16- 프로세스 스케줄링 | 3 |
12. 제품 소프트웨어 패키징 | ||||
? (책에 안나옴) |
목차 | 2023-1 | 개수 | 2023-2 | 개수 |
1. 요구사항 확인 | 11- 디자인 패턴 | 1 | 11- 디자인 패턴 | 1 |
2. 화면 설계 | ||||
3. 데이터 입출력 구현 | 12- 관계 데이터 모델 | 1 | 10- 데이터 모델 절차 | 1 |
4. 통합구현 | ||||
5. 인터페이스 구현 | 4- AJAX | 1 | ||
6. 프로그래밍 언어 활용 | ||||
JAVA | 1, 14, 17, 20 | 4 | 2, 14 | 2 |
C | 2, 3, 9 | 3 | 1, 3, 5, 7, 9, 18 | 6 |
Python | 15 | 1 | 19 | 1 |
7. SQL | 13, 16 | 2 | 4 | 1 |
7-1. SQL개념 | 18- DDL의 대상 | 1 | 17- CASCADE | 1 |
8. 서버 프로그램 구현 | ||||
9. 소프트웨어 개발 보안 구축 | 8- 보안 관련 용어 | 1 | 15- 암호 알고리즘 16- 해시(일방향 암호) | 2 |
10. 애플리케이션 테스트 관리 | 19- 화이트 박스 테스트 | 1 | 6- 화이트박스테스트 20- 통합 테스트 | 2 |
11. 응용 SW기초 기술 활용 | 5- 패킷교환방식 7- 응용계층 프로토콜 10- ICMP | 3 | 12- 데이터 링크 계층 13- 데이터 링크 프로토콜 | 2 |
12. 제품 소프트웨어 패키징 | ||||
? (책에 안나옴) | 6- L2TP | 1 | 8- 템퍼프루핑 | 1 |
현재 기출 경향은 아마도 코딩문제가 많이 나오는 추세이다.
따라서 코딩을 공부 해야하는데 요즘은 예전처럼 간단하게가 아닌, 복잡하고 심도있는 질문을 많이 하는 추세이다...
또한 SQL은 무조건 1문제 이상은 나오니깐 맞춰야 한다.
2023년 2회는 코딩이 무려 9문제, sql까지 10문제가 출제되었다.
반정도가 코딩과 sql이니, 꼭 다 맞추고 들어가야 합격률을 높일 수 있다.
표로 구성된 아이들
00. 디자인 패턴
드래그 하면 글자가 나옵니다.
생성
Builder 조립 | Prototype 원형 복사 | Factory Method 상위 클래스에서 객체 생성 하위 클래스에서 인스턴스 생성 | Abstract Factory 구체적인 클래스 의존X | Singletone 객체 하나 생성 |
구조
Bridge 연결 | Decorator 장식추가 | Facade 단순한 인터페이스 | Flyweight 클래스 경량화 | Proxy 대리객체, | Composite 부분 - 전체 | Adepter 중간 역할 |
행위
Observer 상태 변경 -> 다른 객체 연락 | Mediator 중재자 | Visitor 클래스를 돌아다님 | Strategy 캡슐화 된 클래스 필요시 교환 |
키워드를 이용해 외우기!
아래의 더보기를 누르면 정답이 나옵니다.
생성
Builder 조립 | Prototype 원형 복사 | Factory Method 상위 클래스에서 객체 생성 하위 클래스에서 인스턴스 생성 | Abstract Factory 구체적인 클래스 의존X | Singletone 객체 하나 생성 |
구조
Bridge 연결 | Decorator 장식추가 | Facade 단순한 인터페이스 | Flyweight 클래스 경량화 | Proxy 대리객체, | Composite 부분 - 전체 | Adepter 중간 역할 |
행위
Observer 상태 변경 -> 다른 객체 연락 | Mediator 중재자 | Visitor 클래스를 돌아다님 | Strategy 캡슐화 된 클래스 필요시 교환 |
01. 테스트들!
화이트박스 테스트
구문 커버리지 | 모든 명령문을 적어도 한번 수행 (=문장 커버리지, Statement) |
결정 커버리지 | 전체 조건식이 적어도 한 번은 참과 거짓(선택 커버리지 Decision)(분기 커버리지 Branch) |
조건 커버리지 | 개별 조건식이 적어도 한번은 참과 거짓 |
조건/결정 커버리지 | 전체 조건식뿐만 아니라 개별 조건식도 참 한번 거짓 한번 결과가 되도록 수행 조건 + 결정 |
변경 조건/결정 커버리지 | 개별조건식이 다른 개별 조건식에 영향을 받지 않고, 전체 조건식에 독립적으로 영향을 주도록 조건/결정 커버리지를 향상 시킨 커버리지 |
다중 조건 커버리지 | 결정 조건 내 모든 개별 조건식의 모든 가능한 조합을 100% 보장하는 커버리지 |
기본 경로 커버리지 | 수행 가능한 모든 경로를 테스트 하는 기법 |
제어 흐름 커버리지 | 프로그램 제어 구조를 그래프 형태로 나타내어 내부 로직을 테스트하는 기법 |
데이터 흐름 테스트 | 제어 흐름 그래프에 데이터 사용현황을 추가한 그래프를 통해 테스트 |
루프 테스트 | 반복 구조에 초점을 맞춰 실시하는 테스트 기법 |
블랙박스 테스트
동등분할 테스트 =동치분할테스트, 균등분할 테스트, 동치 클래스 분해 테스트 (Equivalence Partitioning Testing) | 데이터 영역을 유사한 도메인 별로 유효값/ 무효값을 그룹핑하여 대푯값 테스트 케이스를 도출하여 테스트 |
경곗값 분석 테스트 = 한곗값 테스트 (Boundary Value Analysis Testing) | 등가 분할 후 경곗값 부분에서 오류 발생 확률이 높기 때문에 경곗값을 포함하여 테스트 케이스를 설계하여 테스트 하는 기법 |
결정 테이블 테스트 (Decision Table Testing) | 요구사항의 논리와 발생조건을 테이블 형태로 나열하여 조건과 행위를 모두 조합하여 테스트 하는 기법 |
상태전이 테스트 (State Transition Testing) | 테스트 대상/ 시스템이나 객체의 상태를 구분하고, 이벤트에 의해 어느 한 상태에서 다른 상태로 전이되는 경우의 수를 수행 |
유스케이스 테스트 (Use Case Testing) | 실제 사용되는 유스케이스로 모델링 되어 있을 때 프로세스 흐름을 기반으로 테스트 케이스를 명세화 하여 수행하는 테스트 |
분류 트리 테스트 (Classification Tree Method Testing) | SW의 일부 또는 전체를 트리구조로 분석 및 표현하여 테스트 케이스를 설계하여 테스트 하는 기법 |
페어 와이즈 테스트 (Pairwise Testing) | 테스트 데이터 값들 간에 최소한 한 번씩을 조합하는 방식 |
원인-결과 그래프 테스트 (Cause - Effect Graph) | 입력 데이터 간의 관계 및 출력에 미치는 영향을 분석하여 효용성이 높은 테스트 케이스를 선정하여 테스트 |
비교 테스트 (Comparison Testing) | 여러 버전의 프로그램에 같은 입력값을 넣어서 동일한 결과 데이터가 나오는지 비교해보는 테스트 기법 |
오류 추정 테스트 (Error Guessing Testing) | 개발자가 범할 수 있는 실수를 추정하고 이에 따른 결함이 검출되도록 테스트 케이스를 설계하여 테스트하는 기법 |
테스트 오라클
테스트 오라클은 테스트의 결과가 참인지 거짓인지 판단하기 위해서 사전에 정의된 참 값을 입력하여 비교하는 기법
참 오라클 | 모든 입력값에 대하여 기대하는 결과를 생성함으로써 발생하는 오류를 전부 검출 할 수 있는 오라클 |
샘플링 오라클 | 특정한 몇 개의 입력값에 대해서만 기대하는 결과를 제공해 주는 오라클 |
휴리스틱 오라클 | 샘플링 오라클을 개선한 오라클로 특정 입력값에 대해 올바른 결과를 제공하고, 나머지 값들에 대해서는 휴리스틱(추정)으로 처리하는 오라클 |
일관성 검사 오라클 | 애플리케이션 변경이 있을 때, 수행 전과 후의 결과값이 동일한지 확인하는 오라클 |
테스트 레벨의 종류
테스트 레벨은 함께 편성되고 관리되는 테스트 활동의 그룹이다.
종류 | 설명 | 기법 |
단위테스트 | 사용자 요구사항에 대한 단위모듈, 서브루틴 등을 테스트 하는 단계 | 자료구조테스트, 실행경로테스트, 오류 처리 테스트, 인터페이스 테스트 |
통합테스트 | 단위 테스트를 통과한 모듈 사이의 인터페이스, 통합된 컴포넌트 간의 상호 작용을 검증하는 테스트 단계 | 빅뱅 테스트, 샌드위치 테스트, 상향식 테스트, 하향식 테스트 |
시스템 테스트 | 통합된 단위 시스템의 기능이 시스템에서 정상적으로 수행되는지 검증하는 테스트 단계 | 기능/ 비기능 요구사항 테스트 |
인수 테스트 | 계약상의 요구사항이 만족되었는지 확인하기 위한 테스트 단계 | 계약인수, 규정인수, 사용자인수, 운영상의 인수, 알파/베타 테스트 |
테스트 목적에 따른 분류
회복 테스트 Recovery Testing | 시스템에 고의로 실패를 유도하고, 시스템의 정상적 복귀 여부를 테스트하는 기법 |
안전 테스트 Security Testing | 불법적인 소프트웨어가 접근하여 시스템을 파괴하지 못하도록 소스 코드 내의 보안적인 결함을 미리 점검하는 테스트 기법 |
성능 테스트 Performance Testing | 사용자의 이벤트에 시스템이 응답하는 시간, 특정 시간 내에 처리하는 업무량, 사용자 요구에 시스템이 반응하는 속도 등을 측정하는 테스트 기법 |
구조 테스트 Structure Testing | 시스템의 내부 논리 경로, 소스 코드의 복잡도를 평가하는 테스트 기법 |
회귀 테스트 Regression Testing | 회귀 테스트는 오류를 제거하거나 수정한 시스템에서 오류 제거와 수정에 의해 새로이 유입된 오류가 없는지 확인하는 일종의 반복 테스트 기법 |
병행 테스트 Parallel Testing | 변경된 시스템과 기존 시스템에 동일한 데이터를 입력 후 결과를 비교하는 테스트 기법 |
02. 결합도와 응집도
결합도
내용 결합도 (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) | 모든 기능이 단일한 목적을 위해 수행되는 경우의 응집도 |
응집도가 높아질수록 품질이 좋아진다.
우연적(낮음) - 기능적(높음)
공통 모듈을 구현할땐, 결합도는 줄이고 응집도를 높혀야 한다.
03. 프로세스 스케줄링 유형
구분 | 선점형 스케줄링 (Preemptive Scheduling) | 비선점형 스케줄링 (Non Preemptive Scheduling) |
개념 | 하나의 프로세스가 CPU를 차지하고 있을 때, 우선순위가 높은 다른 프로세스가 현재 프로세스를 중단시키고 CPU를 점유하는 스케줄링 방식 | 한 프로세스가 CPU를 할당 받으면 작업종료 후 CPU 반환 시까지 다른 프로세스는 CPU 점유가 불가능한 스케줄링 방식 |
장점 | 비교적 빠른 응답 대화식 시분할 시스템에 적합 | 응답시간 예상 용이 모든 프로세스에 대한 요구를 공정하게 처리 |
단점 | 높은 우선순위 프로세스들이 들어오는 경우 오버헤드 초례 | 짧은 작업을 수행하는 프로세스가 긴 작업 종료 시까지 대기 |
알고리즘 | 라운드로빈(Round Robin) SRT(Shortest Remaining Time First) 다단계 큐(Multi-Level Queue) 다단계 피드백 큐(Multi-Level Feedback Queue) | 우선순위(Priority) 기한부(Deadline) FCFS HRN(High Response Ratio Next) SJF(Shortest Job First) |
활용 | 실시간 응답 환경, Deadline 응답 환경 | 처리시간 편차가 적은 특정 프로세스 환경 |
HRN 스케줄링의 우선순위 계산식 = (대기시간 + 서비스시간) / 서비스시간
선점형 스케줄링 알고리즘 | 라운드 로빈 (RR; Round Robin) | 프로세스는 같은 크기의 CPU시간을 할당, 프로세스가 할당된 시간 내에 처리 완료를 못하면 준비 큐 리스트의 가장 뒤로 보내지고, CPU는 대기 중인 다음 프로세스로 넘어가는 스케줄링 기법 | 균등한 CPU점유시간 시분할 시스템을 사용 |
SRT (Shortest Remaining Time First) | 가장 짧은 시간이 소요되는 프로세스를 먼저 수행, 남은 처리시간이 더 짧다고 판단되는 프로세스가 준비 큐에 생기면 언제라도 프로세스가 선점되는 스케줄링 기법으로 비선점 방식의 스케줄링 기법에 선점 방식을 도입한 기법 | 짧은 수행 시간 프로세스를 우선 수행 | |
다단계 큐 (MLQ; Multi Level Queue) | 작업들을 여러 종류의 그룹으로 분할, 여러 개의 큐를 이용하여 상위 단계 작업에 의한 하위단계 작업이 선점당하는 스케줄링 기법 각 큐는 자신만의 독자적인 스케줄링을 가짐 | 독립된 스케줄링 큐 | |
다단계 피드백 큐 (MLFQ; Mulit Level Feedback Queue) | FCFS(FIFO)와 라운드 로빈 스케줄링 기법을 혼합한 것으로, 새로운 프로세스는 높은 우선순위, 프로세스의 실행시간이 길어질수록 점점 낮은 우선순위 큐로 이동하고 마지막 단계는 라운드 로빈 방식을 적용하는 스케줄링 기법 입출력 위주와 CPU위주인 프로세스의 특성에 따라 큐마다 서로 다른 CPU시간 할당량을 부여 | 큐마다 다른 시간 할당량 마지막 단계는 라운드 로빈 방식 처리 | |
비선점형 스케줄링 알고리즘 | 우선순위 (Priority) | 프로세스별로 우선순위가 주어지고, 우선순위에 따라 CPU를 할당하는 스케줄링 기법 동일 순위는 FCFS | 주요/긴급 프로세스에 대한 우선처리 설정, 자원 상황 등에 따른 우선순위 선정 |
기한부 (Deadline) | 작업들이 명시된 시간이나 기한 내에 완료되도록 계획하는 스케줄링 기법 | 요청에 명시된 시간 내 처리를 보장 | |
FCFS (First Come First Service) | 프로세스가 대기 큐에 도착한 순서에 따라 CPU를 할당하는 스케줄링 기법 FIFO알고리즘이라고도 함 | 도착한 순서대로 처리 | |
SJF (Shortest Job First) | 프로세스가 도착하는 시점에 따라 그 당시 가장 작은 서비스 시간을 갖는 프로세스가 종료 시까지 자원을 점유하는 스케줄링 기법 준비 큐 작업 중 가장 짧은 작업부터 수행, 평균 대기 시간 최소 CPU요구 시간이 긴 작업과 짧은 작업 간의 불평등이 심하여, CPU요구 시간이 긴 프로세스는 기아 현상 발생 | 기아 현상 발생 가능성 | |
HRN (Highest Response Ratio Next) | 대기 중인 프로세스 중 현재 응답률이 가장 높은 것을 선택하는 스케줄링 기법 SJF의 약점인 기아 현상을 보완한 기법으로 긴 작업과 짧은 작업 간의 불평등 완화 HRN의 우선순위 = (대기시간 + 서비스시간) / 서비스시간 | 기아 현상 최소화 기법 |
04. 트랜잭션의 특성
원자성 (Atomicity) | 트랜잭션을 구성하는 연산 전체가 모두 정상적으로 실행되거나 모두 취소되어야 하는 성질 | Commit / Rollback 회복성 보장 |
일관성 (Consistency) | 시스템이 가지고 있는 고정요소는 트랜잭션 수행 전과 트랜잭션 수행 완료 후의 상태가 같아야 하는 성질 | 무결성 제약조건 동시성 제어 |
격리성 = 고립성 (Isolation) | 동시에 실행되는 트랜잭션들이 서로 영향을 미치지 않아야 한다는 성질 | Read Uncommitted Read Committed Repeatable Read Seializable |
영속성 = 지속성 (Durability) | 성공이 완료된 트랜잭션의 결과는 영속적으로 데이터베이스에 저장되어야 하는 성질 | 회복기법 |
ACID (원일격영)
05. OSI 7계층
7 | 응용계층 (Application) | 사용자와 네트워크 간 응용서비스 연결 | HTTP FTP | 데이터 (Data) | 호스트 |
6 | 표현계층 (Presentation) | 데이터 형식 설정, 부호 교환, 암/복호화 | JPEG MPEG | ||
5 | 세션계층 (Session) | 송/수신 간 논리적 연결 연결 접속, 동기 제어 | RPC NetBIOS | ||
4 | 전송계층 (Transport) | 송수신 프로세스 간 연결 데이터 분할, 재조립, 흐름제어, 오류제어, 혼잡제어 | TCP UDP | 세그먼트 (Segment) | L4스위치 |
3 | 네트워크계층 (Network) | 단말기 간 데이터 전송을 위한 최적화된 경로 제공 | IP ICMP | 패킷 (Packet) | 라우터 |
2 | 데이터링크계층 (Data Link) | 인접 시스템 간 데이터 전송, 전송 오류 제어 동기화, 오류제어, 흐름제어, 회선제어 | HDLC PPP | 프레임 (Frame) | 브리지, 스위치 |
1 | 물리계층 (Physical) | 정보를 회선에 보내기 위한 전기적 신호 변환 | RS-232C | 비트 (Bit) | 허브, 리피터 |
프로토콜도 집중적으로 봐야함!
06. 비즈니스 연속성 계획 관련 주요 용어
BIA (Business Impact Analysis) | 장애나 재해로 인해 운영상의 주요 손실을 볼 것을 가정하여 시간흐름에 따른 영향도 및 손실평가를 조사하는 BCP를 구축하기 위한 비즈니스 영향 분석 |
RTO (Business Impact Objective) | 업무중단 시점부터 업무가 복구되어 다시 가동될 때까지의 시간 |
RPO (Recovery Point Objective) | 업무중단 시점부터 데이터가 복구되어 다시 정상가동될 때 데이터의 손실허용 시점 재해 시 복구 목표 지점의 선정 |
DRP (Disaster Recovery Plan) | 재난으로 장기간에 걸쳐 시설의 운영이 불가능한 경우를 대비한 재난 복구 계획 |
DRS (Disaster Recovery System) | 재해복구계획의 원활한 수행을 지원하기 위하여 평상시에 확보하여 두는 인적, 물적 자원 및 이들에 대한 지속적인 관리체계가 통합된 재해복구센터 |
07. UI설계원칙
직관성 (Intuitiveness) | 누구나 쉽게 이해하고, 쉽게 사용할 수 있어야 함. | 쉬운 검색, 쉬운 사용성, 일관성 |
유효성 (Efficiency) | 정확하고 완벽하게 사용자의 목표가 달성될 수 있도록 제작 | 쉬운 오류 처리 및 복구 |
학습성 (Learnability) | 초보와 숙련자 모두가 쉽게 배우고 사용할 수 있게 제작 | 쉽게 학습, 쉬운 접근, 쉽게 기억 |
유연성 (Flexibility) | 사용자의 요구사항을 최대한 수용하고, 실수를 방지할 수 있도록 제작 | 오류 예방, 실수 포용, 오류 감지 |
직유학유
08. 관계 대수
셀렉트 (Select) | σ | σ (조건)(R) | 릴레이션 R에서 조건을 만족하는 튜플 반환 |
프로젝트 (Project) | π | π (속성리스트)(R) | 릴레이션 R에서 주어진 속성들의 값으로만 구성된 튜플 반환 |
조인 (Join) | ▷◁ | R▷◁S | 공통 속성을 이용해 R과 S의 튜플들을 연결해 만들어진 튜플 반환 |
디비전 (Division) | ÷ | R÷S | 릴레이션 S의 모든 튜플과 관련있는 R의 튜플 반환 |
09. 회복기법
트랜잭션 수행 중, 장애로 인해 손상된 데이터베이스를 손상되기 이전의 정상적인 상태로 복구시키는 작업
데이터베이스 회복을 위한 주요 요소
REDO | 데이터베이스가 비정상적으로 종료되었을 때, 디스크에 저장된 로그를 분석하여 트랜잭션의 시작과 완료에 대한 기록이 있는 트랜잭션들의 작업을 재작업하는 기법 |
UNDO | 데이터베이스가 비정상적으로 종료되었을 때, 디스크에 저장된 로그를 분석하여 트랜잭션의 시작은 있지만, 완료 기록이 없는 트랜잭션들이 작업한 변경내용들을 모두 취소하는 기법 |
회복 기법 종류
로그기반 회복기법 | 지연갱신 회복기법 | 트랜잭션이 완료되기 전 까지 데이터베이스에 기록하지 않는 기법 |
즉각갱신 회복기법 | 트랜잭션 수행 중 갱신 결과를 바로 DB에 반영하는 기법 | |
체크포인트 회복기법 | 장애 발생 시 검사점 이후에 처리된 트랜잭션에 대해서만 장애 발생 이전의 상태로 복원시키는 기법 | |
그림자 페이징 회복기법 | 데이터베이스 트랜잭션 수행 시 복제본을 생성하여 데이터베이스 장애 시 이를 이용해 복구하는 기법 |
회로체그
회복기법 - 로그기반, 체크포인트 , 그림자 페이징
10. 이상현상
데이터의 중복성으로 인해 릴레이션을 조작할 때 발생하는 비합리적 현상
삽입 이상 | 정보 저장 시 해당 정보의 불필요한 세부 정보를 입력해야 하는 경우 |
삭제 이상 | 정보 삭제 시 원치않는 다른 정보가 같이 삭제되는 경우 |
갱신 이상 | 중복 데이터 중에서 특정 부분만 수정되어 중복된 값이 모순을 일으키는 경우 |
11. 프로세스 상태 전이도

12. 소프트웨어 개발의 3대 요소
가용성 (Availcbility) | 권한을 가진 사용자나 애플리케이션이 원하는 서비스를 지속 사용할 수 있도록 보장하는 특성 |
기밀성 (Confidentiality) | 인가되지 않은 개인 혹은 시스템 접근에 따른 정보 공개 및 노출을 차단하는 특성 인가된 사용자에 대해서만 자원 접근이 가능해야 하는 특성 |
무결성 (Integrity) | 정당한 방법을 따르지 않고선 데이터가 변경될 수 없으며, 데이터의 정확성 및 완전성과 고의/ 악의로 변경되거나 회손 파괴되지 않음을 보장하는 특성 |
13. 요구공학
사용자의 요구가 반영된 시스템을 개발하기 위하여 사용자 요구사항에 대한 도출, 분석, 명세, 확인 및 검증하는 구조화된 활동
기능적 요구사항 | 시스템이 제공하는 기능, 서비스에 대한 요구사항이다. |
비기능적 요구사항 | 기능 이외의 사항, 시스템 구축에 대한 제약사항에 관한 요구사항 |
14. 데이터 모델 표시 요소
연산 | 데이터베이스에 저장된 실제 데이터를 처리하는 작업에 대한 명세 릴레이션을 조작하기 위한 관계 연산을 나타냄 |
구조 | 데이터베이스에 논리적으로 표현될 대상으로서의 개체 타입과 개체 타입간의 관계 데이터 구조 및 정적 성질을 표현하는 요소 |
제약조건 | 데이터베이스에 저장될 수 있는 실제 데이터의 논리적 제약 조건 데이터 무결성 유지를 위한 DB의 보편적 방법이고, 릴레이션의 특정 칼럼에 설정하는 제약을 의미 (개체 무결성, 참조 무결성 등) |
연구제
15. 서버 접근통제의 유형
서버 접근통제는 사람 또는 프로세스가 서버 내 파일에 읽기, 쓰기, 실행 등의 접근 여부를 허가하거나 거부하는 기능
임의적 접근 통제 (DAC) | 주체나 그룹의 신분에 근거하여 객체에 대한 접근을 제한 |
강제적 접근 통제 (MAC) | 객체에 포함된 정보의 허용 등급과 정보에 대하여 주체가 갖는 접근 허가 권한에 근거하여 객체에 대한 접근을 제한 |
역할기반 접근 통제 (RBAC) | 중앙 관리자가 사용자와 시스템의 상호 관계를 통제하며 조직 내 맡은 역할에 기초하여 자원에 대한 접근을 제한 |
16. 정규화
관계형 데이터모델에서 데이터의 중복성을 제거하여 이상 현상을 방지하고, 데이터의 일관성과 정확성을 유지하기 위해 무손실 분해하는 과정
1정규형(1NF) | 원자값으로 구성 |
2정규형(2NF) | 부분함수 종속 제거(완전 함수적 종속 관계) |
3정규형(3NF) | 이행함수 종속 제거 |
보이스-코드 정규형(BCNF) | 결정자 후보키가 아닌 함수 종속 제거 |
4정규형(4NF) | 다치(다중 값) 종속 제거 |
5정규형(5NF) | 조인 종속 제거 |
원부이결다조
17. 암호화 알고리즘
대칭 키 암호화 알고리즘
DES (Data Encryption Standard) | 1975년 IBM에서 개발하고 미국의 연방 표준국(NIST)에서 발표한 대칭 키 기반의 블록 암호화 알고리즘 블록 크기는 64비트이고, 키 길이는 56비트인 페이스텔 구조이다. |
SEED | 1999년 국내 한국 인터넷 진흥원(KISA)이 개발한 블록 암호화 알고리즘 128비트 비밀키로 부터 생성된 16개의 64비트 라운드 키를 사용하여 총 16회의 라운드를 거쳐 128비트의 평문블록을 128비트의 암호문 블록으로 암호화 하여 출력하는 방식 |
AES (Advanced Encryption Standard) | 2001년 미국 표준 기술 연구소(NIST)에서 발표한 블록 암호화 알고리즘 DES의 개인 키에 대한 전사적 공격이 가능해지고, 3DES의 성능 문제를 극복하기 위해 개발하였다. 블록 크기는 128비트이며, 키 길이에 따라 128bit, 192bit, 256bit로 분류된다. |
ARIA (Academy, Research Institute Agency) | 2004년 국가정보원과 산학연구협회가 개발한 블록 암호화 알고리즘 ARIA는 학계, 연구기관, 정부의 영문 앞글자로 구성되었다. 블록 크기는 128비트이며 키 길이에따라 128bit, 192bit, 256bit로 분류된다. |
IDEA (International Data Encryption Algorithm) | DES를 대체하기 위해 스위스 연방 기술 기관에서 개발한 블록 암호화 알고리즘 128비트의 키를 사용해 64비트의 평문을 8라운드에 거쳐 64비트의 암호문을 만든다. |
LFSR (Linear Feedback Shift Register) | 시프트 레지스터의 일종으로, 레지스터에 입력되는 값이 이전 상태 값들의 선형 함수로 계산되는 구조로 되어있는 스트림 암호화 알고리즘 LFSR에서 사용되는 선형함수는 주로 배타적 논리합(XOR)이고, LFSR의 초기 비트 값은 시드(Seed)라고 한다. |
Skipjack | 미 국가안보국(NSA)에서 개발한 Clipper칩에 내장된 블록 알고리즘 |
비대칭 키 암호화 알고리즘
디피-헬만 (Diffie-Hellman) | 최초의 공개키 알고리즘으로 W.Diffie와 M.Hellman이 1976년에 고안한 알고리즘으로서 유한 필드 내에서 이산 대수의 계산이 어려운 문제를 기본 원리로 하고 있다. 공개키 암호 방식의 개념을 이용하여 두 사용자 간에 공통의 암호화 키를 안전하게 공유할 방법을 제시하였으며, 많은 키 분배 방식에 관한 연구의 기본이 되었다. |
RSA (Rivest-Shamir-Adleman) | 1977년 3명의 MIT 수학교수가 고안한 큰 인수의 곱을 소인수 분해하는 수학적 알고리즘 이용하는 공개키 암호화 알고리즘이다. 비밀키의 복호화가 어려운 RSA 안전성은 소인수 분해 문제의 어려움에 근거하였다. |
ECC (Elliptic Curve Cyptography) | 1985년 코블리치와 밀러가 RSA암호 방식에 대한 대안으로 처음 제안하였다. 타원 곡선 암호(ECC)는 유한체 위에서 정의된 타원곡선 군에서의 이산대수의 문제에 기초한 공개키 암호화 알고리즘이다. |
ElGamal | T.ElGamal이 1984년에 제안한 공개키 알고리즘이다. 이산대수의 계산이 어려운 문제를 기본 원리로 하고 있으며, RSA와 유사하게 전자서명과 데이터 암/복호화에 함께 사용 가능하다. |
해시 암호화 알고리즘
MD5 (Message-Digest algorithm 5) | 1991년 R.rivest가 MD4를 개선한 암호화 알고리즘 프로그램이나 파일의 무결성 검사에 사용 각각의 512비트짜리 입력 메시지 블록에 대해 차례로 동작하여 128비트의 해시값을 생성하는 해시 알고리즘 |
SHA-1 (Secure Hash Algorithm) | 1993년 NSA에서 미 정부 표준으로 지정되었고, DSA(Digital Signature Algorithm)에서 사용 160비트의 해시값을 생성하는 해시 알고리즘 |
SHA-256/ 384/ 512 (Secure Hash Algorithm) | SHA알고리즘의 한 종류로서 256비트의 해시값을 생성하는 해시 함수 AES의 키 길이인 128, 192, 256비트에 대응하도록 출력 길이를 늘인 해시 알고리즘 |
HAS-160 | 국내 표준 서명 알고리즘 KCDSA를 위하여 개발된 해시함수 MD5와 SHA1의 장점을 취하여 개발된 해시 알고리즘 |
HAVAL | 메시지를 1024bit블록으로 나누고, 128, 160, 192, 224, 256 비트인 메시지 다이제스트를 출력하는 해시 알고리즘 |
18. 패킷 교환 방식
데이터를 패킷 단위로 보내는 방식
데이터그램 | 가상회선 | |
개념 | 연결경로를 확립하지 않고 각각의 패킷을 순서 무관하게 독립적으로 전송하는 방식 | 패킷이 전송되기 전에 송/수신 스테이션 간의 논리적인 통신 경로를 미리 설정하는 방식 |
동작 원리 및 특징 | 각각의 패킷을 독립적으로 취급하는 방식으로, 앞에 보낸 메시지나 앞으로 보낼 메시지의 어떠한 결과와도 관계가 없는 단일 패킷 단위로 전송하고 수신하는 방식 헤더를 붙여 개별적으로 전달하는 비연결형 교환방식 | 많은 이용자들이 상호 통신을 할 때 하나의 통신 설비를 공유하여 여러 개의 논리적인 체널을 확정한 후, 통신을 할 수 있는 방식 목적지 호스트와 미리 연결 후 통신하는 연결형 교환방식 |
반대로 서킷 교환 방식은 전송 경로를 설정한 뒤 데이터를 송수신 하는 방식
19. 병행 제어 기법의 종류
로킹 (Locking) | 하나의 트랜잭션을 실행하는 동안 특정 데이터 항목에 대해서 다른 트랜잭션이 동시에 접근하지 못하도록 상호배제 기능을 제공하는 기법 로킹 단위가 작아지면 공유도, 오버헤드가 증가 |
낙관적 검증 (Optimistic Vaildation) | 트랜잭션이 어떠한 검증도 수행하지 않고 일단 트랜잭션을 수행하고, 트랜잭션 종료 시 검증을 수행하여 데이터베이스에 반영하는 기법 |
타임 스탬프 순서 (Time Stamp Ordering) | 트랜잭션과 트랜잭션이 읽거나 갱신한 데이터에 대해 트랜잭션이 실행을 시작하기 전에 타임 스탬프를 부여하여 부여된 시간에 따라 트랜잭션 작업을 수행하는 기법 |
다중버전 동시성 제어 (MVCC; Multi Verstion Concurrency Control) | 트랜잭션의 타임스탬프와 접근하려는 데이터의 타임 스탬프를 비교하여 직렬 가능성이 보장되는 적절한 버전을 선택하여 접근하도록 하는 기법 |
20. 럼바우 데이터 모델링
객체 모델링 (Object) | 정보 모델링(Infomation)이라고도 한다. 시스템에서 요구하는 객체를 찾고 객체들 간의 관계를 정의하여 ER다이어그램을 만드는 과정 까지의 모델링이다. 객체 다이어 그램을 활용하여 표현한다. |
동적 모델링 (Dynamic) | 시간의 흐름에 따라 객체들 사이의 제어 흐름, 동작 순서 등의 동적인 행위를 표현하는 모델링이다. 상태 다이어그램을 활용하여 표현한다. |
기능 모델링 (Functional) | 프로세스들의 자료 흐름을 중심으로 처리 과정을 표현하는 모델링이다. 자료흐름도(DFD)를 활용하여 표현한다. |
21. 3A(AAA)
3A는 유모선 이동 및 인터넷 환경에서 가입자에대한 안전하고, 신뢰성 있는 인증, 권한부여, 계정 관리를 체계적으로 제공하는 정보보호기술이다.
인증 (Authentication) | 새스템을 접근하기 전에 접근 시도하는 사용자의 신원을 검증 |
권한부여 (Authorization) | 검증된 사용자에게 어떤 수준의 권한과 서비스를 허용 |
계정관리 (Accounting) | 사용자의 자원(시간, 정보, 위치 등)에 대한 사용자 정보를 수집 |
22. 객체지향기법의 관계성
관계성은 두 개 이상의 엔터티 형에서 데이터를 참조하게 되는 관계를 나타내는 기법이다.
연관화 | is-member-of의 관계 클래스들 사이의 전체 또는 부분 같은 관계 |
집단화 | is part of 관계, part-whole 관계 |
분류화 | is-instance-of 관계 |
일반화 | is-a 관계, 클래스들 간의 개념적인 포함 관계 |
특수화 | is-a 관계, 상위 클래스들의 특성을 상속받으면서 하위 클래스에서 나름대로 수정을 가하고 자기 자신의 고유한 특성을 갖는 관계 |
23. RAID
RAID 0 | 패리티(오류 검출 기능) 가 없는 스트라이핑 된 세트로 구성되는 방식 적어도 2개의 디스크 필요 | 디스크 갯수 |
RAID 1 | 패리티가 없는 미러링된 세트로 구성되는 방식 적어도 2개의 디스크 필요 디스크 2개에 동일한 데이터가 저장되고, 제공해야 할 논리 디스크 크기의 두 배 공간을 필요로 하기 때문에 비용 측면에서 단점이 있다. | 2 |
RAID 2 | 오류정정부호(ECC)를 기록하는 전용의 하드디스크를 이용해서 안정성을 확보하는 방식 비트레벨의 스트라이핑과 해밍코드 패리티 사용하여 하나의 멤버 디스크가 고장나도 ECC를 이용하여 정상적으로 작동할 수 있지만, 추가적인 연산이 필요하여 입출력 속도가 매우 낮음 | |
RAID 3 | 데이터는 모든 디스크에 바이트 단위의 스트라이핑된 세트로 구성되고, 패리티 정보는 별도의 전용 디스크에 저장되는 방식 적어도 3개의 디스크 필요 한개의 드라이브가 고장나는것을 허용하며, 순차적 쓰기 성능과 순차적 읽기 성능은 우수하지만, 문제 해결이 어려워 잘 사용되지 않음. | 3 |
RAID 4 | 데이터는 모든 디스크에 블록 단위의 스트라이핑 된 세트로 구성되고, 패리티 정보는 별도의 전용 디스크에 저장되는 방식 적어도 3개의 디스크 필요 읽기 성능은 좋지만, 쓰기 성능은 나쁨 | |
RAID 5 | 패리티가 배분되는 스트라이핑 된 세트로 구성된 방식 적어도 3개의 디스크 필요 모든 디스크에 나뉘어 저장되지만, 항상 균등하진 않고 패리티 정보도 모든 디스크에 나눠 저장 | |
RAID 6 | 패리티가 배분되는 스트라이핑된 세트로 구성된 방식 적어도 4개의 디스크 필요 각 디스크에 패리티 정보가 두 번 독립적으로 분산되어 저장. | 4 |
24. 키의 종류
기본키 (Primary Key) | 후보 키 중에서 선택받아 테이블의 튜플들을 고유하게 식별하는 키 |
대체키 (Alternate Key) | 후보키 중에서 기본키로 선택되지 않은 키 |
후보키 (Candidate Key) | 유일성과 최소성을 모두 만족하는 키 |
슈퍼키 (Super Key) | 유일성은 만족하지만, 최소성은 만족하지 못하는 키 |
외래키 (Foreign Key) | 한 릴레이션의 컬럼이 다른 릴레이션의 기본 키로 이용되는 키 |
25. 객체지향 설계 원칙(SOLID)
단일 책임의 원칙 SRP : Single Presponsibility Principle | 하나의 클래스는 하나의 목적을 위해서 생성되며, 클래스가 제공하는 모든 서비스는 하나의 책임을 수행하는 데 집중되어 있어야 한다는 원칙 객체 지향 프로그래밍의 5원칙 중 나머지 4원칙의 기초 원칙이다. |
개방 폐쇠 원칙 OCP : Open Close Principle | 소프트웨어의 구성요소(컴포넌트, 클래스, 모듈, 함수)는 확장에는 열려있고, 변경에는 닫혀 있어야 한다는 원칙 |
리스코프 치환의 원칙 LSP : Liskov Substitution Principle | 서브 타입(상속받은 하위 클래스)은 어디서나 자신의 기반 타입(상위 클래스) 으로 교체할 수 있어야 한다는 원칙 |
인터페이스 분리의 원칙 ISP : Interface Segregation Principle | 한 클래스는 자신이 사용하지 않는 인터페이스는 구현하지 말아야 한다는 원칙 객체 설계 시 특정 기능에 대한 인터페이스는 그 기능과 상관없는 부분이 변해도 영향을 받지 않아야 한다는 원칙 |
의존성 역전의 원칙 DIP : Dependency Inversion Principle | 실제 사용 관계는 바뀌지 않으며, 추상을 매개로 메시지를 주고 받음으로써 관계를 최대한 느슨하게 만드는 원칙 |
앞글자만 따서 SOLID라고 불린다. 맨 마지막은 항상 P이다...
26. 함수 종속
부분 함수 종속 Partial Functional Dependency | 릴레이션에서 기본 키가 복합 키일 경우, 기본 키를 구성하는 속성 중, 일부에게 종속된 경우 |
완전 함수 종속 Full Functional Dependency | 릴레이션에서 x->y 관계가 있을 때, y는 x의 전체 속성에 대해 종속하고, 부분 집합 속성에 종속하지 않는경우 |
이행 함수 종속 TranSitive Functional Dependency | 릴레이션에서 x->y, y->z 종속 관계가 있을 때, x->z가 성립하는 경우 |
27. 관계대수 연산자
구분 | 종류 | 기호 | 표현 | 설명 |
일반 집합 연산자 | 합집합 | ∪ | R∪S | 합병 가능한 두 릴레이션 R과 S의 합집합 |
교집합 | ∩ | R∩S | 릴레이션 R과 S에 속하는 모든 튜블로 결과 릴레이션 구성 | |
차집합 | - | R-S | R에 존재하고 S에 미 존재하는 튜블로 결과 릴레이션 구성 | |
카디션프로덕트 | X | RxS | R과 S에 속한 모든 튜플을 연결해 만들어진 새로운 튜플로 릴레이션 구성 | |
순수 관계 연산자 | 셀렉트 | σ | σ조건(R) | 릴레이션R에서 조건을 만족하는 튜플 반환 |
프로젝트 | π | π속성리스트(R) | 릴레이션 R에서 주어진 속성들의 값으로만 구성된 튜플 반환 | |
조인 | ▷◁ | R▷◁S | 공통 속성을 이용해 R과 S의 튜플들을 연결해 만들어진 튜플 반환 | |
디비전 | ÷ | R÷S | 릴레이션 S의 모든 튜플과 관련있는 R의 튜플 반환 |
28. 형상관리 도구 유형
CVS (Concurrent Versions System) | 서버와 클라이언트로 구성되어 있고, 다수의 인원이 동시에 범용적인 운영체제로 접근 가능한 형상관리 도구 가장 오래된 형상관리 도구 중 하나로서 중앙 집중형 서버 저장소를 두고 클라이언트가 접속해서 버전 관리를 실행하는 형상 관리 도구 |
SVN (Subversion) | 하나의 서버에서 소스를 쉽고 유용하게 관리할 수 있게 도와주는 도구. 저장소를 만들어 그곳에 소스를 저장해 소스 중복이나 여러 문제를 해결하기 위한 도구 |
RCS (Revision Control System) | CVS와 달리 소스 파일의 수정을 한 사람만으로 제한하여 다수의 사람이 파일의 수정을 동시에 할 수 없도록 파일 잠금 방식으로 형상을 관리하는 도구 |
Bitkeeper | SVN과 비슷한 중앙 통제 방식으로 대규모 프로젝트에서 빠른 속도를 내도록 개발된 형상 관리 도구 |
Git | Git의 속도에 중점을 둔 분산형 버전 관리 시스템이며, 대형 프로젝트에서 효과적이고 유용 Git의 커밋 동작은 로컬 저장소에서 이루어지고, 푸시라는 동작으로 원격 저장소에 반영 로컬 저장소에서 작업이 이루어져 매우 빠른 응답을 받을 수 있음 Git의 작업 폴더는 전체 기록과 각 기록을 추적할 수 있는 정보를 포함하는 완전한 형태의 저장소 |
Clear Case | 복수 서버, 복수 클라이언트 구조이며 서버가 부족할 때 필요한 서버를 하나씩 추가하여 확장성을 기할 수 있음. |
29. UML 다이어그램
구조적/정적 다이어그램 | 클래스 | 클래스 다이어그램은 객체 지향 모델링 시 클래스의 속성 및 연산과 클래스 간 정적인 관계를 표현한 다이어그램이다. |
객체 | 객체 다이어그램은 클래스에 속한 사물들, 즉 인스턴스를 특정 시점의 객체와 객체 사이의 관계로 표현한 다이어그램이다. | |
컴포넌트 | 컴포넌트 다이어그램은 시스템을 구성하는 컴포넌트와 그들 사이의 의존 관계를 나타내는 다이어그램이다. | |
배치 | 배치 다이어그램은 컴포넌트 사이의 종속성을 표현하고, 결과물, 프로세스, 컴포넌트 등 물리적 요소들의 위치를 표현하는 다이어그램이다. | |
복합체구조 | 복합체 구조 다이어그램은 클래스나 컴포넌트가 복합 구조를 갖는 경우 그 내부 구조를 표현하는 다이어그램이다. | |
패키지 | 패키지 다이어그램은 유스케이스나 클래스 등의 모델 요소들을 그룹화한 패키지들의 관계를 표현한 다이어그램이다. | |
활동적/동적 다이어그램 | 유스케이스 | 유스케이스 다이어그램은 시스템이 제공하고 있는 기능 및 그와 관련된 외부 요소를 사용자의 관점에서 표현하는 다이어그램이다. |
시퀀스 | 시퀀스 다이어그램은 객체 간 동적 상호 작용을 시간적 개념을 중심으로 메시지 흐름으로 표현한 다이어 그램이다. | |
커뮤니케이션 | 커뮤니케이션 다이어그램은 동작에 참여하는 객체들이 주고 받는 메시지를 표현하고, 메시지뿐만 아니라 객체 간의 연관 까지 표현하는 다이어그램이다. | |
상태 | 상태 다이어그램은 하나의 객체가 자신이 속한 클래스의 상태 변화 혹은 다른 객체와의 상호 작용에 따라 상태가 어떻게 변화하는지 표현하는 다이어그램이다. | |
활동 | 활동 다이어그램은 시스템이 어떤 기능을 수행하는지를 객체의 처리 로직이나 조건에 따른 처리의 흐름을 순서대로 표현하는 다이어그램이다. | |
타이밍 | 타이밍 다이어그램은 객체 상태 변화와 시간 제약을 명시적으로 표현하는 다이어그램이다. |
30. 응용계층 프로토콜 포트번호
HTTP | 80 |
FTP | 21 |
SMTP | 25 |
POP3 | 110 |
IMAP | 143 |
Telnet | 23 |
SSH | 22 |
SNMP | 161 |
31. 스키마의 종류
외부 스키마 | 사용자나 개발자의 관점에서 필요로 하는 데이터베이스의 논리적 구조. 사용자 뷰를 나타낸다. 전체 데이터베이스의 한 논리적인 부분으로 볼 수 있기 때문에 서브스키마라고도 한다. |
개념 스키마 | 데이터베이스의 전체적인 논리적 구조. 전체적인 뷰를 나타내고 개체간의 제약조건, 접근권한, 무결성, 보안에 대해 정의함. |
내부 스키마 | 물리적 저장 장치의 관점에서 보는 데이터베이스 구조. 실제로 데이터베이스에 저장 될 레코드의 형식을 정의하고 저장 데이터 항목의 표현방법, 내부 레코드의 물리적 순서 등을 표현함. |
32. 데이터 링크 계층의 오류 제어
전진 오류 수정 방식 (FEC; Forward Error Correction) | 데이터 전송 과정에서 발생한 오류를 검출하여 검출 된 오류를 재전송 요구 없이 스스로 수정하는 방식 | 해밍코드 방식 상승코드방식 |
후진 오류 수정 방식 (BEC; Backward Error Correction) | 데이터 전송 과정에서 오류가 발생하면 송신측에 재전송을 요구하는 방식 | 패리티 검사, CRC, 블록 합 검사 |
- 해밍코드방식은 수신 측에서 오류가 발생한 비트를 찾아 재전송을 요구하지 않고 자신이 직접 오류를 수정하는 방식으로 1비트의 오류 수정이 가능하다.
- 상승 코드 방식은 1개의 오류 비트를 수정할 수 있는 해밍코드방식과 다르게 여러 개 비트의 오류가 있더라도 한곗값(경곗값), 순차적 디코딩을 이용하여 모두 수정할 수 있는 방식이다.
- 패리티 검사는 7~8개의 비트로 구성되는 전송 문자에 패리티 비트를 추가하여 오류를 검출하는 방식이다.
- CRC(순환 잉여 검사; Cycle Redundancy Check)는 다항식을 통해 산출된 CRC값을 토대로 오류를 검사하는 방식으로 집단 오류를 해결하기 위한 방식이다.
- 블록 합 검사(Block Sum Check)는 프레임의 모든 문자로부터 계산되는 잉여 패리티 비트들을 사용하는 이차원(가로/세로) 패리티 검사 방식이다.
33. DRS의 유형
Mirror Site | 실시간 동시 서비스가 가능한 재해복구 센터 RTO : 0 (즉시) |
Hot Site | 주 센터와 동일한 수준의 자원을 대기 상태로 원격지에 보유하면서 동기, 비동기 방식의 미러링을 통하여 데이터의 최신 상태를 유지하고 있는 재해복구센터 RTO : 4시간 이내 |
Warm Site | 제어 센터에 주 센터와 동일한 수준의 자원을 보유하는 대신 중요성이 높은 자원만 부분적으로 재해복구센터에 보유 RTO : 수일 ~ 수주 |
Cold Site | 데이터만 원격지에 보관하고, 재해 시 데이터를 근간으로 필요 자원을 조달하여 복구 할 수 있는 재해복구센터 RTO : 수주 ~ 수개월 |
개념으로 구성된 아이들
가.
가상화
물리적인 리소스들을 사용자에게 하나로 보이게 하거나, 하나의 물리적인 리소스를 여러 개로 보이게 하는 기술
관계 해석
관계 해석은 튜플 관계 해석과 도메인 관계 해석을 하는 비절차적 언어이다.
프레디킷 해석에 기반한 언어이며, 비절차적 언어이다.
codd박사에 의하여 제시되었으며, 튜플 관계 해석과 도메인 관계 해석을 하는 비절차적 언어이다. (2022년 2회)
교착 상태
둘 이상의 프로세스가 서로 가진 한정된 자원을 요청하는 경우 발생하는 상태로, 다중 프로세싱 환경에서 두 개 이상의 프로세스가 특정 자원 할당을 무한정 대기하는 상태.
다.
다크데이터
수집 후 저장은 되어 있지만 분석에 활용되지 않는 다량의 데이터 (2022년 3회)
데이터 마이닝
대량의 데이터에서 의미있는 구문이나 문장을 찾아내는 기술 (2020년 1회)
데이터 모델링절차
요구사항분석 - 개념적 데이터 모델링- 논리적 데이터 모델링 -물리적 데이터 모델링 (2020년 2회) (2021년 1회)
드라이버 (Driver) (테스트 드라이버)
상위 모듈에서 데이터의 입력과 출력을 확인하기 위한 더미모듈 (2023년 2회)
동적 분석 도구
소스코드를 실행하여 프로그램 동작이나 반응을 추적하고 코드에 존재하는 메모리 누수, 스레드 결함 등을 분석.
화이트 박스 테스트와 블랙 박스 테스트가 이에 해당함. (2022년 1회)
라.
랜드어택(Land Attack)
DoS공격의 한 종류로, 출발지 IP와 목적지 IP를 같은 패킷 주소로 만들어 보냄으로써 수신자가 자기 자신에게 응답을 보내게 하여 시스템의 가용성을 침해하는 공격기법이다. (2020년 1회)
리팩토링
리팩토링의 목적은 소프트웨어를 보다 이해하기 쉽고 수정하기 쉽도록 만드는 것
결과의 변경없이 코드의 구조를 재조정 하는 것. 가독성을 높이고 유지보수를 쉽게 하기 위한 목적이 있다. (2020년 3회)
바.
바이러스
악성 소프트웨어 컴퓨터 프로그램. 스스로 복제하지못하고, 다른 실행 프로그램에 기생하여 실행. 네트워크를 통해 전파되지 않는다. 방식 및 위치에 따라 여러 형태로 나뉜다. (2023년 1회)
반정규화 (비정규화, 역정규화)
코드의 유지보수 및 성능 개선을 위해 정규화의 반대로 코드를 분리, 중복, 통합 하는 기법 (2020년 1회) (2021년 1회)
베타 테스트
하드웨어나 소프트웨어의 개발 단계에서 상용화하기 전에 실시하는 제품 검사 작업. 제품의 결함 여부, 제품으로서의 가치 등을 평가하기 위해 실시한다. 선발된 잠재 고객으로 하여금 일정 기간 무료로 사용하게 한 후에 나타난 여러 가지 오류를 수정, 보완한다. 공식적인 제품으로 발매하기 이전에 최종적으로 실시하는 검사 작업 (2022년 2회)
블록체인
분산 데이터베이스의 한 형태로, 분산 노드의 운영자에 의한 임의조작이 불가능 하도록 고안되어 지속적으로 성장하는 데이터 기록 리스트인 블록을 연결한 모음 (2020년 4회)
사.
사회공학
사람들의 심리와 행동 양식을 교모하게 이용해서 원하는 정보를 얻는 공격기법
상대방의 자만심이나 권한을 이용하는 공격 및 도청이 있다. (2022년 3회)
살충제 패러독스
동일한 케이스로 진행하는 테스트로는 새로운 버그를 찾을 수 없다는 이론으로, 테스트 케이스를 주기적으로 변경해주어야 한다는 이론 (2020년 1회)
새션 하이재킹
새션 하이재킹은 케빈 미트닉이 사용했던 공격 방법 중 하나로, TCP의 세션 관리 취약점을 이용한 공격기법이다.
TCP Sequence Number의 보안상 취약점으로 발생한다. (2021년 1회)
생성자
객체 생성 시 초기화를 담당하는 함수. 객체를 만들 때 반드시 호출되고, 제일 먼저 실행된다. (2020년 3회)
스니핑
공격대상에게 직접 공격을 하지 않고 데이터만 몰래 들여다 보는 수동적 공격 기법 (2020년 4회)
스키마
데이터베이스의 구조, 제약조건 등의 정보를 담고 있는 기본적인 구조 (2020년 3회)
스텁(Stub) (테스트 스텁)
모듈 및 모든 하위 컴포넌트를 대신하는 더미 모듈
하향식 테스트에서 사용된다. (2021년 2회)
아.
안드로이드
휴대전화를 비롯한 휴대용 장치를 위한 운영체제와 미들웨어, 사용자 인터페이스 그리고 표준 응용 프로그램(웹 브라우저, 이메일 클라이언트 등)을 포함하고 있는 운영체제 (2020년 2회)
알파 테스트
새로운 제품 개발 과정에서 이루어지는 첫 번째 테스트. 즉, 시제품이 운영되는 동안의 신제품 연구와 개발 과정 단계에서 초기 작동의 결과를 평가하는 수단이며 개발 회사 내부에서 이루어지는 테스트로서 단위 테스트, 구성 테스트, 시스템 테스트 등을 포함한다.
애드 훅 네트워크 (Ad - hoc Network)
노드들에 의해 자율적으로 구성되는 기반 구조가 없는 네트워크이다.
네트워크의 구성 및 유지를 위해 기지국이나 액세스 포인트와 같은 기반 네트워크 장치를 필요로 하지 않는 네트워크이다.
긴급구조, 긴급회의, 전쟁터에서의 군사 네트워크로 사용된다. (2021년 2회)
애자일 방법론
절차보다는 사람이 중심이 되어 변화에 유연하고 신속하게 적응하면서 효율적으로 시스템을 개발할 수 있는 신속 적응적 경량 개발 방법론
주요 기법으로는 XP, 린(Lean), 스크럼(SCRUM)등이 있음.
(2020년 2회)
애플리케이션 성능 측적 지표
처리량, 응답시간, 경과시간, 자원사용률 (2020년 1회) (처응경자)
옵티마이저(Optimizer)
SQL을 가장 빠르고 효율적으로 수행할 최적의 처리경로를 생성해주는 DBMS내부의 핵심엔진. 규칙기반 옵티마이저와 비용기반 옵티마이저가 있다.
워터링 홀(Watering Hole)
공격 대상이 방문할 가능성이 있는 합법적 웹사이트를 미리 감염시켜 놓고, 피해자가 방문 했을 때, 피해자의 컴퓨터에 악성 프로그램을 배포하는 공격 기법. (2022년 1회)
웜
스스로를 복제하여 네트워크등의 연결을 통하여 전파하는 악성 소프트웨어 컴퓨터 프로그램.
독자적으로 실행되며 다른 실행 프로그램이 필요하지 않고, 파일 전송 기능을 착취하도록 설계된다.
자가 복제 및 네트워크를 통한 전파 가능 (2023년 1회)
유닉스
데니스 리치와 켄 톰슨 등이 함께 벨 연구소를 통해 만든 운영체제이며, 90%이상 C언어로 구현되어 있는 운영체제로 범용 다중 사용자 방식의 시분할 운영체제이다.
인덱스
인덱스는 검색 연산의 최적화를 위해 데이터베이스 내 값에 대한 주소 정보로 구성된 데이터 구조다.
인덱스는 테이블의 특정 레코드 위치를 알려주는 용도로 사용한다. (2021년 3회)
인스팩션
소프트웨어 요구, 설계, 원시 코드등의 저작자 외의 다른 전문가 또는 팀이 검사하여 문제를 식별하고, 문제에 대한 올바른 해결을 찾아내는 형식적인 검토 기법
자.
정적분석도구
애플리케이션을 실행하지 않고 분석하는 도구 (2020년 2회)
카.
클라우드 컴퓨팅
인터넷을 통해 가상화된 컴퓨터 시스템 리소스를 제공하고, 정보를 자신의 컴퓨터가 아닌 클라우드에 연결된 다른 컴퓨터로 처리하는 기술
클래스 다이어그램

클래스 다이어그램은 객체 지향 모델링 시 클래스의 속성 및 연산과 클래스 간 정적인 관계를 표현한 다이어그램.
클래스 간의 관계는 연관관계, 의존관계, 일반화관계, 실체화관계, 포함관계, 집합관계가 있다.
클래스를 포함하여 속성과 메서드로 이뤄져있다. (2021년 3회)
클리어링 하우스
저작권에 대한 사용 권한, 라이센스 발급, 사용량에 따른 관리 등을 수행하는 곳.
키 관리 및 라이센스 발급 관리를 담당하고, 콘텐츠 권한 정책, 라이센스 관리를 수행한다.
타.
타이포스쿼팅(Typosquatting)
사용자가 사이트에 접속할 때 주소를 잘못 입력하거나 철자를 빠트리는 실수를 이용하기 위해 이와 유사한 유명 도메인을 미리 등록하는 일.
URL하이재킹이라고도 한다. (2023년 1회)
테스트 커버리지
주어진 테스트 케이스에 의해 수행되는 소프트웨어의 테스트 범위를 측정하는 테스트 품질 측정 기준.
템퍼프루핑
소프트웨어가 불법으로 변조된 경우, 그 소프트웨어가 정상적으로 실행되지 않게 하는 기법이다. 소프트웨어 변조 공격을 방어하기 위한 방법으로는 프로그램에 변조검증코드를 삽입하는 것도 있다. 변조검증코드의 용도는 프로그램이 변조되었는지를 탐지하고 변조가 탐지되었다면 프로그램이 실행되지 않게 하는 것이다. (2023년 2회)
트랜잭션
인가받지 않은 사용자로부터 데이터를 보장하기 위해 DBMS가 가져야 하는 특성이자, 데이터베이스 시스템에서 하나의 논리적 기능을 정상적으로 수행하기 위한 작업의 기본 단위
트러스트존(Trustzone)
프로세서 안에 독립적인 보안 구역을 따로 두어 중요한 정보를 보호하는 ARM사에서 개발한 보안 기술이다.
프로세서 안에서 독립적인 보안 구역을 따로 두어 중요한 정보를 보호하는 하드웨어 기반의 보안 기술. (2023년 1회)
트로이 목마
악성 루틴이 숨어있는 프로그램으로 겉보기에는 정상적인 프로그램이지만, 실행하면 악성코드를 실행하는 프로그램 (2023년 1회)
파.
패키저
콘텐츠를 메타 데이터와 함께 배포 가능한 단위로 묶는 도구
패키지 다이어그램

시스템의 서로 다른 패키지들 사이의 의존 관계를 표현하기 위한 다이어그램.
의존성 성질을 나타내기 위해 스테레오 타입을 붙일 수 있으며 <<import>>, <<access>>가 있다. (2020년 4회)
프로토콜
프로토콜은 서로 다른 시스템이나 기기들 간의 데이터 교환을 원활히 하기 위한 표준화된 통신 규약
기술적 은어라는 뜻. (2020년 3회)
프로토콜의 기본 3요소
구문,의미,타이밍 (2020년 1회)
하.
하둡(Hadoop)
오픈 소스를 기반으로 한 분산 컴퓨팅 플랫폼
거대한 데이터 세트를 병렬으로 처리할 수 있도록 개발된 자바 소프트웨어 프레임 워크로 구글, 야후등에 적용되었다. (2020년 4회)
헝가리안 표기법
변수명, 접두사에 자료형을 표기하는 기법 (2020년 3회)
형상관리
소프트웨어 개발을 위한 전체 과정에서 발생하는 모든 항목의 변경 사항을 관리하기 위한 활동 (2020년 2회) (2020년 3회)
- 형상 식별 : 형상 관리 대상을 정의 및 식별하는 활동
- 형상 통제 : 형상 항목의 버전 관리를 위한 형상통제위원회 운영
- 형상 감사 : 소프트웨어 베이스라인의 무결성 평가
- 형상 기록 : 소프트웨어 형상 및 변경관리에 대한 각종 수행 결과를 기록
식통감기
A.
AJAX
자바스크립트를 사용하여 웹 서버와 클라이언트 간 비동기적으로 XML데이터를 교환하고 조작하기 위한 웹 기술.
주요기술로는 XMLHttpRequest, JavaScript, XML, DOM, XSLT, HTML, CSS등이 있다. (2020년 2회)(2023년 1회)
ARP
IP 네트워크 상에서 IP주소를 MAC주소로 변환하는 프로토콜 (2021년 3회)
ARP스푸핑
공격자가 특정 호스트의 MAC주소를 자신의 MAC주소로 위조한 ARP Reply를 만들어 희생자에게 지속적으로 전송하여 희생자의 ARP Cache Table에 특정 호스트의 MAC정보를 공격자의 MAC정보로 변경, 희생자로 부터 특정 호스트로 나가는 패킷을 공격자가 스니핑 하는 공격기법. (2021년 3회)
C.
Cardinality
릴레이션에서 튜플의 갯수 (2021년 1회)(2023년 1회)
CBD(Component Based Development)
컴포넌트를 조립해서 하나의 새로운 응용 프로그램을 작성하는 방법론
CRC (Cycle Redundancy Check)
순환 잉여검사는 다항식을 통해 산출된 CRC값을 토대로 오류를 검사하는 방식으로 집단 오류를 해결하기 위한 방식이다. (2023년 2회)
CSRF(사이트 간 위조;Cross-Site Request Forgery)
공격자의 악의적인 요청이 클라이언트로 하여금 희생자 서버에서 실행되게 되는 공격
공격을 받은 피해자는 희생자 은행 사이트에 접속해서 피해자의 계좌에서 공격자의 계좌로 돈을 이체시키는 행위를 나도 모르게 하게 된다.
XSS와의 차이점은 XSS는 사용자만 피해를 입고, CSRF는 웹서버, 사용자 모두 피해를 입는다.
D.
Degree
릴레이션에서 속성의 갯수 (2021년 1회)
DRM (디지털 저작권 관리; Digital Right Management)
중앙의 클리어링 하우스에서 콘텐츠 제공자, 분배자, 소비자 간의 패키징 배포 및 키 관리, 라이선스 발급 관리를 수행함.
E.
EAI
기업에서 운영되는 서로 다른 플랫폼 및 애플리케이션 간의 정보를 전달, 연계, 통합이 가능하도록 해주는 솔루션
주요 유형으로는 포인트 투 포인트 (Point to Point), 메시지 버스 (Message bus), 허브 앤 스포크 (Hub & Spoke), 하이브리드(Hybrid)가 있다. (2020년 3회) (2021년 1회)
EGP(Exterior Gateway Protocol) (하위목록: BGP)
외부 라우팅 프로토콜
서로 다른 AS간 라우팅 프로토콜로 게이트웨이 간의 라우팅에 사용되는 프로토콜이다. (2022년 2회)
- BGP
AS 상호 간에 경로 정보를 교환하기 위한 라우팅 프로토콜로 초기에 라우터들이 연결될 때 전체 라우팅 테이블을 교환하고, 그 이후에는 변화된 정보만을 교환하는 방식 (2022년 2회)
H.
HammingCode
수신측에서 오류가 발생한 비트를 찾아 재전송을 요구하지 않고 자신이 직접 오류를 수정하는 방식. 1비트의 오류 수정 가능 (2023년 2회)
HDLC
데이터링크계층 프로토콜로, 점대점 방식이나 다중 방식의 통신에서 사용되는 ISO에서 표준화한 동기식 비트 중심의 데이터 링크 프로토콜
다음과 같은 구조를 가진다. (2023년 2회)
Flag | Address | Control | Data | Checksum | Flag |
시작 | 주소 | 제어 | 데이터(정보) | 오류검출 FCS,CRC | 끝 |
HTML
웹을 이루는 가장 기초적인 구성요소로, 웹 콘텐츠의 의미와 구조를 정의할 때 사용한다. 인터넷 웹 문서를 표현하는 표준화 된 마크업 언어이다. (2022년 2회)
HTTP
월드 와이드 웹 문서를 송 수신하기 위한 규칙들을 정의해 놓은 표준 프로토콜이다. 인터넷에서 요청과 응답에 의해 처리하는 프로토콜로 GET, POST, PUT등의 방식을 사용한다. (2022년 2회)
Hypertext
문장이나 단어 등이 링크를 통해 서로 연결된 네트워크처럼 구성된 문서로 이미지 등을 누르면 다른 사이트로 옮겨갈 수 있도록 하는 텍스트이다. (2022년 2회)
I.
ICMP
IP의 동작 과정에서 전송 오류가 발생하는 경우에 오류 정보를 전송하는 목적으로 사용되는 프로토콜 (2020년 3회)(2023년 1회)
IGMP
호스트 컴퓨터와 인접 라우터가 멀티캐스트 그룹 멤버십을 구성하는 데 사용하는 통신 프로토콜.
화상회의, IPTV에서 활용된다.
주요 기능에는 그룹 가입, 멤버십 감시, 멤버십 응답, 멤버십 탈퇴가 있다.
IGP(Interior Gateway Protocol) (하위목록: RIP, OSPF)
내부 라우팅 프로토콜
라우팅 프로토콜의 한 종류로 동일한 AS내의 라우팅에서 사용되는 프로토콜 (2022년 2회)
- RIP
거리 벡터 라우팅 기반 메트릭 정보를 인접 라우터와 주기적으로 교환하여 라우팅 테이블을 갱신하고, 라우팅 테이블을 구성/ 계산하는 데 Bellman-Ford 알고리즘을 사용하는 내부 라우팅 프로토콜
최대 홉수를 15개로 제한하고, 30초마다 전체 라우팅 정보를 브로드캐스팅 하는 특징이 있다. (2022년 2회)
- OSPF(OPen Shortest Path First)
규모가 크고 복잡한 TCP/IP 네트워크에서 RIP의 단점을 개선하기 위해 자신을 기준으로 링크 상태 알고리즘을 적용하여 최단 경로를 찾는 라우팅 프로토콜.
다익스트라 알고리즘을 사용하고 라우팅 매트릭 지정, AS분할 사용, 홉 카운트 무제한, 멀티캐스팅 지원 등의 특징이 있다. (2022년 2회)
IPC
운영체제에서 프로세스 간 서로 데이터를 주고받기 위한 통신기술.
주요 기법으로 메세지 큐, 공유메모리, 소켓, 세마포어가 있다. (2021년 1회)
IPSec
IP계층(3계층)에서 무결성과 인증을 보장하는 인증 헤더(AH)와 기밀성을 보장하는 암호화(ESP를 이용한 IP보안 프로토콜. (2020년 2회)
IPv6
IPv4가 가지고 있는 주소고갈, 보안성, 이동성 지원 등의 문제점을 해결하기 위해 개발된 128bit 주소 체계를 갖는 차세대 인터넷 프로토콜 (2020년 4회) (2021년 1회)
ISMS (Information Security Management System)
조직의 주요 정보 자산을 보호하기 위하여 정보보호 관리 절차와 과정을 체계적으로 수립하여 지속저긍로 관리하고 운영하기 위한 종합적인 체계 (2022년 1회)
J.
JSON
JSON은 속성-값(Attribute - value Pair)쌍 또는 "키-값 쌍" 으로 이루어진 데이터 오브젝트를 전달하기 위해 인간이 읽을 수 있는 텍스트를 사용하는 개방형 표준 포맷이다. (2020년 1회)
JUnit
자바 프로그래밍 언어용 단위 테스트 도구.
xUnit의 테스트 기법중 하나로, 숨겨진 단위 테스트를 끌어내어 정형화 시켜 단위 테스트를 쉽게 해주는 테스트용 프레임워크 (2022년 1회)
L.
LOD (Linked Open Data)
전세계 오픈된 데이터를 하나로 묶는 방식. link data와 open data의 합성어. (2020년 2회)
L2TP
L2TP는 Layer 2 Tunneling Protocol(계층 2 터널링 프로토콜)의 약자입니다. L2TP는 L2F(계층 2 포워딩 프로토콜)와 PPTP(지점간 터널링 프로토콜)가 결합된 프로토콜로 1999년에 처음 제안되었습니다. L2TP는 자체적으로 강력한 암호화 또는 인증을 제공하지 않기 때문에 IPsec이라는 또다른 프로토콜이 L2TP와 함께 사용되는 경우가 많습니다 (2023년 1회)
N.
NAT (Network Address Translation)
IP패킷에 있는 출발지 및 목적지의 IP주소와 TCP/UDP 포트 숫자 등을 바꿔 재기록하면서 네트워크 트래픽을 주고 받게 하는 기술 (2020년 4회)
R.
RARP(Reverce Address Resolution Protocol)
IP호스트가 자신의 물리 네트워크 주소는 알지만, IP주소를 모르는 경우, 서버로부터 IP주소를 요청하기 위해 사용하는 프로토콜
ARP의 반대 개념 (2021년 1회)
REST (Representation State Transfer)
웹과 같은 분산 하이퍼 미디어 환경에서 자원의 존재/ 상태 정보를 표준화 된 HTTP 메서드로 주고받는 웹 아키텍처.
S.
S-HTTP
중요 인터페이스 데이터 전송 시 웹상에서 네트워크 트래픽을 암호화하는 방법으로 클라이언트와 서버 간에 전송되는 모든 메시지를 각각 암호화하여 전송하고, 메시지 보호는 HTTP를 사용한 애플리케이션에 대해서만 가능하게 하는 보안 기술.
SIEM (Security Information and Event Management)
다양한 보안장비와 서버, 네트워크 장비 등으로부터 보안 로그와 이벤트 정보를 수집한 후 정보 간의 연관성을 분석하여 위협하는 상황을 인지하고, 침해 사고에 신속하게 대응하는 보안 관제 솔루션
기업에서 생성되는 테라바이트급의 정형/비정형 데이터와 방화벽, 안티바이러스 시스템, 서버, 네트워크장비 등으로부터 수집한 다양한 데이터 등을 빅데이터 기반의 로그 분석을 통하여 보안의 위협 징후를 빠르게 판단/ 대응 할 수 있도록 해주는 보안관제솔루션 (2022년 3회)
SOAP (Simple Object Access Protocol)
SOAP는 HTTP, HTTPS, SMTP등을 사용하여 XML 기반의 메세지를 네트워크 상태에서 교환하는 프로토콜이다. (2020년 2회)
SSO(Single Sign On)
커버로스에서 사용되는기술로 한 번의 인증 과정으로 여러 컴퓨터상의 자원을 이용할 수 있도록 여러 컴퓨터상의 자원을 이용할 수 있도록 해주는 인증 기술.
1980년대 중반 MIT의 Athena 프로젝트의 일환으로 개발되었으며 클라이언트/ 서버 모델에서 동작하고 대칭 키 암호기법에 바탕을 둔 티켓 기반의 프로토콜이다. (2023년 1회)
SQL Injection
악의적인 SQl구문을 삽입하여 데이터베이스 접근을 통해 정보를 탈취, 조작하는 기술 (2020년 2회)
T.
TKIP (Temporal Key Integrity Protocol)
임시 키 무결성 프로토콜은 IEEE 802.11i의 암호화 방식으로 초기 Wi-Fi 장비에서 널리 사용되었던 안전하지 않은 Wep 암호화 표준을 대처하기 위한 암호 프로토콜 (2022년 1회)
U.
UDDI(Universal Description, Deiscovery and Integration)
웹 서비스에 대한 정보인 WSDL을 등록하고 검색하기 위한 저장소로 공개적으로 접근, 검색이 가능한 레지스트리이자 표준.
UI (User Interface)
넓은 의미에서 사용자와 시스템 사이에서 의사소통 할 수 있도록 고안된 물리적, 가상의 매개체이다. (2021년 2회)
UX (User eXprience)
제품과 시스템, 서비스 등을 사용자가 직/간접적으로 경험하면서 느끼고 생각하는 총체적 경험을 의미한다.
UX는 UI를 포함하는 관계이다. (2021년 2회)
V.
VPN (Virtual Private Network)
VPN은 인터넷과 같은 공중망에 인증, 암호화, 터널링 기술을 활용하여 마치 전용망을 사용하는 효과를 가지는 보안 솔루션이다.
여러 공중 인터넷망을 하나의 사설망처럼 사용할 수 있는 기술로, 공중망과 사설망의 중간 단계이고, 방식으로는 SSL방식과 IPSec방식이 있다. (2022년 2회)
W.
WSDL (Web Service Description Languague)
웹 서비스명, 제공위치, 메시지 포멧, 프로토콜 정보 등 웹 서비스에 대한 상세 정보가 기술된 XML 형식으로 구현되어 있는 언어
SOAP와 XML스키마와 결합하여 인터넷 상에 웹 서비스를 제공하기 위해 사용되기도 한다. (2021년 1회)
X.
XML
HTML의 단점을 보완한 인터넷 언어로, SGML의 복잡한 단점을 개선한 특수한 목적을 갖는 마크업 언어 (2020년 1회)
XSS(Cross Site Scripting)
검증되지 않은 외부 입력 데이터가 포함된 웹 페이지가 전송되는 경우, 사용자가 해당 웹 페이지를 열람함으로써 웹페이지에 포함된 부적절한 스크립트가 실행되는 공격
계속 수정중입니다!
출처목록은 아래에!
패키지 다이어그램 - https://ocwokocw.tistory.com/23?category=844459
UML - 패키지 다이어그램 - 구현
- 이 글은 UML Distilled (마틴 파울러)책을 기반으로 작성하였습니다. - 패키지 구현(Realization) 특정 패키지가 인터페이스를 정의하고 다른 몇 개의 패키지들이 구현하는 경우가 있다. 위의 다이어그
ocwokocw.tistory.com
[이해하기] NAT (Network Address Translation) - 네트워크 주소 변환 | STEVEN J. LEE
NAT (Network Address Translation – 네트워크 주소 변환) 이란, IP 패킷에 있는 출발지 및 목적지의 IP 주소와 TCP/UDP 포트 숫자 등을 바꿔 재기록하면서 네트워크 트래픽을 주고 받는 기술입니다.
www.stevenjlee.net
프로세스 상태 전이도 - https://itwiki.kr/w/%ED%94%84%EB%A1%9C%EC%84%B8%EC%8A%A4_%EC%83%81%ED%83%9C
IT위키
IT에 관한 모든 지식. 함께 만들어가는 깨끗한 위키
itwiki.kr
클래스 다이어그램 - https://brownbears.tistory.com/577
[UML] 클래스 다이어그램 (Class Diagram)
클래스 다이어그램은 구조 다이어그램으로 클래스 내부 구성요소 및 클래스 간의 관계를 도식화하여 시스템의 특정 모듈이나 일부 및 전체를 구조화 합니다. 개발 하기 전, 클래스 다이어그램
brownbears.tistory.com
L2TP - https://www.expressvpn.com/kr/what-is-vpn/protocols/l2tp
계층 2 터널링 프로토콜 L2TP/IPsec | ExpressVPN (익스프레스VPN)
L2TP를 IPsec과 함께 사용하여 뛰어난 보안을 확보하세요. 함께 사용하면 PPTP보다 안전하면서도 설치하기 쉽습니다.
www.expressvpn.com
'Study > 정보처리기사' 카테고리의 다른 글
2023년 2회 정보처리기사 실기 기출문제 풀이 (0) | 2023.10.03 |
---|---|
2023년 1회 정보처리기사 실기 기출문제 풀이 (0) | 2023.09.30 |
2022년 3회 정보처리기사 실기 기출문제 풀이 (0) | 2023.09.27 |
2022년 2회 정보처리기사 실기 기출문제 풀이 (1) | 2023.09.27 |
2022년 1회 정보처리기사 실기 기출문제 풀이 (0) | 2023.09.25 |