공부(TIL)/정보처리기사

[정보처리기사 실기] 2022년 3회 기출 문제 풀이

하루지오 2024. 7. 16. 20:13

1. 다음은 C언어 코드이다. 실행 결과를 쓰시오.

#include <stdio.h>

int calc(int w, int h, int j, int i) {
	if(i>=0 && i<h && j>=0 && j<w)
    	return 1;
    return 0;
}

int main() {
	int field[4][4] = {{0,1,0,1},{0,0,0,1},{1,1,1,0},{0,1,1,1}};
    int mines[4][4] = {{0,0,0,0},{0,0,0,0},{0,0,0,0},{0,0,0,0}};
    int w = 4, h = 4;
    int i, j, k, l;
    
    for(l=0; l<h; l++) {
    	for(k=0; i<w; k++) {
        	if(field[l][k] == 0)
            	continue;
            
            for(i=l-1; i<=l+1; i++) {
            	for(j=k-1; j<=k+1; j++) {
                    if(calc(w, h, j, i) == 1) {
                        mines[i][j] += 1;
                    }
                }
            }
        }
    }
    
    for(l=0; l<h; l++) {
    	for(k=0; k<w; k++) {
        	printf("%d", mines[l][k]);
        }
        printf("\n");
    }
    
    return 0;
}
더보기

답: 1132

      3453

      3564

      3553

 

continue는 조건에 해당될 때 이후의 연산을 건너뛰어야 함

즉, field [l][k]가 1인 경우에만 for(i=l-1; i<=l+1; i++) 반복문을 계산하면 됨

 

2. 올바른 관계 대수 기호를 쓰시오.

합집합(       ), 차집합(        ), 카티션 프로덕트(        ), 프로젝트(        ), 조인(         )

더보기

답 : , ㅡ, × , π, ⨝

 

1) 합집합: 두 개의 관계를 합쳐서 중복을 제거한 튜플들의 집합을 생성

2) 차집합: 한 관계에서다른 관계의 튜플들을 제외한 튜플들의 집합을 생성

3) 카티션 프로덕트: 두 개의 관계에서 모든 가능한 튜플 생성

4) 프로젝트: 주어진 관계에서 필요한 속성들만 선택하여 새로운 관계를 생성

5) 조인: 두 개 이상의 관계에서 공통된 속성을 기준으로 튜플들을 결합하여 새로운 관계를 생성

https://jidefine231228.tistory.com/95

 

[정보처리기사 실기] 관계 대수

1) 데이터베이스 관리 시스템(DBMS)에서 사용되는 질의 언어의 하나2) 관계형 데이터베이스의 데이터를 처리하고 조작하는 데 사용 Projection3) 기본 단위: 관계형 데이터베이스의 관계(튜플(행)들의

jidefine231228.tistory.com

 

3. 다음은 디자인 패턴에 대한 설명이다. (          ) 안에 들어갈 디자인 패턴의 유형을 쓰시오.

(                    ) 패턴은 기능의 클래스 계층과 구현의 클래스 계층을 연결하고, 구현부에서 추상 계층을 분리하여 추상화된 부분과 실제 구현 부분을 독립적으로 확장할 수 있는 디자인 패턴이다.

(                    ) 패턴은 한 객체의 상태가 바뀌면 그 객체에 의존하는 다른 객체들에 연락이 가고 자동으로 내용이 갱신되는 방법으로 일대다의 의존성을 가지며 상호 작용하는 객체 사이에서는 가능하면 느슨하게 결합하는 디자인 패턴이다.

더보기

: 브릿지, 옵저버

 

1) 브릿지( Bridge ): 기능의 클래스 계층과 구현의 클래스 계층을 연결하고, 구현부에서 추상 계층을 분리하여 추상화된 부분과 실제 구현 부분을 독립적으로 확장할 수 있는 패턴

2) 옵저버( Observer ): 한 객체의 상태가 바뀌면 그 객체에 의존하는 다른 객체들에 연락이 가고 자동으로 내용이 갱신되는 패턴

https://jidefine231228.tistory.com/96

 

[정보처리기사 실기] 디자인 패턴

디자인 패턴1) 소프트웨어 설계에서 자주 발생하는 문제를 해결하기 위해 반복적으로 사용되는 해결책의 모음2) 공통된 설계 문제를 해결하는 방법을 표준화하고, 재사용 가능한 설계 아키텍처

jidefine231228.tistory.com

 

4. 다음은 JAVA 언어 코드이다. 실행 결과를 쓰시오.

class Soojebi {
	public static void main(String[] args) {
    	int[] result = new int[5];
        int[] arr = {79, 34, 10, 99, 50};
        for(int i = 0; i<5; i++) {
        	result[i] = 1;
            for(int j = 0; j<5; j++) {
            	if(arr[i] < arr[j]) result[i]++;
            }
        }
        for(int k=0; k<5; k++) {
        	System.out.print(result[k]);
        }
    }
}
더보기

답: 24513

 

1) i=0 : arr[0] < arr[3], result[0]=2

2) i=1 : arr[1] < arr[0],

            arr[1] < arr[3],

            arr[1] < arr[4], result[1]=4

3) i=2 : arr[2] < arr[0],

            arr[2] < arr[1],

            arr[2] < arr[3], 

            arr[1] < arr[4], result[1]=5

4) i=3 : 없음, result[3]=1

5) i=4 : arr[4] < arr[0],

            arr[4] < arr[3], result[1]=3

 

5. 192.168.1.0/24인 IP 주소를 FLSM 방식으로 3개의 Subnet으로 분할할 때 두 번째, Subnet의 브로드캐스트 IP 주소(10진수)를 쓰시오.

더보기

답: 

 

6. 다음의 테스트는 기법이 무엇인지 <보기>에서 고르시오.

  • 등가 분할 후 경곗값 부분에서 오류 발생 확률이 높기 때문에 경계값을 포함하여 테스트 케이스를 설계하여 테스트하는 기법이다.
  • 예를 들어 0, 60, 80, 100으로 등가 분할 후 테스트데이터는 -1, 0, 59, 60, 61, 79, 80, 81, 99, 100이다.
ㄱ. Equivalence Partitioning ㄴ. Decision Table ㄷ. State Transition ㄹ. Use Case
ㅁ. Classification Tree Method ㅂ. Cause-Effect Graph ㅅ. Boundary Value Analysis  
더보기

답: ㅅ. Boundary Value Analysis

 

1) 경곗값 분석 테스트(Boundary Value Analysis)

등가분할 후 경곗값 부분에서 오류 발생 확률이 높기 때문에 경곗값을 포함하여 테스트 케이스를 설계하여 테스트

https://jidefine231228.tistory.com/97

 

[정보처리기사 실기] 테스트 기법

테스트 기법 1) 경곗값 분석 테스트(Boundary Value Analysis)등가분할 후 경곗값 부분에서 오류 발생 확률이 높기 때문에 경곗값을 포함하여 테스트 케이스를 설계하여 테스트하는 기법 2) 동등 분할

jidefine231228.tistory.com

 

7. 직원 테이블과 부서 테이블이 다음과 같을 때 다음 쿼리를 수행한 결과를 쓰시오.

[부서] 테이블

부서 코드 부서명
10 기획부
20 영업부
30 디자인부

 

[직원] 테이블

부서 코드 직원 코드 부서원
10 1 홍길동
10 2 장길산
20 3 임꺽정
20 4 김철수
20 5 이영희
30 6 이순신
30 7 안중근
[조건]
- [부서] 테이블 생성할 시 부서코드는 PRIMARY KEY로 선언되어 있고 CASCADE 함수를 사용
- [직원] 테이블의 부서코드는 [부서] 테이블의 부서 코드를 FOREIGN KEY로 참조함

[쿼리]
1) SELECT COUNT(DISTINCT 부서코드) FROM 직원;
2) DELTE FROM 부서 WHERE 부서코드 = '20';
    SELECT COUNT(DISTINCT 직원코드) FROM 직원;
더보기

답: 3, 4

 

1) DISTINCT는 중복 제거의 의미로, 직원 테이블에서 부서코드의 개수인 3이 답이다.

2) 먼저 부서코드가 20인 행을 부서 테이블에서 삭제한다.

중복된 직원코드는 없기 때문에 직원 테이블에서 남아있는 행의 개수인 4가 답이 된다.


8. (      ) 안에 들어갈 용어를 쓰시오.

(                    ) 은/는 사람들의 심리와 행동 양식을 교묘하게 이용해서 원하는 정보를 얻는 공격 기법이다.
(                    ) 은/는 정보를 수집한 후, 저장만 하고 분석에 활용하고 있지 않은 다량의 데이터이다.

더보기

답: 사회공학, 다크 데이터

 

1) 사회공학: 사람들의 심리와 행동 양식을 교묘하게 이용해서 원하는 정보를 얻는 공격 기법

2) 다크 데이터: 정보를 수집한 후, 저장만 하고 분석에 활용하고 있지 않은 다량의 데이터

https://jidefine231228.tistory.com/98

 

[정보처리기사 실기] 공격 기법

공격 기법1) 소프트웨어: XSS, CSRF, SQL Injetion, 2) 시스템: DoS, DDos, DRDos3) 애플리케이션: HTTP GET 플러딩, Slowloris, RUDY, Slow HTTP Read Dos, Hulk Dos, Hash Dos4) 네트워크: 네트워트 스캐너/스니퍼, 패스워드 크

jidefine231228.tistory.com

https://jidefine231228.tistory.com/99

 

[정보처리기사 실기] 데이터 관련 용어

데이터 관련 용어1) 빅데이터(Big Data)기존 데이터베이스 관리도구로 데이터를 수집, 저장, 관리, 분석할 수 있는 역량을 넘어선 대량의 정형 또는 비정형 데이터 집합2) 스몰 데이터(Small Data)기존

jidefine231228.tistory.com


9. 다음은 파이썬 코드이다. 실행 결과를 쓰시오.

l = [1,2,3,4,5]
l = list(map(lambda num : num + 100, l))
print(l)

 

더보기

답: [101, 102,103, 104, 105]

 

파이썬의 map 함수는 map(매개변수, 리스트)로 동작됨

매개변수에는 lamda 함수가 들어가 있으며, 매개변수인 lamda의 값이 순차적으로 리스트 l의 값으로 전달됨

즉 1+100, 2+100, 3+100, 4+100, 5+100 실행되어 리스트 l은 [101, 102, 103, 104, 105]가 됨

 

10. 다음에서 설명하는 보안 장비는 무엇인가?

  • 다양한 보안 장비와 서버, 네트워크 장비 등으로부터 보안 로그와 이벤트 정보를 수집한 후 정보 간의 연관성을 분석하여 위협 상황을 인지하고, 침해 사고에 신속하게 대응하는 보안 관제 솔루션(solution)이다.
  • 특히 기업에서 생성되는 테라바이트급의 정형, 비정형 데이터와 방화벽, 안티바이러스 시스템, 서버, 네트워크 장비 등으로부터 수집한 데이터 등을 빅데이터 기반의 로그 분석을 통하여 보안의 위협 징후를 빠르게 판단, 대응할 수 있도록 해주는 보안 관제 솔루션이다.
더보기

답: SIEM(Security Information and Event Management)

 

1) SIEM(Security Information and Event Management)

보안 로그와 이벤트 정보를 수집한 후 빅데이터 기반의 로그 분석을 통하여  위협 상황을 인지하고, 침해 사고에 신속하게 대응하는 보안 관제 솔루션

https://jidefine231228.tistory.com/100

 

[정보처리기사 실기] 보안 솔루션

보안 솔루션1) SIEM(2) SIM(3) SEM(4) ESM((1) 네트워크 보안 솔루션방화벽(Firewall)웹 방화벽(Web Firewall)네트워크 접근 제어(NAC, Network Access Control)침입 탐지 시스템(IDS, Intrusion Detection System)침입 방지 시스

jidefine231228.tistory.com

 

11. 다음은 형상 관리에 대한 설명이다. (     ) 안에 들어갈 형상 관리 도구를 보기에서 고르시오.

  • (                    ): 중앙집중형 클라이언트-서버 방식으로 하나의 서버에서 소스를 쉽고, 유용하게 관리할 수 있게 도와주는 도구로 저장소를 만들어 그곳에 소스를 저장해서 소스 중복이나 여러 문제를 해결하기 위한 도구
  • (                    ): 가장 오래된 형상 관리 도구 중의 하나로서 중앙집중형 서버 저장소를 두고 클라이언트가 접속해서 버전 관리를 실행하는 형상 관리 도구로 파일 단위로 변경 사항 관리가 가능한 도구
  • (                    ): 로컬 저장소와 원격 저장소로 분리되어 분산 저장하는 도구로 빠른 속도에 중점을 둔 분산형 버전 관리 시스템이며, 대형 프로젝트에서 효과적이고 유용한 도구
ㄱ. OLAP ㄴ. CVS ㄷ. Ant ㄹ. Maven ㅁ. Git
ㅂ. Jenkins ㅅ. Spring ㅇ. SVN ㅈ. Cyber Kill Chain  
더보기

: SVN, CVS, Git

 

1) SVN: 

2) CVS: 

3) Git: 

4) Ant: 

5) Maven: 

6) Jenkins: 

7) Spring: 

8) OLAP: 

9) Cyber Kill Chain: 

 

12. 학생(STUDENT) 테이블에 정보과 학생 50명, 전기과 학생 100명, 전산과 학생 50명에 관한 데이터가 있다고 했을 때, 다음에 주어지는 SQL문 (1), (2), (3)을 각각 실행시켰을 때 튜플 순느 각각 몇 개인가?(단 DEPT는 학과 칼럼명이다.)

  • 정보과 = 50명
  • 전기과 = 100명
  • 전산과 = 50명
[쿼리]
1) SELECT DEPT FROM STUDENT;
2) SELECT DISTINCT DEPT FROM STUDENT;
3) SELECT COUNT(DISTINCT DEPT) FROM STUDENT WHERE DEPT = '전산과';
더보기

:  (1) 200 (2) 3 (3) 1

 

튜플: 릴레이션(테이블)의 행(row)에 해당하는 요소

1) STUDENT 테이블에서 DEPT 컬럼의 전체를 조회

2) STUDENT 테이블에서 DEPT 컬럼 중 중복되는 값을 제외하고 조회

3) STUDENT 테이블에서 DEPT 컬럼 중 중복되는 값을 제외하고 '전산과'에 해당되는 튜플 조회

 

13. 다음은 C언어 코드이다. 실행 결과를 쓰시오.

#includ <stdio.h>
void main(){

    int i, j, k, s;
    int el = 0;

      for(i=6; i<=30; i++){
        s=0;
        k=i/2;
        for(int j=1; j<=k; j++){
          if(i%j==0){
            s=s+j;
          }
        }
        if(s==i){
        el++;
        }
      }

      printf("%d", el);
  }
더보기

: 2

 

%: 나눗셈 후의 몫

i=6; i<=30을 보고 i가 6의 배수인 경우와, k=i/2를 보고 i가 2의 배수인 경우를 고려하여 규칙을 최대한 찾음

1) i=6: s=6, el=1

2) i=28: s=28, el=2

 

14. 다음 주요 IT 기술에 대한 용어 설명이다. (   ) 안에 들어갈 용어를 보기에서 골라서 쓰시오.

  • (               )은/는 프로세서(processor) 안에 독립적인 보안 구역을 따로 두어 중요한 정보를 보호하는 ARM사에서 개발한 하드웨어 기반의 보안 기술로 프로세서(processor) 안에 독립적인 보안 구역을 별도로 하여, 중요한 정보를 보호하는 하드웨어 기반의 보안 기술이다.
  • (                )은/는 사용자들이 사이트에 접속할 때 주소를 잘못 입력하거나 철자를 빠뜨리는 실수를 이용하기 위해 유사한 유명 도메인을 미리 등록하는 일로 URL 하이재킹(hijacking)이라고도 한다.
[보기]
ㄱ. 트러스트존(Trustzone)
ㄴ. 타이포스쿼팅(Typosquatting)
ㄷ. 키로거 공격(Keylogger)
ㄹ. 레이스 컨디션 공격(Race Condition Attack)
ㅁ. APT 공격(Advanced Persistent Threat)
ㅂ. 공급망 공격(Supply Chain Attack)
ㅅ. 악성 봇(Malicious Bot)
ㅇ. 사이버 킬체인(Cyber Kill Chain)
ㅈ. 랜섬웨어(Ransomware)
더보기

답: ㄱ, ㄴ

 

1) 트러스트존(Trustzone): 프로세서(processor) 안에 독립적인 보안 구역을 따로 두어 중요한 정보를 보호하는 ARM사에서 개발한 하드웨어 기반의 보안 기술로 프로세서(processor) 안에 독립적인 보안 구역을 별도로 하여, 중요한 정보를 보호하는 하드웨어 기반의 보안 기술이다.

2) 타이포스쿼팅(Typosquatting):사용자들이 사이트에 접속할 때 주소를 잘못 입력하거나 철자를 빠뜨리는 실수를 이용하기 위해 유사한 유명 도메인을 미리 등록하는 일로 URL 하이재킹(hijacking)이라고도 한다.

https://jidefine231228.tistory.com/101

 

[정보처리기사 실기] 보안 기술

보안 기술1) Trustzone프로세서(processor) 안에 독립적인 보안 구역을 따로 두어 중요한 정보를 보호하는 ARM사에서 개발한 하드웨어 기반의 보안 기술

jidefine231228.tistory.com

 

15. 다음에서 설명하는 용어를 쓰시오.

  • 커버로스에서 사용되는 기술로 한 번의 인증 과정으로 여러 컴퓨터싱의 자원을 이용할 수 있도록 해주는 인증 기술
  • 하나의 사용자 정보를 기반으로 여러 시스템을 하나의 통합 인증을 사용하게 하는 기술
더보기

: SSO(Single Sign On)

 

SSO(Single Sign On)

1) 커버로스에서 사용되는 기술로 한 번의 인증 과정으로 여러 컴퓨터싱의 자원을 이용할 수 있도록 해주는 인증 기술

2) 하나의 사용자 정보를 기반으로 여러 시스템을 하나의 통합 인증을 사용하게 하는 기술

 

16. 다음은 프로세스 스케줄링에 대한 설명이다. (     ) 안에 들어갈 스케줄링 기법을 쓰시오.

  • (            ): 프로세스가 도착하는 시점에 따라 그 당시 가장 작은 서비스 시간을 갖는 프로세스가 종료 시까지 자원을 점유하는 스케줄링 기법
  • (            ): 프로세스가 같은 크기의 CPU 시간을 할당(시간 할당량), 프로세스가 할당된 시간 내에 처리 완료를 못하면 준비 큐 리스트의 가장 뒤로 보내지고, CPU는 대기 중인 다음 프로세스로 넘어가는 스케줄링 기업
  • (            ): 가장 짧은 시간이 소요되는 프로세스를 먼저 수행, 남은 처리시간이 더 짧다고 판단되는 프로세스가 준비 큐에 생기면 언제라도 프로세스가 선점되는 스케줄징 기법. 비선점 방식의 스케줄링 기법에 선점 방식을 도입한 기법
더보기

답: SJF, RR, SRT

 

프로세스 스케줄링: CPU를 사용하려고 하는 프로세스들 사이의 우선순위를 관리하는 작업

1) SJF(Shortest Job First) : 프로세스가 도착하는 시점에 따라 그 당시 가장 작은 서비스 시간을 갖는 프로세스가 종료 시까지 자원을 점유하는 스케줄링 기법 (비선점형 스케쥴링 알고리즘)

2) RR(Round Robbin) : 프로세스가 같은 크기의 CPU 시간을 할당(시간 할당량), 프로세스가 할당된 시간 내에 처리 완료를 못하면 준비 큐 리스트의 가장 뒤로 보내지고, CPU는 대기 중인 다음 프로세스로 넘어가는 스케줄링 기업 (선점형 스케쥴링 알고리즘)

3) SRT(Shortest Remaining Time First) : 가장 짧은 시간이 소요되는 프로세스를 먼저 수행, 남은 처리시간이 더 짧다고 판단되는 프로세스가 준비 큐에 생기면 언제라도 프로세스가 선점되는 스케줄징 기법. 비선점 방식의 스케줄링 기법에 선점 방식을 도입한 기법 (선점형 스케쥴링 알고리즘)

https://jidefine231228.tistory.com/102

 

[정보처리기사 실기] 프로세스 스케줄

프로세스 스케줄1) CPU를 사용하려고 하는 프로세스들 사이의 우선순위를 관리하는 작업2) 유형선점형 스케줄링하나의 프로세스가 CPU를 차지하고 있을 때, 우선숭위 높은 다른 프로세스가 현재

jidefine231228.tistory.com

 

17. 다음 UML에 대한 설명이다. (     ) 안에 들어갈 용어를 쓰시오.

  • (            ): UML의 구성 요소 중 사물의 의미를 확장하고 명확히 하는 요소로 사물과 사물을 연결하여 표현하는 요소
  • (            ): 공통의 속성, 연산(메서드), 관계, 의미를 공유하는 객체들의 집합
  • (            ): 기능을 모아놓은 클래스로 추상 메서드와 상수만을 포함하는 추상 클래스로 구현하는 모든 클래스에 대해 특정한 메서드가 반드시 존재하도록 강제하는 역할을 하는 클래스
더보기

: 관계, 클래스, 인터페이스

 

UML(Unified Modeling Language): 객체 지향 소프트웨어 개발 과정에서 산출물을 명세화, 시각화, 문서화할 때 사용되는 모델링 기술과 방법론을 통합해서 만든 표준화된 범용 모델링 언어.

1) 관계: UML의 구성 요소 중 사물의 의미를 확장하고 명확히 하는 요소로 사물과 사물을 연결하여 표현하는 요소

2) 클래스: 공통의 속성, 연산(메서드), 관계, 의미를 공유하는 객체들의 집합

3) 인터페이스: 기능을 모아놓은 클래스로 추상 메서드와 상수만을 포함하는 추상 클래스로 구현하는 모든 클래스에 대해 특정한 메서드가 반드시 존재하도록 강제하는 역할을 하는 클래스

 

19. 다음 JAVA 언어 코드이다. 실행 결과를 쓰시오.

public class Helpme {
  static int[] MakeArray(){
 
  int[] tempArr = new int[4];
  
  for(int i=0; i<tempArr.Length;i++){
    tempArr[i] = i;
  }
  
  return tempArr;
  }
  
  public static void main(String[] args){
  
  int[] intArr;
  intArr = MakeArray();
  
  for(int i=0; i < intArr.Length; i++){
  	System.out.print(intArr[i]);
  	}
  }
}
더보기

: 0123

 

tempArr 배열의 값은 intArr 배열에 그대로 저장됨 

1) i=0: tempArr[0]=0

2) i=1: tempArr[1]=1

3) i=2: tempArr[2]=2

4) i=3: tempArr[3]=3

 

20. 다음 JAVA 언어 코드이다. 실행 결과를 쓰시오.

public class Test20 {
  public static void main(String[] args){
  
  int a = 0;
  for(int i=1; i<999; i++){
    if(i%3==0 && i%2!=0)
      a = i;
    }
    System.out.print(a);
  }
}
더보기

답: 993

 

999와 가장 가까우면서, 3의 공배수이면서 2의 공배수가 아닌 i를 찾으면 됨