정보처리기사 정리2

뿌엑·2022년 5월 6일
0

정보처리기사

목록 보기
20/20

표기법

  • 카멜 표기법
    • 식별자 표기시 여러 단어가 이어지면 첫 단어 시작만 소문자로 표기하고, 각 단어의 첫 글자는 대문자로 지정하는 표기법
  • 파스칼 표기법
    • 식별자 표기시 여러 단어가 이어지면 각 단어의 첫 글자는 대문자로 지정하는 표기법
  • 스네이크 표기법
    • 식별자 표기시 여러 단어가 이어지면 단어 사이에 언더바를 넣는 표기법
  • 헝가리안 표기법
    • 식별자 표기시 접두어에 자료형을 붙이는 표기법

UI 설계 원칙

  • 직관성: 누구나 쉽게 이해하고 사용할 수 있어야 한다.
  • 학습성: 누구나 쉽게 배우고 익힐 수 있어야 한다.
  • 유연성: 사용자의 요구사항을 최대한 수용하며 오류를 최소화해야 한다.
  • 유효성: 사용자의 목적을 정확하게 달성해야 한다.

데이터베이스 구조

  • 스키마
    • 데이터베이스의 구조, 제약조건 등의 정보를 담고 있는 기본적 구조
  • 테이블
    • 데이터 저장 공간
  • 도메인
    • 하나의 속성이 가질 수 있는 원자값들의 집합
    • 속성의 데이터 타입과 크기, 제약조건 등의 정보
    • 하나 이상의 물리 테이블에서 유도되는 가상 테이블
  • 인덱스
    • 검색을 빠르게 하는 데이터 구조

DRS 유형

  • Mirror Site
    • 주 센터와 데이터복구센터 모두 운영 상태로 실시간 동시 서비스가 가능한 재해복구 센터
    • 재해 발생시 복구까지 소요시간(RTO)는 즉시(이론적 0)
  • Hot Site
    • 주 센터와 동일한 수준의 자원을 대기 상태로 원격지에 보유하면서 동기, 비동시 방식의 미러링을 통해 데이터의 최신 상태를 유지하고 있는 재해복구센터
    • 재해 발생시 복구까지 소요시간(RTO)는 4시간 이내
  • Warm Site
    • Hot Site와 유사하나 재해복구센터에 주 센터와 동일한 수준의 자원을 보유하는 대신 중요성이 높은 자원만 부분적으로 재해복구센터에 보유하고 있는 센터
    • 데이터 백업 주기는 수 시간~1일
    • 재해 발생시 복구까지 소요시간(RTO)는 수일~수주
  • Cold Site
    • 데이터만 원격지에 보관하고 재해시 데이터를 근간으로 필요 자원을 조달하여 복구할 수 있는 재해복구센터
    • 재해 발생시 복구까지 소요시간(RTO)은 수주~수개월
    • 구축 비용이 저렴하나 복구 소요 시간이 길고 신뢰성이 낮음

보안 공격 종류

  • 부 채널 공격(Side Channel Attack)
    • 암호화 알고리즘의 실행 시기의 전력소비, 전자기파 방사 등 물리적 특성을 측정하여 암호키 등 내부 비밀 정보를 부 채널에서 획득하는 공격 기법
  • 드라이브 바이 다운로드(Drive By Download)
    • 악의적인 해커가 불특정 웹 서버와 웹 페이지에 악성 스크립트를 설치하고, 불특정 사용자 접속시 사용자 동의없이 실행되어 의도된 서버(멀웨어 서버)로 연결하여 감염시키는 공격 기법
  • 워터링홀(Watering Hall)
    • 특정인에 대한 표적 공격을 목적으로 특정인이 잘 방문하는 웹 사이트에 악성코드를 심거나 악성코드를 배포하는 URL로 자동으로 유인하여 감염시키는 공격 기법
  • 스캠 공격(SCAM)
    • 기업 이메일 계정을 도용하여 무역 대금을 가로채는 사이버 범죄
  • 하트 블리드(HeartBleed)
    • OpenSSL 암호화 라이브러리의 하트비트(Heartbeat)란 확장 모듈에서 클라이언트 요청 메시지를 처리할 때 데이터 길이에 대한 검증을 수행하지 않는 취약점을 이용하여 시스템 메모리에 저장된 64KB 크기의 데이터를 외부에서 아무런 제한없이 탈취할 수 있도록 하는 취약점
  • 크라임웨어(Crimeware)
    • 중요한 금융정보 또는 인증정보를 탈취하거나 유출을 유도하여 금전적인 이익 등의 범죄행위를 목적으로 하는 악성코드
  • 프로토콜 취약점(IoT-SSDP; Simple Service Discovery Protocol)
    • 단순 서비스 검색 프로토콜(SSDP)의 특성을 활용하여 IoT Device를 좀비 PC로 이용한 분산 서비스 거부 공격
  • 윈드토커(WindTalker)
    • 와이파이/핫스팟 연결 디바이스의 터치스크린, 키보드 타이핑 등의 CSI(Channel State Information) 무선신호패턴을 스니핑하여 해킹하는 기술
  • 토르 네트워크(Tor Network)
    • 네트워크 경로를 알 수 없도록 암호화 기법을 사용하여 데이터를 전송하며, 익명으로 인터넷을 사용할 수 있는 가상 네트워크
  • 멜트다운(Meltdown)
    • 인텔 x86 아키텍처에서 CPU 파이프라인의 비순차 명령 실행시 발생하는 버그를 악용해서 커널 사용자 영역의 우회를 통해 시스템 메모리에 접근하여 내용을 확인할 수 있는 취약점
  • 스펙터(Spectre)
    • 실패한 분기 예측으로 인해 메모리 데이터가 관찰될 수 있는 취약점을 이용하여 사용자 프로그램이 다른 사용자 프로그램의 메모리 영역을 훔쳐보고 정보를 탈취할 수 있는 취약점
    • 분기 예측이 적용된 현대 모든 마이크로프로세서에 영향을 주는 하드웨어 보안취약점
  • MITM 공격(Man in the Middle)
    • 네트워크 통신을 조작하여 통신 내용을 도청 및 조작하는 공격기법
    • 통신을 연결하는 두 사람 사이 중간에 침입하여 두 사람의 정보를 탈취하는 중간자 공격
  • DNS 스푸핑 공격(Spoofing)
    • 공격 대상에 전달되는 DNS 응답(IP 주소)을 조작하거나 DNS 서버의 캐시 정보를 조작하여 희생자가 의도하지 않은 주소로 접속하게 만드는 공격기법
  • 포트 스캐닝(Port Scanning)
    • 공격자가 침입 전 대상 호스트에 어떤 포트(서비스)가 활성화되어 있는지 확인하는 기법으로 침입 전 취약점을 분석하기 위한 사전 작업
  • 디렉토리 리스팅(Directory Listing)
    • 웹 애플리케이션을 사용하고 있는 서버의 미흡한 설정으로 인해 인덱싱 기능이 활성화되어 있을 경우, 공격자가 강제 브라우징을 통해 서버 내 모든 디렉토리 및 파일 목록을 볼 수 있는 취약점
  • 리버스 쉘 공격(Reverse Shell)
    • 타겟 서버가 클라이언트(공격자)로 접속해서 클라이언트가 타겟 서버의 쉘을 획득하여 공격하는 기법
  • 익스플로잇(Exploit)
    • 소프트웨어나 하드웨어의 버그 또는 취약점을 이용하여 공격자가 의도한 동작이나 명령을 실행하도록 하는 코드 또는 그런 행위

보안공격 대응 기술

  • 허니팟(Honeypot)
    • 비정상적 접근을 탐지하기 위해 의도적으로 설치한 시스템으로 허술함을 노출하여 해커의 공격을 유도하는 시스템
  • OWASP Top 10
    • 웹 애플리케이션 취약점 중 공격 빈도가 높으며 보안상 큰 영향을 줄 수 있는 10가지 취약점에 대한 대응 방안을 제공하는 웹 보안 기술 가이드
  • 핑거프린팅(Finger Printing)
    • 멀티미디어 컨텐츠에 저작권 정보와 구매한 사용자 정보를 삽입하여 컨텐츠 불법 배포자에 대한 위치 추적이 가능한 기술
  • 사이버 위협정보 분석 공유시스템(C-TAS; Cyber Threats Analysis System)
    • 사이버 위협정보를 수집해서 인터넷진흥원(KISA) 주관으로 관계 기관과 자동화된 정보공유를 할 수 있는 침해 예방 시스템

애플리케이션을 실행하지 않고 소스 코드에 대한 코딩 표준, 코딩 스타일, 코드 복잡도 및 남은 결함을 발견하기 위해 사용하는 도구

  • 정적 분석 도구

데이터 제어어

  • GRANT: 사용자에 권한 부여
  • REVOKE: 사용자에 부여한 권한 제거
  • COMMIT: 트랜잭션에서 수행한 작업 확정
  • ROLLBACK: 트랜잭션을 시작하기 이전 상태로 복원
  • SAVEPOINT: 트랜잭션 작업 도중 특정 지점 저장(COMMIT이나 ROLLBACK의 기준점으로 사용)

데이터베이스 설계 순서

개념적 설계 → 논리적 설계 → 물리적 설계

SQL Injection

  • 웹 응용 프로그램에 강제로 SQL 구문을 삽입하여 내부 데이터베이스(DB) 서버의 데이터를 유출 및 변조하고 관리자 인증을 우회하는 공격 기법

관계대수 연산자

일반집합 연산자

  • 합집합: 두 개의 릴레이션을 합해 하나의 릴레이션 반환
  • 교집합: 두 릴레이션 모두에 속한 튜플 반환
  • 차집합: R-S로 표현하며 R 릴레이션에 속하지만 S 릴레이션에 속하지 않는 튜플들로 결과 릴레이션 구성
  • 카티션 프로젝트: 릴레이션 R에 속한 튜플들과 릴레이션 S에 속한 튜플들의 모든 연결가능한 조합으로 구성되는 릴레이션

※ 카티션 프로젝트를 제외한 나머지는 차수와 속성 개수가 같고, 서로 대응하는 도메인(속성명은 달라도 됨)이 같아 합병가능 해야 한다.

순수 관계 연산자

  • 셀렉트: 하나의 릴레이션에서 주어진 조건을 만족하는 튜플을 선택한다. 결과 릴레이션은 입력 릴레이션의 차수와 동일하고 카디널리티는 작거나 같다.
    (SQL에서 SELECT 명령어의 WHERE절에 해당한다.)

  • 프로젝션: 하나의 릴레이션에서 주어진 속성들의 값으로 구성된 튜플들을 선택한다. 결과 릴레이션의 차수는 입력 릴레이션의 차수보다 작거나 같고, 중복된 튜플은 한 번만 나타난다.
    (SQL에서 SELECT 명령어의 SELECT절 열 이름 리스트에 해당한다.)

  • 조인: 두 릴레이션의 공통 속성을 기준으로 속성값이 같은 튜플을 수평으로 결합하여 새로운 하나의 릴레이션을 만드는 연산


  • 디비전: R ÷ S로 표현되며 X ⊃ Y인 R(X)와 S(Y)가 있을 때(릴레이션 R이 릴레이션 S의 모든 속성 포함)를 전제로 한다. R 릴레이션의 속성이 S 릴레이션의 속성값을 모두 가진 튜플에서 S 릴레이션이 가진 속성만 제외한 튜플로 결과 릴레이션을 구성하는 연산이다.

도메인: 하나의 속성이 가질 수 있는 같은 타입의 모든 값의 집합
ex) 도서번호 속성의 도메인은 'BNO(도메인 이름) INT(도메인 타입)'
카디널리티: 특정 데이터 집합의 Unique한 값의 개수(중복 제거)
차수: 한 릴레이션이 지니는 속성 개수

프로세스 스케줄링

  • 프로세스 스케줄링은 CPU를 사용하려 하는 프로세스 사이의 우선순위를 관리하는 작업이다.

용어

  • 서비스 시간
    • 프로세스가 결과를 산출하기까지 소요되는 시간
  • 응답시간(반환시간)
    • 프로세스들이 수행되고 결과를 산출하기까지 소요되는 시간
    • 응답시간 = 대기시간 + 수행시간
  • 평균 응답시간(평균 반환시간)
    • 대기 큐의 프로세스가 결과를 산출하기까지 소요되는 평균 시간
  • 대기시간
    • 프로세스가 프로세서에 할당되기 전까지 큐데 대기하는 시간
    • 프로세스가 도착 즉시 프로세서에 할당되면 대기시간은 0이 됨

프로세스 스케줄링 유형

  1. 선점형 스케줄링
  • 하나의 프로세스가 CPU를 차지하고 있을 때, 우선순위가 높은 다른 프로세스가 현재 프로세스를 중단시키고 CPU를 점유하는 스케줄링 방식
  • 비교적 빠른 응답
  • 대화식 시분할 시스템에 적합
  • 라운드 로빈, SRT, 다단계 큐
  1. 비선점형 스케줄링
  • 한 프로세스가 CPU를 할당받으면 작업 종료 후 CPU 반환 시까지 다른 프로세스는 CPU 점유가 불가능한 스케줄링 방식
  • 응답시간 예상 용이
  • 모든 프로세스에 대한 요구를 공정하게 처리
  • 우선순위, 기한부, FCFS, HRN, SJF

선점형 스케줄링 알로리즘 유형

  • 라운드 로빈(Round Robin)
    • 프로세스는 같은 크기의 CPU 시간 할당, 프로세스가 할당된 시간 내 처리를 끝내지 못하면 준비 큐 리스트의 가장 뒤로 보내지고 CPU는 대기 중인 다음 프로세스로 넘어감
    • 균등한 CPU 점유시간을 가지며 시분할 시스템을 사용한다.
      • 시분할 시스템: CPU 스케줄링과 다중 프로그래밍을 이용해서 각 사용자들에 컴퓨터 자원을 시간적으로 분할하여 사용할 수 있게 하는 대화식 시스템이다.
  • SRT(Shortest Remaining Time First)
    • 가장 짧은 시간이 소요되는 프로세스를 먼저 수행하고, 남은 처리 시간이 더 짧다고 판단되는 프로세스가 준비 큐에 생기면 그로 프로세스가 선점됨
    • 짧은 수행시간을 갖는 프로세스가 먼저 수행된다.
  • 다단계 큐(Multi Level Queue)
    • 작업을 여러 종류 그룹으로 분할, 여러 개의 큐를 이용하여 상위단계 작업에 의한 하위단계 작업이 선점됨
    • 각 큐는 자신만의 독자적인 스케줄링을 가짐

비선점형 스케줄링 알고리즘 유형

  • 우선순위(Priority)
    • 프로세스별로 우선순위가 주어지고 우선순위에 따라 CPU를 할당
    • 주요/긴급 프로세스를 우선 처리
  • 기한부(Deadline)
    • 작업들이 명시된 시간이나 기한 내 완료되도록 계획
    • 요청에 명시된 시간 내 처리 보장
  • FCFS(First Come First Service)
    • 프로세스가 대기 큐에 도착한 순서에 따라 CPU 할당
    • FIFO 알고리즘이라고도 함
  • HRN(Highest Response Ratio Next)
    • 대기 중인 프로세스 중 현재 응답률(Response Ratio)이 가장 높은 것을 선택
    • SJF의 약점인 기아 현상을 보완한 기법으로 긴 작업과 짧은 작업 간 불평등 완화

0개의 댓글