Lumpy Space Princess - Adventure Time

CODING

Javascript Test 09 오답 정리

jongyung 2023. 4. 28. 11:40

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

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

Javascript Test

틀린 문제 위주로 풀이를 쓰겠습니다.

01. 다음의 결괏값을 작성하시오.

{
    let i = 0;
    let sum = 0;
    
    while(i < 10){
        i = i+1;
        if( i % 3 == 0) sum -= i;
        if( i % 3 == 1) sum += i;
        if( i % 3 == 2) sum *= i 
    }

    console.log(sum) 
}

답: 129

🗒️풀이:

i 의 값이 0, sum 의 값이 0으로 정해져 있습니다. 

두 변수를 이용해서 while 조건문과 if 문을 사용해서 sum 의 값을 구하는 식입니다.

 

i 의 값이 0 부터 9의 정수로 조건식이 걸려있는데, 이 때 i 는 1씩 증가시킵니다. 

결과적으로 i sms 1 부터 10의 정수를 조건식으로 가집니다.

 

이 값들을 if 문에 차례대로 대입해서 답을 구하면 되는데, 차례대로 대입시키지 않고, if 문에 대입시키는 것만 생각해서 틀렸습니다. 

이렇게 순서를 다르게 대입하면 값이 다르게 나오기 때문에 주의해야 합니다.

 

1 을 대입하면, 1 % 3 = 1 이므로, sum = sum + i 의 조건문이 실행됩니다. 

따라서 첫 번째 sum = 0 + 1 = 1 이 됩니다.

2 를 대입하면, 2 % 3 = 2 이므로, sum = sum * i 의 조건문이 실행되기 때문에 sum = 1 * 2 = 2 입니다.

3 을 대입하면, 3 % 3 = 1 이므로, sum = sum - i 의 조건문이 실행돼서 sum = 2 - 3 = -1 입니다.

 

이런식으로 마지막 i 값인 10 까지 대입해서 계산을 마치면 답으로 129 가 나옵니다.

02. 다음의 결괏값을 작성하시오.

{
    let num = [10, 20, 30, 40, 50];
    let i, max, min;
    max = min = num[0];

    for(i=0; i<5; i++){
        if(num[i] > max) max = num[i];
        if(num[i] < min) min = num[i];
    }

    console.log(max, min);
}

답: 50 10

03. 다음의 결괏값을 작성하시오.

{
    function func(begin, diff, n){
        cnt = 1;
        ret = begin;
        while(true){
            cnt += 1;
            ret *= diff;
            if(cnt == n) return ret;
        }
    }

    console.log(func(1, 3, 4));
}

답: 1

04. 다음의 결괏값을 작성하시오.

{
    let i = 0;
    let sum = 0;
    while(i < 10){
        i = i + 1;
        if(i % 2 == 0){
            continue
        }
        sum += i;
    }

    console.log(sum)
}

답: 25

05. 다음의 결괏값을 작성하시오.

{
    let num = [56, 4, 3, 65, 78];
    let temp;

    for(let i=0; i<1; i++){
        for(let j=0; j<num.length-i-1; j++){
            if(num[j]>num[j+1]){
                temp = num[j];
                num[j] = num[j+1];
                num[j+1] = temp;
            }
        }
    }

    console.log(num)
}

답: [4 3 56 65 78]

06. 다음의 결괏값을 작성하시오.

{
    let num = [56, 4, 3, 65, 78];
    let min = 9999;

    for(let i=0; i<10; i++){
        if(min > num[i]){
            min = num[i];
        }
    }

    console.log(min)
}

답: 3

07. 다음의 결괏값을 작성하시오.

{
    let num = [3, 4, 5, 7, 8];
    let temp;

    for(let i=0; i<=3; i++){
        for(let j=i+1; j<=4; j++){
            if(num[i] < num[j]){
                temp = num[i];
                num[i] = num[j];
                num[j] = temp;
            }
        }
    }

    console.log(num);
}

답: [8 7 5 4 3]

🗒️풀이:

위 코드는 JavaScript로 작성된 코드로서, num이라는 배열에 숫자를 할당하고, 버블 정렬을 이용하여 내림차순으로 정렬하는 코드입니다.

구체적으로, num 배열을 정의하고, temp 변수를 초기화합니다. 그리고 for 루프를 이용하여 배열을 정렬합니다.

첫 번째 for 루프에서는, i 변수를 이용하여 0부터 3까지 반복하면서, 두 번째 for 루프를 실행합니다. 

두 번째 for 루프에서는, j 변수를 이용하여 i+1부터 4까지 반복하면서, num[i]와 num[j]를 비교하여 크기가 큰 값을 앞으로 이동시킵니다.

만약 num[i] 값이 num[j] 값보다 작으면, temp 변수를 이용하여 num[i]와 num[j] 값을 서로 바꿉니다.

따라서, 이 코드는 num 배열의 0부터 3까지의 요소를 선택하고, 각각의 요소와 그 이후의 요소를 비교하여 크기가 큰 값을 앞으로 이동시키는 버블 정렬 알고리즘을 이용하여 num 배열을 내림차순으로 정렬하는 코드입니다. 

08. 다음의 결괏값을 작성하시오.

{
    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));
}

답: 10

09. 다음의 결괏값을 작성하시오.

{
    let num = ["0","1","2","3","4","5","6","7","8","9"];
    let sum = 100;

    for(let i=0; i<num.length; i++){
        num[i] = i+1;
    }
    for(let i=0; i<num.length; i++){
        if(i % 3 == 1){
            sum -= num[i];
        }
    }
    console.log(sum)
}

답: 85

10. 다음의 결괏값을 작성하시오.

{
    let arr = [1,2,3,4,5];
    let temp = [1,2,4,6,8];
    let idx = 0;
    let flag = true;

    for(let i=0; i<arr.length; i++){
        flag = false;
        if(arr[i] == temp[i]){
            flag = true;
        }
        if(!flag){
            temp[idx++] = arr[i];
            console.log(temp[idx]);
        }
    }
}

답: [3 4 5]

11. 다음은 최솟값을 출력하는 예제이다. 밑줄에 적합한 표현을 작성하시오.

{
    let num = [30,40,24,80,99];
    let min = 9999;

    for(let i=0; i<5; i++){
        if(min > num[i]){
            min = ________;
        }
    }

    console.log("최소값 : ", min);
}

답: num[i]

12. 다음의 결괏값을 작성하시오.

{
    let s1 = "Remember november";
    let s2 = s1.slice(0, 3) + s1.slice(12, 16);
    let s3 = "r AND you";

    console.log(s2 + s3)
}

답: Remember And you

13. 다음의 결괏값을 작성하시오.

{
    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

14. 다음의 결괏값을 작성하시오.

{
    let num = 0;
    let i = 1;

    while(i<=50){
        if(i%7 == 0){
            num += i;
        }
        i++;
    }
    console.log(num)
}

답: 196

15. 다음의 결괏값을 작성하시오.

{
    let result = 0;
    for(let i=1; i<999; i++){
        if(i%3==0 && i%2 !=0){
            result = i;
        }
    }
    console.log(result);
}

답: 993

16. 다음의 결괏값을 작성하시오.

{
    function func(num){
        if(num <= 1){
            return 1;
        } else {
            return num + func(num - 2);
        }
    }
    function main(){
        let num = 5;
        console.log(func(num))
    }
    main();
}

답: 9

🗒️풀이:

위 코드는 JavaScript로 작성된 코드로서, 재귀 함수를 이용하여 주어진 수보다 작거나 같은 홀수를 모두 더하는 코드입니다.

구체적으로, func이라는 이름의 재귀 함수를 정의합니다. 

이 함수는 num이 1 이하일 경우에는 1을 반환하고, 그렇지 않을 경우에는 num과 func(num - 2)를 더한 값을 반환합니다. 

이 때, num - 2를 인자로 하는 재귀 호출을 이용하여, num보다 작거나 같은 홀수를 모두 더합니다.

그리고, main이라는 함수를 정의합니다. 

이 함수에서는 num 변수를 5로 초기화하고, console.log(func(num))을 호출하여 num보다 작거나 같은 홀수를 모두 더한 값을 출력합니다.

마지막으로, main()을 호출하여 main 함수를 실행합니다. 

따라서, 이 코드는 재귀 함수를 이용하여 5보다 작거나 같은 홀수를 모두 더하는 코드이며, 결과값으로 9가 출력됩니다.

17. 다음의 결괏값을 작성하시오.

{
    let a=1, b=1, num;

    for(let i=0; i<6; i++){
        num = a + b;
        a = b;
        b = num;
    }
    console.log(num)
}

답: 21

🗒️풀이:

연산에서 실수를 했습니다. 🥲

조건에 따라서 연산을 하면 되는 쉬운 식입니다.

조건식에 따라서 6번을 반복해서 num 과 a, b 의 값을 바꿔가며 계산을 하면 됩니다.

 

차례대로 나열하자면,

num = 1 + 1, a = 1, b = 2

num = 1 + 2, a = 2, b = 3 ... 이런식으로 연산을 해나가면 됩니다.

18. 다음의 결괏값을 작성하시오.

{
    function func(num1, num2){
        let res = 1;
        for(let i=0; i<num2; i++){
            res *= num1;
        }
        return res;
    }
    let res = func(2, 10);

    console.log(res)
}

답: 1024

19. 다음의 결괏값을 작성하시오.

{
    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]

20. 다음의 결괏값을 작성하시오.

{
    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

SQL

01. 다음 중 OSI 7 계층의 네트워크 계층에 해당하는 프로토콜을 모두 고르시오.
HTTP, TCP, UDP, FTP, ICMP, IP, ATM, TELNET

답: ICMP, IP

🗒️풀이:

ICMP( Internet Control Message Protocol)와 IP(Internet Protocol)은 인터넷 프로토콜 스택에서 중요한 역할을 하는 프로토콜입니다.

IP는 인터넷에서 데이터를 전송하는 데 사용되는 기본 프로토콜입니다. 

IP는 인터넷상의 컴퓨터 간 데이터그램을 전달하기 위한 규칙을 정의합니다. 

이를 위해 IP는 각각의 패킷에 대한 출발지 및 목적지 IP 주소와 같은 정보를 기록합니다.

ICMP는 IP와 함께 작동하는 프로토콜로서, 인터넷상의 컴퓨터 간 통신에 필요한 다양한 제어 정보를 제공합니다. 

 

예를 들어, ICMP는 네트워크 상태 정보를 제공하고, 호스트나 라우터와의 통신 중에 발생할 수 있는 문제를 식별하고 해결하는 데 사용됩니다. 

또한, ICMP는 패킷 손실, 패킷 재전송, 대상 호스트의 응답 시간 등과 같은 네트워크 연결과 관련된 문제를 해결하기 위한 기능을 제공합니다.

IP와 ICMP는 인터넷 프로토콜 스택의 핵심 구성 요소 중 일부이며, 이들 프로토콜은 데이터의 전송과 제어를 보장하는 데 필수적인 역할을 합니다.

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

답: PING

🗒️풀이:

PING은 인터넷 프로토콜(IP) 네트워크에서 호스트가 네트워크에 연결되어 있는지를 확인하는 목적으로 사용되는 유틸리티입니다. PING은 일반적으로 인터넷상의 두 호스트 간의 네트워크 연결상태를 테스트하기 위해 사용됩니다.

PING은 ICMP(Internet Control Message Protocol)를 사용하여 호스트에게 메시지를 보내고, 이에 대한 응답을 확인함으로써 호스트의 연결상태를 확인합니다. 

PING은 일반적으로 목적지 호스트로 ICMP 에코 요청 메시지를 보내고, 이에 대한 ICMP 에코 응답 메시지를 수신하여 호스트가 온라인 상태인지 여부를 확인합니다.

PING은 또한 인터넷상의 호스트 간의 연결상태를 확인하는 것 외에도, 네트워크에서 데이터 전송의 속도를 측정하기 위해 사용될 수 있습니다. 

이 경우 PING은 목적지 호스트로 ICMP 패킷을 보내고, 이에 대한 응답 시간을 측정하여 네트워크 연결의 빠르기를 확인합니다.

PING은 대부분의 운영 체제에서 기본적으로 제공되는 유틸리티 중 하나이며, 명령 프롬프트나 터미널에서 사용할 수 있습니다.

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

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

답: 비트로커

🗒️풀이:

비트로커(BitLocker)는 마이크로소프트 윈도우 운영 체제에서 제공되는 전체 디스크 암호화 기능입니다. 

비트로커는 디스크의 데이터를 암호화하여 외부로부터의 무단 접근을 방지합니다. 

비트로커는 TPM(Trusted Platform Module) 칩과 같은 하드웨어 장치를 사용하여 암호화 키를 안전하게 저장하고, 인증된 사용자만이 암호화된 데이터를 해독할 수 있도록 보장합니다.

비트로커는 윈도우 7부터 지원되며, 비트로커를 사용하려면 디스크가 NTFS 파일 시스템으로 포맷되어 있어야 합니다. 

또한, 비트로커를 사용하려면 컴퓨터의 하드웨어가 TPM 칩을 지원하거나, TPM 칩이 없는 경우 USB 키를 사용하여 암호화 키를 안전하게 저장할 수 있습니다.

비트로커는 윈도우 운영 체제에서 기본적으로 제공되는 보안 기능 중 하나이며, 사용자들은 비트로커를 사용하여 개인정보나 기밀 데이터 등을 안전하게 보호할 수 있습니다.

04. 다음 보기에서 화이트 박스 테스트가 아닌 기법을 모두 고르시오.
기본 검사, 한계값(경계값)분석 테스트, 데이터 흐름 검사, 조건 테스트, 비교 테스트, 제어 흐름 테스트, 분기 테스트

답: 한계값(경계값), 비교값

🗒️풀이:

한계값(경계값)은 어떤 기준에 따라서 구분되는 두 개의 구간 중에서 경계가 되는 지점을 말합니다. 

일반적으로 한계값은 어떤 조건이나 제한을 가지고 있는 경우에 많이 사용됩니다. 

 

예를 들어, 시험 성적의 학점을 나눌 때 A학점은 90점 이상 100점 미만인 경우를 한계값으로 사용할 수 있습니다.

비교값은 두 가지 이상의 값 중에서 어느 것이 더 큰지 작은지, 같은지를 판단하는 기준값을 말합니다. 

이러한 비교값은 대부분 수치적인 값이며, 주로 수학, 통계학, 프로그래밍 등에서 사용됩니다. 

 

예를 들어, 10과 20을 비교할 때 20이 더 큰 값을 가지므로 20을 비교값으로 사용할 수 있습니다.

한계값과 비교값은 서로 유사한 개념이며, 비교값을 기준으로 한계값을 정할 수도 있습니다. 

 

예를 들어, 10과 20을 비교하는 경우 15를 한계값으로 정할 수 있습니다. 

이러한 한계값과 비교값은 다양한 분야에서 사용되며, 정확하고 명확한 값을 결정하는 데 매우 중요한 역할을 합니다.

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

답: BCNF

🗒️풀이:

BCNF는 데이터베이스 설계 이론 중 하나로, Boyce-Codd 정규형(Boyce-Codd Normal Form)의 약어입니다. 

이러한 정규화(Normalization) 이론은 데이터베이스에서 중복 데이터를 제거하고 데이터의 일관성, 무결성, 성능을 개선하기 위해 사용됩니다.

BCNF는 제 3 정규형(3NF)의 한계를 극복하기 위해 개발된 정규형입니다. 

제 3 정규형에서는 테이블의 속성이 후보 키에 대해서만 종속 관계를 가져야 합니다. 

하지만, 테이블에서 여러 개의 후보 키가 존재하는 경우, 이러한 조건을 만족시키기 어려워집니다.

BCNF는 이러한 문제를 해결하기 위해, 모든 결정자가 후보 키일 때만 정규형을 만족시킵니다. 

즉, 테이블에서 모든 결정자가 후보 키가 아닌 속성에 종속되지 않도록 분해하면 BCNF를 만족시킬 수 있습니다.

BCNF는 데이터의 일관성과 무결성을 보장하는 데 중요한 역할을 합니다. 

하지만, BCNF를 만족시키는 데이터베이스의 성능은 향상되지 않을 수 있으며, 테이블의 분해가 복잡해질 수도 있습니다. 

이러한 이유로, 실제 데이터베이스 설계에서는 BCNF를 완전히 만족시키지 않고, 성능과 효율성을 고려한 적절한 정규화 수준을 선택하는 것이 중요합니다.

05. 다음에서 설명하는 무결성의 종류는 무엇인지 작성하시오.
외래키 값은 NULL이거나 참조 릴레이션의 기본키 값과 동일해야 한다. 즉 릴레이션은 참조할 수 없는 외래키 값을 가질 수 없다.
외래키와 참조하려는 테이블 기본키는 도메인과 속성 개수가 같아야 한다.

답: 창조 무결성

🗒️풀이:

창조 무결성(Integrity by Design)은 데이터베이스의 무결성을 설계 단계에서 보장하는 것을 의미합니다. 

즉, 데이터베이스 시스템을 설계할 때 무결성 제약 조건을 미리 고려하고, 데이터베이스 스키마를 이에 맞게 설계함으로써, 데이터의 일관성과 무결성을 보장하는 방법론입니다.

창조 무결성은 데이터베이스 시스템에서 무결성을 보장하는 전통적인 방법으로는 제약 조건(Constraints)을 사용하는 것과 대조됩니다. 

제약 조건은 데이터 입력/수정 시에 일관성과 무결성을 검증하는 방식으로 동작합니다. 

 

반면에 창조 무결성은 무결성을 보장하는 것이 설계 단계에서부터 시작되므로, 시스템의 유지보수 및 개선에 대한 비용을 줄일 수 있습니다.

창조 무결성은 데이터베이스 설계에 있어서 중요한 개념으로, 데이터베이스 시스템의 성능과 안정성을 향상시키는 데 큰 역할을 합니다. 

또한, 데이터베이스에서의 일관성과 무결성은 비즈니스의 신뢰성과 안정성에 직결되므로, 이러한 창조 무결성 개념은 비즈니스의 요구사항을 충족시키는 데 중요한 역할을 합니다.

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

답: 커널

🗒️풀이:

커널(Kernel)은 운영 체제의 핵심이 되는 소프트웨어 부분으로, 하드웨어와 소프트웨어 간의 인터페이스 역할을 합니다. 

커널은 운영 체제의 모든 기능을 수행하며, 시스템의 자원을 효율적으로 관리하여 응용 프로그램이 하드웨어를 사용할 수 있도록 합니다.

커널은 운영 체제의 핵심 기능인 프로세스 관리, 메모리 관리, 입출력 관리, 파일 시스템 등을 수행합니다. 

또한, 커널은 시스템 콜(System Call) 인터페이스를 제공하여 응용 프로그램이 하드웨어에 직접 접근하지 않고도 운영 체제의 기능을 사용할 수 있도록 합니다.

커널은 일반적으로 운영 체제의 가장 중요한 부분이므로, 보안과 안정성에 매우 민감합니다. 

따라서, 커널은 대부분의 운영 체제에서 모듈화되어 있어, 기능을 추가하거나 수정할 때 커널 전체를 수정하는 것이 아니라 필요한 모듈만 수정하여 커널을 유지보수하거나 개선할 수 있도록 합니다.

커널은 대부분의 운영 체제에서 저수준 코드로 작성되어 있으며, C나 어셈블리 언어로 작성됩니다. 

또한, 커널은 다양한 운영 체제에서 사용될 수 있도록, 플랫폼에 종속적이지 않도록 작성되어야 합니다.

07. 다음은 체육대회 테이블에서 운동 종목이 계주인 팀 이름을 '무적청팀'으로 변경하는 SQL문이다.
U(____) 체육대회 SET 팀이름 = '무적청팀' WHERE 운동종목 = '계주';

답: UPDATE 

🗒️풀이:

UPDATE는 데이터베이스에서 기존 레코드를 수정하는 SQL 명령어입니다. UPDATE 명령어는 특정 조건에 해당하는 레코드를 선택하여 해당 레코드의 값을 변경할 수 있습니다.

아래는 UPDATE 명령어의 기본 문법입니다.

UPDATE 테이블명 SET 열1=값1, 열2=값2 WHERE 조건;
  • 테이블명: 레코드를 수정할 테이블 이름
  • SET: 수정할 열과 값 지정
  • WHERE: 수정할 레코드를 선택할 조건

예를 들어, "members"라는 테이블에서 이름이 "John"인 회원의 나이를 30으로 변경하고 싶다면 아래와 같이 SQL 명령어를 작성할 수 있습니다.

UPDATE members SET age=30 WHERE name='John';

이 명령어는 "members" 테이블에서 이름이 "John"인 레코드를 찾아 해당 레코드의 "age" 열 값을 30으로 수정합니다.

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

답: 세션

🗒️풀이:

세션(Session)은 웹 사이트에서 사용자의 상태 정보를 서버 측에서 관리하기 위한 방법 중 하나입니다. 웹 서버는 각 클라이언트에 대해 고유한 세션 ID를 부여하고, 이를 사용하여 사용자의 상태 정보를 저장하고 유지합니다.

일반적으로 세션은 다음과 같은 과정으로 동작합니다.

  1. 클라이언트가 서버에 접속하면, 서버는 해당 클라이언트에 대해 고유한 세션 ID를 생성합니다.
  2. 서버는 이 세션 ID를 쿠키(Cookie)나 URL 매개변수 등을 통해 클라이언트에게 전송합니다.
  3. 클라이언트는 이 세션 ID를 저장하고, 이후 요청에서 이를 서버에 전달합니다.
  4. 서버는 세션 ID를 사용하여 해당 클라이언트의 상태 정보를 관리합니다.

세션을 사용하면, 클라이언트의 로그인 상태, 장바구니 내용 등과 같은 정보를 서버 측에서 안전하게 관리할 수 있습니다. 

하지만, 세션을 사용할 경우 서버 측에서 추가적인 자원이 필요하며, 세션 ID가 탈취될 경우 보안 문제가 발생할 수 있습니다. 

따라서, 보안 상의 이유로 세션 ID를 암호화하거나, 중요한 정보를 세션에 저장하지 않는 등의 조치가 필요합니다.

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

답: 대체키

🗒️풀이:

대체키(Alternate Key)는 데이터베이스에서 기본키(primary key)로 사용되지 않는 후보키(candidate key)를 말합니다. 

대체키는 각 레코드를 고유하게 식별하기 위한 기준으로 사용될 수 있습니다.

예를 들어, 학생 정보를 저장하는 데이터베이스에서 학생 이름(name)과 학번(student ID)은 모두 후보키가 될 수 있습니다. 

그 중에서도, 학번(student ID)을 기본키(primary key)로 선택하고, 학생 이름(name)을 대체키(alternate key)로 사용할 수 있습니다.

대체키는 기본키와 마찬가지로, 각 레코드를 고유하게 식별할 수 있는 유일한 값을 가지고 있어야 합니다. 

대체키는 기본키가 변경될 경우, 해당 레코드를 참조하는 다른 레코드들이 영향을 받지 않도록 보장하는 역할을 합니다. 

따라서, 데이터베이스 설계 시에 대체키를 적절하게 선택하여 사용하면 데이터의 일관성과 정확성을 유지할 수 있습니다.

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

답: window e

🗒️풀이:

Windows 운영체제에서 파일 탐색기를 실행하려면 다음과 같은 방법을 사용할 수 있습니다.

  1. Windows 탐색기 아이콘을 클릭합니다. 이 아이콘은 일반적으로 작업 표시줄에 있습니다.
  2. 윈도우 로고 키 + E 단축키를 사용합니다. 이 단축키를 누르면 Windows 탐색기가 열립니다.
  3. Windows 로고 키를 누르고 "탐색기"라고 입력한 후, Enter 키를 누릅니다. 

이렇게 하면 Windows 탐색기가 열립니다.

 

마우스 오른쪽 버튼을 클릭하고 "새로 만들기"를 선택한 후, "폴더"를 선택합니다. 이렇게 하면 새 폴더가 만들어지고, 이 폴더를 클릭하면 Windows 탐색기가 열립니다.