Certificate/정보처리기사

[실기 시험 준비]2022 기출 - 3회(65/100)

S_sun 2024. 7. 25. 10:51

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)

728x90
반응형