CS/정보처리기사

정보처리기사 기출문제 풀이 2

코딩 펭귄 2022. 2. 15. 12:18

2020년06월06일

코드 설계에서 일정한 일련번호를 부여하는 방식의 코드는?

  1. 연상 코드
  2. 블록 코드
  3. 순차 코드
  4. 표의 숫자 코드

[문제 해설]

코드 : 컴퓨터를 이용하여 자료를 처리하는 과정에서 분류, 조합 및 집계를 용이하게 하고, 특정 가료의 추출을 쉽게 하기 위해 사용하는 기호 

 

코드의 종류

  • 순차 코드 : 일정한 순서에 의해 코드화 대상 항목에 일련 번호를 부여하는 가장 기본적인 코드로 데이터의 성격과 무관하며, 자료의 추가가 용이함 하지만 얻을 수 있는 정보가 거의 없음
  • 블럭 코드 : 코드화할 대상이 갖는 공통 특징을 중심으로 항목들을 별도의 집단으로 분류하고, 한 집단 안에서 순서대로 번호를 부여하는 코드로 코드 숫자의 크기로 데이터의 성격을 개략적으로 알 수 있음
  • 그룹 분류 코드 : 일정 기준에 따라 대분류, 중분류, 소분류 등으로 구분하고, 각 그룹 안에서 일련 번호를 부여하는 방법
  • 10진 코드 : 그룹 분류 코드를 응용하여 0~9까지 10진 분할하고, 다시 그 각각에 대하여 10진 분할하는 방법을 필요한만큼 반복하는 도서 분류식 코드로 확장성이 용이함
  • 연상 코드 : 코드화 대상 항목의 명칭이나 약호와 관계 있는 숫자나 문자, 기호 등을 이용하여 코드를 부여하는 방법
  • 표의 숫자 코드 : 코드화 대상 항목의 성질, 물리적 수치를 그대로 코드에 적용시키는 방법
  • 합성 코드 : 필요한 기능을 하나의 코드로 수행하기 어려운 경우 2개 이상의 코드를 조합하여 만드는 방법

2020년08월22일 

자료 사전에서 자료의 반복을 의미하는 것은?

  1. =
  2. ( )
  3. { }
  4. [ ]

[문제 해설]

자료 사전 기호

  • = : 정의
  • + : 구성
  • { } : 반복
  • [ ] : 택일
  • ( ) : 생략 가능
  • ** : 주석

 

2020년06월06일

HIPO(Hierarchy Input Process Output)에 대한 설명으로 거리가 먼 것은?

  1. 상향식 소프트웨어 개발을 위한 문서화 도구이다.
  2. HIPO 차트 종류에는 가시적 도표, 총체적 도표, 세부적 도표가 있다.
  3. 기능과 자료의 의존 관계를 동시에 표현할 수 있다.
  4. 보기 쉽고 이해하기 쉽다.

[문제 해설]

HIPO : 하향식 소프트웨어 개발을 위한 문서화 도구

  • 시스템 분석 및 설계, 문서화 시 사용죄는 기법으로 입력, 처리, 출력 기능
  • 체계적 문서관리로 기호, 도표 등을 사용하여 보고 이해하기 쉬움
  • 기능과 자료의 의존 관계를 동시에 표현
  • 종류에는 가시적 도표, 총체적 도표, 세부적 도표가 존재하나, 꼭 3가지가 모두 모여야 HIPO Model이 되는 것은 아님

2020년08월22일

패키지 소프트웨어의 일반적인 제품 품질 요구사항 및 테스트를 위한 국제 표준은?

  1. ISO/IEC 2196
  2. IEEE 19554
  3. ISO/IEC 12119
  4. ISO/IEC 14959

[문제 해설]

  • ISO/IEC 9126 : 소프트웨어 품질 특성 및 척도에 대한 표준화
  • ISO/IEC 14598 : 소프트웨어 제품 평가로 ISO/IEC 9126 사용을 위한 절차와 기본 상황 및 소프트웨어 평가 프로세스에 대한 표준 규정
  • ISO/IEC 12119 : 패키지 소프트웨어 제품테스트 국제 표준

 

2021년08월14일

테스트 케이스 자동 생성 도구를 이용하여 테스트 데이터를 찾아내는 방법이 아닌 것은?

  1. 스터브(Stub)와 드라이버(Driver)
  2. 입력 도메인 분석
  3. 랜덤(Random) 테스트
  4. 자료 흐름도

[문제 해설]

테스트 케이스 생성 도구

  • 자료흐름도
  • 기능 테스트
  • 입력 도메인 분석
  • 랜덤 테스트

※ 스터브와 드라이버는 통합 테스트 시 사용됨

   스터브 : 하향식 테스트에 사용되는 테스트용 임시 모듈

   드라이버 : 상향식 테스트에 사용되는 테스트 가동기

 

2020년09월26일

다음 설명과 관련 있는 트랜잭션의 특징은?

트랜잭션의 연산은 모두 실행되거나, 모두 실행되지 않아야 한다.
  1. Durability
  2. Isolation
  3. Consister
  4. Atomicity

[문제 해설]

트랜잭션의 특징

  • 원자성(Atomicity) : 트랜잭션이 데이터베이스에 모두 반영되거나, 전혀 반영되지 않아야 한다는 것
  • 일관성(Consistency) : 트랜잭션의 작업 처리 결과가 항상 일관성이 있어야 한다는 것
  • 독립성(Isolation) : 둘 이상의 트랜잭션이 동시에 실행되고 있는 경우 다른 트랜잭션 연산에 끼어들 수 없다는 것
  • 지속성(Durablility) : 트랜잭션이 성공적으로 완료되었을 경우에 결과는 영구적으로 반영되어야 한다는 것

 

2021년05월15일

다음 관계 대수 중 순수 관계 연산자가 아닌 것은?

  1. 차집합(difference)
  2. 프로젝트(project)
  3. 조인(join)
  4. 디비전 (division)

[문제 해설]

관계 대수 연산의 종류

  • 일반 집합 연산
    • 합집합(union)
    • 교집합(intersection)
    • 차집합(difference)
    • 카디션 프로덕트(cartesian product)
  • 순수 관계 연산 : 관계 데이터베이스에 적용할 수 있도록 특별히 개발된 연산
    • select
    • project
    • join
    • division

 

2021년05월15일

다음 중 가장 약한 결합도(Coupling)는?

  1. Common Coupling
  2. Content Coupling
  3. External Coupling
  4. Stamp Coupling

[문제 해설]

결합도 : 어떤 모듈이 다른 모듈에 의존하는 정도를 나타낸 것으로 낮을수록 좋음

 

결합도의 종류 (아래로 갈수록 감소)

  1. 내용 결합도 (Context Coupling) : 하나의 모듈이 다른 모듈의 내부 동작을 수정하거나 내부 동작에 의존하는 상태
  2. 공통 결합도 (Common Coupling) : 두 개의 모듈이 같은 글로벌 데이터를 공유하는 상태
  3. 외부 결합도 (External Coupling) : 두 개의 모듈이 외부에서 도입된 데이터 포맷, 통신 프로토콜 또는 디바이스 인터페이스를 공유하는 경우 발생
  4. 제어 결합도 (Control Coupling) : 하나의 모듈이 다른 모듈로 무엇을 해야하는지에 대한 정보를 넘겨줌으로꺼 다른 모듈의 흐름 제어
  5. 스탬프 결합도 (Stamp Coupling) : 모듈들이 데이터 구조를 공유하고, 서로 다른 일부만을 사용하는 경우
  6. 자료 결합도 (Data Coupling) : 모듈들이 파라미터 등을 통해 데이터를 공유하는 경우

 

2021년08월14일

192.168.1.0/24 네트워크를 FLSM 방식을 이용하여 4개의 Subnet으로 나누고 IP Subnet-zero를 적용했다. 이 때 Subnetting 된 네트워크 중 4번째 네트워크의 4번째 사용가능한 IP는 무엇인가?

  1. 192.168.1.192
  2. 192.168.1.195
  3. 192.168.1.196
  4. 192.168.1.198

[문제 해설]

서브넷 : IP 주소에서 네트워크 영역을 부분적으로 나눈 부분 네트워크로 서브넷 마스크를 이용하여 만들어짐 (IP 주소에 서브넷 마스크를 AND 연산하면 Network ID가 됨)

서브넷 마스크 : IP 주소 체계의 Network ID와 Host ID를 분리하는 역할

 

각 클래스의 기본 서브넷 마스크

Class 이진 표현 십진 표현 기본 서브넷 마스크
A Class 0xxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx 0.0.0.0 ~ 127.255.255.255 255.0.0.0
B Class 10xxxxxx xxxxxxxx xxxxxxxx xxxxxxxx 128.0.0.0 ~ 191.255.255.255 255.255.0.0
C Class 110xxxxx xxxxxxxx xxxxxxxx xxxxxxxx 192.0.0.0 ~ 223.255.255.255 255.255.255.0

 

※ 192.168.1.0/24에 붙은 /24는 서브넷 마스크의 bit 수를 나타냄

 

서브넷팅(subnetting) : IP 주소 낭비를 방지하기 위해 원번 네트워크를 여러 개의 서브넷으로 분리하는 과정으로 서브넷 마스크의 bit 수를 증가시키는 것을 의미함 이때 서브넷 마스크의 bit 수를 1씩 증가시키면 할당할 수 있는 네트워크가 2배수로 증가하고, 호스트 수는 2배수로 감소함

 

IP Subnet-zero : 호스트 IP가 전부 0인 192.168.1.0도 사용하겠다는 의미

 

2020년09월26일

4개의 페이지를 수용할 수 있는 주기억장치가 있으며, 초기에는 모두 비어 있다고 가정한다. 다음의 순서로 페이지 참조가 발생할 때, FIFO 페이지 교체 알고리즘을 사용할 경우 페이지 결함의 발생 횟수는?

페이지 참조 순서 : 1, 2, 3, 1, 2, 4, 5, 1
  1. 6회
  2. 7회
  3. 8회
  4. 9회

[문제 해설]

페이지 교체 알고리즘 : 페이징 기법으로 메모리를 관리하는 운영체제에서 필요한 페이지가 주기억장치에 적재되지 않았을 시(페이지 부재) 어떤 페이지 프레임을 선택하여 교체할 것인지를 결정하는 방법

 

페이지 부재 : CPU에서 현재 요청한 페이지가 메모리에 없어 무효로 세팅되어 있는 경우로, 페이지를 디스크에서 읽어오는 과정에서 오버헤드가 발생하여 성능에 큰 영향을 미침

 

FIFO : 가장 먼저 들어온 페이지를 교체

넣으려는 페이지가 이미 주기억장치에 있는 경우 다시 적재할 이유가 없기 때문에 페이지 부재가 발생하지 않음

참조페이지 1 2 3 1 2 4 5 1
주기억장치 1 2 3 3 3 4 5 1
  1 2 2 2 3 4 5
    1 1 1 2 3 4
          1 2 3
페이지부재 o o o x x o o o

 

2021년08월14일

귀도 반 로섬(Guido van Rossum)이 발표한 언어로 인터프리터 방식이자 객체지향적이며, 배우기 쉽고 이식성이 좋은 것이 특징인 스크립트 언어는?

  1. C++
  2. JAVA
  3. C#
  4. Python

[문제 해설]

  1. C++ : AT&T 벨 연구소의 비야네 스크롭스트룹이 C언어 디반으로 1983년 발표하여 발전한 프로그래밍 언어
  2. JAVA : 썬 마이크로시스템즈의 제임스 고슬링과 다른 연구원들이 개발한 객체 지향적 프로그래밍 언어
  3. C# : 마이크로소프트에서 개발한 객체 지향 프로그래밍 언어로, 닷넷 프레임워크의 한 부분으로 만들어졌음
  4. Python : 귀도 반 로섬이 발표한 고급 프로그래밍 언어로, 플랫폼에 독립적이며 인터프리터식, 객체지향적, 동적 타이핑 대화형 언어

 

2021년05월15일

TCP 프로토콜과 관련한 설명으로 틀린 것은?

  1. 인접한 노드 사이의 프레임 전송 및 오류를 제어한다.
  2. 흐름 제어(Flow Control)의 기능을 수행한다.
  3. 전이 중(Full Duplex) 방식의 양방향 가상회선을 제공한다.
  4. 전송 데이터와 응답 데이터를 함께 전송할 수 있다.

[문제 해설]

TCP의 제어

  1. 흐름 제어 : 송신측과 수신측 사이의 데이터 처리 속도 차이를 제어하기 위한 기법
  2. 오류 제어 : 오류 검출과 재전송을 포함
  3. 혼잡 제어 : 송신측의 데이터 전달과 네트워크 데이터 처리 속도를 해결하기 위한 기법

Full Duplex : 한 개의 Port를 이용하여 upload/download가 가능한 방식

 

2020년08월22

UNIX에서 새로운 프로세스를 생성하는 명령어는?

  1. ls
  2. cat
  3. fork
  4. chmod

[문제 해설]

유닉스 명령어

  1. ls : 디렉토리나 파일 목록 출력
  2. cat : 파일 내용 출력
  3. fork : 새로운 프로세스 생성
  4. chmod : 파일이나 디렉토리에 대한 접근 권한 변경

 

2021년03월07일

크래커가 침입하여 백도어를 만들어 놓거나, 설정파일을 변경했을 때 분석하는 도구는?

  1. tripwire
  2. tcpdump
  3. cron
  4. netcat

[문제 해설]

  1. tripwire : 자신의 리눅스 프로그램을 외부의 크래커 공격과 내부의 악의적인 사용자의 공격으로부터 지켜내는 마지노선과 같은 역할을 하는 프로그램으로 시스템 내에 지정한 중요한 디렉토리와 파일에 대한 데이터베이스를 생성한 후 tripwire를 실행할 때 새로 생성된 데이터베이스와 비교하여 그 차이점을 보고함
  2. tcpdump : 컴퓨터에 부착된 네트워크를 통해 송수신되는 기타 패킷을 가로채고 표시할 수 있도록 도와주는 소프트웨어
  3. cron : 유닉스 계열 컴퓨터 운영 체제의 시간 기반 잡 스케줄러로 작업을 고정된 시간, 날짜, 간격에 주기적으로 실행할 수 있도록 스케줄링하기 위해 사용
  4. netcat : TCP 또는 UDP를 사용하여 네트워크 연결을 읽고 쓰는 데 사용되는 컴퓨터 네트워킹 유틸리티

 

2021년05월15일

CBD(Component Based Development) SW개발 표준 산출물 중 분석 단계에 해당하는 것은?

  1. 클래스 설계서
  2. 통합 시험 결과서
  3. 프로그램 코드
  4. 사용자 요구사항 정의서

[문제 해설]

CBD(Component-Based Development) : 컴포넌트 기반 방법론으로 기존의 시스템이나 소프트웨어를 구성하는 컴포넌트를 조합하여 하나의 새로운 애플리케이션을 만드는 방법론

 

CBD 방법론의 개발 공정

  1. 요구사항 파악 : 요구사항 기술서, 용어 사전, 개념 모델, 유스케이스 모델
  2. 분석 및 설계 : 객체 모델, UI 설계서, 아키텍처 기술서, 인터페이스 명세서, 컴포넌트 명세서, 컴포넌트 설계서, 데이터베이스 설계서
  3. 구현 : 개발 표준 정의서, 플랫폼 종속 코드
  4. 테스트 : 테스트 계획서, 컴포넌트 테스트 보고서, 통합 테스트 보고서, 인수 테스트 보고서

 

2020년06월06일

IP 또는 ICMP의 특성을 악용하여 특정 사이트에 집중적으로 데이터를 보내 네트워크 또는 시스템의 상태를 불능으로 만드는 공격 방법은?

  1. TearDrop
  2. Smishing
  3. Qshing
  4. Smurfing

[문제 해설]

서비스 공격 유형

  • DoS (서비스 거부) : 표적이 되는 서버의 자원을 고갈시킬 목적으로 다수 공격자 or 시스템에서 대량의 데이터를 한 곳에 집중적으로 전송
  • Ping of Death : Ping 명령을 전송할 때 패킷의 크기를 인터넷 프로토콜 허용범위 이상으로 전송하여 공격 대상의 네트워크를 마비시키는 서비스 거부 공격
  • Smurfing : IP나 ICMP의 특성을 악용 엄청난 양의 데이터를 한 사이트에 집중적으로 보냄으로써 네트워크를 불능 상태로 만드는 공격 방법
  • SYN Flooding : 공격자가 가상의 클라이언트로 위장하여 3-way-handshake를 의도적으로 중단, 서버가 대기상태에 놓여 정상 서비스를 못하게 하는 공격 방법
  • TearDrop : Offset 값을 변경시켜 수신 측에서 패킷을 재조립할 때 오류로 인한 과부하를 발생 시킴
  • Land : 패킷을 전송할 때 송 수신 IP주소를 모두 공격대상 IP주소로 하여 공격대상에게 전송하는 것, 공격대상은 송신 IP주소가 자신이기 때문에 자신에게 무한히 응답하게 됨
  • DDoS(분산 서비스 거부) : 여러 곳에 분산된 공격 지점에서 한 곳의 서버에 대해 분산 서비스 공격을 수행

※ Smishing : 문자 메시지(SMS)와 피싱(phishing)의 합성어로 2012년도에 국내에 처음 등장한 신종 금융사기로 문자 메시지를 이용하여 악성 앱이나 악성코드를 휴대전화에 유포한 후 휴대전화 소액결제 관련 정보를 가로챔

Qshing : 큐싱이란, QR코드와 피싱(Fishing)의 합성어로 QR코드를 통해 악성 링크로 접속을 유도하거나 직접 악성코드를 심는 금융범죄 기법

 

2020년08월22일

블록 암호화 방식이 아닌 것은?

  1. DES
  2. RC4
  3. AES
  4. SEED

[문제 해설]

블록 암호화 방식

  • DES (Data Encryption Standard) : 대칭키 암호로 56개의 키 사용
  • RC5 : 32, 64, 128 비트의 블록을 사용할 수 있는 암호화 방식
  • AES (Advanced Encryption Standard) : 16, 24, 32바이트의 블록 크기를 사용 가능한 대칭키 암호화 방식
  • SEED : 순수 국내 기술로 개발한 블록암호 알고리즘
  • IDEA (International Data Encryption Algorithm) : 128비트 키, 64비트 블록 암호로 Feistel 구조 변형

 

2021년05월15일

라우팅 프로토콜인 OSPF(Open Shortest Path First)에 대한 설명으로 옳지 않은 것은?

  1. 네트워크 변화에 신속하게 대처할 수 있다.
  2. 거리 벡터 라우팅 프로토콜이라고 한다.
  3. 멀티캐스팅을 지원한다.
  4. 최단 경로 탐색에 Dijkstra 알고리즘을 사용한다.

[문제 해설]

라우팅 : 패킷을 전송하기 위해 송신측에서 목적지까지의 경로를 정하고 정해진 경로를 따라 패킷을 전달하는 과정

 

라우팅 프로토콜의 종류

라우팅 프로토콜 종류 (출처: https://needjarvis.tistory.com/159)

라우팅 고정 여부

  • Static Routing Protocol : 수동식, 사람이 일일이 경로를 입력, 라우터 부하경감, 고속 라우팅 가능
  • Dynamic Routing Protocol : 라우터가 스스로 라우팅 경로를 동적으로 결정
    • Interior Gateway Protocol : AS 내에서의 라우팅을 담당하는 라우팅 프로토콜
      • RIP
      • IGRP
      • OSPF
      • EIGRP
    • Exterior Gateway Protocol : 서로 다른 AS사이에서 사용되는 라우팅 프로토콜
      • BGP
      • EGP

주요 라우팅 프로토콜 비교 (출처: https://needjarvis.tistory.com/159)

 

2021년03월07일

전기 및 정보통신기술을 활용하여 전력망을 지능화, 고도화함으로써 고품질의 전력서비스를 제공하고 에너지 이용효율을 극대화하는 전력망은?

  1. 사물 인터넷
  2. 스마트 그리드
  3. 디지털 아카이빙
  4. 미디어 빅뱅

[문제 해설]

스마트 그리드 : 전기의 생산, 운반, 소비 과정에 정보통신기술을 접목하여 공급자와 소비자가 서로 상호작용함으로꺼 효율성을 높인 지능형 전력망 시스템

디지털 아카이빙 : 지속적으로 보존할 가치를 가진 디지털 객체를 장기간 관리하여 이후의 이용을 보장하는 활동

미디어 빅뱅 : 미디어 산업 전체가 빅뱅과 같이 크고 빠르게 재편되는 상황

 

2021년05월15일

침입차단 시스템(방화벽) 중 다음과 같은 형태의 구축 유형은?

  1. Block Host
  2. Tree Host
  3. Screened Subnet
  4. Ring Homed

[문제 해설]

스크린 서브넷(Screen Subnet) : 외부 네트워크와 내부 네트워크 사이에 두는 완충적인 통신망

 

2020년09월26일

소프트웨어 프로세스에 대한 개선 및 능력 측정 기준에 대한 국제 표준은?

  1. ISO 14001
  2. IEEE 802.5
  3. IEEE 488
  4. SPICE

[문제 해설]

  1. ISO 14001 : 모든 산업 분야 및 활동에 적용할 수 있는 환경경영시스템에 관한 국제 규격
  2. IEEE 802.5 : 토큰링에 대한 표준
  3. IEEE 488 : 단거리 디지털 통신 서비스
  4. SPICE (Software Process Improvement and Capability Etermination) : 소프트웨어의 품질 및 생산성 향상을 위해 소프트웨어 프로세스를 평가 및 개선하는 국제 표준으로
    공식 명칭은 ISO/IEC 15504