Blinking Hello Kitty Angel

정보처리기능사

정보처리기사 / 기능사 문제풀이 오답노트

xoouxa 2023. 4. 28. 11:18

“ 지연되는 프로젝트에 인력을 더 투입하면 오히려 더 늦어진다. ”

- Frederick Philips Brooks
Mythical Man-Month 저자
728x90

💫 정보처리기사

 

01

{
    let num = [1,2,3,4,5];
    let sum = 1;
    
    function func(arr){
        for(let i=0; i<arr.length; i++) {
            sum += arr[i];
        }

        for(let i=0; i<arr.length; i++){
            if(arr[i] % 2 == 0) sum -= arr[i];
        }
        return sum;            
    }

    console.log(func(num));
}

초기값 sum이 1로 지정되어 있고, for문을 통해 배열 num의 모든 원소를 더한 후에, 다시 for문을 통해 배열 num의 원소 중 짝수인 원소를 제외하고 빼는 과정이 이루어집니다.

따라서,

초기값 sum은 1입니다.

첫 번째 for문에서 배열 num의 모든 원소의 합인 15가 sum에 더해집니다.

두 번째 for문에서 배열 num의 짝수인 원소들 2와 4가 sum에서 빼집니다.

따라서 최종적으로 sum은 1 + 1 + 2 + 3 + 4 + 5 - 2 - 4 = 8이 됩니다.

그래서 console.log(func(num))는 8을 출력합니다.

 

02

{
    let x = 1;

    console.log( !(x>0) );
    console.log( x>0 || x<4 );
    console.log( x<<2 );
    console.log( x&2 );
    console.log( x%3 );
}

false true 4 0 1

첫 번째 console.log에서 !(x>0)은 x>0이 false이므로 !false가 되어 결과값으로 true가 출력됩니다.

두 번째 console.log에서 x>0 || x<4는 x>0이 true이므로 전체 표현식은 true가 됩니다. || 연산자는 두 개의 피연산자 중 하나라도 true이면 결과값으로 true를 반환하기 때문입니다.

시프트 연산자를 계산하면 1을 10진수로 바꾸면 0001입니다. 거기에 오른 쪽으로 0을 두 개 붙이면 000100이 됩니다.

여기서 네 개씩 끊어 읽으면 0100이 되므로 답은 4 입니다.

x를 & 연산자로 2와 계산하면 0이 됩니다.

x를 3으로 나눈 나머지 값은 1입니다.

따라서 답은 false true 4 0 1 입니다.

 

03

{
    let a = func(4);

    for(let i=0; i<a.length; i++){
        console.log(a[i]);
    }

    function func(n){
        let num = [];
        for(let i=0; i<n; i++){
            num[i] = i;
        }
        return num;
    }
}

0 1 2 3 

 

함수 func(n)은 0부터 n-1까지의 숫자를 배열에 담아서 반환합니다. 따라서 func(4)는 [0, 1, 2, 3]을 반환합니다. 이 배열을 for 루프를 사용하여 출력하면 0, 1, 2, 3이 순서대로 출력됩니다.

04

{
    let a = 3, b = 4, c = 3, d = 5;

    if( (a == 2 | a == c) & !(c > d) & (1 == b ^ c != d) ){
        a = b + c;
        if( 7 == b ^ c != a ){
            console.log(a);
        } else {
            console.log(b);
        }
    } else {
        console.log(a + b)
    }
}

7

 

조건문 안의 첫번째 조건 (a == 2 | a == c)에서 a는 3이고, 3은 2와 같지 않기 때문에 이 조건은 거짓입니다. 그래서 else 블록이 실행되어 a + b의 값인 7이 출력됩니다. 따라서 답은 7입니다.

💫 정보처리기능사

 

1. 다음 중 OSI 7 계층의 네트워크 계층에 해당하는 프로토콜을 모두 고르시오.

HTTP, TCP, UDP, FTP, ICMP, IP, ATM, TELNET

 

💌 ICMP, IP

 

2. 다음이 설명하는 용어를 작성하시오.

이것은 네트워로 연결된 두 호스트 사이에서 연결할 수 있는지 점검하는 진단도구이다. 이 명령을 실행하면 ICMP Echo 반향 패킷을 이용하여 원격 IP 주소에 송신하고 ICMP 응답을 기다린다.

 

💌 Ping

Ping은 네트워크에서 호스트 간에 통신이 가능한지를 확인하기 위해 사용되는 일반적인 진단 도구 중 하나이다.

 

3. 다음이 설명하는 용어를 작성하시오.

Window 10의 pro 버전에서 지원하는 기능으로 128bit 키의 CBC 모드에서 AES 암호화 알고리즘을 이용하여 이동식 디스크와 시스템 드라이브 암호화를 지원한다.

 

💌 BitLocker"이다. BitLocker는 마이크로소프트에서 개발한 전체 드라이브 암호화 기능이다.

 

4. 다음 보기에서 화이트 박스 테스트가 아닌 기법을 모두 고르시오.

기본 검사, 한계값(경계값)분석 테스트, 데이터 흐름 검사, 조건 테스트, 비교 테스트, 제어 흐름 테스트, 분기 테스트

 

💌 화이트 박스 테스트가 아닌 기법: 기본 검사, 한계값(경계값)분석 테스트, 데이터 흐름 검사, 조건 테스트, 비교 테스트, 제어 흐름 테스트, 분기 테스트

 

4. 다음에서 설명하는 정규화 과정은 무엇인지 작성하시오.

관계형 데이터베이스 설계에서 중복이 최소화 되도록 데이터를 구조화 하는 프로세스를 정규화라고 한다. 데이터베이스 정규화의 목표는 이상이 있는 관계를 재구성하여 작고 잘 조직된 관계를 생성하는 것에 있다.
(____)는 정규화 과정 중 제3정규화를 통해서도 제거되지 않은 데이터의 중복 문제를 해결해 주며 자명하지 않은 함수 종속성이 모두 제거된 상태의 정규형이다.

 

💌 한계값 비교

 

5. 다음에서 설명하는 무결성의 종류는 무엇인지 작성하시오.

외래키 값은 NULL이거나 참조 릴레이션의 기본키 값과 동일해야 한다. 즉 릴레이션은 참조할 수 없는 외래키 값을 가질 수 없다.
외래키와 참조하려는 테이블 기본키는 도메인과 속성 개수가 같아야 한다.

 

💌 무결성의 종류: 참조 무결성(Referential integrity)

 

6. 다음에서 설명하는 용어를 작성하시오.

UNIX의 구조 중의 하나인 Shell은 운영체제의 (____)와 사용자 사이에서 인터페이스 역할을 한다. 사용자가 처음 로그인 했을 경우 (____)가 최초로 사용자에게 할당해 주는 프로그램이다.

 

💌 커널

 

7. 다음은 체육대회 테이블에서 운동 종목이 계주인 팀 이름을 '무적청팀'으로 변경하는 SQL문이다.

U(____) 체육대회 SET 팀이름 = '무적청팀' WHERE 운동종목 = '계주';

 

💌 UPDATE

 

8. 다음이 설명하는 용어를 작성하시오.

응용 프로그램 간의 통신에 대한 제어 구조를 제공하기 위해, 응용 프로그램 간의 접속을 연결, 유지, 종료시켜주는 역할을 수행하는 계층은 무엇인지 작성하시오.

 

💌 응용 프로그램 간의 통신 제어 구조를 제공하는 계층: 전송 계층(Transport layer)

 

9. 다음이 설명하는 용어를 작성하시오.

릴레이션에 존재하는 후보키들 중에서 특별히 선정된 키의 기본키가 선택되고 남은 후보기를 무엇이라고 하는지 작성하시오.

 

💌 기본키가 선택된 후, 남은 후보키: 대체키(Alternate key)

 

10. 다음이 설명하는 용어를 작성하시오.

파일 탐색기를 실행하려고 할 때 사용하는 윈도우의 단축키를 작성하시오.

 

💌 윈도우 파일 탐색기 실행 단축키: Windows + E