8 분 소요

2022-2회

1. 관계 데이터 모델에 대한 용어

( )은 /는 관계 데이터의 연산을 표현하는 방법으로, 원하는 정보를 정의할 때는 계산 수식을 사용한다. 수학의 predicate calculus에 기반을 두고 있으며, 관계 데이터 모델의 제안자인 codd가 수학에 가까운 기반을 두고 특별히 관계 데이터베이스를 위해 제안하여 탄생하였다.

( ) /은/는 원하는 정보가 무엇이라는 것만 정의하는 비절차적 특성을 지니며, 튜블 ( )와/과 도메인 ( ) 이/가 있다..

정답 : 관계 해석

  • 관계 대수

    절차적(질의를 단계적으로 수행하여 결과를 얻음), 어떻게 데이터를 추출할지 명시, 연산자를 이용해 테이블 간의 관계를 정의

    연산자에는 Select (σ), Project (π), Join (⨝), Division(÷), Union (∪), Intersection (∩), Difference (-), Cartesian Product (×) 등이 있다.

    연산자 기반의 수학적 표현

    예: π_name(σ_age>25(Employee))

  • 관계 해석

    비절차적, 무엇을 원하는지를 조건으로 명시, 논리적 조건을 기반으로 DB 결과 도출, 연산의 순서를 명시하지 않음

    조건 기반의 논리적 표현

    연산자에는 And, Or, Not, For All, There Exists 등이 있다(해석학 기호)

    예: {t.name | t ∈ Employee ∧ t.age > 25}

2. 대칭 키 알고리즘 용어

  1. Xuejia Lai와 James Messey 가 만든 알고리즘으로 PES(Proposed Encryption Standard)에서 IPES(Improved PES)로 변경되었다가, 1991년에 제작된 블록 암호 알고리즘으로 현재 국제 데이터 암호화 알고리즘으로 사용되고 있다. 64비트 블록을 128비트의 key를 이용하여 8개의 라운드로 구성되어 있다.

    정답 : IDEA(International Data Encryption Algorithm)

    라이와 메시가 개발한 pes 개선한 알고리즘, 블록크기 64비트, 키 길이 128비트

  2. 미국의 NSA에서 개발한 Clipper 칩에 내장되는 블록 알고리즘이다. 전화기와 같은 음성을 암호화 하는데 주로 사용되며 64비트 입출력에 80비트의 키 총 32라운드를 가진다.

    정답 : SKIPJACK

    국가 안전 보장국에서 개발, 클리퍼 칩이라는 ic칩 내장, 블록 64비트, 키 128비트, 음성 통신 장비에서 음성 데이터 암호화

  • 양방향 알고리즘

    SEED : KISA(한국 인터넷 진흥원)에서 개발한 암호화 알고리즘, 블록키 128비트, 128비트, 256으로 분류

    AES : 고급 암호화 표준, DES 대체, 블록크기 128비트, 128, 192, 256 으로 구분

    DES : 56비트의 키를 이용, 블록 크기 64비트, NBS에서 발표한 개인키 암호화 알고리즘, 16회 라운드 수행

    RSA : 라이베이스트, 샤미르, 애들먼에 의해 제안, 공개키 알고리즘, 큰 숫자를 소인수분해 하기 어렵다는 아이디어에 기반

    TKIP : 임시 키 무결성 프로토콜, 무선랜 보안에 사용된 WEP을 보완한 프로토콜

    ARIA : SEED 이후로 나온 국가 정보원에서 개발한 개인키 암호화 알고리즘

    SKIPJACK

    IDEA

  • 해시

    임의의 길이의 입력 데이터나 메시지를 고정된 길이의 값이나 키로 변환

    SHA 시리즈 : NSA(미국 국가 안보국)이 설계, 미국 국립 표준 기술 연구소에 의해 발표

    MD5 : 리베이스트가 MD4를 대체하기 위해 고안한 암호화 해시함수

    N-NASH : NTT에 발표한 암호화 해시 함수

    SNEFRU : R.C.MERKLE가 발표한 해시 함수

    PEM : 인증 서버와 같이 암호화된 개인정보를 포함하는 표준 인코딩 형식

3. SQL 쿼리

image-20241014160231502

SELECT 제조사, 제품명, 단가 FROM 제품 WHERE 단가 > ( ) (SELECT 단가 FROM 제품 WHERE 제조사=’H’)

정답 : ALL

ALL : 조건에 해당하는 모든 케이스(그리고)를 만족 => and로 연결

ANY : or로 연결

4. SQL 쿼리

image-20241014160404590

  1. col1 in (2, 3) => index 1, 2
  2. col2 in (3, 5) => index 3, 4, 5
  3. select count(col2) => null값 무시 => 5 - 1 = 4

null은 집계함수에서는 무시, 산술연산에서는 결과가 항상 null이 나옴

5. 네트워크

( )은/는 인터넷을 통해 디바이스 간에 사설 네트워크 연결을 생성하며, 퍼블릭 네트워크를 통해 데이터를 안전하게 익명으로 전송하는 데 사용된다.

또한 사용자 IP 주소를 마스킹하고 데이터를 암호화하여 수신 권한이 없는 사람이 읽을 수 없도록 한다.

정답 : VPN

6. SOLID 원칙

( ) 은/는 클라이언트가 자신이 이용하지 않는 메서드에 의존하지 않아야 한다는 원칙이다.

( ) 은/는 큰 덩어리의 인터페이스들을 구체적이고 작은 단위들로 분리시킴으로써 클라이언트들이 꼭 필요한 메서드들만 이용할 수 있게 한다.

예를 들어 하나의 복합기에 프린터와 복사기, 팩스 메서드가 있는데 이 세가지 메서드는 같은 파일에 존재하므로 프린터 로직만 바뀌어도 복사기와 팩스도 재컴파일을 해야한다.

그러므로 ( ) 을/를 적용하여 로직이 바뀌어도 다른 메서드는 영향을 받지 않도록 해야한다.

정답 : ISP(Interface Segregation Principle)

7. JAVA

switch 문에서 break문이 없을때 조심 !!

public static void main(String args[]){
  
  int i = 3; int k = 1; 
  switch(i) { 
    case 1: k += 1;
    case 2: k++;
    case 3: k = 0; 
    case 4: k += 3; 
    case 5: k -= 10; 
    default: k--; 
  }
  System.out.print(k); 
  
}

1 => 2 => 3 => 0 => 3 => -7 => -8

8. C

struct A{ 
  int n, 
  int g
} 
 
int main(){
  A a = new A[2] 
  for(i=0; i <2; i++) {
    a[i].n = i, 
    a[i].g=i+1  
  }
  System.out.printf(a[0].n + a[1].g);  
}
  1. a[0].n = 0, a[0].g = 1
  2. a[1].n = 1, a[1].g = 2
  3. 0 + 2 = 2

9. IP 주소, 서브넷마스크

IP 주소가 139.127.19.132이고 서브넷마스크 255.255.255.192일 때 아래의 답을 작성하시오. (10진수로 표기)

(1) 괄호안에 들어갈 네트워크 주소 : 139.127.19.( )

서브넷 마스크 => 11111111.11111111.11111111.11000000

마지막 8비트 => 이진수로 11000000

마지막 바이트는 호스트 비트 6개 => 2^6 = 64개의 호스트를 구분할 수 있다.

0~63 : 네트워크 주소는 0

64~127 : 네트워크 주소는 64

128~191 : 네트워크 주소는 128

192~255 : 네트워크 주소는 192

정답 : 128

(2) 해당 네트워크 주소와 브로드캐스트 주소를 제외한 호스트 개수

총 32비트 중 네트워크 부분의 비트는 26비트, 호스트 부분의 비트는 6비트이다.

호스트 개수는 2^6=64개이지만, 첫번째 주소(139.127.19.128)는 네트워크 주소, 마지막 주소(139.127.19.191)는 브로드캐스트 주소로 사용 => 64 - 2 = 62

11. 목적에 따른 테스트 기법

오류를 제거하거나 수정한 시스템이나 시스템 컴포넌트 또는 프로그램이 오류 제거와 수정에 의해 새로이 유입된 오류가 없는지를 확인하는 일종의 반복 시험이다.

반복적인 시험이 필요한 이유는 오류가 제거·수정되는 상당수의 시스템이 의도치 않았던 오동작이나 새로운 형태의 오류를 일으키기 때문이다.

결국, 수정·변경된 시스템이나 시스템 컴포넌트 또는 프로그램이 명세된 요구 사항을 충족시키는지를 확인하는 시험의 한 형태이다.

정답 : regression

  • 테스트 목적에 따른 분류

    회복(recovery) : 시스템에 고의로 실패를 유도하고, 시스템의 정상적 복귀 여부를 테스트

    안전(security) : 소스 내 보안적인 결함미리 점검하는 테스트

    성능(performance) : 응답 시간, 반응 속도, 처리량 등을 측정하는 테스트

    구조(structure) : 시스템의 내부 논리 경로, 소스 코드의 복잡도 테스트

    회귀(regression) : 오류제거와 수정에 의해 새로 유입된 오류가 없는지 확인하는 일종의 반복 테스트

    병행(parellel) : 변경된 시스템과 기존 시스템에 동일한 데이터 입력 후 결과 비교

12. 관계대수

image-20241014163010713

π는 project, 특정 속성만을 선택하는 연산. employee 테이블에서 TTL 열을 선택하라는 의미

14.

  1. 라우터로 상호 접속이 되어있는 여러 개의 네트워크 집합으로 도메인 혹은 자율시스템(Autonomous System, AS)이라고 한다.

IGP(Interior Gateway Protocol)

같은 도메인 내에 존재하는 라우터는 도메인 내부 라우터가 되고 도메인 외부에 존재하는 라우터는 도메인 외부 라우터가 되는데, 여기서 도메인 내부 경로 설정을 가르킨다.

  1. 시스템 사이에 경로 설정 정보 등을 교환하기 위해 사용하는 프로토콜로써,

EGP(Exterior Gateway Protocol)

다른 도메인 사이에 라우팅 시 정리된 관리가 거의 없고 많은 경우에 신용도가 매우 낮아 빠른 수행보다는 보안과 제어가 본래의 목적이다.

  1. IP 라우팅 프로토콜의 한 종류로써 RIP(routing information protocol)보다 규모가 큰 네트워크에서도 사용할 수 있다.

OSPF(Open Shortest Path First)

규모가 크고 복잡한 TCP/IP 네트워크에서 RIP의 단점을 개선한 라우팅 프로토콜로써 RIP에 비해 자세한 제어가 가능하고, 관리 정보의 트래픽도 줄일 수 있다.

  1. 서로 다른 자율 시스템(AS)의 라우터 간에 라우팅 정보를 교환하는 데 사용되는 외부 게이트웨이 프로토콜(EGP)이다.

BGP(Border Gateway Protocol)

각 목적지에 대한 전체 경로가 포함되며, 다른 시스템과 교환하는 네트워크 도달 가능성 정보의 데이터베이스를 유지한다. 네트워크 도달 가능성 정보를 사용하여 AS 연결 그래프를 구성하며, 이를 통해 라우팅 루프를 제거하고 AS 수준에서 정책 결정을 실행할 수 있다.

이름 설명
EGP 자율 시스템 간의 라우팅, 즉 게이트웨이 간의 라우팅에 사용되는 프로토콜
IGP 하나의 자율 시스템(AS, Autonomous System) 내의 라우팅에 사용되는 프로토콜
RIP : 소규모 동종의 네트워크 내에서 효율적인 프로토콜
OSPF : 대규모 네트워크에서 사용되는 프로토콜, 라우팅 정보에 변화가 생길 경우 변화된 정보만 네트워크 내의 모든 라우터에게 알림
BGP 자율 시스템 간의 라우팅 프로토콜로 EGP의 단점을 보완하기 위해 만들어짐
초기에 BGP 라우터들이 연결될 때는 전체 경로 제어표(라우팅 테이블)를 교환, 이후엔 변화된 정보만을 교환

16. C

#include <stdio.h>
 
int main(int argc, char *argv[]) {
    int a[4] = {0, 2, 4, 8};
    int b[3] = {};
    int i = 1;
    int sum = 0;
    int *p1;
 
    for (i; i < 4; i++) {
        p1 = a + i;
        b[i-1] = *p1 - a[i-1];
        sum = sum + b[i-1] + a[i];
    }

    printf("%d", sum);

    return 0;	
}
  1. i = 1

    p1 = a + 1 => *p1 = a[1] = 2

    b[1 - 1] = *p1 - a[1 - 1] = 2 - 0 = 2

    sum = sum + b[0] + a[1] = 0 + 2 + 2 = 4

  2. i = 2

    p1 = a + 2 => *p = a[2] = 4

    b[2 - 1] = *p1 - a[2 - 1] = 4 - 2 = 2

    sum = sum + b[1] + a[2] = 4 + 2 + 4 = 10

  3. i = 3

    *p1 = a[3] = 8

    b[3 - 1] = *p1 - a[3 - 1] = 8 - 4 = 4

    sum = sum + b[2] + a[3] = 10 + 4 + 8 = 22

17. JAVA

public class Conv{ 
    int a;
    public Conv(int a) {
    	this.a = a;
    } 
    int func() {
    	int b =1; 
	    for (int i=1; i<a; i++){ 
		    b = a * i + b 
	    }
    	return a +b;
    }
}
 
public static void main(String[] args){
    Conv obj = new Conv(3);
    obj.a=5; 
    int b = obj.func();
    system.out.print(obj.a + b);
}

  1. Conv obj = new Conv(3);

    obj.a = 3 초기화

  2. obj.a = 5;

    다시 5로 바뀜

  3. int b = obj.func();

    b = a * i + b;

    b = 1;

    • i = 1

      b = 5 * 1 + 1 = 6

    • i = 2

      b = 5 * 2 + 6 = 16

    • i = 3

      b = 5 * 3 + 16 = 31

    • i = 4

      b = 5 * 4 + 31 = 51

    b = 51 + a = 56

  4. system.out.print(obj.a + b);

    56 + 5 = 61

18. 함수 종속성

image-20241014190923127

  1. 성적은 {학생,학과}에 대해서 ( ) Functional Dependency이다.

    Full

    같은 학생이라도 다른 학과에서 다른 성적을 받을 수 있으므로 학생, 학과를 모두 알아야 성적을 알 수 있다.

  2. 성적은 학과만 알아도 식별이 가능하므로, 이 경우에는 성적 속성은 기본키에 ( ) Functional Dependency이다.

    Partial

    기본키의 일부인 학과만 알아도 성적이 결정된다.

  3. 릴레이션에서 X, Y, Z라는 3 개의 속성이 있을 때 X→Y, Y→Z 이란 종속 관계가 있을 경우, X→Z가 성립될 경우

    Transitive

완전 함수적 종속 : 속성 Y가 다른 속성집합 X 전체에 대해 함수적 종속이면서, X의 진부분집합 Z에 함수적 종속이 아닐 때 Y는 X에 완전 함수적 종속

부분 함수적 종속 : 속성 Y가 다른 속성집합 X 전체에 대해 함수적 종속이면서, X의 진부분집합 Z에 함수적 종속일 때 Y는 X에 부분 함수적 종속

기본키 모두에 함수적 종속일 때 완전 함수적 종속이고, 기본키가 복합키일 때 복합 속성 중 하나만 함수적 종속이면 부분 함수적 종속

19. 용어

  1. 인터넷에서, 웹 서버와 사용자의 인터넷 브라우저 사이에 문서를 전송하기 위해 사용되는 통신 규약을 말한다.

인터넷에서 하이퍼텍스트(hypertext) 문서를 교환하기 위하여 사용되는 통신규약이다. 이 규약에 맞춰 개발해서 서로 정보를 교환할 수 있게 되었다.

http

  1. 문자, 그래픽, 음성 및 영상을 하나의 연상 거미집(Web of Association)과 같이 서로 연결시켜, 제시된 순서에 관계없이 이용자가 관련된 정보를 검색할 수 있도록 하는 정보 제공 방법이다.

즉, 한 페이지에서 링크된 순서에 상관없이 사용자들이 원하는 정보를 클릭함으로써 원하는 정보에 쉽게 접근하는 방식을 말한다.

hypertext

  1. 웹 페이지 표시를 위해 개발된 지배적인 마크업 언어다.

또한, 제목, 단락, 목록 등과 같은 본문을 위한 구조적 의미를 나타내는 것뿐만 아니라 링크, 인용과 그 밖의 항목으로 구조적 문서를 만들 수 있는 방법을 제공한다.

html

댓글남기기