ABOUT ME

-

Today
-
Yesterday
-
Total
-
choco@desktop:~/tistory
$ 정보처리기사 요점정리
1과목 2과목 3과목 4과목 5과목 실기

$ Linux Kernel
Power Management DVFS
  • 정보처리기사 실기 - 출제 예상 개념 전체 요점 정리 (기출문제)
    시험 요점정리 (꽃길)/정보처리기사 2021. 8. 10. 23:13

    * 2020년 1~4회 기출 문제 및 필기 문제 등을 기반으로 출제 예상 개념을 정리한 문서입니다.

    실기 기출문제는 문제가 공식적으로 공개된 것이 아니므로, 실제 문제와 복원된 문제 사이 구체적인 부분에서 약간의 차이가 있을 수 있습니다.

     

    정보처리기사 실기

    출제 예상 개념 전체 요점 정리

     

    1장 프로그래밍 언어 활용

     

    1. 반복문 (for나 while 로 범위를 반복)

    2020년 3회 실기 기출문제

    다음 프로그램의 실행 결과를 쓰시오.

    #include <stdio.h>
    
    void main()
    {
    	int i = 0, c = 0;
    	while (i < 10) {
    		i++;
    		c *= i;
    	}
    	printf("%d", c);
    }

    풀이: i 가 0부터 i < 10 조건을 만족하는 동안 while 문 안의 문장을 반복해서 실행하기 때문에 i++ 은 i 가 1이 더해져서 1이 된 것이고 c *= i 는 c에 i 를 곱하는 것해서 c에 넣는 것이므로 (c = c*i 의 줄인 표현) 0 곱하기 1의 결과인 0이 다시 c가 된다. 다시 while문 처음으로 돌아가서 i는 현재 1이므로 while (i < 10) 조건을 만족하니까 계속 실행한다. i++ 부터 실행하면 i는 2가 되고, c *= i 는 0 곱하기 2를 한 결과인 0이 c에 들어가게 된다. 이렇게 while 문에서 i 가 9일 때까지만 실행하게 되는데, 아무리 곱해도 답은 0이 된다.

    답 0

     

    2. 산술 연산자

    ++ 는 +1을 하는 것 (-- 는 -1을 하는 것)

    a+=2는 a=a+2 를 짧게 표현한 것 (a-=2는 a = a-2 를 짧게 표현한 것)

     

    2020년 1회 실기 기출문제

    다음 프로그램의 실행 결과를 쓰시오.

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

    switch case문은 switch(값) 이 있으면 그 값에 해당하는 case 문을 실행하게 된다. 그러나 case 문 바로 밑에 break; 를 넣어주지 않으면 이어서 아래까지 쭉 수행하게 된다. 위의 문제는 case 3 부터 default 까지 쭉 수행했기 때문에 k 가 0 이 되었다가, +3 을 했다가 -10 을 했다가 -1을 했으므로 답은 -8이다.

    답 -8

     

    3. 배열

    이차원 배열 문제

     

    2020년 4회 실기 기출문제

    다음 프로그램의 출력 결과가 나오기 위한 (1) (2) 의 값을 쓰시오.

    public class Exam{
    	public static void main(String[] args) {
        	int [][] array = new int[(1)][(2)];
            int n = 1;
            for (int i = 0; i < 3; i++) {
            	for (int j = 0; j < 5; j++) {
                	array[i][j] = j*3 + (i+1);
                    System.out.print(array[i][j] + "");
                }
                System.out.println();
            }
        }
    }
    
    /* 출력 결과 */
    1 4 7 10 13
    2 5 8 11 14
    3 6 9 12 15

    답 (1) 3, (2) 5

     

    4. 포인터

    C언어의 포인터 개념이 시험에 출제된 적이 있다.

     

    2020년 4회 실기 기출문제

    다음 프로그램의 실행 결과를 쓰시오.

    int main() {
        char *p = "KOREA";
        printf("%s \n ", p);
        printf("%s \n ", p+3);
        printf("%c \n ", *p);
        printf("%c \n ", *(p+3));
        printf("%c ", *p+2);
    }

    %s는 문자열 출력하는 포맷이며, 문자열 맨 끝 (보이지는 않지만 문자열 끝에는 사실 NULL 이 들어있다) 까지 출력하게 된다. %c는 문자를 출력하는 것이며, 한 글자만 출력하게 된다. %s는 포인터를 줘야하고, %c는 포인터가 아닌 값을 줘야한다. 값을 주기 위해서 포인터에 *을 붙여서 그 값을 꺼내게 된다.

    문자열이나 배열을 포인터로 취급할 때, 그 위치는 항상 가장 첫번째를 가리키게 된다. 문자열은 맨 앞 글자가 되고, 배열은 0번째 인덱스를 가리키게 된다. 따라서 printf("%s \n", p); 는 맨 첫 문자부터 끝까지 다 출력하므로 KOREA가 된다. 포인터에 값을 더하면 가리키는 위치가 뒤로 이동한다. p+3을 하면 문자열도 배열도 뒤로 3칸 더 가게 된다. 그래서 printf("%s \n", p+3); 은 세칸 더 뒤로간 E부터 끝까지 출력이므로 EA가 된다.

    %c로 출력하기 위해서 *p 를 붙여줬으므로 printf("%c \n", *p); 는 K가 되고, 3칸 뒤로 이동해서 * 붙였으므로 printf("%c \n", *(p+3)); 은 E가 된다.

    마지막 거는 헷갈리지 않아야하는데, *p 로 이미 K라는 값을 얻은 다음에 2를 더한 것이다. K+2 인데, K도 사실 우리 눈엔 문자이지만 프로그래밍 언어에게는 숫자이다. 아스키 코드 표에서 K는 숫자 107을 의미한다. 사실 K가 107인지는 중요하지 않고, K에서 2칸 더 뒤로 간 거는 알파벳 순서상 ABCDEFGHIJ KLMNOP... 이므로 M이라는 것만 알면 된다.

     

    KOREA

    EA

    K

    E

    M

     

    5. JAVA의 상속 (클래스와 메소드)

    JAVA의 상속 개념이 많이 출제가 되는데, 보통 가장 아래에 있는 main 함수를 보면 new를 이용해서 생성할 때, 어떤 클래스로 생성했는지를 보면 된다. 예를 들어, 아래 문제의 경우 Vehicle obj = 로 class Car가 아닌 class Vehicle로 만든 것을 알 수 있다. 그러면 Vehicle의 함수를 이용하여 실행하면 된다.

     

    2020년 3회 실기 기출문제

    다음 프로그램의 실행 결과를 쓰시오.

    abstract class Vehicle {
        String name;
        abstract public String getName(String val);
        public Vehicle(String val) {
            this.name = val;
        }
        public String getName() {
            return “Vehicle name : “ + name;
        }
    }
    
    class Car extends Vehicle {
        public Car(String val) {
            super(val); // name = super.name = val;
        }
        public String getName(String val) { // 오버라이딩
            return “Car name :  “ + val;
        }
        public String getName(byte val[]) { // 오버로딩 (이름 같고 타입 다름)
            return “Car name : ” + val;
        }
    }
    
    public class Exam {
        public static void main(String[] args) {
            Vehicle obj = new Car(“Spark”);
            System.out.println(obj.getName());
    }

    설명은 위를 참조

    Vehicle name : Spark

     

    6. Python 문법

    C나 Java에는 없는 Python 문법이 많이 출제가 된다. {} 안에 값들을 넣으면 Set 자료형이 되는데, 중복 없이 값들을 넣는 자료형이다. 예를 들어 아래 문제의 예시에서 asia = {'한국', '한국', '중국', '일본'} 이렇게 만들면 중복된 건 알아서 없어지고 asia = {'한국', '중국', '일본'} 만 남게 되는 것이다.

    그 외에도 출제 가능한 개념은 dictionary가 있다. asia = {'한국' : 1, '중국' : 2, '일본' : 3} 이렇게 Set과 비슷하게 생겼지만 데이터가 들어가는 형식이 다르다. 이것은 key : value 쌍으로 데이터를 저장하게 되고, asia['한국'] 에 접근하면 1이라는 값을 얻을 수 있다.

     

    2020년 1회 실기 기출문제

    다음 프로그램의 실행 결과를 쓰시오.

    >> asia = {‘한국’, ‘중국’, ‘일본’}
    >> asia.add(‘베트남’)
    >> asia.add(‘중국’)
    >> asia.remove(‘일본’)
    >> asia.update([‘홍콩, ‘한국’, ‘태국])
    >> print(asia)

    set 자료형은 중복을 허용하지 않으므로, 같은 데이터가 여러번 들어오는 것은 무시하면 되고, 이름 그대로 add 는 새로 추가하는 것, remove는 기존에 있는 걸 없애는 것이다. update는 한 번에 여러 개를 넣는 것이다.

    : {‘한국’, ‘홍콩’, ‘베트남’, ‘태국’, ‘중국’}

     

    2020년 4회 실기 기출문제

    다음 프로그램의 실행 결과를 쓰시오.

    lol = [[1,2,3], [4,5], [6,7,8,9]]
    print(lol[0])
    print(lol[2][1])
    for sub in lol:
    	for item in sub:
        	print(item, end=" ")
            print()

    print() 함수에는 기본적으로 end (끝부분) 을 엔터로 치게 되어있다. 따라서 end = " " 이런식으로 끝 부분을 띄어쓰기로 하겠다고 지정하게 되면 엔터를 치기 않고 옆으로 이어서 자료가 출력된다.

    답:

    [1, 2, 3]

    7

    1 2 3

    4 5

    6 7 8 9

     

    2장 요구사항 확인

    7. 요구사항 개발 프로세스 순서 - 순서 나열 문제 가능

    도출 (Elicitation) - 분석 (Anaylsis) - 명세 (Specification) - 확인 (Validation)

     

    8. UML 관계 - 단답형 혹은 약술형 가능

    필기에서 종종 그림을 주고 이 둘의 관계가 어떤 관계인지 맞추도록 하는 문제가 나와서 실기에서도 출제 가능할 것 같다.

     

    연관 (Association) 관계 / 집합 (Aggregation) 관계 / 포함 (Composition) 관계 / 일반화 (Generalization) 관계 / 의존 (Dependency) 관계 / 실체화 (Realization) 관계

     

    요약 출처ㅣ https://liveyourit.tistory.com/199

     

    9. 다이어그램 중 구조적 (Structural) 다이어그램 - 단답형 가능

    실기에서 출제된 적이 있는데, 각 다이어그램의 형태를 알아두는 것이 좋을 것 같다.

     

    클래스 다이어그램

    객체 다이어그램

    컴포넌트 다이어그램

    배치 다이어그램

    복합체 구조 다이어그램

    패키지 다이어그램

     

    클래스 다이어그램 그림 출처 | https://velog.io/@zooneon/%ED%81%B4%EB%9E%98%EC%8A%A4-%EB%8B%A4%EC%9D%B4%EC%96%B4%EA%B7%B8%EB%9E%A8

     

    2020년 4회 실기 기출문제

    아래 다이어그램의 이름을 쓰시오.

    (아래 그림은 시험에 출제된 이미지가 아니며 이해를 돕기 위한 예시 그림)

    이미지 출처 | https://dlsdn73.tistory.com/23

    답: 패키지 다이어그램

     

    10. 다이어그램 중 행위 (Behavioral) 다이어그램 - 단답형 가능

    9번에서 보듯이 실기에서 출제된 적이 있는데, 각 다이어그램의 형태를 알아두는 것이 좋을 것 같다.

     

    유스케이스 다이어그램: 졸라맨 모양의 사람이 있음

    시퀀스 다이어그램: 네모난 객체와 거기서부터 아래로 쭉 떨어지는 점선 생명선이 있다.

    커뮤니케이션 다이어그램

    상태 다이어그램: 한 상태에서 다른 상태로 이동하는 것만 표현됨

    활동 다이어그램: 마름모 형태로 yes, no를 결정한다.

    상호작용 개요 다이어그램

    타이밍 다이어그램

     

    그림 예시

    유스케이스 다이어그램 그림 출처 | https://m.blog.naver.com/ljh0326s/221001892737

    시퀀스 다이어그램 그림 출처 | https://thinking-jmini.tistory.com/29 

    상태 다이어그램 그림 출처 | https://story.pxd.co.kr/1549

    활동 다이어그램 그림 출처 | https://codedragon.tistory.com/5352

     

    3장 데이터 입출력 구현

     

    11. 데이터베이스의 이상 (Anomaly) - 약술형 혹은 단답형

    데이터 베이스의 이상이란 테이블에서 일부 속성들의 종속으로 인해 데이터의 중복이 발생하고, 이 중복 (Redundancy) 으로 인해 테이블 조작 시 문제가 발생하는 현상을 의미한다.

     

    12. 데이터베이스의 이상 (Anomaly) 의 종류 - 단답형

    삽입 이상 (Insertion Anomaly): 테이블에 데이터를 삽입할 때 의도와는 상관없이 원하지 않는 값들로 인해 삽입할 수 없게 되는 현상이다.

    삭제 이상 (Deletion Anomaly): 테이블에서 한 튜플을 삭제할 때 의도와는 상관없는 값들도 함께 삭제되는, 즉 연쇄 삭제가 발생하는 현상이다.

    갱신 이상 (Update Anomaly): 테이블에서 튜플에 있는 속성 값을 갱신할 때 일부 튜플의 정보만 갱신되어 정보에 불일치성 (Inconsistency) 이 생기는 현상이다.

     

    2020년 실기 4회 기출문제

    데이터베이스에서 발생하는 이상의 종류 3가지를 쓰시오.

    답: 갱신 이상, 삽입 이상, 삭제 이상

     

    13. 정규화 (Normalization) - 약술형 혹은 단답형

    정규화는 테이블의 속성들이 상호 종속적인 관계를 갖는 특성을 이용하여 테이블을 무손실 분해하는 과정이다.

    정규화의 목적은 가능한 한 중복을 제거하여 삽입, 삭제, 갱신 이상의 발생 가능성을 줄이는 것이다.

     

    (쉬운 암기를 위하여 테이블의 중복을 제거하여 삽입, 삭제, 갱신 이상의 발생 가능성을 줄이는 방법이라고만 외워도 될 것 같다)

     

    14. 정규화 과정 - 단답형

    정규화의 순서는 도-부-이-결-다-조 순이다. (두부이걸다줘요? 로 외우면 된다:유튜브 강의 https://www.youtube.com/watch?v=rHq3ms88miU)

     

    비정규 릴레이션

    메인이 원자값

    1NF

    분적 함수 종속 제거

    2NF

    행적 함수 종속 제거

    3NF

    정자이면서 후보키가 아닌 것 제거

    BCNF

    치 종속 제거

    4NF

    인 종속성 이용

    5NF

     

    구체적인 예시는 https://yaboong.github.io/database/2018/03/09/database-normalization-1/ 를 참고하면 좋다. 시험에 나오기 쉬운 건 제 1, 2, 3 정규화일 것 같다. 도메인이 원자값이라는 것은 릴레이션 안에 속성이 더이상 쪼갤 수 없는 원자값이 아니라 여러 값을 가지고 있으면 안 된다. 예를 들어, 학생은 한 명인데, 수강신청한 과목이 1개가 아니고 여러개가 한 칸에 들어가 있으면 원자값이 아닌 상태이다. (결과로 보면 튜플이 여러 개 생긴다. 홍길동 학생이랑 국어, 홍길동 학생이랑 영어, 홍길동 학생이랑 수학 이런 식으로 1개에 다 몰아뒀던 게 3개로 늘어나는 것이다.)

    학생 수강신청 과목
    홍길동 국어, 영어, 수학

    부분적 함수 종속을 제거한다는 것은 기본키도 아닌데, 다른 속성을 결정지을 수 있는 걸 제거한다는 것이다. 예를 들어, 기본키로 학번 + 과목코드 를 사용해서 학부를 결정지을 수 있게 해뒀는데, 기본키가 아닌 학번 하나만 가지고도 학부를 결정지을 수 있으면 부분 함수 종속성이 생겼다고 표현한다. (표현이 너무 어려운데, 결과로 보면 하나였던 표를 2개로 쪼개게 된다! 종속을 가진 애들을 분리한다.)

     

    이행적 함수 종속은 필기 시험에도 나오는데, A->B이고 B->C이면 A->C가 성립한다는 것이다. 예를 들어, 학번에 따라 학부가 정해져있고, 학부에 따라 등록금이 정해져있다면, 학번에 따라 등록금이 정해진다는 것도 이해가 될 것이다. 굳이 이런 관계인 애들을 하나의 표에 둘 필요가 없다. 학번과 학부만 있는 표 따로, 학부와 등록금만 있는 표 따로로 분리하면 된다. (이것도 결과적으로 표가 2개가 된다. 그러나 A->B이고 B->C이고 하는 관계를 쪼갠 것이기 때문에 한 표는 A가 기본키, 다른 표는 B가 기본키가 된다.)

     

    15. 반정규화 (Denormalization) - 약술형 혹은 단답형

    반정규화란 시스템의 성능 향상, 개발 및 운영의 편의성 등을 위해 정규화된 데이터 모델을 통합, 중복, 분리하는 과정으로, 의도적으로 정규화 원칙을 위배하는 행위이다.

     

    2020년 1회 실기 기출문제

    비정규화 (De-normalization, 반정규화, 역정규화) 의 개념을 간략히 설명하시오.

    답: 정규화된 엔티니, 속성, 관계에 대해 시스템의 성능향상과 개발과 운영의 단순화를 위해 중복, 복합, 분리 등을 수행하는 데이터 모델링의 기법을 의미한다.

     

    16. 인덱스 (Index) - 약술형 혹은 단답형

    인덱스는 데이터 레코드를 빠르게 접근하기 위해 < 키 값, 포인터 > 쌍으로 구성되는 데이터 구조이다.

     

    (정의를 찾아보면 테이블의 검색 속도를 높여주는 자료구조라고만 정의가 나온다. 데이터 레코드를 빠르게 접근하기 위한 자료구조 정도로만 외워도 될 것 같다)

     

    인덱스 그림 출처 | https://wkdtjsgur100.github.io/database-index/

     

    17. 뷰 (View) - 약술형 혹은 단답형

    뷰는 사용자에게 접근이 허용된 자료만을 제한적으로 보여주기 위해 하나 이상의 기본 테이블로부터 유도된, 이름을 가지는 가상 테이블이다.

     

    가상 테이블이라고 하는 이유는 실제로 디스크 공간에 테이블 안에 데이터들이 저장되는 것이 아니다. 어떤 식으로 데이터를 보여줄지만 저장되어있다. 아래 그림에서 맨 아래 테이블 형태가 뷰인데, 실제로 저런 테이블이 만들어진 것이 아니라 사용자에게 편의성을 제공할 수 있게 보여질 때만 이렇게 보여지게 하는 것이다.

     

    (정의를 찾아보면 뷰는 하나 이상의 기본 테이블에서 생성되는 가상 테이블이다.)

     

    뷰 그림 출처 | https://sassun.tistory.com/92

    18. 트랜잭션의 특성 - 단답형 혹은 약술형

    트랜잭션의 특성 그림 출처 | https://dalsoon-jang.tistory.com/63

    2020년 실기 1회 기출문제

    트랜잭션 (Transaction) 은 데이터베이스 내에서 한꺼번에 모두 수행되어야할 연산들의 집합으로 하나의 작업 처리를 위한 논리적인 작업 단위를 말한다. 다음은 트랜잭션의 주요 특성 4가지이다. 빈칸 (1) ~ (2) 에 알맞은 용어를 쓰시오.

    주요 특성 설명
    (1) 트랜잭션의 가장 기본적인 특성으로 트랜잭션내의 연산은 반드시 모두 수행되어야하며 그렇지 못한 경우 모두 수행되지 않아야 함
    일관성 트랜잭션이 정상적으로 완료된 후 언제나 일관성 있는 데이터베이스 상태가 되어야하며, 결과에 모순이 생겨서는 안 됨
    (2) 하나의 트랜잭션이 수행 중에는 다른 트랜잭션 접근할 수 없고 각각의 트랜잭션은 독립적이어야 함
    영속성 지속성이라고도 하며, 트랜잭션이 성공적으로 완료된 후 결과는 지속적으로 유지되어야 함

    : (1) 원자성 (Atomicity) (2) 독립성 (Isolation)

     

    4장 통합 구현

    19~20 공통 지식. 연계메커니즘

    모듈의 연계 메커니즘에는 직접 연계 방식이 있고, 간접 연계 방식이 있다.

    간접 연계 방식에는 EAI (연계 솔루션), ESB (Enterprise Servie Bus), Socket, Web Service가 있다.

     

    19. 연계메커니즘의 간접 연계 방식 중 EAI - 단답식 가능

    EAI (Enterprise Application Integraion) 은 기업 내 각종 애플리케이션 및 플랫폼 간의 정보 전달, 연계, 통합 등 상호 연동이 가능하게 해주는 솔루션이다. EAI의 구축 유형의 형태와 명칭을 알아둬야한다.

     

    EAI 구축 유형 그림 출처 | https://hyeonukdev.github.io/2020/05/31/Engineer_Information_Processing/%EC%98%A4%EB%8B%B5%EB%85%B8%ED%8A%B8/%EC%98%A4%EB%8B%B5%EB%85%B8%ED%8A%B81/

     

    2020년 3회 실기 기출문제

    EAI 구축 유형 중 (1) (2) 에 해당하는 유형을 쓰시오.

    유형 개념도 설명
    (1)
    -중간에 미들웨어를 두지 않고 각 애플리케이션 간 직접 연결
    -솔루션 구매 없이 통합, 상대적 저렴하게 통합 가능
    -변경, 재사용 어려움
    (2)
    -단일 접점이 허브 시스템을 통해 데이터를 전송하는 중앙 집중적 방식
    -모든 데이터 전송 보장, 확장 및 유지 보수 용이
    -허브 장애 시 전체 영향
    Message Bus
    (ESB 방식)
    -애플리케이션 사이 미들웨어(버스)를 두어 처리
    -미들웨어를 통한 통합
    -대용량 처리 가능
    -어댑터가 각 시스템과 버스를 두어 연결하므로 뛰어난 확장성
    Hybrid
    -유연한 통합 작업이 가능
    -표준 통합 기술, 데이터 병목 현상 최소화

    답:

    (1) Point to Point

    (2) Hub & Spoke

     

    20. 연계메커니즘의 간접 연계 방식 중 Web Service - 단답형

    - WSDL (Web Services Description Language): 웹 서비스와 관련된 서식이나 프로토콜 등을 표준적인 방법으로 기술하고 게시하기 위한 언어

    XML 기반으로 아래와 같이 쓴다. <> 안에 뭘 쓰는지 약속이 정해져있는 것이다.

    코드 예시 위키백과 https://ko.wikipedia.org/wiki/WSDL

    <?xml version="1.0" encoding="UTF-8"?>
    <!-- Abstract types -->
       <types>
          <xs:schema xmlns="http://www.example.com/wsdl20sample"
                     xmlns:xs="http://www.w3.org/2001/XMLSchema"
                     targetNamespace="http://www.example.com/wsdl20sample">

    - UDDI (Universal Description, Discovery and Integration): 인터넷에서 전 세계의 비즈니스 업체 목록에 자신의 목록을 등록하기 위한 확장성 생성 언어 (XML) 기반의 규격

    - SOAP (Simple Object Access Protocol): 웹 서비스를 실제로 이용하기 위한 객체 간의 통신 규약

    ※ 위의 3 개념 모두 XML 기반이다.

     

    2020년 실기 1회 기출문제

    HTTP, HTTPS, SMTP 등을 사용하여 XML 기반의 메시지를 컴퓨터 네트워크 상에서 교환하는 형태의 프로토콜로서 Envelope, Header, Body의 주요 3요소로 구성된 간접 연계 방식의 웹서비스의 기본적인 메시지 전송 수단을 의미하는 용어를 쓰시오.

    답: SOAP

     

    21. XML - 단답형

    XML (eXtensible Markup Language) 은 웹브라우저 간 HTML 문법이 호환되지 않는 문제와 SGML의 복잡함을 해결하기 위하여 개발된 다목적 마크업 언어이다.

    <?xml version="버전" encoding="언어셋" standalone="yes|no"?>

     

    2020년 실기 1회 기출문제

    다음 설명에 부합하는 것이 무엇인지 영문 약어로 쓰시오.

    HTML의 단점을 보완한 인터넷 언어로, SGML의 복잡한 단점을 개선한 다목적 마크업 언어이다.

    웹 상에서 구조화된 문서를 상호교환 가능하도록 설계된 웹 표준 문서 포맷으로 메타 데이터 정의가 명확하다.

    사용자가 새로운 태그와 속성을 정의할 수 있는 확장성을 가진다.

    답: XML

     

    22. JSON - 단답형

    JSON (JavaScript Object Notation) 은 속성 - 값 쌍으로 이루어진 데이터 오브젝트를 전달하기 위해 사용하는 개방형 표준 포맷이다.

     

    ※ JSON과 XML 의 차이? JSON은 XML의 단점을 보완하기 위해 나온 것으로, 사람이 읽기에 더 쉽게 만들어졌다.

     

    2020년 1회 실기 기출문제

    다음 설명 중 빈 칸에 가장 부합하는 것을 영문 약어로 쓰시오.

    () 은 데이터를 저장하거나 전송할 때 많이 사용되는 경량의 data 교환 형식이다. () 표현식은 사람과 기계 모두 이해하기 쉬우며 소용량으로 최근에는 XML을 대체해서 데이터 전송 등에 많이 사용한다. AJAX에서 서버와 통신하여 데이터 교환을 쉽게 하기 위해 () 을 데이터 전송 형식으로 많이 사용한다.

    () 의 문법은 key와 value가 쌍으로 존재하며 태그로 표현하기보다는 중괄호 {} 같은 형식으로 하고, 값은 , 로 나열하기에 그 표현이 간단하다.

    답: JSON

     

    23. AJAX - 단답형

    AJAX (Asynchronous JavaScript and XML) 는 JavaScript를 이용한 비동기 통신으로 클라이언트와 서버 간 XML 데이터를 주고받는 기술이다.

     

    2020년 2회 실기 기출문제

    '비동기식 자바스크립트 XML' 을 의미하는 용어로 클라이언트와 웹 서버 간에 XML 데이터를 내부적으로 통신하는 대화식 웹 애플리케이션 제작을 위해 사용된다. 클라이언트의 요청에 의해 웹 서버에서 로딩된 데이터를 웹 브라우저의 페이지에 보여주기 위해 웹 페이지 전체를 '새로고침' 할 필요 없이 즉, 새로운 HTML 페이지로 이동할 필요 없이 현재 페이지에서 필요한 일부분만 로딩되도록 하는 웹 개발 기법을 의마하는 영문 약자(약어)를 쓰시오.

    답: AJAX

     

    5장 서버 프로그램 구현

     

    24. 개발 환경 중 서버 환경 - 단답식 혹은 약술형

    클라이언트가 있고 서버가 있다. 이 중 웹 서버와 웹 애플리케이션 서버의 차이나 설명을 알아두어야할 것 같다.

     

    - 웹 서버 (Webserver): 클라이어트로부터 직접 요청을 받아 처리하는 서버로, 저용량의 정적 파일들을 제공한다.

    ex. Apache HTTP Server, Google Web Server

    - 웹 애플리케이션 서버 (WAS; Web Application Server): 사용자에게 동적 서비스를 제공하기 위해 웹 서버로부터 요청을 받아 데이터 가공 작업을 수행하거나, 웹 서버와 데이터베이스 서버 또는 웹 서버와 파일 서버 사이에서 인터페이스 역할을 수행하는 서버이다.

    ex. Apache Tomcat, Orcale WebLOgic 등

    - 데이터베이스 서버 (DB Server)

    ex. MySQL Server, Oracle Server 등

    - 파일 서버 (File Server)

    ex. AWS S3 등

     

    25. 개발 언어의 선정 기준 - 단답형

    적정성, 효율성, 이식성, 친밀성, 범용성

     

    26. 모듈의 독립성 측정 방법 두 가지 - 약술형 혹은 단답형

    결합도 (Coupling): 결합도는 모듈 간에 상호 의존하는 정도 또는 두 모듈 사이의 연관 관계를 의미한다

    응집도 (Cohesion): 응집도는 정보 은닉 개념을 확장한 것으로, 명령어나 호출문 등 모듈의 내부 요소들의 서로 관련되어 있는 정도, 즉 모듈이 독립적인 기능으로 정의되어 있는 정도를 의미한다.

     

    2020년 1회 실기 기출문제

    하나의 프로그램을 몇 개의 작은 부분으로 분할하는 경우 그 분할 단위를 일반적으로 모듈 (Module) 이라 한다. 다음 중 바람직한 모듈에 대한 설명으로 빈칸 (1), (2)에 알맞은 용어를 쓰시오.

    모듈화를 중심으로 하는 소프트웨어 설계 방법에서는 모듈의 독립성을 높게 해주는 것이 좋은 설계 방향이다. 모듈의 독립성을 높여주기 위해서는 각 모듈 간의 관련성을 나타내는 (1) 은 낮추고, 모듈 안에 요소들이 서로 관련되어 있는 정도를 나타내는 (2) 는 높이는 것이 가장 바람직하다.

     

    답: (1) 결합도, (2) 응집도

     

    27. 결합도 종류 - 단답형 가능

    자료 결합도 (Data Coupling) - 스탬프 결합도 (Stamp Coupling) - 제어 결합도 (Control Coupling) - 외부 결합도 (External Coupling) - 공통 결합도 (Common Coupling) - 내용 결합도 (Content Coupling)

     

    결합도가 강한 것부터 약한 것까지 순서를 알아두는 것이 좋다.

     

    암기 방법은 결합도는 내공 외제스데, 응집도는 우논시절 통순기이다.

    내공 외제스데는 '내'가 가장 강하다. 우논시절 통순기는 '우연적 응집도'가 '우연'이라 가장 약할 수 밖에 없다. (둘이 강함 - 약함 순서가 반대로 되어있는데 약자만 외우다 헷갈릴 수 있으니 이렇게 강하고 약한 거 순서는 한 번 봐야한다)

    내공 외제스데랑 우논시절 통순기가 결합도인지 응집도인지 헷갈릴 때는 응집도랑 우논시절 통순기가 모두 ㅇ 으로 시작한다는 걸 외우면 된다.

     

    결합도 그림 출처 | https://hyeonukdev.github.io/2020/05/31/Engineer_Information_Processing/%EC%98%A4%EB%8B%B5%EB%85%B8%ED%8A%B8/%EC%98%A4%EB%8B%B5%EB%85%B8%ED%8A%B81/

     

    28. 응집도 종류 - 단답형 가능

    기능적 응집도 (Functional Cohesion) - 순차적 응집도 (Sequential Cohesion) - 교환적 응집도 (Communication Cohesion) - 절차적 응집도 (Procedural Cohesion) - 시간적 응집도 (Temporal Cohesion) - 논리적 응집도 (Logical Cohesion) - 우연적 응집도 (Coincidental Cohesion)

     

    암기 방법은 위의 결합도 설명 참고

     

    응집도 그림 출처 | https://hyeonukdev.github.io/2020/05/31/Engineer_Information_Processing/%EC%98%A4%EB%8B%B5%EB%85%B8%ED%8A%B8/%EC%98%A4%EB%8B%B5%EB%85%B8%ED%8A%B81/

     

    29. 팬인 (Fan-In) / 팬아웃(Fan-Out)

    팬인 (Fan-In) 은 자신을 호출하는 모듈의 수, 팬아웃 (Fan-Out) 은 자신이 호출하는 모듈의 수이다.

     

    2020년 실기 1회 기출문제

    다음 프로그램의 구조에서 Fan-in의 수가 2 이상인 모듈의 이름을 쓰시오.

    답: F, H

     

    6장 화면 설계

     

    30. 사용자 인터페이스 (UI) - 약술형 혹은 단답형 가능

    사용자 인터페이스 (UI; User Interface) 는 사용자와 시스템 간의 상호작용이 원활하게 이뤄지도록 도와주는 장치나 소프트웨어를 의미한다.

    ex. 스마트폰 터치 화면

    참고로, 사용자 경험 (UX; User Experience) 는 제품과 시스템, 서비스 등을 사용자가 직/간접적으로 경험하면서 느끼고 생각하는 총체적 경험을 말한다.

     

    31. 사용자 인터페이스 (UI) 의 기본 원칙 - 약술형 혹은 단답형 가능

    - 직관성: 누구나 쉽게 이해하고 사용할 수 있어야 한다.

    - 유효성: 사용자의 목적을 정확하고 완벽하게 달성해야 한다.

    - 학습성: 누구나 쉽게 배우고 익힐 수 있어야 한다.

    - 유연성: 사용자의 요구사항을 최대한 수용하고 실수를 최소화해야 한다.

     

    2020년 실기 3회 기출문제

    UI (User Interface)는 사용자와 컴퓨터 상호 간의 소통을 원활히 할 수 있도록 도와주는 연계 작업을 뜻한다. UI의 설계 원칙 중 직관성에 대해 간략히 설명하시오.

    답: 설계 구조를 누구나 쉽게 이해하고 사용할 수 있어야한다.

    7장 애플리케이션 테스트 관리

     

    32. 애플리케이션 테스트의 기본 원리

    - 파레토의 법칙: 애플리케이션의 20%에 해당하는 코드에서 전체 결함의 80%가 발견된다.

    - 살충제 패러독스: 동일한 테스트 케이스로 동일한 테스트를 반복하면 더 이상 결함이 발견되지 않는다.

    - 오류-부재의 궤변: 소프트웨어의 결함을 모두 제거해도 사용자의 요구사항을 만족시키지 못하면 해당 소프트웨어는 품질이 높다고 말할 수 없다.

     

    2020년 실기 1회 기출문제

    소프트웨어 테스트 방법의 일반적인 원리 중 하나인 살충제 패러독스 (Pesticide Paradox) 의 개념을 간략히 설명하시오.

    답: 살충제 패러독스는 동일한 테스트 케이스로 동일한 절차를 반복 수행하면 새로운 결함을 찾을 수 없다는 것을 의미한다.

     

    33. 화이트박스 테스트 - 약술형 혹은 단답형 가능

    화이트박스 테스트는 모듈의 원시 코드를 오픈시킨 상태에서 원시 코드의 논리적인 모든 경로를 테스트하여 테스트 케이스를 설계하는 방법이다.

     

    화이트박스 테스트 종류로는 기초 경로 검사, 제어 구조 검사가 있다. 화이트박스 테스트의 검증 기준은 테스트 케이스들이 테스트에 얼마나 적정한지 판단하는 기준으로 문장 검증 기준 (Statement Coverage), 분기 검증 기준 (Branch Coverage), 조건 검증 기준 (Condition Coverage) 가 있다. 

     

    아직 개념을 묻는 기출문제는 없었고, 화이트박스 테스트 관련하여 다음과 같은 문제는 출제된 적이 있었다.

     

    2020년 실기 3회 기출문제

    다음 제어 흐름 그래프에 대한 분기 커버리지 (Branch Coverage) 를 수행하는 경우의 테스트케이스 경로를 순서대로 나열하시오.

    답: (1) 1-2-3-4-5-6-1 (2) 1-2-4-5-6-7 (빈칸 - 빈칸 - 이런 식으로 몇 개 쓰면 되는지 나왔다)

    (이건 따로 공부하지 않았는데, 시험장에서 몇 칸인지 나왔기 때문에 그 칸에 맞게 무조건 yes로 가는 길 / 무조건 no 로 가는 길 두 개를 썼는데 맞았다)

     

    34. 블랙박스 테스트 - 약술형 혹은 단답형 가능

    블랙박스 테스트는 소프트웨어가 수행할 특정 기능을 알기 위해서 각 기능이 완전히 작동되는 것을 입증하는 테스트로, 기능 테스트라고도 한다.

    (박스 안을 들여다 볼 수 없는 검은 상자라는 뜻으로 블랙박스 안에서 어떤 일이 일어나는지 알 수는 없지만 입력된 데이터가 블랙박스를 통과하여 출력될 때 그 결과물이 정확한지를 검사하는 것)

     

    2020년 실기 3회 기출문제

    소프트웨어 테스트기법 중 프로그램의 외부 사용자 요구사항 명세를 보면서 테스트를 수행하며 주로 구현된 기능을 테스트한다. 명세 기반 테스트라고도 하며, 동치 분할 테스트, 경계 값 테스트 등과 같이 내부 구조를 보이지 않는 테스트 기법에 해당하는 용어를 쓰시오.

    답: 블랙박스 테스트

     

    35. 블랙박스 테스트 종류 - 단답형 가능

    - 동치분할 검사

    - 경계값 분석

     

    2020년 실기 4회 기출문제

    다음과 같은 테스트 케이스로 소프트웨어를 검증하기 위한 테스트 방법은 무엇인지 쓰시오.

     

    <시험 점수>

    점수 구간 테스트 데이터
    ~60 55점
    60~70 65점
    70~80 78점
    80~90 85점
    90~100 95점

    답: 동치 분할 테스트

     

    ※ 위 문제와 달리, 테스트 데이터가 90점, 101점 이런 식으로 주어진다면 경계값 분석 기법에 해당한다.

     

    36. 인수 테스트 중 알파 테스트와 베타 테스트 - 단답식 혹은 약술형 가능

    - 알파 테스트

    - 베타 테스트

     

    알파 테스트는 선택된 사용자가 개발자 앞에서 검사, 베타 테스트는 선정된 최종 사용자가 여러 명의 사용자 앞에서 검사한다. 알파 테스트는 통제된 환경에서, 베타 테스트는 개발자에 의해 제어되지 않은 상태에서 검사한다.

     

    37. 하향식 통합 테스트 vs. 상향식 통합 테스트 - 단답식 혹은 약술형 가능

    하향식 통합 테스트 (Top Down Integration Test) 는 프로그램의 상위 모듈에서 하위 모듈 방향으로 통합하면서 테스트하는 기법이다. 주요 제어 모듈은 작성된 프로그램을 사용하고, 주요 제어 모듈의 종속 모듈들은 스텁 (Stub) 으로 대체한다.

    상향식 통합 테스트 (Bottom Up Integration Test) 는 프로그램의 하위 모듈에서 상위 모듈 방향으로 통합하면서 테스트하는 기법이다. 하위 모듈들을 클러스터 (Cluster) 로 결합한다. 상위 모듈에서 데이터의 입출력을 확인하기 위해 더미 모듈인 드라이버 (Driver) 를 작성한다.

     

    하향식은 통합이 상위에서 하위로 가니까 방향이 아래를 향해서 하향식이고, 상향식은 통합이 하위에서 상위로 가니까 방향이 위를 향해서 상향식이다.

     

    38. 드라이버 vs. 스텁 - 단답식 혹은 약술형 가능

    위에서 나온 하향식 통합 테스트와 상향식 통합 테스트에서 사용하는 모듈이다.

     

    이걸 쉽게 외우려면 드라이버 (운전자) 는 상위에 있고 스탑 (운전자가 밟는 브레이크) 은 하위에 있다고 외우면 기억하기 쉬울 것 같다.

    하향식 통합 테스트는 상위에서 하위로 통합하는 거라 하위 모듈이 없을 수 있어서 스텁으로 대체해서 테스트하고, 상향식 통합 테스트는 하위에서 상위로 통합하는 거라 상위 모듈이 없을 수 있어서 드라이버로 대체해서 테스트한다.

     

    테스트 드라이버와 테스트 스텁 그림 출처 | https://all-open.tistory.com/176

     

    39. 테스트 오라클 - 단답식 혹은 약술형 가능

    테스트 오라클 (Test Oracle)은 테스트 결과가 올바른지 판단하기 위해 사전에 정의된 참 값을 대입하여 비교하는 기법 및 활동을 말한다.

     

    테스트 케이스를 적용한 결과가 맞았는지 틀렸는지 판단하려면 기준 값이 있어야한다. 그 값을 계산하거나 확인하는 기법을 테스트 오라클이라고 한다.

     

    40. 테스트 오라클 종류 - 단답식 가능

    - 참 (True) 오라클: 모든 테스트 케이스의 입력 값에 대해 기대하는 결과를 제공하는 오라클로, 발생된 모든 오류를 검출할 수 있다.

    - 샘플링 (Sampling) 오라클: 특정한 몇몇 테스트 케이스의 입력 값들에 대해서만 기대하는 결과를 제공하는 오라클이다.

    - 추정 (Heuristic) 오라클: 샘플링 오라클을 개선한 오라클로, 특정 테스트 케이스의 입력값에 대해 기대하는 결과를 제공하고, 나머지 입력 값들에 대해서는 추정으로 처리하는 오라클이다.

    - 일관성 검사 (Consistent) 오라클: 애플리케이션의 변경이 있을 때, 테스트 케이스의 수행 전과 후의 결과 값이 동일한지를 확인하는 오라클이다.

     

    2020년 실기 4회 기출문제

    다음의 빈칸에 들어갈 단어가 무엇인지 쓰시오.

    테스트 결과가 올바른지 판단하기 위해 사전에 정의된 참 값을 대입하여 비교하는 기법을 테스트 오라클이라 한다. () 은 특정 몇몇 입력 값들에 대해서만 원하는 결과를 제공해주는 오라클이다. 전 범위 테스트가 불가한 경우 사용한다. 경계값, 구간별 예상 값들을 사용한다.

    답: 샘플링 오라클

     

    41. 애플리케이션 성능 측정 지표 - 단답식 가능

    처리량

    응답 시간

    경과 시간

    자원 사용률

     

    2020년 실기 1회 기출문제

    다음 중 빈칸 (1), (2), (3) 에 들어갈 단어를 쓰시오.

    애플리케이션 성능이란, 사용자의 요구 기능을 해당 애플리케이션이 최소의 자원을 사용하면서 얼마나 빨리, 많은 기능을 수행하는가를 육안 또는 도구를 통해서 점검하는 것을 말한다. 이를 측정하기 위한 지표는 (1), (2), (3), 자원 사용률이 있다.

    답: (1) 처리량 (2) 응답 시간 (3) 경과 시간

     

    42. 클린 코드 & 리팩토링 - 단답식 혹은 약술형 가능

    클린 코드 (Clean Code) 는 누구나 쉽게 이해하고 수정 및 추가할 수 있는 단순, 명료한 코드, 즉 잘 작성된 코드를 의미한다.

    리팩토링 (Refactoring) 은 유지보수 생산성 향상을 목적으로 기능을 변경하지 않고, 복잡한 소스 코드를 수정, 보완해 가용성 및 가독성을 높이는 기법이다.

     

    cf) 외계인 코드 (Alien Code) : 아주 오래되거나 참고 문서 또는 개발자가 없어 유지보수 작업이 어려운 프로그램 코드를 의미한다.

     

    2020년 실기 3회 기출문제

    리팩토링 (Refactoring) 의 목적에 대해 간략히 설명하시오.

    답: 리팩토링의 목적은 가독성을 높이고 유지보수의 편리성을 높이는 것이다.

     

    43. 정적 분석 도구 - 단답식 혹은 약술형 가능

    소스코드 품질 분석 도구 중 정적 분석 도구가 있고 동적 분석 도구가 있는데, 정적 분석 도구가 시험에 출제되기 좋을 것 같다.

     

    정적 분석 도구 (Static Analysis Tools) 는 프로그램을 실행하지 않고 분석하는 도구로, 소스 코드에 대한 코딩 표준, 코딩 스타일, 코드 복잡도 및 남은 결함을 발견하기 위해 사용된다. 테스트를 수행하는 사람이 작성된 소스 코드를 이해하고 있어야만 분석이 가능하다.

     

    2020년 실기 2회 기출문제

    다음 빈칸 () 에 공통으로 들어갈 가장 적합한 용어를 쓰시오.

    테스트 자동화 도구는 휴면 에러를 줄이고, 테스트에 소요되는 비용과 시간을 절감하여, 테스트 품질을 향상할 수 있는 도구이다. 테스트 계획, 테스트 분석 / 설계, 테스트 수행, 테스트 통제 등의 테스트 활동 단계에 따라 다양한 테스트 도구들이 있다.

    () 은 테스트 수행 단계의 자동화 도구로 만들어진 애플리케이션을 실행하지 않고 분석하는 방법이다. () 은 대부분의 경우 소스 코드에 대한 코딩 표준, 런타임 오류, 코딩 스타일, 코드 복잡도 및 남은 결함을 발견하기 위해 사용한다.

    () 은 테스트를 수행하는 작성된 소스 코드에 대한 이해를 바탕으로 도구를 이용해서 분석하는 것을 말한다.

    답: 정적 분석

     

    8장 SQL 응용

    44. 스키마 & 도메인- 단답식 혹은 약술형 가능

    스키마 (Schema): 데이터베이스의 구조와 제약 조건에 관한 전반적인 명세를 기술한 것으로 데이터 개체, 속성, 관계 및 데이터 조작시 데이터 값들이 갖는 제약 조건 등에 관해 전반적으로 정의한다.

     

    도메인 (Domain): 도메인이란 하나의 속성이 취할 수 있는 동일한 유형의 원자값들의 집합을 의미한다. 예를 들어, 학년 속성의 데이터 타입이 정수형이고 해당 속성에서 취할 수 있는 값의 범위가 1~4까지라면, 1~4라는 범위는 해당 속성에 지정된 정수형의 모든 범위가 아니라 일부분이므로 사용자는 1~4까지의 범위를 해당 속성의 도메인으로 정의해서 사용할 수 있다. 쉽게 말하면 도메인은 특정 속성에서 사용할 데이터의 범위를 사용자가 정의하는 사용자 정의 데이터 타입이다.

     

    원자값이란 속성값이 더 이상 논리적으로 분해될 수 없는 값을 말한다. 다음의 표를 보면 A의 과목은 국어, 수학으로 2개가 있는데, 이건 원자값이 아니다. B나 C처럼 한 칸에는 하나만 들어가야 원자값이다.

    학생 나이 과목
    A 15 국어, 수학
    B 14 수학
    C 17 과학

    원자값은 더 이상 분해될 수 없는 값인데, 위의 표는 아래와 같이 분해될 수 있다. (이게 제 1 정규화 과정이다)

    학생 나이 과목
    A 15 국어
    A 15 수학
    B 14 수학
    C 17 과학

     

    2020년 실기 3회 기출문제

    스키마 (Schema) 에 대해 간략히 설명하시오.

    답: 스키마는 데이터베이스의 전체적인 구조와 제약 조건에 대한 명세를 기술, 정의한 것을 말한다.

     

    45. DDL - 약술형 가능

    DDL (Data Definition Language, 데이터 정의어) 는 DB 구조, 데이터 형식, 접근 방식 등 DB를 구축하거나 수정할 목적으로 사용하는 언어이다. 실기 문제로 실제 SQL 문장을 물어본다.

     

    - CREATE SCHEMA: 스키마를 정의

    CREATE SCHEMA 대학교 AUTHORIZATION 홍길동;

    - CREATE DOMAIN: 도메인을 정의

    CREATE DOMAIN 성별 CHAR(1)

        DEFAULT '남'

        CONSTRAINT 유효성별 CHECK(VALUE IN ('남','여'));

    - CREATE TABLE: 테이블을 정의

    CREATE TABLE 학생

        (이름 VARCHAR(15) NOT NULL,

        학번 CHAR(8),

        전공 CHAR(5),

        PRIMARY KEY(학번)

        FOREIGN KEY(전공) REFERENCES 학과(학과코드)

            ON DELETE SET NULL                   // 튜플이 삭제되면 NULL 로 변경

            ON UPDATE CASCADE);                // 학과 코드가 변경되면 관련된 모든 튜플 전공 속성 값도 같은 값으로 변경

    - CREATE VIEW: 뷰를 정의

    CREATE VIEW 안산고객(성명, 전화번호)

    AS SELECT 성명, 전화번호

    FROM 고객

    WHERE 주소 = '안산시';

    - CREATE INDEX: 인덱스를 정의

    CREATE UNIQUE INDEX 고객번호_idx

    ON 고객(고객번호 DESC);

    - ALTER TABLE: 테이블에 대한 정의를 변경

    ALTER TABLE 학생 ADD 학년 VARCHAR(3);

    ALTER TABLE 학생 ALTER 학번 VARCHAR(10) NOT NULL;

    ALTER TABLE 학생 DROP COLUMN 주소 CASCADE;

    - DROP: 스키마, 도메인, 기본 테이블, 뷰 테이블, 인덱스, 제약 조건 등을 제거하는 명령문이다.

    DROP SCHEMA 대학교;

    DROP DOMAIN 성별 RESTIRCTED;

    DROP TABLE 학생 CASCADE;

    DROP VIEW 안산고객;

    DROP INDEX 고객번호_idx;

     

    ※ CASCADE는 제거할 요소를 참조하는 다른 모든 개체를 함께 제거하는 것이고, RESTRICTED는 다른 개체가 제거할 요소를 참조중일 때는 제거를 취소한다. 위의 예시 모두 CASCADE, RESTRICTED 옵션이 가능하다.

     

    2020년 실기 2회 기출문제

    다음 주어진 <student> 테이블의 name 속성에 idx_name을 인덱스로 하는 인덱스를 추가하는 SQL 명령문을 작성하시오.

    <student>

    studentid name grade major Address
    1000 김길동 1 컴퓨터공학 서울
    2000 이길동 1 전기공학 경기
    3000 박길동 2 전자공학 경기

    답: CREATE INDEX idx_name ON student(name);

     

    2020년 실기 3회 기출문제

    아래 보기의 <학생> 테이블에 '주소' 컬럼을 추가하는 SQL 문을 완성하는 빈칸 (1), (2) 에 알맞은 용어를 쓰시오.

    (단, 추가 컬럼의 이름은 '주소' 이고, 데이터 타입은 가변 문자형 20자리로 VARCHAR(20)이다.)

    <학생>

    학번 이름 학과 전화번호
    2020001 짱구 컴퓨터 010-0000-0000
    2020003 유리 수학 010-1111-1111
    2020004 철수 컴퓨터 010-2222-2222
    2020002 맹구 통계 010-3333-3333

    <SQL문>

    (1) TABLE 학생 (2) 주소 VARCHAR(20);

     

    답: (1) ALTER, (2) ADD

     

    46. DCL - 단답식 혹은 약술형 가능

    DCL (Data Control Langauage, 데이터 제어어) 는 데이터의 보안, 무결성, 회복, 병행 제어 등을 정의하는데 사용하는 언어이다. GRANT, REVOKE, COMMIT, ROLLBACK, SAVEPOINT 가 있다.

     

    - GRANT: 데이터 베이스 관리자가 데이터베이스 사용자에게 권한을 부여

    GRANT RESOURCE TO 짱구;

    GRANT CONNECT TO 짱구;

    ※ DBA: 관리자, RESOURCE: DB나 테이블 생성 가능자, CONNECT: 정보 검색 가능자

     

    GRANT ALL ON 고객 TO 짱구 WITH GRANT OPTION;    // 사용자 ID가 짱구인 사람에게 고객 테이블에 대한 모든 권한 부여

    GRANT INSERT ON 고객 TO 맹구;

    ※ 권한 종류: ALL, SELECT, INSERT, DELETE, UPDATE, ALTER 등

    ※ WITH GRANT OPTION: 부여받은 권한을 다른 사용자에게 다시 부여할 수 있는 권한 부여

     

    - REVOKE: 데이터베이스 관리자가 데이터베이스 사용자에게 권한을 취소

    REVOKE RESOURCE FROM 짱구;

    REVOKE CONNECT FROM 짱구;

     

    REVOKE GRANT OPTION FOR UPDATE ON 고객 FROM 짱구;

    REVOKE ALL ON 고객 FROM 짱구;

    ※ GRANT OPTION FOR: 다른 사용자에게 권한을 부여할 수 있는 권한을 취소함

     

    47. COMMIT / ROLLBACK / SAVEPOINT - 단답식 혹은 약술형 가능

    COMMIT: 트랜잭션이 성공적으로 끝나면 데이터베이스가 새로운 일관성 (Consistency) 상태를 가지기 위해 변경된 모든 내용을 데이터베이스에 반영하여야 하는데, 이때 사용하는 명령이 COMMIT이다.

    ROLLBACK: 아직 COMMIT 되지 않은 변경된 모든 내용을 취소하고 데이터베이스를 이전 상태로 되돌리는 명령어이다.

    SAVEPOINT: 트랜잭션 내에 ROLLBACK할 위치인 저장점을 지정하는 명령어이다.

     

    2020 실기 2회 기출문제

    SQL 제어어는 관리자가 데이터의 보안, 무결성 유지, 병행제어, 회복 등을 하기 위해 사용하는 언어를 말한다. SQL 제어어 중 ROLLBACK 명령문에 대해 간략히 설명하시오.

    답: ROLLBACK 명령어는 데이터베이스 내의 연산이 비정상적으로 종료되거나 정상적으로 수행되었다 하더라도 수행되기 이전 상태로 되돌리기 위해 연산 내용을 취소할 때 사용하는 명령어를 말한다.

     

    48. DML - 단답식 혹은 약술형 가능

    DML (Data Manipulate Language, 데이터 조작어) 는 데이터베이스 사용자가 응용 프로그램이나 질의어를 통해 저장된 데이터를 실질적으로 관리하는데 사용되는 언어이다.

    SELECT, INSERT, DELETE, UPDATE 명령문이 해당한다.

     

    - 검색문 (SELECT ~ FROM ~)

    47 번에서 따로 다룸

     

    - 삽입문 (INSERT INTO ~)

    INSERT INTO 사원(이름, 부서) VALUES ('홍승현', '인터넷');

    INSERT INTO 사원 VALUES ('장보고', '기획', #05/03/73#, '홍제동', 90);

     

    - 삭제문 (DELETE FROM ~)

    DELETE FROM 사원 WHERE 이름 = '임꺽정';

     

    - 갱신문 (UPDATE ~ SET ~)

    UPDATE 사원 SET 주소 = '수색동' WHERE 이름 = '홍길동';

     

    2020 실기 3회 기출문제

    <학생> 테이블에서 이름이 '민수' 인 학생 튜플을 삭제하는 SQL 문을 작성하시오. (단, 다음의 요구사항을 참고하여 작성하시오.)

    <요구사항>

    1. 이름 속성의 데이터는 문자형이다. 문자형 데이터는 홀따옴표 '' 로 표시하시오.

    2. SQL 명령문은 대/소문자를 구분하지 않는다.

    3. SQL 명령문의 종결 문자의 세미콜론 ; 은 생략 가능하다.

    4. 실행 결과가 일치하더라도 <요구사항> 을 적용하지 않은 SQL문을 작성하면 오답으로 간주한다.

     

    답: DELETE FROM 학생 WHERE 이름='민수';

     

    49. SELECT - 약술형 가능

    DML 중에 하나인 SELECT문은 실기 1회 ~ 4회 동안 한번도 빠지지 않고 약술형 문제로 출제되었다.

    기본적인 형태는 SELECT ~ FROM ~ WHERE ~ 혹은 복잡하게 낸 문제의 경우 SELECT ~ FROM ~ GROUP BY ~ HAVING 형태로 출제된다.

     

    + 위의 내용까지 다 외워버려서 여기서 더 나아가고 싶다면?

    ORDER BY 속성명 ASC 혹은 ORDER BY 속성명 DESC가 있다. 생략하면 기본은 ASC 오름차순이 된다. 오름차순은 올라가는 순서니까 가나다라~타파하 순이 된다. 반대로 내림차순인 DESC를 하게 되면 하파타 ~ 라다나가 순으로 뒤집히게 된다.

     

    2020년 실기 2회 기출문제

    아래 보기의 <학생> 테이블을 대상으로 <요구사항> 을 적용하여 출력하는 SQL문을 작성하시오.

    (단, 이름 속성의 데이터는 문자형이고, 학번과 학년 속성의 데이터는 숫자형(int) 이다.)

    <학생>

    학번 이름 학년
    201234 AAA 1
    210023 BBB 2
    210045 CCC 3

    <요구사항>

    1. <학생> 테이블에서 학생이 3학년이거나 4학년 학생의 학번과 이름을 검색하시오.

    2. 단, 조건절 작성시 IN(VALUE1, VALUE2) 문법을 사용하여 작성하시오.

    3. 실행 결과가 일치하더라도 <요구사항> 을 적용하지 않은 SQL 문을 작성하면 오답으로 간주한다.

     

    답: SELECT 학번, 이름 FROM 학생 WHERE 학년 IN(3,4);

     

    2020년 실기 3회 기출문제

    <성적> 테이블을 대상으로 <요구사항> 을 적용하여 아래 <결과> 와 같이 출력하는 SQL 문을 작성하시오.

    <성적>

    학번 과목번호 과목이름 학점 점수
    100 2000 데이터베이스 A 95
    101 1000 자료구조 B 80
    102 2000 데이터베이스 A 99
    103 2000 데이터베이스 B 88
    104 1000 자료구조 C 79

    <결과>

    과목이름 최소점수 최대점수
    데이터베이스 88 99

    <요구사항>

    1. <성적> 테이블에서 과목별 평균 점수가 90점 이상인 과목이름, 최소점수, 최대점수를 출력하시오.

    2. 단, WHERE 구문은 사용 불가능하며, GROUP BY, HAVING, AS 구문을 반드시 포함하여 작성하시오.

    3. SQL 명령문은 대/소문자를 구분하지 않는다.

    4. SQL 명령문의 종결 문자의 세미콜론(;) 은 생략 가능하다.

    5. 실행 결과가 일치하더라도 <요구사항> 을 적용하지 않은 SQL문을 작성하면 오답으로 간주한다.

     

    답: SELET 과목이름, MIN(점수) AS 최소점수, MAX(점수) AS 최대점수

    FROM 성적

    GROUP BY 과목이름 HAVING AVG(점수) >= 90;

     

    50. 프로시저 - 단답식 혹은 약술형 가능

    프로시저 (PROCEDURE)는 특정 기능을 수행하는 일종의 트랜잭션 언어로 호출을 통해 실행되어 미리 저장해 놓은 SQL 작업을 수행한다. CREATE PROCEDURE ~ , DROP PROCEDURE ~ 형태로 사용한다.

     

    C나 Java 프로그래밍 언어에서의 함수같은 것이라 생각하면 된다.

     

    51. 트리거 - 단답식 혹은 약술형 가능

    트리거 (TRIGGER)는 데이터베이스 시스템에서 데이터의 삽입, 갱신, 삭제 등의 이벤트가 발생할 때마다 관련 작업이 자동으로 수행되는 절차형 SQL이다. CREATE TRIGGER ~, DROP TRIGGER ~ 형태로 사용한다.

     

    cf ) 사용자 정의함수 , 커서와 같은 다른 개념들도 더 있다. 중요도가 떨어지는 것 같아서 따로 정리하지는 않았다. 

    사용자 정의함수는 프로시저처럼 테이블 조작을 할 수는 없고 SELECT 문으로 조회만 할 수 있다.

    커서는 쿼리문의 처리 결과가 저장되어 있는 메모리 공간을 가리키는 포인터이다. 이미 나온 결과를 가리키는 포인터라서 반복되는 동작을 하지 않게 도와준다. 예를 들어 커서를 사용하면 즉 Email 별로 특정 값을 변경 시킬 때, 반복으로 노가다 할 필요 없이 한번에 처리하는 쿼리를 만들 수 있다.

     

    9장 소프트웨어 개발 보안 구축

    52. 소프트웨어 개발 보안 3대 요소 - 단답식 혹은 약술형

    기밀성 무결성 가용성

     

     - 기밀성 (Confidentiality): 인가되지 않은 개인 혹은 시스템 접근에 따른 정보 공개 및 노출을 차단하는 특성

     - 무결성 (Integrity): 정당한 방법을 따르지 않고선 데이터가 변경될 수 없으며, 데이터의 정확성 및 완전성과 고의/악의로 변경되거나 훼손 또는 파괴되지 않음을 보장하는 특성

     - 가용성 (Availability): 권한을 가진 사용자나 애플리케이션이 원하는 서비스를 지속 사용할 수 있도록 보장하는 특성

     

    2020년 실기 4회 기출문제

    소프트웨어 개발 보안 요소 중 가용성 개념에 대해 간략히 서술하시오.

    답: 정보 자산에 대해 적절한 시간에 접근 가능한 것을 의미한다.

     

    53. 공격 기법 - 약술형 혹은 단답식 가능

    참고 | https://ss-o.tistory.com/103

    참고 |  https://velog.io/@sso0022/%EC%A0%95%EB%B3%B4%EC%B2%98%EB%A6%AC%EA%B8%B0%EC%82%AC-%EA%B3%B5%EA%B2%A9%EA%B8%B0%EB%B2%95

     

    Land Attack (랜드어택)
    공격자가 패킷의 출발지 주소와 목적지 주소를 동일하게 변경,
    공격대상의 컴퓨터 실행 속도가 느려지거나 동작이 마비되어 서비스 거부 상태로 만듬

    smurfing (스머핑)
    출발지 주소를 공격 대상의 IP로 설정
    네트워크 전체에 ICMP Echo 패킷을 직접 브로드캐스팅 하여 타켓 시스템을 마비시키는 공격

    Land Attack VS smurfing
    편지를 예로 들었을 때,
    랜드 어택은 보내는 주소 = 받는 주소 모두 피해자의 것으로 변경
    편지가 계속 송신 / 수신 되면서 마비
    스머핑은 보내는 주소가 피해자의 것 -> 다수에게 송신
    수 많은 답장이 피해자에게 오게 되는 것

    Ping of death
    큰 사이즈의 패킷을 의도적으로 목표 시스템으로 발생시켜 시스템이 서비스를 할 수 없는 상태
    -> 큰 사이즈의 패킷은 여러개의 작은 패킷으로 쪼개져 전송되기 때문에
    그 과정에서 피해자는 너무 많은 패킷을 전송받게 되면서 서비스 x 됨

    HTTP GET flooding
    DDos 공격기법 중 HTTP 기반의 응용 계층 공격
    과도한 get 메시지를 이용하여 웹서버의 과부하를 유발하는 공격 기술

     

    SYN Flooding

    말 그대로 SYN 패킷이 흘러 넘친다이며 이는 과도한 SYN 패킷을 서버에게 전송 하는 것입니다. 과도한 SYN 패킷을 전송함으로서 Server에게 많은 부하를 발생하게 하여 서버가 제기능을 못하도록 하는 것이 바로 SYN Flooding의 목적입니다

     

    Tear Drop

    보내는 쪽에서 IP 데이터그램을 쪼개고 받는 쪽에서 이를 합치는 정상적으로 일어나야할 과정을 꼬이게 함으로써 대상 컴퓨터가 다운되게 하는 DOS 공격의 일종이다.


    sniffing (스니핑)
    sniff 라는 단어 = 냄새를 맡다, 킁킁거리다 라는 뜻이 있다.
    네트워크 상에 지나다니는 패킷들을 캡처하여 그 안에 있는 내용을 들여다보는 기술
    공격대상에게 직접 공격하지 않고, 데이터만 몰래 들여다보는 수동적인 공격 기법

    spoofing (스푸핑)
    spoof = 속이다, 사기치다 라는 뜻
    인터넷 프로토콜인 TCP/IP의 구조적 결함을 이용해 사용자의 시스템 권한을 획득,
    정보를 빼가는 해킹 수법

    Session hijacking
    TCP 신뢰성 기반의 연결을 이용한 공격 방법으로, 통신 내용을 엿보거나
    세션을 가로채어 정상적인 인증 과정을 무시하고, 불법으로 시스템에 접근할 수 있는 공격

    smishing (스미싱)
    SMS + fishing -> sms로 사람 낚기 느낌
    신뢰할 수 있는 사람 또는 기업이 보낸 것처럼 가장하여 개인 비밀번호를 요구하거나 소액 결제 유도
    요즘은 큐알코드를 이용한 큐싱도 있음

    spear phishing
    위와 유사하지만, 특정 개인이나 회사들을 대상으로 시도하는 피싱

    KEY logger attack
    컴퓨터가 사용자의 키보드 움직임을 탐지해 ID나 패스워드, 계좌번호 등과 같은 개인의
    중요한 정보를 몰래 빼가는 해킹 공격

    웜바이러스
    스스로를 복제하는 악성 소프트웨어 컴퓨터 프로그램

    XSS (크로스 사이트 스크립트)
    공격자가 게시판에 악성 스크립트를 작성하여 삽입하고,
    사용자가 그것을 보았을 때 이벤트가 발생하여,
    사용자의 쿠키정보, 기타 정보를 특정 사이트로 전송하거나 정보를 탈취하는 공격 기법

    SQL injection
    웹 애플리케이션에서 입력데이터에 대한 유효성을 검증하지 않을 경우,
    공격자가 입력창 및 URL에 SQL문을 삽입하여 DB로부터 정보를 열람,
    조작 할 수 있는 취약점 공격기법

    제로데이 공격
    컴퓨터 소프트웨어의 취약점을 이용, 해당 취약점에 대한 패치가 나오지
    않았을 때 이루어지는 보안 공격

    spyware (스파이웨어)
    사용자의 동의 없이 설치되어 컴퓨터의 정보를 수집하고 전송하는 악성 소프트웨어

    랜섬웨어
    악성코드의 한 종류로 감염된 시스템의 파일들을 암호화하여 복호화할 수 없도록
    만든 후 복호화 프로그램 제공 대가로 피해자들에게 돈을 내놓으라고 하는 것

    입력 데이터 검증 및 표현의 보안 약점

     

    DOS 공격 (Denial of Service)

    시스템을 악의적으로 공격해 해당 시스템의 자원을 부족하게 하여 원래 의도된 용도로 사용하지 못하게 하는 공격 방법

     

    DDOS 공격

    공격자를 분산 배치하여 동시에 특정 시스템을 공격하는 기법

     

    CSRF (사이트 간 요청 위조)

    사용자가 자신의 의지와는 무관하게 공격자가 의도한 행위 (수정, 삭제, 등록 등) 을 특정 웹사이트에 요청하게 하는 공격

     

     

    2020년 실기 1회 기출문제

    다음에서 공통으로 설명하는 네트워크 공격 유형에 해당하는 용어를 쓰시오.

    () 은 네트워크 패킷의 출발지 IP를 변조하여 공격 대상의 자원을 소모시키는 공격으로 기밀성과 가용성을 침해하는 공격 유형이다.

    () 은 출발지 IP 주소와 도착지 IP 주소가 동일한 특징이 있어 네트워크 모니터링 도구인 와이어샤크의 컨버세션 기능을 통해 동일 IP 주소 간에 통신 여부를 체크하는 방법으로 공격 여부를 확인할 수 있다. 해당 패킷의 출발지와 도착지 IP 주소가 동일한 패킷을 기본적으로 차단하여 () 을 막을 수 있다.

    패킷 분석의 예

    NO Source IP Destination IP Protocol Length
    11 1.1.1.130 1.1.1.130 ICMP 42

    답: LAND Attack

     

    2020년 실기 2회 기출문제

    소프트웨어 보안의 취약점 중 하나인 SQL Injection 에 대해 간략히 설명하시오.

    답: SQL Injection은 클라이언트 (사용자) 의 입력값 등 외부 입력값이 SQL 쿼리에 삽입되어 공격하는 것을 의미한다. 

     

    2020년 실기 4회 기출문제

    네트워크 공격 기법 중 스니핑의 정의에 대해 간략히 설명하시오.

    답: 네트워크의 중간에서 남의 패킷 정보를 도청하는 해킹 유형의 하나이다.

     

    54. 양방향 암호화 방식 - 약술형 혹은 단답식 가능

    암호화 방식에는 양방향과 단방향이 있다. 단뱡항은 HASH 알고리즘을 쓰고, 양방향은 개인키 혹은 공개키 방식을 쓴다.

     

    암호화 - 양방향 - 개인키

                         - 공개키

              - 단방향 - HASH

     

    - 개인키 암호화 기법 (Private Key Encryption): 동일한 키로 데이터를 암호화하고 복호화한다. 한 번에 하나의 데이터 블록을 암호화하는 블록 암호화 방식 (DES, SEED, AES, ARIA가 해당) 과 평문과 동일한 길이의 스트림을 생성하여 비트 단위로 암호화하는 스트림 암호화 방식 (LFSR, RC4가 해당) 으로 분류된다.

    - 공개키 암호화 기법 (Public Key Encryption): 데이터를 암호화할 때 사용하는 공개키 (Public Key)는 데이터베이스 사용자에게 공개하고, 복호화할 때의 비밀키(Secret Key) 는 관리자가 비밀리에 관리한다. 공개키 암호화 기법은 비대칭 암호 기법이라고도 하며, 대표적으로는 RSA가 있다. 

     

    55. 해시 - 단답식 혹은 약술형 가능

    해시 (Hash) 는 임의의 길이의 입력 데이터나 메시지를 고정된 길이의 값이나 키로 변환하는 것을 의미한다.

    ex. SHA 시리즈, MD5

     

    2020년 실기 1회 기출문제

    입력 데이터로부터 128 비트의 축약 메시지인 해시 값을 생성하는 해시 함수로 주로 프로그램이나 파일이 원본 그대로인지를 확인하는 무결성 검사 용도로 많이 쓰이고 있다. 1990년 R. Rivert가 MD4를 일방향 해시함수로 개선한 알고리즘이 무엇인지 쓰시오.

    답: MD5

     

    10장 응용 SW 기초 기술 활용

     

    56. 운영체제 - 단답식 혹은 약술형 가능

    운영체제는 컴퓨터 시스템의 자원들을 효율적으로 관리하며, 사용자가 컴퓨터를 편리하고 효과적으로 사용할 수 있도록 환경을 제공하는 여러 프로그램의 모임이다.

     

    운영체제의 종류

    Windows: 마이크로소프트사가 개발한 운영체제

    UNIX: AT&T 벨 연구소, MIT, General Electric이 공동 개발한 운영체제

    LINUX: 리누스 토발즈가 UNIX를 기반으로 개발한 운영체제

    MacOS: 애플사가 UNIX를 기반으로 개발한 운영체제

     

    cf) 안드로이드 (Android): 구글에서 만든 스마트폰 운영체제

     

    2020년 실기 2회 기출문제

    리눅스 커널을 기반으로 동작하며 자바와 코틀린 언어로 개발된 핸드폰이나 소형기기에 사용되는 오픈소스 플랫폼인 모바일 운영체제가 무엇인지 쓰시오.

    답: 안드로이드

     

    2020년 실기 4회 기출문제

    1960년대 말에 미국 AT&T 벨 (Bell) 연구소에서 개발한 운영체제가 무엇인지 쓰시오.

    답: 유닉스

     

    57. 운영체제의 성능 평가 기준 - 단답식 가능

    처리 능력 (Throughput): 일정 시간 내에 시스템이 처리하는 일의 양

    반환 시간 (Turn Around Time): 시스템에 작업을 의뢰한 시간부터 처리가 완료될 때까지 걸린 시간

    사용 가능도 (Availability): 시스템을 사용할 필요가 있을 때 즉시 사용 가능한 정도

    신뢰도 (Reliability): 시스템이 주어진 문제를 정확하게 해결하는 정도

     

    58. 커널 vs. 쉘 - 단답식 혹은 약술형 가능

    - 커널 (Kernel): UNIX의 가장 핵심적인 부분이다. 프로세스 관리, 기억장치 관리, 파일 관리, 입출력 관리, 프로세스간 통신, 데이터 전송 및 변환 등 여러 가지 기능을 수행한다.

    - 쉘 (Shell): 사용자의 명령어를 인식하여 프로그램을 호출하고 명령을 수행하는 명령어 해석기이다. 시스템과 사용자 간의 인터페이스를 담당한다.

     

    59. 기억장치 관리 배치 전략 - 단답식 혹은 약술형 가능

    배치 전략은 새로 반입된느 프로그램이나 데이터를 주기억장치의 어디에 위치시킬 것인지 결정하는 전략이다.

     

    최초 적합 (First Fit): 프로그램이나 데이터가 들어갈 수 있는 크기의 빈 영역 중에서 첫 번째 분할 영역에 배치시는 방법이다.

    최적 적합 (Best Fit): 프로그램이나 데이터가 들어갈 수 있는 크기의 빈 영역 중에서 단편화를 가장 작게 남기는 분할 영역에 배치시키는 방법이다.

    최악 적합 (Worst Fit): 프로그램이나 데이터가 들어갈 수 있는 크기의 빈 영역 중에서 단편화를 가장 많이 남기는 분할 영역에 배치시키는 방법이다.

     

    영역 번호 영역 크기 상태
    1 5K 공백
    2 14K 공백
    3 10K 사용 중
    4 12K 공백
    5 16K 공백

    10 K 프로그램을 적재할 때,

    최초 적합: 2번

    최적 적합: 4번

    최악 적합: 5번

     

    60. 프로세스 - 약술형 혹은 단답형

    프로세스 (Process) 는 일반적으로 프로세서 (처리기, CPU) 에 의해 처리되는 사용자 프로그램, 시스템 프로그램, 즉 실행 중인 프로그램을 의미한다.

     

    cf) 운영체제의 스케줄링 기법

     

    2020년 실기 1회 기출문제

    운영체제의 비선점 프로세스 스케줄링 기법 중 하나인 HRN (Highest Response-ration Next) 은 어떤 작업시 서비스받을 시간과 그 작업이 서비스를 기다린 시간으로 결정되는 우선순위에 따라 CPU를 할당하는 기법이다. HRN의 우선순위를 결정하는 계산식을 쓰시오.

    답: (대기시간 + 서비스 시간) / 서비스 시간

     

    61. 프로세스 상태 전이 - 단답형

    프로세스 상태 전이는 프로세스가 시스템 내에 존재하는 동안 프로세스의 상태가 변하는 것을 의미한다.

     

    프로세스 상태 전이도 그림 출처 | https://itwiki.kr/w/%ED%94%84%EB%A1%9C%EC%84%B8%EC%8A%A4_%EC%83%81%ED%83%9C

     

    2020년 실기 4회 기출문제

    다음의 프로세스 상태 전이도의 (1), (2), (3) 에 해당하는 용어를 쓰시오.

    답: (1) 준비 (2) 실행 (3) 대기

     

    62. 키의 개념 및 종류 - 약술형 혹은 단답형

    키 (Key) 란 데이터베이스에서 조건에 만족하는 튜플을 찾거나 순서대로 정렬할 때 기준이 되는 속성을 말한다.

    (아래의 '릴레이션'은 테이블과 거의 유사한 개념이다.)

     

    상세 설명 참고 | https://jerryjerryjerry.tistory.com/49

     

    - 슈퍼키: 한 릴레이션 내에 있는 속성들의 집합으로 구성된 키를 말한다. 슈퍼키는 릴레이션을 구성하는 모든 튜플에 대해 유일성 (Unique)은 만족하지만 최소성 (Minimality) 은 만족하지 못한다.

    ex. <학생> 테이블이 있을 때 학번이나 주민번호는 사람을 학생들에게 절대 겹치지 않는 것이므로 유일성을 가진다. 여러 개를 조합할 수도 있다. 이름 + 주소를 조합했을 때 그 사람을 특정할 수 있다면 그것도 유일성을 가진다. 그러나 학번 하나로만 할 수 있는데, 이름 + 주소로 조합해서 2개의 정보를 사용하면 최소한의 정보를 사용한 것이 아니므로 최소성에 맞지 않는다.

     

    - 후보키: 릴레이션을 구성하는 속성들 중에서 튜플을 유일하게 식별하기 위해 사용되는 속성들의 부분집합이다. 후보키는 유일성과 최소성을 모두 만족한다.

     

    - 기본키: 후보키 중에서 특별히 선정된 키로 중복값을 가질 수 없다. 기본키는 후보키의 성질을 갖는다. 즉, 유일성과 최소성을 가지며 튜플을 식별하기 위해 반드시 필요한 키이다.

     

    - 대체키: 대체키는 후보키 중에서 선정된 기본키를 제외한 나머지 후보키를 의미한다.

    - 외래키: 다른 릴레이션의 기본키를 참조하는 속성 또는 속성들의 집합을 의미한다.

     

    63. 무결성 - 약술형 혹은 단답형

    무결성 (Integrity) 란 데이터베이스에 저장된 데이터 값과 그것이 표현하는 현실 세계의 실제값이 일치하는 정확성을 의미한다. 무결성 제약 조건은 데이터베이스 내에 들어 있는 데이터의 정확성을 보장하기 위해 부정확한 자료가 데이터베이스 내에 저장되는 것을 방지하기 위한 제약 조건을 말한다.

     

    무결성의 종류

    - 개체 무결성 (Entity Integrity): 기본 테이블의 기본키를 구성하는 어떤 속성도 Null 값이나 중복값을 가질 수 없다.
    - 도메인 무결성 (Domain Integrity): 주어진 속성 값이 정의된 도메인에 속한 값이어야 한다.
    - 참조 무결성 (Referential Integrity): 외래키 값은 Null 이거나 참조 릴레이션의 기본키 값과 동일해야한다. 즉, 릴레이션은 참조할 수 없는 외래키 값을 가질 수 없다.
    - 사용자 정의 무결성: 속성 값들이 사용자가 정의한 제약조건에 만족해야한다.
    - NULL 무결성: 릴레이션의 특정 속성 값이 NULL 이 될 수 없도록 한다.
    - 고유 (Unique) 무결성: 릴레이션의 특정 속성에 대해 각 튜플이 갖는 속성값들이 서로 달라야한다.
    - 키 (Key) 무결성: 하나의 릴레이션에는 적어도 하나의 키가 존재해야한다.
    - 관계 (Relationship) 무결성: 릴레이션에 어느 한 튜플의 삽입 가능 여부 또는 한 릴레이션과 다른 릴레이션의 튜플들 사이의 관계에 대한 적절성 여부를 지정한 규정이다.

     

    64. 로킹 - 약술형 혹은 단답형

    데이터베이스 병행 제어를 위해 트랜잭션이 접근하고자 하는 데이터를 잠가서 (lock) 다른 트랜잭션이 접근하지 못하도록 하는 기법이다. 트랜잭션이 어떤 데이터에 접근하고자 할 때 로킹을 수행한다. (음식점 화장실에 키를 가지고 가서 잠그고 들어갔다고 생각하면 된다.) 로킹이 되어있는 데이터에는 다른 트랜잭션이 접근할 수 없다.

     

    65. IPv6 - 단답형

    IP 주소 (Internet Protocol Address) 는 인터넷에 연결된 모든 컴퓨터 자원을 구분하기 위한 고유한 주소이다.

    현재 사용중인 32bit IP 주소 체계인 IPv4 는 주소 부족 문제가 있었다. (주소 고갈로 NAT, DHCP, Subnet 같은 기술도 생겼다.) 그래서 IPv4의 주소 고갈의 대응책으로 IPv6가 개발되었다. 128bit 의 주소체계이며, 자료 전송이 빨라졌다.

     

    2020년 실기 4회 기출문제

    IP 주소 체계 중 하나인 IPv4 의 주소 고갈의 대응책으로서 새로 개발된 주소 체계는 무엇인지 쓰시오.

    답: IPv6 

     

    2020년 실기 4회 기출문제

    컴퓨터 네트워킹에서 쓰이는 용어로서 IP 패킷의 TCP/UDP 포트 숫자와 소스 및 목적지의 IP 주소 등을 재기록하면서 라우터를 통해 네트워크 트래픽을 주고 받는 기술로써 네트워크 주소 변환이라고 하는 용어는 무엇인지 쓰시오.

    답: NAT

     

    ※ NAT는 Network Address Translation이다. 문제에서 네트워크 주소 변환이라고 했는데, 그대로이다.

     

    66. DNS - 단답형 혹은 약술형

    도메인 네임 (Domain Name) 은 숫자로된 IP 주소를 사람이 이해하기 쉬운 문자 형태로 표현한 것이다. 예를 들어, 192.02.44 라는 숫자 주소를 www.amazon.com  이라는 도메인 이름으로 바꿔서 표현하는 것이다.

     

    문자로된 도메인 네임을 컴퓨터가 이해할 수 있는 IP 주소로 변환하는 역할을 하는 시스템을 DNS (Domain Name System) 이라고 하며 이런 역할을 하는 서버를 DNS 서버라고 한다.

     

    67. OSI 7 계층 - 단답형

    OSI (Open Sytem Interconnection) 참조 모델은 다른 시스템 간의 원활한 통신을 위해 ISO (국제표준화기구) 에서 제안한 통신 규약 (Protocol) 이다. 개방형 시스템 (Open System) 간의 데이터 통신 시 필요한 장비 및 처리 방법 등을 7단계로 표준화하여 규정했다.

     

    OSI 7계층

    물리 계층 (Physical Layer) - 데이터 링크 계층 (Data Link Layer) - 네트워크 계층 (Network Layer) - 전송 계층 (Transport Layer) - 세션 계층 (Session Layer) - 표현 계층 (Presentation Layer) - 응용 계층 (Application Layer) 이다.

     

    물데네전세표응! 으로 많이 외운다.

     

    - 물리 계층: 전송에 필요한 두 장치 간의 실제 접속과 절단 등 기계적, 전기적, 기능적, 절차적 특성에 대한 규칙을 정의한다. 물리적 전송 매체와 전송 신호 방식을 정의한다.

    - 데이터 링크 계층: 두 개의 인접한 개방 시스템들 간에 신뢰성 있고 효율적인 정보 전송을 할 수 있도록 한다. 프레임의 시작과 끝을 구분하기 위한 프레임의 동기화 기능을 한다. 오류의 검출화 회복을 위한 오류 제어 기능을 한다. 프레임의 순차적 전송을 위한 순서 제어 기능을 한다.

    - 네트워크 계층: 개방 시스템들 간의 네트워크 연결을 관리하는 기능과 데이터의 교환 및 중계 기능을 한다. 네트워크 연결을 설정, 유지, 해제하는 기능을 한다. 경로 설정, 데이터 교환 및 중계, 트래픽 제어, 패킷 정보 전송을 수행한다.

    - 전송 계층: 논리적 안정과 균일한 데이터 전송 서비스를 제공함으로써 종단 시스템 (End-to-End) 간에 투명한 데이터 전송을 가능하게 한다. 종단 시스템(End-to-End) 간의 전송 연결 설정, 데이터 전송, 연결 해제 기능을 한다. TCP, UCP 등의 표준이 있다.

    - 세션 계층: 송 수신 측 간의 관련성을 유지하고 대화 제어를 담당한다. 대화 구성 및 동기 제어, 데이터 교환 관리 기능을 한다. 송 수신 측 간의 대화 동기를 위해 전송하는 정보의 일정 부분에 체크점을 두어 정보의 수신 상태를 체크하며, 이때의 체크점을 동기점 (Synchronization Point) 라고 한다.

    - 표현 계층: 응용 계층으로부터 받은 데이터를 세션 계층에 보내기 전에 통신에 적당한 형태로 변환하고, 세션 계층에서 받은 데이터는 응용 계층에 맞게 변환하는 기능을 한다. 서로 다른 데이터 표현 형태를 갖는 시스템 간의 상호 접속을 위해 필요한 계층이다.

    - 응용 계층: 사용자 (응용 프로그램 혹은 Application) 가 OSI 환경에 접근할 수 있도록 서비스를 제공한다.

     

    2020년 실기 1회 기출문제

    OSI 7 참조 모델 중 두 장비 간의 전송을 위한 연결이나 전달 등의 인터페이스의 기계적, 전기적, 절차적 특성을 정의하여 비트를 물리적인 매체를 통해 전송하는 계층은 무엇인지 쓰시오.

    답: 물리 계층

     

    68. 프로토콜의 기본 요소 - 단답형

    프로토콜은 서로 다른 기기들 간의 데이터 교환을 원활하게 수행할 수 있도록 표준화시켜 놓은 통신 규약이다.

    프로토콜의 기본 요소는 구문 (Syntax), 의미 (Semantics), 시간 (Timing) 이 있다.

     

    - 구문: 전송하고자 하는 데이터의 형식, 부호화, 신호 레벨 등을 규정한다.

    - 의미: 두 기기 간의 효율적이고 정확한 정보 전송을 위한 협조 사항과 오류 관리를 위한 제어 정보를 규정한다.

    - 타이밍: 두 기기 간의 통신 속도, 메세지의 순서 제어 등을 규정한다.

     

    2020년 실기 1회 기출문제

    통신 프로토콜 (Communication Protocol) 은 컴퓨터나 원거리 통신 자입에서 메시지를 주고 받는 양식과 규칙의 체계이다. 통신 프로토콜을 구성하는 기본 요소 3가지를 쓰시오.

    답: 구문, 의미, 타이밍

     

    2020년 실기 3회 기출문제

    다음 빈칸 () 에 공통으로 들어가기에 가장 적합한 용어를 쓰시오.

    () 의 본래 의미는 외교 분야에서의 의례 또는 의정서를 의미하는 용어였다. 심리학자 톰 마릴은 컴퓨터가 메시지를 전달하고 메시지가 제대로 도착했는지 확인하며, 도착하지 않았을 경우 메시지를 재전송하는 일련의 방법을 가리켜 '기술적 은어' 라는 뜻으로 () 라 불렀다.

    답: 프로토콜

     

    69. TCP/IP - 단답형

    TCP/IP (Transmission Control Protocol / Internet Procotol) 은 인터넷에 연결된 서로 다른 기종의 컴퓨터들이 데이터를 주고받을 수 있도록 하는 표준 프로토콜이다.

    TCP/IP는 OSI 7계층과 비슷하게 응용 계층, 전송 계층, 인터넷 계층, 네트워크 액세스 계층으로 이루어져있다.

     

    OSI TCP/IP 기능
    응용 계층
    표현 계층
    세션 계층
    응용 계층 응용 프로그램 간의 데이터 송, 수신을 제공한다.
    FTP, SMTP, SNMP, DNS, HTTP 등
    전송 계층 전송 계층 호스트들 간의 신뢰성있는 통신을 제공한다.
    TCP, UDP
    네트워크 계층 인터넷 계층 데이터 전송을 위한 주소 지정, 경로 설정을 제공한다.
    IP, ICMP, IGMP, ARP, RARP
    데이터 링크 계층
    물리 계층
    네트워크 액세스 계층 실제 데이터 (프레임) 을 송수신하는 역할을 한다.
    Ethernet, IEEE 802, HDLC, X.25, RS-232C, ARQ 등

     

    70. 전송 계층의 주요 프로토콜 - 단답형 혹은 약술형

    TCP (Transmission Control Protocol) 와 UDP (User Datagram Protocol)의 차이

    - TCP는 1대1로 악수하고 신뢰성있게 경로를 확립해서 통신하지만, UDP는 데이터 전송 전에 연결 설정을 하지 않아서 신뢰성이 별로 없다. 그냥 보내니까 속도는 빠르다.

     

    TCP와 UDP 비교 그림 출처 | https://mangkyu.tistory.com/15

     

    71. 인터넷 계층의 주요 프로토콜 - 단답형

    IP (Internet Protocol) 전송할 데이터에 주소를 지정하고, 경로를 설정하는 기능을 한다.
    비연결형인 데이터그램 방식을 사용하는 것으로 신뢰성이 보장되지 않는다.
    ICMP (Internet Control Message Protocol, 인터넷 제어 메시지 프로토콜) IP와 조합하여 통신 중에 발생하는 오류의 처리와 전송 경로 변경 등을 위한 제어 메시지를 관리하는 역할을 하며, 헤더는 8 Byte 로 구성된다.
    IGMP (Internet Group Managment Protocol, 인터넷 그룹 관리 프로토콜) 멀티캐스트를 지원하는 호스트나 라우터 사이에서 멀티캐스트 그룹 유지를 위해 사용된다.
    ARP (Address Resolution Protocol, 주소 분석 프로토콜) 호스트의 IP 주소를 호스트와 연결된 네트워크 접속 장치의 물리적 주소 (Mac Address) 로 바꾼다.
    RARP (Reverse Address Resolution Protocol) ARP와 반대로 물리적 주소를 IP 주소로 변환하는 기능을 한다.

     

    2020년 실기 3회 기출문제

    TCP/IP 에서 신뢰성 없는 비연결형 프로토콜인 IP를 대신하여 송신 측으로 네트워크 IP 상태 및 에러 메시지를 전달해주는 프로토콜을 무엇이라고 하는지 영문 약어로 쓰시오.

    답: ICMP

     

    72. 라우팅 프로토콜 - 단답형

    라우팅 (Routing, 경로 제어) 는 송 수신 측 간의 전송 경로 중에서 최적 패킷 교환 경로를 결정하는 기능이다. 라우팅은 경로 제어표 (Routing Table) 을 참조해서 이루어지며, 라우터에 의해 수행된다.

    - RIP (Routing Information Protocol): 현재 가장 널리 사용되는 라우팅 프로토콜로, 소규모 동종 네트워크 내에서 효율적인 방법이다. 

    - IGRP (Interior Gateway Routing Protocol): RIP 의 단점을 보완하기 위해 만들어 개발된 것으로, 네트워크 상태를 고려하여 라우팅하며, 중규모 네트워크에 적합하다.

    - OSPF (Open Shortest Path First Protocol): 대규모 네트워크에서 많이 사용되는 라우팅 프로토콜로, 라우팅 정보에 변화가 생길 경우 변화된 정보만 네트워크 내의 모든 라우터에 알린다.

    - BGP (Border Gateway Protocol): 자율 시스템 (AS) 간의 라우팅 프로토콜로, EGP 의 단점을 보완하기 위해 개발되었다.

     

    cf) 라우팅 알고리즘: 거리 벡터 알고리즘, 링크 상태 알고리즘

     

    2020년 실기 3회 기출문제

    대규모 네트워크를 안정되게 운영할 수 있는 표준 라우팅 프로토콜로 최적의 경로를 계산할 때 SPF (Shortest path First) 또는 다익스트라 (Dijkstra) 알고리즘을 이용하여 각 목적지까지의 최적 경로를 계산하는 동적 라우팅 프로토콜로 링크 상태 라우팅 프로토콜을 무엇이라고 하는지 영문 약어로 쓰시오.

    답: OSPF

    11장 제품 소프트웨어 패키징

    73. 릴리즈 노트 - 단답형

    릴리즈 노트 (Release Note) 는 개발 과정에서 정리된 릴리즈 정보를 소프트웨어의 최종 사용자인 고객과 공유하기 위한 문서이다. Header, 개요, 목적, 문제 요약, 재현 항목, 수정/개선 내용, 사용자 영향도, SW 지원 영향도, 노트, 면책 조항, 연락처를 적는다.

     

    2020년 실기 1회 기출문제

    릴리즈 노트 (Release Note) 는 고객 편의성을 고려하여 조직의 최종 사용자인 고객과 잘 정리된 릴리즈 정보를 공유하는 문서이다. 릴리즈 노트의 내용으로는 보통 특정 소프트웨어 릴리즈의 최근 변경 사항, 개선 사항 및 버그 수정이 간결히 요약되어 있다. 릴리즈 노트 작성 항목 중 문서 이름 (릴리즈 노트 이름), 제품 이름, 버전 번호, 릴리즈 날짜, 참고 날짜, 노트 버전 등을 기술하는 작성항목이 무엇인지 쓰시오.

    답: 헤더

     

    74. DRM - 단답형 혹은 약술형

    디지털 저작권 관리 (DRM; Digital Right Management) 는 저작권자가 배포한 디지털 콘텐츠가 저작권자가 의도한 용도로만 사용되도록 디지털 콘텐츠의 생성, 유통, 이용까지의 전 과정에 걸쳐 사용되는 디지털 콘텐츠 관리 및 보호 기술이다.

     

    75. 클리어링 하우스 - 단답형 혹은 약술형

    DRM 저작권 관리의 흐름도에 나오는 개념들

    - 클리어링 하우스 (Clearing House): 저작권에 대한 사용 권한, 라이선스 발급, 사용량에 따른 결제 관리 등을 수행하는 곳

    - 콘텐츠 제공자 (Contents Provider): 콘텐츠를 제공하는 저작권자

    - 패키저 (Packager): 콘텐츠를 메타 데이터와 함께 배포 가능한 형태로 묶어 암호화하는 프로그램

    - 콘텐츠 분배자 (Contents Distributor): 암호화된 콘텐츠를 유통하는 곳이나 사람

    - 콘텐츠 소비자 (Customer): 콘텐츠를 구매해서 사용하는 주체

    - DRM 컨트롤러 (DRM Controller): 배포된 콘텐츠의 이용 권한을 통제하는 프로그램

    - 보안 컨테이너 (Security Container): 콘텐츠 원본을 안전하게 유통하기 위한 전자적 보안 장치

     

    76. 형상 관리 - 약술형 혹은 단답형

    형상 관리 (SCM; Software Configuration Management) 는 소프트웨어의 개발 과정에서 소프트웨어의 변경 사항을 관리하기 위해 개발된 일련의 활동이다.

    형상 관리는 품질 보증을 위한 중요한 요소로서 다음과 같은 기능을 수행한다. 형상 식별, 버전 제어, 형상 통제 (변경 관리), 형상 감사, 형상 기록(상태 보고).

     

    버전 관리 도구

    - Subversion (SVN): CVS를 개선한 것으로, 아파치 소프트웨어 재단에서 발표

    - Git: 리누스 토발즈 (Linus Torvalds)가 리눅스 커널 개발에 사용할 관리 도구로 개발한 이후 주니오 하마노 (Junio Hamano) 에 의해 유지보수 되고 있다. 

     

    2020년 실기 2회 기출문제

    다음 빈칸에 공통으로 들어갈 가장 적합한 용어를 쓰시오.

    소프트웨어 개발 과정에서 변경에 대비하기 위한 소프트웨어 () 는 반드시 필요하다. () 는 소프트웨어 품질 보증을 위한 주요한 요소이며, 주 임무는 변경의 통제이다. 소프트웨어 () 란 소프트웨어의 개발 과정에서 발생하는 산출물의 변경 사항을 관리하기 위한 일련의 활동을 말한다. 소프트웨어 리사이클 기간 동안 개발되는 제품의 무결성을 유지하고 소프트웨어 식별, 편성 및 수정을 통제하는 프로세스를 제공한다. 실수의 최소화와 생산성의 최대화가 () 의 궁극적인 목표라고 할 수 있다. 대표적인 () 도구로는 CVS, Subversion, Clear Case 등이 있다.

    답: 형상 관리

     

    2020년 실기 3회 기출문제

    형상 통제에 대해 간략히 설명하시오.

    답: 형상 통제는 형상에 대한 변경 요청이 있을 경우 변경 여부와 변경 활동을 통제하는 것을 말한다.

     

    77. 빌드 자동화 도구 - 단답형

    빌드란 소스 코드 파일들을 컴파일한 후 여러 개의 모듈을 묶어 실행 파일로 만드는 과정이며, 이러한 빌드를 포함하여 테스트 및 배포를 자동화하는 도구를 빌드 자동화 도구라고 한다.

    애자일 환경에서는 하나의 작업이 마무리될 때마다 모듈 단위로 나눠서 개발된 코드들이 지속적으로 통합되는데, 이러한 지속적인 통합 (Continuous Integration) 개발 환경에서 빌드 자동화 도구는 유용하게 활용된다.

     

    - Jenkins: Java 기반의 오픈 소스 형태로, 가장 많이 사용되는 빌드 자동화 도구이다.

    - Gradle: Groovy를 기반으로 한 오픈 소스 형태의 자동화 도구로, 안드로이드 앱 개발 환경에서 사용된다.

     

    78. 신기술 동향 - 약술형 혹은 단답형

    블록체인, 데이터 마이닝, 하둡 등

    (해당 부분 추가 학습을 위해서는 https://computer-choco.tistory.com/442 의 가장 하단의 표들을 참고해주세요!!)

     

    2020년 실기 1회 기출문제

    데이터 마이닝 (Data mining)의 개념을 간략히 설명하시오.

    답: 대량의 데이터에서 실제로 존재하지 않는 정보를 얻어내기 위해 각 데이터의 상관관계를 통계적 분석, 인공지능 기법 등을 통해 통계적 규칙이나 패턴을 찾아내는 것이다.

     

    2020년 실기 4회 기출문제

    다음의 빈칸에 들어갈 알맞은 용어를 쓰시오.

    () 은 분산 환경에서 빅 데이터를 저장하고, 처리할 수 있는 자바 기반의 오픈 소스 프레임 워크이며, 더그 커팅과 마이크 캐퍼렐라가 개발했다. ()은 구글 맵 리듀스를 대체한다.

    답: 하둡

     

    2020년 실기 4회 기출문제

    온라인 금융 거래 정보를 블록으로 연결하여 피투피 (P2P) 네트워크 분산 환경에서 중앙 관리 서버가 아닌 참여자 (피어, Peer) 들의 개인 디지털 장비에 분산, 저장시켜 공통으로 관리하는 방식을 무엇이라 하는지 쓰시오.

    답: 블록체인

     

     

    참고 복원 실기 문제 출처

    기사 퍼스트: http://www.gisafirst.com/board/n1/list.php?tq=1393907668 

    두목넷 강의: https://www.youtube.com/watch?v=g7NVCjinm7k

     

     

    댓글

Designed by Tistory.