반응형

알고리즘과 DB 일부 문제만 정리하였습니다.

 

최근 기출문제(2019년부터)는 하단 링크를 참고해 주세요.

 

정보처리산업기사 실기 출제 유형 및 최근 기출 문제 정리(19년 1회부터 21년 1회)

정보처리 산업기사 실기 시험은 2017년 한 번 개정되고 내년에 NCS로 다시 개정을 앞두고 있습니다. 해당 글은 2017년 개정된 이후 기출 문제 중에서 2019년 1회부터 가장 최근에 있었던 2021년 1회까

developer-rooney.tistory.com

 

알고리즘 - C언어

 

다음 C언어의 <코드>와 <출력>을 보고 괄호 (1) ~ (3)에 가장 적절한 답을 적으시오.(6점)

 

<코드>

#include <stdio.h>

main() {
    int i, j;
    for (i = 2; i <= 9; i++) {
        for(j = 1; j <= 9; j++) {
            printf("%d * %d = %d\n",  (1),(2),(3)  );
        }
    }
}

 

<출력>

 

2 * 1 = 2

2 * 2 = 4

2 * 3 = 6

   .

   .

(생략)

   .

3 * 1 = 3

3 * 2 = 4

   .

   .

(생략)

   .

9 * 8 = 72

9 * 9 = 81

 

정답

 

(1) i

(2) j

(3) i * j

 

해설

 

구구단 문제입니다. printf를 통해 출력하고 있고 세 개의 %d에 각각 어떤 값이 들어가야 하는지 맞춰야 합니다. 이중 for문 중 바깥 for문 i가 2부터 시작하기 때문에 몇 번째 단인지 나타내는 역할을 합니다. 따라서 (1)에는 i가 들어가고 j의 최종 값이 9이기 때문에 단에서 1부터 9까지 곱하는 역할을 하는 변수라는 것을 알 수 있기에 (2)에는 j가 들어갑니다. 마지막 %d에는 곱해진 값인 i * j(혹은 j * i)를 넣으면 됩니다.

 

 

알고리즘 - 자바

 

다음은 Java 언어로 1부터 100의 범위 안에 가장 큰 소수를 구하는 알고리즘을 구현한 것이다. 괄호 안에 들어갈 가장 적당한 답을 적으시오.(4점)

 

import java.lang.Math;

public class Test {
    public static void main(String[] args) {
        int p = 2;
        int n = 3;
        
        while(true) {
            double t = Math.sqrt(n);
            int m = (int)t;
            for (int i = 2; i <= m; i++) {
                int r = n % i;
                if (r == 0)
                    break;
                if (i == m)
                    p = (      );
            }
            n++;
            if (n > 100)
                break;
        }
        
        System.out.printf("%d\n" p);
    }
}

 

정답

 

n

 

해설

 

특정 범위의 숫자 중에서 가장 큰 소수를 구하는 알고리즘 문제는 순서도에서도 자주 출제되는 문제입니다. 소수란 1과 자기 자신으로만 나눠지는 수를 말하고 특정 수가 소수인지 알아볼 때는 그 수를 그 수의 제곱근까지만 나눠서 떨어지지 않으면 소수라고 볼 수 있습니다.

 

예를 들어, 16의 제곱근은 4이므로 16을 1에서 4까지 나눴을 때 중간에 나눠 떨어지면 소수가 아니고 나눠 떨어지지 않으면 소수입니다. 하지만 제곱근은 수에 따라 실수가 나올 수도 있기 때문에 정수로 변환하는 과정이 필요합니다.

 

우선 변수를 살펴봅니다. 정수 n과 p가 각각 2와 3으로 초기화되어 있습니다. n은 100까지 1씩 증가할 변수이고 p는 가장 큰 소수를 담을 변수입니다.

 

while(true)는 무한 루프를 의미합니다. 중간에 break는 이 무한 루프를 종료시키는 명령어인데 'r == 0' 이거나 'n > 100' 일 때 실행됩니다. r이 0과 같아지면 제곱근까지 나누던 도중 나누어 떨어졌다는 의미이므로 이미 소수가 아닌 걸로 판정되어 더 나눌 필요가 없어져 break로 빠져나가고 n > 100 일 경우는 문제에서 제시한 100 범위를 벗어나기 때문에 break로 빠져나갑니다.

 

while문의 실수 t에는 Math.sqrt(n)이 들어가는데 Math.sqrt(n)는 n의 제곱근을 구하는 메소드입니다. 이 수를 정수로 바꾸기 위해 m이라는 새로운 정수 변수를 선언하여 t를 정수로 캐스팅한 값 '(int)t' 를 담아 초기화해줍니다. 그리고 for문을 이용하여 n을 2부터 제곱근 m까지 나누게 되는데 이 부분에서 나머지를 남을 변수 int r 이 n & i 로 초기화됩니다. r이 0이면 나누어 떨어졌기 때문에 이미 소수가 아니고 계속 나눠서 마지막에 증가하는 값 i와 m이 같아지는 경우 그 수는 소수라고 판별되어 p에 소수인지 판별 중인 변수 n을 넣어주면 됩니다.

 

 

데이터베이스

 

1. 다음 <사원> 테이블의 구조를 참고하여 미완성된 SQL문을 완성하시오.(6점)

 

<사원>

직원코드 성명 직책 연봉
12345 루니 대리 3200
12346 램파드 사원 2800

 

<SQL문>

CREATE TABLE 사원(
직원코드 NUMBER NOT NULL,
성명 CHAR(10) UNIQUE,
직책 CHAR(10) (1)(직책(2)('사원','대리','과장','팀장')),
연봉 NUMBER
);

* 괄호는 직책 속성 코드에 (1)과 (2)입니다.

 

정답

 

(1) CHECK

(2) IN

 

해설

 

직책 속성에 특정 값만 들어갈 수 있도록 설정하는 체크 제약조건 문제입니다. 이 문제에서는 직책에 사원, 대리, 과장, 팀장만 들어갈 수 있게 하기 위해 사용하고 있습니다.

반응형
반응형

알고리즘과 DB 일부 문제만 정리하였습니다.

 

최근 기출문제(2019년부터)는 하단 링크를 참고해 주세요.

 

정보처리산업기사 실기 출제 유형 및 최근 기출 문제 정리(19년 1회부터 21년 1회)

정보처리 산업기사 실기 시험은 2017년 한 번 개정되고 내년에 NCS로 다시 개정을 앞두고 있습니다. 해당 글은 2017년 개정된 이후 기출 문제 중에서 2019년 1회부터 가장 최근에 있었던 2021년 1회까

developer-rooney.tistory.com

 

알고리즘 - C언어

 

다음 C언어의 <코드>와 <출력>을 보고 괄호(1), (2)에 적용될 수 있는 가장 적절합 답을 쓰시오.(10점)

 

<코드>

#include <stdio.h>

int main(void) {

    int i, j, n;
    
    n = (1);
    
    for(i = 1; i <= (2); i++) {
        for(j = 1; j <= i; j++) {
            printf("%3d", j);
        }
        printf("\n");
    }

}

 

<출력>

 

1

1  2

1  2  3

1  2  3  4

1  2  3  4  5

1  2  3  4  5  6

1  2  3  4  5  6  7

 

정답

 

(1) : 7

(2) : n

 

해설

 

계단을 만드는 알고리즘 문제입니다. 첫 번째 괄호(1)에는 정수 n의 초기화에 필요한 값을 넣어줘야 하고 두 번째 괄호(2)에는 i가 어디까지 증가해야 하는지 넣어줘야 합니다.

 

이 문제는 어느 변수가 행이고 어느 변수가 열인지를 먼저 파악해야 하는데 이런 이중 for문에서 계단을 만들 때는 바깥 for문이 행 역할을 하는 경우가 많습니다. 정확하게 확인하기 위해 두 for문의 시작 값과 마지막 값을 확인해야 하는데 첫 번째 for문은 괄호가 있어 확인이 안 되므로 두 번째 for문이 열이 맞는지 먼저 확인합니다.

 

두 번째 for문은 0에서 바깥 for문의 값이 i까지 증가하게 됩니다. <출력> 부분을 보면 첫 번째 줄에서는 1, 두 번째 줄에서는 1 2, 세 번째 줄에서는 1 2 3..으로 몇 번째 행이냐에 따라 열의 마지막 값이 바뀌는 것을 볼 수 있습니다. 따라서 내부 for문은 열을 나타내는 게 맞습니다.

 

바깥 for문이 행 역할을 함에 따라 행의 최종 값인 7을 넣어줘야 하는데 이 최종 값 7은 n의 초기화 값으로 넣어야 하고 7로 초기화된 n을 (2)에 넣으면 문제가 해결됩니다.

 

 

알고리즘 - 자바

 

다음 Java 언어로 구현된 프로그램을 분석하여 그 실행 결과를 쓰시오.(5점)

 

public class Test {

    public static int[] arr(int[] a) {
        int i, j, sw, temp, n = 4;
        if (a[0] == 0 || a[0] < 1)
            return a;
        for (i = 0; i < n-1; i++) {
            sw = i;
            for (j = i + 1; j < n; j++) {
                if(a[j] < a[sw])
                    sw = j;
            }
        temp = a[i];
        a[i] = a[sw];
        a[sw] = temp;
        
        }
    }
    
    public static void main(String[] args) {
    
        int i;
        int n[] = {4, 2, 7, 1};
        arr(n);
        for (i = 0; i < 4; i++){
            System.out.printf(n[i] + "  ");
        }
    }
}

 

정답

 

1  2  4  7

 

해설

 

이 문제는 값을 오름차순으로 정렬하는 문제입니다. 이런 문제는 출제되면 main 메소드를 먼저 확인해야 합니다. main 함수를 보면 arr(n)이라는 메소드에 {4, 2, 7, 1} 4개의 정수를 갖는 정수 배열 n이 매개 변수로 입력되었고 마지막에 for문을 통해 n의 값들을 하나씩 출력하고 있습니다.

 

arr 메소드가 어떤 역할을 하는지 위에 정의된 'public static int[] arr(int[] a)' 에서 확인합니다. 이 메소드는 매개변수로 정수 배열을 받아서 특정 역할을 수행한 후 정수 배열을 반환합니다.

 

모르시는 분들을 위해 메소드를 분석해보면 'public : 접근제어자, static : 메모리 공유, int[] : 반환 값, arr : 메소드 이름 (int[] a) : 1차원 배열이 매개 변수(파라미터)'입니다.

 

첫 줄에 'int i, j, sw, temp, n = 4' 로 n만 4로 초기화되어 있는데 i와 j는 for문에서 이용될 변수, sw는 i의 값을 넣어주는 변수입니다. if문을 살펴보면 배열 a의 0번째 값이 0이거나 1보다 작을 때 입력된 배열을 그대로 반환하라고 하는데 해당 없기 때문에 넘기면 됩니다. n=4 가 의미하는 것은 여기서 배열의 길이를 나타냅니다. 문제에 따라서 n=a.length로 출제될 수도 있는데 여기서는 배열의 길이가 짧기 때문에 정수 4로 초기화한 것으로 보입니다.

 

중요한 것은 이중 for문과 for문 마지막에 있는 값 교환 부분인데 i는 0부터 n - 1 전까지 1씩 증가하고, j는 i의 값부터 n까지 1씩 증가합니다. 즉, i가 1일 때 j는 2~3까지 비교하고 i가 2일 때는 3까지 비교하면서 for문 내 if문의 조건에 따라 a[i]가 a[j]보다 작은 경우가 발생하면 sw에 j를 저장합니다.

 

값 교환 부분은 temp를 통해 두 개의 값을 교환합니다. temp는 임시 저장 변수로 이 변수에 큰 값을 넣어준 뒤 a[i] = a[j], a[j] = temp로 교환을 해주면 낮은 수부터 큰 수 순으로 정렬됩니다.

 

-

 

이 문제는 자바 기출 문제 중에서 코드가 긴 편에 속해서 어려워 보일 수 있는데 주요 코드를 찾아낸다면 쉽게 푸실 수 있습니다. temp를 이용한 교환 부분은 정렬을 할 때 많이 이용되는데 for문 내의 if문에서 값이 오름차순으로 교환되는지, 내림차순으로 교환되는지만 확인해준다면 복잡한 분석 없이 풀이가 가능합니다.

 

 

데이터베이스

 

1. 다음 <처리조건>에 유의하여 <학생> 테이블에 대한 다음의 각 질문에 알맞은 SQL문을 작성하시오.(10점)

 

<학생>

학번 전공 학생이름 생년월일 학년
12345 computer rooney 19851024 1
12346 computer lampard 19780620 2

* 실제 문제에는 더 많은 데이터가 들어가 있지만 속성만 알면 풀이할 수 있어 넣지 않았습니다.

 

<처리조건>

 

1. 명령절의 마지막은 ';'으로 끝낸다.

2. 문자열 인용의 경우 작은 따옴표를 이용하여 작성한다.

 

1) <학생> 테이블에서 전공이 computer이고 1학년인 학생의 이름과 생년월일을 검색하는 SQL문을 작성하시오.

2) <학생> 테이블에서 2학년 또는 4학년인 학생의 전공을 검색하되, 전공이 같은 경우 한 번만 검색하는 SQL문을 작성하시오.

3) <학생> 테이블에서 2학년 이상인 학생의 이름을 검색하되, 학년을 기준으로 내림차순 검색하는 SQL문을 작성하시오.

 

 

정답

 

1) select 학생이름, 생년월일 from 학생 where 전공 = 'computer' and 학년 = 1;

2) select distinct 전공 from 학생 where 학년 IN(2, 4);

3) select 학생이름 from 학생 where 학년 >= 2 order by 학년 desc;

 

해설

 

우선 <처리조건>에 명령절 마지막에 세미콜론(;)을 붙이라는 점에 유의해야 합니다. 실제 SQL 실행 시 단독 실행의 경우 세미콜론을 붙이지 않아도 문제가 되지 않지만 문제에서는 세미콜론을 붙이라는 조건이 있으니 명령절 마지막에 세미콜론을 붙이지 않으면 감점 혹은 틀린 문제 처리됩니다. 또한 전공이나 학생 이름은 문자열이기 때문에 인용할 때 작은 따옴표('   ')로 감싸서 작성해야 합니다.

 

1) 문제에서 학생의 이름과 생년월일을 검색하라고 했으니 select 뒤에 학생이름, 생년월일을 적고 데이터를 가져올 테이블이 '학생' 테이블이므로 from 학생을 적어줍니다. 또한 조건 중 전공이 computer이고 1학년인 학생만 가져오라고 했으니 where 전공 = 'computer' and 학년 = 1을 적은 뒤 세미콜론(;)을 붙여줍니다.

 

2) 중복 제거에 관한 문제입니다. 속성을 검색할 때 중복되는 내용이 있으면 한 번만 표시하라는 의미인데 이 경우 중복을 제거할 속성 앞에 'distinct' 를 붙입니다. 또한 학년이 1학년이거나 4학년인 학생만 조회하라고 했으므로 where절에 학생 IN(2, 4)로 표현하여 select distinct 전공 from 학생 where 학년IN(2, 4); 가 됩니다.

 

* 조건에 무조건 IN을 사용하라는 말이 없으므로 select distinct 전공 from 학생 where 학년 = 2 or 학년 = 4; 로 작성해도 정답입니다. 하지만 안전하게 IN을 사용하시길 권장합니다.

 

3) 정렬 관한 문제입니다. 정렬에는 desc(내림차순), asc(오름차순) 정렬이 있는데 where절 뒤에 order by 속성명 desc(혹은 asc)로 표현합니다. 이 문제는 내림차순 정렬을 하라고 했으므로 where절부터 학년 >= 2 order by 학년 desc; 라고 적으면 됩니다.

 

 

반응형
반응형

알고리즘과 DB 일부 문제만 정리하였습니다.

 

최근 기출 문제(2019년부터)는 하단 링크를 참고해 주세요.

 

정보처리산업기사 실기 출제 유형 및 최근 기출 문제 정리(19년 1회부터 21년 1회)

정보처리 산업기사 실기 시험은 2017년 한 번 개정되고 내년에 NCS로 다시 개정을 앞두고 있습니다. 해당 글은 2017년 개정된 이후 기출 문제 중에서 2019년 1회부터 가장 최근에 있었던 2021년 1회까

developer-rooney.tistory.com

 

알고리즘 C언어

 

C언어로 구현된 프로그램에서 5를 입력했을 경우의 실행 결과를 쓰시오.(7점)

 

#inclue <stdio.h>

int recursive(int n) {

    int j;
    if(n<1)
    	return 2;
    else {
    	i = (2 * recursive(n-1)) + 1;
        printf("%d\n", &i);
        return i;
    }

}

void main() {

    int i;
    printf("숫자를 입력하시오 : ");
    scanf("%d", &i);
    recursive(i);

}

 

실행 결과

 

5

11

23

47

95

 

해설

 

이 문제는 재귀함수에 관한 문제입니다. 하단 main 함수에서 정수 i에 5가 입력되었을 때, recursive(5)가 실행되고 recursive() 함수는 상단에 정의되어 있습니다.

 

recursive() 함수는 if, else문에 의해 들어온 숫자가 1보다 작을 경우에는 2를 반환하고 그 외의 경우에는 i에 (2 * recursive(n-1)) + 1을 넣어 초기화한 후 i를 출력한 뒤 i를 반환합니다.

 

재귀함수는 자기 자신을 반복하여 호출하는 함수입니다. 즉, 위의 경우는 입력된 값이 1보다 작아져서 2를 반환하기 전까지는 자기 자신을 반복적으로 실행하기 때문에 반대로 2를 반환하는 경우부터 순서대로 올라가며 풀이해야 합니다.

 

따라서, 2를 반환하는 경우인 recursive(0)부터 recursive(5)까지 순서대로 올라가서 풀이할 경우

 

recursive(0) : return 2

recursive(1) : return 2 * 2 + 1 -> 5 출력

recursive(2) : return 2 * 5 + 1 -> 11 출력

recursive(3) : return 2 * 11 + 1 -> 23 출력

recursive(4) : return 2 * 23 + 1 -> 47 출력

recursive(5) : return 2 * 47 + 1 -> 95 출력

 

위처럼 풀이하시면 됩니다. 또한 해당 문제는 출력 부분이 printf("&d\n", i)로 되어 있어 한 번 출력하고 줄바꿈을 해야 합니다.

 

 

알고리즘 - 자바

 

Java(Java SE 7) 언어로 구현된 프로그램을 분석하여 그 실행 결과를 쓰시오.(8점)

 

public class test{
    public static void main(String[] args) {
    
        int[] a = {2, 2, 3, 4, 6, 7, 6, 7, 5, 2};
    
        int i = a.length - 1;
    
        int cnt = 0;
    
        while(i>=0) {
    
    	    if(a[i] == 2)
                cnt++;
    	    i--;
        }
        
        System.out.print(cnt);
    
    }
}

 

실행 결과

 

3

 

해설

 

배열에 2가 몇 개 포함되었나 갯수를 세는 문제입니다. a는 정수가 저장된 배열이고 i는 배열 a의 마지막 인덱스를 저장합니다. 그리고 cnt는 0으로 초기화하고 2를 찾을 때마다 1씩 증가시켜 a 배열에 있는 2의 갯수를 확인할 때 사용하는 변수입니다.

 

while문에서 i가 0보다 크거나 같을 때까지 실행되는데 이는 배열의 최소 인덱스가 0이기 때문이고 이 문제는 제일 마지막 인덱스부터 제일 처음 인덱스까지 1씩 감소하며 정수 2를 찾습니다.

 

while 안에 있는 if문을 보면 a[i] == 2 일 때만 cnt를 1씩 증가시키고 i를 1씩 감소시킵니다.

 

즉, i는 9에서 시작하여 0이 될 때까지 줄어들며 배열 a의 값을 확인하고, 2는 총 3개이기 때문에 cnt를 출력했을 때 3이 출력됩니다.

 

 

데이터베이스

 

1. 다음 데이터베이스 시스템과 관련된 설명에 가장 부합하는 용어를 쓰시오.(5점)

 

- 데이터베이스 시스템과 관련된 모든 자원에 대해 기획, 통제를 하며, 데이터베이스 언어를 이용해 DBMS를 거쳐 데이터베이스 시스템의 전체적인 관리 운영에 책임을 지는 사람이나 집단을 말한다.

- 데이터의 저장구조와 접근 방법을 결정하는 역할을 한다.

- 시스템의 보안성과 무결성을 검사하는 기능을 결정하는 역할을 한다.

- 데이터베이스에 대한 백업과 회복을 위한 적절한 방법을 선택하는 역할을 한다.

- 확장 및 범용 데이터베이스의 성능 통제와 변경을 계획한다.

 

정답 : DBA

 

해설 : 데이터베이스 시스템을 기획, 통제하고 관리 운영에 책임을 지는 사람이나 집단을 DBA(Database Administer)라고 부릅니다.

 

 

2. 정규화와 관련된 설명이다. 빈 칸에 가장 적합한 용어를 쓰시오.

 

이상(Anomaly)과 함께 관계형 데이터베이스에서 고려해야 할 것 중에 하나가 함수종속이다.
함수종속의 종류에는 (2), (3), (4) 등이 있다.

(2)(은)는 릴레이션에서 한 속성이 (1)(이)가 아닌 다른 속성에 종속되거나 또는 (1)(이)가 2개 이상의 합성키로 구성된
경우, 이 중 일부 속성에 종속이 되는 경우를 말한다. (3)(은)는 릴레이션에서 한 속성이 오직 (1)에만 종속되는
경우를 말한다.

정규화 과정 중 1NF는 한 릴레이션을 구성하는 모든 도메인이 원자값(Atomic Value)만으로 구성되도록 하는
정규형을 말한다. 2NF는 제1정규형에서 (2)의 관계로 인한 이상 문제를 해결하기 위해 릴레이션을 분해하는
과정을 말한다. 2NF 수행 결과 속성들 간에는 (3)의 관계가 성립하게 된다.

3NF는 (4)의 관계가 성립하지 않도록 하는 것이다. (4)(이)란 간접적인 함수종속 관계를 의미한다.
즉, 예를 들어 속성A가 속성B를 결정하고, 속성B가 속성C를 결정하는 경우, "A → C"가 성립한다.

아울러 3NF에서는 결정자이면서 (5)(이)가 아닌 것이 존재함에 따라 이상 현상이 발생할 수도 있다.
결정자이면서 모두 (5)(이)면, 릴레이션R은 BCNF에 속한다.

(5)(이)란, 릴레이션을 구성하는 속성들 중 튜플을 유일하게 식별하기 위해 사용되는 속성들의 집합이다.
즉, (1)(으)로 사용할 수 있는 속성들을 의미한다. (5)(은)는 유일성과 최소성을 만족한다. 아울러 하나의
릴레이션에 존재하는 (5)들 중에서 (1)(을)를 제외한 나머지들을 대체키라고 한다.

 

정답

 

(1) : 기본키

(2) : 부분 함수 종속

(3) : 완전 함수 종속

(4) : 이행 함수 종속

(5) : 후보키

 

해설

 

이 문제는 데이터베이스의 데이터베이스의 키와 함수 종속에 대한 이해가 필요한 문제입니다. 하단 링크에 간략히 설명하였지만 암기와 이해가 필요한 문제이므로 지문의 내용을 통해 각각 키워드의 개념을 이해해야 합니다.

 

데이터베이스 키의 개념 및 종류와 함수 종속

정보처리산업기사 실기 범위에서 나오는 데이터베이스 키의 개념과 종류, 함수 종속에 대하여 알아봅시다. 구체적인 내용보다는 문제를 풀 수 있을 정도의 요약된 내용만을 정리하였습니다. 데

developer-rooney.tistory.com

 

 

2. 아래 <학생> 테이블에서 3학년 이상인 학생들의 과목을 중복되지 않게 모두 검색하는 SQL을 작성하시오.(5점)

 

<학생>

학번 성명 과목명 학년 전화번호
12345 루니 자료구조 1 010-0000-0000
12346 램파드 데이터베이스 3 010-1111-1111
12347 비야 자료구조 3 010-2222-2222

 

정답

 

select distinct 과목 from 학생 where 학년 >= 3;

 

해설

 

중복 제거는 'distinct'를 사용하고 3학년 이상인 학생들만 출력하면 되기 때문에 where절에서 '학년 >= 3'이라는 조건을 지정합니다. * SQL 명령어는 시험에서 대소문자를 가리지 않습니다.

 

중복 제거 문제는 자주 출제되므로 숙지해야 합니다.

반응형
반응형

"이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다."

정보처리 산업기사 실기 시험은 2017년 한 번 개정되고 내년에 NCS로 다시 개정을 앞두고 있습니다. 이 글에서는 2019년 1회부터 가장 최근에 있었던 2021년 1회까지 어떤 문제가 출제되었는지 정리하였습니다. 정보처리 산업기사 실기는 바로 이전 회차 시험에서 출제되었던 문제가 다음 회차에서 출제된 적이 없으므로 참고하시면 좋을 것 같습니다.

 

우선, 2017년에서 개정된 후 올해 마지막 시험까지 시행되는 정보처리 산업기사 문제 과목은 다음과 같습니다.

 

1) 알고리즘

2) 데이터베이스

3) 신기술 동향 및 시스템 관리 용어

4) 전산 영어

 

필기 시험과 다르게 과락이 없어서 합격 기준점인 60점을 넘기면 합격입니다. 하지만 2017년 이전까지 알고리즘과 데이터베이스 두 과목만 다 맞아도 60점을 넘길 수 있도록 배점되었던 것과 달리 2017년에 개정된 이후로 알고리즘, 데이터베이스 과목이 각각 25점 내외 배점으로 바뀌어 나머지 두 과목에서도 점수를 얻어야만 합격할 수 있게 바뀌었습니다.

 

* 각 과목마다 문제가 출제되는 유형과 최근 출제된 문제를 통하여 문제의 성향을 분석하시면 도움이 될 것 같습니다.

 

순서도

순서도 문제 예시

알고리즘 과목 중 순서도 문제에서는 상단 이미지처럼 순서도가 주어지고 빈칸에 알맞은 답을 적습니다.

 

19년 1회 : 석차 변형

19년 2회 : 5에 가까운 수

19년 3회 : 이차원 배열 - 달팽이집

20년 1회 : 소인수분해

20년 2회 : 수열

20년 3회 : 이차원 배열 - 리본

20년 4회 : 77에 가까운 수

21년 1회 : 삽입 정렬

 

프로그래밍 언어

C언어 문제 유형
자바 문제 유형

알고리즘 과목 중 프로그래밍 언어 문제에서는 자바와 C언어 문제가 출제되며 언어별 기초 문제 혹은 알고리즘 문제가 출제됩니다. 상단 코드처럼 기초적인 문제가 출제되기도 하고 프로그래밍 언어를 이용한 알고리즘 구현 문제도 출제됩니다.

 

19년 1회 : 자바(1에서 5까지 더하기), C언어(구구단)

19년 2회 : 자바(2진수 변환), C언어(버블 정렬)

19년 3회 : 자바(2차원 배열), C언어(재귀 함수)

20년 1회 : 자바(연산), C언어(재귀 함수)

20년 2회 : 자바(int배열에 포함된 2의 총 개수), C언어(재귀 함수)

20년 3회 : 자바(퀵 정렬), C언어(피보나치 수열)

20년 4회 : 자바(연산 / 소수 구하기), C언어(덧셈, 뺄셈 출력 / 포인터)

21년 1회 : 자바(증감 연산), C언어(2차원 배열)

 

데이터베이스

데이터베이스 문제 유형

-- 부서별로 묶음
select deptNo, count(*) from emp group by deptNo;

-- 부서별로 묶고, 부서 인원이 4명 이상인 부서만 표시
select deptNo, count(*) from emp group by deptNo having count(*) > 4;

데이터베이스 과목은 데이터베이스의 이해와 사용법에 관련된 문제가 출제됩니다. 데이터베이스의 이해 부분에서는 관계 대수식을 이용한 표현 방법이나 상단 이미지와 코드처럼 관계형 데이터베이스에서 필요한 자료를 가져오기 위해 필요한 query문 작성 문제가 출제됩니다.

 

19년 1회 : 외부, 내부, 개념 스키마 이해 / UPDATE 쿼리문 이해

19년 2회 : 조인 / 관계 대수

19년 3회 : DML과 DDL 구별 / 빈칸 채우기(답 : 릴레이션, 도메인, AND, HAVING, SET) / DBA(데이터베이스 관리자)

20년 1회 : 빈칸 채우기(답 : 기본키, 외래키, 논리적, 물리적)

20년 2회 : 빈칸 채우기(답 : SET, WHERE, 차수, 카디널리티, 관계대수)

20년 3회 : 빈칸 채우기(답 : COMMIT, ROLLBACK)

20년 4회 : ERD, SELECT문 작성(지정된 속성의 출력값 중복 제거, 결과를 ORDER BY로 내림차순 정렬)

21년 1회 : 빈칸 채우기(카티션 프로덕트, SELECT, 세타, 자연, 조작)

 

용어 문제 예시

신기술 및 시스템 용어 문제

신기술 동향 및 시스템 용어는 암기 문제입니다. 지금까지 어떤 기출 문제가 출제되었는지 파악하는 것이 중요하고 빈칸 채우기 혹은 단답형 문제로 출제됩니다.

 

19년 1회 : 무결성, XSS, DDoS, EPG, 펨토셀, MVNO, IPTV, URC

19년 2회 : 무결성, SQL Injection(SQL 주입 공격), CCL, RSS, 비트코인, 베이퍼웨어(증발품), 브로드 데이터

19년 3회 : PET, 허니팟, 딥페이크, GPU, Devops, 네트워크 슬라이싱

20년 1회 : IPv6, 에지, 비트코인, HDMI, VoIP, 미라캐스트

20년 2회 : WEP, 스니핑, 기가파이, ERP, 머신러닝, STTP, VHT

20년 3회 : DES, RPO, OTP, DDoS, 백도어

20년 4회 : 에지, 비트코인, HDMI, VoIP, 미라캐스트, 베타 테스트, 스마트 그리드

21년 1회 : DES, 해시, IPSec, OTP, CCL, 벤치마킹

 

"이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다."

업무 프로세스

업무 프로세스도 암기 문제입니다. 지금까지 어떤 기출 문제가 출제되었는지 파악하는 것이 중요하고 빈칸 채우기 혹은 단답형 문제로 출제됩니다. 종종 지문속답(지문 안에서 답을 찾는 문제)이 출제되기도 합니다.

 

19년 1회 : EAI, CRM, WBS, COCOMO

19년 2회 : SCM, RFID

19년 3회 : EAI, CRM, CPM

20년 1회 : B2B, C2C, 세금 계산서

20년 2회 : SCM, RFID

20년 3회 : 6시그마의 순서(정의 - 측정 - 분석 - 향상 - 관리)

20년 4회 : KMS, CKO, COP, SWOT

21년 1회 : 지문속답(답 : 수주, 출하지시, 입고, 입하, 물류센터)

 

전산 영어

전산영어 과목의 독해력이 굉장히 중요한 문제라서 다들 포기하시는 과목인데 키워드를 찾아서 외우면 어느 정도 풀 수 있습니다. 예를 들어 RAID에 대한 문제는 지문 속에 'umbrella' 키워드가 등장합니다.

 

19년 1회 : USB, ISP

19년 2회 : 상호 배제(답 : DEADLOCK, EXCLUSION, HOLD, PREEMPTION, CIRCULAR WAITING)

19년 3회 : kernel, shell, multi-tacking, C, Linux

20년 1회 : copyright, C, ROM, Fire Wall, compiler

20년 2회 : ISP, Domain Name, E-Mail, Modem, Telnet

20년 3회 : Linux, RAID

20년 4회 : SQL, DDL, SELECT, FROM, WHERE

21년 1회 : HTTP, FTP, URL, HTML, COOKIE

 

학습 자료

순서도는 첨부된 '정보처리기능사' 시험 알고리즘을 참고해 주세요.

출처 : 건시스템 정보처리학원

 

알고리즘.pdf
2.07MB

 

용어 정리 관련 게시글은 하단 링크를 참고해 주세요.

 

신기술 및 시스템 관리 용어 : https://developer-rooney.tistory.com/111?category=482346

 

정보처리산업기사 신기술 및 시스템 관리 용어 정리

정보처리산업기사 실기에서 신기술 용어 및 시스템 관리 부분에서 25점 내외로 배점되고, 기존 기출 문제와 더불어 새로운 문제 출제 가능성이 있는 과목으로 범위가 넓어서 만점을 맞기는 어렵

developer-rooney.tistory.com

업무 프로세스 용어 : https://developer-rooney.tistory.com/112?category=482346

 

정보처리산업기사 업무 프로세스 용어 정리

정보처리 산업기사 실기에서 업무 프로세스 영역은 15점 내외로 출제됩니다. 문제 유형에는 암기가 필요한 용어 문제와 주어진 지문 내에서 답을 찾는 유형으로 나눌 수 있습니다. 해당 글은 업

developer-rooney.tistory.com

 

반응형

+ Recent posts