[정보처리기사 필기] 2022 기사패스 정보처리기사 기출문제 상세풀이 800제 : 51 ~ 100 오답정리

51. 병행제어의 로킹 (Locking)

  • 데이터베이스 관리에서 하나의 트랜잭션에 사용되는 데이터를 다른 트랜잭션이 접근하지 못하게 하는 것
  • 트랜잭션 갱신의 순서 : 잠금 (Lock) → 실행 (Execute) → 해제 (Unlock)
  • 로킹 단위
    • 병행 제어에서 한 번에 잠금할 수 있는 데이터 단위
    • 데이터베이스, 테이블, 레코드, 필드 등에 사용
    • 로킹 단위의 크기에 따른 관리의 복잡도와 공유성
      • 로킹 단위가 클 경우 : 잠금 수가 작음, 관리가 용이, 공유성 수준이 낮아짐
      • 로킹 단위가 작을 경우 : 잠금 수가 많음, 관리가 복잡, 공유성 수준이 높아짐 
  • 병행 제어 기법 
    • 2단계 잠금 기법 (2 Phase Locking)
    • 최적 병행수행 : 검증기법, 확인기법, 낙관적 기법
    • 타임 스탬프 순서 (Timestamp Ordering)

 

53. 관계 데이터베이스 주요 용어

  • 릴레이션 (Relation) : 2차원의 테이블, 스프레드 시트와 유사
  • 레코드 (Record) : 릴레이션의 각 행
  • 튜플 (Tuple) : 레코드를 좀 더 공식적으로 부른 용어
  • 애트리뷰트 (Attribute, 속성) : 릴레이션에서 이름을 가진 하나의 열
  • 도메인 (Domain) : 한 속성에 나타날 수 있는 값들의 집합 (속성이 가질 수 있는 값의 범위), 프로그래밍 언어의 데이터 타입과 유사, 같은 도메인이 여러 속성에서 사용될 수 있음
  • 차수 (Degree) : 한 릴레이션에 들어 있는 속성들의 수. 유효한 릴레이션의 최소 차수는 1. 릴레이션의 차수는 자주 바뀌지 않음
  • 카디널리티 (Cardinality) : 릴레이션의 튜플 수, 유효한 릴레이션은 카디널리티 0을 가질 수 있으며, 릴레이션의 카디널리티는 시간이 지남에 따라 계속 변함
  • 널 값 (Null Value) : 알려지지 않음, 적용할 수 없음을 나타내기 위해 사용하는 개념 숫자 "0"이나 공백문자 ' ', 공백문자열 " " 이 아닌 정해지지 않은 값
  • 릴레이션 스키마 (Relation Schema) : 릴레이션의 이름과 릴레이션의 속성들의 집합을 말함. 릴레이션을 위한 틀 (Framework)
  • 릴레이션 인스턴스 (Relation Instance) : 특정 시점에서 릴레이션에 들어 있는 튜플들의 집합, 시간의 흐름에 따라 계속 변함

 

55. 분산 데이터베이스의 투명성

  • 분할 투명성 (단편화)
    • 하나의 논리적 릴레이션이 여러 단편으로 분할되어 각 단편의 사본이 여러 사이트에 저장
  • 위치 투명성
    • 사용하려는 데이터의 저장 장소 명시가 불필요
    • 위치 정보가 System Catalog에 유지되어야 함
  • 지역사상 투명성
    • 지역 DBMS와 물리적 DB 사이의 매핑 보장
    • 각 지역 시스템 이름과 무관한 이름 사용 가능
  • 중복 투명성
    • DB 객체가 여러 사이트에 중복되어 있는지 알 필요가 없는 성질
  • 장애 투명성
    • 구성 요소 (DBMS, Computer)의 장애에 무관한 트랜잭션의 원자성 유지
    • 특정 지역의 컴퓨터 시스템이나 네트워크에 장애가 발생해도 데이터 무결성이 보장되는 것
  • 병행 투명성
    • 다수 트랜잭션 동시 수행 시 결과의 일관성 유지
    • Time Stamp, 분산 2단계 Locking을 이용해 구현

 

58. 데이터 제어언어 (DCL)

  • 데이터 제어어의 개념
    • 데이터베이스의 규정이나 기법을 정의하고 제어하는 언어 (Control Laguage)
    • 트랜잭션 제어 명령을 이용해 데이터베이스의 무결성과 보안, 회복, 동시성 제어 수행
  • 데이터 제어어의 종류
    • 무결성 기능
      • COMMIT : 수행된 결과를 실제 물리적 디스크로 저장
      • ROLLBACK : 명령 수행 실패, 수행 결과 원복
      • SAVEPOINT (checkpoint) : 저장점 지정, 지정된 저장점부터 현재까지 일부만 ROLLBACK 가능
    • 데이터 보안 기능 
      • GRANT : 데이터베이스 사용자에게 사용권한 부여
      • REVOKE : 데이터베이스 사용자에게 부여된 사용 권한 취소

 

60. 트랜잭션의 특징 (ACID)

  • Atomicity (원자성)
    • 분해할 수 없는 최소 단위
    • 연산 전체가 성공 또는 실패
    • 한 가지라도 실패할 경우 전체가 취소되어 무결성 보장 (All or Nothing)
    • 기법 : Commit / Rollback (트랜잭션 관리자)
  • Consistency (일관성)
    • 트랜잭션이 실행 성공 후 항상 모순 없이 일관성 있는 DB 상태 보존 
    • 기법 : 참조 무결성 기법 (무결성 제어기)
  • Isolation (고립성)
    • 현재 수쟁 중인 트랜잭션이 완료될 때까지 트랜잭션이 생성한 중간 연산 결과에 다른 트랜잭션들이 접근할 수 없음을 의미
    • 기법 : Serializable, Repeatable Read, Read Commit, Read Uncommit (병행 제어 관리자)
  • Durabilty (영속성)
    • 성공이 완료된 트랜잭션의 결과는 영구(속)적으로 데이터베이스에 저장
    • 기법 : 회복 기법 (연관회복 관리자)

 

61. UNIX의 쉘

  • 쉘의 개념
    • Linux와 Unix 명령어 입력 공간
    • 컴퓨터 내부를 관리하는 커널과 사용 자 간을 인터페이스 하는 명령어 해석기
    • 쉘 스크립트를 통해 시스템 운영 자동화가 가능
  • 쉘의 기능
    • 세션 별 변수 설정 등 사용자 지정 상태로 운영 체제 설정 지원
    • 사용자 요청에 기반한 명령어 작성
    • 백그라운드 처리 및 서브 쉘 생성
    • 일련의 명령어를 묶어 처리하는 스크립트 기능 지원
    • echo $SHELL 명령어를 통해 현재 사용중인 Shell 종류를 확인 가능

 

62. TCP/IP 프로토콜

 

64. 결합도

  • 모듈과 모듈 사이의 관련성을 나타냄
  • 관련성이 적을수록 모듈의 독립성이 높아 모듈 간 영향이 작아지게 됨
  • 효과적인 모듈화 설계를 위해서는 결합도를 낮춰야 함
  • 결합도의 종류
    • 자료 결합도 (Data Coupling) : 모듈 간의 인터페이스로 전달되는 파라미터를 통해서만 모듈 상호 작용이 일어남
    • 스탬프 결합도 (Stamp Coupling) : 모듈 간의 인터페이스로 배열이나 오브젝트, 스트럭쳐 등이 전달되는 경우
    • 제어 결합도 (Control Coupling) : 단순 처리할 대상인 값만 전달하는 것이 아닌 어떻게 처리해야 한다는 제어 요소가 전달되는 경우
    • 외부 결합도 (External Coupling) : 모듈이 다수의 관련 기능을 가질 때, 모듈 안의 구성 요소들이 그 기능을 순차적으로 수행하는 경우
    • 공통 결합도 (Common Coupling) : 파라미터가 아닌 모듈 밖에 선언되어 있는 전역 변수를 참조하고, 전역 변수를 갱신하는 식으로 상호 작용하는 경우
    • 내용 결합도 (Content Coupling) : 다른 모듈 내부에 있는 변수나 기능을 또 다른 모듈에서 사용하는 경우

 

67. 교착상태

  • 교착상태의 개념
    • 다중 프로세스 환경 하에 서로 다른 프로세스가 각자 자신이 소유한 자원을 포기하지 않고, 상대 프로세스의 자원을 무한 대기하고 있는 상태
  • 교착상태 해결 방안
    • 예방 (Prevention)
      • 상호배제 조건, 점유와 대기 조건, 비선점 조건 및 환형 대기 조건의 부정
    • 회피 (Avoidance)
      • 은행가 알고리즘 (Banker's Algorithm)
        • 프로세스가 자원을 요구할 때 시스템은 자원을 할당한 후에도 안정 상태로 낭아 있게 되는지를 사전에 검사하여 교착상태의 발생을 회피하는 기법
      • Wait-die, wound-wait 알고리즘
    • 발견 (Detection)
      • 시스템의 상태를 감시 알고리즘을 통해 교착상태 검사
      • 자원할당 그래프, Wait for Graph
    • 회복 (Recovery)
      • Deadlock이 없어질 때까지 프로세스를 순차적으로 Kill 하여 제거
      • 프로세스 종료 비용 최소화 : 우선순위, 진행비용, 복귀비용 등
      • 자원의 우선순위 할당 : 희생자 선택, 복귀, 기아 상태

 

68. IEEE 802.11 표준화 동향

  • 802.11b : 2.4GHz ISM 대역에서 최대 11 Mbps 전송속도를 지원하는 고속 PHY 개발
  • a : 5GHz ISM 대역에서 최대 54 Mbps 전송속도를 지원하는 고속  PHY 개발 
  • e : Qos 보증을 위한 MAC 강화
  • f : 액세스 포인트 간의 표준화된 프로토콜 개발
  • g : 2.4 GHz ISM 대역에서 최대 20 Mbps이상 전송 속도를 지원하는 고속 PHY roqkf
  • h : 802.11a에서 동적 주파수 선택 기능 추가
  • i : 보안을 위한 MAC 강화

 

69. TCP/IP 프로토콜

  • IP 프로토콜
    • ICMP, ARP, RARP : IP (3계층)의 대표적인 프로토콜
    • SNMP, DNS, DHCP, COAP : UDP (4계층)의 대표적인 프로토콜
  • 프로토콜 특징
    • UDP : RFC 768 문서에 정의된 비연결 지향형 통신 프로토콜
    • TCP : 송신 포트에서 수신 포트로 바이트 스트림을 전송하는 연결 지향형 통신 프로토콜
    • ARP : IP 주소를 MAC 주소로 변환하는 프로토콜 
    • ICMP : TCP/IP 에서 IP 패킷을 처리할 때 발생되는 문제를 알리거나 진단하는 프로토콜

 

70. HRN 스케줄링 방식

  • SJF의 약점 보완 기법
  • 실행 시간이 긴 프로세스를 차별하고 짧은 프로세스를 지나치게 선호하는 점을 보강한 알고리즘
  • 각 프로세스의 우선순위를 서비스 시간만이 아닌 서비스 대기시간도 계산하여 측정
  • 우선 순위 = (대기시간 + 서비스 시간) / 서비스 시간

 

72. FIFO 알고리즘

  • FIFO 알고리즘의 개념 : 메모리에 올라온 지 가장 오래된 페이지를 교체하는 메모리 교체 알고리즘
  • 페이지 부재 (Page Fault) : 기억 장치에 적재되지 않은 Page를 사용하는 현상
    • 콜드 미스 : 데이터를 최초로 읽을 때 발생
    • 용량 미스 : 메모리 용량이 부족해서 발생
    • 페이지 부재가 발생하는 경우 : 주기억장치에 입력값이 없는 경우
    • 페이지 부재가 발생하지 않는 경우 : 주기억장치에 입력값이 있는 경우
  • 예시 : 7 0 1 2 0 3 0 4 2 3 0 3 2 1 2 0 1 7 0
입력값   7 0 1 2
주기억장치 프레임 1 7 7 7 2
프레임 2   0 0 0
프레임 3     1 1
페이지 부재 발생 발생 발생 발생
입력값   0 3 0 4
주기억장치 프레임 1 2 2 2 4
프레임 2 0 3 3 3
프레임 3 1 1 0 0
페이지 부재 미발생 (프레임 2와 동일값) 발생 발생 발생
입력값   2 3 0 3
주기억장치 프레임 1 4 4 0 0
프레임 2 2 2 2 2
프레임 3 0 3 3 3
페이지 부재 발생 발생 발생 미발생 (프레임 3 값과 동일)
입력값   2 1 2 0
주기억장치 프레임 1 0 0 0 0
프레임 2 2 1 1 1
프레임 3 3 3 2 2
페이지 부재 미발생 (프레임 2 값과 동일) 발생 발생 미발생 (프레임 1값과 동일)
입력값   1 7 0 페이지 부재 수 (발생)
주기억장치 프레임 1 0 7 7 14
프레임 2 1 1 0 HIT 수 (미발생)
프레임 3 2 2 2 5
페이지 부재 미발생 (프레임 2값과 동일) 발생 발생  

 

73. C언어의 변수명

  • 영문과 숫자를 혼용 가능, 첫 선언에 숫자가 올 수 없음
  • 대문자, 소문자를 구분
  • 변수 제일 앞이나 중간에 _(언더 바) 사용 가능 : 대시 (-) 등의 특수문자는 사용 불가능하니 형태 혼동하지 말것 주의
  • C 라이브러리에서 미리 선언된 예약어는 변수 사용을 못함 

 

79. 언어의 종류

  • 컴파일러 언어
    • 번역사 : 프로그램 전체 라인을 처음부터 끝까지 해독해 목적코드로 만든 후에 실행
    • 언어 종류 : C, C++, COBOL, Ada, FORTRAN, PASCAL 등
  • 인터프리터 언어
    • 통역사 : 프로그램 라인 단위로 한 줄씩 해석하고 바로 실행
    • 언어 종류 : Javascript, BASIC, LISP 등
  • 스크립트 언어
    • 하나의 응용 소프트웨어를 제어하기 위한 용도로 쓰이는 언어
    • 소스코드를 컴파일 하지 않고도 실행할 수 있는 프로그래밍 언어
    • 별도의 컴파일 없이 내장된 번역기에 의해 번역하여 바로 실행할 수 있음
    • 인터프리터 방식을 사용하여 코드 한 줄씩 즉시 해석하고 실행
    • 언어 종류 : JavaScriopt, ActionScrip, AutoHotKey, JSP, Perl, PHP, Python, Lua, Ruby, VBS 등

 

80. OSI 7계층

  • 응용 계층 (Application Layer) 
    • 사용자와 네트워크 간의 응용 서비스 연결, 데이터 생성
    • 주요 프로토콜 : HTTP, TELNET, DHCP, DNS, FTP, SSH, SMTP, SNMP
    • 단위 : Data 
  • 표현 계층 (Presentaion Layer)
    • 데이터의 형식 설정과 부호 교환, 암호화, 해독 
    • 주요 프로토콜 : MIME, TLS, SSL, JPEG, MPEG, SMB, AFP
    • 단위 : Data
  • 세션 계층 (Session Layer)
    • 응용 프로세스 간의 연결 접속 및 동기 제어 
    • 주요 프로토콜 : SSH, TLS, RPC
    • 단위 : Data
  • 전송 계층 (Transport Layer)
    • 프로세스 간 논리적 통신 서비스 제공
    • 패킷들의 전송 유효 확인, 실패한 패킷은 재 전송하여 신뢰성 있는 통신 보장
    • 오류 검출과 복구, 흐름 제어 
    • 주요 프로토콜 : TCP (3-Way Handshaking), UDP, SCTP, RTP
    • 단위 : Segment
  • 네트워크 계층 (Network Layer)
    • 단말 간 시스템끼리 Data를 전송하기 위한 최선의 통신 경로 선택 제공 
    • 주요 프로토콜 : IP, ARP, ICMP, IGMP, IPsec
    • 단위 : Packet
  • 데이터링크 계층 (Data Link Layer)
    • 인접 시스템 간의 데이터 전송, 전송 오류 제어
    • 오류 검출, 재전송, 흐름 제어 
    • 주요 프로토콜 : Eternet, ATM, PPP
    • 단위 : Frame
  • 물리 계층 (Pysical Layer)
    • 통신 회선으로 Data를 나타내는 0과 1 비트의 정보를 회선에 내보내기 위한 전기적 변환이나 기계적 작업 담 
    • 주요 프로토콜 : RS-485, RS-232, X25/21
    • 단위 : Bits

 

85. 애드혹과 피코넷

  • 애드 혹 (Ad-hoc)
    • 유선 망과의 연결 없이 2대 이상의 단말기로 구성
    • 인프라가 구축되지 않은 장소에서 손쉽게 통신망을 구축할 수 있음
    • 대표적인 기술 : 블루투스
  • 피코넷 (PICONET)
    • 블루투스 기술 프로토콜을 사용하여 무선 사용자 그룹의 장치를 연결하는 애드 혹 네트워크
    • 동일한 물리적 채널을 차지하는 둘 이상의 장치로 구성
    • 하나의 Master 장치가 최대 7개의 활성 Slave 장치와 상호 연결될 수 있음

 

86. 원시 프로그램 규모에 따른 COCOMO 유형

  • 조직형 (Organic Model)
    • 기관 내부에서 개발된 중소 규모의 소프트웨어
    • 일괄 자료 처리, 과학 기술 계산용, 비즈니스 자료 처리용 등으로 사용
    • 5만 라인 이하의 소프트웨어를 개발하는 유형
  • 반분리형 (Semi Detached Model)
    • 조직형과 내장형의 중간 정도
    • 트랜잭션 처리 시스템, 운영체제, 데이터베이스 관리 시스템 등으로 사용
    • 30만 라인 이하의 소프트웨어를 개발하는 유형
    • 컴파일러, 인터프리터와 같은 유틸리티 개발에 적합
  • 내장형 (Embedded Model)
    • 최대 규모의 트랜잭션 처리 시스템이나 운영 체제 등
    • 30만 라인 이상의 소프트웨어를 개발하는 유형
    • 신호기 제어 시스템, 미사일 유도 시스템, 실시간 처리 시스템 등 시스템 프로그램 개발에 적합

 

90. 공개키 암호화 기법

  • 공개키로 암호화한 평문을 개인키로 복호화하는 비대칭키 구조
  • 암호화키와 복호화 키가 달라 키 분배가 용이
  • 부인방지, 인증, 무결성, 기밀성 제공이 가능
  • 전자서명, 전자봉투 등에 활용
  • 인증서는 x.509 표준에 따라 인증서 저장소에 저장하여 공개
  • 대표적인 비대칭키 암호화 알고리즘 : 디피/헬만, RSA, ECC 등
    • RSA 
      • 암호화 뿐만 아니라 전자서명이 가능한 최초의 알고리즘
      • 큰 숫자를 소인수 분해하는 것이 어렵다는 것에 안정성 기반을 둠

 

96. 정보보호의 주요 목표

  • 기밀성 (Confidentiality)
    • 자산이 인가(authorizaion)된 당사자에 의해서만 접근하는 것을 보장하는 것
    • 위협 요소 : 도청 : 사회 공학 공격 등
  • 무결성 (integrity)
    • 자산이 인가된 당사자에 의해서 인가된 방법으로만 변경 가능한 것
    • 자산의 완전성과 정확성을 보장하는 것
    • 위협 요소 : 논리폭탄, 백도어, 바이러스 등
  • 가용성 (Avaliability)
    • 자산이 적절한 시간에 인가된 당사자에게 접근 가능해야 하는 것
    • 위협 요소 : DoS, DDoS, 지진, 홍수, 화재 등
  • 부인방지 (Non-repudiation)
    • 상대방이 자신의 행위를 부인하지 못하도록 조치하는 것
    • 법적인 효력을 가지는 영수증과 같은 증거를 남기는 방식