자격증 요약/정보처리기사

[22년 1회] 정보처리기사 실기 문제 풀이

문성 2026. 2. 25. 19:00


1. 아래 설명에 맞는 RAID 단계를 숫자로 작성하시오.

- Striping(스트라이핑) 구현 방식
- I/O 로드의 분산으로 매우 빠른 속도
- 데이터를 블럭으로 분할 저장하며, 각 블럭은 다른 디스크로 나뉘어 저장
답: 0

 

 

2. 다음 설명을 확인하여 해당하는 항목을 보기에서 찾아 적으시오.

( 1 ) 오류가 발생하기 전까지의 사항을 로그(log)로 기록해 놓고, 이전 상태로 되돌아간 후, 실패가 발생하기 전까지의 과정을 그대로 따라가는 현상
( 2 ) 작업을 취소하여 트랜잭션을 이전 상태로 되돌리는 것
답: (1) redo  (2) undo

 

 

3. 다음 자바 문법에 알맞는 출력 결과를 작성하시오.

class A {
    int a;
    int b;
}
public class Main {
    static void func1(A m) {
        m.a *= 10;
    }
    static void func2(A m) {
        m.a += m.b;
    }
    public static void main(String args[]) {
        A m = new A();
        m.a = 100;
        func1(m);
        m.b = m.a;
        func2(m);
        System.out.printf("%d", m.a);
    }
}
답: 2000
                               

 

 

4. 다음 SQL 결과에 알맞는 쿼리을 작성하시오.

SELECT name, score FROM 성적 ( 1 ) BY ( 2 ) ( 3 )
답: (1) ORDER  (2) score  (3) DESC
                               

ORDER BY (  ): 순서를 정렬해라. ( ) 기준으로
ASC : 오름차순 (생략가능)
DESC : 내림차순

성적테이블의 score 가 내림차순 되어있다.
내림차순 : 큰 수 → 작은 수 (점점 작아짐)
오름차순 : 작은 수 → 큰 수 (점점 커짐)

 

 

5. 데이터베이스의 이상현상 중, 삭제 이상에 대해 서술하시오.

답: 데이터를 삭제할 경우 원하지 않는 다른 데이터도 삭제되어버리는 이상

 

 

6. 다음은 파이썬 코드에서 출력되는 a와 b의 값을 작성하시오.

def exam(num1, num2=2):
    print('a=', num1, 'b=', num2)
exam(20)
답: a= 20 b= 2
                               


exam(num20, 50) 이었다면
num2=2 가 아니라 새로 들어온 50이 사용된다.

 

 

7. 다음 설명과 관련된 답을 보기에서 골라 작성하시오.

( 1 ) 요소를 확장해준다는 의미를 가지고 있으며, 모든 항목을 하나의 요소로 추가
( 2 ) 리스트 내부 요소를 꺼내주는 함수로써, 그 요소는 리스트 안에서 삭제하고 그 값을 반환
( 3 ) 리스트 내부의 요소의 순서는 뒤집는 역할
답: (1) extend  (2) pop  (3) reverse

 

 

8. 다음 아래 단어를 영어 약자로 작성하시오.

임시 키 무결성 프로토콜
답: TKIP

 

 

9. 다음 중, 설명에 대한 답을 영어 약자로 작성하시오.

키보드나 마우스와 같은 장치 없이 말이나 행동 그리고 감정과 같은 인간의 자연스러운 표현으로 컴퓨터나 장치를 제어할 수 있는 환경
답: NUI

 

 

10. 다음은 분석도구에 대한 설명으로 보기에 알맞는 답을 작성하시오.

( 1 ) 소스 코드의 실행 없이, 코드의 의미를 분석해 결함을 찾아내는 원시적 코드 분석 기법
( 2 ) 소스 코드를 실행하여 프로그램 동작이나 반응을 추적하고 코드에 존재하는 메모리 누수, 스레드 결함 등을 분석
답: (1) static  (2) dynamic

 

 

11. 다음 Java 코드 중에서 밑줄에 들어갈 알맞는 코드를 작성하시오.

class Car implements Runnable {
    int a;
    public void run() {
        System.out.println("message");
    }
}
public class Main {
    public static void main(String args[]) {
        Thread t1 = new Thread(new ___1___());
        t1.start();
    }
}
답: Car
                               

Car 라는 클래스가 Runnable 의 자격을 얻었으므로, Thread 에 들어갈 수 있는 것도 Car 뿐이다.
                               

class Car implements Runnable {
→ Java의 스레드 생성 방식 중 'Runnable' 인터페이스 구현 모델
→ Runnable 인터페이스 : 자바가 미리 만들어둔, 이걸 쓰는 클래스는 무조건 run( )이라는 메소드를 만들어야한다는 규칙

    int a;

    public void run() {
        System.out.println("message");
                               

public class Main {
    public static void main(String args[]) {
        Thread t1 = new Thread(new Car());
new Car() : "달리기" 라는 작업 내용이 담긴 설명서(객체)를 만든다.
new Thread : 실제로 일을 할 일꾼(스레드)을 만든다.
new Thread(new Car()) : "일꾼에게 할 일을 준다.", 일꾼에게 할일은 car 객체에 적힌 run() 이다.라고 알려주는 것

        t1.start();
start() : 시작 버튼을 누른다.
※ run( )을 직접 호출하지 않고, start( ) 를 호출하는 이유는, start( )를 눌러야 자바가 새로운 실행 흐름을 만들고, 그 안에서 비로소 run( )을 실행하기 때문
※ t1.run( )이라고 쓰면, 새로운 스레드가 생기지 않고 그냥 일반 함수처럼 동작함.

 

 

12. 다음 설명에 대한 알맞는 단어를 작성하시오.

자바 프로그래밍 언어를 이용한 xUnit의 테스트 기법으로써 숨겨진 단위 테스트를 끌어내어 정형화시켜 단위 테스트를 쉽게 해주는 테스트용 Framework이다.
답: JUnit

 

 

13. 다음 보기 중에서 블랙박스 테스트 기법을 3가지 골라 작성하시오.

[보기]
ㄱ. Cause-Decision Graph  ㄴ. Decision Coverage  ㄷ. Boundary Value Analysis  ㄹ. Equivalence Partitioning
ㅁ. Statement Coverage  ㅂ. Cause-Effect Graph  ㅅ. Base Path Testing  ㅇ. Base Path Coverage 
ㅈ. Boundary Division Analysis
답: ㄷ, ㄹ, ㅂ

 

 

14. 다음 소스코드에서 입력값이 5가 들어왔을때 출력되는 값을 작성하시오.

#include <stdio.h>
int func(int a) {
    if (a <= 1)
        return 1;
    return a * func(a - 1);
}
int main() {
    int a;
    scanf("%d", &a);
    printf("%d", func(a));
    return 0;
}
답: 120
                               


                               
이를 쉽게 볼 수 있게 표로 나타내면,


더 간단하게 표현하면,

 

 

15. 다음 중, 괄호 ( ) 안에 들어갈 연산자를 써서 정수를 역순으로 출력하는 알맞는 답을 작성하시오.

#include <stdio.h>
int main() {
    int number = 1234;
    int div = 10;
    int result = 0;
    while (number ( 1 ) 0) {
        result = result * div;
        result = result + number ( 2 ) div;
        number = number ( 3 ) div;
    }
    printf("%d", result);
    return 0;
}
결과 : 4321
답: (1) >  (2) %  (3) /
                               

이런 문제는 주로 나머지(%) 와 몫(/) 연산을 사용한다.
 - 나머지(%) : 뽑아내기
 - 몫(/) : 제거하기

 

 

16. 다음 설명에 대한 답을 영어 약자로 작성하시오.

정보보호 관리체계의 영문 약자
답: ISMS

 

 

17. 다음 설명 중, 괄호 ( ) 안에 들어가는 알맞는 답을 보기에서 선택하여 작성하시오.

슈퍼키는 ( 1 ) 의 속성을 갖는다.
후보키는 ( 1 ) 와/과 ( 2 ) 의 속성을 갖는다.
답: (1) 유일성  (2) 최소성

 

 

18. 다음 설명과 관련된 답을 보기에 찾아서 작서하시오.

이 공격은 APT 공격에서 주로 쓰이는 공격으로, 공격 대상이 방문할 가능성이 있는 합법적인 웹 사이트를 미리 감염시킨 뒤, 잠복하고 있다가 공격 대상이 방문하면 대상의 컴퓨터에 악성코드를 설치하는 방식
답: watering hole

 

 

19. 다음 소스코드가 실행할 때의 출력값을 작성하시오.

#include <stdio.h>
int isPrime(int number) {
    int i;
    for (i = 2; i < number; i++) {
        if (number % i == 0)
            return 0;
    }
    return 1;
}
int main(void) {
    int number = 13195;
    int max_div = 0;
    int i;
    for (i = 2; i < number; i++) {
        if (isPrime(i) == 1 && number % i == 0) {
            max_div = i;
        }
    }
    printf("%d", max_div);
    return 0;
}
답: 29
                               

소인수분해 코드
    for (i = 2; i < number; i++) {
        if (isPrime(i) == 1 && number % i == 0) {
            max_div = i;
        }

초기값 13195 를 소인수분해한다.
13,195 / 5 = 2,639
2,639 / 7 = 377
377 / 13 = 29
29 / 29 = 1

i는 29

 

 

20. 다음은 V모델에서의 테스트 단계에 대한 설명으로 괄호안에 들어갈 답을 작성하시오.

답: (1) 단위 테스트  (2) 통합 테스트  (3) 시스템 테스트  (4) 인수 테스트