1. 프로그래밍 언어 - 출력값 (X)
2. 용어 - 관계대수 기호(O)
- 합집합(UNION) = U
- 차집합(DIFFERENCE) = ㅡ
- 교차곱(CARTESIAN PRODUCT) = X
- 프로젝트(PROJECT) = π
- 조인(JOIN) = ▷◁
3. 용어 - 디자인 패턴 (X)
모듈 간의 관계 및 인터페이스를 설계할 때 참조할 수 있는 전형적인 해결방식 또는 예제
생성패턴 (Creational Pattern) - 클래스나 객체의 생성과 참조 과정 정의
추상 팩토리(Abstract Factory)
- 구체적인 클래스에 의존하지 않음
- 인터페이스를 통해 서로 연관 · 의존하는 객체들의 그룹으로 생성하여 추상적으로 표현
- 연관된 서브 클래스를 묶어 한 번에 교체하는 것이 가능
빌더(Builder)
- 작게 분리된 인스턴스를 조합하여 객체 생성
- 객체의 생성과정과 표현방법을 분리해 동일한 객체 생성에서도 서로 다른 결과를 만듧
팩토리 메소드(Factory Method)
- 가상 생성자 패턴(Virtual Constructor Pattern)
- 객체 생성을 서브 클래스에서 처리하도록 분리하여 캡슐화한 패턴
- 상위 클래스에서 인터페이스만 정의, 실제 생성을 서브 클래스가 담당
프로토타입(Prototype)
- 원본 객체를 복제하는 방법으로 객체를 생성하는 패턴
- 일반적인 방법
- 비용이 큰 경우 이용
싱글톤(Singleton)
- 하나의 객체를 생성하면 생성된 객체를 어디서든 참조할 수 있지만, 여러 프로세스가 동시 참조 불가
- 클래스 내에서 인스턴스가 하나뿐임을 보장
- 불필요한 메모리 낭비 최소화
구조패턴 (Structural Pattern) - 구조가 복잡한 시스템 개발을 쉽도록 클래스나 객체들을 조합하여 더 큰 구조로 만드는 패턴
어댑터(Adapter)
- 호환성이 없는 클래스들의 인터페이스를 다른 클래스가 이용할 수 있도록 변화해주는 패턴
- 기존 클래스를 이용하고 싶지만, 인터페이스가 일치하지 않을 경우 이용
브리지(Bridge)
- 구현부에서 추상층을 분리해 서로가 독립적으로 확장할 수 있도록 구성한 패턴
- 기능과 구현을 두 개의 별도 클래스로 구현
컴포지트(Composite)
- 여러 객체를 가진 복합 객체와 단일 객체를 구분없이 다루고자 할 때 사용하는 패턴
- 객체들을 트리구조로 구성하여 복합객체 안에 복합객체가 포함되는 구조를 표현
데코레이터(Decorator)
- 객체 간의 결합을 통해 능동적으로 기능들을 확장할 수 있는 패턴
- 임의의 객체를 부가적인 기능을 추가하기 위해 다른 객체들을 덧붙이는 방식
퍼싸드(Facade)
- 복잡한 서브 클래스들을 피해 더 상위에 인터페이스를 구성함으로써 서브 클래스들의 기능을 간편하게 사용할 수 있도록 하는 패턴
- 서브 클래스 사이의 통합 인터페이스를 제공하는 Wrapper 객체가 필요
플라이웨이트(Flyweight)
- 인스턴스가 필요할 때마다 매번 생성하는 것이 아니고 가능한 공유해서 사용함으로써 메모리를 절약하는 패턴
- 다수 유사 객체를 생성하고자 조작할 때 유용
프록시(Proxy)
- 복잡한 시스템을 개발하기 쉽도록 클래스나 객체들을 조합하는 패턴
- 대리자라는 이름으로 불림
- 내부에서는 객체 간의 복잡한 관계를 단순하게 정리해주고, 외부에서는 객체의 세부적인 내용을 숨기는 역할
행위패턴 (Behavioral Pattern) - 클래스, 객체들이 서로 상호작용하는 방법이나 책임 분배 방법을 정의하는 패턴
책임 연쇄(Chain of Responsibility)
- 요청을 처리할 수 있는 객체가 둘 이상 존재해 객체가 처리하지 못하면 다음 객체로 넘어가는 형태
- 요청을 처리할 수 있는 객체들이 고리로 묶여있어 요청이 해결될 때까지 고리를 따라 책임이 넘어감
커맨드(Command)
- 요청을 객체의 형태로 캡슐화해 재이용하거나 취소할 수 있도록 요청에 필요한 정보를 저장하거나 로그에 남기는 패턴
- 요청에 사용되는 각종 명령어들을 추상 클래스와 구체 클래스로 분리하여 단순화
인터프리터(Interpreter)
- 언어에 문법 표현을 정의하는 패턴
- SQL이나 통신 프로토콜과 같은 것을 개발할 때 사용
반복자(Iterator)
- 자료 구조와 같이 접근이 잦은 객체에 대해 동일한 인터페이스를 사용하도록 하는 패턴
- 내부 표현 방법의 노출없이 순차적인 접근 가능
중재자(Mediator)
- 수많은 객체들 간의 복잡한 상호작용을 캡슐화하여 객체로 정의하는 패턴
- 객체 간의 의존성을 줄여 결합도를 감소시킴
- 객체 간의 통제와 지시의 역할 수행
메멘토(Memento)
- 특정 시점에서의 객체 내부 상태를 객체화함으로써 이후 요청에 따라 객체를 해당 시점의 상태로 돌릴 수 있는 기능을 제공하는 패턴
- Ctrl + z 같은 되돌리기 기능을 개발할 때 주로 이용
옵서버(Observer)
- 한 객체의 상태가 변화하면 객체의 상속되어 있는 다른 객체들에게 변화된 상태를 전달하는 패턴
- 분산된 시스템 간에 이벤트 생성, 발행하고 이를 수신해야할 때 이용
전략(Strategy)
- 동일한 계열의 알고리즘들을 개별적으로 캡슐화하여 상호교환할 수 있게 정의하는 패턴
- 클라이언트는 독립적으로 원하는 알고리즘을 선택하여 사용할 수 있으며, 클라이언트에 영향없이 알고리즘의 변경 가능
탬플릿 메소드(Template Method)
- 상위 클래스에서 골격을 정의하고, 하위 클래스에서 세부 처리를 구체화하는 구조의 패턴
- 유사한 서브 클래스를 묶어 공통된 내용을 상위 클래스에서 정의함으로써 코드의 양을 줄이고 유지보수 용이하게 해줌
방문자(Visitor)
- 각 클래스들의 데이터 구조에서 처리 기능을 분리하여 별도의 클래스로 구성하는 패턴
- 분리된 처리기능은 각 클래스를 방문하여 수행
4. 프로그래밍 언어 - 출력값 (O)
5. 네트워크 (O)
- 192.168.1.0/24 네트워크를 FLSM 방식을 이용해 3개의 subnet으로 나누었을 때, 두 번째 네트워크의 브로드캐스트 IP 주소를 10진수 방식으로 쓰기
- 11111111 11111111 11111111 00000000
- 3개의 서브넷이니까 2개의 비트로 사용
- 00 / 01 / 10 / 11
- 그 중 두 번째 네트워크 => 01 => 01000000
- 첫 번째 네트워크 : 192.168.1.0 (네트워크 주소) ~ 192.168.1.63 (브로드캐스트 주소)
- 두 번째 네트워크 : 192.168.1.64 (네트워크 주소) ~ 195.168.1.127 (브로트캐스트 주소)
- 세 번째 네트워크 : 192.168.1.128 (네트워크 주소) ~ 192.168.1.191 (브로드캐스트 주소)
- 네 번째 네트워크 : 192.168.1.192 (네트워크 주소) ~ 192.168.1.255 (브로드캐스트 주소)
6. 용어 - 테스트 (O)
Equivalence Partition (동치 분할 검사) - 블랙박스 테스트
- 입력 조건에 타당한 입력 자료와 타당하지 않은 입력 자료 개수를 균등하게 하여 테스트 케이스 정함
- 해당 입력 자료에 맞는 결과가 출력되는지 확인
- 동등 분할 기법, 동치 클래스 분해
Boundary Value Analysis (경계값 분석) - 블랙박스 테스트
- 입력 조건의 중간 값보다 경계값에서 오류 발생 확률이 높다는 점
- 입력 조건의 경계값을 테스트 케이스로 선정
Cause-Effect Graph (원인-효과 그래프) - 블랙박스 테스트
- 입력 데이터 간의 관계와 출력에 영향을 미치는 상황을 분석 후, 효용성이 높은 테스트 케이스를 선정하여 검사
Error Guess (오류 예측 검사) - 블랙박스 테스트
- 과거 경험이나 확인자의 감각으로 테스트 하는 기법
Comparision Test (비교 검사) - 블랙박스 테스트
- 여러 버전의 프로그램에 동일한 테스트 자료를 제공하여 동일한 결과가 출력되는지 확인
Base Path Test (기초 경로 검사) - 화이트박스 테스트
- 절차적 설계의 논리적 복잡성 측정
Loop Test (루프 검사) - 화이트박스 테스트
- 반복 구조에 초점을 맞춰 실시
Data Flow Test (데이터 흐름 검사) - 화이트박스 테스트
- 변수의 정의와 사용 위치에 초점을 맞춰 실시
7. DB - SQL (X)
8. 용어 (X)
사회공학
- 컴퓨터 보안에 있어서 인간 상호 작용의 깊은 신뢰를 바탕으로 사람들을 속여 정상 보안 절차를 깨트리지 위한 비기술적 시스템 침입 수단
다크데이터
- 특정 목적을 가지고 데이터를 수집하였으나, 이후 활용되지 않고 저장만 되어있는 대량의 데이터를 의미
- 미래에 사용될 가능성을 고려하여 저장 공간에서 삭제되지 않고 보관되어 있으나, 이는 저장 공간의 낭비뿐만 아니라 보안 위험을 초래할 수 있음
9. 프로그래밍 언어 - 출력값 (O)
10. 용어 - 보안 (X)
ESM (Enterprise Security Management)
- 다양한 장비에서 발생하는 로그 및 보안 이벤트를 통합하여 관리하는 보안 솔루션
- 방화벽, IDS, IPS, 웹 방화벽, VPN 등에서 발생한 로그 및 보안 이벤트를 통합하여 관리함으로써 비용 및 자원 절약
- 보안 솔루션 간의 상호 연동을 통해 종합적인 보안 관리 체계를 수립
11. 선택 - 형상관리 도구 (O)
CVS, Git, SVN
12. DB - SQL (O)
13. 프로그래밍 언어 - 출력값 (O)
14. 용어 - 보안 및 보안위협 (O)
Pharming
- 피싱(Phishing)과 조작(Farming)의 합성어
- 악성 프로그램에 감염된 PC를 조작하여 정상 사이트에 접속하더라도 가짜 사이트로 접속을 유도하여 금융거래 정보를 빼낸 후 금전적인 피해를 입히는 사기 수법
Tvishing
- TV와 피싱(Phising)의 합성어
- 해커가 인터넷이 연결된 스마트 TV에 악성코드를 심어 사용자 몰래 TV의 기능을 악용하는 행위
Trustzone
- 칩 설계회사인 ARM(Advanced RISC Machine)에서 개발한 기술
- 하나의 프로세서 내에 일반 애플리케이션을 처리하는 일반 구역과 보안이 필요한 애플리케이션을 처리하는 보안 구역으로 분할하여 관리하는 하드웨어 기반의 보안 기술
APT (Advanced Persistent Threat)
- 고도로 정교하고 지속적인 공격
- 타켓 조직의 보안을 저해하거나 중요 정보를 유출하는 것을 목적
- 특정 타겟을 정해 조직적이고 전문적으로 계획된 공격
Typosquatting
- 네티즌들이 사이트에 접속할 때 주소를 잘못 입력하거나 철자를 빠뜨리는 실수를 이용하기 위해 이와 유사한 유명 도메인을 미리 등록하는 것으로 URL 하이재킹이라고도 함
- 유명 사이트들의 도메인을 입력할 때 발생할 수 있는 온갖 도메인 이름을 미리 선점해 놓고 이용자가 모르는 사이에 광고 사이트로 이동하게 만듦
Hacktivism
- 해킹(Hack)과 액티비즘(Activisim)의 합성어
- 정치적, 사회적으로 동기를 부여받은 목적으로 컴퓨터 시스템을 해킹하거나 침입하는 행위
- 전산망을 마비시켜 해당 기관의 기능을 상실케 하거나, 웹사이트를 해킹한 뒤 자신들의 메시지를 게시해 기관을 조롱하기도 하며, 그들의 주장에 대한 사회적인 관심을 끌고자 해킹을 이용
Watering Hole
- 대상자의 정보를 미리 수집하여 대상자가 주로 방문하는 웹 사이트를 미리 감염시킨 뒤 잠복하면서 피해자의 컴퓨터에 악성코드를 추가로 설치하는 공격
Smurfing
- IP, ICMP 특성을 악용하여 엄청난 양의 데이터를 한 사이트에 집중적으로 보냄으로써 네트워크를 불능 상태로 만드는 공격 방법
- 네트워크 라우터에게 브로드캐스트 주소를 사용할 수 없게 미리 설정해 피해를 방지
Ransomware
- 내부 문서나 파일 등을 암호화해 사용자가 열지 못하게 하는 프로그램
- 암호 해독용 프로그램의 전달을 조건으로 사용자에게 돈을 요구하기도 함
CSRF(Cross Site Request Forgery)
- 사이트간 요청 위조
- 사용자가 자신의 의지와는 무관하게 공격자가 의도한 행위(데이터 수정, 삭제, 등록 등)을 특정 웹 사이트에 요청하게 하는 공격
15. 용어 - 보안 (X)
SSO(Single Sign On)
- 한 번의 로그인으로 개인이 가입한 모든 사이드를 이용할 수 있게 해주는 시스템
- 개인의 경우, 사이트에 접속하기 위해 아이디와 패스워드는 물론 이름, 전화번호 등 개인정보를 각 사이트마다 일일이 기록해야 하던 것이 한 번의 작업으로 끝나므로 불편함이 해소됨
- 기업에서는 회원에 대한 통합관리가 가능해 마케팅을 극대화
16. 용어 - 스케줄링 (X)
비선점 스케줄링(Non-Preemptive Scheduling)
- 이미 할당된 CPU를 다른 프로세스가 강제로 빼앗아 사용할 수 없음
- FCFS, SJF, 우선순위, HRN, 기한부
선점 스케줄링(Preemptice Scheduling)
- 하나의 프로세스가 CPU를 할당받아 실행하고 있을 때, 우선순위가 높은 다른 프로세스가 CPU를 강제로 빼앗아 사용
- Robin, SRT, 선점 우선순위, 다단계 큐, 다단계 피드백 큐
FCFS (First Come First Service)
- 가장 간단한 알고리즘
- 준비상태 큐에 도착한 순서에 따라 CPU 할당
SJF(Shortest Job First)
- 준비상태 큐에 기다리고 있는 프로세스 중에 실행 시간이 가장 짧은 프로세스에게 먼저 CPU 할당
- 가장 적은 평균 대기 시간을 제공하는 최적 알고리즘
- 실행시간이 긴 프로세스는 실행시간이 짧은 프로세스에게 할당 순위가 밀려 무한 연기 상태 발생할 수 있음
HRN (Hightest Response-ratio Next)
- 실행시간이 긴 프로세스에 불리한 SJF 기법을 보완
- 대기 시간과 서비스(실행) 시간을 이용
- 우선순위 계산 공식을 이용해 서비스 시간이 짧은 프로세스나 대기 시간이 긴 프로세스에게 우선순위를 주어 CPU 할당
- (대기 시간 + 실행 시간) / 실행시간
RR(Round Robin)
- 시분할 시스템을 위해 고안된 방식
- 준비상태 큐에 먼저 들어온 프로세스가 먼저 CPU를 할당받지만, 각 프로세스는 시간 할당량 동안만 실행한 후 실행이 완료되지 않으면 다음 프로세스에게 CPU를 넘겨주고 준비상태 큐의 가장 뒤로 배치됨
- 할당되는 시간이 작을 경우, 문맥 교환 및 오버헤드가 자주 발생되어 요청된 작업을 신속히 처리할 수 없음
SRT(Shortest Remaining Time)
- 현재 실행중인 프로세스의 남은 시간과 준비상태 큐에 새로 도착한 프로세스의 실행 시간을 비교하여 가장 짧은 실행 시간을 요구하는 프로세스에게 CPU를 할당하는 기법
- 시분할 시스템에 유용
- 준비상태 큐에 있는 각 프로세스의 실행 시간을 추적하여 보유하고 있어야 하므로 오버헤드가 증가함
17. 용어 - UML (O)
UML은 사물, 관계, 다이어그램으로 이루어져 있음
클래스
- UML에 표현되는 사물의 하나
- 객체가 갖는 속성과 동작을 표현
- 일반적으로 직사각형으로 표현
- 직사각형 안에 이름, 속성, 동작을 표기
인터페이스
- uml에 표현되는 사물의 하나
- 클래스나 컴포넌트의 동작을 모아 놓은 것
- 외부적으로 가시화되는 행동을 표현
- 단독으로 사용되는 경우는 없으며, 인터페이스 구현을 위한 클래스 또는 컴포넌트와 함께 사용됨
18. E-R 다이어그램 (O)
- 다이아몬드 : 관계 집합
- 점선 : 관계 집합과 속성을 연결
- 직사각형(entity) : 개체 집합을 의미하며, 키로 사용되는 항목에는 밑줄로 표시
- 직사각형 : 관계 집합의 속성
- 실선 : 개체 집합과 관계 집합을 연결
19. 프로그래밍 언어 - 출력값 (O)
20. 프로그래밍 언어 - 출력값 (O)
'Certificate > 정보처리기사' 카테고리의 다른 글
[실기 시험 준비]2022 기출 - 1회(75/100) (1) | 2024.07.25 |
---|---|
[실기 시험 준비]2022 기출 - 2회(70/100) (0) | 2024.07.25 |
[실기 시험 준비]2023 기출 - 1회(35/100) (0) | 2024.07.25 |
[실기 시험 준비]2023 기출 - 2회(55/100) (0) | 2024.07.25 |
[실기 시험 준비]2023 기출 - 3회(65/100) (0) | 2024.07.25 |