정보처리기사 2020 필기 1,2회 61~80번 문제
Technique정보처리기사 2020 필기 1,2회 61~80번 문제 해설
- 수제비 2020 정보처리기사 필기 도서와 수제비 카페 자료를 통해 작성
- 4과목 프로그래밍 언어 활용
61. Shell(쉘)
- 사용자가 내린 명령을 운영체제가 수행할 수 있도록 명령을 해석하는 명령어 해석기
- 사용자와 운영체제 사이에 위치하는 프로그램
- 사용자가 입력한 명령어를 신속하게 찾고 운영체제와 사용자 그리고 사용자가 실행한 다른 프로그램과 소통할 수 있게 함
특징 | 설명 |
---|---|
대화식(Interactice) 사용 | 사용자의 요청을 기다려서 요청 즉시 결과 값을 출력해주는 대화형 구조 |
프로그래밍 | 복합적인 작업을 수행할 수 있도록 일련의 명령어들을 묶어서 사용 (스크립트) |
리눅스 세션(session)의 설정(Customization) | 리눅스의 세션에 대한 변수들을 정의하여 사용자가 리눅스 환경을 자신이 원하는 상태로 설정 |
LINUX / UNIX | WINDOWS |
---|---|
bash / sh / ksh / csh | Explorer.exe / cmd.exe |
62,69,80. OSI(Open System Interconnection) 7계층
계층 | 개념 | 특징 | 단위 | 프로토콜 |
---|---|---|---|---|
물리 계층 (Physical Layer) | 실제 장치들을 연결하기 위해 필요한 전기적, 물리적 세부 사항들을 정의하는 계층 | 물리적인 정보 전달 매개체에 대한 연결의 성립 및 종료 | 비트 (Bit) | EIA-449
EIA/TIA-232 |
데이터 링크 계층 (Data Link Layer) | 직접 연결된 노드 간 데이터의 물리적인 전송을 담당하고, 오류 제어, 흐름 제어, 회선 제어 등을 수행하는 계층 링크의 설정과 유지 및 종료를 담당 | 데이터 전송 시 오류가 발생하면 데이터 링크 계층에서 검출하고 전송 계층에서 그 오류를 수정 | 프레임 (Frame) | HDLS, PPP, Frame-Relay, FDDI, ATM, LLC, ALOHA |
네트워크 계층 (Network Layer) | 다양한 길이의 패킷을 네트워크들을 통해 전달하고, 그 과정에서 전송 계층이 요구하는 서비스 품질(QoS)을 위한 수단을 제공하는 계층 | 라우팅, 패킷 포워딩, 인터네트워킹(Internetworking) 등을 수행 논리적인 주소 구조(IP)를 가지며 계층적(Hierarchical)임 | 패킷 (Packet) | IP, ARP, RARP, RIP, OSPF, IGRP, EIGRP, BGP |
전송 계층 (Transport Layer) | 상위 계층들이 데이터 전달의 유효성이나 효율성을 생각하지 않도록 해주면서 양끝단의 사용자들에게 신뢰성 있고 명확한 데이터를 전달하는 계층 | 순차 번호 기반의 오류 제어 방식을 사용 오류 수정, 흐름 제어 수행 종단 간 통신을 다루는 최하위 계층으로 종단 간 신뢰성 있고 효율적인 데이터를 전송 | 세그먼트 (Segment) | TCP(연결 지향), UDP(비연결 지향) |
세션 계층 (Session Layer) | 응용 프로그램 간의 대화를 유지하기 위한 구조를 제공하고, 이를 처리하기 위해 프로세스들의 논리적인 연결을 담당하는 계층 | 통신이 연결이 끊어지지 않도록 유지 TCP/IP 세션 연결의 설정과 해제 통신하는 사용자들을 동기화해주고, 오류 복수 명령들을 일괄적으로 처리 | 데이터 (Data) | SSH, TLS, NetBIOS |
표현 계층 (Presentation Layer) | 애플리케이션이 다루는 정보를 통신에 알맞은 형태로 만들거나, 하위 계층에서 온 데이터를 사용자가 이해할 수 있는 형태로 만드는 역할을 담당하는 계층 | 응용계층 데이터의 부호화 및 변환 수행을 통해 송신 장치로부터 온 데이터를 해석 전송 형식에 관한 책임과 데이터 압축, 전송을 위한 암/복호화 수행 | 데이터 (Data) | ASCII, MPEG, JPEG, MIDI, SMB |
응용 계층 (Application Layer) | 응용 프로세스와 직접 관계하여 일반적인 응용 서비스를 수행하는 역할을 담당하는 계층 | 관련된 응용 프로세스들 사이의 전환을 제공 | 데이터 (Data) | HTTP, FTP, SMTP, POP3, IMAP, Telnet |
용어 | 설명 |
---|---|
ARP (Address Resolution Protocol) | IP 주소(논리주소)를 MAC주소(물리주소)로 변환 |
RARP (Reverse Address Resolution Protocol) | MAC주소를 IP 주소로 변환 |
HDLC (High-level Data Link Control) | 점대점 방식이나 다중방식의 통신에 사용되는 ISO에서 표준화 동기식 비트 중심의 데이터 링크 프로토콜 |
Frame-Relay (프레임 릴레이) | 프로토콜 처리를 간략화하여 단순히 데이터 프레임들의 중계(Relay) 기능과 다중화 기능만 수행함으로써 데이터 처리속도의 향상 및 전송지연을 감소시킨 고속의 데이터 전송 기술 |
ATM (Asynchronous Transport Mode) | 정보 전달의 기본단위를 53바이트 셀 단위로 전달하는 비동기식 시분할 다중화 방식의 패킷형 전송 기술 |
UDP | 비연결성이고 신뢰성이 없으며 순서화되지 않은 데이터그램 서비스를 제공하는 전송 계층용 프로토콜 검사 합을 제외한 특별한 오류 검출 및 제어가 없음 멀티캐스팅 기능을 통해 여러 다수 지점에 전송 가능 흐름 제어나 순서 제어가 없어 전송 속도가 빠름 |
63,77. 결합도와 응집도
결합도(Coupling)
- 모듈 내부가 아닌 외부의 모듈과의 연관도 또는 모듈 간의 상호의존성
- 소프트웨어 구조에서 모듈 간의 관련성을 측정하는 척도
- 결합도 비교: 내용 > 공통 > 외부 > 제어 > 스탬프 > 자료
유형 | 설명 |
---|---|
Content Coupling (내용 결합도) | 다른 모듈 내부에 있는 변수나 기능을 다른 모듈에서 사용하는 경우 |
Common Coupling (공통 결합도) | 파라미터가 아닌 모듈 밖에 선언되어 있는 전역 변수를 참조하고 전역 변수를 갱신하는 식으로 상호작용하는 경우 |
External Coupling (외부 결합도) | 모듈이 다수의 관련 기능을 가질 때 모듈 안의 구성요소들이 그 기능을 순차적으로 수행할 경우 |
Control Coupling (제어 결합도) | 단순 처리할 대상인 값만 전달되는 게 아니라 어떻게 처리해야 한다는 제어 요소가 전달되는 경우 |
Stamp Coupling (스탬프 결합도) | 모듈 간의 인터페이스로 배열이나 객체, 구조 등이 전달되는 경우 |
Data Coupling (자료 결합도) | 모듈 간의 인터페이스로 전달되는 파라미터를 통해서만 모듈 간의 상호 작용이 일어나는 경우 |
응집도(Cohesion)
- 모듈의 독립성을 나타내는 개념
- 모듈 내부 구성요소 간 연관 정도
- 정보 은닉 개념의 확장 개념
- 하나의 모듈은 하나의 기능을 수행하는 것을 의미
- 응집도 유형 비교: 우연적 < 논리적 < 시간적 < 절차적 < 통신적 < 순차적 < 기능적
유형 | 설명 |
---|---|
Coincidental Cohesion (우연적 응집도) | 모듈 내부의 각 구성요소들이 연관이 없을 경우 |
Logical Cohesion (논리적 응집도) | 유사한 성격을 갖거나 특정 형태로 분류되는 처리 요소들이 한 모듈에서 처리되는 경우 |
Temporal Cohesion (시간적 응집도) | 연관된 기능이라기보다는 특정 시간에 처리되어야 하는 활동들을 한 모듈에서 처리할 경우 |
Procedural Cohesion (절차적 응집도) | 모듈이 다수의 관련 기능을 가질 때 모듈 안의 구성요소들이 그 기능을 순차적으로 수행할 경우 |
Communication Cohesion (통신적 응집도) | 동일한 입력과 출력을 사용하여 다른 기능을 수행하는 활동들이 모여 있을 경우 |
Sequential Cohesion (순차적 응집도) | 모듈 내에서 한 활동으로부터 나온 출력값을 다른 활동이 사용할 경우 |
Functional Cohesion (기능적 응집도) | 모듈 내부의 모든 기능이 단일한 목적을 위해 수행되는 경우 |
65. 스레드(Thread)
- 프로세스보다 가볍고 독립적으로 수행되는 순차적인 흐름
- 프로세스에서 실행 제어만 분리된 실행 단위
- 한 개의 프로세스는 여러 개의 스레드를 가질 수 있다
- 하드웨어, 운영체제의 성능과 응용 프로그램의 처리율을 향상
스레드 | 설명 |
---|---|
커널 스레드 | 운영체제에 의해 스레드를 운용 |
사용자 스레드 | 사용자가 만든 라이브러리를 사용하여 스레드를 운용 |
66,73. C언어
배열
static int c[9] = {1, 2, 3}; // 1, 2, 3, 0, 0, 0, 0, 0, 0
구분 | 규칙 | 사용 가능 예시 | 사용 불가능 예시 |
---|---|---|---|
사용 가능 문자 | 영문 대/소문자, 숫자, 밑줄(_) | a, A1, _, _hello | $a, ?a, <a |
변수 사용 규칙 | 첫 자리에 숫자 사용 불가 변수 이름의 중간에는 공백 사용 불가 | _1, a1 love_field | 1, 1a, 123 love field |
변수 의미 부여 | 데이터 값의 의미나 역할을 표현 예약어는 변수로 사용 불가 | For, If, While | for, if, while |
67,71. 교착상태(Dead Lock)
다중 프로세싱 환경에서 두 개 이상의 프로세스가 특정 자원 할당을 무한정 대기하는 상태
조건 | 설명 |
---|---|
상호배제 (Mutual Exclusive) | 프로세스가 자원을 배타적으로 점유하여 다른 프로세스가 그 자원을 사용할 수 없음 |
점유와 대기 (Block & Wait) | 한 프로세스가 자원을 점유하고 있으면서 또 다른 자원을 요청하여 대기하고 있는 상태 |
비선점 (Non Preemption) | 한 프로세스가 점유한 자원에 대해 다른 프로세스가 선점할 수 없고, 오직 점유한 프로세스만이 해제 가능 |
환형대기 (Circular wait) | 두 개 이상의 프로세스간 자원의 점유와 대기가 하나의 원형을 구성한 상태 |
방안 | 설명 |
---|---|
예방 (Prevention) | 상호배제를 제외한 나머지 교착 상태 발생조건을 위배(부정)하는 방안 - 점유 자원 해제 후 새 자원 요청 |
회피 (Avoidance) | 안전한 상태를 유지할 수 있는 요구만 수락(프로세스별 자원 최대요구량 확보) - Banker’s Algorithm(은행가 알고리즘), Wait-die, wound-wait |
발견 (Detection) | 시스템의 상태를 감시 알고리즘 통해 교착상태 검사 - 자원할당 그래프, Wait for Graph |
회복 (Recovery) | Dead lock 이 없어질 때까지 프로세스를 순차적으로 Kill 하여 제거 희생자를 선택해야 하고 기아상태 발생 - 프로세스 Kill, 자원선점 가능 |
- 은행가 알고리즘(Banker's Algorithm): 사용자 프로세스는 사전에 자기 작업에 필요한 자원의 수를 제시하고 운영체제가 자원의 상태를 감시, 안정 상태일때만 자원을 할당하는 교착상태 회피기법
68. IEEE 802.11
현재 주로 쓰이는 유선 LAN형태인 이더넷의 단점을 보완하기 위해 고안된 기술
이더넷 네트워크의 말단에 위치해 필요 없는 배선 작업과 유지관리 비용을 최소화하는 역할
워킹 그룹의 무선 LAN 표준화 현황
전송기술(규격) | 설명 |
---|---|
802.11 (초기 버전) | 최고속도가 2Mbps인 무선 네트워크 기술 적외선 신호나 ISM 대역인 2.4GHz 대역 전파를 사용해 데이터를 주고받으며 여러 기기가 함께 네트워크에 참여할 수 있도록 CSMA/CA 기술을 사용할 수 있는 기술 |
802.11.b | 802.11 규격을 기반으로 더욱 발전시킨 기술 최고 전송속도는 11Mbps이나 실제로는 CSMA/CA기술의 구현과정에서 6~7Mbps의 효율을 보여 널리 사용됨 |
802.11a | 5GHz 대역의 전파를 사용하는 규격 OFDM기술을 사용해 최고 54Mbps까지의 전송속도를 지원 |
802.11g | 802.11a와 규격과 전송 속도가 같지만 2.4GHz 대역 전파를 사용한다는 점만 다름 |
802.11d | 지역 간 로밍용 확장 기술 |
802.11.e | 부가 기능 표준(QoS, 패킷 버스팅 등 기능 확장 기술(2005)) QoS 강화를 위해 MAC 지원 기능을 채택 |
802.11n | 상용화된 전송규격으로 2.4GHz 대역과 5GHz 대역을 사용하며 최고 600Mbps 까지의 속도를 지원하는 wifi 기술 |
802.11ac | 무선 인터페이스 개념을 확장한 wifi 기술 |
802.11ad | 빔포밍 기술을 이용하여 최대 7Gb/s의 속도를 제공하는 전송기술
60GHz 대역을 사용해 데이터를 전송하는 방식으로 대용량의 데이터나 무압축 HD 비디오 등 높은 동영상 스트리밍에 적합 |
802.11ax | 5Ghz/2.4Ghz 주파수로 MU-MIMO, OFDMA기술을 이용하여 밀집된 환경에서 높은 처리율을 제공하기 위한 Wifi 기술 하나의 AP가 다수의 디바이스를 밀도 있게 지원하는 Capacity 최대화 Wifi 기술 |
70. 프로세스 스케줄링
- CPU를 사용하려고 하는 프로세스들 사이의 우선순위를 관리하는 작업
- 처리율과 CPU 이용률을 증가시키고 오버헤드, 응답시간, 반환시간, 대기시간을 최소화하기 위한 기법
- 특정 프로세스가 적합하게 실행되도록 프로세스 사이에서 CPU 교체가 발생함
유형 | 동작방식 | 특징 |
---|---|---|
라운드 로빈 (Round Robin) | 프로세스는 같은 크기의 CPU 시간을 할당(시간 할당량), 프로세스가 할당된 시간 내에 처리 완료를 못하면 준비 큐 리스트의 가장 뒤로 보내지고, CPU는 대기 중인 다음 프로세스로 넘어감 | 균등한 CPU 점유 시간 시분할 시스템 사용 |
SRT (Shortest Remaining Time First) | 가장 짧은 시간이 소요되는 프로세스를 먼저 수행 남은 처리 시간이 더 짧다고 판단되는 프로세스가 준비 큐에 생기면 언제라도 프로세스가 선점됨 | 짧은 수행 시간 프로세스 우선 수행 |
다단계 큐 (Multi Level Queue) | 작업들을 여러 종류 그룹으로 분할, 여러 개의 큐를 이용하여 상위단계 작업에 의한 하위단계 작업이 선점 당함 각 큐는 자신만의 독자적인 스케줄링을 가짐 | 독립된 스케줄링 큐 |
다단계 피드백 큐 (Multi Level Feedback Queue) | 입출력 위주와 CPU 위주인 프로세스의 특성에 따라 큐마다 서로 다른 CPU 시간 할당량을 부여 FCFS(FIFO)와 라운드 로빈 스케줄링 기법을 혼합한 것 새로운 프로세스는 높은 우선순위, 프로세스의 실행시간이 길어질수록 점점 낮은 우선순위 큐로 이동하고 마지막 단계는 라운드 로빈 방식을 적용 | 큐마다 다른 시간 할당량 마지막단계는 라운드 로빈 방식 처리 |
유형 | 동작 방식 | 특징 |
---|---|---|
우선순위 (Priority) | 각 프로세스 별로 우선순위가 주어지고, 우선순위에 따라 CPU를 할당함 동일 순위는 FCFS | 주요/긴급 프로세스에 대한 우선처리 설정, 자원 상황 등에 따른 우선순위 선정 |
기한부 (Deadline) | 작업들이 명시된 시간이나 기한 내에 완료되도록 계획 | 요청에 명시된 시간 내 처리를 보장 |
FCFS (First Come First Service) | 프로세스가 대기 큐에 도착한 순서에 따라 CPU를 할당함 FIFO 알고리즘이라고도 함 | 도착한 순서대로 처리 |
SJF (Shortest Job First) | 프로세스가 도착하는 시점에 따라 그 당시 가장 작은 서비스 시간을 갖는 프로세스가 종료 시까지 자원 선정 준비 큐 작업 중 가장 짧은 작업부터 수행(평균 대기시간 최소) CPU 요구시간이 긴 작업과 짧은 작업 간의 불평등이 심하여 CPU 요구시간이 긴 프로세스는 기아 현상 발생 | 기아 현상 발생 가능성 |
HRN (Highest Response Ratio Next) | 대기 중인 프로세스 중 현재 Response Ratio가 가장 높은 것을 선택 SJF의 약점인 기아 현상을 보완한 기법(긴 작업과 짧은 작업 간의 불평등 완화) Response Ratio = (대기시간 - 서비스시간) / 서비스 시간 | 기아 현상 최소화 기법 |
72. 교체기법
- 주기억 장치에 있는 프로세스 중 어떤 프로세스를 제거할 것인지 결정하는 기법
- 새로운 페이지를 할당하기 위해 현재 할당된 페이지 중 어느 것과 교체할 지를 결정하는 방법
- 페이지 부재(Page Fault): 새로 들어온 페이지인지 여부
세부 기법 | 설명 |
---|---|
FIFO (First In First Out) | 가장 오랜 페이지부터 우선 교체 큐에 의해 메모리의 모든 페이지 관리 각 페이지가 주기억 장치에 적재될 때마다 저장된 시간을 기억시켜 가장 먼저 들어와 가장 오래 있던 페이지를 교체(선입선출) |
LRU (Least Recently Used) | 오랫동안 사용하지 않은 페이지를 선택하여 교체 마지막으로 사용된 시간을 확인하여 선택(지역성) 사용된 시간을 확인하여 가장 오랫동안 사용되지 않은 페이지를 선택하여 교체하는 방법 프로그램의 지역성의 원리에 입각해서 최근에 참조된 페이지는 앞으로도 참조될 가능성이 많고, 최근에 참조되지 않은 페이지는 앞으로도 참조되지 않을 가능성이 많다는 전제로 구현된 알고리즘 |
LFU (Least Frequently Used) | 각 페이지마다 참조 횟수에 대한 계수기가 있으며 가장 작은 수를 가진 페이지를 교체 사용된 횟수를 확인하여 가장 오랫동안 사용 되지 않은 페이지를 선택하여 교체하는 방법 기억장치에 저장된 페이지들 중에서 사용한 횟수가 가장 적은 페이지를 교체하는 알고리즘 |
74,76. IP
IPv6 (Internet Protocol Version 6)
- 인터넷 프로토콜 스택 중 네트워크 계층의 프로토콜로서 버전 6 인터넷 프로토콜로 제정된 차세대 인터넷 프로토콜
- 현재 IPv4가 가지고 있는 주소 고갈, 보안성, 이동성 지원 등의 문제점을 해결하기 위해 개발
- 128bit 주소 체계를 갖는다(주소 공간을 제공)
- 인증 및 보안 기능을 포함
- 확장 헤더를 통해 네트워크 기능 확장이 용이
구분 | IPv4 | IPv6 |
---|---|---|
전송 방식 | Unicast, Multicast, Broadcast | Unicast, Multicast, Anycast |
주소 길이 | 32bit | 128bit |
표시방법 | 8비트씩 4부분으로 나뉜 10진수 (192.168.10.1) | 16비트씩 8부분으로 나뉜 16진수 (2001:9e76:..:e11c) |
주소개수 | 약 43억 개 | 4.3 X 10의 38승 |
주소할당 | A, B, C, D 등 클래스 단위 비순차적 할당(비효율적) | 네트워크 규모 및 단말기 수에 따른 순차적 할당(효율적) |
품질제어 | 품질보장 곤란 | 등급별, 서비스별로 패킷 구분 가능해 품질 보장 용이(QoS) |
헤더크기 | 가변 | 고정 |
QoS | Base Effort 방식 / 보장 곤란 | 등급별, 서비스별 패킷 구분 보장 |
보안기능 | IPSEC 프로토콜 별도 설치 | 확장기능에서 기본 제공 |
Plug&Play | 지원 안함 | 지원 |
모바일 IP | 곤란 | 용이 |
웹 캐스팅 | 곤란 | 용이 |
전환 방법 | 설명 |
---|---|
듀얼 스택 (Dual Stack) | 호스트에서 IPv4와 IPv6을 모두 처리할 수 있도록 두 개의 스택을 구성하는 방법 프로토콜 스택 수정으로 인한 과다한 비용 |
터널링 (Tunneling) | IPv6 망에서 인접한 IPv4 망으 거쳐 다른 IPv6 망으로 통신할 때 IPv4 망에 터널을 만들어 IPv6 패킷이 통과할 수 있도록 구성하는 방법 구현이 어려우며, 복잡한 동작 과정 |
주소변환 (Address Translation) | IPv4 망과 IPv6 망 사이에 주소 변환기를 사용하여 상호 연동 시키는 방법 구현이 용이. 변환 방식이 투명. 변환 절차 간단 |
75. 프로세스(Process)
프로세스 상태 | 설명 |
---|---|
생성(create) | 사용자에 의해 프로세스가 생성된 상태 |
준비(Ready) | CPU를 할당받을 수 있는 상태 준비 리스트: 각 우선순위를 부여하여 가장 높은 우선순위를 갖는 프로세스가 다음 순서에 CPU를 할당 받음 |
실행(Running) | 프로세스가 CPU를 할당받아 동작 중인 상태 |
대기(Waiting) | 프로세스 실행 중 입출력 처리 등으로 인해 CPU를 양도하고 입출력 처리가 완료될 떄까지 대기 리스트에서 기다리는 상태 대기 리스트: 우선순위가 존재하지 않음 |
완료(Complete) | 프로세스가 CPU를 할당받아 주어진 시간 내에 완전히 수행을 종료한 상태 |
78. JAVA 접근 제한자(access modifier)
접근 제한자가 지정된 클래스, 변수, 메서드를 외부(같은/다른 패키지)에서 접근할 수 있도록 권한을 설정하는 것
접근 제한자 | 설명 |
---|---|
public | 외부의 모든 클래스에서 접근이 가능한 접근 제한자 |
protected | 같은 패키지 내부에 있는 클래스, 하위 클래스(상속받은 경우)에서 접근이 가능한 접근 제한자 자기 자신과 상속받은 하위 클래스 둘 다 접근이 가능한 접근 제한자 |
default | 접근 제한자를 명시하지 않은 경우로 같은 패키지 내부에 있는 클래스에서 접근이 가능한 접근 제한자 |
private | 같은 클래스 내에서만 접근이 가능한 접근 제한자 |
79. 프로그래밍 언어
종류 | 설명 | 언어 |
---|---|---|
인터프리터 언어 (Interpreter Language) | 원시코드(소스코드)가 기계어로 변환하는 과정 없이 한줄 단위로 해석하여 실행하는 언어 | Python, R, Ruby |
컴파일 언어 (Compile Language) | 원시코드(소스코드)를 기계어로 변환하여 코드 전체를 빠르게 실행하는 언어 | C, C++, Java |