정보처리실기 최근4년 + 예상

정보처리실기 최근4년 + 예상

2017년 1회

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

public class Test001{

             public static void main(String[] args){

          int[] a = {3, 4, 10, 2, 5};

        int temp;

        for(int i = 0; i <= 3; i++){

                    for(int j = i + 1; j <= 4; j++){

                if(a[i] < a[j])

                {

                          temp = a[i];

                    a[i] = a[j];

                    a[j] = temp;

                }

            }

        }

        for(int i = 0; i < 5; i++)

                    System.out.println(a[i]);

    }

}

답안

10

5

4

3

2

2. 데이터베이스 시스템에서 데이터의 입력, 갱신, 삭제 등의 이벤트(event)가 발생할 때 마다 자동적으로 수행되는 사용자 정의 프로시저가 무엇인지 쓰시오.

답안

다음 중 한 가지만 쓰면 됩니다.

트리거 또는 Trigger

3. 정보기술(IT)관련 신기술 동향에 관한 다음 설명에 적합한 용어를 쓰시오.

한 번의 로그인으로 개인이 가입한 모든 사이트를 이용할 수 있게 해주는 시스템을 말한다. 개인의 경우, 사이트에 접속하기 위하여 아이디와 패스워드는 물론 이름, 전화번호 등 개인정보를 각 사이트마다 일일이 기록해야 하던 것이 한 번의 작업으로 끝나므로 불편함이 해소되며, 기업에서는 회원에 대한 통합관리가 가능해 마케팅을 극대화시킬 수 있다는 장점이 있다.

답안

다음 중 한 가지만 쓰면 됩니다.

SSO, Single Sign-On, Single Sign On, 싱글 사인온, 싱글 사이인 온, OTP, One-Time Password, One Time Password, 일회용 패스워드

4. 정보기술(IT)관련 신기술 동향에 관한 다음 설명에 적합한 용어를 쓰시오.

시스템을 악의적으로 공격해 해당 시스템의 자원을 부족하게 하여 원래 의도된 용도로 사용하지 못하게 하는 공격이다. 특정 서버에게 수 많은 접속 시도를 만들어 다른 이용자가 정상적으로 서비스를 이용하지 못하게 하거나, 서버의 TCP 연결을 바닥내는 등의 공격이 이 범위에 포함된다. 수단, 동기, 표적은 다양할 수 있지만, 보통 인터넷 사이트 또는 서비스의 기능을 일시적 또는 무기한으로 방해 또는 중단을 초래한다.

답안

다음 답안 중 한 가지만 쓰면 됩니다.

DoS, Denial of Service, 서비스 거부 공격, DDoS, Distibuted Denial of Service, 분산 서비스 거부 공격

5. 다음 전산영어와 관련한 다음 설명의 괄호에 가장 부합하는 답안을 영문 Full-name 또는 약어로 쓰시오. (단, 답안은 반드시 영문으로 기재하여야 합니다.)

(   ) 스케줄링은 가장 간단한 스케줄링 알고리즘이다. 이 방식에서는 CPU를 제일 처음으로 요청한 프로세스에게 CPU가 우선 할당됩니다.

(    )는 기타 편파적인 특혜 없이 고객 또는 클라이언트의 요청이 도착하는 순서에 따라 수행하는 서비스 정책입니다. 이 정책은 판매 주문을 처리하거나 레스토랑의 좌ㅓㄱ 배치를 결정할 떄, 또는 택시 승차장 등에서 사용될 수 있습니다.

답안

다음 중 한 가지만 쓰면 됩니다.

FCFS, First Come First Served, FIFO, First In First Out

6. 트랜잭션의 특성에는 원자성, 일관성, 독립성, 영속성이 있다. 이중에서 일관성과 영속성의 개념을 간단히 서술하시오.

답안

일관성 : 트랜잭션 수행이 성공적으로 완료되면 언제나 일관성있는 데이터베이스 상태로 변환한다.

영속성 : 트랜잭션의 실행이 성공적으로 실행 완료된 후에는 시스템에 오류가 발생하더라도 트랜잭션에 의해 변경된 내용은 계속 보존되어야 한다.

7. 다음 전산영어와 관련한 다음 설명에 가장 부합하는 답안을 영문 Full-name 또는 약어로 쓰시오.

이것은 전통적인 PSTN 회선 전송망이 아니라 IP를 사용해 음성 데이터를 패킷 형태로 송신하는 것을 통해 사용자가 인터넷을 전화 통화용 송신매체로 사용할 수 있도록 하는 하드웨어 및 소프트웨어 분류를 말한다.

답안

각 문항별로 제시된 답안 중 한 가지만 쓰면 됩니다.

Voice over Internet Protocol, VoIP, VOIP

8. 데이터베이스와 관련한 다음 <처리 조건>에 부합하는 SQL문을 작성하시오.

답안 : INSERT INTO 학생 VALUES(98170723, ‘한국산’, 3, ‘경영학개론’, ‘?-1234-1234’);

9. 정보기술(IT)관련 신기술 동향에 관련한 다음 설명의 괄호에 적합한 용어를 쓰시오.

(   )은(는) 합법적으로 소유하고 있던 사용자의 도메인을 탈취하거나 DNS 이름을 속여 사용자들이 진짜 사이트로 오인하도록 유도하여 개인 정보를 훔치는 신종 인터넷 사기 수법이다. 피싱이 금융 기관 등의 웹 사이트에서 보낸 이메일로 위장하여 링크를 유도해 개인의 인증 번호나 신용카드 번호, 계좌 정보 등을 빼내는 반면, (   )은(는) 아예 해당 사이트가 공식적으로 운영하고 있는 도메인 자체를 탈취한다. 사용자들은 늘 이용하는 사이트로 인식하여 의심하지 않고 개인 ID, 패스워드, 계좌 정보 등을 노출하는 것이 특징이다.

답안 : 파밍 또는 Pharming

10. 정보기술(IT)관련 신기술 동향에 관련한 다음 설명의 괄호에 적합한 용어를 쓰시오.

스마트폰이 곁에 없을 때 불안감이나 두려움을 느끼는 증상을 말한다. 전 세계에 스마트폰이 폭발적으로 보급되고 스마트폰에 대한 의존성이 높아지면서 나타난 현상으로, 통신기기와 잠시 떠어지게 되면 의사소통이 단절될 수 있다는 두려움, 정보 접근이 어려워질 수 있다는 불안감 등으로 나타난다.

답안 : 노모포비아 또는 Nomophobia

11. 다음 c언어로 구현된 프로그램에서 괄호 (1)에 해당하는 가장 적합한 변수(Variable)나 조건식을 C언어 코드 형식으로 쓰시오.

#include <stdio.h>

main()

{

             int num[10];

    int min = 9999;

    int i;

    for (i = 0; i < 10; i++) {

          scanf(“%d”, &num[i]);

    }

    for (i = 0; i < 10; i++) {

          if (min > (   1   )) {

                    min = num[i];

        }

    }

    printf(“가장 작은 값은 %d이다.”, min);

}

답안 : num[i]

12. 알고리즘 구현과 관련된 용어 중 시간복잡도(time complexity)에 대해 간단히 서술하시오.답안

알고리즘의 소요 시간을 정량화하기 위해 알고리즘이 처리해야 할 연산의 수가 증가할 때 시간이 증가하는 대략적인 패턴을 수치화한 것이다.

13. 정보기술(IT)관련 신기술 동향에 관련한 다음 설명의 괄호에 적합한 용어를 쓰시오.

미국의 GPS, 유렵의 갈릴레오, 위치결정시스템과 유사한 러시아의 전파 위성 항법 시스템이다. 미국의 상업 및 군사용으로 개발된 GPS는 CDMA 방식으로 사용하지만 이것은 FDMA 방식을 사용한다.

답안

다음 중 한 가지만 쓰면 됩니다.

글로나스, GLONASS

14. 데이터베이스와 관련한 다음 <처리 조건>에 부합하는 SQL문이 완성되도록 괄호에 적합한 옵션을 쓰시오.

<처리 조건>

<학생> 테이블을 제거한다.

<학생> 테이블을 참조하는 모든 데이터보 함께 제거한다.

<SQL 문>

DROP TABLE 학생 (       );

답안 : CASCADE

15. 다음 전산영어와 관련한 한글 설명에 가장 부합하는 답안을 영문 Full-name 또는 약어로 쓰시오.

실제 촬용한 화면에 가상의 정보를 부가하여 보여주는 기술이다. 이것은 편리할 뿐만 아니라 감성적 측면에서의 만족도도 대단히 높기 때문에 방송은 물론 게임, 교육, 오락, 패션 등 다양한 분야에서 응용이 가능하다. 스포츠 중계 시 등장하는 선수가 소속된 국가나 선수의 정보를 보여주거나 화장한 자신의 모습을 미리 보고, 옷도 가상으로 입어보고 구매할 수 있다. 모바일 분야에서는 위치기반 서비스(LBS) 분야게서 이용이 활발하다. 스마트폰으로 거리를 비추면 커피숍이나 약국 등의 정보가 화면에 부가적으로 표시되는 것이 그 예이다.

답안

각 문항별로 제시된 답안 중 한 가지만 쓰면 됩니다.

Augmented Reality, AR, Mixed Reality, MR

2017년 2회

1. 다음 C언어로 구현된 100을 넘지 않는 소수의 개수를 구하는 프로그램에서 괄호 (1)에 해당하는 가장 적합한 변수(Variable)나 조건식을 C언어 코드 형식으로 쓰시오.

#include<stdio.h>

intisprime(int number)

{

             int i;

    for(i = 2; i < number; i++)

          if (  (   1   )  )

                    return0;

        return1;

}

intmain()

{

             int number = 100, cnt – 0, i;

    for(i = 2; i < number; i++)

          cnt = cnt + isprime(i);

    printf(“%d를 넘지 않는 소수는 %d개입니다.\n”, number, cnt);

    return0;

}

답안 : number % i == 0

해설

2. 다음이 설명하는 객체지향 기법의 기본 원칙은 무엇인지 쓰시오.

정보 은닉(Information Hiding)이라고도 불린다.

객체의 상세한 내용을 객체 외부에 감추고 메시지를 통하여 다른 객체와 상호작용한다.

구현부가 변경되더라도 변경의 영향을 최소화할 수 있다.

답안

다음 중 한 가지만 쓰면 됩니다.

캡슐화, Encapsulation

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

public class Tes001{

             public static void main(String[] args){

          INT A = 0, SUM = 0;

        While (a < 10)

        {

                    a++;

            if(a % 2 == 1)

                continue;

            sum += a;

        }

        system.out.println(sum);

    }

}

정답: 30

4. 다음 괄호 (   ) 안에 공통적으로 들어갈 가장 적합한 용어를 쓰시오.

(   )은 바이러스 코드 안에 (   )이라는 키워드가 여러 번 등장하므로 붙여진 이름이다. 2010년 6월 벨라루스에서 처음 발견되었으며, 원자력 발전소와 송, 배전망, 화학 공장, 송유, 가스관과 같은 산업 기반 시설에 사용되는 시스템에 침투하여 오작동을 유도하는 명령 코드를 입력해서 시스템을 마비하게 하는 악성 코드이다. 

답안

다음 답안 중 한 가지만 쓰면 됩니다.

Stuxnet, 스턱스넷

5. 이상(Anomaly) 현상이 발생하는 원인과 종류 3가지를 쓰시오.

원인 :

종류 :

원인 : 테이블에서 일부 속성들의 종속으로 인해 데이터의 중복이 발생하고, 이 중복(Redundancy)으로 인해 테이블 조작 시 문제가 발생하는 현상 – 종류- 삽입 이상(Insertion Anomaly)- 삭제 이상(Deletion Anomaly)- 갱신 이상(Update Anomaly)

6. 다음 신기술 동향과 관련된 설명에 가장 부합하는 용어를 쓰시오.

재난현장과 같이 별도의 고정된 유선망을 구축할 수 없는 장소에서 모바일 호스트(Mobile Host)만을 이용하여 구성한 네트워크로, 망을 구성한 후 단기간 사용되는 경우나 유선망을 구성하기 어려운 경우에 적합하다. 유선망과 기지국이 필요 없고 호스트의 이동에 제약이 없어 빠른 망 구성과 저렴한 비용이 장점이다.

다음 중 한 가지만 쓰면 됩니다. 답: ad-hoc, ad-hoc 네트워크, 애드혹

7. 다음 괄호 (1)과 (2)에 들어갈 가장 적합한 용어를 쓰시오.

데이터에 관한 데이터로 정의할 수 있다. (   1   )는 MP3 파일, 도서관의 장서 또는 위성사진과 같은 이해관계의 객체들을 위한 문맥을 자원기술의 관점에서 분명하게 표현한다. (   1   )의 표맷에는 MARC, ONIX, MODS 등이 있다. (   1   )의 상호운용성을 확보하기 위한 방법에는 자원을 하나의 표준적인 (   1   )로 통합하여 표현하는 방법, 자원의 특성을 감안하여 다양한 (   1   )형식과 기술 구조를 인정하고 상호 매핑을 통해 해결하는 방법. (   2   )에 의한 방법이 있따. (   2   )은 (   1   )의 등록과 인증을 통해 (   1   )를 유지 및 관리하며, (   1   )의 명세를 공유하는 레지스트리이다.

답안

각 문항별로 제시된 답안 중 한 가지만 쓰면 됩니다.

메타 데이터, Metadata

MDR, Meta Data Registry, 메타 데이터 레지스트리

8. 다음 괄호 (   ) 안에 공통으로 들어갈 가장 적합한 용어를 쓰시오.

백업은 원본이 손상되거나 잃어버릴 경우 대비하여 원본 자료를 미리 복사하는 과정이다.

백업의 종류에는 젼체 백업, (    ) 백업, 차등 백업이 있다.

전체 백업은 변경 사항 유무에 관계엇이 전체 데이터를 백업하는 방법으로, 백업에 필요한 시간과 용량이 가장 많이 소요되지만 가장 간단하게 복구할 수 있다는 장점이 있다.

(   ) 백업은 전체 백업 또는 (   ) 백업이 수행된 후 변경된 사항을 선택적으로 백업하는 방식으로, 전체 백업보다 백업 데이터량이 적고 백업 소요 시간이 짧다는 장점이 있으나 전체 백업에 종속적이라는 단점이 있다. (   ) 백업이 많을 수록 복구에 오랜 시간이 소요되므로 최소한 일주일에 1회 이상 전체 백업을 수행한느 것이 권장된다.

차등 백업은 전체 백업 이후의 변경 사항을 모두 백업하는 방식으로, (   ) 백업보다 백업 데이터량이 커진다는 단점이 있지만 복구 시 전체 백업본(full backup)과 차등백업본을 각각 하나씩만 필요로 하므로 더 빠른 시간 안에 복구가 가능하다는 장점이 있다.

답안 : 증분 또는 Incremental

9. 트랜잭션은 데이터베이스에서 하나의 논리적 기능을 수행하기 위한 일련의 연산 집합으로서 작업의 단위가 된다. 트랜잭션의 연산 ROLLBACK과 COMMIT 중 COMMIT의 개념을 간략히 설명하시오.

답안 : COMMIT 연산은 트랜잭션 처리가 정상적으로 종료되어 트랜잭션이 수행한 변경 내용을 데이터베이스에 반영하는 연산이다.

10. 다음 <보기>에 제시된 데이터베이스 설계 5단계를 순서대로 쓰시오.

<보기>

개념적 설계, 요구 사항 분석, 물리적 설계, 논리적 설계, 구현

답안 : 요구 사항 분석, 개념적 설계, 논리적 설계, 물리적 설계, 구현

11. 비상상태 또는 업무중단 시점으로부터 업무가 복귀되어 다시 정상가동 될 때 까지의 시간을 의미하는 용어를 쓰시오.

답안  다음 중 한 가지만 쓰면 됩니다.  목표 복구 시간, RTO, Recovery Time Objective

12. 다음 괄호 (1)과 (2)에 들어갈 가장 적합한 용어를 영문 약어(약자)로 쓰시오.

답안

SCP

SCE

13. 다음 전산영어와 관련한 다음 설명의 괄호에 가장 부합하는 답안을 영문 Full-name 또는 약어로 쓰시오. (단, 답안은 반드시 영문으로 기재하여야 합니다.)

(   )은 특히 컴퓨터 시스템에 의한 인간 지능 프로세스의 시뮬레이션이다. 이러한 과정에는 학습, 추론 및 자체 연결이 포함된다. (   )의 특별한 응용 프로그램은 전문가 시스템, 음성 인식, 머신 비젼 등을 포함한다. (   )은 컴퓨터가 인간처럼 행동하는 것과 관련된 컴퓨터 과학의 영역이다. 이 용어는 1956년 메사추세츠 공과 대학의 존 매커시에 의해 만들어졌다. (    )은 게임, 전문가 시스템, 자연 언어, 신경 회로, 로봇 공학을 포함한다. 답안  다음 중 한 가지만 쓰면 됩니다.  AI, Artificial Intelligence

14. 다음 내용이 설명하는 가장 적합한 용어를 영문 완전이름(Full-Name) 또는 영문 약어(약자)로 쓰시오.

다차원으로 이루어진 데이터로부터 통계적으로 요약 정보를 분석하여 의사결정에 활용하는 방식으로, 데이터웨어하우스나 데이터 마트와 같은 시스템과 상호 연관되는 정보 시스템이다. 중간 매개체 없이 이용자들이 직접 컴퓨터를 이용하여 데이터에 접근하는 데 있어 필수적인 시스템이라 할 수 있다.  답안  다음 중 한 가지만 쓰면 됩니다.  OLAP, Online Anlytical Processing

15. 다음 전산영어와 관련한 다음 설명의 괄호 (1), (2), (3)에 가장 부합하는 답안을 영문 Full-name 또는 약어로 쓰시오. 

전통적인 데이터베이스는 ( 1 Field), 레코드, 파일로 구성된다. ( 1Field )는 단일 정보 조각을 의미하며, 레코드는 (  1 Field )로 구성된 한 개의 완성된 집합니다. 파일은 레코드들의 모음이다. (  2 DBMS )는 데이터베이스로부터 정보를 저장하고 수정하여 추출하도록 해주는 프로그램들의 집합니다. (  3 DBA )는 (  2 DBMS )에서 최고 수준의 권한을 갖는다. (  3 DBA )는 자신이 가진 권한의 일정 부분을 다른 사람에게 허용할 수 있으며, 또한 어느 떄라도 이를 쵤회할 수 있는 능력을 보유하고 있다.

답안  각 문항별로 제시된 답안 중 한 가지만 쓰면 됩니다.  1. Field  2. DBMS, Database Managemaent System 3. DBA, Database Administrator

16. 정보보안의 3대 목표인 기밀성(Confidentialliy), 무결성(Integrity), 가용성(Availability)의 개념을 간략히 서술하시오.

답안

기밀성은 시스템 내의 정보와 자원은 인가된 사용자에게만 접근이 허용되는 것을 의미한다.

무결성은 시스템 내의 정보는 인가된 사용자만 수정이 가능한 것을 의미한다.

가용성은 인가받은 사용자는 언제라도 사용 가능한 것을 의미한다.

17. 데이터베이스와 관련한 다음 <처리 조건>에 부합하는 SQL문을 작성하시오.

<처리 조건>

1. 학생 테이블에서 이름이 Scott인 튜플을 삭제하시오.

2. 문자형은 싱글(작은)따옴표로 입력하고 문장의 끝에는 세미콜론(;)을 반드시 표기하시오.

답안

DELETE FROM 학생 WHERE 이름 = ‘Scott’;

2017년 3회

1. 다음 C언어로 구현된 프로그램을 분석하여 그 실행 결과를 쓰시오.

#include<stdio.h>

intres10(){

             return4;

}

intres30(){

             return30 + res10();

}

intres200(){

             return200 + res30();

}

intmain(){

             int result;

    result = res200();

    printf(“%d\n”, result);

}

답안 : 234

2. 데이터 마이닝의 개념과 데이터 마이닝의 기법 중 군집화의 개념을 서술하시오.

답안

데이터 마이닝의 개념 :  데이터 웨어하우스에 저장된 데이터 집합에서 사용자의 요구에 따라 유용하고 가능성 있는 정보를 발견하기 위한 기법이다.

군집화의 개념 : 상호 간에 유사한 특성을 갖는 데이터들을 집단화(Clustering)하는 방법이다.

3. 다음은 배열에 저장된 5개의 자료 중 가장 큰 값과 가장 작은 값을 찾아 출력하는 프로그램을 Java언어로 구현한 것이다. 프로그램을 분석하여 괄호에 해당하는 답안을 <답란>에 쓰시오.

<알고리즘의 이해>

최대값은 자료 중에서 가장 큰 값을 찾는 것이고 최소값은 자료 중에서 가장 작은 값을 찾는 것이다. 최대값을 찾는 방법 중 한 가지는 첫 번째 자료를 가장 작은 값으로 정하고 두 번째 자료부터 차례대로 비교하여 더 큰 값이 나오면 그 값을 최대값으로 하고 다음 자료와 비교하는 과정을 모든 자료에 대해 반복하는 것이다. 최소값을 찾는 방법 중 한 가지는 첫 번째 자료를 가장 큰 값으로 정하고 두 번쨰 자료부터 차례대로 비교하여 더 작은 값이 나오면 그 값을 최소값으로 하고 다음 자료와 비교하는 과정을 모든 자료에 대해 반복하는 것이다.

<코드>

public class Tes02{

             public static void main(String[] args){

          int a[] = {10, 30, 50, 70, 90};

        int i, max, min;

        max = a[0];

        min = a[0];

        for(i = 0; i <5; i++) {

                    if((   ) > max)

                max = a[i];

            if((   ) < min)

                min = a[i]

        }

        System.out.printf(“%d\n”, max);

        System.out.printf(“%d\n”, min);

    }

}

답안 a[i]

4. 다음 신기술 동향과 관련된 설명에 가장 부합하는 용어를 쓰시오.

RADIUS(Remote Authentication Dial In User Service) 데이터를 전송 제어 프로토콜(TCP)이나 전송 계층 보안(TLS)을 이용하여 전송하기 위한 프로토콜이다. ‘RDIUS over TLS’의 준말로, RADIUS는 이용자가 접속을 요구할 때 이용자의 ID나 암호와 같은 정보를 서버로 보내어 식별하고 인증을 수행한다. 하지만 기존 RADIUS가 보안이 취약한 사용자 데이터그램 프로토콜(UDP)에 의존한다는 점과 패킷 적재 부분에서의 보안 취약성을 보완하기 위해 등장하였다. 보안성이 높은 TCP나 TLS을 사용하고, 이용자와 서버 간의 인증서 교환 등을 통한 상호 인증 서비스를 제공한다.  답안 다음 답안 중 한 가지만 쓰면 됩니다.  레드섹, RadSec, 레드섹 프로토콜, RadSec Protocol

5. 다음 신기술 동향과 관련된 설명 중 괄호 (   ) 안에 공통적으로 들어갈 가장 부합하는 용어를 쓰시오.

P2P 네트워크를 이용하여 온라인 금융 거래 정보를 온라인 네트워크 참여자(peer)의 디지털 장비에 분산 저장하는 기술을 의미한다. P2P 네트워크 환경을 기반으로 일정 시간 동안 반수 이상의 디지털 장비에 저장된 거래 내역을 서로 교환, 확인, 승인하는 과정을 거쳐, 디지털 서명으로 동의한 금융 거래 내역만 하나의 블록으로 만든다. 이렇게 생성한 블록은 기존의 (   )에 연결되고, 다시 복사되어 각 사용자의 디지털 장비에 분산 저장된다. 이로 인해 (   )은 기존 금융 회사들이 사용하고 있는 중앙 집중형 서버에 거래 정보를 저장할 필요가 없어 관리 비용이 절감되고, 분산 저장으로 인해 해킹이 난해해짐에 따라 보안 및 거래 안전성도 향상된다. 비트 코인(Bitcoin)이 (   )의 가장 대표적인 예이며, 주식, 부동산 거래 등 다양한 금융거래에 사용이 가능하고, 현관 키 등의 보안과 관련된 분야에도 활용될 수 있어 크게 주목받고 있다.  답안  다음 답안 중 한 가지만 쓰면 됩니다. 블록체인, blockchain

6. 병행 제어의 개념과 병행 제어 기법 중 로킹 기법의 개념을 서술하시오.

답안

병행 제어의 개념 : 다중 프로그램의 이점을 활용하여 동시에 여러 개의 트랜잭션을 병행 수행할 때 실행되는 트랜잭션들이 데이터베이서의 일관성을 파괴하지 않도록 트랜잭션 간의 상호 작용을 제어하는 기술이다.

로킹 기법의 개념 : 주요 데이터의 액세스를 상호 배타적으로 하는 것으로, 트랜잭션들이 어떤 로킹 단위를 액세스하기 전에 Lock(잠금)을 요청해서 Lock이 허락되어야만 그 로킹 단위를 액세스할 수 있도록 하는 기법이다.

7. 5행 5열의 배열에 P의 값을 저장한 후 <처리 조건> 번과 같은 과정으로 두 번 90도 회전하여 결과를 다시 배열 P에 이동하는 알고리즘을 기술한 것이다. 알고리즘이 <처리 조건>에 따라 처리될 수 있는 가장 효율적인 알고리즘으로 구현될 수 있도록 괄호 (), (), ()에 해당하는 답안을 각각 <답란>에 쓰시오.

답안

Q[L],[Y]   P[L],[Y]

8. 관계대수에서 사용되는 순수 관계 연산자 중 DIVISION에 대한 설명이다. 다음 괄호 (   ) 안에 들어갈 알맞은 기호를 쓰시오.

두 릴레이션 R(X)와 S(Y)에 대해 YX이고 X-Y=Z라고 하면, R(X)와 R(Z,Y)는 동일한 표현이다. 이때, 릴레이션 R(Z,Y)에 대한 S(Y)의 DIVISION 연산은 S(Y)의 모든 튜플에 연관되어 있는 R(Z)의 튜플을 선택하는 것으로 다음과 같이 표기한다.

[표기 형식]

R[속성r (   ) 속성s]S    답안 : ÷

9. 다음 C언어로 구현된 프로그램을 분석하여 그 실행 결과를 쓰시오.

#include<stdio.h>

intpower(int data, intexp){

             int i, result = 1;

    for(i = 0; i < exp; i++)

          result = result * data;

    return result;

}

intmain(){

             printf(“%d\n”, power(2, 10));

    return0;

}

답안 : 1024

10. 데이터베이스와 관련한 다음 <처리 조건>에 부합하도록 괄호 ()~()를 채워 SQL문을 완성하시오.

답안  Not Null  Primary  Foreign  References

해설

11. 데이터베이스와 관련된 용어 중 하나인 비정규화의 개념을 서술하시오.

답안

비정규화의 개념 : 정규화로 인해 여러 개로 분해된 릴레이션들에서 원하는 정보를 얻기 위해서는 조인을 사용하여 다시 연결해야 하는데, 지나치게 자주 조인을 사용하면 응답 속도가 떨어지므로 정규화에 위배되지만 성능 향상을 위해 다시 테이블을 합쳐야 한다. 이것을 비정규화라고 한다.

12. 신기술 동향과 관련한 다음의 <실무 사례>를 분석하여 각 문제의 물음 ()~()에 한글로 답하시오.

<실무 사례>

(    )이란 컴퓨터 보안에 있어서, 인간 상호 작용이 깊은 신뢰를 바탕으로 사람들을 속여 정상 보안 절차를 꺠트리기 위한 비기술적 시스템 침입 수단을 말한다. 우선 통신망 보안 정보에 접근 권한이 있는 담당자와 신뢰를 쌓고 전화나 이메일을 통해 그들의 약정과 도움을 이용하는 것이다. 상대방의 자만심이나 권한을 이용하는 것, 정보의 가치를 몰라서 보안을 소홀히 하는 무능에 의존하는 것과 도청 등이 일반적인 (      )적 공격 전략이다.

중략 –

(   ②   ) 기법은 장기간 보관하여 두고 조금씩 얇게 썰어서 먹는 이탈리아 소시지에서 따 온 말로, 많은 대상으로부터 눈치 채지 못할 만큼의 적은 금액이나 양을 빼내는 컴퓨터 사기 기법을 말한다.

중략 –

(   ③   )는 수집된 후 저장은 되어 있지만 분석에 활용되지는 않는 다량의 데이터를 의미한다. (      )는 향후 사용될 가능성이 있다는 이유로 삭제되지 않아 공간만 차지하고 있으며, 보안 위협을 초래하기도 한다.

답안

사회 공학  살라미  다크 데이터 

13. 다음 신기술 동향과 관련된 설명 중 괄호 (   ) 안엔 공통적으로 들어갈 가장 부합하는 용어를 쓰시오.

(   )은(는) 네트워크를 컴퓨터처럼 모델링하여 여러 사용자가 각각의 소프트웨어 프로그램들로 네트워킹을 가상화하여 제어하고 관리하는 네트워크이다. (   ) 기술은 네트워크 비용 및 복잡성을 해결할 수 있는 기술로 간주되어 기존 네트워킹 기술의 폐쇄형 하드웨어 및 소프트웨어 기술로 개방형으로 변화시키는 미래 인터넷 기술로 떠오르고 있다.

답안  다음 중 한 가지만 쓰면 됩니다.  SDN, Sorfware Defined Networking, 소프트웨어 정의 네트워킹

14. 다음 업무프로세스와 관련된 설명 중 괄호 (   ) 안에 공통적으로 들어갈 가장 부합하는 용어를 쓰시오.

(   )은(는) 웹 서비스와 관련된 서식이나 프로토콜 등을 표준적인 방법으로 기술하고 게시하기 위한 언어로, SOAP 툴킷에 웹 서비스를 기술하기 위해 개발되었다. 웹 서비스가 확장성 생성 언어(XML)를 기반으로 하여 표현되고 (   )로 정의되면, UDDI(Universal Description, Discovery, and Integration)에 의해 서비스 저장소에 등록된다. 이후 등록된 서비스는 웹에 접속하는 누구라도 찾아 사용할 수 있도록 공개된다. 웹 서비스는 (   )에 의해 서비스 제공 장소나 서비스 메시지 포맷, 프로토콜 등의 구체적인 내용이 기술된다.

답안  다음 중 한 가지만 쓰면 됩니다.   웹 서비스 기술 언어, WSDL, Web Services Description Language

15. 다음 전산영어와 관련한 다음 설명의 괄호 (), (), ()에 가장 부합하는 답안을 영문 Full-name으로 쓰시오.

MMS는 셀룰러 네트워크를 통해 핸드폰으로 또는 핸드폰으로부터 (      ) 콘텐츠가 포함된 메시지를 보내는 표준적인 방법이다. MMS 표준은 SMS(Short Message Service) 기능을 확장하여, 160자 이상의 (      ) 메시지를 교환할 수 있도록 한다. (      ) 전용 SMS와 달리, MMS는 최대 40초 분량의 비디오, 하나의 (      ), 여러 (      )들의 슬라이드 쇼 또는 오디오를 포함한 다양한 미디어를 전달할 수 있다.

답안   multimedia  text  image 

2018년 1회

1. 다음 데이터베이스의 함수 종속과 관련된 다음 설명에서 괄호 (, )에 가장 부합하는 답안을 쓰고 괄호 ()에는 완전 함수 종석의 개념에 대해 간단히 서술하시오.

 함수 종속은 데이터의 의미를 표현하는 것으로, 현실 세계를 표현하는 제약 조건이 되는 동시에 데이터베이스에서 항상 유지되어야 할 조건이다. 

어떤 릴레이션(관계) R에서 A와 B를 각각 R의 애트리뷰트(속성/column) 집합이라고 가정할 때 애트리뷰트 A의 값 각각에 대해서 시간에 관계없이 항상 애트리뷰트 B의 값이 오직 하나만 연관되어 있을 때 B는 A에 함수 종속이라 하고 A B로 표기한다.

만약 B가 A에 종속되어 A 값을 알면 B 값을 알 수 있을 때 A를 (      )(이)라고 하고, B를 (      )(이)라고 한다.

 함수 종속에는 이행적 함수 종속, 부분 함수 종속, 완전 함수 종속이 있다.

완전 함수 종속의 개념에 대해 간단히 서술하시오.(   ③   )  답안 결정자, Determinant 종속자, Dependent 어떤 애트리뷰트(속성)가 기본키에 대해 완전히 종속적인 경우 완전 함수 종속이라고 한다.

*함수적종속:예를들어 <수강>릴레이션이 (학번,이름,과목명)으로 되어있을 때 학번이 결정되면 과목명에 상관없이 학번에는 항상 같은 이름이 대응됩니다. 학번에 따라 이름이 결정될 때 이름학번에 함수 종속적이라고 하며, 학번-이름 과 같이 씁니다.

*완전함수적종속:예를들어 <수강> 릴레이션이 (학번,과목명,성적,학년)으로 되어있고, (학번,과목명)이 기본키일 때 성적학번과목명이 같을 경우에는 항상 같은 성적이 옵니다. 즉, 성적학번과목명에 의해서만 결정되므로 성적은 기본키(학번,과목명)에 완전 함수적 종속이 되는 것입니다.

*부분함수적종속: 반면에 학년과목명에 관계없이 학번에 의해 학년이 옵니다. 즉, 기본키의 일부인 학번에 의해서만 학년이 결정되므로 학년 부분 함수적 종석.

2. 다음 <처리 조건>에 유의하여 <학생> 테이블에 대한 알맞은 SQL문을 작성하시오.

<학생>

<처리 조건>

1. 학생 테이블에서 3학년과 4학년 학생의 학번과 이름을 검색하는 SQL문을 작성하시오.

2. 원소 함수 In을 사용하시오. ( 원소 함수 In(value1, value2, ···)

3. SQL문의 끝에는 세미콜론(;)으로 표시하시오.

답안 : Select 학번, 이름 From 학생 Where 학년 in (3, 4);

3. 다음 데이터베이스 관리 시스템의 내용을 참고하여 괄호 (, )에 들어갈 알맞은 DBMS 구성 요소 명칭을 작성하시오.

데이터베이스 관리 시스템(Database Management System : DBMS)이란 응용 프로그램과 데이터베이스 사이의 중재자로서 사용자의 요구사항에 효율적으로 서비스를 수행하기 위하여 제공되는 데이터베이스 관리 소프트웨어이다. DBMS는 물리적인 데이터 저장 구조와 외부 인터페이스 사이의 다양한 소프트웨어들로 구성되어 있다.

답안  각 문항별로 제시된 답안 중 한 가지만 쓰면 됩니다.

DDL 컴파일러, DDL 처리기, DDL 번역기

트랜잭션 관리자

4. 데이터베이스와 관련된 다음 설명 중 괄호 (, , )에 들어갈 가장 적합한 용어를 쓰시오.

회복(Recovery)은 트랜잭션들을 실행하는 도중 장애(Failure)가 발생하여 데이터베이스가 손상되었을 경우 손상되기 이전의 정상 상태로 복구하는 작업이다.

실행 장애(Action Failure) : 사용자의 실수, 무결성 규정 위반 등으로 질의 실행이 실패하는 현상

트랜잭션 장애(Transaction Failure) : 트랜잭션 내부에서 입력 데이터 오류, 불명확한 데이터, 시스템 자원 요구의 과다 등 비정상적인 상황으로 인하여 트랜잭션 실행이 중지되는 현상

– (   ①   ) 장애(System Failure) : 데이터베이스에는 손상을 입히지 않으나 하드웨어 오동작, 정전, 소프트웨어(운영체제나 DBMS 등) 오류, 교착 상태 등에 의해 실행중인 모든 트랜잭션들이 더 이상 실행을 계속할 수 없는 현상

미디어 장애(Media Failure) : 저장 장치인 디스크 블록의 손상이나 디스크 헤드의 충돌 등에 의해 데이터베이스의 일부 또는 전부가 물리적으로 손상되는 현상

회복 관리기는 로그(Log), 메모리 (      ) 등을 이용하여 회복 기능을 수행하는 DBMS의 핵심 구성 요소이다. 회복 관리기는 트랜잭션 실행이 성공적으로 완료되지 못하면 로그를 이용하여 트랜잭션이 데이터베이스에 생성했던 모든 변화를 취소(Undo)시켜서, 트랜잭션 실행 이전의 원래 상태로 되돌리는 역할을 담당한다.

회복 기법의 종류는 다음과 같다.

연기 갱신(Deferred Update) 기법 : 연기 갱신 기법은 트랜잭션이 성공적으로 종료될 때까지 데이터베이스에 대한 실질적인 갱신을 연기하는 기법이다.

즉각 갱신(Immediate Update) 기법 : 즉각 갱신 기법은 트랜잭션이 데이터를 변경하면 트랜잭션이 부분 완료되기 전이라도 즉시 실제 데이터베이스에 반영하는 기법이다.

그림자 페이지(Shadow Paging) 기법 : 그림자 페이지 기법은 갱신 이전의 데이터베이스를 일정 크기의 페이지 단위로 구성하여 각 페이지마다 복사본인 그림자 페이지로 별도 보관해 두고, 실제 페이지를 대상으로 트랜잭션에 대한 변경 작업을 수행하는 기법이다.

– (   ③   ) 기법 : 시스템 장애가 발생하였을 경우, Redo와 Undo를 수행하기 위해 로그 전체를 조사해야 하는 경우 피하기 위한 기법이다.

답안

각 문항별로 제시된 답안 중 한 가지만 쓰면 됩니다.

시스템, System 덤프, Dump   검사점, Check Point

5. 다음 C 언어의 <출력>과 <코드>를 보고 괄호 (), (), (), ()에 적용될 수 있는 가장 적합한 답을 쓰시오.

<출력>

statck’s status
value = 40
value = 30
value = 20

<코드>

#include<stdio.h>

#define MAX_STACK_SIZE 10

int stack[MAX_STACK_SIZE];

int top = -1;

void push(int item)

{

             if (top >= (      ))

    {

          printf(“stack is full\n”);

    }

    stack[++top] = (    );

}

intpop()

{

             if (top == (    ))

    {

          printf(“stack is empty\n”);

    }

    returnstack[(    )];

}

intisempty()

{

             if (top == (    ))

          return1; else return0;

}

intisfull()

{

             if (top >= (    ))

          return1; else return0;

}

intmain()

{

             int e;

    push(20); push(30); push(40);

    printf(“stack’s status\n”);

    while (!isempty())

    {

          e = pop();

        printf(“value = %d\n”, e);

    }

}

답안

MAX_STACK_SIZE-1 또는 9  item   -1   top–

해설

6. 다음 Java 언어의 <처리조건>과 <코드>를 보고 괄호 () ~ ()에 적용될 수 있는 가장 적합한 답을 쓰시오.

<처리 조건>
배열에는 95, 75, 85, 100, 50 이 차례대로 저장된다.
배열에 저장된 값을 오름차순으로 정렬하여 출력한다.

<코드>

public class Test1{

             public satic void main(String[] args){

          int E[] = {  (       )  };

        int i = 0;

        int Temp = 0;

        do

        {

                    int j = i;

            do

            {

                if( E[i] > (      ) )

                {

                          Temp = E[i];

                    E[i] = E[j];

                    E[j] = Temp;

                }

                j++;

            }   while (j < 5);

            i++;

        }           while (j < 4);

        for (int a = 0; a < 5; a++ )

        {

                    System.out.printf(E[a]+”\t”);

        }

        System.out.println();

    }

}

답안 95, 75, 85, 100, 50   E[j]

해설

7. 5행 5열의 배열에 <처리 조건> 번과 같은 과정으로 숫자를 기억시키는 알고리즘을 기술한 것이다. 알고리즘이 <처리 조건>에 따라 가장 효율적으로 구현될 수 있도록 괄호 () ~ ()에 해당하는 답을 쓰시오.

답안  J+S K-1  N+1  i+S   

8. 스니핑(Sniffing)에 대한 개념을 간단히 서술하시오.

답안 : 네트워크의 중간에서 남의 패킷 정보를 도청하는 해킹 유형의 하나로 수동적 공격에 해당한다.

10. 다음 정보 보호 및 보안과 관련한 다음 설명에서 각 지문  ~ 에 가장 부합하는 답을 쓰시오.

웹 정보 노출이나 악성 코드, 스크립트, 보안이 취약한 부분을 연구하는 비영리 단체이다. 2001년 9월 9일 Mark Curphey에 의해 설립되었으며, 2004년을 시작으로 2007년, 2010년, 2013년, 2017년에 각 10대 웹 애플리케이션의 취약점을 ‘Top Ten’이라는 이름으로 발표하였고 문서도 공개하였다. 10대 웹 애플리케이션의 취약점은 보안이 취약한 부분 중에서도 빈도가 잦고, 보안에 미치는 영향이 큰 것을 기준으로 선정한 것이다.

OWASP, The Open Web Application Security Project

제공하는 입장에서는 악의적이지 않은 유용한 소프트웨어라고 주장할 수 있지만 사용자 입장에서는 유용할 수도 있고 악의적일 수도 있는 애드웨어, 트랙웨어, 기타 악성 코드나 악성 공유웨어를 말한다. 정상적인 소프트웨어의 이미지인 백색의 악성 소프트웨어의 이미지인 흑색의 중간에 해당한다고 하여 이러한 명칭으로 불리게 되었다.

그레이웨이, grayware

1999년 6월 8일 ISO 15408 표준으로 체택된 정보 보호 제품 평가 기준이다. 정보화 순기능 역할을 보장하기 위해 정보화 제품의 정보보호 기능과 이에 대한 사용 환경 등급을 정한 기준이다. 정보 보호 시스템에 대한 이것은 선진 각국들이 서로 다른 평가 기준으로 인해 발생하는 시간과 비용 낭비 등의 문제점을 없애기 위해 개발하기 시작하여, 1998년에는 미국, 캐나다, 영국, 프랑스, 독일 간에 상호 인정 협정이 체결되었다. 이것은 제1부 시스템의 평가 원칙과 평가 모델, 제2부 시스템 보안 기능 요구사항(11개(, 제3부 시스템의 7등급 평가를 위한 보증 요구 사항(8개)으로 되어 있다.

공통평가기준, CC, Common Criteria

인터넷에서 주민등록번호 대신 쓸 수 있도록 만든 사이버 주민등록번호이다. 앞으로는 인터넷 웹사이트에 회원가입을 할 때 주민등록번호를 입력하는 대신 인터넷 주민번호인 이것을 부여받아 주민번호처럼 사용하면 된다. 사용자에 대한 신원확인을 완료한 후에 본인확인기관에 의하여 온라인으로 사용자에게 발행된다. 이 방식에 따르면 개별 웹사이트는 실제 주민번호와는 전혀 다른 이 정보만을 갖게 되므로 주민번호 수집행위 등 개인정보 침해 요소를 대폭 줄일 수 있고, 주민번호는 유출되어도 이를 변경할 수 없지만 이것을 이용자가 유출이 의심되면 언제든지 새로운 것으로 변경할 수 있어서 개인정보의 오용과 추적을 원천적으로 막을 수 있다.

아이핀, i-PIN, internet Personal Identification Number, 인터넷 개인식별번호

네티즌들이 사이트에 접속할 때 주소를 잘못 입력하거나 철자를 빠뜨리는 실수를 이용하기 위해 이와 유사한 유명 도메인을 미리 등록하는 것으로 ‘URL 하이재킹(Hijacking)’이라고도 한다. 유명 사이트들의 도메인을 입력할 때 발생할 수 있는 온갖 도메인 이름을 미리 선점해 놓고 이용자가 모르는 사이에 광고 사이트로 이동하게 만든다.

답안

타이포스쿼팅, typosquatting

11. 다음 신기술 동향과 관련한 다음 설명에서 각 지문 () ~ ()에 가장 부합하는 답을 쓰시오.

서비스와 질’을 의미하는 약자로, 네트워크에서 일정 기준 이하의 지연 시간이나 데이터 손실률 등을 보증하기 위한 서비스 규격이다. 전송 우선순위에 따라 네트워크 트래픽을 분류하고 우선순위가 높은 트래픽을 먼저 전송하게 된다. 화상 회의, 영상 전화, 동영상 전송 등 실시간 프로그램은 이것을 사용함으로써 네트워크 대역폭을 가장 효율적으로 사용할 수 있게 된다.

웹 페이지 내에서 자바 스크립트와 CSS, XHTML 등을 이용하여 XML로 자료를 교환하고, 제어하게 되는데, 사용자들은 이로 인해 웹 페이지를 ‘새로 고침’하지 않고도 대화형의 웹페이지 기능을 이용할 수 있게 하는 기술이다.

단순히 제품을 사용하는데 그치지 않고 제품의 기능이나 가치에 스토리를 담아 기존의 콘텐츠를 발전시켜 새로운 문화와 소비유행을 만들어 가는 사람들을 말한다. 음악, 미술, 문학 등 주로 창작 분야에서 디지털 기술을 보다 적극적으로 이용하여 제품의 판매와 유통에 영향을 미친다. 제품개발과 유통과정에 소비자가 직접 참여하는 프로슈머(Prosumer)보다 발전한 개념이다.

일반 블루투스와 동일한 2.4GHz 주파수 대역을 사용하지만 연결되지 않은 대기상태에서는 절전 모드로 유지된다. 주로 낮은 전력으로 저용량 데이터를 처리하는 시계, 장난감, 비컨(beacon), 그리고 착용 컴퓨터 등의 극소형 사물 인터넷에 매우 적합하다. 전력 효율이 좋아 배터리 하나로 몇 년을 사용할 수 있으므로 비용면에서도 매우 효율적이다.

필요한 정보를 기다리지 않고 적극적으로 찾아다니는 정보 열광자를 의미한다. 이들을 가장 최근의 이슈들을 찾아내는 데 그치지 않고 자신의 홈페이지나 SNS 등을 활용해 정보를 대중화시키는 정보 제공자 역할을 수행한다.

답안

각 문항별로 제시된 답안 중 한 가지만 쓰면 됩니다.

QoS, Quality of Service, 서비스 품질

AJAX, Asynchronous JavaScript and XML, 비동기 자바 스크립트와 XML

크리슈머, Cresumer

저전력 블루투스 기술, BLE, Bluetooth Low Energy

Infolust, 정보 열광자, 인포러스트

12. 다음 전산영어와관련한 다음 설명의 괄호 () ~ ()에 가장 부합하는 답을 쓰시오.

소프트웨어가 기계의 기계적인 부품들인 것처럼 객체가 조립되고 생성될 수 있도록 현실 세계의 개채(Entity)를 기계 부품과 같은 하나의 객체로 만드는 기법이다. 구조적인 묹들로 인한 소프트웨어 위기의 해결책으로 사용된다. 소프트웨어를 재사용하고 확장하여 고품질 소프트웨어를 신속하게 개발하고 유지하기 용이하다.

데이터와 데이터를 처리하는 함수를 캡슐화한 하나의 소프트웨어 모듈이다. 이것은 상태와 행위를 가지고 있으며, 다른 ( 객체 )들과 구별될 수 있는 이름과 일정한 기억장소를 갖는다.

객체에 수행될 연산, 즉 객체의 속성값에 대한 변경이나 검색을 기술한 것이다. 또한 특정한 이것을 수행하기 위해서는 해당 객체에 메시지를 보내야 한다.

객체들 간에 상호작용을 하는 데 사용되는 수단으로, 객체에게 어떤 행위를 하도록 지시하는 명령 또는 요구사항이다. ( 메시지 )를 받는 수신자의 이름, 객체가 수행할 메소드 이름, 메소드를 수행할 때 필요한 속성값으로 구성된다. 이것을 받은 객체는 요구된 메소드를 수행하여 결과를 반환하게 된다.

보안성이 뛰어나고 유지 보수가 용이한 객체 지향 프로그램(OPP) 언어이다. 컴파일한 코드를 다른 운영체제에서 사용할 수 있도록 클래스를 제공함으로써 뛰어난 이식성을 갖고 있다. 또한 보다 효율적인 프로그래밍이 가능하도록 분산 환경을 지원한다.

답안

각 문항별로 제시된 답안 중 한 가지만 쓰면 됩니다.

OPP, Object-oriented programming

object

method

message

JAVA

2018년 2회

1. 다음 데이터베이스의 DCL(Data Control Language)과 관련된 다음 설명에서 괄호 () ~ ()에 가장 적합한 답을 쓰시오.

DCL은 데이터의 보안, 무결성, 회복, 병행 제어 등을 정의하는 데 사용하는 언어이다. DCL은 데이터베이스관리자(DBA)가 데이터 관리를 목적으로 사용한다.

DCL의 유형 중 (      )은(는) 트랜잭션의 모든 변경 내용들을 영구적으로 데이터베이스에 반영하는 명령어이다. 트랜잭션이 성공적으로 끝나면 데이터베이스가 새로운 일관성(Consistency) 상태를 가지기 위해 수행된 모든 변경을 데이터베이스에 반영하여 (      )하여야 한다.

DCL의 유형 중 (      )은(는) 변경된 모든 내용들을 취소하고 데이터베이스를 이전 상태로 되돌리는 명령어이다. 트랜잭션의 일부를 성공적으로 끝내지 못하면 데이터베이스가 비일관성(Inconsistency)인 상태를 가질 수 있기 때문에(즉 트랜잭션이 수행한 일부 변경이 데이터베이스에 반영될 가능성이 있기 때문에) 일부분만 (      )된 트랜잭션은 (      )되어야 한다.

DCL의 유형 중 (      )은(는) 데이터베이스 관리자가 데이터베이스 사용자에게 권한을 부여하는 명령어이며, (        )은(는) 권한을 취소하기 위한 명령어이다. 부여할 수 있는 권한의 종류에는 ALL, SELECT, INSERT, DELETE, UPDATE, ALTER 등이 있다. (      )와(과) (      )의 추가적인 옵션 중 권한 취소 시 권한을 부여받았던 사용자가 다른 사용자에게 부여한 권한도 연쇄적으로 취소하는 옵션은 (      )이다.

답안 commit rollback grant revoke cascade

2. 다음은 5개의 정수를 입력받아 그 중 홀수의 개수를 구하여 출력하는 알고리즘을 C언어로 구현한 <코드>이다. 프로그램을 분석하여 괄호 ( )에 가장 적합한 답을 쓰시오.

<코드>

#include<stdio.h>

main() {

             int i, a[5], cnt = 0;

    for (i = 0; i < 5; i++)

          scanf(“%d”, &a[i]);

    for (i = 0; i < 5; i++) {

          if (a[i] % 2 ( ) 0)

                    cnt = cnt + 1;

    }

    printf(“홀수의 개수 : %d개”, cnt);

}

답안 : != 또는 > 해설

3. 스키마와 관련한 다음 설명에서 괄호 () ~ ()에 가장 적합한 답을 쓰시오.

스키마는 데이터베이스의 구조와 제약 조건에 관한 전반적인 명세(Specification)를 의미하며, 데이터베이스를 구성하는 데이터 개체(Entity), 속성(Attribute), 관계(Relationship) 및 데이터 조작 시 데이터 값들이 갖는 제약 조건 등에 관해 전반적으로 정의한다.

(   ①   )은(는) 사용자나 응용 프로그래머가 각 개인의 입장에서 필요로 하는 데이터베이스의 논리적 구조를 정의한 것이다. 전체 데이터베이스의 한 논리적인 부분으로 볼 수 있으므로 서브 스키마(Sub Schema)라고도 한다. 하나의 데이터베이스 관리 시스템에는 여러 개가 존재할 수 있으며, 하나의 (      )은(는) 여러 개의 응용 프로그램이나 사용자에 의해 공유될 수 있다.

단순히 스키마라고 하면 (      )을(를) 의미하며, 개체 간의 관계와 제약 조건을 나타내고 데이터베이스의 접근 권한, 보안 정책 및 무결성 규정에 관한 명세를 정의한 것이다. 데이터베이스의 전체적인 논리적 구조로서, 모든 응용 프로그램이나 사용자들이 필요로 하는 데이터를 통합한 조직 전체의 데이터베이스 명세로서 하나만 존재한다.

(   ③   )은(는) 데이터베이스의 물리적 구조를 정의한 것으로, 물리적 저장장치의 관점에서 본 전체 데이터베이스의 명세로서 하나만 존재한다. (      )의 물리적 저장 구조에 대한 정의를 기술하고, 시스템 프로그래머나 시스템 설계자가 보는 관점의 스키마이다.

외부 스키마, External Schema

개념 스키마, Conceptual Schema

내부 스키마, Internal Schema

4. 다음 Java 언어의 <출력>과 <코드>를 보고 괄호 (), ()에 가장 적합한 답을 쓰시오.

<출력>

0 1 2 3 4
1 2 3 4 5
2 3 4 5 6

<코드>

public class Problem{

             public static void main(String[] args){

          int[][] a = new int[( )][( )];

        for(int i = 0; i < 3; i++) {

                    for(int j = 0; j < 5; j++) {

                a[i][j] = i + j;

                System.out.printf(“%d”, a[i][j]);

            }

            System.out.println();

        }

    }

}

답안 :  3 5

5. 다음 C 언어의 <출력>과 <코드>를 보고 괄호 ()에 가장 적합한 답을 쓰시오.

<출력>

1의 약수 : 1
2의 약수 : 1 2
3의 약수 : 1 3
4의 약수 : 1 2 4
5의 약수 : 1 5

<코드>

#include<stdio.h>

main() {

             int i, j;

    for (i = 1; i <= 5; i++) {

          printf(“%d의 약수 : “, i);

        for (j = 1; j <= 5; j++) {

                    if ( (    ) )

                printf(“%d”, j);

        }

        printf(“\n”);

    }

    return0;

}

답: i % j == 0

6. <학생> 테이블에 최대 3문자로 구성되는 학년 속성을 추가하는 SQL문의 괄호 (), ()를 채워 SQL문을 완성하시오.

<SQL문>

(   ①   ) TABLE 학생 (      ) 학년 VARCHAR(3);

답안 :  ALTER ② ADD

7. 다음 정보 보호 및 보안과 관련한 다음 설명에서 각 지문 () ~ ()에 가장 적합한 답을 쓰시오.

디지털 (      )은 범죄의 증거로 사용될 수 있는 컴퓨터, 휴대전화, 인터넷 등의 디지털 저장매체에 존재하는 디지털 정보를 수집하는 디지털 수사 과정을 말한다. 관련 규정은 대검찰청 예규 제805호를 따른다. 해당 예규에서는 디지털 (      )을 ‘디지털 증거를 수집, 분석 또는 보관하거나 현출하는 데 필요한 기술 또는 절차’라고 저으이하고 있다.

(   ②   )는 영문 4글자로 이루어진 분산 서비스 공격의 영문 약어로, 여러 대의 장비를 이용하여 대량의 데이터를 한 곳의 서버에 집중적으로 전송함으로써, 특정 서버의 정상적인 기능을 방해하는 것을 말한다. 표적이 되는 서버는 데이터의 범람으로 결국 시스템의 가동이 멈추게 된다.

(   ③   )는 스마트폰 이용자가 도난당한 스마트폰의 작동을 웹사이트를 통해 정지할 수 있도록 하는 일종의 자폭 기능이다. 이 기능을 통해 스마트폰의 불법 유통, 도난이나 분실을 어느 정도 막을 수 있다. 원격 잠김, 개인 정보 삭제 기능 등이 있는 (      )는 단말기의 펌웨어나 운영체제에 탑재된다.

(   ④   )은 보안 취약점이 발견되었을 때 그 문제의 존재 자체가 널리 공표되기도 전에 해당 취약점을 악용하여 이루어지는 보안 공격으로, 공격의 신속성을 의미한다. 일반적으로 컴퓨터에서 취약점이 발견되면 제작자나 개발자가 취약점을 보완하는 패치를 배포하고 사용자가 이를 내려 받아 대처하는 것이 관례이나, 이것은 대응책이 공표되기도 전에 공격이 이루어지기 때문에 대처 방법이 없다.

(   ⑤   )은 재난 발생 시 비즈니스의 연속성을 유지하기 위한 계획이다. 재해, 재난으로 인한 정상적인 운용이 어려운 상황에 처했을 때 데이터 백업과 같은 단순 복구뿐만 아니라 고객 서비스의 지속성 보장, 핵심 업무 기능을 지속하는 환경을 조성해 기업 가치를 극대화하는 것을 말한다. 기업이 운용하고 있는 시스템에 대한 평가 및 비즈니스 프로세스를 파악하고 재해 백업 시스템 운용 체계를 마련하여 재해로 인한 업무 손실을 최소화하는 컨설팅 기능을 포함한 개념으로 일반적으로 컨설팅 >시스템 구축 >시스템 관리의 3단계로 이루어진다.

포렌식, Forensics

DDoS

킬 스위치, kill switch

제로 데이 공격, zero day attack

업무 연속성 계획, BCP, Business Continuity Planning

8. 신기술 동향과 관련된 다음 설명에서 각 지문  ~ 에 가장 적합한 답을 쓰시오.

저속 전송 속도를 갖는 홈오토메이션 및 데이터 네트워크를 위한 표준 기술이다. 버튼 하나로 하나의 동작을 잡아 집안 어느 곳에서나 전등 제어 및 홈보안 시스템 VCR on/off 등을 할 수 있고, 인터넷을 통한 전화 접속으로 홈오토메이션을 더욱 편리하게 이용하려는 것에서 부터 출발한 기술이다. IEEE 802.15.4에서 표준화가 진행되며, 듀얼 PHY 형태로 주파수 대역은 2.4GHz, 868/915MHz를 사용하고, 모뎀 방식은 DSSS(Direct Sequence Spread Spectrum)이며, 데이터 전송 속도는 20~250Kbps이다.

장비에 스토리지를 직접 연결하여 데이터를 저장하는 것으로 대용량의 데이터를 저장하기에는 역부족이기때문에 등장한 저장 장치이다. 서로 다른 종류의 데이터 저장 장치를 하나의 데이터 서버에 연결하여 관리하는 네트워크이다.

군중과 아웃소싱의 합성어로 클라우드 컴퓨팅이 실용화되면서 가능하게 된 정보 기술(IT, Information Technology) 아웃소싱 전략의 하나이다. 대규모 인프라를 가진 정보 기술 서비스 업체나 통신 사업자들이 서비스를 제공하고 있거나 준비하고 있다.

현재 사용하고 있는 IP 주소 체계의 주소 부족 문제를 해결하기 위해 개발된 IP 주소 체계의 차세대 버전이다. 16비트씩 8부분, 총 128비트로 구성되어 있고, 각 부분은 16진수로 표현하여 콜론(:)으로 구분한다.

자동차와 정보통신기술을 연결시킨 것으로 양방향 인터넷 및 모바일 서비스 이용이 가능한 차량을 말한다. E-Mail, 동영상, SNS 뿐만 아니라, 다른 차량이나 교통, 통신 기반 시설(Infrastructure)과 무선으로 연결하여 원격 차량 제어 및 관리, 내비게이션, 위험 경고 등의 서비스를 받을 수 있다. 앞으로는 자동차의 충전, 운전자의 건강 상태 확인, 자율 운전, 혈중 농도 체크 등을 포함한 다양한 서비스가 추가될 것으로 기대되고 있다.

지그비, zigbee

스토리지 전용 네트워크, SAN, storage area network

클라우드 소싱, crowd sourcing

IPv6, Internet Protocol version 6

커넥티드 카, connected car

10. 관계대수와 관련한 다음 설명에서 괄호 ( )~ ()에 가장 적합한 답을 쓰시오.

관계대수는 관계형 데이터베이스에서 원하는 정보와 그 정보를 어떻게 유도하는가를 기술하는 절차적 언어이다. 관계대수는 하나 또는 두 개의 릴레이션을 입력으로 받아들여 결과로서 새로운 릴레이션을 생성해내는 연산들의 집합이다. 관계대수의 연산에는 기본 연산인 SELECT, PROJECT, JOIN, DIVISION 등과 집합 연산인 UNION, DIFFERENCE, INTERSECTION, CARTESIAN, PRODUCT 등이 있다.

 답안

11. 다음 전산영어와 관련한 다음 설명에서 괄호 () ~ ()에 가장 적합한 답을 쓰시오.

지리적인 자료를 수집, 저장, 분석, 출력할 수 있는 컴퓨터 응용 시스템이며, 모든 사물들의 위치 정보를 제공하기 위해 위성을 이용한다. 이것을 통해 우리는 지도에서 사물을 확인하는 단계를 넘어서서, 인터넷과 위성과 같은 다양한 미디어를 이용하여 지리 데이터를 수집, 구축, 분석, 처리함으로써 고품질의 공간 정보를 생산하는 것이 가능하다.

TCP/IP 통신을 실행하기 위해 필요한 설정 정보를 자동적으로 할당하고 관리하기 위한 통신 규약이다. RFC 1541에서 규정하고 있으며, TCP/IP 환경의 통신망에서 IP 주소의 일률적인 관리 서비스를 제공한다. 이것을 제공하는 서버는 클라이언트의 요구에 따라 IP 주소를 할당한다.

운영 체제에서 가장 핵심적인 역할을 한다. 메모리나 프로세서와 같은 자원을 관리하거나, 시스템이 원할이 운영되도록 제어하는 역할을 수행한다. 일반적으로 종료된 입, 출력 연산과 같이 서비스에 대한 경쟁력인 모든 요청들을 처리하는 인터럽트 처리기, 프로그램들의 처리 시간을 어떤 순서대로 나눌지 결정하는 스케쥴러, 그리고 각각의 프로세스에게 권한을 부여하는 관리자를 포함한다.

에릭슨, IBM, 인텔, 노키아, 도시바에 의해서 1998년에 설립된 단체에서 나온 무선 개인 영역 네트워크 기술이다. 이것은 점 대 점 또는 다중 점 간의 응용 프로그램을 지원하는 데이터나 디지털 음성의 단거리 전송을 위한 공개된 표준이다. 처음에 나온 응용 프로그램들은 핸즈프리 방식의 헤드폰이나 자동차 오디오 시스템에 연결하기 위해 휴대폰에 장착되었다.

런던에 있는 Alphabet 사의 구글 딥마인드에 의해 개발되었으며, 제로, 마스터, 리 등의 여러 가지 버전이 있다. 이것은 신경망 구조인 인간의 뇌와 같이 작동한다. 이 신경망은 정책망(Policy Network)과 가치망(Value Network)이라는 두 가지 신경망의 결합을 통해 만들어졌다. 정책망은 다음에 돌을 어디에 두는지 선택하는 알고리즘이고, 가치망은 승자를 예측하는 역할을 수행한다. 2015년 10월에는 핸티캡 없이 프로 바둑 기사를 이긴 첫 컴퓨터 프로그램으로 유멍하다.

답안 :  

GIS, Geographic Information System

DHCP, Dynamic Host Configuration Protocol

Kernel

Bluetooth

AlphaGo

2018년 3회

1. 다음은 피보나치 수열의 합계를 구하는 프로그램을 Java 언어로 구현한 것이다. 프로그램을 분석하여 그 실행 결과를 쓰시오.

public class Problem{

             public static void main(String[] args){

          int a, b, c, sum;

        a = b = 1;

        sum = a + b;

        for(int i = 3; i <=5; i++)

        {

                    c = a + b;

            sum += c;

            a = b;

            b = c;

        }

        System.out.println(sum);

    }

}

답안 : 12

2. 다음은 6면 주사위를 100번 굴려서 나온 각 면의 수를 배열에 저장하여 출력하는 알고리즘을 C언어로 구현한 <코드>이다. 프로그램을 분석하여 괄호 ( ), ( )에 가장 적합한 답을 쓰시오.

<코드>

#include<stdio.h>

#include<stdlib.h>

#include<time.h>

main(){

             int hist[6] = { 0, };

    int n, i = 0;

    srand(time(NULL));

    do {

                       i++;

            n = rand() % 6 + 1;

            hist[ (    ) ] += 1;

          } while (i < 100);

           for (i = 0; i < 6; i++)

          printf(“[%d] = %d\n”, i+1, (     ));

}

답안 :  n – 1 ② hist[i]

해설

3. 다음은 연결 리스트를 활용하여 스택 구조를 C언어로 구현한 것이다. <출력>과 <코드>를 보고 괄호 ( ), ( )에 가장 적합한 답을 쓰시오.

<출력>

30
20
10

<코드>

#include<stdio.h>

#include<stdlib.h>

struct NODE {

             int data;

    struct NODE *Next;

};

structNODE *head;

void Push(int data){

             structNODE *end = malloc(sizeof(structNODE));

    end->(    ) = head->(    );

    end->data = data;

    head->(    ) = end;

}

intPop(){

             int a;

    sruct NODE *del = head->(    );

    head->(    ) = del->(    );

    a = del->data;

    free(del);

    return a;

}

main() {

             int r;

    head = malloc(sizeof(struct NODE));

    head->(    ) = NULL;

    Push(10);

    Push(20);

    Push(30);

    r = (    );

    printf(“%d\n”, r);

    r = (    );

    printf(“%d\n”, r);

    r = (    );

    printf(“%d\n”, r);

}

답안 :  Next ② Pop()

4. <학생> 테이블을 참고하여 다음의 각 질문에서 요구하는 답을 쓰시오.

(1) 다음 SQL문의 실행 결과로 표시되는 레코드의 개수를 쓰시오.

SELECT COUNT(*) FROM 학생 WHERE 학년=4;

(2) <학생> 테이블에서 이름이 ‘이’로 시작하는 학생들의 학번을 검색하되, 학년을 기준으로 내림차순으로 출력하는 SQL문을 쓰시오.

답안

(1) 1

(2) SELECT 학번 FROM 학생 WHERE 이름 LIKE ‘이%’ ORDER BY 학년 DESC;

* 답안 작성 시 주의 사항

대, 소문자를 구분하지 않습니다. 단 스펠링이 하나라도 틀렸을 경우 부분 점수 1도 없는 오답으로 처리된다는 것을 잊지마세요.

5. 다음 관계형 데이터 모델과 관련된 다음 설명에서 괄호 () ~ ()에 가장 적합한 답을 쓰시오.

관계형 데이터 모델은 데이터를 테이블(Table) 또는 릴레이션(Relation)의 구조로 표현하는 논리적 데이터 모델이다. 관계형 데이터 모델에서는 데이터를 원자 값(Atomic Value)으로 갖는 이차원의 테이블로 표현하는데, 이를 릴레이션이라 한다. 릴레이션의 구조는 물리적인 저장 구조를 나타내는 것이 아닌 논리적 구조이므로 다양한 정렬 기준을 통하여 릴레이션을 표현할 수 있다.

릴레이션은 구조를 나타내는 릴레이션 스키마(Relation Schema)와 실제 값들인 릴레이션 인스턴스(Relation Instance)로 구성된다. 릴레이션의 열을 속성 또는 (      )(이)라 하고, 행을 (      )(이)라 한다. 릴레이션에서 하나의 (      )이(가) 취할 수 있는 같은 타입의 원자(Atomic)값들의 집합을 (       )(이)라고 한다. (      )은(는) 실제 (      ) 값이 나타날 때 그 값의 합법 여부를 시스템이 검사하는 데에도 이용된다.

 (   ①   ) : 데이터베이스를 구성하는 가장 작은 논리적 단위이며, 파일 구조상의 데이터 항목 또는 데이터 필드에 해당한다. <학생> 릴레이션의 ‘학번’, ‘이름’, ‘학년’, ‘신장’, ‘학과’가 여기에 속한다.

 (   ②   ) : 릴레이션을 구성하는 각각의 행을 말하며, (      ) 모임으로 구성된다. 파일 구조에서 레코드와 같은 의미이다. <학생> 릴레이션의 ‘15501’, ‘홍길동’, ‘2’, ‘170’, ‘CD’가 하나의 (      )(이)다.

 (   ③   ) : <학생> 릴레이션에는 표시되지 않았으나 ‘학년’에 1~4의 숫자 값만을 저장하도록 제한해 두었다면 이것이 (      )이(가) 된다.

 (   ④   ) : 데이터베이스에서 아직 알려지지 않거나 모르는 값으로서 ‘해당 없음’ 등의 이유로 정보 부재를 나타내기 위해 사용하는, 이론적으로 아무것도 없는 특수한 데이터를 말한다. <학생> 릴레이션에서 ‘장보고’ 학생의 데이터 중 비어있는 ‘신장’과 ‘학과’의 값이 이에 해당한다.

 (   ⑤   ) : (   ①   ) 수를 의미하는 용어로, <학생> 릴레이션에서 (      )은(는) 5다.

 (   ⑥   ) : (   ②   )의 수를 의미하는 용어로, <학생> 릴레이션에서 (      )은(는) 4다.

답안

각 문항별로 제시된 답안 중 한 가지만 쓰면 됩니다.

애트리뷰트, Attribute, 컬럼, Column

튜플, Tuple, 로우, row

도메인, Domain

널, NULL

차수, 디그리, Degree

카디널리티, Cardinality, 기수, 대응수

6. 병행 제어와 관련한 다음 설명에서 괄호 () ~ ()에 가장 적합한 답을 쓰시오.

병행 제어(Concurrency Control)란 다중 프로그램의 이점을 활용하여 동시에 여러 개의 트랜잭션을 병행 수행할 때, 동시에 실행되는 트랜잭션들이 데이터베이스의 일관성을 파괴하지 않도록 트랜잭션 간의 상호 작용을 제어하는 기술이다. 데이터베이스의 공유와 시스템의 활용도를 최대화하고, 데이터베이스의 일관성을 유지하며, 사용자에 대한 응답시간을 최소화하기 위한 목적으로 사용된다.

병행 제어 기법의 종류 중 하나인 로킹(Locking)은 주요 데이터의 액세스를 상호 배타적으로 하는 것을 의미한다. 즉 트랜잭션들이 어떤 로킹 단위를 액세스하기 전에 Lock(잠금)을 요청해서 Lock이 허락되어야만 그 로킹 단위를 액세스할 수 있도록 하는 기법이다. 로킹 단위는 병행 제어에서 한 번에 잠금할 수 있는 단위로 데이터베이서, 테이불, 레코드, 필드 등이 사용될 수 있다. 로킹의 종류에는 공유 로크(S, Shared Lock), 배타 로크(X, Exclusive Lock), 의도 로크(I, Intention Lock), 의도 공유 로크(IS, Intention-Shared Lock), 배타 의도 로크(IX, Intention-Exclusive Lock), 공유 의도 독점 로크(SIX, Shared and Intention-Exclusive Lock)가 있다.

로킹과 관련된 다음 내용에 대해 맞으면 O, 틀리면 X로 답란에 쓰시오.

트랜잭션 T1이 데이터 항목 x에 대해 배타 잠금(Exclusive Lock)을 설정할 경우, 트랜잭션 T2는 데이터 항목 x에 대하여 읽기(read) 연산은 물론 기록(write) 연산도 수행할 수 없다. ( 답란 1 )

로킹 단위가 크면 잠금 수가 작아 관리하기 쉽지만 공유성 수준이 낮아지고, 로킹 단위가 작으면 잠금 수가 많아 관리하기 복잡하지만 공유성 수준이 높아진다. ( 답란 2 )

또 다른 병행 제어 기법 중 하나로 ( 답란 3 ) 기법은 직렬성 순서를 결정하기 위해 트랜잭션 간의 처리 순서를 미리 선택하는 기법들 중에서 가장 보편적인 방법이다. 트랜잭션과 트랜잭션이 읽거나 갱신한 데이터에 대해 트랜잭션이 실행을 시작하기 전에 시간표(Time Stamp)를 부여하여 부여된 시간에 따라 트랜잭션 작업을 수행하는 기법이다. 교착 상태가 발생하지 않는 것이 특징이다. 예를 들어, 트랜잭션이 시스템으로 들어오면 그 때의 시스템 시간 값이 그 트랜잭션의 ( 답란 3 )이(가) 된다.

답안 (답란 1) O (답란 2) O (답란 3) 타임 스탬프 또는 Time Stamp

7. 다음 정보 보호 및 보안과 관련한 다음 설명에서 각 지문 ~ 에 가장 적합한 답을 쓰시오.

칩 설계회사인 APM(Advanced RISC Machine)에서 개발한 기술로, 하나의 프로세스(processor) 내에 일반 애플리케이션을 처리하는 일반 구역(normal world)과 보안이 필요한 애플리케이션을 처리하는 보안 구역(secure world)으로 분할하여 관리하는 하드웨어 기반의 보안 기술이다. 이 기술을 적용한 프로세서를 사용하면 결제, 인증서, 기밀문서 등과 같이 보안이 필요한 데이터들을 취급하는 애플리케이션을 외부 공격에 노출하지 않고 운영체제(OS) 수준에서 안전하게 보호하는 것이 가능하다.

양자 통신을 위해 비밀키를 분배하고 관리하는 기술로, 두 시스템이 암호 알고리즘 동작을 위한 비밀키를 안전하게 공유하기 위해 이 시스템을 설치하여 운용하는 방식으로 활용된다. 키 분배를 위해 얽힘(Entanglement) 상태 또는 단일 광자를 이용하는 방법을 사용한다.

다양한 IT 기술과 방식들을 이용해 조직적으로 특정 기업이나 조직 네트워크에 침투해 활동 거점을 마련한 뒤 때를 기다리면서 보안을 무력화시키고 정보를 수집한 다음 외부로 빼돌리는 형태의 공격을 말한다. 공격 방법에는 내부자에게 악성코드가 포함된 이메일을 오랜 기간 동안 꾸준히 발송해 한 번이라도 클릭되길 기다리는 형태, 스턱스넷(Stuxnet)과 같이 악성코드가 담긴 이동식 디스크(USB) 등으로 전파하는 형태, 악성코드에 감염된 P2P 사이트에 접속하면 악성코드에 감염되는 형태 등이 있다.

시스템 및 정보의 보안 요건 중 하나이다. 인가받은 사용자는 언제라도 사용할 수 있다는 것을 의미하는 것으로, 사용자로부터 사용 요구가 들어왔을 때 하드웨어나 소프트웨어가 지정된 시스템 기능을 수행할 수 있는 능력을 말한다.

스마트폰 이용자가 도난당항 스마트폰의 작동을 웹사이트를 통해 정지할 수 있도록 하는 일종의 자폭 기능이다. 이 기능을 통해 스마트폰의 불법 유통, 도난이나 분실을 어느 정도 막을 수 있다. 원격 잠김, 개인 정보 삭제 기능 등이 있으며, 단말기의 펌웨어나 운영체제에 탑재된다.

답안

각 문항별로 제시된 답안 중 한 가지만 쓰면 됩니다.

트러스트존, TrustZone

양자 암호 키 분배, QKD, Quantum Key Distribution

지능형 지속 위협, APT; Advanced Persistent Threats

가용성, Availability

킬 스위치, Kill switch

8. 신기술 동향과 관련된 다음 설명에서 각 지문  ~ 에 가장 적합한 답을 쓰시오.

초정밀 반도체 제조기술을 바탕으로 센서, 액추에이터(actuator) 등 기계구조를 다양한 기술로 미세 가공하여 전기기계적 동작을 할 수 있도록 한 초미세 장치이다. 일반적으로 작은 실리콘 칩 위에 마이크로 단위의 작은 부품과 이들을 입체적으로 연결하는 마이크로 회로들로 제작되며, 정보기기의 센서나 프린터 헤드, HDD 자기 헤드, 기타 환경, 의료 및 군사 용도로 이용된다. 최근의 초소형이면서 고도의 복잡한 동작을 하는 마이크로시스템이나 마이크로머신들은 대부분 이 기술을 사용한다.

인터넷 이용자들이 만들어가는 온라인 백과사전인 위키피디아(Wikipedia)와 경제학을 의미하는 이코노믹스(economics)의 합성어로, 소수에 의해 좌지우지되었던 기존의 경제 구조에서 탈피하여 대중의 지혜화 지성이 지배하는 경제를 의미한다. IT기술의 발달로 전 세계 대중들의 대규모 협업이 가능해지면서 참여,공유,개방을 기초로 하여 이와 같은 경제 패러다임의 변화가 나타나고 있다. 대표적인 사례로는 컴퓨터용 운영체제 리눅스(Linux)가 있다.

Web(웹)과 Alcoholism(알코올 중독증)의 합성어로서 일상생활에 지장을 느낄 정도로 지나치게 인터넷에 몰두하고, 인터넷에 접속하지 않으면 불안감을 느끼는 것으로 인터넷 중독증, 또는 인터넷 의존증이라고 한다.

엔스크린(N screen)의 한 종류로, TV 방송 시청 시 방송 내용을 공유하며 추가적인 기능을 수행할 수 있는 스마트폰, 태블릿PC 등을 의미하며 세컨드 스크린(second screen)이라고도 불린다. 이용자는 IP(Internet Protocol)망을 통해 TV와 스마트폰, PC 등을 연결하여 시청 중인 방송 프로그램의 관련 정보, 가수의 영상(VOD), 음원(AOD) 등을 이용하는 것이 가능하며, 소셜TV와 같이 시청 중에 SNS를 통해 다른 사람들과 의견을 공유할 수 있다.

2015년 국제 전기 통신 연합(ITU, International Telecommunication Union)에서 선정한 5세대 이동 통신(5G, Fifth Generation)의 공식 명칭이다. 일반적으로 이동통신 시장에서 사용하는 3세대(3G), 4세대(4G)라는 용어를 ITU에서 IMT-2000, IMT-Advanced로 사용한다. 2GHz 이하의 주파수를 사용하는 4G와는 달리, 26, 28, 38, 60GHz 등에서 작동하는 밀리미터파 주파수 대역을 이용하여 최대 20Gbps의 전송속도를 제공하는 것이 가능하다. ITU-R은 최고 전송속도(PDR, Peak Data Rate) 이외에도 여러 가지 최소 기술 성능 요구 사항을 발표했는데, 여기에는 500km/h의 이동속도, IMT-Advanced(4G)의 3배에 달하는 주파수의 효율, 종단 간 1ms 이하의 지연시간(Iatency), 1 내 사물 인터넷(IoT) 기기를 연결할 수 있는 대규모 사물 통신(mMTC), 사용자 체감 전송속도 100Mbps 이상 등이 있다.

답안

각 문항별로 제시된 답안 중 한 가지만 쓰면 됩니다.

멤스, MEMS, Micro Electro Mechanical System

위키노믹스, Wikinomics

웨바홀리즘, Webaholism

컴패니언 스크린, Companion screen

IMT-2020, International Mobile Telecommunications-2020

10. 다음 업무 프로세스와 관련된 다음 설명에서 괄호 ( )~ ()에 가장 적합한 답을 쓰시오.

(   ①   )은(는) 기업의 목표와 요구사항을 효과적으로 지원하기 위해 IT(정보기술) 인프라 각 부분의 구성과 구현 기술을 체계적으로 기술하는 작업이다. 기업의 최고 정보 책임자(CIO; Chief Information Officer)가 효율적인 IT 인프라와 전략의 확보 차원에서 조직의 업무 활동과 IT 간의 관계를 현재와 미래에 추구할 모습으로 체계화한 청사진이다.

(   ②   )은(는) 생산, 판매, 자재, 인사, 회계 등 기업의 전반적인 업무 프로세스를 하나의 체계로 통합 및 재구축하여 관련 정보를 서로 공유하고 이를 통해 신속한 의사결정 및 업무 수행이 가능하도록 도와주는 전사적 자원 관리 패키지 시스템이다. 정보기술 측면에서 최신 정보기술을 수용하며, 업무 측면에서는 산업별 선진 최적 프로세스를 내장하여 전사적 정보 관리 및 업무 프로세스 혁신을 지원할 수 있는 패키지 시스템이다. 

(   ③   )은(는) 기업 내에 운영되는 여러 종류의 플랫폼(DBMS, OS 등) 및 (      ), SCM, CRM ㄷ등의 애플리케이션들을 통합하고 유기적으로 처리할 수 있는 기반 기술을 통칭한다. 기존 방식은 각 시스템 간의 인터페이스 요구를 Point-to-Point 방식으로 연결했기 때문에 실제적인 정보 공유 및 통합 관리가 불가능하고, 유지보수가 어려웠으나 (      )은(는) 기업 내 애플리케이션들을 유기적으로 연결시켜 업무 프로세스들을 최대한 단순화, 자동화하고, 여러 시스템 간의 실시간 정보 조회가 가능하도록 한다.

(   ④   )은(는) 1980년대 미국 스탠퍼드대 윌리엄 밀러 교수가 (      ) 강좌를 개설한 것이 효시다. 기업 경쟁력 강화를 위해 기술적인 영역과 경영 원리를 구분하여 관리하던 기존의 사고를 버리고 이 두 가지를 연결한다는 개념이다. 죽 기술 분야에서 도출된 지식을 바탕으로 경영을 한다는 것이다.

(   ⑤   )은(는) 고객이 체감하는 서비스 수준을 향상시킬 목적으로 콜센터나 인터넷을 통해 접수되는 고객의 의견이나 불만사항을 접수부터 처리까지 실시간으로 관리하고 평가하는 고객 관리 시스템이다.

답안

각 문항별로 제시된 답안 중 한 가지만 쓰면 됩니다.

EA, Enterprise Architecture

기업 자원 관리, ERP, Enterprise Resource Planning

기업 애플리케이션 통합, 전사적 응용 통합, EAI, Enterprise Application Integration

기술 경영, MOT, Management Of Technology

VOC, Voice Of Customer

11. 다음 전산영어와 관련한 다음 설명에서 괄호 () ~ ()에 가장 적합한 답을 쓰시오.

이 용어(은)는 노드에 연결하기 위해 공공 회선을 사용함으로써 구성되는 망이다. 예를 들어, 데이터를 전송하기 위한 매체로서 인터넷을 사용한 망을 구성하도록 해주는 시스템이 많이 있다. 이러한 시스템은 승인된 사용자만 해당 망에 접근하도록 하고 데이터를 가로챌 수 없도록 하기 위하여 암호화 및 여타 보안 메커니즘을 사용한다.

이 용어(은)는 인터넷(Internet)과 같은 인터넷 프로토콜 네트워크를 통해 음성 통신과 멀티미디어 세션을 구현하는 전달 기법, 통신 프로토콜, 방법론, 기술의 집합이다. 자주 접할 수 있는 용어 중 이것과(와) 같은 뜻으로 종종 사용되는 것으로는 IP 전화, 인터넷 전화, 광대역 음성 통신, 브로드밴드 전화, 광대역 전화 등이 있다.

이 용어(은)는 데이터의 안전한 배포를 활성화하거나 불법 배포를 방지하여 인터넷이나 기타 디지털 매체를 통해 유통되는 데이터의 저작권을 보호하기 위한 시스템이다. 이 시스템은 보통 데이터를 암호화하여 인증된 사용자만이 접속할 수 있게 하거나, 디지털워터마크의 사용 또는 이와 유사한 방식으로 컨텐츠를 작성하여 컨텐츠가 제한 없이 보급되지 않도록 하여 지적재산권을 보호한다.

답안

각 문항별로 제시된 답안 중 한 가지만 쓰면 됩니다.

VPN, Virtual Private Network

VoIP, Voice over Internet Protocol

③ DRM, Digital Rights Management

2019년1회

1. 다음 Java 언어로 구현한 프로그램을 분석하여 그 실행 결과를 쓰시오.

class Super Object{

             public void print(){

          draw();

    }

    public void draw(){

          draw();

        System.out.println(“Super Object”);

    ]

}

class Sub Object extends Super Object{

             public void paint(){

          super.draw();

    }

    publicvoiddraw(){

          System.out.println(“Sub Object”);

    }

}

public class Test{

             public static void main(String[] args){

          Super Object a = new SubObject();

        a.paint();

    }

}

<2020년 3회 유사문제 출제됨>

답안

Sub Object

Super Object

* 답안 작성 시 주의 사항

최근 출제되고 있는 프로그램 코드 문제는 이 문제처럼 코드에 대한 설명이 전혀 없습니다.

그러므로 C나 JAVA 코드 문제를 풀 때는 실행 순서대로 디버깅을 수행하면서 문제 해결의 실마리를 찾는 습관을 들여야 합니다.

2. 다음 Java 언어로 구현한 프로그램을 분석하여 그 실행 결과를 쓰시오.

public class Test{   

    public static void main(String[] args){

          int i, sum = 0;

        for (i = 1; i <= 110; i++) {

                    if(i%4 == 0)

                sum = sum + 1;

        }

        System.out.printf(“%d”, sum);

    }

}

답안 : 27

해설

3. 다음 C 언어로 구현한 프로그램을 분석하여 괄호 ( ) ~ ( )에 가장 적합한 답을 쓰시오.

예) 1234567을 입력받으면 결과는 1+2+3+4+5+6+7 = 28 출력

[ 코드 ]

#include<stdio.h>

main()

{

             int input, sum = 0;

    scanf(“%d”, &input);

    while (1) {

          if (( ) == 0) // 답안 1

                    break;

        sum = sum + input % 10;

        input = input / ( ); // 답안 2

    }

    printf(“%d\n”, sum);

}

답안

input

10

4. SQL과 관련한 다음 설명에서 괄호 ( ) ~ ( )에 가장 적합한 답을 쓰시오.

관계형 데이터베이스에서 사용되는 SQL은 데이터베이스의 조작과 관리에 사용되는 프로그래밍 언어이다. 1974년 IBM 연구소에서 개발한 SEQUEL에서 유래한 SQL은 국제표준 데이터베이스 언어이며, 많은 회사에서 관계형 데이터베이스(RDB)를 지원하는 언어로 채택하고 있다. 관계대수와 관계해석을 기초로 한 혼합 데이터 언어이며, 데이터 구조의 정의, 데이터 조작, 데이터 제어 기능을 모두 갖추고 있다.

DCL은 이러한 SQL에서 데이터 관리를 목적으로 사용하는 언어이다. 주로 데이터의 보안, 무결성, 회복, 병행 수행 제어 등을 정의하는 데 사용된다. 그 중 ( )은(는) 데이터베이스 사용자에게 사용 권한을 부여하는데 사용하는 명령어이다.

( )은(는) ALL, SELECT, INSERT, DELETE, UPDATE, INDEX, ALTER 등의 다양한 권한을 다른 사용자에게 부여할 수 있으며, 부여받은 권한을 다른 사용자에게 다시 부여할 수 있는 권한을 부여하는 WITH GRANT OPTION 또한 존재한다.

예) GILDONG에게 STUDENT 테이블에 대한 모든 권한과 다른 사람에게도 권한을 부여할 수 있는 권한까지 부여한다.

( ) ALL ON STUDENT TO GILDONG WITH GRANT OPTION;

이와 반대로 부여된 권한을 취소하는 명령어는 ( )(이)라고 한다. 취소할 수 있는 권한의 종류는 (  )와(과) 동일하다. ( )(에)는 WITH GRANT OPTION을 취소할 수 있는 GRANT OPTION FOR가 있으며, 권한 해제 시 권한을 부여받았던 사용자가 다른 사용자에게 부여한 권한도 연쇄적으로 해제시키는 CASCADE가있다.

예) GILDONG에게 부여된 STUDENT 테이블에 대한 권한은 유지하고, 다른 사용자에게 권한을 부여할 수 있는 권한만 취소한다.

( ) GRANT OPTION FOR ALL ON STUDENT FROM GILDONG;

답안  GRANT   REVOKE

5. 데이터베이스와 관련된 다음 설명에서 각 지문  ~ 에 가장 적합한 답을 쓰시오.

(    )은(는) 기존의 관리 방법이나 분석 체계로는 처리하기 어려운 막대한 양의 정형 또는 비정형 데이터 집합으로, 스마트 단말의 빠른 확산, 소셜 네트워크 서비스의 활성화, 사물 네트워크의 확대로 데이터 폭발이 더욱 가속화됨에 따라 등장하였다. (    )이(가) 주목받고 있는 이유는 기업이나 정보, 포털 등이 (    )을(를) 효과적으로 분석하여 미래를 예측해 최적의 대응 방안을 찾고, 이를 수익으로 연결하여 새로운 가치를 창출할 수 있기 때문이다.

이렇게 실시간으로 발생하는 대용량의 연속적인 데이터의 흐름을 관리하는 시스템을 (    )(이)라고 한다. 연속적인 데이터의 흐름을 데이터 스트림이라고 하는데, (    )은(는) 이러한 데이터 스트림에 대해 등록된 질의를 연속적으로 수행할 수 있도록 대용량의 데이터 스트림 처리에 최적화되어 있다.

데이터를 데이터 베이스에 저장할 때 불필요하게 중복되어 릴레이션 조작 시 예기치 못한 곤란한 현상이 발생하는 것을 (    )(이)라고 한다. 의도와는 상관없이 원하지 않은 값들이 삽입되거나, 삭제되거나, 갱신 시 모순이 발생하는 현상들이 모두 (    )에 해당한다.

이러한 (    )을(를) 방지하기 위해 데이터들의 중복성 및 종속성을 배제하는 정규화를 수행한다. 테이블에 속한 모든 속성의 도메인이 원자 값만으로 되어 있는 정규형을 1NF라고 한다. 아래 그림은 1NF에서 (    )을(를) 제거하여 (    )을(를) 만드는 과정이다.

<Table R> 에서 함수적 종속관계를 보았을 때, C는 key에 해당하는 A와 B중 A에만 종속되는 (    )이므로 C를 테이블에서 분리하면 <Table R1>과 <Table R2>와 같이 (    )에 해당하는 테이블이 완성된다.

답안

각 문항별로 제시된 답안 중 한 가지만 쓰면 됩니다.

Big Data, 빅데이터

DSMS, 데이터 스트림 관리 시스템, Data Stream Management System

Anomaly, 이상

부분 함수 종속, 부분 함수적 종속

제 2정규형, 2NF

A C

6. 다음 릴레이션에 대한 ( 1 ), ( 2 )의 물음에 답하시오.

릴레이션 <사원>

고객번호이름성별주소
001이동규서울시
002방지혜
춘천시
003한동욱
안산시

(  1  ) <사원> 릴레이션의 차수는 얼마인가?

(  2  ) <사원> 릴레이션의 카디널리티는 얼마인가?

답안 ( 1 ) 4  ( 2 ) 3

7. 다음 트랜잭션과 관련된 다음 설명에서 괄호 ( )에 공통으로 들어갈 가장 적합한 답을 쓰시오.

트랜잭션은 데이터베이스에서 하나의 논리적 기능을 수행하기 위한 일련의 연산 집합으로서 작업의 단위이며, 데이터베이스 관리 시스템에서 회복 및 병행 수행 시 처리되는 작업의 논리적 단위이다. 하나의 트랜잭션은 정상적으로 종료될 경우 COMMIT 연산이 수행되어 변경 내용을 데이터베이스에 반영하며, 비정상적으로 종료될 경우 ROLLBACK 연산이 수행되어 모든 변경 작업을 취소하고 이전상태로 되돌린다.

이러한 트랜잭션이 갖추어야 할 특성으로는 (         ), 원자성(Atomicity), 일관성(Consistency), 영속성(Durability)이 있다.

(       )은(는) 한 트랜잭션이 데이터를 갱신하는 동안 이 트랜잭션이 완료되기 전에는 갱신중인 데이터를 다른 트랜잭션들이 접근하지 못하도록 성질이다. 여러 트랜잭션들이 동시에 수행되어도 그 결과는 순차적으로 실행된 결과와 같아야함을 의미한다. 예를 들어 A계좌와 B계좌가 존재하여 A계좌에서 B계좌로 일정 금액을 이체하는 트랜잭션을 수행할 때 다른 트랜잭션이 A계좌와 B계좌에 접근할 수 없어야 한다.

<2020년 1회 유사문제 출제됨>

답안 : 독립성, 격리성, Isolation

제시된 답안 중 한 가지만 쓰면 됩니다.

8. 다음 정보 보호 및 보안과 관련한 다음 설명에서 각 지문 ~ 에 가장 적합한 답을 쓰시오.

온라인상에서 범죄와 같은 불법적인 행위를 수행하기 위해 제작된 컴퓨터 프로그램으로, 공격용 툴킷이라고도 불린다. 악성 코드로 구성된 프로그램이 사용자를 속여 PC에 설치되면 불법적으로 정보를 수집하거나 PC의 자원을 사용하여 원하는 대상을 공격하는 용도로 사용된다. 키로거, 스파이웨어, 브라우저 하이잭커 등이 여기에 해당한다.

임의의 길이를 갖는 값을 입력받으면 고정된 길이의 값을 출력하는 함수다. 직접 접근할 수 있는 짧은 길이의 값이나 키가 존재하여 해당 주소에 빠른 접근이 가능하다. 이 때문에 매우 빠른 데이터 검색을 필요로 하는 컴퓨터 프로그램에서 주로 사용되며, 키에 따라 항상 일정한 값이 출력되기 떄문에 메시지의 오류나 변조를 탐지하는데 사용되기도 한다. 사용되는 주요 알고리즘으로는 미국 표준 기술 연구소(NIST, National Institute of Standards and Technology)에서 공표한 SHA가 있다. 그중 SHA-256은 2009년 출현된 비트코인(Bitcoin)의 암호화 기술로 채택된 바 있다.

데이터를 송수신하는 두 컴퓨터 사이, 종단 간 즉 TCP/IP 계층과 애플리케이션 계층(HTTP, TELNET, FTP 등) 사이에 위치하여 인증, 암호화, 무결성을 보장하는 업계 표준 프로토콜이다. 미국 넷스케이프 커뮤티케이션스사가 개발하였고, 마이크로소프트사 등 주요 웹 제품 업체가 채택하고 있다. 기본적으로 사용하기 위해서는 전용 인증서가 필요하며, 전송되는 데이터는 모두 암호화되어 전송하기 때문에 전송 도중 유출되어도 안전하다.

온라인상의 안전한 거래를 위해 Visa와 Master Card에서 개발한 프로토콜로, Microsoft, IBM, Netscape, VeriSign 등의 다양한 IT기술 전문 업체들의 지원을 받아 만들어졌다. 개인 계좌 정보나 신용 정보 등이 네트워크를 통해 노출되거나 위변조되는 것을 막으며, 메시지 암호화 방법과 2중 전자서명을 통해 기밀성과 무결성을 보장한다.

불법적인 해킹에 사용되는 악의적인 기능들을 제공하는 도구를 말한다. 해당 기능에는 백도어, 트로이 목마, 원격접근 등이 있다. 시스템의 취약점을 통해 설치되며, 설치와 동시에 자신이 들어온 경로와 관련 명령어들을 변조 및 은폐하고 관리자 권한을 탈취한다. 해커가 시스템의 민감한 정보를 수집하거나 네트워크상의 다른 시스템을 공격, 또는 추적 회피를 위한 중간 지점으로 이용하더라도 로그를 지워버릴 수 있어 탐지가 어렵다.

답안

각 문항별로 제시된 답안 중 한 가지만 쓰면 됩니다.

크라임웨어, Crimeware

해시 함수, Hash function

SSL, 보안 소켓 계층, Secure Sockets Layer

SET, 안전한 전자 거래, Secure Electronic Transaction

루트킷, Rootkit

10. 신기술 동향과 관련된 다음 설명에서 각 지문  ~ 에 가장 적합한 답을 쓰시오.

소프트웨어 유통방식의 근본적인 변화를 설명하는 개념으로, 소프트웨어의 여러 기능 중에서 사용자가 필요로 하는 서비스만 이용 가능하도록 한 소프트웨어이다. 공급업체가 하나의 플랫폼을 이용해 다수의 고객에게 소프트웨어 서비스를 제공하고, 사용자는 이용한 만큼 돈을 지급한다. 전통적 소프트웨어 비즈니스 모델과 비교할 대 가장 큰 차이점은 제품 소유의 여부다. 기존 기업용 소프트웨어는 기업 내부의 서버 등 장비에 저장해 이용한다는 점에서 고객이 소유권을 갖고 있었지만, 이것은 소프트웨어가 제품이 아닌 서비스, 즉 빌려 쓰는 모델이라는 점에서 기존 라이선스 모델과는 확연히 구분된다.

IT 서비스의 운영 및 관리를 돕기 위한 문서들의 집합으로, IT 조직이 기존의 기술 중심적인 운영에서 사용자들의 요구에 초점을 맞춘 고객 지향적인 운영방식을 채택함에 따라 각자 개별적인 IT 관리 관행을 만드는 것을 방지하기 위해 영국 정부가 다양한 IT 서비스들의 관리 방법들(Best Practice)을 모아 만든 표준적인 참조문헌이다.

여러 개의 하드디스크로 디스크 배열을 구성하여 파일을 구성하고 있는 데이터 블록들을 서로 다른 디스크들에 분산 저장하는 기술이다. 이 경우 블록들을 여러 디스크에서 동시에 읽거나 쓸 수 있으므로 다스크의 속도가 매우 향상된다. 하지만 한 디스크에만 결함이 발생해도 전체 데이터에 파일이 손상되는 문제가 발생한다. 이러한 문제점을 해결하기 위해 디스크 배열에 오류 검출 및 복구를 위한 여분의 디스크들을 추가함으로써, 오류가 발생한느 경우레도 원래의 데이터를 복구할 수 있다.

인텔과 마이크론이 합작하여 개발한 RAM과 플레시 메모리의 중간형태에 해당하는 비휘발성 메모리이다. 3D XPoint 기술을 활용하여 기존의 NAND 형태의 SSD보다 반응 속도(Iatency)와 내구성이 1,000배 뛰어나고, 집적도에 대해서는 DRAM보다 10배 더 높다고 알려져 있다. DRAM과 NAND 플래시 사이에 위치하여 초고속 캐쉬 메모리의 역할로 사용되어지고 있다.

인간뿐만 아니라 컴퓨터도 정보를 이해할 수 있도록 해주는 개념화 명세서로, 단어와 관계들로 구성된 일종의 사전이다. 특정 도메인에 관련된 단어들을 계층적 구조로 표현하고 이를 확장할 수 있는 추론 규칙을 포함한다. 시멘틱 웹을 구현할 수 있는 도구로서 활용되며, RDF, OWL, SWRL 등의 언어를 이용해 표현한다.

답안

각 문항별로 제시된 답안 중 한 가지만 쓰면 됩니다.

SaaS, 서비스형 소프트웨어, Software as a Service

ITIL, 정보기술 인프라 라이브러리, Information Technology Infrastructure Library

RAID, 복수 배열 독립 디스크, Redundant Array of Independent Disks

옵테인 메모리, Optane Memory

온톨로지, Ontology

11. 다음과 관련된 설명에서 각 지문  ~ 에 가장 적합한 답을 쓰시오.

이 용어는 예상치 못한 이벤트가 발생했다는 것을 프로그램에 알리는 신호를 의미하며, 예외라고도 불리다. 이 신호는 프로그램이 이벤트를 처리하기 위해 일시적으로 멈추거나, 하고 있었던 작업으로 돌아갈 수 있도록 한다. 이 신호를 받으면 프로세서는 현재 수행중인 작업을 멈추고, 그 상태를 저장한 다음, 핸들러 또는 ISR이라고 불리는 이벤트 처리 기능을 실행하여 응답한다.

운영체제에서 새로 설치된 하드웨어를 자동으로 구성하는 능력이다. 운영체제가 연결되는 장치를 자동으로 인식해 적절한 구동 장치르 설치하므로 사용자는 구동 장치의 설정은 신경쓰지 않고 장치를 연결하여 사용할 수 있다.

처리될 데이터나 연산의 중간 결과를 저장하는 CPU 내부에 위치한 특별한 고속 저장 공간이다. 플립플롭(Flip-Flop)과 래치(Latch)들을 병렬로 결합한 것으로 가장 빠른 메모리이다.

운영체제에서 가장 핵심적인 역할을 한다. 메모리나 프로세서와 같은 자원을 관리하거나, 시스템이 원활히 운영되도록 제어하는 역할을 수행한다. 일반적으로 종료된 입출력 연산과 같이 서비스에 대한 경쟁적인 모든 요청들을 처리하는 인터럽트 처리기, 프로그램들의 처리 시간을 어떤 순서대로 나눌지 결정하는 스케쥴러, 그리고 각각의 프로세스에게 권한을 부여하는 관리자를 포함한다.

이 장치는 메모리 내부 데이터의 물리적 위치와는 관계없이 거의 동일한 시간 내에 데이터 항목들을 읽거나 쓸 수 있다. 데이터를 읽는 것만 가능한 ROM과 달리, 데이터를 읽고 쓰는 것이 가능하다. 또한 이것은 휘발성이라 이것에 저장된 데이터든 전원이 내려가면 곧바로 손실된다.

답안

각 문항별로 제시된 답안 중 한 가지만 쓰면 됩니다.

Interrupt

PnP, Plug and Play

Register

Kernel

RAM, Random Access Memory

2019년2회

1. 다음 Java 언어로 구현한 프로그램을 분석하여 그 실행 결과를 쓰시오.

public class Test{

             public static void main(String[] args){

          int num Ary[] = new int[5];

        int result = 0;

        for(int i = 0; i < 5; i++)

                    numAry[i] = i+1;

        for(int i:numAry)

                    result += i;

       System.out.printf(“%d”, result);

    }

}

답안 : 15

2. 다음 Java 언어로 구현한 프로그램을 분석하여 그 실행 결과를 쓰시오.

public class Test{

             public static int[] arr(int[] a) {

          int i, j, sw, temp, n = 5;

        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;

        }

        return a;

    }

    public static void main(String[] args){

          int i;

        int n[] = {4,3,5,2,10};

        arr(n);

        for(i = 0; i < 5; i++)

                    System.out.println(n[i]);

    }

}

답안

10

5

4

3

2

* 답안 작성 시 주의 사항

프로그램의 실행 결과는 출력 양식을 정확히 지켜야 합니다.

– println을 통해 출력하였으므로 배열 n의 요소들을 출력할 때 마다 줄 나눔이 적용되어야 합니다.

3. 다음 C 언어로 구현한 프로그램을 분석하여 괄호 (   )에 가장 적합한 답을 쓰시오.

[ 코드 ]

#include<stdio.h>

main()

{

             char ch, str[] = “12345000”;

    int i, j;

    for (i = 0; i < 8; i++) {

          ch = str[i];

        if ( (  답작성란  ) )

                    break;

    }

    i–;

    for (j = 0; j < i; j++) {

          ch = str[j];

        str[j] = str[i];

        str[i] = ch;

        i–;

    }

    printf(“%s”, str);

}

[ 실행 결과 ]   54321000

000

답안 : ch == ‘0’

* 답안 작성 시 주의 사항

프로그램의 실행 결과는 출력 양식을 정확히 지켜야 합니다.

– println을 통해 출력하였으므로 배열 n의 요소들을 출력할 때 마다 줄 나눔이 적용되어야 합니다.

해설

4. 다음 <회원> 릴레이션에서 대체키에 해당하는 속성의 개수를 적으시오. 단 밑줄이 그어진 속성은 기본키로 지정된 속성이다.

< 회원 >

ID이름소속지역전화번호
20090001허진옥테니스수원010-5146-7812
2009112김춘삼테니스서울010-9711-1845
2010323신민주탁구인천010-4848-7915
2017794임꺽정야구성남010-5348-8776
2018655김형규볼링서울NULL

답안 : 1 또는 1개

5. 다음 데이터베이스 관리 시스템의 내용을 참고하여 괄호 ( , )에 들어갈 알맞은 DBMS 구성 요소 명칭을 작성하시오.

데이터베이스 관리 시스템(Database Management System : DBMS)이란 응용 프로그램과 데이터베이스 사이의 중재자로서 사용자의 요구사항에 효율적으로 서비스를 수행하기 위하여 제공되는 데이터베이스 관리 소프트웨어이다. DBMS는 물리적인 데이터 저장 구조와 외부 인터페이스 사이의 다양한 소프트웨어들로 구성되어 있다.

답안

각 문항별로 제시된 답안 중 한 가지만 쓰면 됩니다.

DDL 컴파일러, DDL 처리기, DDL 번역기

트랜잭션 관리자

6. 다음 <SCORE> 테이블에 대해 <SQL>을 수행한 결과를 적으시오.

<SCORE>

DEPTDBTERMALGO
001100NULL100
002NULLNULL0
003100100200
SELECT SUN(DB) FROM SCORE;
SELECT SUN(TERM) FROM SCORE;
SELECT SUM(ALGO) FROM SCORE;

<SQL>

답안 : 200, 100, 300

SQL문은 3개인데, 답란은 1개입니다. 답안 작성에 대한 별도의 조건이 제시되지 않았으므로 각 SQL문의 결과를 구분할 수 있도록 작성하면 됩니다.

7. 데이터베이스와 관련한 다음 <처리 조건>에 부합하는 SQL문을 작성하시오.

<처리 조건>

1. 테이블명은 학생으로 정의한다.

2. 학생 테이블의 구조는 다음과 같다.

3. 학생 테이블에 학번이 193739, 성명이 ‘홍길동’, 학년이 3, 과목이 ‘경영학개론’, 연락처가 ‘010-1234-1234’인 학생의 정보를 입력하시오.

4. 문자형은 싱글(작은)따옴표로 입력하고 문장의 끝에는 세미콜론(;)을 반드시 표기하시오.

답안

INSERT INTO 학생 VALUES(193739, ‘홍길동’, 3, ‘경영학개론’, ‘010-1234-1234’);

8. 다음 정보 보호 및 보안과 관련한 다음 설명에서 각 지문 ~ 에 가장 적합한 답을 쓰시오.

독일 지멘스사의 원격 감시 제어 시스템(SCADA)의 제어 소프트웨어에 침투하여 시스템을 마비하게 할 목표로 제작된 악성코드이다. 원자력 발전소와 송,배전망, 화학 공장, 송유·가스관과 같은 산업기반 시설에 사용되는 제어 시스템에 침투하여 오작동을 유도하는 명령 코드를 입력해서 시스템을 마비시킨다.

수집된 후 저장은 되어 있지만 분석에 활용되지는 않는 다량의 데이터를 의미한다. 향후 사용될 가능성이 있다는 이유로 삭제되지 않아 공간만 차지하고 있는 데이터로, 단순히 하드뿐만 아니라 공유 서버 등 여러 플랫폼에 걸쳐 존재한다. 이러한 데이터들은 스토리지 비용 증가의 원인이 되고, 정보 탐색의 걸림돌이 될 뿐만 아니라, 보안 위협까지 초래할 수 있어 기업의 기회와 경쟁력, 생산성 등에 손실을 줄 수 있다.

스마트폰 이용자가 도난당한 스마트폰의 작동을 웹사이트를 통해 정지할 수 있도록 하는 일종의 자폭 기능이다. 이 기능을 통해 스마트폰의 불법 유통, 도난이나 분실을 어느 정도 막을 수 있다. 원격 잠김, 개인 정보 삭제 기능 등이 있으며, 단말기의 펌웨어나 운영체제에 탑재된다.

다양한 IT 기술과 방식들을 이용해 조직적으로 특정 기업이나 조직 네트워크에 침투해 활동 거점을 마련한 뒤 때를 기다리면서 보안을 무력화시키고 정보를 수집한 다음 외부로 빼돌리는 형태의 공격을 말한다. 공격 방법에는 내부자에게 악성코드가 포함된 이메일을 오랜 기간 동안 꾸준히 발송해 한 번이라도 클릭되길 기다리는 형태, 악성코드가 담긴 이동식 디스크(USB) 등으로 전파하는 형태, 악성코드에 감염된 P2P 사이트에 접속하면 악성코드에 감염되는 형태 등이 있다.

정보 보안을 위한 보안 요건 중의 하나로 기밀성(Confidentiality), 무결성(Integrity)과 함께 보안의 3대 목표라고도 불린다. 인가받은 사용자는 언제라도 방해받지 않고 정보에 접근할 수 있음을 의미하며, 보안 위협 중 가로막기(Interruption)에 해당하는 DoS/DDoS 공격, 시스템 및 접속경로 파손 등에 의해 저해된다.

답안

각 문항별로 제시된 답안 중 한 가지만 쓰면 됩니다.

스턱스넷, Stuxnet

다크 데이터, Dark Data

킬 스위치, Kill Switch

APT, 지능형 지속 위협, Advanced Persistent Threats

가용성, Availability

10. 신기술 동향과 관련된 다음 설명에서 각 지문  ~ 에 가장 적합한 답을 쓰시오.

아파치 라이선스(Apache License) 형태로 배포되고 있는 공개 소스 소프트웨어 기반의 클라우드 운영체제로, 클라우드 컴퓨팅 환경을 개발하고 관리할 수 있는 플랫폼이다. 서비스형 인프라스트럭처(IaaS, Infrastructure as a Service)의 형태를 가지며, 주로 리눅스 기반으로 운용과 개발이 이루어진다. 사용자가 데이터센터의 자원들을 손쉽게 제어할 수 있도록 웹을 통해 다양한 기능을 제공한다. 2010년 랙스페이스(Rackspace)와 미 항공우주국(NASA)이 처음 프로젝트를 시작하였고, 2012년 지속적인 유지보수 및 기능 추가를 위해 비영리 단체를 세웠으며, 현재는 AMD, 인텔, IBM, HP 등 150개 이상의 회사가 참가한 거대 프로젝트가 되었다.

P2P 네트워크를 이용하여 온라인 금융 거래 정보를 온라인 네트워크 참여자(peer)의 디지털 장비에 분산 저장하는 기술을 의미한다. P2P 네트워크 환경을 기반으로 일정 시간 동안 반수 이상의 디지털 장비에 저장된 거래 내역을 서로 교환·확인·승인하는 과정을 거쳐, 디지털 서명으로 동의한 금융 거래 내역만 하나의 블록으로 만든다. 이렇게 생성된 블록은 기존의 블록에 연결되고, 다시 복사되어 각 사용자의 디지털 장비에 분산 저장된다. 이로 인해 기존 금융 회사들이 사용하고 있는 중앙 집중형 서버에 거래 정보를 저장할 필요가 없어 관리 비용이 절감되고, 분산 저장으로 인해 해킹이 난해해짐에 따라 보안 및 거래 안전성도 향상된다.

서비스의 질’을 의미하는 약자로, 네트워크에서 일정 기준 이하의 지연 시간이나 데이터 손실률 등을 보증하기 위한 서비스 규격이다. 전송 우선순위에 따라 네트워크 트래픽을 분류하고 우선순의가 높은 트래픽을 먼저 전송하게 된다. 화상 화의, 영상 전화, 동영상 전송 등의 실시간 프로그램은 이것을 사용함으로써 네트워크 대역폭을 가장 효율적으로 사용할 수 있게 된다.

저속 전송 속도를 갖는 홈오토메이션 및 데이터 네트워크를 위한 표준 기술이다. 버튼 하나로 하나의 동작을 잡아 집안 어느 곳에서나 전등 제어 및 홈보안 시스템 VCR on/off 등을 할 수 있고, 인터넷을 통한 전화 접속으로 홈오토메이션을 더욱 편리하게 이용하려는 것에서 부터 출발한 기술이다. IEEE 802.15.4에서 표준화가 진행되어, 듀얼 PHY 형태로 주파수 대역은 2.4GHz, 868/915MHz를 사용하고, 모뎀 방식은 DSSS(Direct Sequence Spread Spectrum)이며, 데이터 전송 속도는 20~250Kbps이다.

초정밀 반도체 제조기술을 바탕으로 센서, 액추에이터(actuator) 등 기계 구조를 다양한 기술로 미세 가공하여 전기기계적 동작을 할 수 있도록 한 초미세 장치이다. 일반적으로 작은 실리콘 칩 위에 마이크로 단위의 작은 부품과 이들을 입체적으로 연결하는 마이크로회로들로 제작되며, 정보기기의 센서나 프린터 헤드, HDD 자기 헤드, 기타 환경, 의료 및 군사 용도로 이용된다. 최근의 초소형이면서 고도의 복잡한 동작을 하는 마이크로시스템이나 마이크로머신들은 대부분 이 기술을 사용한다.

답안

각 문항별로 제시된 답안 중 한 가지만 쓰면 됩니다.

오픈스택, OpenStack

블록체인, Blockchain

QoS, Quality of Service, 서비스 품질

지그비, Zigbee

멤스, MEMS, Micro Electro Mechanical System

 11. 다음과 관련된 설명에서 각 지문  ~ 에 가장 적합한 답을 쓰시오.

이것은 데이터의 안전한 보급을 활성화하거나 불법 보급을 방지하여 인터넷이나 기타 디지털 매체를 통해 유통되는 데이터의 저작권을 보호하기 위한 시스템이다. 일반적으로 이 시스템은 데이터를 암호화하여 허가된 사용자만이 접속할 수 있도록 하거나, 콘텐츠에 디지털 워터마크를 표시하거나, 또는 비슷한 방법을 이용하여 콘텐츠가 자유롭게 배포되는 것을 막아 지적 재산을 보호한다.

이것은 공공 회선을 사용해 노드를 연결하는 것으로 구축되는 네트워크이다. 인터넷을 데이터 전송 매체로 사용하는 네트워크를 생성할 수 있도록 하는 시스템이 다수 존재한다는 것을 예로 들 수 있다. 이러한 시스템은 인증된 사용자만이 네트워크에 접속할 수 있도록 하고 데이터가 도용될 수 없도록 하기 위해 암호화 및 기타 보안 메커니즘을 사용한다.

이것은 기능을 제어하기 위해 위치 데이터를 사용하는 일반적인 수준의 프로그램 단계 서비스들이다. 오늘날 대부분의 이것들을 정보제공 서비스, 또는 오락 서비스와 같은 서비스와 같은 소설 네트워크 서비스에서 많이 이용되곤 한다. 또한 모바일 네트워크를 통하여 모바일로 접속할 수 있으며, 모바일 기기의 지리적 위치에 대한 정보를 사용한다. 스마트폰과 태블릿 시장의 확장에도 이것은 점점 더 중요해 지고 있다.

이것은 단일 시스템을 표적으로 훼손된(보통 트로이 목마에 감염된) 여러 시스템을 사용해 서비스 거부 공격을 유발하는 공격법이다. 표적이 된 시스템 및 해커의 제어 하에 분산 공격에 부당하게 사용된 모든 시스템이 이 공격의 피해자가 된다.

이것은 전통적인 PSTN 회선 전송망이 아니라 IP를 사용해 음성 데이터를 패킷 형태로 송신하는 것을 통해 사용자가 인터넷을 전화 통화용 송신매체로 사용할 수 있도록 하는 하드웨어 및 소프트웨어 분류를 말한다. 이것의 장점 중 하나는 인터넷을 통해 개인 이메일을 발송하는 것과 마찬가지로, 사용자가 인터넷 접속비로 지불하는 비용 외에 인터넷을 사용한 전화 통화로 추가 비용이 발생하지 않는다는 것이다.

답안 DRM, Digital Rights Management VPN, Virtual Private Network LBS, Location Based Service DDoS, Distributed Denial of Service

VoIP, Voice over Internet Protocol

2019년 3회차(과년도기출에서 대부분 출제)

1. 다음은 정수를 입력받아 그 정수를 소인수분해하는 프로그램을 c언어로 구현한 것이다. <코드>를 분석하여 괄호 (1)~(2)에 들어갈 가장 적당한 답을 쓰시오. 단,-1을 입력할 경우 프로그램은 종료된다.

<코드>

#include<stdio.h>

int main(){

             int n,a;

             scanf(%d,&n);

             if(      (1)        )

                           break;

             for(a=2; a <= n; ++a)

                           while(n% (     (2)       ) == 0 {

                                        n /=a;

                                        printf(%d,a);

                           }

}

답(1) n == -1      (2) a

2. 자바(3점) 실행 결과를 쓰시오

public class Gisa {

             public static void main(String[] args) {

                           int a, b = 10;

                           a = b++;

                           System.out.println(a);

                           a = ++b;

                           System.out.println(a);

                           a = b–;

                           System.out.println(a);

                           a = –b;

                           System.out.println(a);}}

10                  

12                  

12                

10                

[2~3] <학생> 테이블을 참고하여 다음의 각 질문에 답하시오(단,속성이 없는 것은 null값을 의미한다.)

<학생>

학번이름학년과목주소
1001이상인1정보대구
2001남기욱2사무부산
3001권지온3사무 
4001이상인2정보포항
5001고민재4정보울산

출력 문제 (언어 강의)

3. 자바(6점)

답안: min, num[i]

최소값 (17년1회 기사 기출풀이)

4. C언어(6점)

답안: n == -1, a

 소인수분해 (3강), -1 입력시 종료하라고 명시되어 있음

출제자 의도를 생각해 보면 소인수분해는 자연수(1,2,3,…양의 정수)를 소인수의 곱으로 나타낸 것이므로 음수는 고려할 대상이 아니라고 볼 수 있음.

* 데이터베이스(25점)

1. (10점)

답안: Trigger(영문 입력), 이벤트 또는 event(한글 또는 영문), max, 선분, 변경

– 16년 3회 기사 기출풀이 강의

2. SQL(3점)

답안: CASCADE 

– 4

3. (12점)

 답안: 5, 4, 중복에 대한 설명, 사원번호

차수 5, 카디널리티 4, 사원이름이 기본키가 안되는 이유: 남승훈 중복발생, 기본키로 적합한 속성-사원번호 (1강) 

* 신기술(25점)

1. 보안 용어(15점)

 ITIL: 19년 1회 기사기출 강의

 트러스트존: 18년 3회 기사기출 강의 

 BCP: 18년 2회 기사기출 강의

 타이포스쿼팅: 18년 1회 기사기출 강의(영문 또는 한글)

 DDOS: 18년 2회 기사기출 강의(영문 4자리)

2. 신기술 용어(10점)

 RAID: 19년 1회 기사기출 강의

 AJAX: 18년 1회 기사기출 강의 

 QOS: 18년 2회 기사기출 강의

 SDN: 17년 3회 기사기출 강의

 NFC: 12년 3회 기사기출 강의

* 업무프로세스(15점)

1. 용어(7점)

답안: SCP, SCE

– 17년 2회 기사 기출풀이 강의

2. 용어,지문속답(8점)

답안: DSS, SIS, Mypage

– 17년 2회 기사 기출풀이 강의

* 전산영어(10점)

답안: Field, DBMS(풀네임 또는 약어), DBA(풀네임 또는 약어)

 17년 2회 기사 기출문제(기출풀이 강의)

2020년1회

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

답안

1. 동일한 테스트 케이스로 반복 실행하면 더 이상 새로운 결함을 발견할 수 없으므로 주기적으로 테스트 케이스를 점검하고 개선해야 한다.

OR

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

OR

3. 잠재된 수 많은 결함을 발견하기 위해서는 테스트 케이스를 정기적으로 개선하는 것이 필요하다는 원리이다.

OR

4. 같은 테스트 케이스를 가지고 테스트를 계속해서 반복하면 내성으로 인해 결국은 버그가 발견되지 않는다.

* 이러한 현상을 방지하기 위해서는 테스터가 적극적인 자세를 가지고 지속적으로 테스트케이스를 검토하고 개선해야한다.

2. 데이터 마이닝의 개념을 간략히 설명하시오. (약술형)

답안

1. 많은 데이터 가운데 숨겨져 있는 유용한 상관 관계를 발견하여, 미래에 실행 가능한 정보를 추출해내고 의사 결정에 이용하는 과정을 말한다.

OR

2. 대규모로 저장된 데이터 안에서 체계적이고 자동적으로 통계적 규칙이나 패턴을 찾아내는 기법

OR

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

해설

* 데이터 마이닝(Data Mining)을 통해 성공한 대표적 기업으로는 미국의 전자상거래 업체 아마존과 스트리밍 사이트 넷플릭스가 거론된다. 아마존은 고객이 지금까지 아마존에서 검색하고 구입한 책의 목록을 통해 고객의 취향과 관심 영역을 파악해 고객이 관심을 갖고 있는 분야의 책이 나올 때마다 잊지 않고 꼬박꼬박 알려주는 방식으로 대기업의 초석을 놓았다. 넷플릭스 역시 회원이 전에 보았던 영화를 바탕으로 좋아할 만한 영화를 추천하는 ‘시네매치’서비스를 개발해 개인화 마케팅을 진행하고 있다.

3. 프로토콜에 필요한 3요소

답안 : 구문, 의미, 타이밍

4. 다음 설명에 부합하는 마크업 언어는 무엇인지 영문 약어로 쓰시오.

[보기]

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

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

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

유니코드를 사용하여 전 세계의 모든 문자를 처리 가능하며 장치와 시스템에 독립적이다.

답안 : XML

해설

XML은 W3C에서 개발된, 다른 특수한 목적을 갖는 마크업 언어를 만드는데 사용하도록 권장하는 다목적 마크업 언어이다.

5. 다음 설명 중 빈 칸 (  )에 가장 부합하는 프로그래밍 언어를 영문 약어로 쓰시오.

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

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

답안 : JSON

해설

비동기 브라우저 / 서버 통신(AJAX)을 위해 ‘속성-값 쌍’, ‘키-값 쌍’으로 이루어진 데이터 오브젝트를 전달하기 위해 인간이 읽을 수 있는 텍스트를 사용하는 개방형 표준 포맷

형식 : { String key : String value }

{

“firstName” : “Hong”,

  “lastName” : “GilDong”,

  “age” : 25,

  “email” : “[email protected]

}

6. 학생(Student) 테이블에 컴퓨터과 학생 50명, 인터넷과 학생 100명, 사무자동화과 학생 50명에 관한 데이터가 있다고 가정할 때 다음에 주어지는 SQL문을 각각 실행시키면 결과 튜플 수는 각각 몇 개인가?(단, DEPT는 학과 컬럼명임)

SELECT DEPT FROM STUDENT;

SELECTDISTINCT DEPT FROM STUDENT;

SELECTCOUNT(DISTINCT DEPT) FROM STUDENT WHERE DEPT = ‘컴퓨터과’

답안 : 200, 3, 1

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

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

8. 트랜잭션 특성 ACID 중 일관성, 영속성 외 2개 특성 입력

답안 : Atomic(원자성), Isolation(고립성, 독립성)

해설

원자성 : 트랜잭션의 가장 기본적인 특성으로 트랜잭션 내의 연산은 반드시 모두 수행되어야 하며 그렇지 못한 경우 모두 수행되지 않아야함

일관성 : 트랜잭션이 정상적으로 완료된 후 언제나 일관성있는 데이터베이스 상태가 되어야 하며, 결과에 모순이 생겨서는 안됨

고립성, 독립성 : 하나의 트랜잭션이 수행 중에는 다른 트랜잭션이 접근할 수 없고 각각의 트랜잭션은 독립적이어야 함

영속성, 지속성 : 지속성이라고도 하며, 트랜잭션이 성공적으로 완료된 후 결과는 지속적으로 유지되어야 함

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

공격자가 패킷의 출발지 주소(Address)나 포트(Port)를 임의로 변경해 출발지와 목적지 주소(또는 포트)를 동일하게 함으로써, 공격 대상 컴퓨터의 실행속도를 느리게 하거나 동작을 마비시켜 서비스 거부 상태에 빠지도록 하는 공걱 방법. 수신되는 패킷 중 출발지 주소(또는 포트)와 목적지 주소(또는 포트)가 동일한 패킷들을 차단함으로써 공격을 피할 수 있다.

답안 : 랜드어택(Land Attack)

해설

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

10. 128비트 암호화 해시함수이다. RFC 1321로 지정되어 있으며, 주로 프로그램이나 파일이 원본 그대로인지를 확인하는 무결성 검사등에 사용된다. 1991년 로널드 라이베스트(Ronald Rivest)가 예전에 쓰이던 MD4를 대체하기 위해 고안했다.   답안 : MD5

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

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

답안 : 결합도, 응집도

12. [C언어] 버블 정렬 오름차순 문제

#include<stdio.h>

#define SIZE 5

int main(void){

             int arr[SIZE] = {75, 100, 95, 50, 85};

    int i, j, temp;

    for(i = 1; i < SIZE; i++) {

                       for(j=0; j < SIZE-i; j++) {

                              if(arr[j] > arr[j+1]) {

                                     temp = arr[j];

                              arr[j] = arr[j+1];

                              arr[j+1] = temp;

                    }

            }

    }

    for(i=0; i<SIZE; i++) {

          printf(“%d”, arr[i]);

    }

}

답안 : 50 75 85 95 100

13. [Java] 배열 결과 입력

public class Test{

                           staticint nSize = 4;

    public static void main(String[] args){

          int[] arr = newint[nSize];

        makeArray(arr);

        for(int i=0; i<nSize; i++) {

                    System.out.print(arr[i] + ” “);

        }

    }

    public static void make Array(int[] arr){

          for(int i=0; i<nSize; i++) {

                    arr[i] = i;

        }

    }

}

답안 : 0 1 2 3

14. [C언어] switch ~ case 결과 입력 

#include <stdio.h>

main() {

              int c = 1;

              switch (3) {

              case 1: c += 3;

              case 2: c++;

              case 3: c = 0;

              case 4: c += 3;

              case 5: c -= 10;

              default: c–;

              }

              printf(“%d”, c);

}

답안 : -8

해설

break문 생략 : 일치하는 실행문부터 switch문이 종료될 때 까지 모든 문장 실행

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

답안 : 헤더(Header)

16. LoC 기법 개발 기간 계산식과 답 입력 (총라인 30000, 개발자 5명 월평균 300라인)

답안 : (30,000/300)/5 = 20개월

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

답안 : 물리계층(Physical, 1계층)

18. 다음 설명 중 빈 칸 ( 1 ~ 3 )에 가장 부합하는 애플리케이션 성능 측정을 위한 지표를 쓰시오.

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

답안 : 처리량(Throughput), 응답시간(Response Time), 경과시간 또는 반환시간(Turnaround Time)

해설

처리량 : 애플리케이션이 주어진 시간에 처리할 수 있는 트랜잭션의 수로 웹 애플리케이션의 경우 시간당 페이지 수로 표현하기도 한다.

응답시간 : 사용자 입력이 끝난 후, 애플리케이션의 응답 출력이 개시될 때까지의 시간으로, 웹 애플리케이션의 경우 메뉴 클릭 시 해당 메뉴가 나타나기까지 걸리는 시간을 말한다.

경과시간 : 애플리케이션에 사용자가 요구를 입력한 시점부터 트랜잭션 처리 후 그 결과의 출력이 완료할 때까지 걸리는 시간을 말한다.

자원 사용율 : 애플리케이션이 트랜잭션 처리하는 동안 사용하는 CPU 사용량, 메모리 사용량, 네트워크 사용량을 말한다.

19. 비정규화(Denormalization)의 개념 : 반정규화에 대한 문제 (약술형)

답안

1. 시스템의 성능 향상, 개발 과정의 편의성, 운영의 단순화를 목적으로 수행되는 의도적인 정규화원칙 위배행위를 말한다.

2. 정규화된 엔터티, 속성, 관계에 대해 성능 향상과 개발 운영의 단순화를 위해 중복, 통합, 분리 등을 수행하는 데이터 모델링 기법 / 둘 이상의 릴레이션들에 대하여 조인한 결과를 빈번하게 이용하는 경우, 비정규화 함으로써 질의응답 시간이 단축될 수 있다.

20. 다음은 어떤 프로그램의 구조를 나타낸다. Fan-in의 수가 가 2 이상인 모듈의 이름을 쓰시오.

답안 : f, h

해설

Fan-in : 상위 / Fan-out : 하위

2020년 2회

1. 한국아이티 보안관제실에서 근무한다. 정보시스템 운영 중 서버가 다운되거나 자연 재해나 시스템 장애 등의 이유로 대고객 서비스가 불가능한 경우가 종종 발생한다. 이와 같은 상황에서의 비상사태 또는 업무중단 시점부터 업무가 복구되어 다시 정상가동 될 때까지의 시간 을 의미하는 용어를 쓰시오. (한글 또는 영어)

답안 : 목표 복구 시간 / RTO(Recovery Time Objective)

2. 파이썬 문제

“a={‘일본’, ‘중국’, ‘한국’}

a.add(‘베트남’)

a.add(‘중국’)

a.remove(‘일본’)

a.update({‘홍콩’,’한국’,’태국’})

print(a)”

답안 : {‘중국’, ‘한국’, ‘베트남’, ‘홍콩’, ‘태국’} {‘한국’, ‘중국’, ‘베트남’, ‘홍콩’, ‘태국’} , {‘베트남’, ‘중국’, ‘한국’, ‘홍콩’, ‘태국’}, … 등 (순서 상관없이 집합 요소만 포함) 

* 애매한 문제

3. 비동기식 자바스크립트 XML 통신 기법

답안 : AJAX

4. 고객의 요구사항 변화에 유연하게 대응하기 위해 일정한 주기를 반복하면서 개발하는 방법론, 워터폴에 대비되는 방법론으로 최근 회사에서 각광받는 방법론 (시제품)

답안 : 애자일(Agile)

5. 자바 객체 생성 (   ) 채우기

class Parent{

    void show(){

        System.out.println(“”Parent””);

    }

}

class Child extends Parent{

    void show(){

        System.out.println(“”Child””);

    }

}

public class Main{

    public static void main(String[] args){

        Parent pa = (       ) Child();

        pa.show();

    }

}

출력결과  Child

답안 : new

6. SQL SELECT 작성 ( in 사용 ) 

학번, 이름을 학생 테이블에서 3, 4학년인 학생을 검색

– IN 함수 사용

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

7. 트랜잭션 Rollback에 대해 설명하시오.

답안 : 트랜잭션 실패 시 트랜잭션 실행 이전으로 되돌리는 데이터 제어어

8. 무결성과 인증을 보장하는 인증헤더(AH)와 기밀성을 보장하는 암호화(ESP)를 이용한 IP 보안 프로토콜, 망 계층(network layer, 3계층)인 인터넷 프로토콜(IP)에서 보안성을 제공해주는 표준화 기술

답안 : IPSec

9. 애플리케이션을 실행하지 않고, 소스 코드에 대한 코딩 표준, 코딩 스타일, 코드 복잡도 및 남은 결함을 발견하기 위하여 사용 ( 테스트 자동화 도구 유형 )

답안 : 정적 분석 도구 OR 정적 분석 OR 정적 테스트

10. 한 객체의 상태가 바뀌면 그 객체에 의존하는 다른 객체들한테 연락이 가고 자동으로 내용이 갱신되는 방식으로 일대다 (one-to-many) 의존성을 가지는 디자인 패턴. 서로 상호작용을 하는 객체 사이에서는 가능하면 느슨하게 결합(Loose coupling)하는 디자인을 사용해야 한다.(영문)

답안 : Observer(Pattern)

11. 휴대 전화를 비롯한 휴대용 장치를 위한 운영 체제와 미들웨어, 사용자 인터페이스 그리고 표준 응용 프로그램(웹 브라우저, 이메일 클라이언트, 단문 메시지 서비스(SMS), MMS 등을 포함하고 있는 소프트웨어 스택이자 리눅스 모바일 운영 체제이다. 개발자들이 자바와 코틀린 언어로 응용 프로그램을 작성할 수 있게 하였으며, 컴파일된 바이트코드를 구동할 수 있는 런타임 라이브러리를 제공한다.

답안 : 안드로이드

12. SQL 인덱스 작성 – student 테이블의 name 속성에 idx_name 이름의 인덱스 생성

답안 : CREATE INDEX idx_name ON student(name);

13. HTTP, HTTPS, SMTP를 통해서 XML 기반의 데이터를 주고 받는 프로토콜 Envelop, Header, Body로 구성 됨 /

      웹 서비스(Web Service) 방식에서 파일 전송은 HTTP 기반의 (     )을 사용하여 송수신한다. (    ) 대신 레스트 풀(RESTful) 프로토콜(Protocol)로 대체할 수 있다.

답안 : SOAP

14. SQL Injection을 설명하시오(약술형)

답안

1. 사용자의 입력값 등 외부 입력값이 SQL 쿼리에 삽입되어 공격자가 원하는 SQL 쿼리문을 실행하는 공격기법

2. 웹 응용 프로그램에 강제로 SQL 구문을 삽입하여 내부 데이터베이스(DB) 서버의 데이터를 유출 및 변조하고 관리자 인증을 우회하는 공격 기법.

15. UI 설계 원칙에서 정확하고 완벽하게 사용자의 목표가 달성될 수 있도록 제작하는 원칙
(학습성, 직관성, 유연성에 대한 표는 보기에 주어짐)

답안 : 유효성

16. a.txt 에 대해 권한 부여 (8진법 표현)

사용자에게 읽기,쓰기 실행 권한 부여
그룹에게 읽기, 실행 권한 부여
그 외에게 실행 권한 부여

답안 : Chmod 751 a.txt (CHMOD 751 a.txt)

17. 전세계 오픈된 정보를 하나로 묶는 방식. linked data와 open data의 합성어 (영문 풀네임)

답안 : Linked open data

18. 데이터베이스 설계 순서 (보기에 개념적 설계, 논리적 설계, 물리적 설계 주어짐, 요구사항 분석 -> (    ) -> (     ) -> (       ) -> 구현)

답안 : 개념적 설계 -> 논리적 설계 -> 물리적 설계

19.  자바 상속, super 키워드 이용 결과값 묻는 문제

classA{

    int a;

    A(int a) {

        this.a = a;

    }

    void display(){

        System.out.println(“”a=””+a);

    }

}

class B extends A{

    B(int a) {

        super(a);

        super.display();

    }

}

public class Main{

    public static void main(String[] args){

        B obj = new B(10);

    }

}

답안 : a=10

20. 소프트웨어 개발 과정에서 변경 사항을 관리하는 기법은 ( ) 기법이라 하며 ( ) 기법을 활용한 도구로는 CVS, SVN , Git 등이 있다.

답안 : 형상관리

 2020년 3회

1. 리팩토링의 목적에 대한 설명을 작성하시오.

문제 유형 : 약술형

답안

리팩토링의 목적은 소프트웨어를 보다 이해하기 쉽고, 수정하기 쉽도록 만드는 것이다.

결과의 변경없이 코드의 구조를 재조정하는 것으로 가독성을 높이고, 유지보수를 쉽게하기 위한 목적

코드의 외부 행위는 바꾸지 않고 내부 구조를 개선시켜 소프트웨어를 보다 이해하기 쉽고, 수정하기 쉽도록 만드는 것

2. 다음의 출력 결과를 쓰시오.

#include <stdio.h>

void main(){

             int c=0;

    int i=0;

    while(i<10) {

          i++;

        c *= i;

    }

    printf(“%d”, c);

}

문제 유형 : 프로그래밍 ( C언어 )

답안 : 0

3. 다음 학생 테이블에서 이름이 민수인 튜플을 삭제하도록 결과를 작성하시오.

대,소문자는 구분하지 않습니다.- 세미콜론(;)은 생략가능합니다.- 속성명에 작은 따옴표(‘ ‘)를 사용합니다.

문제 유형 : 프로그래밍 ( SQL )

답안 : DELETE FROM 학생 WHERE 이름 = ‘민수’

4. TCP/IP에서 신뢰성 없는 IP를 대신하여 송신측으로 네트워크의 IP 상태 및 에러 메시지를 전달해주는 프로토콜을 (   )이라 한다.

문제 유형 : 단답형답안 : ICMP

5. 다음의 출력 결과를 쓰시오.

public class Gisafirst{

    public static void main(String []args){

        int i=0;

        int sum=0;

        while (i<10){

            i++;

            if(i%2==1)

              continue;

        sum += i;

        }

    System.out.print(sum);

    }

}

문제 유형 : 프로그래밍 ( JAVA )

답안 : 30

6. 심리학자 톰 마릴은 컴퓨터가 메시지를 전달하고 메시지가 제대로 도착했는지 확인하며 도착하지 않았을 경우 메시지를 재전송하는 일련의 방법을 ‘기술적 언어’를 뜻하는 (   )이라는 용어로 정의하였다. (   )안에 들어갈 용어는?문제 유형 : 단답형  답안 : 프로토콜

 7. EAI 구축 유형 Message Bus, Hybrid를 제외한 나머지 두 가지 유형은?- 4개의 그림, 설명을 표로 표시함- 용어에 괄호되어 있었음

문제 유형 : 단답형답안 : Point to Point, Hub &Spoke

8. 다음의 출력 결과를 쓰시오.

abstract class Vehicle{

 String name;

 abstract public String getName(String val);

 public String getName(){

 return”Vehicle name :” + name;

 }

}

class Car extends Vehicle{

 public Car(String 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 Test{

 public static void main(String[] args){

 Vehicle obj = new Car(“Spark”);

 System.out.printf(obj.getName());

 }

}

문제 유형 : 프로그래밍 ( JAVA – 상속 )답안 : Vehicle name :Spark

9. 다음의 출력 결과를 쓰시오.

intr1(){

    return4;

}

intr10(){

    return (30+r1( ));

}

intr100(){

    return (200+r10( ));

}

intmain(){

    printf(“%d “, r100( ));

    return0;

}

문제 유형 : 프로그래밍 ( C언어 )답안 : 234

10. 동치 분할 테스트, 경계값 분석 테스트 등 내부 구조를 보지 않고 하는 테스트는 무엇인가?

문제 유형 : 단답형답안 : 블랙박스 테스트

11. 형상 통제에 대한 설명을 작성하시오.

문제 유형 : 약술형답안- 형상 항목의 버전 관리를 위해서 변경 여부와 변경 활동을 통제하는 활동- 산출물의 변경 사항을 버전별로 관리하여 목표 시스템의 품질 향상을 지원하는 활동

12. 분기 커버리지 과정 순서 배열 ( 답안 확실하지 않아서 참고용으로만 확인해주세요 )- 화이트박스테스트 그림 표시되어 있었음

답안- 1234561, 124567- 1234567, 124561

13. 대표적인 내부 라우팅 프로토콜로 대규모 네트워크에 적합하고 링크 상태 라우팅 프로토콜로도 불리는 라우팅 프로토콜은 무엇인가?

문제 유형 : 단답형답안 : OSPF

14. C++에서 생성자의 의미에 대한 설명을 작성하시오.

문제 유형 : 약술형답안- 객체 생성 시 초기화 작업을 위한 함수로써, 객체를 생성할 때 반드시 호출되고 제일 먼저 실행된다.- new 연산자를 통해서 객체를 생성할 때 반드시 호출이 되고 제일 먼저 실행되는 일종의 메소드

15. 데이터베이스에서 스키마에 대한 설명을 작성하시오.

문제 유형 : 약술형답안- 데이터베이스의 구조와 제약조건에 대한 명세를 기술한 것- 데이터베이스의 구조와 제약조건에 관한 전반적인 명세를 기술한 메타데이터의 집합이다.  

16. 헝가리안 표기법에 대한 설명을 작성하시오.

문제 유형 : 약술형

 컴퓨터 프로그래밍에서 변수 및 함수의 이름 인자 앞에 데이터 타입을 명시하는 코딩 규칙(접두어 : b는 byte, n은 int, f 는 float, w는 word 등)

의미있는 이름이 길 경우에는 자음만을 사용한다.

첫글자 g_는 전역변수, m_은 멤버 변수, s_은 클래스변수,c_함수변수 뜻

전역이나 멤버 변수의 경우에는 그 다음에 _를 적는다.

 ex) pszCart : Cart라고 하는 64bit 문자열 포인터

*파스칼 케이싱 :

복합어일 경우 중간에 시작하는 새로운 단어는 대문자로 적는다.

   Ex)HumanResource, MainPage

클래스,열거형,이벤트,메서드 등의 이름을 만들때에는 대문자로 시작하는

 변수명을 사용한다.

*카멜 케이싱:

첫번째 문자는 소문자로 시작하고 복합어 일 경우 파스칼 케이싱과 동일하게 적용한다. 인터페이스에 사용~

             ex)getName, setAge

*GNU Naming(Convention (Snake))

모두 소문자를 사용하고 복합어 사이를 _를 사용하여 연결한다.

-Linux의 프로젝트들은 GNU Naming Convention이라는 명명법을 주로 사용   한다.

 ex)human_resource, get_name,httpd_sdtart

*Constant(상수)

모든 문자를 대문자로 사용하고 GNU Naming Convention이 형태를

 사용한다.  

거의 모든 명명법에서 상수를 표기하는 방법은 거의 동일하다.

  ex) DEFAULT_DEPARTMENT_CODE

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

[성적]

학번과목번호과목이름학점점수
1002000데이터베이스A95
1011000자료구조B80
1022000데이터베이스A99
1032000데이터베이스B88
1041000자료구조C79

[결과]

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

[요구사항]

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

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

답안

SELECT 과목이름, MIN(점수) AS 최소점수, MAX(점수) AS 최대점수 FROM 성적 GROUP BY 과목이름 HAVING AVG(점수) >= 90

18. UI 설계 원칙 중 직관성에 대한 설명을 작성하시오.

문제 유형 : 약술형

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

19. 릴레이션 A, B가 있을 때 릴레이션 B 조건에 맞는 것들만 릴레이션 A에서 튜플을 분리해 프로젝션하는 관계대수의 기호를 쓰시오.

문제 유형 : 단답형 ( 관계대수 )답안 : ÷

20. 다음 속성을 주소라고 하고 크기는 20으로 제한한다. 학생 테이블에 컬럼을 추가하는 결과를 작성하시오.

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

문제 유형 : 프로그래밍 ( SQL )

답안 :  ALTER  ADD 맨위로

2020년 정보처리기사실기 4회

1. 다음은 디자인 패턴에 대한 설명이다. 빈 칸 (    ) 안에 들어갈 가장 적합한 용어를 쓰시오.

디자인 패턴(Design Pattern)은 프로그램을 개발하는 과정에서 빈번하게 발생하는 디자인상의 문제를 정리해서 상황에 따라 간편하게 적용하여 쓸 수 있는 패턴 형태로 만든 것이다. 
에리히 감마, 리처드 햄, 랄프 존슨, 존 블리시데스가 한 자리에 모이게 되었다. goF(Gang of Four)으로 불리는 이 네 명이 여러 개의 패턴을 집대성하여 저술한 책이 유명한 [디자인 패턴: 재사용 가능한 객체 지향 소프트웨어의 요소들(Design Patterns: Elements of Resuable Object-Oriented Software]이다. 
goF의 디자인 패턴에는 생성, 구조, (       )(이)가 있다. 생성 패턴은 객체의 생성에 관련된 패턴이고, 구조 패턴은 클래스나 객체를 조합해 더 큰 구조를 만드는 패턴이며, (     ) 패턴은 클래스 사이의 알고리즘이나 책임 분배에 관련된 패턴이다. 

[정답]

  • 행위 

2. 다음 그림과 같이 탭이 달린 폴더 안에 요소들을 집어넣어 표현하는 다이어그램으로 컴포넌트 구조 사이의 관계를 표현하며 요소들을 그룹으로 조직하기 위한 메커니즘의 UML 다이어그램이 무엇인지 쓰시오. (아래 그림과 유사)

[정답]

  • 패키지 다이어그램

3. 테스트 오라클은 테스트의 결과가 참인지 거짓인지를 판단하기 위해서 사전에 정의된 참(True) 값을 입력하여 비교하는 기법 및 활동을 말한다. 테스트 오라클의 유형 중 전수 테스트가 불가한 경우 특정한 몇 개의 입력값에 대해서만 기대하는 결과를 제공해주는 오라클로 경계값, 구간별 예상값 결과 작성 시 사용하는 오라클을 무엇이라 하는지 쓰시오. 

[정답]

  • 샘플링 오라클

4. 다음은 주어진 평가점수별 학점 조건을 토대로 테스트 케이스를 작성하여 테스트를 진행한 결과이다. 다음에 적용한 테스트 기법은 명세 기반 테스트의 기법 중 프로그램의 입력 조건에 중점을 두고, 어느 하나의 입력 조건에 대하여 타당한 값과 그렇지 못한 값을 설정하여 해당 입력 자료에 맞는 결과가 출력되는지 확인하는 테스트 기법이다. 적용한 테스트 기법을 무엇이라 하는지 쓰시오. 

<조건>

평가 점수학점
0 ~ 60F
60 ~ 70D
70 ~ 80C
80 ~ 90B
90 ~ 100A

<결과>

테스트 케이스12345
구간0 ~ 6060 ~ 7070 ~ 8080 ~ 9090 ~ 100
테스트데이터5566778899
예측값FDCBA
결과값FDCBA

[정답]

  • 동치 분할 테스트

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

<학생>

학번이름학과성적전화번호
2020021철수전기90010-1111-1111
2020001민수컴퓨터70010-2222-2222
2021022영희건축85010-3333-3333
2022023민호건축95010-4444-4444
2020007광철컴퓨터100010-5555-5555

<결과>

학과학과별튜플수
전기1
컴퓨터2
건축2

<요구사항>

1. WHERE 구문은 사용하지 않고 SQL문을 작성하시오. 
2. GROUP BY 구문과 집계함수를 반드시 사용하여 SQL문을 작성하시오. 
3. 인용 문구를 사용 시 작은따옴표(”) 사용 가능합니다. 
4. AS 구문은 반드시 사용하여 작성하시오. 
5. SQL 명령문의 대/소문자를 구별하지 않으며 종결 문자인 세미콜론(;)은 생략 가능합니다. 
6. 실행 결과가 일치하더라도 <요구사항>을 모두 적용하지 않은 SQL문을 작성하면 오답으로 간주합니다. 

[정답]

  • SELECT 학과, COUNT(*) AS 학과별튜플수 FROM 학생 GROUP BY 학과;

6. 스니핑(Sniffing)에 대하여 간략히 설명하시오. 

[정답]

  • 스니핑은 네트워크상에 통과하는 패킷들의 내용을 엿보는 행위이다. 이처럼 패킷을 엿봄으로써 로그인 과정 중의 계정명과 패스워드 정보를 비롯하여 주요 내용을 불법으로 추출할 수 있다. 

7. 정보 보안의 목표가 되는 정보보안 3원칙은 기밀성(C), 무결성(i), 가용성(A)를 만족시키는 것이다. 정보보안의 목표 중 가용성에 대하여 간략히 설명하시오. 

[정답]

  • 가용성은 합법적 사용자가 합법적 정보를 요구할 때 적시에 제공되어야 하는 원칙을 말한다. 

8. 다음은 C언어로 작성된 프로그램이다. 이를 실행한 출력 결과를 쓰시오. 

#include <stdio.h>
int main(void) {
         // your code goes here
         char *p = "KOREA";
          printf("%s\n", p); // 포인터 변수 p의 값의 위치에 문자부터 널('\0') 문자 전까지 연속하여 출력
          printf("%s\n", p+3); // 포인터 변수 p의 값의 위치에서 3간격 떨어진 위치부터 연속하여 출력
          printf("%c\n", *p); // 포인터 변수 p의 값의 위치에 있는 문자 한 문자 출력
          printf("%c\n", *(p+3)); // 포인터 변수 p의 값의 위치에서 3간격 떨어진 위치에 있는 문자 한 문자 출력
          printf("%c\n", *p+2); // 포인터 변수 p의 값의 위치에 있는 문자 한 문자 ('K')에 2를 더한 문자 출력
}
---
KOREA
EA
K
E
M

[정답]

  • KOREA
  • EA
  • K
  • E
  • M

– 출력 형식 문자 %s와 %c를 명확히 구분하여 결과를 작성해야 한다. %s는 문자열 상수를 출력하고 %c는 단일 문자 상수 한 글자만 출력한다. 

9. 다음에 제시된 JAVA 프로그램이 <처리결과>와 같이 결과를 출력해주고 있다. JAVA 프로그램의 빈 칸 (1) ~ (2)에 들어갈 내용을 각각 쓰시오. 

<처리결과>

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

[정답]

  • 답(1): 3
  • 답(2): 5

11. 다음은 JAVA로 작성된 프로그램이다. 이를 실행한 출력 결과를 쓰시오. 

class Parent {
    int compute(int num) {
        if (num <= 1)
            return num;
        return compute(num - 1) + compute(num - 2);
    }
 } class Child extends Parent {
    @Override
    int compute(int num) {
        if (num <= 1)
            return num;
        return compute(num - 1) + compute(num -3);
    }
} public class Exam {
    public static void main(String[] args) {
        Parent obj = new Child();
        System.out.print(obj.compute(4));
    }
} 

[정답]

  • 1

12. 다음은 Python 언어로 작성된 프로그램이다. 이를 실행한 출력 결과를 쓰시오. 

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()

[정답]

[1, 2, 3]
7
123
45
6789

13. 데이터베이스에서 릴레이션을 처리하는 데 여러 문제를 초래하는 이상 현상 3가지를 쓰시오. 

[정답]

  • 삽입 이상, 삭제 이상, 갱신 이상

14. 다음은 데이터 회복 기법에 대한 설명이다. 빈 칸 (     ) 안에 공통으로 들어갈 가장 적합한 용어를 쓰시오. 

데이터 회복 기법은 트랜잭션들을 수행하는 도중 장애로 인해 손상된 데이터베이스를 손상되기 이전의 정상적인 상태로 복구시키는 작업을 말한다. 다양한 데이터 회복 기법 중 (     ) 회복 기법은 로그를 이용한 회복 기법으로 데이터베이스에 대한 갱신로그를 저장함으로서 회복에 대비한다. 일반적으로 데이터베이스와 로그의 동시 손상을 대비하여 별도의 전용 디스크에 로그를 저장할 수 있다. (     )회복 기법은 트랜잭션이 실행(활동) 상태에서 변경되는 내용을 그때그때 바로 데이터베이스에 적용하는 기법이다. 변경되는 모든 내용은 로그(Log)에 기록하여 장애 발생 시 로그(Log)의 내용을 토대로 회복시킨다. (     ) 회복 기법은 장애가 발생하면 로그 파일에 기록된 내용을 참조하여, 장애 발생 시점에 따라 Redo나 Undo나 실행하여 데이터베이스를 복구한다. 

[정답]

  • 즉시 갱신 또는 Immediate Update

15. 다음 프로세스 상태 전이도의 빈 칸 (1) ~ (3)에 알맞은 프로세스 상태를 각각 쓰시오. 

[정답]

  • 답 (1): 준비 또는 Ready
  • 답 (2): 실행 또는 Run
  • 답 (3): 대기 또는 Wait 또는 Block

16. 다음 설명에 해당하는 용어를 쓰시오. 

IETF(Internet Engineering Task Force)에서 IP Address의 부족과 Mobile IP Address 구현 문제를 해결 방안으로 만들어진 IPv4를 보완하는 차세대 IP Address 주소 체계이다. 주소 유형은 유니캐스트, 멀티캐스트, 브로드캐스트 3가지이며, 주소의 길이는 128bit이고 8개 그룹으로 배열되며 각 그룹은 16비트이다. 각 그룹은 4개의 16진수로 표현되며 그룹 간은 콜론(:)으로 구분된다. 패킷 전송 시 멀티캐스트를 사용한다. 

[정답]

  • IPv6

17. 다음 설명에 해당하는 운영체제를 적으시오.  

– 1960년대 말 벨 연구소(Bell Labs)에서 개발된 운영체제로 다중 사용자, 멀티태스킹 운영체제이다. 
– 이식성이 높으며 대화식 운영체제로 서버 운영에 필수적인 CLI 인터페이스가 강력하다. 
– C언어라는 고급 프로그래밍 언어로 커널까지 대부분 작성된 운영체제이다. 
– 파일 생성, 삭제, 보호 기능을 가지며, 디렉터리 구조는 계층적 트리 구조 형태이다.

[정답]

  • 유닉스 또는 UNIX

18. 다음 설명에 해당하는 용어를 쓰시오. 

– PC처럼 가격이 싼 컴퓨팅 서버들과 저장장치들을 활용하여 가상화된 거대한 저장장치를 형성하고 그안에 빅데이터(Big Data)를 상대적으로 쉽게 저장하고 활용하여 처리할 수 있도록 한 분산 파일 시스템이다. 
– 2004년 미국 프로그래머 더그 컷팅이 방대한 데이터를 처리하기 위하여 구글의 맵리듀스(MapReduce)등을 활용해 이를 개발하였다. 

[정답]

  • 하둡 또는 Hadoop

19. 다음 설명에 해당하는 용어를 쓰시오. 

오픈소스 분산 컴퓨팅 기술로 분산 처리와 암호화 기술을 동시에 적용한 분산 데이터베이스(Distributed Ledger)의 한 형태이다. 가상화폐의 거래 정보를 기록한 원장인 ‘블록’이라고 하는 소규모 데이터들이 특정 기관의 중앙 서버에서 공동으로 기록 관리되지 않고 P2P 방식을 기반으로 생성된 체인 형태의 연결고리 기반 분산 데이터 저장 환경에 저장된다. 때문에 누구라도 임의로 수정할 수 없지만 누구나 변경의 결과를 열람할 수 있는 기술이다. 

[정답]

  • 블록체인

20. 다음 설명하는 용어를 영문으로(Full name 또는 영문 약어)로 작성하시오. 

우리나라 말로 번역하면 “네트워크 주소 변환”으로 내부에서 사용하는 사설 IP 주소와 외부로 보여지는 공인 IP 주소 간의 IP Address 변환 방식을 말한다. 한정된 하나의 공인 IP를 여러 개의 내부 사설 IP로 변환하여 사용하기 위한 기술이며, 내부 네트워크 주소의 보안을 위해 사용하는 방법 중 하나이다. 

[정답]

  • NAT 또는 Network Address Translation

꼭 외워야할 100제

1. 프로토콜(Protocol)의 기본 요소 3가지를 쓰시오. 

(2020 실기 1차 기출)

정답 : 구문, 의미, 타이밍

2. 개체-관계 다이어그램(ERD)의 기본 요소 3가지를 쓰시오.

정답 : 개체, 속성, 관계 또는 Entity, Attribute, Relationship

해설

* ERD : 업무 분석 결과로 도출된 엔티티(개체)와 엔티티(개체) 간의 관계를 도식화한 다이어그램

개체(엔티티) : 현실 세계의 사물이나 사건으로 정의 ( 사각형 )

속성(애트리뷰트) : 엔티티가 가지고 있는 요소 또는 성질 ( 원 )

 관계(릴레이션쉽) : 두 엔티티 간의 관계를 정의 ( 마름모 )

3. 보안의 3요소를 쓰시오.

정답 : 기밀성, 무결성, 가용성 또는 Confidentiality, Integrity, Availability

해설

* 소프트웨어 개발 보안의 3대 요소

기밀성 : 인가되지 않은 개인 혹은 시스템 접근에 따라 정보의 노출을 차단하는 특성 ( 인가된 사용자에게만 접근이 허용 )

무결성 : 시스템 내의 정보는 오직 인가된 사용자만 수정할 수 있음 ( 오직 인가된 사용자만 수정이 가능 )

가용성 : 서비스가 계속 유지되어 인가된 대상에게 정보를 제공하는 것으로 시스템이 장애없이 정상적으로 운용되는 능력 ( 인가받은 사용자는 언제라도 사용 가능 )

4. 릴레이션 조작 시 데이터들이 불필요하게 중복되어 예기치 않게 발생하는 곤란한 현상을 ‘이상현상(Anomaly)’이라고 한다. 이상현상의 종류 3가지를 쓰시오.

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

해설

* 이상현상

데이터의 중복성으로 인해 테이블을 조작할 때 발생하는 비합리적인 현상

삽입 이상 : 정보 저장 시 불필요한 세부사항을 입력해야 하는 경우

삭제 이상 : 삭제 시 원치 않는 정보까지 삭제되는 경우

갱신 이상 : 중복 데이터에서 특정 부분만 수정되어 중복된 값이 모순을 일으키는 경우

5. 객체지향프로그램(OOP)의 특성을 3가지 이상 쓰시오.

정답 : 상속, 추상화, 다형성, 캡슐화, 정보은닉 또는 Inheritance, Abstract, Polymorphism, Encapsulation, Information Hiding

참고- 객체지향 프로그램 구성 요소 : 객체, 클래스, 메시지

6. 테스트 기반(종류)에 따른 테스트 3종류를 쓰시오.

정답 : 구조 테스트, 명세 테스트, 경험 테스트

해설

< 애플리케이션 테스트의 분류 >

* 프로그램 실행 여부에 따른 테스트

 정적 테스트  ( 워크스루, 인스펙션, 코드검사 등 )

: 프로그램을 실행하지 않고 명세서나 소스 코드를 대상으로 분석하는 테스트

  소프트웨어 개발 초기에 결함 발견 가능, 개발 비용 낮음

* 워크스루(Walk Trough) : 검토 회의 전 요구사항 명세서를 미리 배포해 짧은 검토회의를 통해 결함 발견
* 인스펙션(Inspection) : 요구사항 명세서 작성자를 제외한 다른 검토 전문가들이 결함 발견
* 동료검토(Peer Review) : 요구사항 명세서 작성자가 내용을 직접 설명, 동료들이 들으면서 결함 발견

 동적 테스트 ( 블랙박스 테스트, 화이트박스 테스트 )

: 프로그램을 실행하면서 오류를 찾는 테스트

  소프트웨어 개발의 모든 단계에서 테스트를 수행할 수 있음

* 테스트 기반(Test Bases)에 따른 테스트

 명세 기반 테스트 ( 동등 분할, 경계 값 분석 등 )

: 사용자의 요구사항에 대한 명세를 빠짐없이 테스트 케이스로 만들어 구현하고 있는지 확인하는 테스트

 구조 기반 테스트 ( 구문 기반, 결정 기반, 조건 기반 등 )

: 소프트웨어 내부의 논리 흐름에 따라 테스트 케이스를 작성하고 확인하는 테스트

 경험 기반 테스트 ( 에러 추정, 체크 리스트, 탐색적 테스팅 )

: 유사 소프트웨어나 기술 등에 대한 테스터의 경험을 기반으로 수행하는 테스트

  사용자의 요구사항에 대한 명세가 부족하거나 테스트 시간에 제약이 있는 경우 수행하면 효과

* 시각에 따른 테스트

 검증(Verification) 테스트: 개발자의 시각에서 제품의 생산 과정을 테스트 하는 것. 제품이 명세서대로 완성되었는지

  확인(Validation) 테스트: 사용자의 시각에서 생산된 제품의 결과를 테스트하는 것. 사용자가 요구한대로 완성되었는

* 목적에 따른 테스트

 회복(Recovery) 테스트: 시스템에 여러 결함을 주어 실패하도록 한 후 올바르게 복구되는지 확인

  안전(Security) 테스트: 시스템에 설치된 시스템 보호 도구가 불법적인 침입으로부터 시스템을 보호할 수 있는지 확인

  강도(Stress) 테스트: 시스템에 과도한 정보량이나 빈도 등을 부과해 과부하 시 소프트웨어가 정상적으로 실행되는지 확인

  성능(Performance) 테스트: 소프트웨어의 실시간 성능이나 전체적인 효율성을 진단, 응답시간, 처리량 등 테스트

 구조(Structured) 테스트: 소프트웨어 내부의 논리적인 경로, 소스 코드의 복잡도 등을 평가

  회귀(Regression) 테스트: 소프트웨어의 변경 또는 수정된 코드에 새로운 결함이 없음을 확인

  병행(Parallel) 테스트: 변경된 소프트웨어와 기존 소프트웨어에 동일한 데이터를 입력해 결과를 비교

7. UML의 구성요소 3가지를 쓰시오

정답 : 사물, 관계, 다이어그램

해설

* UML ( Unified Modeling Language )

시스템 개발자와 고객 또는 개발자 상호간의 의사소통이 원활하게 이루어지도록 표준화한 대표적인 객체지향 모델링 언어

8. IPv4의 전송 방식 3가지를 쓰시오.

정답 : 유니캐스트, 멀티캐스트, 브로드캐스트 또는 Unicast, Multicast, BroadCast

9. W3C(Woorld Wide Web Consortium)에서 개발되었고, 웹 브라우저 간 호환이 되지 않는 문제와 SGML(Standard Generalized Markup Language)의 복잡함을 해결하기 위해 개발된 다목적 마크업 언어이다.

(2020 실기 1차 기출)

정답 : XML ( XML; eXtensible Markup Language )

10. 속성-값(Attribute-Value Pair)으로 이루어진 데이터 오브젝트를 전달하기 위해 사용하는 개방형 표준 포맷으로 Ajax(Asyncronous JavaScript and XML)에서 많이 사용되고 XML(eXtensible Markup Language)을 대체하는 주요 데이터 포맷이다. 언어 독립형 데이터 포맷으로 다양한 데이터 프로그래밍 언어에서 사용하고 있는 기출은 무엇인가?

(2020 실기 1차 기출)

정답 : JSON ( JSON; JavaScript Object Notation )

11. 객체 기술에 관한 국제 표준 기구(OMG)에서 정의한 표준으로 시스템 분석, 설계, 구현 등 개발자와 사용자 간 의사소통이 원활하게 이루어지도록 표준화한 객체 지향 모델링 언어를 뜻하는 개념은 무엇인가?

정답 : UML ( UML; Unified Modeling Language )

12. 리스프(LISP)기반의 DRM언어인 디지털 저작권언어(DPRL)을 개발한 제네록스사와 마이크로소프트사가 이를 개정하여 만든 언어로 디지털 콘텐츠, 웹 서비스 권리 조건을 표현한 XML기반의 언어이다. 모든 자원과 관련된 권리 및 조건들을 보안적으로 규정하고 관리하는 일반적인 방법을 제공하여 콘텐츠 및 서비스의 신뢰를 제공한다. 무엇에 대한 개념인가?

정답 : XrML ( XrML; eXtensible rights Markup Language )

키워드 : 디지털 콘텐츠, 웹 서비스 권리 조건을 표현한 XML 기반의 마크업 언어

13. 표준 SQL을 기반으로 Oracle에서 개발한 데이터 조작 언어로, Oracle 기반의 모든 프로시저 작성에 사용되며, 표준 SQL의 확장 기능이 우수한 언어는 무엇인가?

정답 : PL/SQL ( PL/SQL; Procedural Language for SQL )

14. 브라우저가 가지고 있는 XMLHttpRequest 객체를 이용해서 전체 페이지를 새로 고치지 않고도 페이지의 일부분만을 위한 데이터를 로드하는 기법이며, 하이퍼텍스트 표기 언어(HTML) 만으로 어려운 다양한 작업을 웹 페이지에서 구현해 이용자가 웹 페이지와 자유롭게 상호 작용할 수 있도록 하는 기술명을 쓰시오. 

(2020 실기 2차 기출)

정답 : AJAX ( AJAX; Asynchronous Javascript And XML )

15. V8(자바스크립트 엔진)으로 빌드된 이벤트 기반 자바스크립트 런타임으로, 웹 서버와 같이 확장성 있는 네트워크 애플리케이션 개발에 사용되는 소프트웨어 플랫폼이다. 작성 언어로 자바스크립트를 활용하며 Non-blocking I/O와 단일 스레드 이벤트 루프를 통한 높은 처리 성능을 가지고 있으며, 대부분의 자바스크립트가 웹 브라우저에서 실행되는 것과 달리, 서버 측에서 실행되는 특징을 갖는 기술명은 무엇인가?

정답 : Node.js ( 노드JS )

16. 기업에서 운영되는 서로 다른 플랫폼 및 애플리케이션들 간의 정보 전달, 연계, 통합을 가능하게 해주는 솔루션으로 송수신 시스템에 설치되는 어댑터를 사용하는 간접 연계 방식 기술은 무엇인가?

연계 솔루션 또는 EAI ( EAI; Enterprise Application Integration )

해설

* EAI

특징 : 표준 통합 기술, 데이터 병목 현상 최소화

– Point To Point : 가장 기본적, 변경 재사용 어려움

– Hub &Spoke : 허브 시스템, 확장, 유지보수 용이

– Message Bus (ESB) : 미들웨어를 두고 처리, 뛰어난 확장성

– Hybrid : Hub &Spoke + ESB, 병목 현상 최소화

* ESB

개발자가 서비스를 개발하고 적절한 API를 통해 서비스 간에 통신을 하는데 도움이 되는 인프라 스트럭처 소프트웨어

– SOA가 실현되는 플랫폼으로 사용될 수 있지만 ESB는 서비스가 흐르는 매체일 뿐이고 SOA의 구현과 서비스 구성 및 배치를 위한 기능을 제공

* SOA(서비스 지향 아키텍처) : 느슨하게 결합된 서비스 기반 애플리케이션을 구현하기 위한 아키텍처 모델

17. 공격자가 패킷의 출발지 주소나 포트를 임의로 변경해 출발지와 목적지 주소를 동일하게 함으로써 공격 대상 컴퓨터의 실행속도를 느리게 하거나 동작을 마비시켜 서비스 거부 상태에 빠지도록 하는 공격 방법은 무엇인가? 

답: 랜드어택

18. 출발지 주소를 공격 대상의 IP로 설정하여 네트워크 전체에게 ICMP Echo패킷을 브로드캐스팅하여 외부의 ICMP Echo Reply(Ping 응답)를 발생시킴으로써 희생자에게 대량의 트래픽을 발생시켜 마비시키는 DoS 공격으로 바운스(Bounce) 사이트라고 불리는 제 3의 사이트를 이용한 공격 특징을 갖는 공격 기술은 무엇인가?

정답 : 스머핑 (Smurfing) 또는 스머프 공격 (Smurf Attack)

키워드 : ICMP Echo패킷을 브로드캐스팅, 대량의 트래픽 발생시켜 마비

19. 컴퓨터 소프트웨어의 취약점을 공격하는 기술적 위협으로, 해당 취약점에 대한 패치가 나오지 않은 시점에서 이루어지는 공격은 무엇인가?

정답 : 제로데이 공격 

키워드 : 취약점에 대한 패치가 나오지 않은 시점에서 이루어지는 공격

20. 몸값과 소프트웨어의 합성어로, PC에 있는 중요한 자료를 암호화한 후, 복호화 프로그램 제공 대가로 피해자에게 돈을 지급하도록 강요하는 악성코드는 무엇인가?

정답 : 랜섬웨어 (Ransomware)

키워드 : 몸값 + 소프트웨어

21. 특정 타켓을 목표로 하여 다양한 수단을 통한 지속적이고 지능적인 맞춤형 공격으로 특수목적의 조직이 하나의 표적에 대해 다양한 IT 기술을 이용하여, 지속적으로 정보를 수집하고, 취약점을 분석하여 피해를 주는 공격 기법은 무엇인가?

정답 : APT ( APT; Advanced Persistent Threat ) 또는 지능형 지속 공격

키워드 : 특정 타켓을 목표, 지능적인 맞춤형 공격, 지속적으로 정보 수집, 취약점 분석

22. 웹 애플리케이션 취약점 중 하나로 사용자가 자신의 의지와 무관하게 공격자가 의도한 행동을 해서 특정 웹페이지를 보안에 취약하게 한다거나 수정, 삭제 등의 작업을 하게 만드는 공격 방법이다. 2008년에 발생한 옥션의 개인 정보 유출 사건에서도 관리자 계정을 탈취하는데 이 방법이 사용되었다. 공격의 난이도가 높지 않아 흔히 사용된다. 이 공격 기법은 무엇인가?

정답 : CSRF ( CSRF ; Cross Site Request Forgery ) 또는 사이트 간 요청 위조

키워드 : 공격자가 의도한 행위를 특정 웹 사이트에 요청

23. 여러 대의 공격자를 분산 배치하여 동시에 동작하게 함으로써 특정 사이트를 공격하는 기법으로, 취약한 인터넷 시스템에 대한 액세스가 이뤄지면, 침입한 시스템에 소프트웨어를 설치하고 이를 실행시켜 원격에서 공격을 개시하는 방식의 메커니즘을 갖는다. 무엇에 대한 설명인가?

정답 : DDoS ( DDoS; Distributed Denial of Service ) 또는 분산 서비스 거부

키워드 : 여러 대의 공격자 분산 배치, 원격에서 공격 개시

* 참고

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

24. 온라인 상에서 불법 활동을 조장하기 위해 만들어진 컴퓨터 프로그램이다. 공격용 툴킷이라고 불리며 보통 취약점을 이용하도록 미리 프로그램 된 악성코드 등으로 구성되어 원하는 형태로 공격을 감행하고나 공격을 자동화할 수 있다. 인터넷에서 곧바로 사용할 수 있으며 키로거를 은밀히 설치시켜 불법적으로 정보를 수집해가기도 한다. 무엇에 대한 설명인가?

정답 : 크라임웨어 (Crimeware)

25. 정보시스템의 침입자를 속이는 기법의 하나로, 가상의 정보시스템을 만들어 놓고 실제로 공격을 당하는 것처럼 보이게 하여 해커나 스팸, 바이러스를 유인하여 침입자들의 정보를 수집하고 추적하는 역할을 수행하는 것은?

정답 : 허니팟 (Honeypot)

26. 정해진 메모리의 범위를 넘치게 해서 원래의 리턴 주소를 변경시켜 임의의 프로그램이나 함수를 실행시키는 시스템 해킹 기법은 무엇인가?

정답 : 버퍼 오버플로우 (Buffer OverFlow)

27. 요청 헤더의 Content-length를 비정상적으로 크게 설정하여 메시지 바디 부분을 매우 소량으로 보내 계속 연결 상태를 유지시키는 공격은 무엇인가?

정답 : RUDY ( RUDY; R-U-Dead-Yet, Slow HTTP POST Dos )

키워드 : 요청 헤더의 Content-length를 비정상적으로 크게 설정

28. 공격자가 자신의 인터넷 프로토콜(IP) 주소를 변조하거나 속여서 접근 제어 목록(ACL)을 우회하거나 회피하여 공격하는 것으로 변조된 IP주소를 이용하여 DoS나 연결된 세션을 차단하여 공격에 대한 추적을 어렵게 만드는 공격 기술은 무엇인가?

정답 : IP 스푸핑 (IP Spoofing)

키워드 : 변조된 IP주소 이용

29. RFC 1321로 지정되어 있으며, 주로 프로그램이나 파일이 원본 그대로인지를 확인하는 무결성 검사 등에 사용된다. 1991년 로널드 라이베스트가 예전에 쓰이던 MD4를 대체하기 위해 고안된 128비트 암호화 해시 함수는 무엇인가? 

(2020 실기 1차 기출)

정답 : MD5

30. 56bit의 키를 이용하여 64bit의 평문 블록을 64bit의 암호문 블록으로 만드는 블록 암호 방식의 미국 표준(NIST) 암호화 알고리즘은 무엇인가?

정답 : DES ( DES; Data Encryption Standard)

해설

대칭키 분류설명
블록암호DES, AES, SEED ( 단답형 )
– DES : 54Bits의 키와 64Bits의 블록
– AES : DES를 대체하는 알고리즘
– SEED : KISA 구현, 고속 블록, 128Bits
스트림 암호 방식RC4
비대칭키 분류설명
디피 헬만
RSA(단답형)소인수분해의 어려움을 이용하여 암호화
해시키 분류설명 
SHA(단답형)미국 표준 
MD5128Bits 해시 알고리즘 

31. 공개키 암호 방식으로 디지털 인증서를 활용하는 소프트웨어, 하드웨어, 사용자, 정책 및 제도 등을 총칭하는 암호 기술은 무엇인가?

정답 : PKI ( PKI; Public Key Infrastructure ) 또는 공개키 기반 구조

32. 현재 SSL/TLS에 가장 많이 사용되는 공개키 암호화 알고리즘으로 엄청 큰 숫자는 소인수분해하기가 힘들다는 점을 이용한 암호화 방식이다. 개발자들의 이름에서 암호명이 만들어졌으며 오늘날 양자 컴퓨터의 등장으로 보안 위협에 직면해있는 암호화 알고리즘은 무엇인가?

정답 : RSA ( RSA; Rivest, Shamir, Adleman )

33. 전자상거래, 금융, 무선통신 등에서 전송되는 개인정보와 같은 중요한 정보를 보호하기 위해, 1999년 2월 한국인터넷 진흥원과 국내 암호전문가들이 순수 국내 기술로 개발한 대칭키 128비트 블록의 암호 알고리즘은 무엇인가?

정답 : SEED

34. 무결성과 인증을 보장하는 인증헤더(AH)와 기밀성을 보장하는 암호화(ESP)를 이용한 프로토콜로 망 계층(Network Layer)인 인터넷 프로토콜(IP)에서 보안성을 제공해주는 표준화된 기술에 대해서 작성하시오.

(2020 실기 1차 기출)

정답 : IPSec

35. 터널링 기법을 사용해 인터넷과 같은 공중망에서 전용 회선을 구성한 것과 같은 효과를 내는 가상 네트워크로, 3계층에서 이 기술을 위해 터널링을 구현할 수 있는 프로토콜은 IPSec이고, HTTPS, 443 Port를 이용하여 터널링을 구현할 수 있는 프로토콜은 SSL이다. 무엇에 대한 설명인가?

정답 : VPN (Virtual Private Network) 또는 가상 사설망

36. 역공학(Reverse Engineering)을 통한 보안취약점 공격에 대한 방지기술로 원래 코드를 변화시켜 읽기 어렵게 하거나 분석하기 어렵게 만드는 기술은 무엇인가?

정답 : 코드 난독화 (Code Obfuscation)

37. 객체에 포함된 정보의 비밀성과 이러한 비밀성의 접근정보에 대하여 주체가 갖는 권한에 근거하여 객체에 대한 접근을 제한하는 접근제어(AC) 정책은 무엇인가?

정답 : MAC ( MAC; Mandatory Access Control ) 또는 규칙 기반 접근제어 정책 (RBAC)

38. 일반적인 네트워크 방화벽과는 달리 웹 애플리케이션 보안에 특화된 보안 장비로, SQL 인젝션, XSS 등과 같은 웹 공격을 탐지하고 차단하는 기능을 갖는 장비는 무엇인가?

정답 : WAF ( WAF; Web Application Firewall ) 또는 웹 방화벽

39. 내부 정보 유출 방지를 의미하며, 기업 내에서 이용하는 다양한 주요 정보인 기술 정보, 프로젝트 계획, 사업 내용, 영업 비밀, 고객 정보 등을 보호하고 외부 유출을 방지하기 위해서 사용하는 보안 기술은 무엇인가?

정답 : DLP ( DLP; Data Loss Prevention ) 또는 데이터 유출 방지

40. 다음은 공통 모듈 구현의 개념에 대한 설명이다. 괄호 ( ) 안에 알맞은 용어를 쓰시오. (2020 실기 1차 기출)- 소프트웨어 개발에 있어 기능을 분할하고 추상화하여 성능을 향싱시키고 유지보수를 효과적으로 하기 위한 공통 컴포넌트 구현 기법이다.- 인터페이스 모듈, 데이터베이스 접근 모듈 등 필요한 공통 모듈을 구현한다.- 모듈 간의 (    )은/는 줄이고, (    )은/는 높은 공통 모듈구현을 권장하고 있다.

정답 :  결합도 응집도

41. 괄호 안에 알맞은 용어를 쓰시오.- 모듈의 독립성을 나타내는 개념으로, 모듈 내부 구성요소 간 연관정도이다.- 정보은닉 개념의 확장으로, 하나의 모듈은 하나의 기능을 수행하는 것을 의미한다.- 유형으로 우연적, 논리적, 시간적, 절차적, 통신적, 순차적, 기능적 (   )이(가) 있다.

정답 : 응집도 ( Cohesion )

42. 소프트웨어의 성능을 향상시키거나 시스템의 수정 및 재사용, 유지 관리를 용이하게 하여 프로그램을 효율적으로 관리할 수 있도록 시스템을 분해하고 추상화하는 기법은 무엇인가?

정답 : 모듈화 ( Modularity )

43. 하나의 릴레이션에서 속성(열)의 전체 개수를 릴레이션의 (    )(이)라고 하고, 튜플(행)의 전체 개수를 릴레이션의 (    )(이)라고 한다.

정답 :  차수 카디널리티 또는  degree cardinality

44. 프레임워크(framework) 특징에 대한 설명이다. 괄호 (  )안에 들어갈 올바른 용어를 쓰시오.

* 모듈화(Modularity)

프레임워크는 인터페이스에 의한 캡슐화를 통해서 모듈화를 강화하고 설계와 구현의 변경에 따르는 영향을 극소화하여 소프트웨어의 품질을 향상시킨다.

* (  ①  )

프레임워크가 제공하는 인터페이스는 반복적으로 사용할 수 있는 컴포넌트를 정의할 수 있게 하여 (    )을/를 높여준다.

– (    )은/는 소프트웨어의 품질을 향상시킬 뿐만 아니라 개발자의 생산성도 높여준다.

 * 확장성(Extensibility)

프레임워크는 다형성을 통해 애플리케이션이 프레임워크의 인터페이스를 넓게 사용할 수 있게 한다.

애플리케이션 서비스와 특성을 변경하고 프레임워크를 애플리케이션의 가변성으로부터 분리함으로써 재사용성의 이점을 얻게 한다.

 * (  ②  )

프레임워크 코드가 전체 애플리케이션의 처리 흐름을 제어하여 특정한 이벤트가 발생할 때 다형성을 통해 애플리케이션이 확장한 메소드를 호출함으로써 제어가 프레임워크로부터 애플리케이션으로 반대로 흐르게 한다.

정답 :  재사용성 (Reuability)  제어의 역흐름 (Inversion of Control)

45. 다음이 설명하는 제품 패키지 릴리즈 노트의 작성 항목은 무엇인가? 

문서 이름(릴리즈 노트 이름), 제품 이름, 버전 번호, 릴리즈 날짜, 참고 날짜, 노트 버전 등의 정보

(2020 실기 1차 기출)

정답 : 헤더

46. 다음이 설명하는 제품 소프트웨어 사용자 메뉴얼 작성 항목을 쓰시오.

버전, 작성자, 작성일, 검토자, 일시, 검수인 등을 일자별로 기록

정답 : 문서 이력 정보

47. UI 화면 설계를 위해서 정책이나 프로세스 및 콘텐츠의 구성, 와이어 프레임(UI, UX), 기능에 대한 정의, 데이터베이스의 연동 등 구축하는 서비스를 위한 대부분의 정보가 수록된 문서는 무엇인가?

정답 : 스토리보드 (StoryBoard)

48. OSI 계층 중 비트를 전송하는 계층은 무엇인가?

(2020 실기 1차 기출)

정답 : 물리 계층 (Physical Layer)

49. OSI 7계층 중 2계층에 해당하는 데이터링크에서 사용하는 전송 단위는 무엇인가?

정답 : 프레임 (Frame)

해설

OSI 7계층.hwp

0.06MB

50. 다음은 무엇에 관한 설명인가?

어떤 네트워크 안에서 통신 데이터를 보낼 경로를 선택하는 과정으로, 패킷 스위칭 네트워크에서 패킷 전달 및 일반적으로 라우터, 브릿지, 게이트웨이, 방화벽 또는 스위치로 불리는 중간 노드를 거쳐 출발지로부터 최종 목적지까지 논리적으로 주소가 부여된 패킷의 변환을 총괄하는 기능의 이름이다.

정답 : 라우팅 (Routing)

51. 자바(JAVA)에서 데이터베이스 SQL을 실행하기 위해 데이터베이스를 연결해주는 응용 프로그램 인터페이스는 무엇인가?

정답 : JDBC ( JDBC; Java Database Connectivity )

52. 자율 시스템(AS) 내에서 사용하는 거리벡터 알고리즘에 기초하여 개발된 통신 규약으로, 최대 홉 수(Hop Count)를 15개로 제한한 라우팅 프로토콜은 무엇인가?

정답 : RIP ( RIP; Routing Information Protocol )

해설

< 라우팅 프로토콜 >

최종 목적기까지 패킷을 최소 비용 또는 최소 홉수 알고리즘을 통해 적절한 경로를 설정해주는 프로토콜

* 거리 벡터 알고리즘

인접 라우터와 정보를 공유하여 목적지까지의 방향과 거리를 결정

– RIP

: 자율 시스템(AS) 내에서 사용하는 거리 벡터 알고리즘을 기반으로 개발된 통신규약으로 최대 홉수를 15개로 제한한 라우팅 프로토콜

– IGRP

: RIP의 문제점을 개선하기 위해 개발된 통신규약으로 RIP보다 대규모로 복잡한 통신망에서 운용을 상정한 규격으로 되어 있으며, 거리 백터 라우팅 알고리즘을 채용하여 목적 통신망까지의 경로는 지연, 회성의 대역폭, 신뢰성 및 부하를 고려하여 결정하는 프로토콜

* 링크 상태 알고리즘

링크 정보를 모든 라우터에게 전달하여 최적의 경로를 구성

– OSPF

 RIP의 단점을 개선하기 위해 자신을 기준으로 하여 링크상태 알고리즘 기반으로 최단 경로를 찾는 라우팅 프로토콜

– BGP

: 규모가 큰 네트워크를 상호 연결하는 알고리즘

< RIP VS OSPF >

RIP
(Routing Information Protocol) 일정주기(30초)  15개

AS(Autonomous System) 내에서 사용하는 거리벡터 알고리즘에

기초하여 개발된 내부 라우팅 프로토콜

OSPF
(Open Shortest Path First) 변화 발생시에만  255개

RIP의 단점을 개선하기 위해 자신을 기준으로 하여 링크상태 알고리즘 기반으로 최단 경로를 찾는 라우팅 프로토콜

53. 인터넷 상에서 HTTP를 통해 클라이언트/서버 환경에서 사용자 컴퓨터나 장치에 애플리케이션을 수행해주는 미들웨어로서, Server단에서 Application을 동작할 수 있도록 지원하는 서버는 무엇인가?

정답 : WAS ( WAS; Web Application Server )

키워드 : 미들웨어, 인터넷 상에서 HTTP를 통해, Server단에서 Application을 동작할 수 있도록 지원하는 서버

종류 : Tomcat, JBoss, Jety, JEUS

 <미들웨어>

운영체제와 소프트웨어 Application 사이에서 원만한 통신이 이루어질 수 있도록 중개 및 제어 역할을 하는 소프트웨어

 <종류>

* DB(DataBase)

 데이터베이스 벤더(Vendor)에서 제공하는 클라이언트에서 원격의 데이터베이스와 연결하기 위한 미들웨어

 * RPC(Remote Procedure Call)

응용 프로그램의 프로시저를 사용하여 원격 프로시저를 마치 로컬 프로시저처럼 호출하는 방식의 미들웨어

 * MOM(Message Oriented Middleware)

 메시지 기반의 비동기형 메시지를 전달하는 방식의 미들웨어

 * TP-Monitor(Transaction Processing Monitor)

 항공기나 철도 예약 업무 등과 같은 온라인 트랜잭션 업무에서 트랜잭션을 처리 및 감시하는 미들웨어

 * ORB(Object Request Broker)

 객체 지향 미들웨어로 코바(CORBA) 표준 스펙을 구현한 미들웨어   

54. 리눅스 환경에서 사용하는 MySQL 데이터베이스를 기반으로 제작하는 GPL(General Public License) 오픈 소스 데이터베이스로, 최근에는 MySQL보다 더 많은 업데이트가 이루어지고 있는 데이터베이스는 무엇인가?정답 : 마리아DB (MariaDB)

55. Apache Software Foundation에서 서버인 자바(JAVA)를 움직이게 하기 위해 개발한 서버인 WAS의 일종이다. 웹 서버에서 서블릿, JSP, 빈즈와 같은 자바 코드를 이해하기 위해서는 이것과 같은 자바를 이해하는 엔진이 있어야 한다. 비용이나 성능면에서는 자바 기반 웹서버를 구성할 때 리눅스, 아파치, 이것 조합을 많이 사용한다. 이것은 무엇인가?

정답 : 톰캣 (Tomcat)

키워드 : WAS의 일종, 자바 기반 웹서버 구성

56. 자바 프로그램은 WORA(Write Once Run Anywhere)를 모토로 개발된 프로그래밍 언어이다. 개발자가 소스코드를 작성하여 컴파일하면 .class라는 확장자를 갖는 바이트코드가 생성되며, 자바의 핵심 구성 요소인 이것에 의해 실행되어지므로 서로 다른 플랫폼에서도 동일한 프로그램이 동작할 수 있게 된다. 이것은 무엇인가?

정답 : JVM ( JVM; Java Virtual Machine ) 또는 자바 가상 머신(기계)

키워드 : .class, 서로 다른 플랫폼에서도 동일한 프로그램이 동작할 수 있게 됨

57. XML 서술자나 애너테이션(annotation)을 사용하여 저장 프로시저나 SQL문으로 객체를 연결시키는 프로그램으로 아파치 라이선스 2.0으로 배포되며 IBATIS의 원 개발자들이 포함된 팀에 의해 유지보수가 이루어지는 자바 퍼시스턴스 프레임워크는 무엇인가?

정답 : MyBatis (마이바티스)

58. 전통적인 관계형데이터베이스관리시스템(RDBMS)와는 다른 DBMS를 지칭하기 위한 용어로 데이터 저장에 고정된 테이블 스키마가 필요하지 않고 조인(Join) 연산을 사용할 수 없으며, 수평적으로 확장이 가능한 DBMS는 무엇인가?

정답 : NoSQL 또는 non relational

59. 애플리케이션의 성능을 측정하기 위한 지표는 무엇인가?

지표설명
(  ①  )애플리케이션이 주어진 시간에 처리할 수 있는 트랜잭션의 수
웹 애플리케이션의 경우 시간당 페이지 수로 표현
(  ②  )사용자 입력이 끝난 후, 애플리케이션의 응답출력이 개시될 때까지의 시간
애플리케이션의 경우 메뉴 클릭 시 해당 메뉴가 나타나기까지 걸리는 시간
(  ③  )애플리케이션에 사용자가 요구를 입력한 시점부터 트랜잭션 처리 후 그 결과의 출력이 완료할 때까지 걸리는 시간
(  ④  )애플리케이션이 트랜잭션을 처리하는 동안 사용하는 CPU 사용량, 메모리 사용량, 네트워크 사용량

(2020 실기 1차 기출)

정답 :  처리량  응답시간  경과시간 자원 사용률

60. 다음은 통합 테스트에 대한 설명이다. 괄호 (  )안에 들어갈 용어를 쓰시오.

테스트 도구설명
(  ①  )상위의 모듈에서 데이터의 입력과 출력을 확인하는 모듈로 상향식 통합 테스트 수행 시 사용된다.
(  ②  )모듈 및 모든 하위 컴포넌트를 대신하는 더미 모듈로 하향식 통합 테스트 수행시 사용된다.

정답 :  드라이버  스텁 또는  Driver  Stub

< 통합 테스트 >

소프트웨어의 각 모듈 간의 인터페이스 관련 오류와 결함을 찾아내는 체계적인 테스트 기법- 목적 : 단위 테스트가 끝난 모듈 또는 컴포넌트 단위의 프로그램이 설계 단계에서 제시한 애플리케이션과 동일한 구조와 기능으로 구현된 것인지를 확인하는 것

 * 하향식 통합(Top Down) : 길이-우선 방식 또는 너비-우선 방식, 스텁

 * 상향식 통합(Bottom Up) : 더미 모듈인 드라이버 작성

 * 실제 모듈 테스트 진행 : 빅뱅 통합

61. 개발 방법론 중 폭포수 모델의 변형인 V모델은, 테스트 단계를 추가 확장하여 테스트 단계가 분석 및 설계와 어떻게 관련되어 있는지를 나타낸다. [보기]의 테스트 단계를 순서대로 배열하시오.

[보기] ㄱ. 인수 테스트 ㄴ. 통합 테스트 ㄷ. 시스템 테스트

단위 테스트 -> (   ) -> (   ) -> (   )정답 : ㄴ ㄷ ㄱ

62. 정보시스템 운영 중 서버가 다운되거나 자연재해나 시스템 장애 등의 이유로 고객에게 서비스가 불가능한 경우가 종종 발생한다. 이와 같은 상황에서 비상사태 또는 업무 중단 시점부터 업무가 복구되어 다시 정상 가동될 때까지의 시간을 의미한다. 이것은 무엇인가?

( 2020 실기 2차 기출 )

정답 : RTO ( RTO; Recovery Time Objective ) 또는 재해 복구 시간

키워드 : 업무 중산 시점부터 업무가 복구되어 다시 정상 가동될 때 까지의 시간

< 유사용어 >

* RPO ( RPO; Recovery Point Objective )

 재해복구시점목표.

재해로 인하여 서비스가 중단되었을 때 유실을 감내할 수 있는 데이터 손실 허용 시점이다.

* BCP ( BCP; Business Continuity Planning )

 기업이 재해/재난으로부터 타격을 입은 뒤 업무를 어떻게 복구하는지에 대한 계획을 말한다.

* BGP ( BGP; Border Gateway Protocol )

 경계 경로 프로토콜

인터넷의 자동 시스템(AS) 중 라우팅 및 도달 가능성 정보를 교환하도록 설계된, 준화된 외부 게이트웨이 프로토콜의 하나로 대형 사업자간의 상호 라우팅에 사용되며, 경로 벡터 라우팅 프로토콜로 분류되는 프로토콜

* RBO ( RBO; Rule-Based Optimizer )

통계 정보가 없는 상태에서 사전 등록된 규칙에 따라 질의 실행 계획을 선택하는 옵티마이저

* CBO ( CBO; Cos-Based Optimizer )

 통계 정보로부터 모든 접근 경로를 고려한 질의 실행 계획을 선택하는 옵티마이저

63. 정보시스템 기반 구조의 전체 또는 일부를 재해가 발생한 곳과 다른 위치에 구축하고 재해가 발생하였을 경우 이를 신속하게 복구하여 비즈니스에 대한 영향을 최소화하기 위한 제반 계획 및 시스템을 말하며, 관련 기술 요소로 HA, FTS, RAID, DWDM등이 있다. 무엇에 대한 설명인가?

답:DRS 또는 재해복구시스템(Disater Recovery System)

64. 서버와 네트워크, 프로그램 등의 정보 시스템의 장애에 대응하여 상당히 오랜 기간동안 지속적으로 정상 운영이 가능한 성질을 이르는 용어는 무엇인가?

정답 : HA ( HA; High Availability ) 또는 고가용성

키워드 : 상당히 오랜 기간동안 지속적으로 정상 운영이 가능한 성질

65. 온톨로지(Ontology)를 활용하여 서비스를 기술하고, 온톨로지의 의미적 상호 운용성을 이해해서 서비스 검색, 조합, 중재 기능을 자동화하는 웹은 무엇인가?

정답 : 시맨틱 웹 (Semantic Web)

키워드 : 온톨로지를 활용, 자동화 웹

66. 전 세계 오픈된 정보를 하나로 묶는 방식으로 link data와 open data의 합성어가 무엇인지 작성하시오.

( 2020 실기 2차 기출 )

정답 : LOD ( LOD; Linked Open Data )

67. 사용자 정보를 유지하기 위한 질의 및 디렉터리 서비스의 등록, 수정, 삭제 및 검색을 위한 목적으로 개발한 인터넷 프로토콜은 무엇인가?

정답 : LDAP ( LDAP; Lightweight Directory Access Protocol )

키워드 : 디렉터리 서비스의 등록, 수정, 삭제, 및 검색을 위한 목적으로 개발한 인터네 프로토콜

68. 조직 내외부 복수 출처의 원천 시스템(Source System)으로부터 데이터를 추출하고 변환하는 작업을 거쳐서 목적 시스템(Target System)으로 전송 및 로딩하는 데이터 이동 프로세스는 무엇인가?

정답 : ETL ( ETL; Extraction, Transformation, Loading )

키워드 : 전송, 로딩

69. 실제로 존재하는 환경에 가상의 사물이나 정보를 합성하여 마치 원래의 환경에 존재하는 사물처럼 보이도록 하는 컴퓨터 그래픽 기술은 무엇인가?

정답 : AR (Augmented Reality) 또는 증강현실

70. 데이터베이스 소스 시스템의 변경된 데이터를 캡쳐하여 다양한 운영 및 분석 시스템으로 실시간 전달하는 기술로 ‘실시간 작업환경 구축’, ‘운영시스템 부하 감소’, ‘신뢰성있는 데이터 복제’등의 특징을 갖는 기술은 무엇인가?

정답 : CDC ( CDC; Change Data Capture )

키워드 : 변경된 데이터 캡쳐, 실시간 전달

71. 하나의 물리적인 네트워크 인프라를 서비스 형태에 따라 다수의 독립적인 가상 네트워크로 분리하여 서로 다른 특성을 갖는 다양한 서비스들에 대해 각 서비스에 특화된 전용 네트워크를 제공해주는 기술은 무엇인가?

정답 : 네트워크 슬라이싱 (Network Slicing)

키워드 : 다수의 독립적인 가상 네트워크로 분리, 전용 네트워크를 제공

72. 컴퓨터와 사람의 언어 사이의 상호작용에 대해 연구하는 컴퓨터 과학과 어학의 한 분야로, 정보검색분야에서는 이용자와의 자연스러운 대화를 통해 이용자의 의도를 컴퓨터가 파악해 보다 정확한 정보를 다양한 형태의 데이터로부터 취합해 제공하는 데에 활용된다. 세부 기술로는 형태소분석, 고정밀 구문 분석과 같은 구조 분석을 바탕으로 한 담화분석, 정보추출, 정보요약, 문서분류 기술 등이 있다. 무슨 기술에 대한 설명인가?

정답 : NLP ( NLP; Natural Language Processiong ) 또는 자연어 처리

73. 절차보다는 사람이 중심이 되어 변화에 유연하고 신속하게 적응하면서 효율적으로 시스템을 개발할 수 있는 신속 적응적 경량 개발방법론으로 개발 기간을 짧고 신속하게 가져가는 특징이 있으며 워터폴에 대비되는 방법론으로 최근 회사에서 각광받는 방법론은 무엇인가?

(2020 실기 2차 기출)

정답 : 애자일 방법론 (Agile)

< 소프트웨어 개발 방법론의 종류 >

* 구조적 방법론

전체 시스템을 기능에 따라 나누어 개발하고, 이를 통합하는 분할과 정복 접근 방식의 방법론

* 객체지향 방법론

데이터와 관련되는 동작을 모두 포함하는 방법론으로 데이터는 실체를, 동작은 절차, 방법, 기능을 의미

* 정보 공학 방법론

관리 절차, 작업 기법의 체계화, 개발 주기 이용

* 컴포넌트 기반 방법론

컴포넌트(DB+SW)조립 후 새로운 응용 프로그램 작성

* 애자일 방법론

사람중심, 유연/실속

* 제품계열 방법론

원하는 공통 기능 정의/개발하여 특정 제품에 적용 ( 임베디드 소프트웨어 )

74. 소프트웨어 개발 단계를 시간의 흐름에 따라 네 개의 범주(도입, 상세, 구축, 이행)로 나누고, 각 범주에는 요구사항 도출로부터 설계, 구현, 평가까지의 개발 생명주기가 포함되어 있는 방법론은 무엇인가?

정답 : UP 방법론 (Unified Process)

75. ‘개념 관점, 역할기반 관점, 활동평가 관점, 취약성 관점’등의 활동중심, 역할 기반의 프로세스로 구성된 집합체로서 이미 운영중인 시스템에 적용하기 적당한 소프트웨어 개발 보안 방법론은 무엇인가?

정답 : CLASP ( CLASP; Comprehensive, Lightweight Application Security Process )

76. 소프트웨어 보안의 모범사례를 소프트웨어 개발 라이프사이클에 통합한 것으로 ‘코드 검토(Code Review), 아키텍처 위험 분석(Architectural Risk Analysis), 침투 테스트(Penetration Testing), 위험 기반 보안 테스트(Risk-Based Security Test), 악용사례(Abuse Cases), 보안 요구(Seccurity Requirement), 보안 운영(Security Operation)’의 7가지 보안 강화 활동을 정의한 소프트웨어 개발 방법론은 무엇인가?

정답 : Seven Touchpoints

77. 애플리케이션을 실행하지 않고, 소스 코드에 대한 코딩 표준, 코딩 스타일, 코드 복잡도 및 남은 결함을 발견하기 위해 사용하는 도구는 무엇인지 작성하시오.

(2020 실기 2차 기출)

정답 : 정적 분석 도구

78. 다음 괄호 (   )에 들어갈 알맞은 용어를 쓰시오.

(   )은(는) 정적 테스트의 가장 일반적인 유형으로, 사전에 정의된 코드 작성 규칙(Rule) 기반으로 소스코드를 점검하여 작성 규칙에 위반되는 소스코드를 추출하는 분석도구로 애플리케이션 개발 시 대부분 사용되며, 빌드 도구와 연계하여 빌드, 배포 수행 시 자동적으로 점검할 수 있다.

정답 : 코드 인스펙션 ( Code Inspection )

79. 기업의 IT 인프라 운영환경은 안정적인 IT 서비스 운영 관리를 위해서 애플리케이션 배포 및 변경 작업에 대한 관리, 통제를 강화하고 있으며, 여러 가지 제약 사항을 가지고 있다. 그 중, 계정 관리 부문에서 아이디 또는 패스워드가 소스 코드나 빌드 스크립트 상에 직접 작성되지 않도록 주의해야 하는데, 이 때, 소스 코드나 빌드 스크립트 상에 아이디어나 패스워드를 직접 작성하는 것을 무엇이라고 하는가?

정답 : 하드코딩 ( Hard Coding )

80. 선발된 잠재 고객으로 하여금 일정 기간 무료로 사용하게 한 후에 나타난 여러 가지 오류를 수정, 보완하는 테스트는 무엇인가?

정답 : 베타 테스트

81. 유지보수 생산성 향상을 목적으로 기능을 변경하지 않고, 복잡한 소스코드를 수정, 보완하여 가용성 및 가독성을 높이는 기법 또는 소프트웨어 모듈의 기능은 수정하지 않고 내부적으로 구조, 관계 등을 단순화하여 소프트웨어의 유지보수성을 향상시키는 기법은 무엇인가?

정답 : 리팩토링 ( Refactoring )

키워드 : 모듈의 기능은 수정하지 않고 내부적으로 구조, 관계 등을 단순화, 유지보수성 향상시키는 기법

82. 조직의 표준 프로세스를 커스터마이징하여 프로젝트의 비즈니스적으로 또는 기술적인 요구에 맞게 적합한 프로세스를 얻는 과정을 뜻하는 용어는 무엇인가?

정답 : 테일러링 ( Tailaring )

키워드 : 조직의 표준 프로세스를 커스터마이징

83. 테스트 결과가 참인지 거짓인지를 판단하기 위해서 사전에 정의된 참값을 입력하여 비교하는 기법으로, true, sampling, heuristic, consistency check로 분류되는 테스트 기법은 무엇인가?

정답 : 테스트 오라클 ( Test Oracle )

< 유사 용어 >

* 테스트 하네스

애플리케이션 컴포넌트 및 모듈을 테스트하는 환경의 일부분으로, 테스트를 지원하기 위한 코드와 데이터를 말하며, 단위 또는 모듈 테스트에 사용하기 위해 코드 개발자가 작성하는 요소

84. 다음 보기가 설명하는 패턴을 작성하시오.

<보기>

한 객체의 상태가 바뀌면 그 객체에 의존하는 다른 객체들한테 연락이 가고 자동으로 내용이 갱신되는 방법으로 일대다 의존성을 가지는 디자인 패턴과 서로 상호작용을 하는 객체 사이에서는 가능하면 느슨하게 결합하는 디자인을 사용해야 한다.

(2020 실기 2차 기출)

정답 : 옵저버 패턴 ( Observer )

85. 복잡한 인스턴스를 조립하여 만드는 구조로, 복합 객체를 생성할 때 객체를 생성하는 방법(과정)과 객체를 구현(표현)하는 방법을 분리함으로써 동일한 생성 절차에서 서로 다른 표현 결과를 만들 수 있는 디자인 패턴은 무엇인가?

정답 : 빌더 패턴 ( Builder )

키워드 : 복잡한 인스턴스를 조립하여 만드는 구조, 동일한 생성 절차에서 서로 다른 표현 결과를 만들 수 있음

86. 전역 변수를 사용하지 않고 객체를 하나만 생성하도록 하며, 생성된 객체를 어디에서든지 참조할 수 있도록 하는 패턴은 무엇인가?

정답 : 싱글톤 패턴 ( Singleton )

키워드 : 하나의 객체를 생성

87. 클래스 설계 관점에서 객체의 정보를 저장할 필요가 있을 때 적용하는 디자인 패턴으로 undo 기능을 개발할 때 사용한다. 무슨 패턴인가?

정답 : 메멘토 패턴 ( Memento )

키워드 : 객체의 정보를 저장할 필요가 있을 때, undo 기능 개발

88. 기존에 구현되어 있는 클래스에 그때 그때 필요한 기능을 추가해 나가는 설계 패턴으로 기능 확장이 필요할 때 객체간의 결합을 통해 기능을 동적으로 유연하게 확장할 수 있게 해주어 상속의 대안으로 사용하는 패턴은 무엇인가?

정답 : 데코레이터 패턴 ( Decorator )

키워드 : 기존에 구현되어 있는 것에 필요한 기능 추가해 나가는 설계 패턴, 상속의 대안으로 사용

89. 처음부터 일반적인 원형을 만들어 놓고, 그것을 복사한 후 필요한 부분만 수정하여 사용하는 패턴으로, 생성할 객체의 원형을 제공하는 인스턴스에서 생성할 객체들의 타입이 결정되도록 설정하며 객체를 생성할 때 갖추어야 할 기본 형태가 있을 때 사용되는 패턴은 무엇인가?

정답 : 프로토타입 패턴 ( Prototype )

키워드 : 필요한 부분만 수정하여 사용하는 패턴

90. Linux 운영체제 위에서 구동하며 휴대전화를 비롯한 휴대용 장치를 위한 운영체제와 미들웨어, 사용자 인터페이스 그리고 표준 응용 프로그램을 포함하고 있는 소프트웨어 스택이자 리눅스 모바일 운영체제이다. 개발자들이 자바와 코틀린 언어로 응용 프로그램을 작성할 수 있게 하였으며, 컴파일된 바이트코드를 구동할 수 있는 런타임 라이브러리를 제공하는 운영체제는 무엇인지 작성하시오.

(2020 실기 2회 기출)

정답 : 안드로이드 ( Android )

91. 구역내 근거리 통신망(LAN)이나 대형 기종에서만 작동하던 운영체제인 Unix를 386 기종의 개인용 컴퓨터에서도 작동할 수 있게 만든 운영체제로, 인터넷을 통해 프로그램 소스 코드를 완전 무료로 공개하여 사용자는 원하는 대로 특정 기능을 추가할 수 있을 뿐만 아니라, 어느 플랫폼에서도 포팅이 가능한 장점을 가진 운영체제는 무엇인가?

정답 : 리눅스 ( Linux )

92. 파일럿을 뜻하는 그리스어에서 유래한 용어로 리눅스 재단에 의해 관리되는 컨테이너화된 애플리케션의 자동 배포, 스케일링 등을 제공하는 오픈소스 기반의 관리시스템은 무엇인가?

정답 : 쿠버네티스 (Kubernetes)

93. 구글에서 대용량 데이터 처리를 분산 병렬 컴퓨팅에서 처리하기 위한 목적으로 제작하여 2004년 발표한 소프트웨어로 현재 Java, C++, 그리고 기타 언어에서 적용이 가능하도록 작성되었으며 아파치 하둡(Hadoop)으로 대표되는 소프트웨어 프레임워크는 무엇인가?

정답 : 맵 리듀스 (Map Reduce)

94. 다음 설명 중 빈칸에 들어갈 알맞은 용어를 작성하시오.

– HTTP, HTTPS, SMTP를 통해서 XML 기반의 데이터를 주고받는 프로토콜로 웹 서비스 방식에서 HTTP 기반의 (  )을/를 사용하여 송수신한다. (  ) 대신 레스트 풀(RESTful) 프로토콜로 대체할 수 있다.

(2020 실기 2회 기출)

정답 : SOAP ( SOAP; Simple Object Access Protocol )

95.  웹 서비스명, 제공 위치, 메시지 포맷, 프로토콜 정보 등 웹 서비스에 대한 상세 정보를 XML형태로 구현한 기술은 무엇인가?

정답 : WSDL ( WSDL; Web Services Description Language ) 또는 웹 서비스 기술 언어

키워드 : 웹서비스에 대한 상세 정보를 XML 형태로 구현한 기술

96. HTTP URI를 통해 자원을 명시하고, HTTP 메소드(POST, GET, PUT, DELETE)를 통해 해당 자원에 대한 생성, 조회, 갱신, 삭제 등의 명령을 적용할 수 있는 분산 하이퍼미디어 시스템을 위한 소프트웨어 아키텍처는 무엇인가?

정답 : REST ( REST; Representational State Transfer ) 또는 웹 표현 상태 변경

97. 웹 서비스에 대한 정보인 WSDL을 등록하고 검색하기 위한 저장소로 공개적으로 접근, 검색이 가능한 레지스트리이자 표준은 무엇인가?

정답 : UDDI ( UDDI; Universal Description, Discovery and Integration )

키워드 : WSDL을 등록하고 검색하기 위한 저장소

98. 소프트웨어 개발 과정에서 변경 사항을 관리하는 기법을 이것 기법이라고 하며 이것 기법을 활용한 도구로는 CVS, SVN, Git등이 있다. 이것은 무엇인가?

정답 : 형상 관리

99. 소프트웨어 개발 과정에서 변경 사항을 관리하는 기법을 형상 관리라고 한다. <보기>를 보고 형상 관리의 절차를 순서대로 서술하시오.

< 보기 >

ㄱ. 형상 통제 ㄴ. 형상 기록 ㄷ. 형상 감사 ㄹ. 형상 식별

정답 : ㄹ >ㄱ >ㄷ >ㄴ

100. 형상(버전)관리에서 사용하는 용어로써, 관리 대상을 형상관리 시스템으로 일괄 전송하여 압축, 암호화한 후에 파일의 현재 버전과 변경 이력 정보를 저장하는 저장소를 뜻하는 용어는 무엇인가?

정답 : 리포지토리 ( Repository )

무조건 외워야하는 40문제

 1. 웹 서비스(Web Service)는 네트워크에 분산된 정보를 서비스 형태로 개방하여 표준화된 방식으로 공유하는 기술로써 서비스 지향 아키텍처(SOA) 개념을 실현하는 대표적인 기술이다. 아래 웹 서비스 구성도에서 밑줄 친 , , 의 용어를 약술하시오.

정답

UDDI ( Universal Description, Discovery, and Integration )

 웹 서비스에 대한 정보인 WSDL을 등록하고 검색하기 위한 저장소로 공개적으로 접근, 검색이 가능한 레지스트리이다.

기업이나 단체, 개인이 자신들의 서비스 내용을 인터넷 상에 등록할 수 있게하는 XLML 기반의 등록처이다. 이 등록처에 WSDL을 사용하여 수행한다.

WSDL ( Web Services Description Language )

 웹 서비스명, 제공 위치, 메시지 포맷, 프로토콜 정보 등 웹 서비스에 대한 상세 정보가 기술된 XML 형식으로 구현되어 있는 언어이다.

어떤 등록처나 저장소에 자료를 저장하려면 어떤 자료가 어디에 어떤 형식으로 저장되는지 알아야 사용이 가능한데 이런 특정 서비스의 설명과 접근 방법과 같은 전자적으로 접근하는 방법을 XML언어 기반으로 제공하는 기술이다.

SOAP ( Simple Object Access Protocol )

 HTTP, HTTPS, SMTP 등을 사용하여 XML 기반의 메시지를 네트워크 상태에서 교환하는 프로토콜이다. 

웹 상에 연결된 컴퓨터 속에 있는 각 객체들을 액세스 하기 위한 MS 사의 프로토콜인데 HTTP로 XML 구문을 사용하여 COM, DCOM, 자바 등이 수행될 수 있다.

해설

* 웹서비스

웹이라는 네트워크 환경에 연결된 서로 다른 컴퓨터들이 동적으로 서로 연결되어 소통하고 실행될 수 있도록 하는 동적 환경 구현을 위한 소프트웨어 컴포넌트 묶음

* 웹 서비스 묶음에는

단순 객체 접근 프로토콜(SOAP),

웹 서비스 기술 언어(WSDL),

전역 비즈니스 레지스트리(UDDI) 등의 표준 기술을 사용하는데 네트워크에 연결된 다른 컴퓨터 간의 분산 컴퓨팅을 지원하는 소프트웨어 및 기술들이다.

* 저장소로 UDDI를 사용하고, 저장소에 접근과 그 저장된 자료의 접근 형식을 적은 설명서 WSDL과 이 자료를 꺼내서 가져가는 실행 프로토콜인 SOAP로 구성되고 여기에는 XML이 사용된다.

2. 아래는 사용자 인터페이스(UI) 설계 기본 원칙에 대한 설명이다. 괄호 ( ) 안에 들어갈 설계 기본 원칙을 쓰시오.

– ( ): 누구나 쉽게 이해하고, 쉽게 사용할 수 있어야 함

– ( ): 정확하고 완벽하게 사용자의 목표가 달성될 수 있도록 제작

– ( ): 초보와 숙련자 모두가 쉽게 배우고 사용할 수 있게 제작

– ( ): 사용자의 인터랙션을 최대한 포용하고, 실수를 방지할 수 있도록 제작

정답 :  직관성 유효성  학습성  유연성

3. 다음 중   ~ 의 설명에 해당하는 보안 약점을 [보기]에서 찾아서 쓰시오.

SQL 삽입 공격, 크로스 사이트 스크립트(XSS) 공격을 유발할 수 있는 보안 약점

인증, 권한 관리, 암호화, 중요정보 처리를 부적절하게 구현 시 발생할 수 있는 보안 약점

잘못된 세션에 의한 정보 노출, 제거되지 않은 디버그 코드, 시스템 정보 노출 등으로 발생할 수 있는 보안 약점

[보기]

ㄱ. 캡슐화 보안 약점

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

ㄷ. 보안 기능에 대한 보안 약점

ㄹ. 시간 및 상태 보안 약점

ㅁ. 에러 처리 보안 약점

정답 : 

시큐어 코딩 가이드

4. 다음이 설명하는 테스트 레벨의 종류는 무엇인가?

사용자 요구사항에 대한 단위 모듈, 서브루틴 등을 테스트하는 단계
인터페이스 테스트, 자료구조 테스트, 실행 경로 테스트, 오류 처리 테스트가 존재

정답 : 단위테스트

해설

* 테스트 레벨 : 한 번에 총체적으로 조직화하고 관리하는 테스트 활동의 묶음

단위 테스트, 통합테스트, 시스템 테스트, 인수 테스트

* 단위 테스트(Unit Test)

코딩 직후 SW 설계의 최소 단위인 모듈이나 컴포넌트에 초점을 맞춰 테스트 진행

사용자 요구사항을 기반으로 한 기능성 테스트 최우선

주로 구조기반(화이트박스 테스트) 시행

* 통합 테스트

시스템이나 시스템 구성 요소 또는 소프트웨어 프로그램의 데이터 및 기능의 인터페이스(흐름)가 정상적으로 작동하는지에 중점을 둠

단위 테스트를 통과한 개발 소프트웨어/하드웨어 컴포넌트 간 인터페이스 및 연동 기능 등을 구조적으로 접근하여 테스트

>> 빅뱅 통합 테스트 : 모든 모듈을 한꺼번에 통합하고 결합 격리가 어려움

>> 상향식 통합 : 가장 하부의 모듈부터 통합해가면서 상부로 올라감, 드라이브가 필요

>> 하향식 통합 : 가장 상부의 모듈부터 통합해가면서 하부로 내려감, 스텁 필요

>> 백본 통합 : 소프트웨어 리스크가 높은 것을 우선적으로 통합하고 접근, 드라이버, 스텁은 필요에 따라 만들어서 사용

* 시스템 테스트

 실제 환경과 가능한 유사한 환경에서 진행

기능적 요구사항(명세기반 기법), 비기능적 요구사항(구조기반 기법)

개발 조직과는 독립된 테스트 조직에서 수행되어야 하며 사전 요구사항이 명확해야 한다

단위, 통합 테스트가 가능한 완벽히 완료되어 가능상에 문제가 없는 상태여야 한다

5. SW 개발 보안의 3대 요소 중  ~ 알맞는 용어를 쓰시오.

 인가되지 않은 개인 혹은 시스템 접근에 따라 정보의 노출을 차단하는 특성

 서비스가 계속 유지가 되어 인가된 대상에게 정보를 제공하는 것으로 시스템이 장애 없이 정상적으로 운영되는 능력

 시스템 내의 정보는 오직 인가된 사용자만 수정할 수 있음

정답 :  기밀성  가용성  무결성

해설

– SW 개발 보안의 3대 요소

* 기밀성(Confidentiality)

시스템 내의 정보와 자원은인가된 사용자에게만 접근이 허용되며, 정보가 전송 중에 노출되더라도 데이터를 읽을 수 없음

* 무결성(Integrity)

시스템 내의 정보는오직 인가된 사용자만 수정할 수 있음

* 가용성(Availability)

인가받은 사용자는 언제라도 사용할 수 있음

6. 다음은 릴리즈 노트 작성 프로세스이다. 올바르게 나열하시오.

릴리즈 정보 확인  릴리즈 노트 개요 작성

모듈 식별            정식 릴리즈 노트 작성

영향도 체크        추가 개선 항목 식별

정답 :  ⑥ 

해설

* 릴리즈

개발이 완성된 소프트웨어를 출시, 배포하는 것

* 릴리즈 노트

배포 후 개발자는 사용자에게 해당 릴리즈의 정보를 알리기 위해 작성함

테스트를 거친 기능 및 서비스, 개선된 사항 등을 기록

조직의 최종 사용자인 고객과 잘 정리된 릴리즈 정보를 공유하는 문서

개발팀에서 직접 작성, 현재 시제로 작성

* 릴리즈 노트 고려사항

중대한 오류가 발생하여 긴급하게 수정하는 경우 릴리즈 버전을 출시하고 버그 번호를 포함한 모든 수정된 내용을 담아 릴리즈 노트를 작성

– SW 기능 업그레이드를 완료한 경우 릴리즈 버전을 출시하고 릴리즈 노트를 작성

사용자로부터 접수된 요구사항에 의해 추가나 수정된 경우 자체 기능 향상과는 다른 별도의 릴리즈 버전으로 출시하고 릴리즈 노트 작성

7. 다음과 같은 특징을 갖는 데이터베이스 종류는 무엇인지 쓰시오.

데이터를 상하 종속적인 관계로 계층화하여 관리하는 데이터베이스이다.

데이터에 대한 접근 속도가 빠르지만, 종속적인 구조로 인하여 변화하는 데이터 구조에 유연하게 대응하기가 쉽지 않다.

정답 : 계층형 데이터베이스 관리시스템(HDBMS; Hierarchical Database Management System)

해설

* 데이터베이스 종류

 계층형 데이터베이스 관리시스템 (HDBMS; Hierarchical ~)

: 접근 속도는 빠른데 유연성은 떨어짐
망형 데이터베이스 관리시스템 (NDBMS; network~)

: 논리적으로 표현. 설계가 복잡함
관계형 데이터베이스 관리시스템 (RDBMS; Relational~)

: 가장 보편화. 테이블과 상관관계 표현. 유연성 좋다(유지보수 용이)

8. 다음은 요구사항 개발 프로세스이다. 올바르게 나열하시오.

 요구사항 분석(Analysis)  요구사항 확인(Validation)  요구사항 명세(Specification)  요구사항 도출(Elicitation)

정답 : 도출 >분석 >명세 >확인

해설

* 요구사항 개발 프로세스

도출(요구사항 수집 단계)

  : 이해 관계자 간의 의사소통 중요(인터뷰, 브레인스토밍)

분석(요구사항 분석 단계)

  : 도출된 요구사항의 타당성 조사, 내용 정리

  >>요구사항 분류 : 특정한 기준으로 분류(기능, 비기능 우선순위)

  >>개념 모델링

       : 분류된 요구사항을 단순화하여 개념적으로 표현, 객체간의 관계와 종석성 분석, 다양한 관점으로 표현, UML 사용

  >>요구사항 할당 : 요구사항을 만족시키기 위한 요소들을 할당

  >>요구사항 협상 : 충돌되는 요구사항 해결

  >>정형 분석 : 구문과 의미를 갖는 언어 이용, 수학적 기호

명세(요구사항 문서화 단계) : 승인을 위해 문서화 진행, 빠짐없이 명확하고 이해하기 쉽게 기록

확인 : 요구사항 검증 단계) : 명세서 검증, 형상관리 수행

  >>요구사항 검토 : 문서화된 요구사항을 훑어보면서 확인, 가장 일반적

  >>프로토타이핑

      : 초기 도출된 요구사항을 토대로 프로토타입을 만든 후 대상 시스템의 개발이 진행되는 동안 도출되는 요구사항을 반영하면서 지속적으로 프로토타입을 재작성하는 과정

  >>모델 검증 : 요구사항 분석 단계에서 개발된 모델이 요구사항을 충족시키는지 검증하는 것

  >>인수 테스트 : 사용자가 실제로 사용할 환경에서 요구사항들이 모두 충족되는지 사용자 입장에서 확인하는 과정

9. 다음은 연계 방식 중 간접 연계 방식의 기술에 대한 설명이다. 알맞은 기술을 쓰시오.

기업에서 운영되는 서로 다른 플랫폼 및 애플리케이션들 간의 정보 전달, 연계, 통합을 가능하게 해주는 솔루션

송수신 시스템에 설치되는 어댑터를 사용

정답 : 연계 솔루션(EAI)

해설

* EAI; Enterprise Application Integration

애플리케이션 통합

표준 : 벤더별 전송기술 상이

유지비용이 높다(시스템별로 개발)

단단한 결합

집중형으로 구현됨

기업 내 필요한 여러 애플리케이션 간에 상호 연동이 가능하도록 통합하는 솔루션

특징 : 표준통합기술 / 데이터 병목현상 최소화(그룹 내 환경에 맞는 작업 가능)

– Point to Point : 가장 기본적, 변경 재사용 어려움

– Hub &Spoke : 허브 시스템, 확장, 유지보수 용이

– Message Bus(ESB) : 미들웨어를 두고 처리, 뛰어난 확장성

– Hybrid : Hub &Spoke + ESB, 병목 현상 최소화

 참고

 EAI 방식ESB 방식
구성도APPESB(BUS)
개념미들웨어(Hub)를 이용하여 Biz로직을 중심으로 기업 내 APP 통합 연계미들웨어(BUS)를 이용하여  서비스 중심으로 서비스를 지원하기 위한 관련 시스템의 유기적 연계 (SOA의 토대가 됨)
특징단일 접점인 허브 시스템을 통해 시스템을 통합하는 중앙 집중식 방식
– HUB장애 시 전체 영향
각 시스템을 BUS를 통해 연결하므로 뛰어난 확장성, 유현성, 신속성 제공
– network에 의존적

* SOA(서비스 지향 아키텍처) : 느슨하게 결합된 서비스 기반 애플리케이션을 구현하기 위한 아키텍처 모델

* ESB

개발자가 서비스를 개발하고 적절한 API를 통해 서비스 간에 통신을 하는데 도움이 되는 인프라 스트럭처 소프트웨어

– SOA가 실현되는 플랫폼으로 사용될 수 있지만 ESB는 서비스가 흐르는 매체일 뿐이고 SOA의 구현과 서비스 구성 및 배치를 위한 기능을 제공

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

모듈의 독립성을 나타내는 개념으로, 모듈 내부 구성요소 간 연관 정도이다.

정보은닉 개념의 확장개념으로, 하나의 모듈은 하나의 기능을 수행하는 것을 의미한다.

유형으로는 우연적, 논리적, 시간적, …, 기능적 (    )이/가 있다. 

정답 : 응집도

해설

* 모듈화의 목표

모듈내 응집도 최대화

모듈간 결합도 최소화

* 응집도 순서 (낮음 >높음)

우연 >논리 >시간 >절차 >통신 >순차 >기능적

* 결합도 : 모듈 간에 상호 의존하는 정도 또는  모듈 사이의 연관 관계 
* 응집도 : 모듈 내부의 처리 요소들 간의 기능적 연관도 독립적인 기능으로 정의

11. <보기>에 나열된 응집도를 응집도가 낮은 순서부터 높은 순서로 차례대로 서술하시오

<보기>

Functional / Communication / Procedural /  Coincidental  / Temporal / Logical / Sequential

정답

Coincidental(Cohesion)(우연적) Logical(논리적) Temporal(시간적) Procedural(절차적)  Communication(통신적) Sequential(순차적) Functional(기능적)

12. 모듈 내부가 아닌 외부의 모듈과의 연관도 또는 모듈 간의 상호의존성으로 소프트웨어 구조에서 모듈 간의 관련성을 측정하는 척도를 이르는 말은?

정답 : 결합도(Coupling)

 13. 다음 결합도 유형을 높은 것부터 낮은 순으로 서술하고 괄호 (   )안에 들어갈 가장 올바른 용어를 쓰시오. 

<Data Coupling / Common Coupling / Control Coupling / Stamp Coupling / External Coupling / Content Coupling>

– (  ①  ) 결합도  : 한 모듈이 다른 모듈 내부에 있는 변수나 기능을 직접 참조하거나 사용하는 경우의 결합도이다.

– (  ②  ) 결합도 : 모듈 간의 인터페이스로 배열이나 객체, 구조 등이 전달될 때의 결합도이다. 

– (  ③  ) 결합도 : 단순 처리할 대상인 값만 전달되는 것이 아니라 어떤 모듈이 다른 모듈 내부의 논리적인 흐름을 제어하기 위해서 어떻게 처리를 해야 한다는 (    ) 요소까지 전달하는 결합도이다.

정답 : Content >Common >External >Control >Stamp >Data  내용 스탬프 제어

내용 >공통 >외부 >제어 >스탬프 >자료

14. 다음이 설명하는 라우팅 프로토콜은 무엇인가?

최초의 라우팅 프로토콜
거리 벡터 알고리즘 활용
30초 주기로 전체 라우팅 정보 갱신
변화 업데이트 시 많은 시간 소요
라우팅 루프 발생 가능

정답 : RIP

15. 다음이 설명하는 네트워크 장비는 무엇인가?

프로토콜을 서로 다른 통신망에 접속할 수 있게 해주는 장치
LAN에서 다른 네트워크에 데이터를 보내거나 다른 네트워크로부터 데이터를 받아들이는 출입구 역할

정답 : 게이트웨이

16. 다음이 설명하는 패키징 도구 암호화 기술은 무엇인가?

공개키 암호 방식 기반으로 디지털 인증서를 활용하는 소프트웨어, 하드웨어, 사용자, 정책 및 제도 등을 총칭하는 암호기술

공개키 알고리즘을 통한 암호화 및 전자서명을 제공하기 위한 복합적인 보안 시스템 환경

암호화와 복호화키로 구성된 공개키를 이용해 송수신 데이터를 암호화하고 디지털 인증서를 통해 사용자를 인증하는 시스템

정답 : 공개키 기반 구조(PKI)

해설

* PKI ( Public Key Infrastructure )

17. 다음이 설명하는 용어를 쓰시오.

( ) : 기업이 재해/재난으로부터 타격을 입은 뒤 업무를 어떻게 복구하는지에 대한 계획을 말한다.

( ) :  전산의 단순복구 뿐 아니라 고객 비즈니스의 지속성을 보장한다.

( ) :  재해 복구를 포함하는 더 넓은 개념으로 쓰인다.

( ② ) : 재해복구시간목표이다. 재해로 인하여 서비스가 중단되었을 때 서비스를 복구하는데 걸리는 최대 허용시간이다.

( ③ ) : 재해복구시점목표이다. 재해로 인하여 서비스가 중단되었을 때 유실을 감내할 수 있는 데이터 손실 허용시점이다.

( ) : 인터넷의 자동 시스템(AS; Autonomous System) 중 라우팅 및 도달 가능성 정보를 교환하도록 설계된, 표준화된 외부 게이트웨이 프로토콜의 하나로, 대형 사업자(ISP) 간의 상호 라우팅에 사용되며, 경로 벡터 라우팅 프로토콜(path-vector routing protocol)로 분류되는 프로토콜

( ) : 통계 정보가 없는 상태에서 사전 등록된 규칙에 따라 질의 실행 계획을 선택하는 옵티마이저

( ) : 통계 정보로부터 모든 접근 경로를 고려한 질의 실행 계획을 선택하는 옵티마이저

정답

① BCP(Business Continuity Planning) ② RTO(Recovery Time Objective) ③ RPO(Recovery Point Objective)

 BGP(Border Gateway Protocol, 경계 경로 프로토콜)

규칙 기반 옵티마이저(RBO; Rule-Based Optimizer) 비용 기반 옵티마이저(CBO; Cost-Based Optimizer)

해설

– BCP를 통해서 재해예방, 대응 및 복구, 운영 및 유지관리, 모의훈련을 함

* 참고

* DRS

재해/재난 시 서비스 연속성 보장을 위해 메인 센터와 분리되어 동일 역할을 하는 재해 복구 시스템

* RTO(Recovery Time Objective)

재해 복구 목표 시간 / 중요한 서비스일수록 짧아야 함

18. 다음은 테스트 유형에 대한 설명이다. 괄호 (  ) 안에 들어갈 테스트를 쓰시오.

– (   ①    )  : 사용자가 실제로 사용될 환경에서 요구사항들이 모두 충족되는지 사용자의 입장에서 확인하는 테스트로 알파, 베타 테스트가 있다.

– (   ②    ) : 시스템에 과다 정보량을 부과하여 과부하 시에도 시스템이 정상적으로 작동되는지를 검증하는 테스트 기법이다.

– (   ③    ) : 오류를 제거하거나 수정한 시스템에서 오류 제거와 수정에 의해 새로이 유입된 오류가 없는지 확인하는 일종의 반복 테스트 기법이다.

정답 :  인수테스트  강도(Stress)테스트  회귀(Regression)테스트

해설

* 테스트 종류

성능(Performance) Test : 시스템의 요소가 특정 상황에서 어느 정도의 성능을 보이는지를 측정하는 테스트

부하(Load) Test

: 임계치의 한계에 도달할 때까지 시스템에 부하를  꾸준히 증가시키면서 진행하는 테스트

발생시키는 부하는 실제 시스템에 적용될 예상 트래픽

스트레스(Stress) Test : 시스템이 과부하상태에서 어떻게 작동하는지를 검사하는 테스트

19. 다음은 애플리케이션 테스트에 대한 설명이다. 괄호(   ) 안에 들어갈 가장 올바른 테스트 유형을 쓰시오.

김PM은 온라인 예약시스템 개발 PM을 맡고 있다. 사용자 요구사항에 따라 시스템에 고의로 실패를 유도하고, 온라인 예약시스템의 정상적 복귀 여부를 확인하는 테스트를 수행해야 한다. 김PM이 수행해야 하는 테스트는  (      )이다.

이대리는 내부 인트라넷 급여시스템 개발자이다. 일정에 맞춰 커버리지 테스트를 수행해야 한다. 이대리는 전체 조건식뿐만 아니라 개별 조건식도 참 한 번, 거짓 한 번 결과가 되도록 수행하는 커버리지 테스트를 수행해야 한다. 이 코드 커버리지 유형은 (      )이다.

 (   ③    ) : 프로그램 내의 전체 결정문이 적어도 한 번은 참과 거짓의 결과를 수행하는 코드 커버리지 유형은 무엇인가?

 (   ④    ) : ‘프로그램 내의 모든 명령문을 적어도 한 번 수행하는 커버리지리로 조건문 결과 관계 없이 구문 실행 개수로 계산하는 코드 커버리지는 무엇인가? 

 (   ⑤    ) : 조건/결정 커버리지를 향상시켜 각 조건식이 다른 개별 조건식에 영향을 받지 않고 전체 조건식에 독립적으로 영향을 주도록 한 코드 커버리지

 (   ⑥    ) : 테스트 목적에 따른 분류로 불법적인 소프트웨어가 접근하여 시스템을 파괴하지 못하도록 소스 코드 내의 보안적인 결함을 미리 점검하는 테스트 기법을 이르는 용어

 (   ⑦    ) : 결정 명령문 내의 각 조건이 적어도 한 번은 참과 거짓의 결과가 되도록 수행하는 코드 커버리지 유형

정답 :  회복 테스트   조건/결정 커버리지  결정 커버리지  구문 커버리지  변경 조건/결정 커버리지  안전 테스트(Security Test)  조건 커버리지

해설

* 소프트웨어 테스트 유형

회귀 테스트 : 오류를 제거하거나 수정 후 새롭게 유입된 오류가 있는지 테스트

회복 테스트 : 고의로 실패 유도 후 정상 복귀 여부 확인하는 테스트

안전 테스트 : 소스 내의 보안적인 결함을 확인

강도 테스트 : 과부하시 정상적인 동작을 하는지 확인하는 테스트

성능 테스트 : 응답시간, 특정시간, 처리량 등 시스템 반응 속도 테스트

구조 테스트 : 시스템 내부의 경로나 소스코드 복잡도 테스트

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

* 테스트 커버리지

유형 : 구문, 결정, 조건, 조건-결정, 변경조건-결정, 다중 조건

결정 커버리지

: 프로그램 내의 전체조건식이 적어도 한 번은 참과 거짓의 결과를 수행하는 테스트 케이스

조건 커버리지

: 전체 조건식과 결과와 관계없이 각 개별 조건식이 참/거짓 한 번만 모두 갖도록 개별 조건식을 조합하는 테스트 커버리지

조건-결정 커버리지

: 결정 명령문 내의 각 조건(개별조건)과 전체조건식이 적어도 한 번은 참과 거짓의 결과를 수행하는 테스트 케이스

20. 다음 설명은 인터페이스 구현 검증 도구에 대한 설명이다. 괄호 (  ) 안에 들어갈 구현 검증 도구를 쓰시오

– (  ①  ) : 웹 기반 테스트 케이스 설계/실행/결과 확인 등을 지원하는 테스트 프레임워크로 사용자가 테스트 케이스 테이블을 작성하면 빠르고 편하게 자동으로 원하는 값에 대해 테스트를 할 수 있는 장점이 있음

– (  ②  ) : 루비(Ruby) 기반 웹 애플리케이션 테스트 프레임워크로 모든 언어 기반의 웹 애플리케이션 테스트와 브라우저 호환성 테스팅 가능

정답 :  FitNesse ② watir

해설

* 인터페이스 구현 검증 도구

 xUnit

:JAVA(Junit), C++(Cppunit), .Net(Nunit) 등다양한 언어를 지원하는 단위 테스트 프레임워크

 STAF

:서비스 호출 및 컴포넌트 재사용 등 다양한 환경을 지원하는 테스트 프레임워크

 FitNesse

: 웹 기반 테스트케이스 설계, 실행, 결과 확인 등을 지원하는 테스트 프레임워크

 NTAF

: FitNesse의 장점인 협업 기능과 STAF의 장점인 재사용 및 확장성을 통합한NHN(Naver)의 테스트 자동화 프레임워크

 Selenium

: 다양한 브라우저 및 개발 언어를 지원하는 웹 애플리케이션 테스트 프레임워크

 watir

: Ruby를 사용하는 애플리케이션 테스트 프레임워크

* 참고 >재사용

함수 재사용 : Function 단위 소스코드 재사용

객체 재사용 : Class 단위 소스코드 재사용

컴포넌트 재사용 : 컴포넌터의 인터페이스를 통해 통신

라이브러리 : 공통으로 사용될 수 있는 특정한 기능을 모듈화한 기법

21. 괄호 (  )안에 들어갈 알맞은 용어를 쓰시오.

– (스머프) : 출발지 주소를 공격 대상의 IP로 설정하여 네트워크 전체에 ICMP Echo 패킷을 직접 브로드캐스팅(Directed Broadcasting)하여 타켓 시스템을 마비시키는 공격기법이다.

– ( RUDY) : 요청 헤더의 Content-length를 비정상적으로 크게 설정하여 메시지 바디 부분을 매우 소량으로 보내 계속 연결 상태를 유지시켜 자원을 소진시키는 공격기법이다.

– (티어드롭) : 공격자가 IP Fragment Offset 값을 서로 중첩되도록 조작하여 전송하고, 이를 수신한 시스템이 재조합하는 과정에서 오류가 발생, 시스템의 기능을 마비시키는 공격기법이다.

– (스턱스넷) : 2010년 6월에 발견된 웜 바이러스이다. 지멘스의 SCADA 시스템만을 감염시켜 장비를 제어하고 감시하는 특수한 코드를 내부에 담고 있다. (스턱스넷)은 장비를 프로그램하는 데 사용되는 PLC를 감염시켜 장비의 동작을 변경한다.

 (스니핑) : 공격대상에게 직접 공격을 하지 않고 데이터만 몰래 들여다보는 수동적 공격기법

22. 효율적인 정보 시스템 개발을 위한 코드 라이브러리, 애플리케이션 인터페이스(Application Interface), 설정 정보 등의 집합으로서 재사용이 가능하도록 소프트웨어 구성에 필요한 기본 뼈대를 제공하는 프레임워크(Framework)의 특징에 대한 설명이다. 괄호 (   )안에 들어갈 가장 올바른 용어를 쓰시오.

 (   모듈화(modularity) ) : 프레임워크는 인터페이스에 의한 캡슐화를 통해서 모듈화를 강화하고 설계와 구현의 변경에 따르는 영향을 극소화하여 소프트웨어의 품질을 향상시킨다.

  (   재사용성(reusability)  ) : 프레임워크가 제공하는 인터페이스는 반복적으로 사용할 수 있는 컴포넌트를 정의할 수 있게 하여 재사용성을 높여 준다. 또한 재사용성은 소프트웨어의 품질을 향상시킬 뿐만 아니라 개발자의 생산성도 높여 준다. 

 (    확장성(Extensibility)) : 프레임워크는 다형성(polymorphism)을 통해 애플리케이션이 프레임워크의 인터페이스를 넓게 사용할 수 있게 한다. 또한 애플리케이션 서비스와 특성을 변경하고 프레임워크를 애플리케이션의 가변성으로부터 분리함으로써 재사용성의 이점을 얻게 한다.

 (   제어의 역흐름(Inversion of control) )  : 프레임워크 코드가 전체 애플리케이션의 처리 흐름을 제어하여 특정한 이벤트가 발생할 때 다형성(Polymorphism)을 통해 애플리케이션이 확장한 메소드를 호출함으로써 제어가 프레임워크로부터 애플리케이션으로 반대로 흐르게 한다.

정답 :  모듈화(modularity)  재사용성(reusability)  확장성(Extensibility)  제어의 역흐름(Inversion of control)

해설

* 소프트웨어 프레임워크의 특징

모듈화, 재사용성, 확장성, 제어의 역흐름

23. 아래는 UML 다이어그램의 관계를 표현한 그림이다. 가장 올바른 관계의 유형을 쓰시오.

정답 : 일반화 관계

해설

* 일반화 관계

상위 개념과 하위 개념의 관계를 나타냄

보다 일반적인 개념을 상위(부모), 보다 구체적인 개념을 하위(자식)이라고 함

객체지향 개념에서는 상속관계라고 말함

한 클래스가 다른 클래스를 포함하는 상위 개념일 때 UML에서는 일반화 관계로 모델링함

* 참고

객체지향 기법에서 클래스들 사이에 ‘부분-전체’ 관계 또는 ‘부분’의 관계는 집단화 관계

*일등컴퓨터 문키포함 실체화나는새

연관사람집      사람   실선    집

일반화커피빈삼실,         

의존등급할인점화살,   ——

집합컴퓨터프린터빈다각     

포함문키검다각,       

실체화날는새비행기삼점     —–

24. 다음이 설명하는 용어를 쓰시오.

 (    ) : 릴레이션 조작 시 데이터들이 불필요하게 중복되어 예기치 않게 발생하는 곤란한 현상

 (    ) : 데이터의 중복성으로 인해 릴레이션을 조작할 때 발생하는 비합리적 현상

 (    ) : 정규화된 엔티티, 속성, 관계에 대해 성능 향상과 개발 운영의 단순화를 위해 중복, 통합, 분리 등을 수행하는 데이터 모델링의 기법

 (    ) : 관계형 데이터베이스 설계에서 중복을 최소화하여 데이터를 구조화하는 프로세스

 (    ) : 데이터베이스 관리 시스템 또는 유사한 시스템에서 하나의 논리적 기능을 정상적으로 수행하기 위한 작업의 기본 단위이자 한꺼번에 모두 수행되어야 할 일련의 연산이다.

 (  ⑤  ) : 트리거는 특정 테이블에 삽입, 수정, 삭제 등의 데이터 변경 이벤트가 발생 시 DBMS에서 자동적으로 실행되도록 구현된 프로그램이다

정답 :  이상 현상(Anomaly)  반 정규화(De-Normalization)  정규화(Normalization)  트랜잭션(Transaction)  트리거(Trigger)

25.  다음이 설명하는 용어를 쓰시오.

 (    ) : 소프트웨어 과정을 테스트하는 것으로, 올바른 제품을 생산하고  있는지 여부를 검증하며, 이전 단계에서 설정된 개발 규격과 요구를 충족시키는지 판단하며 개발자 혹은 시험자의 시각으로 소프트웨어가 명세화된 기능을 올바로 수행하는지 알아보는 과정을 이르는 말

 (  ②  ) : 소프트웨어 결과를 테스트하는 것으로 만들어진 제품이 제대로 동작하는지 확인하고 최종 사용자 요구 또는 소프트웨어 요구가 적합한지를 판단하고 사용자 시각으로 올바른 소프트웨어가 개발되었는지 입증하는 과정을 이르는 용어

정답 :  검증(Verfication)  확인(Validation)

26. 서버와 네트워크, 프로그램 등의 정보시스템이 시스템의 장애에 대응하여 상당히 오랜 기간 동안 지속적으로 정상 운영이 가능한 성질은 무엇인가?

정답 : 고가용성(HA; High Availability)

27. 배치 프로그램은 이벤트 배치, 온디맨드 배치, 정기 배치로 분류할 수 있는데, 정해진 시점에 정기적으로 실행되는 배치 유형을 ( )라고 하고, 사전에 정의해 둔 조건 충족시 자동으로 실행되는 배치 유형은 ( )라고 한다. 그리고 앞의 두 유형과는 달리 사용자의 명시적 요구가 있을 때마다 실행되는 배치 프로그램은 ( )라고 한다.

정답 :  정기 배치 이벤트 배치 온디맨드 배치

28. 보기 중 비대칭 키 암호화 알고리즘인 것을 모두 고르시오

<보기>

SEED /  SHA-256 / RSA / ARIA-128 / HAS-160 

정답 : RSA

29. 전역 변수를 사용하지 않고 객체를 하나만 생성하도록 하여 생성된 객체를 어디에서든지 참조 할 수 있도록 하는 디자인 패턴은 무엇인가? 

정답 : 싱글톤 패턴(Singleton Pattern)

30. 응용 소프트웨어와 연계 대상 모듈 간의 데이터 연계 시 요구사항을 고려한 연계방법과 주기를 설계하기 위한 메커니즘을 ( )(이)라고 한다. ( )은/는 직접적인 방법과 간접적인 방법으로 구분할 수 있는데, 직접적인 방법 중 수신 시스템에서 DB링크를 생성하고 송신 시스템에서 해당 DB링크를 직접 참조하는 방식을 ( )(이)라고 하고, 수신 시스템의 WAS에서 송신 시스템 DB로 연결하는 DB커넥션 풀(DB Connection Pool)을 생성하고 연계 프로그램에서 해당 DB 커넥션 풀 명을 이용하는 기술을 ( )(이)라고 한다. 

정답 :  연계 메커니즘 DB 링크(DB Link) DB 연결(DB Connection)  

31. 정형기술검토(FTR)는 ( ), ( ), ( ), 라운드로빈(RoundRobin), 그리고 소프트웨어에 관한 다른 소단체의 기술적 평가를 포함하는 검토의 부류이다. 검토 자료를 회의 전에 배포해서 사전검토한 후 짧은 시간 동안 회의를 진행하는 형태로 리뷰를 통해 오류를 검출하고 문서화하는 기법을 ( )(이)라고 하고, 2~3명이 진행하는 리뷰의 형태로 요구사항 명세서 작성자가 요구사항 명세서를 설명하고, 이해관계자들이 설명을 들으면서 결함을 발견하는 형태로 진행하는 검토기법을 ( )(이)라고 하며, 소프트웨어 요구, 설계, 원시 코드 등의 저작자 외의 다른 전문가 또는 팀이 검사하여 오류를 찾아내는 공식적 검토기법을 ( )이라고 한다. 정답 :  워크스루(Walk Through) 동료 검토(Peer Review) 인스펙션(Inspection)

32. 다음이 설명하는 용어를 쓰시오.

 (    ) : 범위 분할 이후 해시 함수를 적용하여 재분할함으로써 큰 파티션에 대한 I/O(In/Out) 요청을 여러 파티션으로 분산할 수 있는 파티셔닝 기법

 (    ) : 파티션을 위한 범위가 없는 데이터에 적합한 기법으로 균등한 데이터 분할이 가능하고 질의 성능의 향상이 가능한 특징을 가지며, 파티션 키의 해시 함수 값에 의한 파티셔닝 기법

정답 :  컴포지트 파티셔닝(Composite Partitioning)  해시 파티셔닝(Hash Partitioning)

33. 역공학을 통한 공격을 막기 위해 프로그램의 소스 코드를 알아보기 힘든 형태로 바꾸는 기술로, 소스코드 자체를 알아보기 힘들게 바꾸거나 컴파일 후에 생성된 바이너리를 분석하기 힘들게 변조하는 유형으로 크게 구분되는 저작권 크랙방지 기술을 무엇이라고 하는가?

정답 : 코드 난독화(Code Obfuscation)

34. 배치 스케줄러 중 하나로 스프링 프레임워크에 플러그인되어 수행하는 작업(job)과 실행 스케줄을 정의하는 트리거를 분리하여 유연성을 제공하는 오픈소스 기반 스케줄러를 무엇이라고 하는가? 

정답 : 쿼츠 스케줄러(Quartz Scheduler)

35. 다음이 설명하는 용어를 쓰시오.

 (    ) : 상향식 통합 테스트에서 데이터의 입력과 출력을 확인하기 위해서 하위 모듈을 호출하는 상위의 더미 모듈

 (    ) : 테스트 수행을 위한 여러 테스트 케이스의 집합으로서, 테스트 케이스의 동작 순서를 기술한 문서이며 테스트를 위한 절차를 명세한 문서

 (    ) : 테스트의 결과가 참인지 거짓인지를 판단하기 위해서 사전에 정의된 참 값을 입력하여 비교하는 기법

 (    ) : 애플리케이션 컴포넌트 및 모듈을 테스트하는 환경의 일부분으로, 테스트를 지원하기 위한 코드와 데이터를 말하며, 단위 또는 모듈 테스트에 사용하기 위해 코드 개발자가 작성하는 요소

 정답 :  테스트 드라이버(Driver)  테스트 시나리오(Test Scenario)  테스트 오라클(Test Oracle)  테스트 하네스(Test Harness)

36. 프로그래머를 위한 운영체제나 프로그램의 인터페이스 사양으로서 응용 프로그램이나 운영체제나 데이터베이스 관리 시스템과 같은 시스템 프로그램과 통신할 때 사용되는 언어나 메시지 형식을 가지며, 프로그램 내에서 실행을 위해 특정 서브루틴에 연결을 제공하는 함수를 호출하는 것으로 구현되는 인터페이스 또는 프로그램을 작성하기 위한 일련의 서브프로그램, 프로토콜 등을 정의하여 상호 작용을 하기 위한 인터페이스 사양을 뜻하는 개념은 무엇인가?

정답 : API(Application Programming Interface)

37. 콘텐츠의 불법복제 방지를 위한 디지털 저작권 관리 기술을 ( )(이)라고 한다. ( )의 구성요소로는 콘텐츠를 제공하는 콘텐츠 제공자(contents provider)와 쇼핑몰 등을 통해 암호화된 콘텐츠를 제공하는 콘텐츠 분배자(contents distributor), 콘텐츠를 메타 데이터와 함께 배포 가능한 단위로 묶는 기능을 뜻하는 ( )와 원본을 안전하게 유통하기 위한 전자적 보안장치인 보안 컨테니어(security container), 배포된 콘텐츠의 이용 권한을 통제하는 ( ), 그리고 키 관리 및 라이선스 발급을 관리하는 ( )로 이루어져 있다.

정답

DRM(Digital Rights Management)  패키저(packager)  DRM컨트롤러 클리어링 하우스(clearing house)

38.  다음이 설명하는 용어를 쓰시오.

 (    ) : 서버, 스토리지 같은 시스템 자원을 클라우드로 제공하는 서비스로, 컴퓨팅 자원에 운영체제나 애플리케이션 등의 소프트웨어를 탑재하여 실행하며 하위의 클라우드 인프라를 제어하거나 관리하지 않지만 스토리지, 애플리케이션에 대해서는 제어권을 가지는 클라우드 컴퓨팅 기술 유형

 (    ) : 인프라를 생성, 관리하는 복잡함 없이 애플리케이션을 개발, 실행, 관리할 수 있게 하는 플랫폼을 제공하는 서비스로,  개발을 위한 플랫폼을 구축할 필요 없이, 필요한 개발 요소를 웹에서 빌려 쓸 수 있게 하는 클라우드 컴퓨팅 유형

 (    ) : 소프트웨어 및 관련 데이터는 중앙에 호스팅되고 사용자는 웹 브라우저 등의 클라이언트를 통해 접속하여 소프트웨어를 서비스 형태로 이용하며, 주문형 소프트웨어라고도 하는 클라우트 컴퓨팅 기술 유형

정답 :  IaaS(인프라형 서비스, Infrastructure as a Service)  PaaS(플랫폼형 서비스, Platform as a Service)  SaaS(소프트웨어형 서비스, Software as a Service)

39. 다음이 설명하는 용어를 쓰시오.

(1) 물리적인 사물과 컴퓨터에 동일하게 표현되는 가상 모델로 실제 물리적인 자산 대신 소프트웨어로 가상화함으로써 실제 자산의 특성에 대한 정확한 정보를 얻을 수 있고, 자산 최적화, 돌발사고 최소화, 생산성 증가 등 설계부터 제조, 서비스에 이르는 모든 과정의 효율성을 향상시킬 수 있는 모델

(2) 가상 물리시스템으로 인간의 개입 없이 대규모 센서/엑추에이터를 갖는 물리적인 요소들과 통신기술, 응용/시스템 소프트웨어 기술을 활용하여 실시간으로 물리적 요소들을 제어하는 컴퓨팅 요소가 결합된 복합 시스템

정답 : (1) 디지털 트윈(digital twin) (2) CPS(Cyber-Physical System)

40. 서술형 문제

– 1. IPS(Intrusion Prevention System)에 대해서 서술하시오.

네트워크에 대한 공격이나 침입을 실시간적으로 차단하고, 유해 트래픽에 대한 조치를 능동적으로 처리하는 시스템

– 2. SAN (Storage Area Network)에 대해서 서술하시오.

서버와 스토리지를 광케이블  광 채널 스위치를 통해 근거리 네트워크 환경을 구성하여 빠른 속도로 데이터를 처리할 수 있는 특수 목적용 고속 네트워크이다.

서버와 스토리지를 저장 장치 전용 네트워크로 상호 구성하여 고가용성, 고성능, 융통성, 확장성을 보장하고 데이터를 블록 단위로 관리하는 기술

– 3. IPSEC에 대해서 서술하시오.

IP패킷을 암호화하고 인증하는 안전한 IP 통신을 위한 OSI 3계층 보안 프로토콜

IP계층(3계층)에서 무결성과 인증을 보장하는 인증헤더(AH)와 기밀성을 보장하는 암호화(ESP)를 이용하여 양 종단 간(End Point) 구간에 보안 서비스를 제공하는 IP 계층의 보안 프로토콜

– 4. AJAX의 개념에 대하여 서술하시오.

자바스크립트를 사용하여 웹 서버와 클라이언트 간 비동기적으로 XML 데이터를 교환하고 조작하기 위한 웹 기술이다.

– 5. 형상관리의 개념에 대하여 서술하시오.

소프트웨어 개발을 위한 전체 과정에서 발생하는 모든 항목의 변경 사항을 관리하기 위한 활동

소프트웨어의 개발 과정에서 소프트웨어의 변경 사항을 관리하기 위해 개발된 일련의 활동

– 6. 비트락커(BitLocker)의 개념에 대하여 서술하시오.

마이크로소프트 윈도즈 운영 체제에 포함되어 볼륨 전체의 암호화를 제공함으로써 중요자료를 보호하도록 설계되어진 완전한 디스크 암호화 기능이다.

– 7. 미들웨어(Middleware)에 대해 서술하시오.

분산 컴퓨팅 환경에서 응용 프로그램과 프로그램이 운영되는 환경 간에 원만한 통신이 이루어질 수 있도록 제어해주는 소프트웨어로 운영체제와 소프트웨어 애플리케이션 사이에 위치하는 프로그램

– 8. 솔트(Salt)에 대해 서술하시오.

 일방향 해시 함수에서 다이제스트를 생성할 때 추가되는 바이트 단위의 임의의 문자열

– 9. 오류-부재의 궤변에 대해 서술하시오.

요구사항을 충족시켜주지 못한다면, 결함이 없다고 해도 품질이 높다고 볼 수 없는 소프트웨어 테스트의 원리

– 10. 일방향 암호화 알고리즘에 대해 서술하시오.

암호화는 수행하지만 절대로 복호화가 불가능한 알고리즘

– 11. JSON의 개념에 대해서 서술하시오.

비동기 브라우저 / 서버 통신(AJAX)을 위해 속성-값 쌍, 키-값 쌍으로 이루어진 데이터 오브젝트를 전달하기 위해 인간이 읽을 수 있는 텍스트를 사용하는 개방형 표준 포맷

정답: json

– 12. Mybatis의 개념에 대해서 서술하시오.

DBMS에 질의하기 위한 SQL 쿼리를 별도의 XML파일로 분리하고 Mapping을 통해서 SQL을 실행하며, 복잡한 JDBC 코드를 단순화 할 수 있고, SQL을 거의 그대로 사용하며, Spring 기반 프레임워크와의 통합 기능을 제공하는 SQL Mapping 기반 오픈소스 Access Framework

 422. 통신을 원하는 두 단말장치가 패킷 교환망을 통해 패킷을 원활히 전달하기 위한 통신 프로토콜로, 고정된 대역폭을 가지며 패킷을 사용해 대용량의 데이터를 분리하여 송신, 결합하여 복원하는 특징을 갖는 프로토콜은 무엇인가?

정답 : X.25

423. 다른 특수한 목적을 갖는 마크업 언어를 만드는데 사용하도록 권장하는 다목적 언어로서, 인터넷 웹페이지를 만드는 HTML을 획기적으로 개선하여, 홈페이지 구축기능, 검색 기능 등이 향상되었고 웹 페이지의 추가와 작성을 용이하게 만든 언어는 무엇인가? 

정답 : XML(eXtensible Markup Language)

424. 다음 특징을 지닌 저작권 표현 언어는 무엇인가? 

콘텐츠 및 서비스의 신뢰를 확보하기 위한 디지털 저작권 관리(DRM) 생성 언어

디지털 콘텐츠 / 웹 서비스 권리 조건을 표현한 XML기반의 마크업 언어

모든 자원과 관련된 권리 및 조건들을 보안적으로 규정하고 관리하는 일반적인 방법을 제공함

리스프(LISP) 기반의 DRM 언어인 디지털 저작권 언어(DPRL)을 개발한 제네록스사와 마이크로소프트사가 이를 개정하여 발표한 언어

정답 : XrML(eXtensible right Markup Language)

425. 웹 페이지에 악의적인 스크립트를 포함해 사용자 측에서 실행되게 유도하는 방법으로, 검증되지 않은 외부 입력이 동적 웹페이지 생성에 사용될 경우 전송된 동적 웹페이지를 열람하는 접속자의 권한으로 부적절한 스크립트가 수행되어 정보 유출 등의 공격을 유발할 수 있는 취약점 공격 기법은 무엇인가? 

정답 : XSS공격(Cross Site Scripting, 크로스 사이트 스크립팅) 

426. 자바(jUnit), C++(cppUnit), .Net(nUnit) 등 다양한 언어를 지원하는 단위 테스트 프레임워크로, 소프트웨어의 함수나 클래스 같은 서로 다른 구성 원소(단위)를 테스트할 수 있게 해주는 도구는 무엇인가? 

정답 : xUNit

427. 다음은 성적 테이블이다. IN 키워드를 이용하여 ‘컴퓨터 구조’와 ‘알고리즘’ 과목에 대한 학번 별 평균 학점을 구하는 쿼리를 작성하시오.

<성적> 테이블

학번과목학점
2001 2001 2002 2003 2003컴퓨터 구조 운영체제 알고리즘 컴퓨터 구조 알고리즘4.5 4.0 4.5 3.5 2.5

<결과>

학번평균
2001 2002 20034.5 4.5 3.0

정답

SELECT 학번, AVG(학점) as 평균

FROM 성적

WHERE 과목 IN (‘컴퓨터 구조’, ‘알고리즘’)

GROUP BY 학번;

428. 다음은 성적 테이블이다. ‘컴퓨터 구조’ 과목을 수강한 사람의 학번과 학점을 학점 순(오름차순)으로 정렬하는 쿼리를 작성하시오.

<성적> 테이블

학번과목학점
2001 2001 2002 2003 2003컴퓨터 구조 운영체제 알고리즘 컴퓨터 구조 알고리즘4.5 4.0 4.5 3.5 2.5

정답

SELECT 학번, 학점

FROM 성적

WHERE 과목 = ‘컴퓨터 구조’

ORDER BY 학점 ASC;

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

string=”Hello World”   

m=string[0:3] + string[-3:]      

print(m)  

정답 : Helrld

#”Hello World” 문자열을 string 변수에 저장한다

>>>string=”Hello World”   

“””

string[0:3] 에서 “Hel”

string[-3:]에서 “rld” 를 가져와서

‘+’ 연산자에서 두 문자열을 합친 결과를 m에 저장

“””

>>>m=string[0:3] + string[-3:]                                                

#결과 출력

>>>print(m)

해설

string[3:] : 3번째 부터 끝까지 부분 문자열을 반환한다.

string[0:3] : 처음부터 3번째까지 반환한다.

string[:] : 처음부터 끝까지 전부 반환 한다.

string[-3:] : 문자열의 끝에서 역방향 3번째까지 반환한다.

430. 다음은 C언어 소스 코드이다. 출력 결과를 쓰시오.

#include<stdio.h>

voidmain(){

   int a = 3, b = 4;

   int ret = 0;

   ret = a>b? a: b;

   switch(ret){

   case0: printf(“A”);

   case4: printf(“B”);

   case3: printf(“C”);

   case7: printf(“D”);

   default: printf(“E”);

   }

}

정답 : BCDE

해설

삼항 연산자 문법

: 조건 ? 참일 때 값 : 거짓일 때 값;

431. 다음이 설명하는 용어를 쓰시오.

(1) 물리적인 사물과 컴퓨터에 동일하게 표현되는 가상 모델로 실제 물리적인 자산 대신 소프트웨어로 가상화함으로써 실제 자산의 특성에 대한 정확한 정보를 얻을 수 있고, 자산 최적화, 돌발사고 최소화, 생산성 증가 등 설계부터 제조, 서비스에 이르는 모든 과정의 효율성을 향상시킬 수 있는 모델

(2) 가상 물리시스템으로 인간의 개입 없이 대규모 센서/엑추에이터를 갖는 물리적인 요소들과 통신기술, 응용/시스템 소프트웨어 기술을 활용하여 실시간으로 물리적 요소들을 제어하는 컴퓨팅 요소가 결합된 복합 시스템

정답 : (1) 디지털 트윈(digital twin) (2) CPS(Cyber-Physical System)

432. 다음은 C언어 코드이다. 출력 결과를 쓰시오.

#include<stdio.h>

voidmain(){

  int i=1;

  for( ; i<10; ){

    switch(i%2){

    case0 : printf(“짝수: %d\n”, i); break;

    default : printf(“홀수: %d\n”, i);

    }

    i+=3;

  }

}

정답

홀수: 1

짝수: 4

홀수: 7

해설

for문은 for(초기값; 조건; 증감) 이렇게 구성되어야 하는데, 초기값과 증감값은 생략할 수 있습니다. 대신에 초기값은 int i=1; 부분이 그 역할을 하고, i+=3;이라는 문장이 증감의 역할을 합니다.

코드 자체가 어려운 것은 아닌데, for문에 세미콜론(;)으로만 구분되어 있고, 빈칸으로 되어 있는게 어색할 수 있을 것 같아 이런 코드도 있다는 의미로 출제해보았습니다.

추가로 아래 코드와 기능이 동일합니다.

#include<stdio.h>

voidmain(){

  int i=1;

  for(i=1; i<10; i+=3){

    switch(i%2){

    case0 : printf(“짝수: %d\n”, i); break;

    default : printf(“홀수: %d\n”, i);

    }

  }

}

433. 다음은 성적 테이블이다. 과목만 출력하는 쿼리를 작성하시오.(단, 과목이 중복되지 않도록 한다.)

<성적> 테이블

학번과목학점
2001 2001 2002 2003 2003컴퓨터 구조 운영체제 알고리즘 컴퓨터 구조 알고리즘4.5 4.0 4.5 3.5 2.5

정답

SELECT DISTINCT 과목

FROM 성적;

434. 다음은 C언어 소스코드이다. 다음 조건에 맞도록 밑줄친 부분의 코드를 작성하시오.

짝수이면서 10보다 큰 수가 입력되면 Here가 출력되도록 작성하시오.

#include<stdio.h>

voidmain(){

  int a;

  scanf(“%d”, &a);

  if(____________){

    printf(“Here”);

  }

}

정답 : a % 2 == 0 &&a >10

435. 다음 파이썬 프로그램 실행 결과를 쓰시오

print(2**3)

( ) # 1

print(3**2)

( ) # 2

정답 :  8 9

해설

# 2의 3승을 출력한다

>>>print(2**3)

( )

#3의 2승을 출력한다

>>>print(3**2)

( )

* 약술형 문제

436. 동등 분할 테스트(Equivalence Partitioning Test) 개념 설명

답안 : 동등 분할 테스트는 입력 데이터의 영역을 유사한 도메인별로 유효 값/무효 값을 그룹핑하여 대표 값을 테스트 케이스로 도출하여 테스트하는 기법이다.

437. 테스트 오라클(Test Oracle) 개념 설명

답안 : 테스트를 수행한 결과가 참인지 거짓인지를 판단하기 위해서 미리 정의된 참 값을 대입하여 비교하는 기법이다.

* 테스트 오라클은 테스트 수행 결과를 검증하는 기법

438. 개념 설명

1. 파티셔닝(Partitioning) 

답안 : 대용량의 데이터베이스를 파티션(Partition)이라는 보다 작은 단위로 분할함으로써 관리 용이성, 성능 향상, 가용성 등을 용이하게 하는 기술

2. 테일러링(Tailering)

답안 : 테일러링은 프로젝트의 특성과 필요에 따라 소프트웨어 개발 프로세스, 기법, 산출물 등을 비즈니스적으로 또는 기술적인 요구에 맞도록 최적화하는 과정 및 방법론이다.

439. 개념 설명

1. CSRF(Cross-Site Request Forgery) 

답안 : CSRF는 공격자가 웹 서버의 취약점을 이용하여 악성 스크립트 구문을 삽입하고, 정상적인 사용자로 하여금 자신의 의지와는 무관하게 게시판 설정 변경, 회원 정보 변경 등 공격자가 의도한 행위를 특정 웹사이트에 요청하게 하는 공격이다.

참고

XSS는 사용자가 악의적인 스크립트를 실행 했을 때 피해를 입는것이고,
CSRF는 인가자(정상적인사용자)의 권한으로 실행하여 서퍼에 피해를 입히는 것

2. 시맨틱 웹(Semantic Web)

답안 : 인터넷과 같은 분산환경에서 리소스에 대한 정보와 자원 사이의 관계-의미 정보를 기계(컴퓨터)가 처리할 수 있는 온톨로지 형태로 표현하고, 이를 자동화된 기계(컴퓨터)가 처리하도록 하는 지능형 웹이다.

3. 온톨로지(Ontology)

답안 : 실세계에 존재하는 모든 개념들과 개념들의 속성, 그리고 개념들 간의 관계 정보를 컴퓨터가 이해할 수 있도록 서술해 놓은 개념화 명세서 (개정 전 기출)

4. 살충제 패러독스(Pesticide Paradox)

답안 : 살충제 패러독스는 동일한 테스트 케이스로 반복적인 테스트를 수행하면 더 이상 결함을 발견할 수 없다는 테스트의 원리이다.

5. 티어드롭(Teardrop)

답안 : 티어드롭(Teardrop)은 IP 패킷의 재조합 과정에서 잘못된 Fragment Offset 정보로 인해 타겟 시스템이 단편화된 패킷의 재조합 과정에서 문제를 발생하도록 만드는 Dos 공격이다.

440. 개념 설명

1. 프로시저(Procedure)

답안 : 프로시저는 일련의 SQL 쿼리의 집합으로 마치 하나의 함수처럼 쿼리의 집합을 실행하여 데이터를 조작하는 프로그램이다.

2. 트리거(Trigger)

답안 : 트리거는 특정 테이블에 삽입, 수정, 삭제 등의 데이터 변경 이벤트가 발생 시 DBMS에서 자동적으로 실행되도록 구현된 프로그램이다.

3. 트랜잭션(Transaction)

답안 : 데이터베이스 관리 시스템 또는 유사한 시스템에서 하나의 논리적 기능을 정상적으로 수행하기 위한 작업의 기본 단위이자 한꺼번에 모두 수행되어야 할 일련의 연산이다.

4. 병행 제어(Concurrency Control)

답안 : 병행제어란 동시에 여러개의 트랜잭션을 수행할 때, 데이터베이스의 일관성 유지를 위해서 트랜잭션 간의 상호 작용을 제어하는 기법이다.

5. 로킹(Locking) 기법

정답 : 로킹기법이란 하나의 트랜잭션이 데이터를 액세스하는 동안, 다른 트랜잭션이 그 데이터 항목을 액세스할 수 없도록 하는 제어하는 기법이다.

해설- 로킹은 대표적인 동시성제어기법 / 로킹은 고립성을 보장하기 위한 기법

6. 정규화(Normalization)

답안 : 관계형 데이터베이스의 설계에서 중복 최소화될 수 있도록 데이터를 구조화하여, 각 릴레이션에서 이상현상이 생기지 않도록 하는 데이터 모델링 기법이다.

401. 기업의 내부 환경과 외부 환경을 분석하여 강점, 약점, 기회, 위협 요인을 규정하고 이를 토대로 경영 전략을 수립하는 방법은 무엇인가? 

정답 : SWOT 분석(Strength, Weakness, Opportunity, Threat)

402. 전송 계층에 위치하면서 근거리 통신망이나 인트라넷, 인터넷에 연결된 컴퓨터에서 실행되는 프로그램 간에 일련의 옥텟을 안정적으로, 순서대로, 에러 없이 교환할 수 있게 해주는 프로토콜은 무엇인가? 

정답 : TCP(Transmission Control Protocol)

403. 가장 객관적으로 하드웨어 성능을 나타내는 지표로 사용되는 것으로, 특정 서버에 대해서 자체 기준으로 테스트를 수행하러 나온 결과 중 1분간 최대 처리건수를 나타낸 수치는 무엇인가? 

정답 : tpmC(transaction processing performance Council)

404. SQL 명령어 중, DELETE, DROP 과 TRUNCATE의 차이를 서술하시오 

정답

DELETE, DROP, TRUNCATE 모두 데이터를 삭제하는 기능을 갖는다는 점에서는 공통점을 갖고 있지만, DELETE는 데이터조작어(DML)이고, DROP과 TRUNCATE는 데이터정의어(DDL)이다. DML문은 트랜잭션 로그를 기록하지만 DDL문은 로그를 기록하지 않는다. 따라서 DELETE는 TRUNCATE에 비해 속도가 느리다. 마지막으로 DDL문인 DROP과 TRUNCATE는 테이블 내 데이터를 삭제한다는 공통점을 갖지만 DROP은 테이블 자체도 삭제하는 반면, TRUNCATE는 테이블 구조는 남기고, 테이블 내 데이터만 삭제한다는 차이점이 있다.

해설

‘TRUNCATE는 테이블 구조는 남기고, 테이블 내 데이터만 삭제한다’

>> 기능은 비슷한데 DELETE 는 WHERE절에 해당하는 행 한줄씩 제거할 수 있고, DML이어서 rollback키워드를 통해 데이터 복구가 가능
>> 반면, TRUNCATE는 테이블 전체를 DROP한 후 테이블 구조만 CREATE. auto_commit이 실행되어 데이터 복구가 불가능

405. 웹서비스에 대한 정보인 WSDL을 등록하고 검색하기 위한 저장소로 공개적으로 접근, 검색이 가능한 레지스트리를 일컫는 말로, 알려진 송-수신 시스템의 통합 구현에서는 서비스의 공개 및 검색 과정이 필요 없어 구축하지 않는 웹서비스 방식은 무엇인가? 

정답 : UDDI(Universal Description, Discovery and Integration)

406. 비연결성이고, 신뢰성이 없으며, 순서화되지 않은 데이터그램 서비스를 제공하는 전송 계층의 통신 프로토콜은 무엇인가? 

정답 : UDP(User Datagram Protocol)

407. 넓은 의미에서 사용자와 시스템 사이에서 의사소통할 수 있도록 고안된 물리적, 가상의 매개체이며, 좁은 의미로는 정보 기기나 소프트웨어의 화면 등에서 사람이 접하게 되는 화면을 뜻하는 용어는 무엇인가?  

정답 : UI(User Interface)

408. <보기>는 UI 설계 도구를 분류 없이 나열한 것이다. 도구별로 분류하시오. 

<보기>

ㄱ. UX 핀(UXPin) / ㄴ. 발사믹 목업(Balsamiq Mockups) / ㄷ. 인비전(Invision) / ㄹ. 픽사에이트(Pixate)

ㅁ. 파워 목업(Power Mockup) / ㅂ. 카카오 오븐(Oven) / ㅅ. 네이버 프로토나우(ProtoNOW) /ㅇ. 스케치(Sketch)

ㅈ.프레이머(Framer) / ㅊ. 액슈어(AXURE) /  ㅋ. 어도비 익스피리언스 디자인 CC

정답

화면설계 도구: ㄴ, ㅁ, ㅂ

프로토타이핑 도구: ㄱ, ㅅ, ㅊ

UI 디자인 도구: ㅇ, ㅋ

UI 디자인 산출물로 작업하는 프로토타이핑 도구: ㄷ, ㄹ, ㅈ

409. UI표준에 따라 사용자 인터페이스 설계, 개발 시 지켜야할 세부 사항을 규정하는 가이드라인을 (  )(이)라고 한다. 목표 정의, 프로젝트 계획, 요구사항 정의, 설계 및 구현, 테스트, 배포 및 관리 요소로 구성되어 있다.정답 : UI지침

410. CRUD 방식을 기반으로 데이터의 입력과 출력을 처리하는 화면 흐름을 포함하여 오퍼레이션 방식에 대한 표준 절차를 표시하고 개발하는 것으로, 표준 프레임워크로 개발하고, 유스케이스를 이용해서 패턴별 표준 개발 방법 총 7가지 영역을 정의한 UI 모델은 무엇인가? 

정답 : UI패턴모델(UI Pattern Model)

411. 객체지향 소프트웨어 개발과정에서 산출물을 명세화, 시각화, 문서화할 시 사용되는 모델링 기술과 방법론을 통합해 만든  표준화된 범용 모델링 언어를 무엇이라고 하는가?

정답 : UML(Unified Modeling Language)

412. 인터넷에 있는 자원을 나타내는 유일한 주소이며, 인터넷에서 요구되는 기본조건으로서 인터넷 프로토콜에 항상 붙어다니는 식별 기술은 무엇인가? 

정답 : URI(Uniform Resource Identifier, 통합 자원 식별자)

413. 제품과 시스템, 서비스 등을 사용자가 직/간접적으로 이용하면서 느끼고 생각하는 지각과 반응, 행동 등의 총체적 경험을 무엇이라고 하는가?

정답 : UX(User eXperience, 사용자 경험)

414. 논리적으로 분할된 스위치 네트워크나 가상 기능을 가진 LAN 스위치 또는 ATM 스위치를 사용해서 물리적인 배선에 구애받지 않고 브로드캐스트 패킷이 전달되는 범위를 임의로 나누는 네트워크 기술은 무엇인가?

정답 : VLAN(Virtual Local Area Network, 가상랜)

415. 간단한 엔티티를 의미하는 작은 객체 가변 클래스인 DTO와 달리 고정 클래스를 가지는 객체를 이르는 용어는? 

정답 : VO(Value Object)

416. 소프트웨어 생명주기 각 단계별로 개발자 관점에서의 공정 과정상 검증과 사용자 관점에서의 최종 산출물에 대한 확인을 지원하기 위한 테스트 모델은 무엇인가? 

정답 : V모델

417. 서버계층에서 애플리케이션이 동작할 수 있는 환경을 제공하고 안정적인 트랜잭션 처리와 관리, 다른 이(異)기종 시스템과의 애플리케이션 연동을 지원하여 사용자 요청 스레드를 처리하고, 데이터베이스에 접속하여 SQL 쿼리문에 대한 결과 값을 반환하는 역할을 수행하는 서버는 무엇인가?

정답 : WAS(웹 애플리케이션 서버; Web Application Server)

418. 루비(Ruby) 기반 웹 애플리케이션 테스트 프레임워크로, 모든 언어 기반의 웹 애플리케이션 테스트와 브라우저 호환성 테스팅이 가능한 특징을 갖는 검증 도구는 무엇인가? 

정답 : watir

419. while문을 사용하여 다음 식을 완성하시오. (자바, 파이썬, C언어 중 택1 하여 표기)

배열에 있는 100개의 숫자를 모두 더하는 식을 작성하시오

(배열의 이름은 a, 합한 값은 sum, 배열의 값을 가리키는 인덱스는 i라는 변수를 사용하고, 정수 sum과 정수 i에 초기값을 0으로 가정)

정답

#c, 자바

while ( i < 100 ) {

  sum = sum + a [ i ];

  i++

}

#파이썬

while i < 100:

  sum = sum + a[ i ]

  i = i + 1

420. 웹 서비스명, 제공 위치, 메시지 포맷, 프로토콜 정보 등 웹 서비스 정보에 대한 상세 정보를 기술한 파일로 XML 형식으로 구현하며, 인터페이스와 구현을 분리하여 재사용성을 높인  웹 서비스 방식은 무엇인가?

정답 : WSDL(Web Services Description Language)

381. 웹과 같은 분산 하이퍼 미디어 환경에서 자원의 존재/상태 정보를 표준화된 HTTP 메소드로 주고받는 웹 아키텍처를 뜻하는 용어는 무엇인가? 

정답 : REST(Representational State Transfer, 웹 표현상태 변경)

382. 관리자가 사용자 수제비에게 학생 테이블에 대해 UPDATE할 수 있는 권한을 회수하고 수제비가 다른 사용자에게 부여한 권한 역시 회수하고자 한다. 다음 구문에 적절한 키워드를 쓰시오. (오라클 기준)

( ) UPDATE ON 학생 FROM 수제비 ( );

정답 :  REVOKE ② CASCADE CONSTRAINTS

해설

[ DROP TABLE ]
Oracle: CASCADE CONSTRAINTS
MySQL, PostgreSQL: CASCADE
SQL Server: 해당 옵션 없음, 순차적으로 삭제해야함

383. 자율 시스템(AS) 내에서 사용하는 거리벡터 알고리즘에 기초하여 개발된 통신규약으로, 최대 홉 수(Hop count)를 15개로 제한한 라우팅 프로토콜은 무엇인가?

정답 : RIP(Routing Information Protocol)

384. 소프트웨어 및 관련 데이터는 중앙에 호스팅되고 사용자는 웹 브라우저 등의 클라이언트를 통해 접속하여 소프트웨어를 서비스 형태로 이용하며, 주문형 소프트웨어라고도 하는 클라우트 컴퓨팅 기술 유형을 무엇이라고 하는가?

정답 : SaaS(소프트웨어형 서비스, Software as a Service)

385. 커널 암호화 방식으로 데이터베이스 파일을 직접 암호화하고, 접근 제어와 감사 기록 기능이 추가된 데이터베이스 보안 강화 기술은 무엇인가? 

정답 : Secure DB

386. 전자상거래, 금융, 무선통신 등에서 전송되는 개인정보와 같은 중요한 정보를 보호하기 위해, 1999년 2월 한국인터넷 진흥원과 국내 암호전문가들이 순수 국내 기술로 개발한 대칭키 128비트 블록의 암호 알고리즘은 무엇인가? 정답 : SEED

387. 다양한 브라우저 지원 및 개발언어를 지원하는 웹 애플리케이션 테스트 프레임워크로, 테스트 스크립트 언어를 학습할 필요 없이 기능 테스트를 만들기 위한 도구를 제공하는 검증 도구는 무엇인가? 

정답 : Selenium

388. 소프트웨어 보안의 모범사례를 소프트웨어 개발 라이프사이클에 통합한 것으로 코드 검토(code review), 아키텍처 위험 분석(architectural risk analysis), 침투 테스트(penetration testing), 위험 기반 보안 테스트(risk–based security test), 악용사례(abuse cases), 보안 요구(security requirement), 보안 운영(security operation)의 7가지 보안 강화 활동을 정의한 소프트웨어 개발 보안 방법론은 무엇인가? 

정답 : Seven Touchpoints

389. 사용자의 요청을 처리하는 기능을 제공하기 위한 로직을 구현하고 DAO 클래스를 통해서 DB연동을 처리하는 기능을 수행하는 클래스는 무엇인가? 

정답 : 서비스(Service)

390. 소프트웨어 개발 보안테스트 유형 중, SW를 실행하지 않고 소스코드 수준으로 보안 약점을 분석하는 방법으로서 SW 개발 단계에서 주로 사용하는 방법은 ( )이고, SW 실행 환경에서 소스코드를 보지 않고 보안 약점을 분석 방법으로서 SW 시험 단계에서 주로 사용하는 방법은 ( ) 이다.

정답 :  정적분석-화이트박스기법 동적분석-블랙박스기법

** 논란이 많은 문제로 명확하게 수정하였습니다.

A. 소스코드 확인 여부로 화이트박스/블랙박스로 구분하고

B. 실행 여부로 정적 분석/ 동적 분석으로 구분합니다.

** 1의 경우 실행하지 않고 소스코드수준을 분석하므로 ‘정적분석-화이트박스기법’을 사용

** 2의 경우 실행환경에서 분석하는데 코드를 보지 않으므로 ‘동적분석-블랙박스기법’을 사용

답을 외우기보다는 핵심개념을 잡으시면 될 것 같습니다.

391. 소프트웨어 개발 보안 생명주기를 순서대로 서술하시오.

정답 : 요구사항 명세 설계 구현 테스트 유지보수

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

정답 : SQL삽입 공격(SQL Injection)

393. HTTP, HTTPS, SMTP 등을 사용하여 메시지를 네트워크 상태에서 교환하는 프로토콜로 HTTP프로토콜 상에 Envelope, Header, Body 등이 추가된 XML문서를 이용하며 기본적인 송수신은 HTTP로 수행되는 웹 서비스 방식은 무엇인가? 

정답 : SOAP(Simple Object Access Protocol)

394. 다음 제시문에 알맞게 SQL문을 작성하시오.

#1) [student] 테이블에 학번 20201231, 성명 수제비, 학년 1학년인 학생을 삽입하시오

INSERTINTO ( )(학번, 성명, 학년) ( )(20201231, 수제비, 1학년);

#2) [student] 테이블에서 학번이 20201231인 학생의 학년을 2학년으로, 수강과목을 국어로 수정하시오.

UPDATE student ( ) ( ) WHERE ( );

#3) [student] 테이블에서 수제비를 삭제하시오.

( ) student WHERE 성명=수제비;

#4) [student] 테이블에서 성명이 수제비인 학생의 모든 정보를 가져오시오.

SELECT ( ) FROM student ( ) 성명 = 수제비;

정답

1) ① student  VALUES

2) ③ SET 학년 = ‘2학년’, 수강과목 = ‘국어’ 학번 = ‘20201231’ 

3) ⑥ DELETE FROM

4) ⑦ * WHERE

395. IP계층(OSI 7계층 중 3계층)에서 무결성과 인증을 보장하는 인증헤더(AH)와 기밀성을 보장하는 암호화(ESP)를 이용한 IP 보안 프로토콜로, 현재 전세계에서 사용되는 인터넷 상거래시 요구되는 개인 정보와 크레디트 카드 정보의 보안 유지에 가장 많이 사용되고 있는 프로토콜은 무엇인가?

정답 : IPSec(Internet Protocol Security)

396. 응용계층과 TCP/IP 계층 사이에서 웹 데이터 암호화 및 전송 시 기밀성을 보장하는 공개키 기반의 보안 프로토콜은 무엇인가? 

정답 : SSL/TLS(Secure Socket Layer / Transport Layer Security) OR SSL

해설

– SSL의 발전된 프로토콜 : TLS

397. 모든 인증을 하나의 시스템에서라는 목적하에 개발되었으며 한 번의 로그인을 통해 여러 다른 사이트들을 자동적으로 접속하여 이용하는 방법을 무엇이라고 하는가?

정답 : SSO(Single Sign On)

398. 서비스 호출, 컴포넌트 재사용 등 다양한 환경을 지원하는 테스트 프레임워크로 각 테스트 대상 분산 환경에 데몬(daemon)을 사용하여 테스트 대상 프로그램을 통해 테스트를 수행하고, 통합하여 자동화하는 검증 도구는 무엇인가?

정답 : STAF(Software Testing Automation Framework)

399. 자바 데이터베이스 응용 프로그램에서 쿼리 실행시 쿼리 분석 컴파일 실행 과정을 매번 진행하는 구문을 무엇인가? 

정답 : statement

400. 다소 제한이 있던 CVS를 대체하기 위해 콜랩넷에서 개발한 버전관리 도구로, 클라이언트/서버 방식으로 하나의 저장소를 만들어 그곳에 소스를 저장해  소스 중복이나 여러 문제를 해결하기 위한 도구는 무엇인가?

정답 : SVN(Subversion)

361. OSI 4계층, 전송계층에서 네트워크 단위들을 연결하는 통신 장비로, FTP, HTTP 등을 구분하여 스위칭하는 로드 밸런싱 기능을 수행하며, 4계층 정보인 TCP/UDP 포트번호를 분석하여 포워딩을 결정하고 QoS와 GLB / SLB 기능을 제공하는 스위치는 무엇인가?

정답 : L4스위치

362. 사용자 정보를 유지하기 위한 질의 및 디렉터리 서비스의 등록, 수정, 삭제 및 검색을 위한 목적으로 미국 미시간 대학에서 개발한 인터넷 프로토콜은 무엇인가?

정답 : LDAP(Lightweight Directory Access Protocol)

363. 특정 조건이 만족될 때까지 반복해서 문장을 실행하는 문장을 LOOP문이라고 한다. 탈출 조건을 입력하는 키워드는 무엇인가?

정답 : EXIT WHEN

364. CPU가 메모리에 접근하는 것을 관리하는 컴퓨터 하드웨어 부품으로 가상 메모리 주소를 실제 메모리 주소로 변환하는 장치는 무엇인가? 

정답 : MMU(Memory Management Unit)

365. 디지털 멀티미디어 콘텐츠의 생성, 거래, 전달, 관리, 소비하는 과정에 있어서 광범위한 네트워크 및 터미널을 통하는 여러 계층의 멀티미디어 자원을 투명하고, 상호 호환할 수 있도록 사용하기 위한 멀티미디어 프레임워크 표준 규격을 뜻하는 개념은? 

정답 : MPEG-21(Moving Picture Experts Group 21, 엠페그 21)

366. 마이크로소프트에서는 안전한 소프트웨어 개발을 위해 자체 수립한 방법론을 적용하여 적용 이후 이전 버전보다 50% 이상의 취약점 감소를 확인했다. 이 방법론은 무엇인가? 

정답 : MS-SDL(Microsoft Secure Development Lifecycle)

367. 임계 영역(프로그램상에서 동시에 실행될 경우 문제를 일으킬 수 있는 부분)을 가진 스레드들의 실행 시간이 서로 겹치지 않게 각각 단독으로 실행되게 하는 기술로, 시간 및 상태 보안 약점 중 하나인 경쟁 조건에 대한 대응 방안으로 고려되는 기술은 무엇인가? 

정답 : mutex

368. DBMS에 질의하기 위한 SQL 쿼리를 별도의 XML파일로 분리하고 Mapping을 통해서 SQL을 실행하며, 복잡한 JDBC 코드를 단순화 할 수 있고, SQL을 거의 그대로 사용하며, Spring 기반 프레임워크와의 통합 기능을 제공하는 SQL Mapping 기반 오픈소스 Access Framework는 무엇인가?

정답 : MyBatis

369. 데이터의 구조를 네트워크상의 망(net)상 형태로 논리적으로 표현한 데이터 모델로, 트리 구조나 계층형 데이터베이스보다는 유연하지만 설계가 복잡한 단점을 갖는 DBMS는 무엇인가? 

정답 : NDBMS(Network DataBase Management System)

370. 외부 네트워크와 접속하여 가장 빠른 속도로 데이터를 주고받을 수 있게 컴퓨터 내에 설치되는 장치로 Data Link 계층에서 사용되는 네트워크 장비는 무엇인가? 

정답 : NIC(Network Interface Card)

371. 초당 처리되는 연산능력을 가리키는 말로 컴퓨터의 성능을 수치로 나타낼 때 사용하는 단위는?

정답 : OPS(Operations Per Second)

372. <보기>는 OSI 7계층을 순서 없이 나열한 것이다. 낮은 계층부터 높은 계층 순으로 순서대로 나열하시오. 

<보기>

Data Link / Presentation / Session / Transport /  Network / Application / Physical

정답 : 1 7: 

Physical Data Link Network Transport Session  Presentation Application

373. 링크 상태 알고리즘을 채용하여 규모가 크고 복잡한 TCP/IP 네트워크에서 RIP의 단점을 개선한 프로토콜로, 발생한 변경정보에 대해 RIP보다 빠르게 업데이트 하며, 자세한 제어가 가능하고, 관리 정보의 트래픽을 줄일 수 있어 토폴로지에 대한 정보가 전체 라우터에 동일하게 유지되는 라우팅 프로토콜은 무엇인가? 

정답 : OSPF(Open Shortest Path First, 최단 경로 우선 프로토콜)

374. 인프라를 생성, 관리하는 복잡함 없이 애플리케이션을 개발, 실행, 관리할 수 있게 하는 플랫폼을 제공하는 서비스로,  개발을 위한 플랫폼을 구축할 필요 없이, 필요한 개발 요소를 웹에서 빌려 쓸 수 있게 하는 클라우드 컴퓨팅 유형은 무엇인가? 

정답 : PaaS(플랫폼형 서비스, Platform as a Service)

375. 표준 SQL을 기본으로 Oracle에서 개발한 데이터 조작언어로, Oracle 기반의 모든 프로시저 작성에 사용되며 표준 SQL의 확장 기능이 우수한 언어 무엇인가? 

정답 : PL/SQL(Procedural Language for SQL)

376. 자바 데이터베이스 응용 프로그램 실행 시, 쿼리 분석 컴파일 실행 과정을 최초 한 번만 수행 후 캐시에 담아 재사용하는 구문은 무엇인가?

정답 : preparedStatement

377. 온라인 업무 처리 형태의 하나로 터미널에서 받은 메시지를 따라 호스트가 처리를 하고 그 결과를 다시 터미널에 되돌려 주는 방법을 무엇이라고 하는가?

정답 : OLTP(OnLine Transaction Processing, 온라인 거래 처리)

378. 한계점의 측정을 목적으로 낮은 수준의 부하부터 높은 수준의 부하까지 예상 트래픽을 꾸준히 증가시키며 진행하는 부하 테스트는 무엇인가? 

정답 : Ramp-up load

379. 다수의 인원이 동시에 소스 파일에 접근하여 수정이 가능한 CVS와는 달리 소스 파일의 수정을 한 사람만으로 제한하여 다수의 사람이 파일의 수정을 동시에 할 수 없도록 파일 잠금 방식으로 버전을 관리하는 도구는 무엇인가?

정답 : RCS(Revision Control System)

380. 관계형 모델을 기반으로 하는 가장 보편화된 DBMS로, 데이터를 저장하는 테이블의 일부를 다른 테이블과 상하 관계로 표시하며 상관 관계를 정리하는 특성을 갖고 있으며, 변화하는 업무나 데이터 구조에 대한 유연성이 좋아 유지 관리가 용이한 DBMS는 무엇인가?

정답 : RDBMS(Relational DataBase Management System)

341. 관리자가 사용자 수제비에게 학생 테이블에 대해 INSERT, UPDATE를 할 수 있는 권한과 그 권한을 필요시 다른 사람에게 부여할 수 있는 권한을 부여하고자 한다. (  ) 안에 적절한 키워드를 쓰시오  

( ) INSERT, UPDATE ON 학생 TO 수제비 ( );

정답 :  GRANT WITH GRANT OPTION

342. SQL문에서 테이블의 행을 그룹으로 묶을 때 그룹을 묶는 기준을 설정하는 절로, 기준 컬럼의 값이 동일한 행끼리 하나의 그룹으로 묶어 사용하는 절을 ( )(이)라고 한다.  ( )(으)로 만들어진 그룹에는 ( )(을)를 통해 제한을 걸 수 있는데, 이때는 그룹 함수만 사용이 가능한 특징이 있다.

정답 :  GROUP BY ② HAVING 

343.  UI 유형 중 그래픽 환경을 기반으로 한 마우스나 전자펜을 이용하는 사용자 인터페이스를 ( )(이)라고 하며, 명령어를 텍스트로 입력하여 조작하는 사용자 인터페이스를 ( )(이)라고 한다. 

정답① GUI(Graphical User Interface, 그래픽 반응 기반 인터페이스) CLI(Command Line Interface, 정적 텍스트 기반 인터페이스)

345. DBMS 중 하나로, 데이터에 대한 접근 속도가 빠르지만, 종속적인 데이터 계층 구조로 인하여 변화하는 데이터 구조에 유연하게 대응하기 힘든 DBMS는 무엇인가?

정답 : HDBMS(Hierarchical DataBase Management)

346. 서버, 스토리지 같은 시스템 자원을 클라우드로 제공하는 서비스로, 컴퓨팅 자원에 운영체제나 애플리케이션 등의 소프트웨어를 탑재하여 실행하며 하위의 클라우드 인프라를 제어하거나 관리하지 않지만 스토리지, 애플리케이션에 대해서는 제어권을 가지는 클라우드 컴퓨팅 기술 유형은 무엇인가?

정답 : IaaS(인프라형 서비스, Infrastructure as a Service)

347. 다음은 점수에 따라서 수우미양가를 알려주는 예제이다. 괄호 안에 알맞은 키워드를 넣어 완성하시오.

(자바, score 변수에는 점수가 입력되어 있다고 가정)

if (score >=90) {

             System.out.print(“수”);

}

( ① ) (score >= 80) {

             System.out.print(“우”);

}

( ) (score >= 70) {

             System.out.print(“미”);

}

( ③ ) (score >= 60) {

             System.out.print(“양”);

}

( ) {

             System.out.print(“가”);

}  

정답 :  else if ② else if ③ else if else

348. RIP의 문제점 개선을 위해 시스코에서 개발한 통신규약으로 RIP보다 대규모로 복잡한 통신망에서의 운용을 상정한 규격으로 되어 있으며, 거리 벡터 라우팅 알고리즘을 채용하여 목적 통신망까지의 경로는 지연, 회선의 대역폭, 신뢰성 및 부하를 고려해서 결정하는 라우팅 프로토콜은 무엇인가? 

정답 : IGRP(Interior Gateway Routing Protocol, 내부 경로 제어 통신 규약)

349. 인터넷 표준 암호 키 교환 프로토콜로, 상세한 사항이 RFC 2409에 규정되어 있으며 IPSec을 암호화하는데 사용되는 프로토콜은 무엇인가? 

정답 : IKE(Internet Key Exchange)

350. 네트워크에 대한 공격이나 침입을 실시간적으로 차단하고, 유해 트래픽에 대한 조치를 능동적으로 처리하는 시스템은 무엇인가?

정답 : IPS(Intrusion Prevention System, 침입 차단 시스템)

351. IP계층(3계층)에서 무결성과 인증을 보장하는 인증헤더(AH)와 기밀성을 보장하는 암호화(ESP)를 이용한 IP 보안 프로토콜은 무엇인가? 

정답 : IPSec(IP Security Protocol))

352. 인터넷에서 사용되는 패킷 교환 네트워크상에서 데이터를 교환하기 위한 32bit 주소체계를 갖는 네트워크 계층의 프로토콜은 무엇인가? 

정답 : IPv4(Internet Protocol version 4)

353. 디지털 통신망을 이용하여 음성, 문자, 영상 등의 통신을 종합적으로 할 수 있도록 하는 통신 서비스는 무엇인가?

정답 : ISDN(Integrated Service Digital Network)

354. 자바 가상머신(JVM)과 컴파일러, 디버거, 그리고 자바 애플릿 및 응용프로그램 개발을 위한 도구들이 포함된 핵심 플랫폼을 무엇이라고 하는가? 

정답 : JDK(Java Development Kit)

355. JSP 페이지 내에서 자바 코드를 바로 사용하지 않고 로직을 내장하는 효율적인 방법을 제공하고, 표준화된 태그 셋을 사용하여 코드의 유지보수를 용이하게 하는 라이브러리는 무엇인가? 

정답 : JSTL(Java server pages Standard Tag Library)

356. 시스템 메모리를 관리하면서 자바 바이트 코드와 컴퓨터의 운영 시스템 간에 번역기 역할을 수행하여 자바 기반 애플리케이션을 위해 이식 가능한 실행 환경을 제공하여, 어떤 운영체제에서든 자바를 이용하여 작업할 수 있게 도와주는 소프트웨어는 무엇인가?

정답 : JVM(Java Virtual Machine, 자바 가상 머신)

357. 인터넷 프로토콜 스택 중 네트워크 계층의 프로토콜로서 이전 버전에서 가지고 있던 주소고갈, 보안성, 이동성 지원 등의 문제점을 해결 하기 위해서 개발된 128bit 주소체계를 갖는 차세대 인터넷 프로토콜은 무엇인가?

정답 : IPv6(Internet Protocol version 6)

358. 자바(Java)에서 데이터베이스를 사용할 수 있도록 연결해주는 응용 프로그램 인터페이스를 ( )(이)라고 하고, 데이터베이스를 액세스하기 위한 표준 개방형 응용 프로그램 인터페이스를 ( )(이)라고 한다.

정답 :  JDBC(Java DataBase Connectivity ② ODBC(Open DataBase Connectivity)

359. OSI 2 계층 장비로, 느린 전송 속도의 브리지, 허브의 단점을 개선하기 위해서, 출발지에서 들어온 프레임(Frame)을 목적지 MAC 주소 기반으로 빠르게 전송시키는 데이터 링크 계층의 통신 장치로, Store and Forwarding, Cut Through, Fragment Free 의 3 가지 방식 중 하나를 사용하는 네트워크 장비는 무엇인가?

정답 : L2스위치

360. OSI 네트워크계층에서 네트워크 단위들을 연결하는 통신 장비로, IP 레이에서의 스위칭을 수행하여 외부로 전송하며 라우터와의 경계가 모호한 네트워크 장비는 무엇인가? 

정답 : L3스위치

321. 게임 클라이언트나 콘텐츠를 효율적으로 전달하기 위해 여러 노드를 가진 네트워크에 데이터를 저장하여 사용자에게 제공하는 시스템은 무엇인가? 

정답 : CDN(Contents Delivery Network)

322. 개념 관점, 역할기반 관점, 활동평가 관점, 활동구현 관점, 취약성 관점등의 활동중심, 역할 기반의 프로세스로 구성된 집합체로서 이미 운영중인 시스템에 적용하기 적당한 소프트웨어 개발 보안 방법론은 무엇인가?

정답 : CLASP(Comprehensive, Lightweight Application Security Process)

323. 복수 서버, 복수 클라이언트 구조로 서버가 부족할 때 필요한 서버를 하나씩 추가하여 확장성을 기할 수 있는 소프트웨어 버전 관리 도구는 무엇인가? 

정답 : Clear Case

324. 다양한 미디어 포맷에 따라 각종 콘텐츠를 작성, 수집, 관리, 배급하는 콘텐츠 생산에서 활용, 폐기까지 전 공급 과정을 관리하는 기술을 무엇이라고 하는가?

정답 : CMS(콘텐츠 관리 시스템, Contents Management System)

325. 배치 스케줄러 실행을 위해 작업이 실행되는 시간 및 주기 등을 설정할 때 사용하는 표현식을 ( )(이)라고 한다. ( ) 는/은 왼쪽부터 순서대로 7개의 필드를 갖는데 각각의 의미는 ( )/분/시간/( )/월/( )/연도이다.

정답 :  크론 표현식(Cron) 초(seconds)  일(day) 요일(week)

326. 대부분의 소프트웨어가 가지는 기본 데이터처리 기능인 Create(생성), Read(읽기), Update(갱신), Delete(삭제)를 묶어서 이르는 용어는 무엇인가? 

정답 : CRUD(방식)

327. 문서 전체의 일관성을 유지할 수 있고, 각 코드마다 스타일을 지정해야 했던 부담을 덜기 위해 웹 문서의 전반적인 스타일을 미리 저장해 둔 스타일시트는 무엇인가? 

정답 : CSS(Cascading Style Sheets)

328. 클라이언트-서버 구조로 구성되며 지역적으로 떨어진 상황에서도 다수의 인원이 동시에 범용적인 운영체제로 접근하여  작업이 가능한 도구로 GNU 일반 공중 사용 허가서 하에 배포되는 소프트웨어 버전관리 도구는 무엇인가?

정답 : CVS(Concurrent Versions System)

329. 특정 타입의 데이터베이스에 추상 인터페이스를 제공하는 개체로 세부내용 노출 없이 데이터를 조작하는 객체를 이르는 용어는? 

정답 : DAO(Data Access Object, 데이터 접근 객체)

330. 네트워크에서 도메인이나 호스트 이름을 숫자로 된 IP주소로 해석해주는 TCP/IP 네트워크 서비스를 무엇이라고 하는가? 

정답 : DNS(Domain Name System)

331. 디지털 저작물에 특정한 번호를 부여하는 일종의 바코드 시스템으로 디지털 저작물의 저작권 보호 및 정확한 위치 추적을 제공하는 식별기술은 무엇인가? 

정답 : DOI(Digital Object Identifier)

332. 콘텐츠의 불법복제 방지를 위한 디지털 저작권 관리 기술을 ( )(이)라고 한다. ( )의 구성요소로는 콘텐츠를 제공하는 콘텐츠 제공자(contents provider)와 쇼핑몰 등을 통해 암호화된 콘텐츠를 제공하는 콘텐츠 분배자(contents distributor), 콘텐츠를 메타 데이터와 함께 배포 가능한 단위로 묶는 기능을 뜻하는 ( )와 원본을 안전하게 유통하기 위한 전자적 보안장치인 보안 컨테니어(security container), 배포된 콘텐츠의 이용 권한을 통제하는 ( ), 그리고 키 관리 및 라이선스 발급을 관리하는 ( )로 이루어져 있다.

정답 : DTO(Data Transfer Object, 데이터 전송 객체)

333. 프로세스 사이에서 데이터를 전송하는 객체로 데이터 저장ㆍ회수  외에 다른 기능이 없는 객체를 뜻하는 말은 무엇인가?

정답 : DTO(Data Transfer Object, 데이터 전송 객체)

334. 기업 내에서 운영되는 서로 다른 플랫폼 및 애플리케이션들 간의 정보 전달, 연계, 통합하여 필요한 정보를 중앙 집중적으로 통합 ,관리, 사용할 수 있는 환경을 구현하는 것으로 e-비즈니스를 위한 기본 인프라를 무엇이라고 하는가?

정답 : EAI(Enterprise Application Integration)

335. 기업에서 운영되는 서로 다른 플랫폼 및 애플리케이션들 간을 하나의 시스템으로 관리 운영할 수 있도록 서비스 중심의 통합을 지향하는 아키텍처 또는 기술로 버스를 중심으로 각각 프로토콜이 호환이 가능하도록 애플리케이션 간의 통합을 느슨한 결합(Loosely Coupled) 방식으로 지원하는 방식을 무엇이라고 하는가?

정답 : ESB(Enterprise Service Bus)

336. 암호화 알고리즘을 활용한 캡슐화 기반 페이로드 기밀성을 제공하는 프로토콜로 DARPA가 후원하는 연구 프로젝트의 일환으로 1992년부터 해군 연구소에서 개발되었으며 1993년 12월 IETF SIPP 실무 그룹에 의해 공개적으로 공개된 프로토콜은 무엇인가? 정답 : ESP(Encapsulation Security Payload)

337. 웹 기반 테스트 케이스 설계/실행/결과 확인 등을 지원하는 테스트 프레임워크로, 사용자가 테스트 케이스 테이블을 작성하면 빠르고 편하게 자동으로 원하는 값에 대해 테스트 할 수 있는 장점이 있는 검증 도구는 무엇인가?정답 : Fitnesse

338. for문을 사용하여 다음 식을 완성하시오. (자바, 파이썬, C언어 중 택1 하여 표기)

배열에 있는 100개의 숫자를 모두 더하는 식을 작성하시오(배열의 이름은 a, 합한 값은 sum, 배열의 값을 가리키는 인덱스는 i라는 변수를 사용하고, sum 의 초깃값은 0이라고 가정)

정답

/*C, JAVA*/

for ( int i=0; i<100; i++ ) {

             sum = sum + a[i];

}

# 파이썬 1

for i in range(0, 100):

             sum = sum + a[i]

# 파이썬 2

for i in range(100):

             sum = sum + a[i]

339. TCP/IP 프로토콜을 가지고 서버와 클라이언트 사이의 대용량 파일을 네트워크를 통해 주고 받을 때 사용하는 프로토콜은 무엇인가?

정답 : FTP(File Transfer Protocol)

340. 컴퓨터 파일의 변경사항을 추적하고 여러 명의 사용자들 간에 해당 파일들의 작업을 조율하기 위한 분산 버전 관리 시스템으로 로컬 저장소에서는 commit을 통해, 원격 저장소에서는 push를 통해 작업이 반영되는 형상 관리 도구는 무엇인가?

정답 : Git

301.  윈도우 함수중 FIRST_VALUE, LAST_VALUE, LAG, LEAD 함수는 무엇인가? 

정답 : 행순서 함수

302. 파티션별 윈도우에서 가장 먼저 나오는 값을 찾는 함수로, 집계 함수의 MIN과 동일한 결과를 출력하는 행순서 함수는 ( )이다. 그리고 파티션별 윈도우에서 이전 로우의 값을 반환하는 함수는 ( )이다.

정답 :  FIRST_VALUE LAG

303. OSI 1 계층 장비로, 여러 대의 컴퓨터를 연결하여 네트워크로 보내거나 하나의 네트워크로 수신된 정보를 여러 대의 컴퓨터로 송신하기 위한 장비는 무엇인가? 

정답 : 허브(Hub)

304. EAI 구축 유형 중, 단일한 접점의 허브 시스템을 통하여 데이터를 전송하는 중앙 집중식 방식을 취함으로써 허브 장애 시 전체 장애가 발생할 우려가 있는 유형은 무엇인가?

정답 : 허브 앤 스포크(Hub &Spoke)

305. 현행 시스템 파악 절차에 대해 순서대로 서술하시오

<하드웨어 및 네트워크 구성 파악 // 구성, 기능, 인터페이스 파악 // 아키텍처 및 소프트웨어 구성 파악>

정답 : 구성, 기능, 인터페이스 파악 >아키텍처 및 소프트웨어 구성 파악 >하드웨어 및 네트워크 구성 파악

306. 소프트웨어 개발을 위한 전체 과정에서 발생하는 모든 항목의 변경 사항을 관리하기 위한 활동을 ( )(이)라고 한다. ( )은/는 식별 통제( ) 기록의 절차로 이루어진다.

정답 :  형상관리 감사

307. 사용자 화면이 있는 경우, 각각의 화면 단위로 단위 모듈을 개발 후에 화면에 직접 데이터를 입력하여 수행하는 테스트로서 사용자 시나리오에 기반한 테스트를 할 수 있는 공통 모듈 테스트는?

정답 : 화면 기반 테스트

308. 화이트박스 테스트의 유형 중 하나로 소프트웨어의 논리적 복잡도 측정 후 수행경로의 집합을 정의하는 테스트를   ( ) (이)라고 하고, 프로그램의 루프 구조에 국한해서 실시하는 테스트를 ( )(이)라고 한다. 정답 :  제어구조 테스트 루프 테스트

309. 소프트웨어 결과를 테스트하는 것으로 만들어진 제품이 제대로 동작하는지 확인하고 최종 사용자 요구 또는 소프트웨어 요구가 적합한지를 판단하고 사용자 시각으로 올바른 소프트웨어가 개발되었는지 입증하는 과정을 이르는 용어는? 정답 : 확인(Validation)

310. 테스트 목적에 따른 분류 중 하나로 오류를 제거하거나 수정한 시스템에서 오류 제거와 수정에 의해 새로이 유입된 오류가 없는지 확인하는 일종의 반복적 테스트 기법은 무엇인가?

정답 : 회귀 테스트(Regression Test)

311. 테스트 목적에 따른 분류 중 하나로, 시스템에 고의로 실패를 유도하여 시스템의 정상적 복귀 여부를 테스트하는 기법은 무엇인가?

정답 : 회복 테스트(Recovery)

312. UI 개발을 위한 주요 기법 중, 고객, 경쟁하고 있는 자사, 경쟁사를 비교 분석하여 자사를 어떻게 차별화해서 경쟁에서 이길 것인가를 분석하는 기법을 무엇이라고 하는가?

정답 : 3C분석(Customer, Company, Competitor)

313. 웹에서 서버를 찾지 못할 때 발생하는 오류 메시지는 ( )이고, 서버가 요청을 거부할 경우 발생하는 오류 메시지는 ( )이며, 내부 서버 에러 또는 설정이나 퍼미션 문제로 발생하는 에러메시지는 ( )이며, 게이트웨이가 연결된 서버로부터 잘못된 응답을 받는 경우의 오류 메시지는 ( )이다.

정답 :  404(Not Found) 403(Forbidden) 500(Internal Server Error) 502(Bad Gateway)

314. 메시지 Checksum을 활용한 데이터 인증과 비연결형 무결성을 보장해주는 프로토콜은 무엇인가? 

정답 : AH(Authentication Header)

315. 자바스크립트를 사용하는 비동기 통신기술로, 클라이언트와 서버 간에 XML 데이터를 주고 받는 기술은 무엇인가? 

정답 : AJAX(Asynchronous Javascript and XML)

316. 프로그래머를 위한 운영체제나 프로그램의 인터페이스 사양으로서 응용 프로그램이나 운영체제나 데이터베이스 관리 시스템과 같은 시스템 프로그램과 통신할 때 사용되는 언어나 메시지 형식을 가지며, 프로그램 내에서 실행을 위해 특정 서브루틴에 연결을 제공하는 함수를 호출하는 것으로 구현되는 인터페이스 또는 프로그램을 작성하기 위한 일련의 서브프로그램, 프로토콜 등을 정의하여 상호 작 용을 하기 위한 인터페이스 사양을 뜻하는 개념은 무엇인가?

정답 : API(Application Programming Interface)

317. 안정적인 시스템 운영을 위해 부하량, 접속자 파악 및 장애진단 등을 목적으로 하는 성능 모니터링 도구를 무엇이라고 하는가? 

정답 : APM(Application Performance Monitoring)

318. 광대역 서비스의 다양한 특성을 수용하기 위한 광대역 종합정보통신망(B-ISDN)의 실현을 목적으로 제안되었으며 회선교환 방식과 패킷교환 방식의 장점을 통합시킨 연결지향적 속성을 지닌 패킷교환 프로토콜은 무엇인가?

정답 : ATM(Asychronous Transfer Mode, 비동기 전송 모드)

319. 인터넷의 자동 시스템(AS; Autonomous System) 중 라우팅 및 도달 가능성 정보를 교환하도록 설계된, 표준화된 외부 게이트웨이 프로토콜의 하나로, 대형 사업자(ISP) 간의 상호 라우팅에 사용되며, 경로 벡터 라우팅 프로토콜(path-vector routing protocol)로 분류되는 프로토콜은 무엇인가? 

정답 : BGP(Border Gateway Protocol, 경계 경로 프로토콜)

320. 최초로 분산저장식 방식을 사용한 도구로서, 개발 시에는 상용 소프트웨어로 제공되다가 2016년 오픈 소스로 전환된 도구로 2020년 현재 더이상 개발되고 있지 않은 소프트웨어 버전 관리도구는 무엇인가?

정답 : 비트키퍼(Bitkeeper)

281. 파일에 이름을 부여하고 저장이나 검색을 위하여 논리적으로 그것들을 어디에 위치시켜야 하는지 등을 정의한 뒤 관리하는 데이터베이스 전 단계의 데이터 관리 방식을 ( )(이)라고 한다. ISAM 방법과 VSAM 방법이 사용되는데, 대형 운영 체제에서 사용되는 파일 관리 시스템은 ( ) 이고, 자료 내용은 주 저장부, 자료의 색인은 자료가 기록된 위치와 함께 색인부에 기록되는 파일 관리 시스템은 ( ) 이다.

정답 :  파일 시스템(file system) VSAM(Virtual Storage Access Method) ISAM(Indexed Sequential Access Method)

282. 라이브러리에서 전역변수, 함수 등을 모아둔 파일을 모듈(module)이라고 하고, 모듈을 디렉터리 형식으로 구조화한 라이브러리를 (      )(이)라고 한다.

정답 : 패키지(package)

283. 컴퓨터 네트워크와 통신의 방식 중 하나로 작은 블록의 패킷으로 데이터를 전송하며 데이터를 전송하는 동안만 네트워크 자원을 사용하도록 하는 방식으로  통신 방식으로 X.25, 프레임 릴레이 ATM과 같은 다양한 기술을 사용하는 네트워크 전달 방식은 무엇인가?

정답 : 패킷 스위칭

284. 사용자 요구사항 도출을 위하여 잠재적 사용자의 다양한 목적과 관찰된 행동 패턴을 응집시켜 놓은 가상의 사용자를 무엇이라고 하는가?

정답 : 페르소나(Persona)

285. 블랙박스 테스트 유형 중, 커버해야 할 기능적 범위를 모든 조합에 비해 상대적으로 적은 양의 테스트 세트를 구성하기 위한 테스트 방법으로 Test data 값들 간에 최소한 한 번씩을 조합하는 방식은 무엇인가?

정답 : 페어와이즈 테스트(Pairwising Test)

286. EAI 구축 유형 중 1:1 단순 통합을 통해 구현하는 가장 기초적인 애플리케이션 통합 방법은 무엇인가?

정답 : 포인트 투 포인트(Point-to-point)

287. 다음은 무엇에 대한 설명인가?

– ITU-T에 의해 표준으로 작성된 ISDN을 사용하기 위한 프로토콜

사용자의 요청에 따라 유연한 대역폭을 할당

망의 성능 향상을 위해 에러 제어 기능과 흐름 제어 기능을 단순화

– 1~2계층만 담당함

전용선을 사용하는 것보다 가격이 저렴하고, 기술적으로는 X.25에 비해 우위

정답 : 프레임 릴레이(Frame relay)

288. 소프트웨어의 구체적인 부분에 해당하는 설계와 구현을 재사용이 가능하게끔 클래스들을 제공하는 틀을 이르는 용어는 무엇인가? 

정답 : 프레임워크(Framework)

289. <보기>를 보고 빈 칸에 알맞은 용어를 쓰시오. 

<보기>

모듈화 / 재사용성 / 확장성 / 제어의 역행

 프레임워크는 소프트웨어의 구체적인 부분에 해당하는 설계와 구현을 재사용이 가능하게끔 클래스들을 제공하는 틀을 말한다. 프레임워크는 모듈화, 재사용성, 확장성, 제어의역행의 특징을 가지고 있는데,  인터페이스를 통해 애플리케이션에서 반복적으로 사용하는 일반적 컴포넌트를 정의하여 ( )을/를 높였으며, 다형성을 통해 애플리케이션이 프레임워크의 인터페이스를 확장할 수 있는 ( )을/를 가지고 있다. 또한 구현을 인터페이스 뒤에 감추는 ( )을/를 통해 설계/구현 변경에 따르는 영향을 최소화할 수 있게 하였고, 외부의 이벤트에 대해 애플리케이션이 어떤 메서드를 수행해야할지 처리흐름을 제어하기도 하는데 이를 ( )(이)라고 한다. 

정답 :  재사용성 확장성 모듈화 제어의 역행

290. 운영체가 관리하는 실행단위로 프로세서에 의해 처리되는 PCB(프로그램 제어 블록)를 가진 시스템 프로그램을 뜻하는 용어는?

정답 : 프로세스(Process)

291. 준비 상태(Ready List)에 있는 여러 프로세스 중 실행될 프로세스를 선정(Scheduling)하여 CPU를 할당하는 것으로 문맥교환이 발생하고 프로세스는 준비 상태에서 실행 상태로 전이하는 프로세스 상태전이는 무엇인가?

정답 : 디스패치(Dispatch)

292. CPU를 할당받은 프로세스는 지정된 시간이 초과되면 스케줄러에 의해 PCB에 저장되고, CPU 반납후 다시 준비 상태로 전이되는데 이러한 프로세스 상태전이는 무엇인가?

정답 : 타이머 런 아웃(timer run out)

293. SQL을 이용해 생성된 데이터를 조작하며, 데이터베이스 내부에 저장되고 일정한 조건이 되면 자동으로 수행되는 프로그램은 무엇인가?

정답 : 프로시저(Procedure)

294. 서로 다른 시스템에 있는 두 개체 간의 데이터 교환을 원활히 하기 위한 일련의 통신규약을 이르는 말로 대표적으로 HTTP, FTP 등이 있다. 이것은 무엇인가?

정답 : 프로토콜(Protocol)

295. 사용자가 요구한 주요 기능을 프로토 타입으로 구현하여, 사용자의 피드백을 통해 개선, 보완하여 완성 소프트웨어를 만들어 나가는 기법을 무엇이라고 하는가? 

정답 : 프로토타이핑(Prototyping)

296. 소프트웨어 개발에서 정식 절차에 따라 완전한 소프트웨어를 만들기 전에 사용자의 요구를 받아 일단 모형을 만들고 이 모형을 통해 사용자와 의사소통하는 도구로 활용하는데, 이 도구는 무엇인가?

정답 : 프로토타입(Prototype)

297. EAI 구축 유형 중, 그룹 내는 허브 앤 스포크 방식을 사용하고, 그룹 간에는 메시지 버스 방식을 사용하는 통합방식을 갖는 유형은 무엇인가?

정답 : 하이브리드(Hybrid)

298. 메인 제어 모듈로부터 아래 방향으로 제어의 경로를 따라 이동하면서 테스트를 진행하며, 메인 제어 모듈에 통합되는 하위 모듈과 최하위 모듈은 깊이-우선 또는 너비-우선방식으로 통합되는 통합 방법은 무엇인가? 

정답 : 하향식 통합(Top Down)

299. 해시값으로 원래 입력값을  찾아낼 수 없는 일방향성의 특징을 가진 알고리즘으로 SHA-256/384/512, HAS-160 등이 있는 알고리즘은 무엇인가? 

정답 : 해시 암호화 알고리즘

300. 파티션을 위한 범위가 없는 데이터에 적합한 기법으로 균등한 데이터 분할이 가능하고 질의 성능의 향상이 가능한 특징을 가지며, 파티션 키의 해시 함수 값에 의한 파티셔닝 기법은?

정답 : 해시 파티셔닝(Hash Partitioning)

261. 클라이언트-서버 구조에서 서버에서 그 서버가 제공하는 서비스를 요청하고, 또는 서비스 요청을 위해 필요 인자를 서버가 원하는 방식에 맞게 제공하며, 서버로부터 반환되는 응답에 사용자에게 적절한 방식으로 표현하는 기능을 가진 프로그램이나 시스템을 무엇이라고 하는가?

정답 : 클라이언트(Client)

262. 객체지향 프로그래밍에서 특정 객체를 생성하기 위해 변수와 메서드를 정의하는 일종의 틀로, 객체를 정의하기 위한 상태와 메서드로 구성되는 요소는 무엇인가?

정답 : 클래스(Class)

263. 모든 서브 타입으로 상속(Inheritance)되는 공통 속성을 ( )(이)라고 하고,  모델링 개체(Entity)의 전체 집합에서 일부만 모아 놓은 부분 속성을 이르는 말을 ( )(이)라고 한다. 

정답 :  슈퍼 타입(Super Type) 서브 타입(sub type)

264. 서명자를 확인하고 서명자가 당해 전자문서에 서명했다는 사실을 나타내기 위해 특정 전자문서에 첨부되거나 논리적으로 결합된 전자적 형태의 정보는 무엇인가? 

정답 : 전자서명(Digital Signature)

265. 잘 작성되어 가독성이 높고, 단순하며, 의존성을 줄이고, 중복을 최소화하여 깔끔하게 잘 정리된 코드를 무엇이라고 하는가? 

정답 : 클린 코드(clean code)

266. 프로젝트에서 책임과 연관되어 있으며 서로 독립적 성격을 갖지만 함께 편성되고 관리되는 테스트 활동의 그룹을 이르는 용어는 무엇인가? 

정답 : 테스트 레벨(Test Level)

267. 테스트 산출물의 종류를 서술하시오.

정답 : 테스트 계획서 / 테스트 케이스 / 테스트 시나리오 / 테스트 결과서

268. 테스트 수행을 위한 여러 테스트 케이스의 집합으로서, 테스트 케이스의 동작 순서를 기술한 문서이며 테스트를 위한 절차를 명세한 문서는 무엇인가? 

정답 : 테스트 시나리오(Test Scenario)

269. 테스트의 결과가 참인지 거짓인지를 판단하기 위해서 사전에 정의된 참 값을 입력하여 비교하는 기법은 무엇인가?

정답 : 테스트 오라클(Test Oracle)

270. 테스트 도구를 활용하여 반복적인 테스트 작업을 스크립트 형태로 구현함으로써, 테스트 시간 단축과 인력 투입 비용을 최소화하고, 쉽고 효율적인 테스트를 수행할 수 있는 방법을 ( )(이)라고 한다. ( )의 유형으로는 애플리케이션을 실행하지 않고 분석하는 정적 분석 도구, 테스트를 위해 작성된 스크립트를 실행하는 테스트 실행 도구, 애플리케이션의 처리량, 응답 시간, 경과 시간, 자원 사용률에 대해 가상의 사용자를 생성하고 테스트를 수행하는 ( ), 그리고 테스트 관리 도구, 형상 관리 도구, 결함 추적/관리 도구 등으로 이루어진 테스트 통제 도구가 있다. 

정답 :  테스트 자동화 도구 성능 테스트 도구(Performance Test Tools)

271. 테스트 조건에서 테스트 계획의 수립, 사용자 요구사항에 대한 테스트 명세의 작성, 투입조직 및 참여 인력의 역할과 책임의 정의, 테스트 일정의 확정, 테스트 환경의 구축 등이 완료된 후, 정의하는 조건을 ( ) 이라고 한다. 반면 ( )은 업무 기능의 중요도에 따라 조건 설정의 변경이 가능하다.

정답 :  시작 조건 종료 조건

272. 주어진 테스트 케이스에 의해 수행되는 소프트웨어의 테스트 범위를 측정하여 테스트의 정확성과 신뢰성을 향상시키는 역할을 수행하는  테스트 품질 측정 기준은 무엇인가?

정답 : 테스트 커버리지(Test Coverage)

273. 애플리케이션 컴포넌트 및 모듈을 테스트는 환경의 일부분으로, 테스트를 지원하기 위한 코드와 데이터를 말하며, 단위 또는 모듈 테스트에 사용하기 위해 코드 개발자가 작성하는 요소를 무엇이라고 하는가? 

정답 : 테스트 하네스(Test Harness)

274. 논리 및 물리 모델링 과정에서 작성하는 설계 산출물로 테이블을 구성하는 컬럼들의 특성, 인덱스, 업무 규칙 등을 문서화한 것을 의미하는 용어는? 

정답 : 테이블 정의서

275. 단위테스트가 끝난 모듈 또는 컴포넌트 단위의 프로그램이 설계 단계에서 제시한 애플리케이션과 동일한 구조와 기능으로 구현된 것인지를 확인하고, 소프트웨어 각 모듈 간의 인터페이스 관련 오류 및 결함을 찾아내기 위한 체계적인 테스트 기법으로 하향식 통합 테스트, 상향식 통합 테스트, 그리고 빅뱅 테스트로 분류된다. 이 테스트는 무엇인가? 정답 : 통합 테스트(Integration Test)

276. 데이터베이스에서 프로시저에 있는 SQL 실행 계획을 분석, 수정을 통해 최소의 시간으로 원하는 결과를 얻도록 프로시저를 수정하는 작업을 뜻하는 용어는 무엇인가? 

정답 : 쿼리 성능 개선(=튜닝)

277. 쿼리 성능 개선 절차를 순서대로 서술하시오.

[ SQL문 재구성 / 실행계획 유지관리 / 문제있는 SQL 식별 /인덱스 재구성 / 옵티마이저 통계 확인 ]

정답 : 문제있는 SQL 식별 옵티마이저 통계 확인 SQL문 재구성  인덱스 재구성    실행계획 유지관리

278. 릴레이션을 구성하는 각각의 행(row)으로서 데이터베이스내의 주어진 목록과 관계있는 속성값의 모음이며 관련 테이블에서 행한 수치 이상으로 혼합된 자료 요소를 ( )(이)라고 하고, ( )의 수를  ( ) (이)라고 한다.

정답 :  튜플(tuple) 카디널리티(Cardinality)

279. 인가받지 않은 사용자로부터 데이터베이스를 보장하기 위해 DBMS가 가져야 하는 특성이자, 데이터베이스 시스템에서 하나의 논리적 기능을 정상적으로 수행하기 위한 작업의 기본 단위를 이르는 말은?

정답 : 트랜잭션(Transaction)

280. 특정 테이블에 삽입, 수정, 삭제 등의 데이터 변경 이벤트가 발생시 DBMS에서 자동적으로 실행되도록 구현된 프로그램을 무엇이라고 하는가? 

정답 : 트리거(Trigger)

241. 제품 소프트웨어 개발단계부터 적용한 기준이나 패키징 이후 설치 및 사용자 측면의 주요 내용등을 기록한 문서이자, 사용자 중심의 기능 및 방법을 나타낸 설명서와 안내서는 무엇인가?

정답 : 제품 소프트웨어 매뉴얼

242. 개발이 완료된 제품 소프트웨어를 고객에게 전달하기 위한 형태로 패키징하고, 설치와 사용에 필요한 제반 절차 및 환경 등 전체 내용을 포함하는 매뉴얼로 개발된 컴포넌트 사용 시에 알아야 할 내용을 기술하며 패키지의 기능, 패키지의 인터페이스, 포함하고 있는 메서드나 오퍼레이션과 메서드의 파라미터 등의 설명이 포함되어 있는 문서는 무엇인가? 

정답 : 제품 소프트웨어 사용자 매뉴얼

243. 창작물인 저작물에 대한 배타적 독점적 권리로 타인의 침해를 받지 않을 고유한 권한은 무엇인가? 

정답 : 저작권(Copyright)

244. 결정 명령문 내의 각 조건이 적어도 한 번은 참과 거짓의 결과가 되도록 수행하는 코드 커버리지 유형은 무엇인가?

정답 : 조건 커버리지

245. 조건문은 조건에 따라 결과를 추출하는 형태의 명령어로, ( )과 ( )이 있다. 조건문의 종류를 쓰고, 둘 중 하나를 선택하여 간략히 서술하시오. 

정답 :  if switch

if문 : 참/거짓 여부에 따라 실행 경로를 달리하는 조건문으로 조건 판별 결과가 true일 때 특정 문장(블록)을 추가로 실행하는 명령문으로 if문 단독으로 쓰는 단순 if문, 경로를 하나 추가한 if~else if문, 다수의 분기가 존재하는 중첩 if문으로 구분된다. 

switch문 : 특정 조건에 대해 여러가지 판별을 수행하여 각각 다른 문장을 수행하는 조건문으로 if문과 달리 범위에 대한 판별 등이 불가능하고 동등 비교만 가능한 특징이 있다. 조건에 해당하는 case로 이동하고, case가 종료 되었을 때 break문이 있으면 switch문을 빠져나오고, break문이 없으면 break를 만날 때까지 다른 case문을 실행하거나 default문에서 종료된다.

246. 데이터 구조나 오브젝트 상태를 다른 컴퓨터 환경으로 저장하고 재구성할 수 있는 포맷으로 변환하는 과정을 무엇이라고 하는가?

정답 : 직렬화(Serialization)

247. 총합, 평균 등의 데이터 분석을 위해서는 복수 행 기준의 데이터를 모아서 처리할 필요가 있는데, 이러한 유형의 함수를 ( )함수라고 한다. ( )함수에는 여러 행 또는 테이블 전체 행으로부터 하나의 결과값을 반환하는 ( ) 함수와 소그룹 간의 소계(소그룹의 합계) 및 중계(중그룹) 등의 중간 합계 데이터를 산출하는 ( ), 그리고 데이터베이스를 사용한 온라인 분석 처리(OLAP) 용도로 사용하기 위해서 표준 SQL에 추가된 기능으로서의 ( )함수가 있다.

정답 :  데이터 분석 집계(Aggregate) 그룹(Group) 윈도우(Window) 

248. 물리 데이터 저장소 구성을 위해 DBMS를 생성한 후, 릴레이션과 릴레이션 사이에 대해 참조의 일관성을 보장하기 위한 제약조건으로 외래키에 제한, 연쇄, 널값 설정 등을 통해 구현하는 제약조건을 무엇이라고 하는가?

정답 : 참조 무결성 제약 조건

249. 애플리케이션 성능 측정 지표로서, 애플리케이션이 주어진 시간에 처리할 수 있는 트랜잭션의 수를 뜻하는 개념은 무엇인가? 

정답 : 처리량(Throughput)

250. 기업이 시간 경과에 따라 지불해야 하는 컴퓨팅 비용을 통합적 관점에서 파악하여 직접 비용뿐만 아니라 이와 관련된 숨겨진 비용(간접비용)까지 포함하여 파악하는 비용을 뜻하는 용어는 무엇인가?

정답 : 총 소유 비용(TCO; Total Cost of Ownership)

251. SW 개발 보안 용어 중  위협이 발생하기 위한 사전 조건에 따른 상황을 이르는 말로 평문 전송, 입력값 미검증, 비밀번호의 공유등의 사례가 있다. 무엇에 대한 설명인가?

정답 : 취약점(Vulnerability)

252. 특정한 기능을 수행하기 위해 독립적으로 개발되어 보급되는, 잘 정의된 인터페이스를 가지며 다른 부품과 조립되어 응용시스템을 구축하기 위해 사용되는 소프트웨어 프로그램을 이르는 말은?

정답 : 컴포넌트(Component)

253. 객체 지향 프로그래밍의 특성 중 하나로 세부사항은 배제하고 중요한 부분을 중심으로 간략화 하는 기법은 무엇인가?

정답 : 추상성/추상화(abstraction)

254. 인증을 받은 컴포넌트를 등록하는 곳으로 이곳은 컴포넌트의 최신 버전을 유지하며 컴포넌트의 버전별 상태도 유지하고 관리함으로써 사용자가 컴포넌트 이용을 용이하도록 한다. 이곳은 무엇인가? 

정답 : 컴포넌트 저장소(Repository; 레파지토리)

255. 범위 분할 이후 해시 함수를 적용하여 재분할함으로써 큰 파티션에 대한 I/O(In/Out) 요청을 여러 파티션으로 분산할 수 있는 파티셔닝 기법은? 

정답 : 컴포지트 파티셔닝(Composite Partitioning)

256. 역공학을 통한 공격을 막기 위해 프로그램의 소스 코드를 알아보기 힘든 형태로 바꾸는 기술로, 소스코드 자체를 알아보기 힘들게 바꾸거나 컴파일 후에 생성된 바이너리를 분석하기 힘들게 변조하는 유형으로 크게 구분되는 저작권 크랙방지 기술을 무엇이라고 하는가?

정답 : 코드 난독화(Code Obfuscation)

257. 소프트웨어 테스트 충분성 지표 중 하나로, 소스코드의 구문, 조건, 결정 등의 구조 코드 자체가 얼마나 테스트되었는지를 측정하는 방법은 무엇인가? 

정답 : 코드 커버리지(Code Coverage)

258. 배치 스케줄러 중 하나로 스프링 프레임워크에 플러그인되어 수행하는 작업(job)과 실행 스케줄을 정의하는 트리거를 분리하여 유연성을 제공하는 오픈소스 기반 스케줄러를 무엇이라고 하는가?  정답 : 쿼츠 스케줄러(Quartz Scheduler)

259. 인터넷을 통해 가상화된 컴퓨터 시스템 리소스(IT 리소스)를 제공하고 정보를 자신의 컴퓨터가 아닌 인터넷에 연결된 다른 컴퓨터로 처리하며, 구성 가능한 컴퓨팅 자원(네트워크, 데이터베이스, 서버, 스토리지, 애플리케이션, 서비스 등) 에 대해 어디서나 접근할 수 있는 기술은 무엇인가?

정답 : 클라우드 컴퓨팅(Cloude Computing)

260. 클라우드 컴퓨팅의 유형은 크게 ( ) , ( ), 그리고 하이브리드 클라우드로 분류할 수 있다. 기업 또는 조직 내부에서 보유하고 있는 컴퓨팅 자원을 사용하여 내부에 구축되어 운영되는 클라우드를 ( )라고 하고, 클라우드 서비스 제공 업체에서 다중 사용자를 위한 컴퓨팅 자원 서비스를 제공하는 클라우드를 ( )라고 한다.

정답 :  사설 클라우드(Private Cloud) 공용 클라우드(Public Cloud)

221. <보기>에 나열된 응집도를 응집도가 낮은 순서부터 높은 순서로 차례대로 서술하시오

<보기> Functional / Communication / Procedural /  Coincidental  / Temporal / Logical / Sequential

정답 Coincidental(Cohesion)(우연적) Logical(논리적) Temporal(시간적) Procedural(절차적)  Communication(통신적) Sequential(순차적) Functional(기능적)

222. 데이터의 중복성으로 인해 릴레이션을 조작할 때 발생하는 비합리적인 현상으로 삽입, 삭제, 갱신의 유형이 있는 이것은 무엇인가? 

정답 : 이상 현상(Anomaly)

223. 데이터베이스 정규화 수행 중 이상 현상이 발생했다. 다음 사례는 이상현상 중 무슨 유형인가?

학번이름교수번호지도교수
202001홍길동1김교수
202002김영희2이교수

이 교수라는 교수가 퇴사할 경우, 김영희 학생의 정보가 같이 제거되는 현상

정답 : 삭제 이상

224. 검색 연산의 최적화를 위해 데이터베이스 내 열에 대한 정보를 구성한 데이터 구조를 무엇이라고 하는가?  정답 : 인덱스(Index)

225.  객체지향 프로그래밍(OOP)에서 해당 클래스의 구조로 컴퓨터 저장 공간에 할당된 실체를 무엇이라고 하는가? 정답 : 인스턴스(Instance)

226. inter(상호)와 action(동작, 작동)의 합성어로 상호+동작을 위한 디자인으로, 입출력 장치를 매개로 디지털 시스템과 사람이 주고 받는 일련의 의사소통 과정을 무엇이라고 하는가? 정답 : 인터랙션(Interaction)

227. 자료구조(Data Structure)에 대해 서술하시오. 

정답 : 컴퓨터에 데이터를 삽입, 삭제, 수정하게 해주는 논리적인 공간 구조로, 형태에 따라 단순 구조, 선형 구조, 비선형 구조, 파일 구조로 분류할 수 있다.

 단순구조: int, double, float, char…
선형구조: 배열, 스택, 큐, 링크드리스트(연결리스트)
비선형구조: 트리, 그래프
파일구조: XX파일, …

228. 애플리케이션 성능 측정 지표 중, 애플리케이션이 트랜잭션을 처리하는 동안 사용하는 CPU 사용량, 메모리 사용량, 네트워크 사용량을 나타내는 개념은 무엇인가? 

정답 : 자원 사용률(Resource Usage)

229. 프로그램 언어중에서 그 실행 순서(절차)를 지정하게 되는 언어로서, 명령형 언어라고도 불리며 C, BASIC, FORTRAN, ALGOL 등이 있다. 이러한 언어들을 무엇이라고 하는가? 정답 : 절차적 프로그래밍 언어

230. 관계형 데이터베이스 설계에서 중복을 최소화하여 데이터를 구조화하는 프로세스를 무엇이라고 하는가? 정답 : 정규화(Normalization) 

231. 데이터베이스 정규화 단계 중, 제2 정규형(2NF)의 정규화 조건을 서술하시오.  정답 : 부분 함수 종속 제거(또는 완전 함수적 종속 관계)

232. 프로그램 실행을 위해 연산을 표현하는 기호를 무엇이라고 하는가? 정답 : 연산자(operator)

234. MS-DOS의 멀티태스킹 기능과 GUI 환경을 제공하는 응용프로그램으로서, 마이크로소프트사가 개발한 운영체제는 무엇인가?  정답 : 윈도우즈(Windows)

235. 블랙박스 테스트 유형 중, 시스템이 실제 사용되는 유스케이스로 모델링 되어 있을 때, 프로세스 흐름을 기반으로 테스트 케이스를 명세화하여 수행하는 테스트 기법은 무엇인가?  정답 : 유스케이스 테스트(Usecase Test)

236. 암호화는 수행하지만 절대로 복호화가 불가능한 알고리즘은 무엇인가?  정답 : 일방향 암호화 알고리즘

237. 소스 코드 품질분석 도구 유형 중, 작성된 소스 코드를 실행시키지 않고, 코드 자체만으로 코딩 표준 준수 여부, 코딩 스타일 적정 여부, 잔존 결함 발견 여부 등을 확인하는 코드 분석 도구를 ( )(이)라고 하고, pmd, cppcheck, SonarQube, checkstyle  등이 있다. 정답 : 정적 분석 도구

238. 요구사항 정의에 사용되는 초기 시나리오를 말하며, 높은 수준, 낙관적이면서도 발생 상황에서의 이상적인 시스템 동작에 초점을 맞추는 시나리오는 무엇인가?

정답 : 정황 시나리오(Contextual Scenario)

239. 정형기술검토(FTR)는 ( ), ( ), ( ), 라운드로빈(RoundRobin), 그리고 소프트웨어에 관한 다른 소단체의 기술적 평가를 포함하는 검토의 부류이다. 검토 자료를 회의 전에 배포해서 사전검토한 후 짧은 시간 동안 회의를 진행하는 형태로 리뷰를 통해 오류를 검출하고 문서화하는 기법을 ( )(이)라고 하고, 2~3명이 진행하는 리뷰의 형태로 요구사항 명세서 작성자가 요구사항 명세서를 설명하고, 이해관계자들이 설명을 들으면서 결함을 발견하는 형태로 진행하는 검토기법을 ( )(이)라고 하며, 소프트웨어 요구, 설계, 원시 코드 등의 저작자 외의 다른 전문가 또는 팀이 검사하여 오류를 찾아내는 공식적 검토기법을 ( )이라고 한다.

정답 :  워크스루(Walk Through) 동료 검토(Peer Review) 인스펙션(Inspection)

240. 비동기 브라우저 / 서버 통신(AJAX)을 위해 속성-값 쌍, 키-값 쌍으로 이루어진 데이터 오브젝트를 전달하기 위해 인간이 읽을 수 있는 텍스트를 사용하는 개방형 표준 포맷을 무엇이라고 하는가? 정답 : 제이슨(JSON; JavaScript Object Notion)

201. 휴대전화를 비롯한 휴대용 장치를 위한 운영체제와 미들웨어, 사용자 인터페이스 그리고 표준 응용 프로그램(웹 브라우저, 이메일 클라이언트 등)을 포함하고 있는 운영체제는 무엇인가?  정답 : 안드로이드(Android)

202. 테스트 목적에 따른 분류로 불법적인 소프트웨어가 접근하여 시스템을 파괴하지 못하도록 소스 코드 내의 보안적인 결함을 미리 점검하는 테스트 기법을 이르는 용어는?

정답 : 안전 테스트(Security Test)

203. 어떤 문제에 대한 답을 찾는 해법으로 자연어, 순서도, 의사 코드, 프로그래밍 언어를 이용하는 방법으로 표현하는 개념은 무엇인가?

정답 : 알고리즘(Algorithm)

204. 다양한 패키지 애플리케이션 및 기업에서 자체적으로 개발한 애플리케이션을 연결하는 EAI의 핵심 장치를 무엇이라고 하는가?  정답 : 어댑터(Adaptor)

205. 사물의 구조나 상태, 동작 등을 모델로 표현하는 경우, 그 모델의 구성요소이자,  데이터의 집합을 의미하고 물리적 설계 단계에서의 테이블을 뜻하는 용어는 무엇인가?

 정답 : 엔티티(entity)

206. 응용 소프트웨어와 연계 대상 모듈 간의 데이터 연계 시 요구사항을 고려한 연계방법과 주기를 설계하기 위한 메커니즘을 ( )(이)라고 한다. ( )은/는 직접적인 방법과 간접적인 방법으로 구분할 수 있는데, 직접적인 방법 중 수신 시스템에서 DB링크를 생성하고 송신 시스템에서 해당 DB링크를 직접 참조하는 방식을 ( )(이)라고 하고, 수신 시스템의 WAS에서 송신 시스템 DB로 연결하는 DB커넥션 풀(DB Connection Pool)을 생성하고 연계 프로그램에서 해당 DB 커넥션 풀 명을 이용하는 기술을 ( )(이)라고 한다. 

정답 :  연계 메커니즘 DB 링크(DB Link) DB 연결(DB Connection)  

207. 사용자가 상황에 맞게 기존 자료형을 조합해서 만드는 자료형을 (  ) 자료형이라고 한다. ( ) 자료형은 열거체(Enumeration), 구조체(Structure), 공용체(Union)로 구분되는데, 모든 멤버 변수가 하나의 메모리 공간을 공유하는 ( )자료형을 ( )라고 하고, 서로 연관된 정수형 상수들의 집합을 ( )라고 하며, 자바, 파이썬에서는 제공하지 않지만 C언어에서 사용자가 기본 타입을 가지고 새롭게 정의할 수 있는 ( ) 자료형을 ( )라고 한다.

정답 :  사용자 정의 공용체 열거체 구조체 

208. 테이블을 생성시 일부 단어들 중 시스템에서 사전 예약이 되어 있어서 사용할 수 없는 단어를 무엇이라고 하는가?

정답 : 예약어(reserved word) 또는 키워드(keyword)

209. 요구사항을 충족시켜주지 못한다면, 결함이 없다고 해도 품질이 높다고 볼 수 없는 소프트웨어 테스트의 원리는 무엇인가?  정답 : 오류-부재의 궤변

210. 소스 코드를 공개해 소프트웨어 혹은 하드웨어 제작자의 권리를 지키면서 원시 소스 코드를 누구나 열람ㆍ 사용할 수 있도록 한 소프트웨어를 무엇이라고 하는가? 

정답 : 오픈소스(Open Source)

211. SQL을 가장 빠르고 효율적으로 수행할 최적의 처리 경로를 생성해주는 데이터베이스관리자(DBMS)내부의 핵심엔진을 ( )(이)라고 하고, ( )이/가 생성한 SQL 처리경로를 ( )(이)라고 한다.  정답 :  옵티마이저(Optimizer) 실행계획(Execution Plan)

212. 이해관계자들과의 화면 구성을 협의하거나 서비스의 간략한 흐름을 공유하기 위해 화면 단위의 레이아웃을 설계하는 작업을 무엇이라고 하는가? 

정답 : 와이어 프레임(Wireframe)

213. 하나 이상의 테이블을 연결하여 사용하는 관계형 데이터베이스에서 하나의 테이블 속성 또는 속성 집합이 다른 테이블의 기본키가 되는 것을 의미하며, 데이터베이스에 존재하는 테이블의 관계에서 참조 무결성을 보장하기 위해 사용되며, 중복되는 값을 가질 수 있으며 비어있는 값(Null 값) 또한 가질 수 있는 키는 무엇인가?

정답 : 외래키(FK; Foregn Key)

214. 요구사항 개발 프로세스는 도출(Elicitation) 분석(Analysis) 명세(Specification)확인(Validation)의 순으로 이루어진다. <보기>의 세부 활동들을 각각의 단계에 알맞게 서술하시오.

<보기>

ㄱ. 요구사항 소스 추출 ㄴ. 시스템 정의서 ㄷ. 검토 ㄹ. 요구사항 분류 ㅁ. 요구사항 협상ㅂ. 인수테스트 ㅅ. 소프트웨어 요구사항 명세서 ㅇ. 개념 모델링 ㅈ. 시스템 요구사항 명세서 ㅊ. 프로토타이핑ㅋ. 요구사항 도출 기법 활용 ㅌ. 기술 구조 설계 및 요구사항 할당 ㅍ. 모델 검증

정답

도출 : ㄱ, ㅋ ( 요구사항 소스 추출, 요구사항 도출 기법 활용 )

분석 : ㄹ, ㅁ, ㅇ, ㅌ ( 요구사항 분류, 요구사항 협상, 개념 모델링, 기술 구조 설계 및 요구사항 할당 )

명세 : ㄴ, ㅅ, ㅈ ( 시스템 정의서, 소프트웨어 요구사항 명세서, 시스템 요구사항 명세서 )

확인 : ㄷ, ㅂ, ㅊ, ㅍ ( 검토, 인수테스트, 프로토타이핑, 모델검증 ) 

215. 기능적 요구사항에 대해 서술하고, 세부 특성을 아는대로 쓰시오.

정답 : 시스템이 제공하는 기능, 서비스에 대한 요구사항으로 주요 특성으로는 ‘기능성, 완전성, 일관성’이 있다.

216. 다양한 경로를 통해 수집된 직접적인 요구사항을 검토하여, 페르소나(persona)의 목적을 기준으로 데이터 요구, 기능 요구, 제품 품질, 제약 요인 기반으로 만든 요구사항 표를 무엇이라고 하는가? 정답 : 요구사항 매트릭스(Requirement Matrix)

217. 컴퓨터 시스템이 제공하는 모든 하드웨어, 소프트웨어를 사용할 수 있도록 해주고, 컴퓨터 사용자와 컴퓨터 하드웨어 간의 인터페이스를 담당하는 프로그램을 뜻하는 용어는? 정답 : 운영체제(OS; Operating System)

218. 네트워크에 분산된 정보를 서비스 형태로 개방하여 표준화된 방식으로 공유하는 기술로써 서비스 지향 아키텍처 개념을 실현하는 대표적인 기술을 (    )(이)라고 한다. 

정답 : 웹 서비스 방식

219. SW 개발 보안 용어 중 하나로 위협이 취약점을 이용하여 조직의 자산 손실 피해를 가져올 가능성

( ) (이)라고 하며, 조직이나 기업의 자산에 악영향을 끼칠 수 있는 사건이나 행위해킹, 삭제, 자산의 불법적인 유출, 위/변조, 파손 등을 포함하는 개념을 ( ) (이)라고 한다. 정답 :  위험(Risk) 위협(Threat)  

220. 시스템이 액터에게 제공해야 하는 기능으로 시스템 요구사항이자, 사용자 입장에서 바라본 시스템의 기능을 무엇이라고 하는가? 

정답 : 유스케이스(Usecase)

181. 네트워크 리소스를 특정 사용층이 독점하도록 하는 통신 방식으로 네트워크를 독점하기 때문에 전송이 보장되고, 서킷을 확보하기 위한 작업 후, 실데이터를 전송하고 전성 후 서킷을 닫는 프로세스로 운영되어 서킷 확보 작업이 일어나는 동안 다른 기기들은 해당 경로를 이용하기 힘든 네트워크 전달방식은 무엇인가? 

정답 : 서킷 스위칭

182. 다음 표는 프로시저 선언부에 대한 설명이다. 올바른 키워드(예약어)를 쓰시오.

( ) [OR REPLACE] PROCEDURE 프로시저_명 파라미터_명 [MORE( )] 데이터_타입 ( ) 변수 선언
( ① )DBMS내에 객체(트리거, 함수, 프로시저)를 생성
[OR REPLACE]기존 프로시저 존재 시에 현재 컴파일 하는 내용으로 덮어씀
[MORE]변수의 입출력을 구분하고 [ IN / OUT / (  ) ]로 구분됨
( ③ )PL/SQL의 블록을 시작
CHAR고정길이 문자열 타입 / 지정 길이보다 짧은 데이터 입력 시, 나머지 공간 공백 처리
( )가변길이 문자열 타입 / 지정 길이보다 짧은 데이터 입력될 시 나머지 공간 채우지 않음
NUMBER숫자(정수, 실수) 저장하는 데에 데이터 타입

정답 :  CREATE  INOUT IS[AS] VARCHAR 

183. <보기>는 프로그래밍 언어를 구분없이 나열한 것이다. 선언형 언어를 선택하시오.

C+ / PHP / Haskell / SQL / ALGOL / JAVA / Python / LISP / C / Javascript / Prolog / Delphi / C#

정답 : Haskell / SQL / LISP / Prolog

해설

객체지향 언어: C+ / JAVA / C#

절차적 언어: ALGOL / C

스크립트 언어: PHP / Python / Javascript

184. 테스트 목적에 따른 분류 중 하나로 사용자의 이벤트에 시스템이 응답하는 시간, 특정 시간 내에 처리하는 업무량, 사용 요구에 시스템이 반응하는 속도 등을 측정하는 테스트 기법은 무엇인가?

정답 : 성능 테스트(Performance Test)

185. 클라이언트와 서버의 논리적인 연결을 뜻하는 말로 통신에서는 사용자와 컴퓨터, 또는 두 대의 컴퓨터간의 활성화된 접속을 의미하며, 프로그램 사용과 관련해서는 한 응용프로그램의 기동을 시작해서 종료할 때까지의 시간을 가리키는 용어를 ( )(이)라고 한다.

정답 : 세션(Session)

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

정답 : 세션 하이재킹(Session Hijacking)

187. 여러 가지 소프트웨어 구성요소와 그 구성요소가 가진 특성 중에서 외부에 드러나는 특성, 그리고 구성요소 간의 관계를 표현하는 시스템의 구조를 뜻하는 용어는?

정답 : 소프트웨어 아키텍처(Software Architecture)

188. 소프트웨어 집약적인 시스템에서 아키텍처가 표현해야 하는 내용 및 이들 간의 관계를 제공하는 아키텍처 기술 표준은 무엇인가?

정답 : 소프트웨어 아키텍처 프레임워크(Software Architecture Framwork)

189. 일방향 해시 함수에서 다이제스트를 생성할 때 추가되는 바이트 단위의 임의의 문자열을 무엇이라고 하는가?

정답 : 솔트(salt)

190. 윈도우 함수 중, 레코드의 순위를 계산하는 함수를 순위 함수라고 한다. 순위 함수에는 RANK, DENSE_RANK, ROW_NUMBER의 3유형이 있는데, 동일 순위의 레코드 존재 시에도 후 순위를 넘어가지 않아 2위가 3개인 레코드가 3개 있는 경우, <1위, 2위, 2위, 2위, 3위, 4위, >와 같이 계산하는 함수는 무엇인가? 

정답 : DENSE_RANK

191. 컴퓨터 내부를 관리하는 커널(Kernel)과 사용자 간을 연결하는 명령어(command)창은 무엇인가?  정답 : 쉘(Shell)

192. 공격대상에게 직접 공격을 하지 않고 데이터만 몰래 들여다보는 수동적 공격기법은 무엇인가?  정답 : 스니핑(Sniffing)

193. 프로세스보다 가벼운, 독립적으로 수행되는 순차적인 제어의 흐름이며, 실행 제어만 분리하여 여러 개로 사용될 수 있는 실행 단위는 무엇인가? 정답 : 스레드(Thread)

194. 2계층 장비로서, 동일 네트워크 내에서 출발지에 들어온 데이터 프레임을 목적지 MAC 주소 기반으로 빠르게 전달하는 네트워크 장비는 무엇인가? 정답 : 스위치(Switch)

195. 애플리케이션에 대한 모니터링 및 DB Agent를 통해 오픈 소스 DB 모니터링 기능 및 인터페이스 감시 기능을 제공하는 인터페이스 도구는 무엇인가? 

정답 : 스카우터(SCOUTER)

196. 다양한 플랫폼에서 쓸 수 있고, 라이브러리(모듈)가 풍부하고 유니코드 문자열을 지원하여 다양한 언어의 문자 처리가 가능하고, 들여쓰기를 사용하여 블록을 구분하는 문법을 채용한 스크립트 언어는 무엇인가?

정답 : 파이썬(Python)

197. 정책, 프로세스, 콘텐츠 구성, 와이어 프레임(UI, UX), 기능 정의, 데이터베이스 연동 등 서비스 구축을 위한 모든 정보가 담겨 있는 설계 산출물을 (         )(이)라고 한다.

정답 : 스토리보드(Storyboard)

197. UI 개발을 위한 주요 비법 중 하나로 불확실성이 높은 상황 변화를 사전에 예측하고 다양한 시나리오를 설계하는 방법으로 불확실성을 제거해나가려는 경영 전략의 한 방법을 무엇이라고 하는가? 정답 : 시나리오 플래닝(Scenario Planning)

198. 개발하는 소프트웨어가 복잡해짐으로 인해 보안상 취약점이 발생할 수 있는 부분을 보완하여 프로그래밍하는 것으로 안전한 소프트웨어를 개발하기 위해 지켜야 할 코딩 규칙과 소스 코드 취약 목록이 포함된 코딩을 무엇이라고 하는가? 정답 : 시큐어 코딩(Secure Coding)

199. 전역 변수를 사용하지 않고 객체를 하나만 생성하도록 하여 생성된 객체를 어디에서든지 참조 할 수 있도록 하는 디자인 패턴은 무엇인가? 

정답 : 싱글톤 패턴(Singleton Pattern)

200. 고객의 요구사항을 정리해 놓은 시나리오를 4개의 분리된 구조로 구성된 아키텍처 개념으로 제시하여, 이들 4개 구조가 충돌되지 않는지, 시스템의 요구사항을 충족시키는지를 증명하기 위하여 유스케이스를 체크 방법으로 사용하는 소프트웨어적인 접근 방법은 무엇인가? 정답 : 소프트웨어 아키텍처 4+1뷰

161. 분산 컴퓨팅 환경에서 응용 프로그램과 프로그램이 운영되는 환경 간에 원만한 통신이 이루어질 수 있도록 제어해주는 소프트웨어로 운영체제와 소프트웨어 애플리케이션 사이에 위치하는 프로그램은 무엇인가?정답 : 미들웨어(Middleware)

162. 누출이나 훼손되었을 떄 정보의 소유자에게 부정적 영향이 발생하고, 시스템의 계속적 운영이 불가능해지며 상당한 양의 자원을 다시 생성해야하는 상황을 유발하는 정보로서, 미국 정부의 정의(NTISSP2)에 따르면 어떤 정보의 누출, 변형, 파괴에 의해서 국가 안보나 지방 정부에 위해가 되는 상황이 발생하는 경우를 뜻한다. 이러한 정보는 무엇인가?  정답 : 민감 정보(sensitive information)

163. 정규화된 엔티티, 속성, 관계에 대해 성능 향상과 개발 운영의 단순화를 위해 중복, 통합, 분리 등을 수행하는 데이터 모델링의 기법은?

정답 : 반 정규화(De-Normalization)

164. 외부로부터 불법 침입과 내부의 불법 정보 유출을 방지하고, 내/외부 네트워크 상호간 영향을 차단하기 위한 보안 시스템을 무엇이라고 하는가? 

정답 : 방화벽(Firewall)

165. 사용자와의 상호작용 없이 일련의 작업들을 작업 단위로 묶어 정기적으로 반복 수행하거나 정해진 규칙에 따라 일괄 처리하는 방법을 이르는 말은 무엇인가?

정답 : 배치 프로그램(batch program)

166. 개발 과정의 각 단계의 산출물을 검토, 평가, 조정, 처리 등 변화를 통제하는 시점의 기준을 무엇이라고 하는가?

정답 : 베이스라인(Baseline)

167. 프로그래밍에서 계속 변하는 값이면서, 그 값을 저장하는 공간을 뜻하는 용어로 수많은 데이터를 컴퓨터에서 사용하기 위하여 선언 및 초기화를 통해 사용하는 값을 ( )(이)라고 한다. 그리고 메서드 수행에 필요한 값을 입력/저장하기 위한 입력 ( )를/을 ( )(이)라고 한다.

정답 :  변수(variable)  파라미터(parameter)

168. 테스트 목적에 따른 분류 중 하나로 변경된 시스템과 기존 시스템에 동일한 데이터를 입력 후 결과를 비교하는 테스트 기법을 이르는 용어는 무엇인가?

정답 : 병행 테스트(parallel Test)

169. 배치 프로그램은 이벤트 배치, 온디맨드 배치, 정기 배치로 분류할 수 있는데, 정해진 시점에 정기적으로 실행되는 배치 유형을 ( )라고 하고, 사전에 정의해 둔 조건 충족시 자동으로 실행되는 배치 유형은 ( )라고 한다. 그리고 앞의 두 유형과는 달리 사용자의 명시적 요구가 있을 때마다 실행되는 배치 프로그램은 ( )라고 한다.

정답 :  정기 배치 이벤트 배치 온디맨드 배치

170. 다양한 네트워크를 상호 연결하는 컴퓨터 네트워크의 일부로서, 각기 다른 LAN이나 부분망 간에 정보를 교환하기 위한 경로를 제공하는 망을 무엇이라고 하는가?

정답 : 백본망(backbone network)

171. 조건/결정 커버리지를 향상시켜 각 조건식이 다른 개별 조건식에 영향을 받지 않고 전체 조건식에 독립적으로 영향을 주도록 한 코드 커버리지는 무엇인가?

정답 : 변경 조건/결정 커버리지

172. 해킹 등 외부 공격으로 시스템의 보안정책을 침해하는 보안사고의 실제 원인이 되는 시스템상의 보안허점으로 운영 단계에서의 보안 리스크를 ( )(이)라고 한다. 그리고 ( )의 근본적인 원인이 되는 소프트웨어의 결함, 실수 버그 등의 오류이며 개발 단계의 보안 리스크를 ( )(이)라고 한다.

정답 :  보안 취약점(Vulnerability) 보안 약점(Weakness)

173. 컴퓨터 네트워크의 보안 취약점을 찾아내어 그 문제를 해결하고 이를 악의적으로 이용하는 것을 방지하는 행위에서 유래한 말로, 1950년대 말 미국 매사추세츠공과대학(MIT) 동아리 모임에서 작업과정 그 자체에서 느껴지는 순수한 즐거움이라는 뜻으로 사용되었으나, 오늘날에는 의미가 변질되어 컴퓨터 네트워크의 취약한 보안망에 불법적으로 접근하거나 정보 시스템에 유해한 영향을 끼치는 행위를 뜻하는 용어는 무엇인가?정답 : 해킹(hacking)

174. 집단적 창의적 발상 기법으로 집단에 소속된 인원들이 자발적으로 자연스럽게 제시된 아이디어 목록을 통해서 특정한 문제에 대한 해법을 찾고자 하는 회의 기법은 무엇인가? 정답 : 브레인스토밍(BrainStorming)

175. 보기 중 비대칭 키 암호화 알고리즘인 것을 모두 고르시오

<보기> SEED /  SHA-256 / RSA / ARIA-128 / HAS-160   정답 : RSA

176. 사용자가 직접 제품을 사용하면서 미리 작성된 시나리오에 맞추어 과제를 수행한 후, 질문에 답하도록 하는 테스트이며, 현 제품에 대한 사용자의 요구사항과 행동을 관찰할 수 있는 유일한 진단방법은 무엇인가?

정답 : 사용성 테스트(Usability Test)

177. 소프트웨어 테스트의 원리 중, 살충제 패러독스(pesticide paradox)에 대해 서술하시오.

정답 : ‘동일한 테스트 케이스에 의한 반복적 테스트는 새로운 버그를 찾지 못한다라는 이론으로 테스트 케이스의 정기적 리뷰와 개선 및 다른 시각에서의 접근을 강조한 원리이다.

178. 다음 인터페이스 정의서 주요 항목에 적절한 용어를 서술하시오.

주요 항목설명
인터페이스 ID인터페이스를 구분하기 위한 식별자
일반적으로 인터페이스 식별성을 강화하기 위해 업무 분류코드와 연속번호를 같이 활용
( )해당 인터페이스를 나타내는 고유 명칭
오퍼레이션 명해당 인터페이스의 세부 동작 명칭
오퍼레이션 개요해당 인터페이스의 세부 동작 프로세스에 대한 세부 설명
( )해당 인터페이스의 세부 동작이 정상적으로 작동하기 위해 사전에 완료되어야 하는 조건 기술
( )해당 인터페이스의 세보 동작이 정상적으로 작동된 이후에 발생되는 조건 기술
파라미터인터페이스 구성 항목 값
( )인터페이스 전송 후 반환되는 값

정답 :  인터페이스 명 사전 조건 사후 조건 반환 값

179. 객체지향프로그래밍(OOP)의 특성 중 하나로, 슈퍼 클래스의 멤버(변수 또는 메서드)를 서브 클래스에서 물려받아 선언없이 사용하는 성질을 ( )(이)라고 하며 자바에서 서브 클래스가 슈퍼 클래스를 ( 1 )하기 위해 사용하는 키워드(예약어)는 ( ) 이다. 정답 :  상속(Inheritance) extends

180. 애플리케이션 구조에서 최하위 레벨의 모듈 또는 컴포넌트로부터 위쪽 방향으로 제어의 경로를 따라 이동하면서 구축과 테스트를 수행하는 통합 방법은 무엇인가? 

정답 : 상향식 통합

141. 개념 모델링 이후 업무 영역의 업무 데이터 및 규칙을 구체적으로 표현한 모델로 데이터베이스 설계 프로세스의 기초 설계 단계로 비즈니스 정보의 구조와 규칙을 명확하게 표현할 수 있는 기법은 무엇인가? 정답 : 논리 데이터 모델링

142. 각 모듈 간의 통합 시, 특정 서비스를 변경하더라도 연결된 다른 서비스에는 영향을 주지 않는 유연한 구조를 이르는 용어는 무엇인가?

정답 : 느슨한 결합(Loosely Coupled)

143. 데이터 저장소 연결 절차를 순서대로 나열하시오. < 데이터베이스 연결 / 결과 수신 / 쿼리 전달 / 드라이버 로딩>

정답 : 드라이버 로딩 데이터베이스 연결 쿼리 전달 결과 수신

144. 데이터베이스 관리자(DBA)가 데이터 보안, 무결성 유지, 병행 제어, 회복을 위해 사용하는 제어용 언어를 ( )  (이)라고 한다. ( )이 유형으로 사용 권한을 부여하는 ( )(와)과 사용 권한을 취소 하는 ( )(이)가 있다. 정답 :  데이터 제어어(DCL; Data Control Language) GRANT REVOKE

145. 프로그램의 구성요소인 클래스의 기능(동작)으로 작업의 최소단위이며 반드시 호출되어야만 기능을 사용할 수 있는 요소는 무엇인가?

정답 : 메서드(method)

146. 블랙 박스 테스트 유형 중, 입력 데이터의 영역을 유사한 도메인별로 유효 값/무효 값을 그룹핑하여 대표값 테스트 케이스를 도출하여 테스트하는 기법은 무엇인가?

정답 : 동등 분할 테스트(Equivalence Partitioning Test)

147. LAN과 LAN을 연결하거나 LAN과 WAN을 연결하기 위한 장비로, 3계층 데이터 패킷을 발신지에서 목적지까지 전달하기 위해 최적의 경로를 지정하고, 이 경로를 따라 데이터 패킷을 다음 장치로 전달하는 네트워크 장비를 무엇이라고 하는가? 정답 : 라우터(Router)

148. 효율적인 프로그램 개발을 위해 필요할 때 찾아서 쓸 수 있도록 모듈화되어 제공되며, 프로그래밍 언어에 따라 일반적으로 도움말, 설치 파일, 샘플 코드 등을 제공하기도 하는 프로그램의 집합체는 무엇인가? 정답 : 라이브러리

149. 프로그램에서 프로그램이 끝없이 동작하는 것으로, 반복문에 종료 조건이 없거나, 종료 조건과 만날 수 없을 때 생기는 현상을 ( )(이)라고 한다. 이러한 ( )(을)를 방지하기 위해 사용하는 명령어를 ( )(이)라고 하는데, 자신이 속해 있는 반복문을  중지하도록 하는 명령어는 ( )(을)를 사용하고, 해당 반복 사이클 내에 남아 있는 나머지 명령어들을 건너 뛰고 다음 단계의 반복을 수행하는 명령어는 ( )(을)를 사용한다. 정답 :  무한 루프  루프 제어 명령어 break continue

150. 유닉스를 기반으로 개발되어 대화식 운영체제, 다중 작업 기능, 다중 사용자 기능, 이식성, 계층적 트리 구조 파일 시스템을 갖는 오픈 소스 기반의 운영체제로 데비안, 레드헷, Fedora, Ubuntu, Cent OS 등의 다양한 유형이 있는 운영체제는 무엇인가?  정답 : 리눅스(LINUX)

151. 특정 파티션에 저장될 데이터에 대한 명시적인 제어가 가능하며, 분포도가 비슷하고 데이터가 많은 SQL에서 컬럼의 조건이 많이 들어오는 경우 유용한 파티셔닝 기법은?

정답 : 리스트 파티셔닝(List Partitioning)

152. 서버는 클라이언트에서 요청한 소프트웨어의 실행코드를 스트림 형태로 제공하고, 클라이언트는 서버로부터 스트리밍되는 소프트웨어 코드를 클라이언트 PC의 자원을 이용하여 실행하는 방법으로 소프트웨어의 실행을 클라이언트에서 책임지는 기술을 이르는 용어는? 정답 : 리치 클라이언트(Rich Client)

153. OSI 물리 계층의 장비로, 디지털 신호를 증폭시켜 주는 역할을 하여 신호가 약해지지 않고 컴퓨터로 수신되도록 하는 재생중계장치는 무엇인가? 

정답 : 리피터(Repeater)

154. 데이터 타입의 개념과 유형(3가지 이상) 서술하시오.

정답 – 개념: 프로그래밍 언어에서 실수치, 정수 자료형과 같은 여러 종류의 데이터를 식별하는 형태로, 메모리 공간을 효율적으로 사용하고 2진수 데이터를 다양한 형태로 사용하기 위해 사용한다. 유형: 불린형(boolean), 문자형(char), 정수형(byte, short, int, long), 부동 소수점(float, double), 문자열형(string), 배열형(array), 등등

155. 테이블과 같은 데이터 구조를 정의하는데 사용되는 명령어들로 특정 구조를, 생성, 변경, 삭제, 이름을 바꾸는 데이터 구조와 관련된 명령어들을 ( )라고 하고, 데이터베이스에 저장된 자료들을 입력, 수정, 삭제, 조회하는 등 사용자가 데이터베이스를 조작할 수 있게 도움을 주는 언어를 데이터 조작어라고 한다. 데이터 조작어에는 ( )가 있다.  정답 :  데이터 정의어(DDL) 조회(SELECT), 입력(INSERT), 수정(UPDATE), 삭제(DELETE)

156. EAI 구축 유형 중, 애플리케이션 사이에 미들웨어를 두어 연계하는 미들웨어 통합 방식을 사용하여 뛰어난 확장성과 대용량 데이터를 처리 가능한 유형은 무엇인가?

정답 : 메시지 버스(Message Bus)

157. 모듈을 이용하여 소프트웨어의 성능을 향상시키거나 시스템의 디버깅, 시험, 통합 및 수정을 용이하도록 하는 소프트웨어 설계 기법으로 모듈 간 결합도는 최소화하고, 응집도를 최대화를 목적으로 하는 기법은 무엇인가? 정답 : 모듈화(Modulation)

158. SW 개발 보안의 3요소로 정당한 방법을 따르지 않고선 데이터가 변경될 수 없으며, 데이터의 정확성 및 완전성과 고의/악의로 변경되거나 훼손 또는 파괴되지 않음을 보장하는 특성은 무엇인가? 정답 : 무결성(Integrity)

159. 비밀번호나 데이터 암호 표준(DES)키를 풀기 위해 소모적인 방법으로 프로그램에 의해 사용되는 시행착오식의 침입방법으로, 프로그램을 사용하여 모든 가능한 문자의 조합을 시행하고 틀리면 다른 문자를 적용해 보는 반복에 의해 시도되는 침입방법이며, 네트워크 보안을 점검하기 위한 용도로도 사용되는 공격기법은 무엇인가? 

정답 : 무차별 공격(brute force attack(cracing), 무차별대입공격)

160. 물리 데이터모델링 변환 절차를 순서대로 나열하시오

개체를 테이블로 변환 (  속성을 컬럼으로 변환  UID를 기본키로 변환  관계를 외래키로 변환  컬럼 유형과 길이 정의 )   반 정규화 수행

 121. 테스트 완료 후 발견된 결함의 관리 측정 지표의 속성값들을 분석하고, 향후 애플리케이션의 어떤 모듈 또는 컴포넌트에서 결함이 발생할지를 추정하는 작업을 ( )(이)라고 한다.  ( )의 유형 중, 각 애플리케이션 모듈 또는 특정 속성에 해당하는 결함의 수를 측정하여 결함의 분포를 분석하는 유형을 ( )(이)라고 하고, 테스트 진행 시간의 흐름에 따른 결함의 수를 측정하여 결함 추세를 분석하는 방법을 ( )(이)라고 하며, 등록된 결함에 대해 특정한 결함 상태의 지속 시간을 측정하여 분석하는 유형을 ( )(이)라고 한다. <보기>를 참고하여 알맞은 답을 쓰시오.  [보기] [ 결함 추세 분석 // 결함 추이 분석 // 결함 분포 분석 // 결함 에이징 분석 ]

정답 :  결함 추이 분석 결함 분포 분석 결함 추세 분석 결함 에이징 분석

122. 모듈 내부가 아닌 외부의 모듈과의 연관도 또는 모듈 간의 상호의존성으로 소프트웨어 구조에서 모듈 간의 관련성을 측정하는 척도를 이르는 말은?

정답 : 결합도(Coupling)

123. 다음 결합도 유형을 높은 것부터 낮은 순으로 서술하시오.

<Data Coupling / Common Coupling / Control Coupling / Stamp Coupling / External Coupling / Content Coupling>

정답 : Content >Common >External >Control >Stamp >Data

내용 >공통 >외부 >제어 >스탬프 >자료

124. 등가분할 후 경계 값 부분에서 오류 발생 확률이 높기에 경계값을 포함하여 테스트 케이스를 설계하여 테스트하는 기법은 무엇인가? 

정답 : 경계 값 분석 테스트(Boundary Value Analysis Test)

125.  애플리케이션 성능 지표 중, 애플리케이션에 사용자가 요구를 입력한 시점부터 트랜잭션 처리 후 그 결과의 출력이 완료할 때까지 걸리는 시간은 무엇인가? 

정답 : 경과 시간(Turnaround Time)

126. 메모리가 공유되는 하나의 객체에 두 개 이상의 스레드가 동시에 값을 변경하려고 할 때 발생하는 성능 저하의 문제점을 ( )(이)라고 한다. ( )은 시큐어 코딩 가이드 중, ( ) 보안 약점 유형으로 동기화 구문(synchronized, mutex)를 사용하거나, 한 번에 하나의 프로세스만 접근 가능하도록 하는 대응 방안이 고려된다.

정답 :  경쟁 조건(Race Condition) 시간 및 상태

127. 유사 소프트웨어나 유사 기술 평가에서 테스터의 경험을 토대로 한, 직관과 기술 능력을 기반으로 수행하는 테스트 기법으로 탐색, 오류추정, 체크리스트, 특성 테스트 등의 유형을 갖는 테스트의 종류는 무엇인가? 정답 : 경험 기반 테스트

128. 서버와 네트워크, 프로그램 등의 정보시스템이 시스템의 장애에 대응하여 상당히 오랜 기간 동안 지속적으로 정상 운영이 가능한 성질은 무엇인가?

정답 : 고가용성(HA; High Availability)

129. 공개키 암호 방식 기반으로 디지털 인증서를 활용하는 소프트웨어, 하드웨어, 사용자, 정책 및 제도 등을 총칭하는 암호기술을 무엇이라고 하는가? 

정답 : 공개키 기반 구조(PKI, Public Key Infrastructure)

130. 모든 멤버 변수가 하나의 메모리 공간을 공유하며 C, C++에서  union으로 선언하여 사용하는 사용자 정의 자료형은 무엇인가?

정답 : 공용체(Union)

131. 자체적으로 컴파일이 가능하고, 다른 프로그램에서 재사용이 가능한 특징을 가지며, 전체 프로그램의 기능 중 특정 기능을 처리할 수 있는 실행 코드를 일컫는 말은?

정답 : 공통 모듈(Common Module)

132. 공통 모듈(또는 서버 프로그램)의 구현 절차를 순서대로 나열하시오

< Service / SQL / DTO/VO / View / Controller / DAO >

정답 : DTO/VO >SQL >DAO >Service >Controller >View(필요시 구현)

133. 공통 모듈 테스트 중 응용 프로그램의 내부 구조와 동작을 검사하는 소프트웨어 테스트 방식은 무엇인가?

정답 : 화이트 박스 테스트(White Box Test)

134. 공통 모듈 테스트 중 기능을 테스트할 수 있는 화면 또는 하위 모듈이 구현되지 않은 경우 ( )과 ( )를 구현하여 테스트를 수행한다. ( ) 은 하위 모듈은 있지만 상위 모듈은 없는 경우 사용하는 기법이며, ( )는 상위 모듈은 있지만 하위 모듈이 없는 경우 사용하는 기법이다.

정답 :  테스트 드라이버(Test Driver) 테스트 스텁(Test Stub)

135. 프로그램 내의 모든 명령문을 적어도 한 번 수행하는 커버리지리로 조건문 결과 관계 없이 구문 실행 개수로 계산하는 코드 커버리지는 무엇인가? 

정답 : 구문 커버리지

136. 통계 정보가 없는 상태에서 사전 등록된 규칙에 따라 질의 실행 계획을 선택하는 옵티마이저를 ( )(이)라고 하고 통계 정보로부터 모든 접근 경로를 고려한 질의 실행 계획을 선택하는 옵티마이저를 ( )(이)라고 한다.

정답 :  규칙 기반 옵티마이저(RBO; Rule-Based Optimizer) 비용 기반 옵티마이저(CBO; Cost-Based Optimizer)

137.  데이터베이스를 사용한 온라인 분석 처리(OLAP)용도로 사용하기 위해서 표준 SQL에 추가된 함수를 ( )이라고 한다. (  )은 크게 레코드의 순위를 계산하는 순위 함수와 레코드에서 가장 먼저 나오거나 가장 뒤에 나오는 값, 이전/이후의 값들을 출력하는 행 순서 함수 그리고 백분율을 보여주거나 행의 순서별 백분율 등 비율과 관련된 통계를 보여주는 ( ) 함수가 존재한다. 

정답 :  윈도우 함수 그룹 내 비율 함수

138. SW보안의 3요소로 인가되지 않은 개인 혹은 시스템 접근에 따른 정보 공개 및 노출을 차단하는 특성은 무엇인가? 

정답 : 기밀성(Confidentiality)

139. 다른 개발자가 로직(Logic)을 이해하기 어렵게 작성된 코드로서, 처리 로직의 제어가 정제되지 않고 서로 얽혀 있는 스파게티 코드, 변수나 메서드에 대한 이름 정의를 알 수 없는 코드, 동일한 처리 로직이 중복되게 작성된 코드를 무엇이라고 하는가? 

정답 : 나쁜 코드(bad code)

140. 테이블 전체 행을 하나 이상의 컬럼을 기준으로 하여 컬럼 값에 따라 그룹화하여 그룹별로 결과를 출력하는 함수를 (  )(이)라고 한다. ( )함수에는 ROLLUP, CUBE, GROUPING SETS의 유형이 있는데, 소계(소그룹의 합계) 등 중간 집계 값을 산출하기 위한 그룹 함수는 ( )이고, 결합 가능한 모든 값에 대해 다차원 집계를 생성하는 함수로 연산이 많아 시스템에 부담을 주는 그룹 함수는 ( ) 이다. 컬럼 순서가 바뀌면 집계 결과가 달라지는 ( ② ), ( ) 함수와는 달리 컬럼 간 순서와 무관한 결과를 얻을 수 있는 그룹 함수는 ( )이다.

정답 :  그룹 함수 ROLLUP CUBE GROUPING SETS

101. 보기는 트리거 구성 요소를 나열한 것이다. 구성 순서대로 서술하시오.

[보기] DECLARE / SQL / EXCEPTION / EVENT / BEGIN ~ END / CONTROL

정답 : DECLARE -> EVENT -> BEGIN~END -> CONTROL -> SQL -> EXCEPTION

해설

– DECLARE(선언부): 트리거의 명칭, 변수 및 상수, 데이터 타입을 정의함

– EVENT(이벤트부): 트리거가 실행되는 조건을 명시함

– BEGIN~END: 트리거의 시작과 종료를 의미함

 CONTROL(제어부): 조건문 또는 반복문이 삽입되어 순차적으로 처리됨

– SQL: DML(데이터 조작어) 문이 삽입되어 데이터 관리를 위한 조회, 추가, 수정, 삭제 작업을 수행함

– EXCEPTION(예외부): BEGIN~END 안의 구문 실행 중 예외가 발생 시, 처리 방법을 정의함

102. 다음은 무엇에 대한 설명인가?

웹 애플리케이션에서 입력 데이터에 대한 유효성 검증을 하지 않을 경우, 공격자가 입력 창 및 URL에 SQL문을 삽입하여 DB로부터 정보를 열람, 조작할 수 있는 취약점 공격기법  – 해당 공격으로 인한 시큐어 코딩 구현 시에는 매개변수를 받는 PreparedStatement 객체를 상수 문제열로 생성하고 파라미터 부분을 setString 등의 메서드로 설정한다.

정답 : SQL 삽입(SQL Injection)

103. 다음 괄호에 알맞은 용어를 쓰시오.

해킹 등 외부 공격으로 시스템의 보안정책을 침해하는 보안사고의 실제 원인이 되는 시스템상의 보안허점으로 운영 단계에서의 보안 리스크를 (      )라고 한다. 그리고 (        )의 근본적인 원인이 되는 소프트웨어의 결함, 실수 버그 등의 오류이며 개발 단계의 보안 리스크를 (        )라고 한다.

정답 :  보안 취약점(Vulnerability) 보안 약점(Weakness)

104. 프로그래밍에서 저장하고자 하는 어떤 값이 있을 때, 그 값을 주기억 장치에 저장하기 위한 공간을 ‘변수(variable)’라고 한다. 변수를 설정할 때 적용되는 규칙을 서술하시오. (단, 프로그래밍 언어는 C, JAVA, Python 언어로 가정함)

정답

<필수규칙>
1. 첫 자리에 숫자를 사용할 수 없음
2. 변수 이름의 중간에는 공백을 사용할 수 없음
3. 이미 사용하고 있는 예약어(키워드)는 변수로 사용할 수 없음
4. 특수문자는 밑줄( _ ) 사용이 가능함
5. 영어는 대문자와 소문자를 구별하여 사용함
————————————————
<권장 규칙>
1. 가급적 의미가 있는 단어를 조합하여 사용할 것
2. 클래스명 첫 글자는 대문자, 메서드나 변수의 첫 글자는 소문자로 시작권장
3. 두 개 이상의 단어를 조합할 경우, 두 번째 단어부터 첫 글자는 대문자로 표기
   캐멀 표기법(camel-case)   ex) setString  

105. 개체-관계 모형(E-R Diagram)에 대해 서술하고, 개체, 관계, 속성 표시 기호를 쓰시오.

정답 : 개체:     관계:    속성:   해설   – 개체 관계 모형(Entity-Relation Diagram)

: 업무 분석 결과로 도출된 실체(엔티티)와 엔티티 간의 연결을 통해 관리자, 개발자, 사용자 모두 데이터의 흐름과 연관성을 쉽게 확인할 수 있도록 도식화한 다이어그램

106. 디지털 멀티미디어 콘텐츠의 생성, 거래, 전달, 관리, 소비하는 과정에 있어서 광범위한 네트워크 및 터미널을 통하는 여러 계층의 멀티미디어 자원을 투명하고, 상호 호환할 수 있도록 사용하기 위한 멀티미디어 프레임워크 표준 규격을 뜻하는 개념은 무엇인가? 

정답 : MPEG21(Moving Picture Experts Group 21, 엠페그21)  해설  <MPEG 관련 정리>

 MPEG1 : 1991 ISO(국제표준화기구)11172로 규격화한 영상압축기술로, CD-ROM과 같은 디지털 저장매체에 VHS 테이프 수준의 동영상과 음향을 최대 1.5Mbps로 압축·저장할 수 있다. 이 규격으로 상품화된 것이 비디오 CD CD-I/FMV이다.

 MPEG2 : 1994 ISO 13818로 규격화한 영상압축기술이다. 디지털 TV, 대화형 TV, DVD 등은 높은 화질과 음질을 필요로 하는 분야로 높은 전송속도 처리가 필요한데, 영상 및 음향을 압축하기 위해 MPEG1을 개선한 것이다. 현재 DVD 등의 컴퓨터 멀티미디어 서비스, 직접위성방송·유선방송·고화질 TV 등의 방송서비스, 영화나 광고편집 등에서 널리 쓰인다.

 MPEG3 : MPEG2를 완성한 후 후속작업으로 고화질 TV 품질에 해당하는 고선명도의 화질을 얻기 위해 개발한 기술이다. 그러나 이후에 MPEG2에 흡수·통합되어 규격으로는 존재하지 않는다.

 MPEG4 : 멀티미디어 통신을 전제로 만들고 있는 영상압축기술로 1998년 완성되었다. 낮은 전송률로 동화상을 보내고자 개발된 데이터 압축과 복원기술에 대한 새로운 표준을 말한다. 매초 64Kbps, 192Kbps의 저속 전송으로 동화상을 구현할 수 있다. 인터넷 유선망과 이동통신망 등 무선망에서 멀티미디어 통신·화상회의 시스템·컴퓨터·방송·영화·교육·오락·원격감시 등의 분야에 널리 쓰인다.

MPEG7 : 동영상 데이터 검색과 전자상거래 등에 적합하도록 개발된 차세대 동영상 압축 재생기술이다. 원하는 그림이나 영화의 한 장면 또는 특정 음악의 일부 등을 검색할 용도로 1996년부터 표준화작업이 시작되었다. 색상이나 물체의 모양에 관한 정보를 입력하는 것만으로 웹에서 필요로 하는 멀티미디어 자료를 찾을 수 있는 기술이다.

MPEG21 : MPEG1 MPEG2, MPEG4  MPEG 관련 기술을 통합하여 디지털 콘텐츠의 제작 및 유통, 보안 등의 모든 과정을 관리할 수 있게 하는 기술이다. 콘텐츠 제작자와 유통업자, 최종 사용자가 편리하게 국제적 호환성을 가지고 콘텐츠를 식별하고 관리하며 보호할 수 있도록 하는 멀티미디어 프레임워크 핵심기술의 표준화를 목표로 한다.

106. 주제 영역과 핵심 데이터 집합 간의 관계를 정의하는 모델로 전체 모델에서 중요한 골격이 되는 엔티티와 관계(Relationship) 위주의 모델을 뜻하는 용어는?

정답 : 개념 모델

107. 컴퓨터상에 가상으로 컴퓨터를 구동시키는 것으로 물리적인 하드웨어를 가상화하여, 하나의 물리적 하드웨어 상에서 여러 컴퓨터가 구동되는 것처럼 에뮬레이션 하는 것을 칭하는 용어는? 정답 : 가상 머신(Virtual Machine)

108. 물리적인 리소스들을 사용자에게 하나로 보이게 하거나, 하나의 물리적인 리소스를 여러 개로 보이게 하는 기술로 대부분의 서버는 용량의 20% 정도만을 사용하는데, (      )을/를 통해 서버의 가동률을 60~70% 이상으로 올릴 수 있다.   정답 : 가상화(Virtualization)

109. 가상화 기술요소로서 물리적으로 컴퓨터 리소스를 가상화하여 논리적 단위로 리소스를 활용할 수 있도록 하는 기술을 ( )(이)라고 하며, 여러 대의 컴퓨터 계산 및 저장능력을 이용하여 커다란 계산문제나 대용량의 데이터를 처리하고 저장하는 기술을 ( )(이)라고 한다. 그리고 물리적으로 떨어져 있는 다양한 장비들을 연결하기 위한 수단으로 중계장치(라우터, 스위치 등)의 가상화를 통한 가상 네트워크(virtual network)를 지원하는 기술을 (   )(이)라고 한다.

정답 :  컴퓨터 가상화  분산처리기술(distributed computing) 네트워크 가상화

110. SW 개발 보안의 3요소로 권한을 가진 사용자가 애플리케이션이 원하는 서비스를 지속 사용할 수 있도록 보장하는 특성은 무엇인가?

정답 : 가용성(Availability)

111. 테스트 목적에 따른 분류 중 하나로 시스템에 과다 정보량을 부과하여 과부화 시에도 시스템이 정상적으로 작동되는지를 검증하는 테스트 기법은 무엇인가?

정답 : 강도 테스트(Stress Test)

112. 프로그램 개발을 위한 개발 도구에는 구현 도구, 테스트 도구, 형상관리 도구, 빌드 도구가 있다. 형상 관리 도구에는 어떤 것이 있는가?

정답 : CVS / SVN / Git

113. 프로그램 개발을 위해서는 구현될 시스템 요구사항에 대한 명확한 이해가 필요하며, 개발 도구와 서버의 선정 및 개발에 사용되는 도구들의 사용 편의성과 성능 그리고 라이선스 등을 고려해야 한다. 개발도구 중 각각의 구성요소와 모듈에 대한 의존성 관리를 지원하며, 작성한 코드의 작성 및 배포를 수행하는 도구를 (    )이라고 한다. 그리고 개발자의 코드 작성과 디버깅, 수정 등과 같은 작업을 지원하는 도구를 (    )라고 하며, 코드의 기능 검증과 전체 품질을 높이기 위하여 테스트 계획, 수행 및 분석 작업을 지원하는 도구를 (  )이라고 한다. 또한 개발자들이 작성한 코드나 리소스 등의 산출물들은 소프트웨어 생명주기에 따라 수정, 개선 등의 버전 관리가 이루어지는데 이를 지원하는 도구를 (  )라고 한다.  정답 :  빌드 도구  구현 도구  테스트 도구 형상 관리 도구

114. 개인 정보 관련 법령을 세 가지 쓰시오.

정답 : 개인정보보호법 / 정보통신망법 (정보통신 이용촉진 및 정보보호 등에 관한 법률) / 신용정보법(신용정보의 이용 및 보호에 관한 법률) / 위치정보법(위치정보의 보호 및 이용 등에 관한 법률) / 개인정보의 안전성 확보조치 기준

115. 데이터베이스 개념 모델링 단계에서 도출한 개체의 타입과 관련 속성, 식별자 등의 정보를 개괄적으로 명세화한 정의서는 무엇인가?  정답 : 개체 정의서

116. 현실 세계에 존재하는 데이터와 그들 간의 관계를 사람이 이해할 수 있는 형태로 명확하게 표현하기 위해서 가장 널리 사용되고 있는 모델로 요구사항으로부터 얻어낸 정보들을 개체-속성-관계로 기술한 모델은 무엇인가? 정답 : 개체 관계(E-R)모델

117. 프로그램을 짤 때 동일한 목적이나 기능을 하는 변수와 함수들을 각각 하나로 묶어서 객체로 만들고 그 객체들끼리 상호 통신하면서 프로그램 전체가 돌아가도록 코드를 구성하는 프로그래밍 방식은 무엇인가?  정답 : 객체지향 프로그래밍(OPP; Object Oriented Programming)

118. 소프트웨어 과정을 테스트하는 것으로, 올바른 제품을 생산하고  있는지 여부를 검증하며, 이전 단계에서 설정된 개발 규격과 요구를 충족시키는지 판단하며 개발자 혹은 시험자의 시각으로 소프트웨어가 명세화된 기능을 올바로 수행하는지 알아보는 과정을 이르는 말은?  정답 : 검증(Verfication)

119. 프로그램 내의 전체 결정문이 적어도 한 번은 참과 거짓의 결과를 수행하는 코드 커버리지 유형은 무엇인가?  정답 : 결정 커버리지

120. 결함 우선순위는  발생한 결함이 얼마나 빠르게 처리되어야 하는지를 결정하는 척도를 말한다. 결함 우선순위를 즉시 수정되어야 하는 순서부터 우선순위가 낮은 순서로 서술하시오. 정답 : 결정적(Critical) >>높음(High) >>보통(Medium) >>낮음(Low)

81. 다음은 괄호(    )안에 들어갈 알맞은 용어를 쓰시오.

(  ①  )은 배치 작업, 복잡한 트랜잭션을 수행하는 PL/SQL문을 DB에 저장하는 기능을 제공하는 프로그램이다.

정답 : 저장된 프로시저(Stored Procedure)

82. 다음은 사용자가 상황에 맞게 기존 자료형들을 조합해서 만드는 자료형인 사용자 정의 자료형에 대한 설명이다. 괄호 (   ) 안에 들어갈 가장 적합한 용어를 쓰시오.

* (    ) : – 사용자가 기본 타입을 가지고 새롭게 정의할 수 있는 사용자 정의 자료형이다. – 멤버 변수를 사용하는 자료형이다.

* (    ) : – 서로 연관된 정수형 상수들의 집합으로 정수형 상수에 이름을 붙여서 코드를 이해하기 쉽게 해주는 사용자 정의 자료형이다.

 연속적인 값이 들어가는 자료형이다. 특정 값을 넣어 주지 않으면 1씩 늘어나기 때문에 상수 배열이라고 부르기도 한다.

* (    ) : – 모든 멤버 변수가 하나의 메모리 공간을 공유하는 사용자 정의 자료형이다. –  와 거의 유사하나 조금 더 범주가 크다고 볼 수 있다.

정답 :  구조체(Structure) 열거체(Enumeration) 공용체(Union)

83. 다음은 연계 요구사항 분석기법에 대한 설명이다. 괄호 (   ) 안에 들어갈 가장 적합한 용어를 쓰시오.

– (    )은/는 시스템 운영 환경, 성능, 보안, 데이터 발생 주기 등의 기준에 대한 점검을 통한 분석기법이다.

– (    )은/는 소속된 인원들이 자발적으로 자연스럽게 제시된 아이디어 목록을 통해분석하는 기법이다.

정답 :  체크리스트  브레인스토밍

84. 다음은 클린 코드 작성 원칙과 소스 코드 최적화 기법에 대한 설명이다. 괄호 (  ) 안에 들어갈 용어를 쓰시오.

[클린 코드 작성 원칙]

– (  ①  ) : 한 번에 한 가지 처리만 수행, 클래스/메소드/함수를 최소 단위로 분리

[소스 코드 최적화 기법]

 클래스는 하나의 역할, 책임만 수행할 수 있도록 (      )를 높이고, 크기를 작게 작성한다.

 클래스의 자료 구조, 메소드를 추상화할 수 있는 인터페이스 클래스를 이용하여, 클래스 간의 (      )을 최소화해야 한다.

정답 :  단위성 응집도 의존성

해설

[클린 코드 작성 원칙]

– (가독성) : 이해하기 쉬운 용어를 사용, 코드 작성 시 들여쓰기 기능을 사용

– (단위성) : 한 번에 한 가지 처리만 수행, 클래스/메소드/함수를 최소 단위로 분리

– (의존성) : 영향도를 최소화, 코드의 변경이 다른 부분에 영향이 없게 작성

– (중복성) : 중복된 코드를 제거, 공통된 코드를 사용

– (추상화) : 클래스/메소드/함수에 대해 동일한 수준의 추상화 구현, 상세 내용은 하위 클래스/메소드/함수에서 구현

[소스 코드 최적화 기법]

 변수나 클래스, 메서드 명을 의도가 분명한 이름(사용용도, 작업명)으로 사용한다.

 클래스는 행위의 주체로 명사나 명사구로 표현하고 함수 이름은 클래스가 행하는 행위로 동사 또는 동사구로 사용한다.

클래스는 하나의 역할, 책임만 수행할 수 있도록 (  응집도 )를 높이고, 크기를 작게 작성한다.

클래스의 자료 구조, 메소드를 추상화할 수 있는 인터페이스 클래스를 이용하여, 클래스 간의 ( 의존성 )을 최소화해야 한다.

85. 다음은 UI 품질 요구사항에 대한 설명이다. 괄호 (  ) 안에 들어갈 용어를 쓰시오.

– UI 품질 요구사항 중 사용성(Usablity)은 사용자와 컴퓨터 사이에 발생하는 어떠한 행위를 정확하고 쉽게 인지 가능함을 의미한다. 이 품질 요구사항의 사용성에는 다음과 같은 3가지 특성이 있다.

– ( ) : 소프트웨어의 논리적인 개념과 적용 가능성(응용 가능성)을 분간하는 데 필요한 사용자의 노력 정도에 따른 소프트웨어 특성

– ( ) : 소프트웨어 애플리케이션 익히는데 필요한 사용자의 노력 정도에 따른 특성

 운용성 : 소프트웨어의 활용과 운용 통제에 필요한 사용자의 노력 정도에 따른 특성

정답 :  이해성(Understandablility) 학습성(Learnability)

해설 * 사용성의 부 특성  – 이해성, 학습성, 운용성

* UI 품질 요구사항

기능성, 신뢰성, 사용성, 효율성, 유지 보수성, 이식성

86. 다음은 요구사항 분석 기법 중 개념 모델링에 대한 설명이다. 괄호 (  ) 안에 들어갈 용어를 쓰시오.

개념 모델은 문제 도메인의 (    )들과 개별 관계 및 종속성을 반영한다.

 시나리오로 나타내기 위해 (    )을 주로 사용한다.

 대부분의 모델링 표기법은 (    )을 사용한다.

정답 :  엔티티(Entity)  유스케이스 다이어그램  UML

87. 다음은 IPv4에 대한 설명이다. 괄호 (  ) 안에 들어갈 가장 정확한 용어를 쓰시오.

– IPv4는 인터넷에서 사용되는 패킷 교환 네트워크상에서 데이터를 교환하기 위한 (    )bit 주소체계를 갖는 네트워크 계층의 프로토콜이다.

– IPv4는 헤더 크기는 (    )적이고, 전송 방식에는 멀티캐스트, 유니캐스트, (      )방식이 있다.

32 가변적 브로드캐스트

88. 다음은 웹 접근성(Web Accessibility) – WCAG(Web Content Accessibility Guidelines) 2.0의 원칙에 대한 설명이다. 괄호 (  ) 안에 들어갈 가장 정확한 용어를 쓰시오.

– (    )의 용이성 : 대체 텍스트(Text Alternatives), 실시간 미디어 대체 수단, 융통성, 식별성의 세부 지침이 있다.

– (    )의 용이성 : 키보드 접근성, 충분한 시간 제공 및 시간 조절기능, 발작 예방, 탐색 가능성의 세부 지침이 있다.

– (    ) : 가독성, 예측 가능성, 입력 지원의 세부 지침이 있다.

 견고성 : 호환성의 세부 지침이 있다  보조기술을 포함한 현재 및 미래의 사용자 응용 프로그램과의 호환성을 극대화해야 한다는 원칙

정답 :  인식  운용 이해성 해설  : * 웹 접근성 : 인식의 용이성, 운용의 용이성, 이해성, 견고성

89. 다음은 소프트웨어 구조에서 모듈 간의 관련성을 측정하는 척도인 결합도의 유형이다. 괄호 (   )안에 들어갈 가장 올바른 용어를 쓰시오.

– (  ①  ) 결합도  : 한 모듈이 다른 모듈 내부에 있는 변수나 기능을 직접 참조하거나 사용하는 경우의 결합도이다.

– (  ②  ) 결합도 : 모듈 간의 인터페이스로 배열이나 객체, 구조 등이 전달될 때의 결합도이다. 

– (  ③  ) 결합도 : 단순 처리할 대상인 값만 전달되는 것이 아니라 어떤 모듈이 다른 모듈 내부의 논리적인 흐름을 제어하기 위해서 어떻게 처리를 해야 한다는 (    ) 요소까지 전달하는 결합도이다.

정답 :  내용  스탬프  제어

90. 효율적인 정보 시스템 개발을 위한 코드 라이브러리, 애플리케이션 인터페이스(Application Interface), 설정 정보 등의 집합으로서 재사용이 가능하도록 소프트웨어 구성에 필요한 기본 뼈대를 제공하는 프레임워크(Framework)의 특징에 대한 설명이다. 괄호 (   )안에 들어갈 가장 올바른 용어를 쓰시오.

모듈화(modularity) : 프레임워크는 인터페이스에 의한 캡슐화를 통해서 모듈화를 강화하고 설계와 구현의 변경에 따르는 영향을 극소화하여 소프트웨어의 품질을 향상시킨다.

  재사용성(reusability) : 프레임워크가 제공하는 인터페이스는 반복적으로 사용할 수 있는 컴포넌트를 정의할 수 있게 하여 재사용성을 높여 준다. 또한 재사용성은 소프트웨어의 품질을 향상시킬 뿐만 아니라 개발자의 생산성도 높여 준다.

 – (    )  : 프레임워크는 다형성(polymorphism)을 통해 애플리케이션이 프레임워크의 인터페이스를 넓게 사용할 수 있게 한다. 또한 애플리케이션 서비스와 특성을 변경하고 프레임워크를 애플리케이션의 가변성으로부터 분리함으로써 재사용성의 이점을 얻게 한다.

 – (    )  : 프레임워크 코드가 전체 애플리케이션의 처리 흐름을 제어하여 특정한 이벤트가 발생할 때 다형성(Polymorphism)을 통해 애플리케이션이 확장한 메소드를 호출함으로써 제어가 프레임워크로부터 애플리케이션으로 반대로 흐르게 한다.

정답 :  확장성(Extensibility)  제어의 역흐름(Inversion of control)

해설

* 소프트웨어 프레임워크의 특징

모듈화, 재사용성, 확장성, 제어의 역흐름

91. 다음은 UI 시나리오 문서 작성의 요건이다. 괄호 (  ) 안에 들어갈 가장 정확한 용어를 쓰시오.

* (     ①     )

– UI 시나리오는 누락이 없어야 하고, 최대한 빠짐없이 가능한 한 상세하게 기술한다.

 시스템 기능보다 사용자의 태스크에 초점을 맞춰 기술한다.

 * (     ②     )

 문서를 쉽게 읽을 수 있어야 하고(문서 템플릿과 타이포그래피), 표준화된 템플릿을 작성하여 적용한다.

 버전의 넘버링은 v1.0, v2.0 등과 같이 일관성 있게 하고, 시각적인 효과를 위한 하이라이팅은 일관성 있게 활용한다.

정답 :  완전성(Complete)  가독성(Readable)

해설

* UI 시나리오 문서 작성의 요건

완전성, 일관성, 이해성, 가독성, 추적 용이성, 수정 용이성

* 일관성(Consistent)

 서비스에 대한 목표, 시스템 및 사용자의 요구사항이 일관성이 있어야 하고, 모든 문서의 UI 스타일(Flow 또는 Layout)을 일관적으로 구성한다.

* 이해성(Understandable)

 처음 접하는 사람도 이해하기 쉽도록 구성하고 설명해야 하고, 이해하지 못하는 추상적인 표현이나 이해하기 어려운 용어는 사용하지 않아야 한다.

* 수정 용이성(Modifiable)

 쉽게 변경이 가능해야 하고, 수정 또는 개선 사항을 시나리오에 반영함에 있어 쉽게 적용할 수 있어야 한다.

 동일한 수정 사항을 위해 여러 문서를 편집하지 않도록 한다.

* 추적 용이성(Traceable)

 쉽게 추적이 가능해야 하고, 변경 사항들이 언제, 어디서, 어떤 부분들이, 왜 발생하였는지 추적이 쉬워야 한다.

92. 아래는 UML 다이어그램의 관계를 표현한 그림이다. 가장 올바른 관계의 유형을 쓰시오.

정답 : 일반화 관계

해설

* 일반화 관계

상위 개념과 하위 개념의 관계를 나타냄

보다 일반적인 개념을 상위(부모), 보다 구체적인 개념을 하위(자식)이라고 함

객체지향 개념에서는 상속관계라고 말함

한 클래스가 다른 클래스를 포함하는 상위 개념일 때 UML에서는 일반화 관계로 모델링함

* 참고

객체지향 기법에서 클래스들 사이에 ‘부분-전체’ 관계 또는 ‘부분’의 관계는 집단화 관계

93. 다음이 설명하는 용어를 쓰시오.

* 릴레이션 조작 시 데이터들이 불필요하게 중복되어 예기치 않게 발생하는 곤란한 현상

* 데이터의 중복성으로 인해 릴레이션을 조작할 때 발생하는 비합리적 현상

정답 : 이상 현상(Anomaly)

94. 다음은 학생 테이블이다. ‘이’씨 성을 가진 사람의 학번을 출력하는 쿼리를 작성하시오.

<학생>

학번이름
2001 2002 2003 2004 2005 2006안창호 김정호 김유신 허준 이성계 이순신

<결과>

학번
2005 2006

정답  : SELECT 학번 FROM 학생 WHERE 이름 LIKE ‘이%’;

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

( )는 재해복구시간목표이다. 재해로 인하여 서비스가 중단되었을 때 서비스를 복구하는데 걸리는 최대 허용시간이다.

( )는 재해복구시점목표이다. 재해로 인하여 서비스가 중단되었을 때 유실을 감내할 수 있는 데이터 손실 허용시점이다.

정답 :  RTO(Recovery Time Objective) RPO(Recovery Point Objective)

96. 다음은 파이썬 코드이다. 출력 결과를 쓰시오.

a = {‘일본’, ‘중국’, ‘한국’}

a.add(‘베트남’)

a.add(‘중국’)

a.remove(‘일본’)

a.update({‘홍콩’, ‘한국’, ‘태국’})

print(a)

정답

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

참고로 집합형이기 때문에 순서는 상관없습니다.

97. 서술형 문제

– 1. 구축된 시스템이 이해관계자가 기대한 요구사항에 부합하는지 확인하기 위한 기법으로 인스펙션(Inspection)이 자주 활용된다. 인스펙션의 개념에 대해 서술하시오.

– 2. 웹 서비스 방식의 유형 중 WSDL(Web Service Description Language)의 개념에 대해 서술하시오.

– 3. 사용자 인터페이스(UI)에서 활용되는 프로토타입(Prototype)의 개념에 대해 서술하시오

정답

1. 소프트웨어 요구, 설계, 원시 코드 등을 저작자 외의 다른 전문가 또는 팀이 검사하여 오류를 찾아내는 공식적 검토 방법이다. (정적 테스트 기법)

2. 웹 서비스명, 제공 위치, 메시지 포맷, 프로토콜 정보 등 웹 서비스에 대한 상세 정보 XML 형식으로 기술한 언어 또는 파일이다.

3. 컴퓨터 시스템이나 소프트웨어의 설계 또는 성능, 구현 가능성, 운용 가능성을 평가하거나 요구사항을 좀 더 잘 이해하고 결정하기 위하여 전체적인 기능을 간략한 형태로 실제로 구현한 시제품이다.

98. 서술형 문제

– 1. DRM(Digital rights management)에 대하여 서술하시오.

– 2. 웹 서비스 방식의 유형 중 UDDI(Universal Description, Discovery and Integration)의 개념에 대하여 서술하시오.

– 3. 테스트 드라이버(Driver)에 대하여 서술하시오.

정답

1. 디지털 콘텐츠에 대한 권리정보를 지정하고 암호화 기술, 크랙 방지 기술을 이용하여 허가된 사용자의 허가된 권한 범위 내에서 콘텐츠의 이용이 가능하도록 통제하는 기술이다.

2. 웹 서비스에 대한 정보인 WSDL을 등록하고 검색하기 위한 저장소로 공개적으로 접근, 검색이 가능한 레지스트리이자 표준이다.

3. 상향식 통합 테스트에서 데이터의 입력과 출력을 확인하기 위해서 하위 모듈을 호출하는 상위의 더미 모듈이다.

99. 서술형 문제

– 1. SAN (Storage Area Network)에 대해서 서술하시오

– 2. IPSEC에 대해서 서술하시오.

– 3. 트랜잭션의 격리성(isolation)에 대해서 서술하시오.

정답

1. 서버와 스토리지를 광케이블  광 채널 스위치를 통해 근거리 네트워크 환경을 구성하여 빠른 속도로 데이터를 처리할 수 있는 특수 목적용 고속 네트워크이다.

서버와 스토리지를 저장 장치 전용 네트워크로 상호 구성하여 고가용성, 고성능, 융통성, 확장성을 보장하고 데이터를 블록 단위로 관리하는 기술

2. IP패킷을 암호화하고 인증하는 안전한 IP 통신을 위한 OSI 3계층 보안 프로토콜

IP계층(3계층)에서 무결성과 인증을 보장하는 인증헤더(AH)와 기밀성을 보장하는 암호화(ESP)를 이용하여 양 종단 간(End Point) 구간에 보안 서비스를 제공하는 IP 계층의 보안 프로토콜

 3. 트랜잭션 실행 중 생성하는 연산의 중간 결과를 다른 트랜잭션이 접근하지 못하도록 보장하는 트랜잭션의 특징이다.

100. 서술형 문제

– 1. 빅데이터(Big Data)의 개념에 대하여 서술하시오.

– 2. 인공지능(AI; Artificial Intelligence)의 개념에 대하여 서술하시오.

– 3. AJAX의 개념에 대하여 서술하시오.

– 4. 스머프(Smurf) 공격기법에 대하여 서술하시오.

– 5. JDBC(Java Database Connectivity) 개념을 간략히 서술하시오.

– 6. 형상관리의 개념에 대하여 서술하시오.

– 7. 비트락커(BitLocker)의 개념에 대하여 서술하시오.

정답

1. 빅데이터는 시스템, 서비스, 조직(회사) 등에서 주어진 비용, 시간 내에 처리 가능한 데이터 범위를 넘어서는 수십 페타 바이트(PB) 크기의 데이터이다.(정형, 비정형, 반정형 데이터 포함)

2. 인공지능이란 인간의 지적능력을 인공적으로 구현하여 컴퓨터가 인간의 지능적인 행동과 사고를 모방할 수 있도록 하는 소프트웨어이다.

3. 자바스크립트를 사용하여 웹 서버와 클라이언트 간 비동기적으로 XML 데이터를 교환하고 조작하기 위한 웹 기술이다.

4. 출발지 주소를 공격 대상의 IP로 설정하여 네트워크 전체에게 ICMP Echo 패킷을 직접 브로드캐스팅(Directed Broadcasting)하여 마비시키는 공격기법이다.

5. 자바(Java)에서 데이터베이스를 사용할 수 있도록 연결해주는 응용 프로그램 인터페이스이다.

6. 소프트웨어 개발을 위한 전체 과정에서 발생하는 모든 항목의 변경 사항을 관리하기 위한 활동

소프트웨어의 개발 과정에서 소프트웨어의 변경 사항을 관리하기 위해 개발된 일련의 활동

7. 마이크로소프트 윈도즈 운영 체제에 포함되어 볼륨 전체의 암호화를 제공함으로써 중요자료를 보호하도록 설계되어진 완전한 디스크 암호화 기능이다.

61.다음 괄호안에 알맞은 용어를 쓰시오. (단, 학번, 학년은 숫자형, 이름과 학과는 문자형이다)

student 테이블

학번이름학과학년
20191001강은미컴퓨터학과2
20192002김정미정보통신학과2
20183003홍길동정보보호학과3
20174004장길산인공지능학과4

student 테이블에 학생을 추가한다.

insert  (        ) student values (20201001, 박신입, 컴퓨터학과, 1);

정답 : into

62.다음 괄호안에 조건을 만족하는 값을 쓰시오. (단, 학번, 학년은 숫자형, 이름과 학과는 문자형이다)

student테이블

학번이름학과학년
20191001강은미컴퓨터학과2
20192002김정미정보통신학과2
20183003홍길동정보보호학과3
20174004장길산인공지능학과4

student 테이블에서 홍길동 학생을 삭제한다.

deletefrom student where 학번 = ‘(        )’

정답 : 20183003

63.다음 테이블의 차수와 카디널리티 갯수를 구하시오. (단, 학번, 학년은 숫자형, 이름과 학과는 문자형이다)

student테이블

학번이름학과학년
20191001강은미컴퓨터학과2
20192002김정미정보통신학과2
20183003홍길동정보보호학과3

차수 : (  ①  ) 

카디널리티 : (  ②  )

정답 :  4 3

해설

 차수(degree) : 하나의 릴레이션에 속성(열)의 전체 개수를 릴레이션의 차수라고 한다.

카디널리티(cardinality) : 하나의 릴레이션에서 투플(행)의 전체 개수를 릴레이션의 카디널리티라고 한다.

64. 다음은 파이썬 소스 코드이다. 출력 결과를 쓰시오.

a = 5

for i in range(1, a+1):

  if a % i == 0:

    print(i)

정답

1

5

 해설

– 5의 약수를 구하는 코드

파이썬에서 print()는 자동으로 개행 ( 개행을 하기 싫은 경우 print(i, end=”) => 작은 따옴표 2개 )- range(1, a+1) 이면 1부터 a+1 미만>> 1 i <(a+1)

65. 다음은 C언어 소스코드이다. 출력 결과를 쓰시오.

#include<stdio.h>

intnum(int a, int b){

    if( a > b ) {

        return a;

    }

    else {

       return b;

    }

}

voidmain(){

    printf(“%d\n”, num(10, 20) + num(30, 20));

}

정답 : 50

66. 다음은 C++ 소스코드이다. 출력 결과를 쓰시오.

#include<iostream>

voidmain(){

  int arr[2][2];

  int count = 0;

  for(int i=0; i<2; i++){

    for(int j=0; j<2; j++){

      arr[i][j] = ++count;

    }

  }

  for(int i=0; i<2; i++){

    for(int j=0; j<2; j++){

      std::cout << arr[j][i] << ” “;

    }

  }

}

정답 : 1 3 2 4

해설

i   j   count
0 0   1 
0 1   2
1 0   3
1 1   4

arr[j][i]

1 3 2 4

67. 다음은 C언어 소스코드이다. 출력 결과를 쓰시오.

#include<stdio.h>

voidmain(){

  int i, j;

  int temp;

  int a[5] = {5, 4, 3, 2, 1};

  for(i=1; i<2; i++){

    j=i-1;

    while((a[j] > a[j+1]) && (j>=0)){

      temp=a[j];

      a[j]=a[j+1];

      a[j+1]=temp;

      j–;

    }

  }

  for(i=0; i<5; i++){

    printf(“%d, “,a[i]);

  }

}

정답 : 4, 5, 3, 2, 1,

해설

삽입 정렬을 1회전 한 후의 결과

68. 다음은 테스트 유형에 대한 설명이다. 괄호 (  ) 안에 들어갈 테스트를 쓰시오.

– (   ①    )  : 사용자가 실제로 사용될 환경에서 요구사항들이 모두 충족되는지 사용자의 입장에서 확인하는 테스트로 알파, 베타 테스트가 있다.

– (   ②    ) : 시스템에 과다 정보량을 부과하여 과부하 시에도 시스템이 정상적으로 작동되는지를 검증하는 테스트 기법이다.

– (   ③    ) : 오류를 제거하거나 수정한 시스템에서 오류 제거와 수정에 의해 새로이 유입된 오류가 없는지 확인하는 일종의 반복 테스트 기법이다.

정답 :  인수테스트  강도(Stress)테스트  회귀(Regression)테스트

해설

* 테스트 종류

성능(Performance) Test : 시스템의 요소가 특정 상황에서 어느 정도의 성능을 보이는지를 측정하는 테스트

부하(Load) Test

: 임계치의 한계에 도달할 때까지 시스템에 부하를  꾸준히 증가시키면서 진행하는 테스트

발생시키는 부하는 실제 시스템에 적용될 예상 트래픽

스트레스(Stress) Test : 시스템이 과부하상태에서 어떻게 작동하는지를 검사하는 테스트

69. 다음 설명은 인터페이스 구현 검증 도구에 대한 설명이다. 괄호 (  ) 안에 들어갈 구현 검증 도구를 쓰시오

– (  ①  ) : 웹 기반 테스트 케이스 설계/실행/결과 확인 등을 지원하는 테스트 프레임워크로 사용자가 테스트 케이스 테이블을 작성하면 빠르고 편하게 자동으로 원하는 값에 대해 테스트를 할 수 있는 장점이 있음

– (  ②  ) : 루비(Ruby) 기반 웹 애플리케이션 테스트 프레임워크로 모든 언어 기반의 웹 애플리케이션 테스트와 브라우저 호환성 테스팅 가능

정답 :  FitNesse ② watir

해설

* 인터페이스 구현 검증 도구

 xUnit

:JAVA(Junit), C++(Cppunit), .Net(Nunit)  다양한 언어를 지원하는 단위 테스트 프레임워크

 STAF

: 서비스 호출 및 컴포넌트 재사용 등 다양한 환경을 지원하는 테스트 프레임워크

 FitNesse

: 웹 기반 테스트케이스 설계, 실행, 결과 확인 등을 지원하는 테스트 프레임워크

 NTAF

: FitNesse의 장점인 협업 기능과 STAF의 장점인 재사용 및 확장성을 통합한 NHN(Naver)의 테스트 자동화 프레임워크

 Selenium

: 다양한 브라우저 및 개발 언어를 지원하는 웹 애플리케이션 테스트 프레임워크

 watir

: Ruby를 사용하는 애플리케이션 테스트 프레임워크

* 참고 >재사용

함수 재사용 : Function 단위 소스코드 재사용

객체 재사용 : Class 단위 소스코드 재사용

컴포넌트 재사용 : 컴포넌터의 인터페이스를 통해 통신

라이브러리 : 공통으로 사용될 수 있는 특정한 기능을 모듈화한 기법

70. 다음은 프로세스 스케줄링 알고리즘에 대한 설명이다. 괄호(   ) 안에 들어갈 가장 올바른 용어를 쓰시오.

– (   ①   ) :  FCFS(FIFO)와 라운드 로빈 스케줄링 기법을 혼합한 것으로, 새로운 프로세스는 높은 우선순위를 가지고 프로세스의 실행시간이 길어질수록 점점 낮은 우선순위 큐로 이동하고 마지막 단계는 라운드 로빈 방식을 적용하는 프로세스 스케줄링 알고리즘이다.

– (   ②   ) : 프로세스가 도착하는 시점에 따라 그 당시 가장 작은 서비스 시간을 갖는 프로세스가 종료 시까지 자원을 점유하는 방식으로 준비 큐 작업 중 가장 짧은 작업부터 수행하고, 평균 대기시간이 최소가 되는 프로세스 스케줄링 알고리즘이다.

정답 :  다단계 피드백 큐(Multi Level Feedback Queue)  SJF(Sortest Job First)

해설

선점 스케줄링 : 시분할 시스템에서 타임 슬라이스가 소진되었거나, 인터럽트나 시스템 호출 종료 시에 더 높은 우선 순위 프로세스가 발생 되었음을 알았을 때, 현 실행 프로세스로부터 강제로 CPU를 회수하는 것을 말한다.

-RR : 시분할시스템에서 사용됨,할당되는 시간이 클 경우 FCFS와 비슷해짐

-SJF기법을 선점형으로 바꾼 스케줄링

선점우선순위 : 비선점 우선순위를 선점형으로 바꾼 것

다단계 큐:프로세스의 우선순위에 따라 시스템 프로세스, 대화형 프로세스, 일괄처리 프로세스등으로 나누어 준비상태 큐를 상위 중위 하위단계로 배치

다단계 피드백 큐 : 다단계 큐의 단점 보안, 큐마다 타임아웃을 설정하여 타임아웃 초과시 우선순위가 낮은 다음 단계 큐로 이동

비선점 스케줄링 :  프로세스가 자원을 할당 받았을 경우, 자원을 스스로 반납할 때까지 계속 그 자원을 사용하도록 허용하는 정책이다. 적용할 때는 현재 프로세스를 사용하는 프로세스가 생성되거나 현재 프로세스 작업을 종료할 때 입출력하기 위해 스스로 프로세스를 반납할 때까지 우선 순위가 높은 프로세스의 비선점 정책을 적용하면 프로세스의 종료 시간을 비교적 정확하게 예측할 수 있다.

  • 우선순위 알고리즘 :  프로세스에게 우선 순위를 부여하여 순위가 높은 순서대로 처리하는 방법
  • 기한부(Deadline) 스케줄링 : 작업들이 명시된 시간이나 기한 내에 완료되도록 계획. 사전에 정확한 자원 및 수행 시간을 예측하기 어려움.
  • FCFS(First-Come-First-Served) : CPU 스케줄링 알고리즘 중에 제일 간단한 알고리즘으로 CPU를 요구하는 순으로 할당하는 방법이며 FIFO방식인 큐(Queue)로써 구현된다.
  • SJF(Shortest Job First) : 각각의 작업이 다음 CPU버스트(Burst) 시간을 중심으로 CPU가 사용 가능할 때 버스트(Burst) 시간이 가장 작은 작업에 할당하는 기법이다.

71. 다음은 애플리케이션 테스트에 대한 설명이다. 괄호(   ) 안에 들어갈 가장 올바른 테스트 유형을 쓰시오.

김PM은 온라인 예약시스템 개발 PM을 맡고 있다. 사용자 요구사항에 따라 시스템에 고의로 실패를 유도하고, 온라인 예약시스템의 정상적 복귀 여부를 확인하는 테스트를 수행해야 한다. 김PM이 수행해야 하는 테스트는  (      )이다.

이대리는 내부 인트라넷 급여시스템 개발자이다. 일정에 맞춰 커버리지 테스트를 수행해야 한다. 이대리는 전체 조건식뿐만 아니라 개별 조건식도 참 한 번, 거짓 한 번 결과가 되도록 수행하는 커버리지 테스트를 수행해야 한다. 이 코드 커버리지 유형은 (      )이다.

정답 :  회복 테스트   조건/결정 커버리지

해설

* 소프트웨어 테스트 유형

회귀 테스트 : 오류를 제거하거나 수정 후 새롭게 유입된 오류가 있는지 테스트

회복 테스트 : 고의로 실패 유도 후 정상 복귀 여부 확인하는 테스트

안전 테스트 : 소스 내의 보안적인 결함을 확인

강도 테스트 : 과부하시 정상적인 동작을 하는지 확인하는 테스트

성능 테스트 : 응답시간, 특정시간, 처리량 등 시스템 반응 속도 테스트

구조 테스트 : 시스템 내부의 경로나 소스코드 복잡도 테스트

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

* 테스트 커버리지

유형 : 구문, 결정, 조건, 조건-결정, 변경조건-결정, 다중 조건

결정 커버리지

: 프로그램 내의 전체조건식이 적어도 한 번은 참과 거짓의 결과를 수행하는 테스트 케이스

조건 커버리지

: 전체 조건식과 결과와 관계없이 각 개별 조건식이 참/거짓 한 번만 모두 갖도록 개별 조건식을 조합하는 테스트 커버리지

조건-결정 커버리지

: 결정 명령문 내의 각 조건(개별조건)과 전체조건식이 적어도 한 번은 참과 거짓의 결과를 수행하는 테스트 케이스

72. 다음 지문은 OSI 7 계층 중 어느 계층인지 한글 또는 영어로 쓰시오.

– (   ①   )계층은 여러 개의 노드를 거칠 때마다 경로를 찾아주는 역할을 하는 계층이다. 

– (     )계층은 라우팅, 패킷 포워딩등을 수행한다.

주요 프로토콜로는 IP, ARP, BGP등이 있다. 전송단위는 패킷(Packet)이다.

정답 : 네트워크 또는 Network

73. 다음이 설명하는 용어를 쓰시오.

컴퓨터에 데이터를 삽입, 삭제, 수정하게 해주는 논리적인 공간구조를 의미한다.
자료의 형태에 따라 단순 구조, 선형 구조, 비선형 구조, 파일 구조로 분류할 수 있다.

정답 : 자료구조

74. 연계 방식 중 현재 페이지에서 다른 부분으로 가거나 전혀 다른 페이지로 이동하게 해주는 속성으로 <a href=”url”> Link 대상 </a>와 같은 방식으로 사용하는 기술은 무엇인지 쓰시오.

정답 : 하이퍼링크

75. 다음은 애플리케이션 테스트에 대한 설명이다. 올바르게 설명한 항목의 번호를 쓰시오.

화이트박스 테스트가 끝난 후 더 나은 품질을 기대하기 위해서는 블랙박스 테스트를 실시해서 결함을 많이 검출해야 한다.

리그레션 테스트는 자동화에 적합한 테스트 타입이다.

디버깅은 테스트의 일종이 아니다.

타 시스템과 연동되는 테스트는 테스트 수행 단계에서 단위테스트 단계에 속한다.

정답 : , ③

해설

화이트박스 테스트와 블랙박스 테스트의 수행 순서와 결함 검출률은 아무런 상관이 없다. 독립적으로 수행하면 된다.

리그레션 테스트(회귀 테스트)는 반복적 성향이 강해서 자동화 테스트에 적합하다.

디버깅(Debugging)은 개발 활동이다.

타 시스템과 연동 테스트는 통합 테스트 단계에서 수행한다.

* 애플리케이션 테스트

시스템 테스트, 인수테스트, 통합테스트, 단위테스트

시스템 테스트 : 개발된 애플리케이션을 서버에 설치한 이후에 서버에서 잘 동작하고 DB연결도 잘되도록 하는 것

통합 테스트 : 모듈 결합 후 인터페이스 테스트, 전체 기능 동작 테스트

76. 다음은 보안 공격 기법에 대한 설명이다. 괄호(    )안에 들어갈 공격 기법을 쓰시오.

– (    ) : 출발지 주소를 공격 대상의 IP로 설정하여 네트워크 전체에 ICMP Echo 패킷을 직접 브로드캐스팅(Directed Broadcasting)하여 타켓 시스템을 마비시키는 공격기법이다.

– (    ) : 요청 헤더의 Content-length를 비정상적으로 크게 설정하여 메시지 바디 부분을 매우 소량으로 보내 계속 연결 상태를 유지시켜 자원을 소진시키는 공격기법이다.

– (    ) : 공격자가 IP Fragment Offset 값을 서로 중첩되도록 조작하여 전송하고, 이를 수신한 시스템이 재조합하는 과정에서 오류가 발생, 시스템의 기능을 마비시키는 공격기법이다.

정답 :  스머프(Smurf)  RUDY(Slow HTTP POST DoS) ③ 티어드롭(Tear Drop)

해설

* Smurfing

– ICMP Echo Request 메시지(Ping 요청)의 IP를 희생자 IP로 스푸핑한 후 이를 증폭 네트워크에 직접 브로드캐스트하여 외부 ICMP Echo Reply(Ping 응답)를 발생시켜 희생자에게 대량의 트래픽을 발생시키는 Dos 공격

* Land Attack

 패킷을 전송할 때 송수신 IP주소를 모두 공격 대상 IP주소로 하여 공격 대상에게 전송하는 것

* Smishing (SMS phishing, 스미싱)

– SMS + Phishing의 합성어

* Qshing

– QR코드 + Phising 합성어

* 서비스 공격 유형

 Dos(서비스 거부) : 표적이 되는 서버의 자원을 고갈시킬 목적으로 다수 공격자 or 시스템에서 대량의 데이터를 한 곳에 집중적으로 전송함

 DDoS(분산 서비스 거부) : 여러 곳에 분산된 공격 지점에서 한 곳의 서버에 대한 분산 서비스 공격을 수행함

 Ping of Death(죽음의 핑) : Ping 명령을 전송할 때 패킷의 크기를 인터넷 프로토콜 허용범위 이상으로 전송하여 공격 대상의 네트워크를 마비시키는 서비스 거부 공격

 SYN Flooding : TCP는 신뢰성 있는 전송을 위해 3-way-handshake를 거친 후 데이터를 전송하는데 SYN은 공격자가 가상의 클라이언트로 위장 3WH을 의도적으로 중단, 서버가 대기상태에 놓여 정상 서비스를 못하게 하는 공걱 방법

 Land : 패킷을 전송할 대 송수신 IP주소를 모두 공격 대상 IP주소로 하여 공격 대상에게 전송하는 것, 공격 대상은 송신IP주소가 자신이기 때문에 자신에게 무한히 응답하게 되는 공격

77. 다음 괄호(    )안에 들어갈 가장 알맞은 용어를 쓰시오.

(  ①  )은 특정 서버에 대해서 자체 기준으로 테스트를 수행하여 나온 결과중 1분간 최대 처리건수를 나타낸 수치를 말한다. 가장 객관적으로 하드웨어 성능을 나타내는 지표로 사용된다. 정답 : tpmC ( Transaction ProcessingPerfomance Council )

78. 다음은 애플리케이션 성능 개선 방안에 대한 설명이다. 괄호(    )안에 들어갈 용어를 쓰시오.

1. 소스 코드 최적화 기법 적용

 인터페이스를 통해 (    )된 자료 구조를 구현하여 의존성을 최소화한다.

2. System.out.println( ) 사용 제외

 파일, 콘솔에 로그를 남기면 애플리케이션 대기 시간이 발생된다.

 이에 대응하여 (    )를 사용함으로써 성능을 개선한다.

정답 :  추상화  Log4j 로거

79. 다음 괄호(    )안에 들어갈 가장 알맞은 용어를 쓰시오.

(  ①  ) 자바(Java)에서 데이터베이스를 사용할 수 있도록 연결해주는 응용 프로그램 인터페이스이다.

(    ) 데이터베이스를 액세스하기 위한 표준 개방형 응용 프로그램 인터페이스이다.

정답 :  JDBC ( Java Database Connectivity ) ② ODBC ( Open Database Connectivity )

80. 다음은 애플리케이션 배포 도구를 활용한 배포 프로세스와 패키징 도구에 대한 설명이다. 괄호(    )안에 들어갈 용어를 쓰시오.

 배포 프로세스 : 빌드 내용 식별  (    ①    )  DRM 흐름을 확인하여 패키징 수행  패키징 도구 설치  배포 작업  정상 배포 확인

 패키징 도구 : 저작권 보호를 위해 크랙 방지를 제공하는 패키징 도구 구성요소 중 역공학 방지를 위해 프로그램의 소스 코드를 알아보기 힘든 형태로 바꾸는 기술을 (        )라고 한다.

정답 :  패키징 도구 식별(선정)   코드 난독화(Code Obfuscation)

41. 다음은 네트워크의 전송 기술에 대한 설명이다. 해당하는 용어를 쓰시오.
* 하나의 송신자가 같은 서브 네트워크 상의 모든 수신자에게 데이터를 전송하는 기술이다.

정답 : 브로드 캐스트

해설

* 유니캐스트(Unicast)

– MAC 기반으로 상대측 IP를 목적지로 하는 일대일 통신방식

* 브로드캐스트(Broadcast)

자신의 호소트가 속해 있는 네트워크 전체를 대상으로 패킷을 전송하는 일대다 통신방식

데이터를 수신할 필요가 없는 호스트들에게도 데이터가 전송되기 때문에 불필요한 인터럽트가 발생되며, 자신이 속한 네트워크에만 한정되고 라우터를 경유하지 못하는 단점이 있다.

* 멀티캐스트(Multicast)

하나 이상의 송신자들이 특정한 하나 이상의 수신자들에게 데이터를 전송하는 방식

자신이 데이터를 받기를 원하는 특정 호스트들에게만 보내느 것이 가능하지만 스위치나 라우터가 이 기능을 지원해줘야함

42. 다음은 자바 소스코드이다. 출력값을 쓰시오.

public class Exec{

     public static void main(String []args){

        int x = 3;

        System.out.println(++x);

        System.out.println(x++);

     }

}

정답

4

4

43. 다음 괄호에 알맞은 용어를 쓰시오.

(   ①   ) 2010 6월에 발견된 웜 바이러스이다. 지멘스의 SCADA 시스템만을 감염시켜 장비를 제어하고 감시하는 특수한 코드를 내부에 담고 있다. (      ) 장비를 프로그램하는  사용되는 PLC를 감염시켜 장비의 동작을 변경한다.

정답 : 스턱스넷(Stuxnet)

해설

* 스턱스넷(Stuxnet)

핵 시설을 겨냥한 바이러스

공격자는 폐쇄망인 핵시설 주변에 고의로 악성코드가 담긴 USB를 유포함

폐쇄망 핵시설 주변에서 USB를 주운 엔지니어가 의심없이 PC에 USB를 꽂으면서 스턱스넷이 핵시설 시스템을 공격하면서 전세계적인 이슈가 되었음

* 참고

– SCADA 시스템 : 산업 제어 시스템, 원거리에 있는 설비들을 집중 감시하거나 제어하기 위한 시스템

44.  1970년 IBM에 근무하던 코드에 의해 처음 제안되었고, 관계형 데이터베이스를 구성하는 개체나 관계를 모두 릴레이션이라는 표로 표현한다. 장점으로는 간결하고 보기 편리하며, 다른 데이터베이스로의 변환이 용이하다. 단점으로는 성능이 떨어진다. 이것은 무엇인가? 정답: 관계형 데이터베이스

구조 : 튜플 : 릴레이션을 구성하는 가각의 행,속성의 모임, 파일구조에서 레코드와 같은 이미, 튜플의 수를 카디널리티 또는 기수, 대응수라함)

속성 : 가장 작은 논리적 단위, 데이터필드에 해당, 개체의 특성 기술, 디그리 또는 차수라 한다.

45. 다음 괄호에 알맞은 용어를 쓰시오

(   ①   ) 정보를 수집한 후, 저장만 하고 분석에 활용하고 있지 않는 다량의 데이터이다. (      )는 처리되지 않은 채 미래에 사용할 가능성이 있다는 이유로 삭제되지 않고 방치되어 있어, 저장 공간만 차지하고 보안 위험을 초래할 수 있다.

정답 : 다크 데이터

해설

* 참고

스몰데이터 : 개인위 취향, 필요, 건강상태, 생활양식 등 사소한 행동에서 나오는 정보들 ( 셜록홈즈 )

빅데이터 : 3VC(Volume, Velocity, Variey, Complexity)

스마트데이터 : 3A(Agile, Actionable, Accurate)

46. 다음 괄호에 알맞은 용어를 쓰시오

– (   ①   ) 잃어버린 스마트폰을 주운 사람이 해당 스마트폰을 켜서 이동통신망 혹은 와이파이에 접속하면 이용자(원 소유자)가 원격으로 기기를 사용 불능 상태로 만들 수 있는 기술이다.

워너크라이 랜섬웨어가 세계 곳곳으로 막 퍼져나가던 때에 멀웨어테크라는 영국 보안전문가가 워너크라이 내에서 발견한 도메인을 정식으로 등록하면서 랜섬웨어 확산이 멈추는 효과가 발생했기에 (      ) 라고 불리기 시작했다.

정답 : 킬 스위치(Kill switch)

47. 다음 괄호에 알맞은 용어를 쓰시오.

(       )은/는 특수 목적을 가진 조직이 하나의 표적에 대해 다양한 IT 기술을 이용해서 지속적으로 정보를 수집하고 취약점을 파악하여 침투, 검색, 수집, 유출하는 공격기법이다. 정답 : APT(Advanced Persistent Threat) 해설 – 침투, 검색, 수집, 유출의 포인트

48. 다음은 결함 우선순위와 결함 조치 상태에 대한 설명이다. 괄호(  ) 안에 들어갈 용어를 쓰시오.

결함 우선 순위(   ①   ) : 24시간 안에 즉시 수정해야 하고, 이슈가 발생하면 일반적으로 전체 기능이 동작하지 않고, 어떤 테스트도 더 이상 진행할 수 없을 때 부여하는 우선순위
결함 조치 상태(   ②   ) : 오류가 보고되었지만 아직 분석되지 않은 상태

정답 :  결정적(Critical)  열린(Open) 해설

* 결함 우선 순위

결정적(Critical), 높음(High), 보통(Medium), 낮음(Low)

* 결함 조치 상태(=오류 목록 상태)

열린(Open): 오류가 보고되었지만 아직 분석되지 않은 상태

할당된(Assigned): 수정을 위해 오류를 개발자에게 할당한 상태

연기된(Deferred): 낮은 우선순위로 오류 수정을 연기한 상태

종료된(Closed): 재테스트 시 오류가 발견되지 않은 상태

수정된(Fixed): 개발자가 오류를 수정한 상태

분류된(Classified): 보고된 오류를 관련자들이 확인했을 때 오류가 아니라고 확인된 상태

49. 다음은 C언어 소스코드이다. 출력 결과를 쓰시오.

#include<stdio.h>

voidmain(){

  int ret = 4;

  switch(++ret){

  case5: ret+=2;

  case3: ret++; break;

  case4: ret++;

  default: ret*=2;

  }

  printf(“%d\n”, ret);

}

정답 : 10

50. 보안의 3요소 중 서비스가 계속 유지가 되어 인가된 대상에게 정보를 제공하는 것으로 시스템이 장애 없이 정상적으로 운영되는 능력을 무엇이라고 하는지 쓰시오.

정답 : 가용성

해설

* 기밀성

시스템 내의 정보와 자원은 오직 인가된 사용자에게만 접근이 허용

* 무결성

시스템 내의 정보는 오직 인가된 사용자만 수정할 수 있음

* 가용성

인가받은 사용자는 언제라도 사용할 수 있음

53. 다음 SQL문의 실행결과를 쓰시오.

SELECTsum(점수)

FROM 성적 a, 학생 b

WHERE a.학번 = b.학번 AND b.학년 = 1;

학생 테이블

학번이름학년
20170001강은미4
20180002김정미3
20190003홍길동2
20200004장길산1
20200005김철희1

성적 테이블

학번과목점수
20190003영어90
20200004영어80
20200005영어90

정답 : 170

56. 다음이 설명하는 용어를 쓰시오.

* 기업이 재해/재난으로부터 타격을 입은 뒤 업무를 어떻게 복구하는지에 대한 계획을 말한다.

* 전산의 단순복구 뿐 아니라 고객 비즈니스의 지속성을 보장한다.

* 재해 복구를 포함하는 더 넓은 개념으로 쓰인다.

정답 : BCP(Business Continuity Planning)

해설

– BCP를 통해서 재해예방, 대응 및 복구, 운영 및 유지관리, 모의훈련을 함

* 참고

* DRS

재해/재난 시 서비스 연속성 보장을 위해 메인 센터와 분리되어 동일 역할을 하는 재해 복구 시스템

* RTO(Recovery Time Objective)

재해 복구 목표 시간 / 중요한 서비스일수록 짧아야 함

57. 다음이 설명하는 용어를 쓰시오.

온라인 상에서 불법 활동을 조장하기 위해 만들어진 컴퓨터 프로그램이다. 공격용 툴킷이라고 불리며 보통 취약점을 이용하도록 미리 프로그램 된 악성코드 등으로 구성돼 원하는 형태로 공격을 감행하거나 공격을 자동화 할 수 있다. 인터넷에서 곧바로 사용할 수 있으며 키로거를 은밀히 설치 시켜 불법적으로 정보를 수집해 가기도 한다.

정답 : 크라임웨어(Crimeware)

60. UI 화면 설계를 위해서 정책이나 프로세스 및 콘텐츠의 구성, 와이어 프레임(UI, UX), 기능에 대한 정의, 데이터베이스의 연동 등 구축하는 서비스를 위한 대부분 정보가 수록된 문서로서, 디자이너와 개발자가 최종적으로 참고하는 산출 문서가 무엇인지 쓰시오.

정답 : 스토리보드

21. 다음은 자바 소스코드이다. 출력되는 결과를 쓰시오.

 publicstaticvoid main(String[] args){
 int a =10;
 int b =20;
  
 System.out.println(++a);
 System.out.println(b–);
 }

정답

11

20

해설

* JAVA 전위연산자/후위연산자

– ++a : 전위연산 >++계산하고 a출력

– b– : 후위연산 >b출력하고 –계산

22. 다음은 릴리즈 노트 작성 프로세스이다. 올바르게 나열하시오.

릴리즈 정보 확인  릴리즈 노트 개요 작성

모듈 식별            정식 릴리즈 노트 작성

영향도 체크        추가 개선 항목 식별

정답 :  ⑥ 

해설

* 릴리즈

개발이 완성된 소프트웨어를 출시, 배포하는 것

* 릴리즈 노트

배포 후 개발자는 사용자에게 해당 릴리즈의 정보를 알리기 위해 작성함

테스트를 거친 기능 및 서비스, 개선된 사항 등을 기록

조직의 최종 사용자인 고객과 잘 정리된 릴리즈 정보를 공유하는 문서

개발팀에서 직접 작성, 현재 시제로 작성

* 릴리즈 노트 고려사항

중대한 오류가 발생하여 긴급하게 수정하는 경우 릴리즈 버전을 출시하고 버그 번호를 포함한 모든 수정된 내용을 담아 릴리즈 노트를 작성

– SW 기능 업그레이드를 완료한 경우 릴리즈 버전을 출시하고 릴리즈 노트를 작성

사용자로부터 접수된 요구사항에 의해 추가나 수정된 경우 자체 기능 향상과는 다른 별도의 릴리즈 버전으로 출시하고 릴리즈 노트 작성

23. 다음과 같은 특징을 갖는 데이터베이스 종류는 무엇인지 쓰시오.

데이터를 상하 종속적인 관계로 계층화하여 관리하는 데이터베이스이다.

데이터에 대한 접근 속도가 빠르지만, 종속적인 구조로 인하여 변화하는 데이터 구조에 유연하게 대응하기가 쉽지 않다.

정답 : 계층형 데이터베이스 관리시스템(HDBMS; Hierarchical Database Management System)

해설

* 데이터베이스 종류

 계층형 데이터베이스 관리시스템 (HDBMS; Hierarchical ~)

: 접근 속도는 빠른데 유연성은 떨어짐
망형 데이터베이스 관리시스템 (NDBMS; network~)

: 논리적으로 표현. 설계가 복잡함
관계형 데이터베이스 관리시스템 (RDBMS; Relational~)

: 가장 보편화. 테이블과 상관관계 표현. 유연성 좋다(유지보수 용이)

24. 다음은 요구사항 개발 프로세스이다. 올바르게 나열하시오.

 요구사항 분석(Analysis)  요구사항 확인(Validation)  요구사항 명세(Specification)  요구사항 도출(Elicitation)

정답 : 도출 >분석 >명세 >확인

해설

* 요구사항 개발 프로세스

도출(요구사항 수집 단계)

  : 이해 관계자 간의 의사소통 중요(인터뷰, 브레인스토밍)

분석(요구사항 분석 단계)

  : 도출된 요구사항의 타당성 조사, 내용 정리

  >>요구사항 분류 : 특정한 기준으로 분류(기능, 비기능 우선순위)

  >>개념 모델링

       : 분류된 요구사항을 단순화하여 개념적으로 표현, 객체간의 관계와 종석성 분석, 다양한 관점으로 표현, UML 사용

  >>요구사항 할당 : 요구사항을 만족시키기 위한 요소들을 할당

  >>요구사항 협상 : 충돌되는 요구사항 해결

  >>정형 분석 : 구문과 의미를 갖는 언어 이용, 수학적 기호

명세(요구사항 문서화 단계) : 승인을 위해 문서화 진행, 빠짐없이 명확하고 이해하기 쉽게 기록

확인 : 요구사항 검증 단계) : 명세서 검증, 형상관리 수행

  >>요구사항 검토 : 문서화된 요구사항을 훑어보면서 확인, 가장 일반적

  >>프로토타이핑

      : 초기 도출된 요구사항을 토대로 프로토타입을 만든 후 대상 시스템의 개발이 진행되는 동안 도출되는 요구사항을 반영하면서 지속적으로 프로토타입을 재작성하는 과정

  >>모델 검증 : 요구사항 분석 단계에서 개발된 모델이 요구사항을 충족시키는지 검증하는 것

  >>인수 테스트 : 사용자가 실제로 사용할 환경에서 요구사항들이 모두 충족되는지 사용자 입장에서 확인하는 과정

25. 다음은 요구사항 확인 기법에 대한 설명이다. 알맞은 용어를 쓰시오.

새로운 요구사항을 도출하기 위한 수단 및 소프트웨어 요구사항에 대해 소프트웨어 엔지니어가 해석한 것을 확인하기 위한 수단으로 사용
요구사항이 잘못된 경우 유용한 피드백 제공, 사용자 인터페이스의 동적인 행위가 문서나 그래픽 모델보다 이해 용이

 사용자가 요구한 주요 기능을 간단하게 구현하여, 사용자의 피드백을 통해 개선, 보완하여 완성 소프트웨어를 만들어가는 기법

정답 : 프로토타이핑

참고

* 프로토타입 VS 프로토타이핑

프로토타입 : 시제품 ( 시스템을 만들 때 간단한 기능 한 두개만 넣은 것 / 게임의 데모 버전 )

프로토타이핑 : 프로토타입을 만드는 방법 ( ~하는 방법, ~하는 과정 )

26. 다음에서 설명하는 EAI 구축 유형을 쓰시오.

그룹 내는 허브 앤 스포크 방식을 사용하고, 그룹 간에는 메시지 버스 방식을 사용하는 통합 방식이다.

그룹 내 환경에 맞는 구성 및 작업이 가능하다.

정답 : 하이브리드(Hybrid)

해설

* EAI ( Enterprise Application Integration )

* 시스템 인터페이스를 위한 내부, 외부 모듈 연계 방법

특징 : 표준통합기술 / 데이터 병목현상 최소화(그룹 내 환경에 맞는 작업 가능)

– Point to Point : 가장 기본적, 변경 재사용 어려움

– Hub &Spoke : 허브 시스템, 확장, 유지보수 용이

– Message Bus(ESB) : 미들웨어를 두고 처리, 뛰어난 확장성

– Hybrid : Hub &Spoke + ESB, 병목 현상 최소화

> ESB ( Enterprise Service Bus )

27. 다음은 연계 방식 중 간접 연계 방식의 기술에 대한 설명이다. 알맞은 기술을 쓰시오.

기업에서 운영되는 서로 다른 플랫폼 및 애플리케이션들 간의 정보 전달, 연계, 통합을 가능하게 해주는 솔루션

송수신 시스템에 설치되는 어댑터를 사용

정답 : 연계 솔루션(EAI)

해설

* EAI; Enterprise Application Integration

애플리케이션 통합

표준 : 벤더별 전송기술 상이

유지비용이 높다(시스템별로 개발)

단단한 결합

집중형으로 구현됨

기업 내 필요한 여러 애플리케이션 간에 상호 연동이 가능하도록 통합하는 솔루션

참고

 EAI 방식ESB 방식
구성도APPESB(BUS)
개념미들웨어(Hub)를 이용하여 Biz로직을 중심으로 기업 내 APP 통합 연계미들웨어(BUS)를 이용하여 서비스 중심으로 서비스를 지원하기 위한 관련 시스템의 유기적 연계 (SOA의 토대가 됨)
특징단일 접점인 허브 시스템을 통해 시스템을 통합하는 중앙 집중식 방식
– HUB장애 시 전체 영향
각 시스템을 BUS를 통해 연결하므로 뛰어난 확장성, 유현성, 신속성 제공
– network에 의존적

* SOA(서비스 지향 아키텍처) : 느슨하게 결합된 서비스 기반 애플리케이션을 구현하기 위한 아키텍처 모델

* ESB

개발자가 서비스를 개발하고 적절한 API를 통해 서비스 간에 통신을 하는데 도움이 되는 인프라 스트럭처 소프트웨어

– SOA가 실현되는 플랫폼으로 사용될 수 있지만 ESB는 서비스가 흐르는 매체일 뿐이고 SOA의 구현과 서비스 구성 및 배치를 위한 기능을 제공

28. 다음 아래의 상항식 통합 테스트(Bottom Up Integration Test)의 절차를 순서대로 나열하시오.

각 통합된 클러스터 단위 테스트

각 클러스터들은 프로그램의 위쪽으로 결합되며, 드라이버는 실제 모듈 또는 컴포넌트로 대체

모듈 또는 컴포넌트들이 하위 모듈의 기능을 수행하는 클러스터(Cluster)로 결합

드라이버라는 제어 프로그램의 작성

정답 : ③ > ④ > ① > ② 

29. 다음이 설명하는 용어를 쓰시오.

 제품 소프트웨어 개발단계부터 적용한 기준이나 패키징 이후 설치 및 사용자 측면의 주요 내용 등을 기록한 문서이다.
사용자 중심의 기능 및 방법을 나타낸 설명서와 안내서를 의미한다.
설치 매뉴얼과 사용자 매뉴얼이 있다.

정답 : 제품 소프트웨어 매뉴얼

30. 다음은 데이터베이스 기본 연산이다. 빈칸에 들어갈 DML로 알맞은 것을 쓰시오.

CRUD 연산SQL DML
읽기(READ)( )
생성(CREATE)( )

정답 :  SELECT ② INSERT

해설

* 데이터베이스 기본 연산

CRUD 연산 / SQLCREATE / INSERTREAD / SELECTUPDATE / UPDATEDELETE / DELETE

31. 다음이 설명하는 테스트 레벨의 종류는 무엇인가?

사용자 요구사항에 대한 단위 모듈, 서브루틴 등을 테스트하는 단계
인터페이스 테스트, 자료구조 테스트, 실행 경로 테스트, 오류 처리 테스트가 존재

정답 : 단위테스트

해설

* 테스트 레벨 : 한 번에 총체적으로 조직화하고 관리하는 테스트 활동의 묶음

단위 테스트, 통합테스트, 시스템 테스트, 인수 테스트

* 단위 테스트(Unit Test)

코딩 직후 SW 설계의 최소 단위인 모듈이나 컴포넌트에 초점을 맞춰 테스트 진행

사용자 요구사항을 기반으로 한 기능성 테스트 최우선

주로 구조기반(화이트박스 테스트) 시행

* 통합 테스트

시스템이나 시스템 구성 요소 또는 소프트웨어 프로그램의 데이터 및 기능의 인터페이스(흐름)가 정상적으로 작동하는지에 중점을 둠

단위 테스트를 통과한 개발 소프트웨어/하드웨어 컴포넌트 간 인터페이스 및 연동 기능 등을 구조적으로 접근하여 테스트

>> 빅뱅 통합 테스트 : 모든 모듈을 한꺼번에 통합하고 결합 격리가 어려움

>> 상향식 통합 : 가장 하부의 모듈부터 통합해가면서 상부로 올라감, 드라이브가 필요

>> 하향식 통합 : 가장 상부의 모듈부터 통합해가면서 하부로 내려감, 스텁 필요

>> 백본 통합 : 소프트웨어 리스크가 높은 것을 우선적으로 통합하고 접근, 드라이버, 스텁은 필요에 따라 만들어서 사용

* 시스템 테스트

 실제 환경과 가능한 유사한 환경에서 진행

기능적 요구사항(명세기반 기법), 비기능적 요구사항(구조기반 기법)

개발 조직과는 독립된 테스트 조직에서 수행되어야 하며 사전 요구사항이 명확해야 한다

단위, 통합 테스트가 가능한 완벽히 완료되어 가능상에 문제가 없는 상태여야 한다

32. 다음이 설명하는 용어를 쓰시오.

모듈의 독립성을 나타내는 개념으로, 모듈 내부 구성요소 간 연관 정도이다.

정보은닉 개념의 확장개념으로, 하나의 모듈은 하나의 기능을 수행하는 것을 의미한다.

유형으로는 우연적, 논리적, 시간적, …, 기능적 (    )이/가 있다. 

정답 : 응집도

해설

* 모듈화의 목표

모듈내 응집도 최대화

모듈간 결합도 최소화

* 응집도 순서 (낮음 >높음)

우연 >논리 >시간 >절차 >통신 >순차 >기능적

* 결합도 : 모듈 간에 상호 의존하는 정도 또는  모듈 사이의 연관 관계
* 응집도 : 모듈 내부의 처리 요소들 간의 기능적 연관도 독립적인 기능으로 정의

35. OSI 7계층의 4계층에 해당하는 전송 계층의 전송단위를 지칭하는 용어는 무엇인가?

정답 : 세그먼트

해설

* OSI 7계층 전송단위

– 1계층 물리계층 : 비트

– 2계층 데이터링크계층 : 프레임

– 3계층 네트워크계층 : 패킷

– 4계층 전송계층 : 세그먼트

– 5계층 이후 : 데이터

36. 다음이 설명하는 시큐어 코딩 가이드의 보안 약점에 대해서 쓰시오.

프로그램 입력값에 대한 검증 누락, 부적절한 검증, 잘못된 형식 지정을 통해 발생한다.

사용자, 프로그램 입력 데이터에 대한 유효성 검증 체계를 수립하고 실패 시 처리 설계 및 구현을 통해 대응한다.

정답 : 입력 데이터 검증 및 표현

해설

시큐어 코딩 가이드

37. 다음이 설명하는 라우팅 프로토콜은 무엇인가?

최초의 라우팅 프로토콜
거리 벡터 알고리즘 활용
30초 주기로 전체 라우팅 정보 갱신
변화 업데이트 시 많은 시간 소요
라우팅 루프 발생 가능

정답 : RIP

38. 다음이 설명하는 네트워크 장비는 무엇인가?

프로토콜을 서로 다른 통신망에 접속할 수 있게 해주는 장치
LAN에서 다른 네트워크에 데이터를 보내거나 다른 네트워크로부터 데이터를 받아들이는 출입구 역할

정답 : 게이트웨이

39. 다음이 설명하는 패키징 도구 암호화 기술은 무엇인가?

공개키 암호 방식 기반으로 디지털 인증서를 활용하는 소프트웨어, 하드웨어, 사용자, 정책 및 제도 등을 총칭하는 암호기술

공개키 알고리즘을 통한 암호화 및 전자서명을 제공하기 위한 복합적인 보안 시스템 환경

암호화와 복호화키로 구성된 공개키를 이용해 송수신 데이터를 암호화하고 디지털 인증서를 통해 사용자를 인증하는 시스템

정답 : 공개키 기반 구조(PKI)

해설

* PKI ( Public Key Infrastructure )

1. 다음은 테스트 케이스의 작성 순서이다. 작성 절차를 순서대로 나열하시오.

정답 : 가 >다 >나 >라 >바 >마

해설

자!(료확보)

우(선순위)리

요(구사항정의) 방법(결정)으로

테스트 케이스(정의)

타당성(확인)을

확인해보자!

2. 다음은 흐름 설계 수행 절차이다. 괄호 () 안에 들어갈 용어를 쓰시오.

가. UI 설계안의 적정성 확인

나. 화면에 표현되어야 할 기능 및 비기능적 요구사항 검토

다. 화면의 입력 요소 및 유스케이스를 통한 UI 요구사항 확인

라. ( ) 설계

– UI 요구사항을 바탕으로 ( )별 시나리오 구상 UI 요구사항으로 ( ) 세분화 UI ( ) 설계

마. 기능 및 양식 확인

– Input Box, Combo Box, ( ), Check Box에 대한 확인, 규칙 정의

정답 : 유스케이스, 액터, Radio Box

해설

– UI 흐름 설계

: 업무의 흐름이나 업무 수행과 관련된 일련의 클릭에 의해 화면의 위치와 흐름을 흐름도 형식으로 표현하는 활동

3. 다음 아래의 요구사항을 기능적 요구사항과 비기능적 요구사항으로 구분해서 쓰시오.

가. 특정 함수의 호출시간은 5초를 넘지 말아야 한다.

나. 각 부서별 담당자가 홈페이지 게시물을 작성할 수 있도록 관리자 페이지가 제공되어야 한다.

다. 콘텐츠관리자가 예약정보를 입력하고 예약 현황을 파악할 수 있도록 다양한 통계와 관리 메뉴를 제공해야 한다.

라. 특정 게시물에서 해당 예약 접수 화면으로 이동할 수 있는 링크나 삽입 기능을 제공해야 한다.

마. 시스템 자원(CPU, 메모리 등)의 평균사용률은 최대 70%를 초과하지 않도록 구현해야 한다.

바. 회원 예약은 마이페이지에서 예약 진행사항 및 이용내역을 확인할 수 있어야 한다.

정답

기능적 요구사항 : 나, 다, 라, 바

비기능적 요구사항 : 가, 마

해설

기능적 요구사항 : 원하는 기능 자체에 대한 서술 (로그인, 회원조회)

비기능적 요구사항 : 기능에 대한 품질, 제약사항 서술(최대100명, 1시간 이내)

4. 아래의 요구사항에 따라 작성된 유스케이스 다이어그램에서 괄호 ( ) 안에 들어갈 용어를 쓰시오.

관리자는 “시스템 구동”을 할 수 있다.

관리자는 “시스템 종료”를 할 수 있다.

– “시스템 구동” 및 “시스템 종료”를 수행하려면 “사용자 인증”을 수행해야 한다.

[유스케이스 다이어그램]

정답 :  시스템 구동 시스템 종료 <<include>>

해설

관리자가 “시스템 구동”, “시스템 종료” 기능을 사용하려면 우선 “사용자 인증”기능을 수행해야 한다.

이와 같이 두 개 이상의 유스케이스에 공통적으로 적용되는 기능을 분리하여 새로운 유스케이스로 만든 경우, 원래의 유스케이스와 새롭게 분리된 유스케이스와의 관계를 포함(include)관계라고 하고, <<include>>로 표시한다. 

* UML 스테레오 타입의 개념

– UML의 기본적 요소 이외의 새로운 요소를 만들어 내기 위한 확장 매커니즘

형태는 기존의 UML의 요소를 그대로 사용하나 내부 의미는 다른 목적으로 사용하도록 확장

– ‘<< >>’ 길러멧 기호를 사용하여 표현

 * <<boundary>>

시스템과 외부와의 경계에 걸쳐있는 클래스, 시스템 주변 환경과 시스템 내부 간의 커뮤니케이션을 담당

* <<enumeration>>

 열거형 타입 클래스

* <<include>>

하나의 유스케이스가 어떤 시점에 반드시 다른 유스케이스를 실행하는 포함 관계, 반드시 실행

* <<extend>>

하나의 유스케이스가 어떤 시점에 다른 유스케이스를 실행할 수도 있고 그렇지 않을 수도 있는 확장관계  

5. 다음 중 괄호 ( ) 안에 공통적으로 들어갈 라우팅 알고리즘을 쓰시오.

– ( ) 알고리즘은 인접 라우터와 정보 공유하여 목적지까지의 거리와 방향을 결정하는 라우팅 프로토콜 알고리즘이다.

– ( ) 알고리즘은 링크 상태 정보를 모든 라우터에 전달하여 최단 경로 트리를 구성하는 라우팅 프로토콜 알고리즘이다.

정답 :  거리 벡터 링크 상태

해설

* 동적 라우팅에 사용되는 알고리즘

* 거리벡터(Distance Vector)

거리와 방향만을 위주로 만들어진 라우팅 알고리즘

모든 이웃 라우터들에게 자신이 가진 모든 정보를 주기적으로 알려줌

 RIP, IGRP

* 링크상태(Link State)

라우팅 테이블을 구성하기 위해 딕스트라 알고리즘을 사용

 OSPF

* 경로벡터(Path Vector)

소스부터 모든 목적지까지의 경로는 스패닝 트리에 의해 결정

– BGP

참고

* 라우팅 프로토콜(Routing Protocol)

최종 목적지까지 패킷을 최소 비용 또는 최소 홉수를 알고리즘을 통해 적잘한 경로를 설정해주는 프로토콜

6. 웹 서비스(Web Service)는 네트워크에 분산된 정보를 서비스 형태로 개방하여 표준화된 방식으로 공유하는 기술로써 서비스 지향 아키텍처(SOA) 개념을 실현하는 대표적인 기술이다. 아래 웹 서비스 구성도에서 밑줄 친 , , 의 용어를 약술하시오.

정답

UDDI ( Universal Description, Discovery, and Integration )

 웹 서비스에 대한 정보인 WSDL을 등록하고 검색하기 위한 저장소로 공개적으로 접근, 검색이 가능한 레지스트리이다.

기업이나 단체, 개인이 자신들의 서비스 내용을 인터넷 상에 등록할 수 있게하는 XLML 기반의 등록처이다. 이 등록처에 WSDL을 사용하여 수행한다.

WSDL ( Web Services Description Language )

 웹 서비스명, 제공 위치, 메시지 포맷, 프로토콜 정보 등 웹 서비스에 대한 상세 정보가 기술된 XML 형식으로 구현되어 있는 언어이다.

어떤 등록처나 저장소에 자료를 저장하려면 어떤 자료가 어디에 어떤 형식으로 저장되는지 알아야 사용이 가능한데 이런 특정 서비스의 설명과 접근 방법과 같은 전자적으로 접근하는 방법을 XML언어 기반으로 제공하는 기술이다.

SOAP ( Simple Object Access Protocol )

 HTTP, HTTPS, SMTP 등을 사용하여 XML 기반의 메시지를 네트워크 상태에서 교환하는 프로토콜이다. 

웹 상에 연결된 컴퓨터 속에 있는 각 객체들을 액세스 하기 위한 MS 사의 프로토콜인데 HTTP로 XML 구문을 사용하여 COM, DCOM, 자바 등이 수행될 수 있다.

해설

* 웹서비스

웹이라는 네트워크 환경에 연결된 서로 다른 컴퓨터들이 동적으로 서로 연결되어 소통하고 실행될 수 있도록 하는 동적 환경 구현을 위한 소프트웨어 컴포넌트 묶음

* 웹 서비스 묶음에는

단순 객체 접근 프로토콜(SOAP),

웹 서비스 기술 언어(WSDL),

전역 비즈니스 레지스트리(UDDI) 등의 표준 기술을 사용하는데 네트워크에 연결된 다른 컴퓨터 간의 분산 컴퓨팅을 지원하는 소프트웨어 및 기술들이다.

* 저장소로 UDDI를 사용하고, 저장소에 접근과 그 저장된 자료의 접근 형식을 적은 설명서 WSDL과 이 자료를 꺼내서 가져가는 실행 프로토콜인 SOAP로 구성되고 여기에는 XML이 사용된다.

7. 다음 [보기]에 제시된 결함 관리 프로세스들을 순서대로 쓰시오.

[보기]

가. 에러 발견     마. 에러 분석

나. 에러 등록     바. 결함 확정

다. 결함 할당     사. 결함 조치 검토 및 승인

라. 결함 조치

정답 : 가 >나 >마 >바 >다 >라 >사

해설

두음쌤 : 발등 분확할 조검

8. 아래는 현행 시스템 파악을 위한 3단계 절차이다. 괄호 ( ) 안에 들어갈 세부 절차를 쓰시오.

정답 :  아키텍처 파악 소프트웨어 구성 파악

해설  

* 현행 시스템 파악

사용자 요구사항을 확인하기 위한 준비단계

현행 시스템이 어떤 하위 시스템으로 구성되어 있는지, 제공하는 기능이 무엇인지, 다른 시스템들과 어떤 정보를 주고받는지, 어떤 기술요소를 사용하고 있는지, 사용하고 있는 소프트웨어 및 하드웨어는 무엇인지, 네트워크는 어떻게 구성되어 있는지 등을 파악하는 활동

* 목적

향후 개발하고자 하는 시스템의 개발 범위 및 이행방향성 설정에 도움을 주는 것

9. 다음은 성능 분석 도구에 대한 설명이다. 괄호 ( ) 안에 들어갈 올바른 용어를 쓰시오.

애플리케이션의 성능 분석 도구는 ( ) 도구와 ( ) 도구로 분류된다.

– ( ) 도구는 애플리케이션에 부하나 스트레스를 적용하여 애플리케이션의 성능 측정 지표를 점검하는 도구로 종류에는 JMeter. LoadUI. OpenSTA 등이 있다.

– ( ) 도구는 애플리케이션이 실행되었을 때 시스템 자원 사용량을 확인하고, 분석이 가능한 도구로 종류에는 Scouter. Zabbix 등이 있다.

정답 :  성능 테스트  시스템 모니터링

해설

* 성능/부하/스트레스(Performancd/Load/Stress) 점검 도구

애플리케이션의 성능 점검을 위해 가상의 사용자를 점검 도구 상에서 인위적으로 생성한 뒤, 시스템의 부하나 스트레스를 통해 성능 측정 지표인 처리량, 응답 시간, 경과 시간 등을 점검하기 위한 도구이다.

* 모니터링(Monitoring) 도구

애플리케이션 실행 시 자원 사용량을 확인하고 분석 가능한 도구로, 성능 모니터링, 성능 저하 원인 분석, 시스템 부하량 분석, 장애 진단, 사용자 분석, 용량 산정 등의 기능을 제공하여, 시스템의 안정적 운영을 지원하는 도구이다.

10. 다음 ~ 의 설명에 적합한 프로그래밍 언어를 [보기]에서 골라 쓰시오.

 알고리즘의 연구개발에 이용하기 위한 목적으로 생성된 언어로, 절차형 언어로는 최초로 재귀 호출이 가능한 언어

 수학 표기법을 나타내기 위한 목적으로 생성된 언어로 함수 호출 시 함수 이름 혹은 연산자가 첫 번째로 위치하여 피연산자가 이어서 위치하는 언어

 논리식을 기반으로 객체 간의 관계에 관한 문제를 해결하기 위해 사용되고, 인공지능이나 계산 언어학 분야, 자연언어 처리 분야에서 사용되는 언어

 함수형 프로그래밍 언어로 부작용이 없고, 코드가 간결, 에러 발생 가능성이 낮은 언어이며 재귀 함수나 대수적 자료형도 지원하는 언어

[보기]

[리스프(LISP), HTML, 알골(ALGOL), 하스켈(Haskell), 프롤로그(Prolog), 파이썬(Python), 펄(Perl)]

정답 :   알골  리스프  프롤로그  하스켈

해설

 알고리즘 >알골 / 수학 >리스프 / 논리식 >Pro_log(ical) / 함수형 >하스켈

11. 아래는 사용자 인터페이스(UI) 설계 기본 원칙에 대한 설명이다. 괄호 ( ) 안에 들어갈 설계 기본 원칙을 쓰시오.

– ( ): 누구나 쉽게 이해하고, 쉽게 사용할 수 있어야 함

– ( ): 정확하고 완벽하게 사용자의 목표가 달성될 수 있도록 제작

– ( ): 초보와 숙련자 모두가 쉽게 배우고 사용할 수 있게 제작

– ( ): 사용자의 인터랙션을 최대한 포용하고, 실수를 방지할 수 있도록 제작

정답 :  직관성 유효성  학습성  유연성

12. 아래는 이상 현상이 나타난 테이블이다. 괄호 ( ) 안에 들어갈 용어를 쓰시오.

정답 : 삽입

13. 다음은 소프트웨어 아키텍처 4+1뷰이다. 괄호 안에 들어갈 용어를 쓰시오

논리 뷰, 구현 뷰, 프로세스 뷰, 배포 뷰, ( ①  )

정답 : 유스케이스 뷰

14. 다음 중   ~ 의 설명에 해당하는 보안 약점을 [보기]에서 찾아서 쓰시오.

SQL 삽입 공격, 크로스 사이트 스크립트(XSS) 공격을 유발할 수 있는 보안 약점

인증, 권한 관리, 암호화, 중요정보 처리를 부적절하게 구현 시 발생할 수 있는 보안 약점

잘못된 세션에 의한 정보 노출, 제거되지 않은 디버그 코드, 시스템 정보 노출 등으로 발생할 수 있는 보안 약점

[보기]

ㄱ. 캡슐화 보안 약점

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

ㄷ. 보안 기능에 대한 보안 약점

ㄹ. 시간 및 상태 보안 약점

ㅁ. 에러 처리 보안 약점

정답 : 

15. 다음은 통합 테스트에 대한 설명이다. 괄호 ( ) 안에 들어갈 용어를 쓰시오.

– ( )은/는 상위의 모듈에서 데이터의 입력과 출력을 확인하기 위한 더미 모듈로 상향식 통합 테스트 수행 시 사용된다.

– ( )은/는 모듈 및 모든 하위 컴포넌트를 대신하는 더미 모듈로 하향식 통합 테스트 수행 시 사용된다.

– ( )테스트는 모든 모듈을 동시에 통합 후 테스트를 수행하는 방식으로 단시간에 통합 테스트가 가능하다.

정답 :  테스트 드라이버(driver)  테스트 스텁(Stub)  빅뱅

17. 다음은 데이터 타입의 유형에 대한 설명이다. 알맞은 데이터 타입을 쓰시오.

조건이 참인지 거짓인지 판단하고자 할 때 사용하는 타입

C언어에서는 미지원

C++, 자바에서는 참일 경우 true로 거짓일 경우 false로 표현

파이썬에서는 참일 경우 True로 거짓일 경우 False로 표현

정답 : boolean

18. SW 개발 보안의 3대 요소 중에서 인가되지 않은 개인 혹은 시스템 접근에 따라 정보의 노출을 차단하는 특성이 무엇인지 쓰시오.

정답 : 기밀성

해설

– SW 개발 보안의 3대 요소

* 기밀성(Confidentiality)

시스템 내의 정보와 자원은 인가된 사용자에게만 접근이 허용되며, 정보가 전송 중에 노출되더라도 데이터를 읽을 수 없음

* 무결성(Integrity)

시스템 내의 정보는 오직 인가된 사용자만 수정할 수 있음

* 가용성(Availability)

인가받은 사용자는 언제라도 사용할 수 있음

19. 다음에 해당하는 용어를 쓰시오

데이터 중복성으로 인해 릴레이션을 조작할 때 발생하는 비합리적인 현상

정답 : 이상현상

1. 요구사항 확인

1) 현행 시스템 파악

현재 개발하고자 하는 시스템의 개발 범위를 설정하기 위해 구성과 기능, 연계정보, 소프트웨어, 하드웨어, 네트워크의 구성을 파악하는 과정을 의미한다.

 2) 현행 시스템 파악 절차

현행 시스템 구성 파악현행 시스템 기능 파악인터페이스 현황 평가
기간 업무, 지원 업무제공하는 기능 파악, 계층형 표시데이터 종류, 통신규약, 연계 유형
아키텍처 구성 파악소프트웨어 구성 파악
업무 수행 기술 요소들이 사용되는지 최상위 수준에서 파악소프트웨어 제품명, 용도, 라이선스 수, 적용 방식 명시
하드웨어 구성 파악네트워크 구성 파악
서버의 주 사양, 서버의 이중화, 수량네트워크 구성 파악을 위해 네트워크 연결 방식을 구성도로 작성

3) 소프트웨어 아키텍처(서술형)

여러가지 소프트웨어 구성요소와 외부 특성, 구성요소 간의 관계를 표현하는 시스템 구조

구성요소 간의 관계를 표현하는 시스템의 구조나 구조체

4) 소프트웨어 아키텍처 프레임워크(서술형)

소프트웨어 집약적인 시스템에서 아키텍처가 표현해야 하는 내용 및 이들 간의 관계를 제공하는 아키텍처 표준 기술을 의미한다.

기본 구조, 소프트웨어의 베이스(개발 기반), 역할 : 품질유지, 원칙, 지침

동일한 아키텍쳐 = 기본 구조가 같은 여러 형태의 결과물

* 소프트웨어 프레임워크의 특징

모듈화(Modularity)

: 프레임워크는 인터페이스에 의한 캡슐화를 통해서 모듈화를 강화하고 설계와 구현의 변경에 따르는 영향을 극소화하여 소프트웨어의 품질을 향상시킨다.

재사용성(Reusability)

: 프레임워크가 제공하는 인터페이스는 반복적으로 사용할 수 있는 컴포넌트를 정의할 수 있게 하여 재사용성을 높여준다. 또는 재사용성은 소프트웨어의 품질을 향상시킬 뿐만 아니라 개발자의 생산성도 높여준다.

확장성(Extensibility)

: 프레임워크는 다형성을 통해 애플리케이션이 프레임워크의 인터페이스를 넓게 사용할 수 있게 한다. 또한 애플리케이션 서비스와 특성을 변경하고 프레임워크를 애플리케이션의 가변성으로부터 분리함으로써 재사용성의 이점을 얻게 한다.

제어의 역흐름(Inversion of control)

: 프레임워크 코드가 전체 애플리케이션의 처리 흐름을 제어하여 특정한 이벤트가 발생할 때 다형성을 통해 애플리케이션이 확장한 메소드를 호출함으로써 제어가 프레임워크로부터 애플리케이션으로 반대로 흐르게 한다.

5) 소프트웨어 아키텍처 4+1 뷰

* 정의 : 고객의 요구사항을 정리해둔 시나리오 4개의 관점으로 바라보는 소프트웨어적인 접근 방법

* 4+1뷰의 종류

유스케이스 뷰 : 아키텍처를 도축하고 설계하는 작업을 주도하는 뷰

논리 뷰 : 설계 모델의 추상화, 클래스 식별 -> 클래스 다이어그램

프로세스 뷰 : 런타임 시 스레드와 프로세스 사이의 상호 작용

배포 뷰 : 물리적인 노드의 구성 -> 배포 아이어그램

– 구현 뷰 : 정적인 소프트웨어 구현 -> 컴포넌트 뷰, 컴포넌트 다이어그램

* 런타임 : 컴퓨터 프로그램이 실행되고 있는 동안의 동작 상태

* 스레드 : 프로세스의 실행을 담당하는 실행의 기본 단위

* 프로세스 : 운영체제가 관리하는 실행 단위며 PCB를 가진 시스템

* 프레임워크 : 소프트웨어의 특정 부분을 설계 및 구현 시 재사용이 가능하도록 클래스 제공

6) 개발 기술 환경 정의

* 운영체제(서술형) : 사용자와 하드웨어의 인터페이스 역할을 하며 컴퓨터 시스템의 자원을 관리하는 소프트웨어

키워드 : 신뢰성, 성능, 기술 지원, 주변 기기, 구축 비용

* DBMS(서술형) : 사용자와 Database 사이에서 사용자의 요구에 따라 정보를 생성해주고 Database를 관리해주는 소프트웨어

데이터의 중복성과 종속성을 해결

키워드 : 가용성, 성능, 기술 지원, 상호 호환성, 구축비용 

* JDBC : JAVA 언어를 이용하여 DB에 접근하여 관리할 수 있는 인터페이스

* ODBC : 응용프로그램에서 DB에 접근하여 데이터를 관리할 수 있는 표준 인터페이스

* 미들웨어 : 운영체제와 소프트웨어 Application 사이에서 원만한 통신이 이루어질 수 있도록 중개 및 제어 역할을 하는 소프트웨어

* 미들웨어의 종류

 DB(DataBase)

: 데이터베이스 벤더(Vendor)에서 제공하는 클라이언트에서 원격의 데이터베이스와 연결하기 위한 미들웨어

 RPC(Remote Procedure Call)

: 응용 프로그램의 프로시저를 사용하여 원격 프로시저를 마치 로컬 프로시저처럼 호출하는 방식의 미들웨어

 MOM(Message Oriented Middleware)

: 메시지 기반의 비동기형 메시지를 전달하는 방식의 미들웨어

 TP-Monitor(Transaction Processing Monitor)

: 항공기나 철도 예약 업무 등과 같은 온라인 트랜잭션 업무에서 트랜잭션을 처리 및 감시하는 미들웨어

 ORB(Object Request Broker)

: 객체 지향 미들웨어로 코바(CORBA) 표준 스펙을 구현한 미들웨어

 WAS(Web Application Server)

: 사용자의 동적인 콘텐츠를 처리하기 위해 사용되는 미들웨어

키워드 : 가용성, 성능, 기술 자원, 구축 비용

– WAS 종류 : Tomcat, JBoss, Jetty, JEUS

* 가비지 컬렉선 : 실제로 사용되지 않고 있지만 반환되지 않은 메모리 공간을 강제로 해제하여 사용할 수 있도록 하는 메모리 관리 기법

* 오픈소스 : 누구나 제한 없이 사용할 수 있는 소스코드를 공개한 라이선스를 만족하는 소프트웨어

키워드 : 라이선스 종류, 사용자의 수, 기술 지속 가능성 고려

* tpmC : 1분당 최대 처리 건수, 하드웨어 성능 지표로 사용

* OLTP/배치/데이터베이서 서버 -> tpmC

* WEB/WAS 서버 -> OPS(Operations per Second)

7) 요구사항

* 소프트웨어가 문제를 해결하기 위해 제공되는 서비스 설명과 제약조건을 나타낸다.

기능적 요구사항 : 시스템이 제공하는 기능, 서비스 (기능성, 완전성, 일관성)

비기능적 요구사항 : 기능외의 제약사항이나 보안적인 요소

사용자 요구사항 : 사용자 관점에서 시스템이 제공해야 할 기능 및 서비스

시스템 요구사항 : 개발자 관점

요구사항 개발 프로세스

도출분석명세확인
요구사항 식별
인터뷰
브레인스토밍
리서치
워크숍
요구사항 분류
개념 모델링
요구사항 협상
요구사항 할당
정형 분석
문서화
시스템 요구사항 명세서
시스템 정의서
요구사항 검토
프로토타이핑
모델 검증
– 인수 테스트
개념 모델링 : 요구사항 분석의 핵심으로 요구사항을 단순화하여 개념적으로 표현한 것
* 유스케이스 다이어그램 : 액터(사용자)와 시스템의 관계를 표현하고 기능적인 요구사항을 유스케이스라는 단위로 표현
* UML : 개발자들이 효율적으로 의사소통을 하기 위해 만들어진 표준 통합 모델링 언어 요구사항 할당 : 아키텍처 구성요소 식별 정형 분석 : 구문과 의미를 갖는 정형화된 언어를 수학적 기호로 표현하여 분석

모델 검증 : 정적 분석 수행 인수테스트 : 사용자의 입장에서 테스트하는 방법으로 알파 테스트와 베타 테스트가 존재 프로토타이핑 : 새로운 요구사항을 도축하기 위한 수단 또는 요구사항에 대해 소프트웨어 엔지니어가 해석한 것으로 확인하기 위한 수단

8) 비용 산정 모델

하향식 선정 방법 : 전문가 판단, 델파이 기법

상향식 선정 방법 : LOC, M/M(Man/Month), Putnam, COCOMO

* Putnam : 개발 주기의 단계별 요구, 인원 분포도 가정

* COCOMO : 보헴이 정의 / 프로그램 규모에 따라 비용 산정

* 상호 운용성 : 서로 다른 시스템 간의 데이터를 주고 받아 효율적으로 운용될 수 있는 특성

9) 분석 모델 검증

 (1) 유스케이스 모델 검증 ( 액터, 유스케이스 )

 (2) 개념 수준의 분석 클래스 검증

 (3) 분석 클래스 검증

경계 : 외부 액터와 상호작용

엔티티 : 시스템이 유지해야 하는 정보를 관리

제어 : 시스템이 제공하는 기능의 로직, 제어 담당

기술적 타당성 검토

 (1) 성능 및 용량 산정의 적정성

 (2) 시스템 간 상호 운용성

 (3) IT 시장 성숙도 및 트렌드 부합성

 (4) 기술적 위험 분석

10) UML

* 정의 : 개발자들이 원활한 의사소통을 하기 위해 고안된 표준화 통합 모델링 언어

* 6개의 구조 다이어그램 + 7개의 행위 다이어그램

* 구성요소 : 사물, 관계, 다이어그램

사물 : 구조, 그룹, 행동, 주해

 관계

 – 연관관계 : 2개 이상 사물이 서로 연관

 – 집합관계 : 하나의 사물이 다른 사물에 포함

 – 포함관계 : 포함하는 사물의 변화가 포함되는 사물에게 영향을 미치는 관계

 일반화 : 상속 관계

 의존 : 필요에 의해 짧은 기간 동안 관계 유지

 연관
Association
집합
Aggregation
포함
Composition
일반화
Generalization
의존
Dependency
실체화
Realization
정의2개 이상 사물 서로 관련하나의 사물, 다른 사물에 포함포함되는 사물에게 영향 미침사물끼리 일반적, 구체적 표현연관은 있으나 영향줄 때만 연관을 유지행위, 인터페이스로 서로 그룹화할 수 있는 관계
표기법
* 다수, .. 또는
상위개념 실선일시적, 점선상위개념, 점선
예시자동차-타이어컴퓨터 
마우스
마우스 
마우스 리시버
토레타 포카리 – 이온음료 고객등급 —
사은품
폰, 벽시계 —
시간확인

 실체화 : 서로를 그룹화할 수 있는 인터페이스

다이어그램(6개의 구조 다이어그램 + 7개의 행위 다이어그램)

  – 6개 구조 다이어그램 : 클래스, 객체, 컴포넌트, 배치

   컴포넌트 다이어그램 : 컴포넌트와의 관계나 인터페이스를 표현

   배치 다이어그램 : 물리적인 요소들의 위치 표현

  – 7개 행위 다이어그램 : 유스케이스, 시퀀스, 커뮤니케이션, 상태

구조적 다이어그램행위 다이어그램
종류키워드종류키워드
클래스구조유스케이스모델링
객체관계시퀀스메시지
컴포넌트구현, 인터페이스커뮤니케이션메시지 + 연관관계
배치구현, 위치상태상태 변화
복합체 구조내부 구조활동로직 흐름
패키지그룹상호작용 개요제어 흐름
  타이밍시간제약

* 유스케이스 다이어그램 구성요소 : 액터, 유스케이스, 시스템, 관계

* 유스케이스 : 액터에게 제공하는 서비스, 기능을 표현

1. 데이터 모델링 절차

* 개념적 데이터 모델링 -> 논리적 데이터 모델링 -> 물리적 데이터 모델링

개념적 데이터 모델링 : 현실 세계의 인식을 추상적인 개념으로 모델링

논리적 데이터 모델링 : 개념적 구조를 컴퓨터가 이해할 수 있는 형태로 변환

1) 논리 데이터 모델링

업무영역의 업무 데이터 및 규칙을 구체적으로 표현

특징 : 정규화, 완전성, 독립성, 포용성

속성 : 개체(사각형), 속성(동그라미), 관계(마름모)

2) 정규화(서술형)

관계형 데이터베이스 설계 시 중복을 최소화하여 데이터를 구조화하는 과정

(데이터 중복 최소화 + 데이터 구조화)

* 이상현상(서술형) : 데이터의 중복성으로 인해 테이블을 조작할 때 발생하는 비합리적인 현상

삽입이상 : 정보 저장 시 불필요한 세부사항을 입력해아 하는 경우

삭제이상 : 삭제 시 원치않는 정보까지 삭제되는 경우

갱신이상 : 중복 데이터에서 특정 부분만 수정되어 중복된 값이 모순을 일으키는 경우

* 정규화 단계

– 1NF(제1정규화) : 테이블 내의 속성값은 원자 값을 가져아 한다.

– 2NF(제2정규화) : 부분 함수 종속성을 제거해야 한다.

– 3NF(제3정규화) : 이행 함수 종속성을 제거해야 한다.

– BCNF : 결정자 함수의 종속성을 제거하고 모든 결정자가 후보키 집합에 속한 정규형

– 4NF(제4정규화) : 다중 값 종속을 제거해야 한다.

– 5NF(제5정규화) : 조인 종속성을 제거해야 한다.

3) 물리 데이터 모델링

논리 데이터 모델을 DBMS 특성 및 성능을 고려하여 구체화시킨 모델

< 모델링 절차 >

(1) 개체 -> 테이블

(2) 속성 -> Column

(3) UID -> PK(Primary Key)

(4) 관계 -> 외래키

(5) Column 길이 및 유형 정의

(6) 반정규화(2020 1회 실기 기출) : 시스템의 성능 향상을 위해 수행되는 의도적인 정규화 원칙을 위배하는 행위

* 참조 무결성 제약 조건 : 릴레이션과 릴레이션 사이에 대해 참조의 일관성을 보장하기 위한 조건

* 인덱스 : 검색 연산의 최적화를 위해 키값과 포인터의 쌍으로 구성되는 데이터 구조

적용기준 : 분포도가 10~15%이내

특징

분포도가 좋은 칼럼은 단독으로 생성

자주 조합되어 사용되는 칼럼은 결합 인덱스로 생성

지나치게 많은 인덱스는 오버헤드 발생 가능

* 뷰 : 사용자에게 허용된 정보만 보여주기 위해 하나 이상의 테이블로부터 유도된 논리적인 가상 테이블

속성 : REPLACE, FORCE, NOFORCE

논리적인 독립성을 제공하고 접근 제어를 통한 자동 보안 기능 제공

* 클러스터 : 데이터 접근 효율을 높이기 위해 동일한 성격의 데이터를 같은 데이터 블록에 저장하는 물리적 저장 방법

특징 : 조회 속도는 향상시키지만 삽입, 삭제, 수정의 기능은 저하

종류 : 단일 테이블 클러스트링, 다중 테이블 클러스트링

* 파티셔닝 : 대용량의 테이블을 작은 논리적인 단위인 파티션으로 나누는 것

레인지 파티셔닝 : 연속되는 숫자나 날짜 기준으로 파티셔닝

해시 파티셔닝 : 파티션 키의 해시 함수 값으로 파티셔닝

리스트 파티셔닝 : 데이터에 대한 명시적 제어가 가능한 파티셔닝

컴포지트 파티셔닝 : 범위 분할 이후 해시 함수를 적용하는 파티셔닝

장점 : 성능 향상, 가용성 향상, 백업 기능

4) 데이터 조작 프로시저(4장과 함께 보기)

저장된 프로시저, 저장된 함수, 저장된 패키지, 트리거

* 프로시저 : SQL을 이용해 생성된 데이터를 조작하는 프로그램

– PL/SQL : 표준 SQL을 기반으로 Oracle에서 개발한 데이터 조작 언어

– JDBC : 자바에서 DB를 사용할 수 있도록 연결해주는 인터페이스

* 프로시저 생성 SQL문

CREATEORREPLACE

(nameINVARCHAR)

ISBEGIN

– DBMS_OUTPUT : 메시지를 버퍼에 저장하고 버퍼로부터 읽어 오기 위한 인터페이스 패키지

– SEVEROUTPUT ON : PL/SQL 처리 결과를 출력

– SHOW ERRORS : PL/SQL 오류 발생 출력

* APM (Application Performance Monitoring) : 안정적인 시스템 운영을 위한 성능 모니터링 도구

5) 데이터 조작 프로시저 최적화

* 옵티마이저 : SQL을 가장 빠르고 효율적으로 수행할 수 있는 최적의 경로 생성

실행 계획 : 최적의 처리 경로

* RBO : 규칙(Rule) 기반 옵티마이저

* CBO : 비용(Cost) 기반 옵티마이저

* 통합 구현 : 사용자의 요구사항을 해결하고, 새로운 서비스 창출을 위해 단위 기능을 하는 모듈 간의 연계와 통합

* 통합 구현은 시스템 아키텍처 구성, 송수신 방식, 송수신 모듈 구현 방법 등에 따라 다양하므로 구축하고자 하는 환경과 사용자 요구사항에 따라 적합한 통합 구현 방법을 설계한다.

1. 연계 데이터 구성

1) 연계 요구사항 분석

* 통합 구현을 위해 연계 시스템 아키텍쳐를 설계하고, 연계 데이터를 정의하기 위해서는 사용자 요구사항 분석은 중요한 작업이다.

* 분석 기법

인터뷰, 리서치

체크리스트 : 시스템 운영환경, 성능, 보안, 데이터 주기 등 기준에 대한 점검을 통한 분석 기법

델파이 기법 : 통합 구현 및 연계 전문가, 시스템 아키텍처, 업무 전문가 등 각 분야 전문가로부터 연계 데이터 및 사용자 요구사항 식별

브레인스토밍 : 소속된 인원들이 자연스럽게 제시된 아이디어 목록을 통해 분석

분석 참고 문서 : 코드 정의서, 테이블 정의서, 응용 프로그램 구성도, 시스템 구성도

* 개체 정의서 : 개념 모델링 단계에서 도출한 개체의 타입과 속성 식별자 정보를 명세화한 문서

* 테이블 정의서 : 테이블을 구성하는 칼럼의 특성 및 인덱스를 문서화

* 인터페이스 명세서 : 인터페이스 정의서 기반으로 상세화

* 송신 시스템과 수신 시스템 간의 인터페이스 방식, 주기, 기록, 데이터 크기, 인터페이스 ID 등 기술

* 연계 시스템 구성 : 송신 시스템, 수신 시스템, 중계 서버

* 인터페이스 시스템의 데이터 표준 : 공통부, 개별부, 종료부

2) 연계 매커니즘

데이터 생성과 전송을 담당하는 송신 체계와 데이터 수신과 DB 반영을 담당하는 수신 체계로 구성

< 연계 방식 >

* 직접 연계 : 중간 매개체 없이 송수신 시스템 연결

– DB Link : DB에서 제공하는 DB 링크 객체 이용

– DB Connection : DB Connection Pool 생성

– API/Open API : API 생성

– JDBC : JDBC 드라이브 이용

– Hyper Link : 링크 속성, Hub &Spoke + ESB, 병목 현상 최소화

* 간접 연계 : 중간 매개체를 통한 연계

– EAI : 기업에서 운영되는 이기종 간 시스템 연계 솔루션

– ESB/Web Service : WSDL과 SOAP 프로토콜을 이용한 시스템 연계

– Socket : 포트 할당, 클라이언트 요청 연결

* 연계 메커니즘 주행 절차

연계 데이터 추출 생성 -> 코드 매핑/변환 -> 파일 생성 -> 로그 기록 -> 송수신 어댑터 -> 전송 -> 반영

3) 연계 모듈 기능 구현

– EAI : 기업에서 운영되는 이기종 간 시스템 연계 솔루션

– Point to Point : 가장 기본적, 변경 재사용 어려움

– Hub &Spoke : 허브 시스템, 확장, 유지보수 용이

– Message Bus(ESB) : 미들웨어를 두고 처리, 뛰어난 확장성

– Hybrid : Hub &Spoke + ESB, 병목 현상 최소화

* ESB : 기업에서 운영되는 이기종 간의 서비스를 통합하여 하나의 시스템으로 관리 운영할 수 있는 기술

느슨한 결합 : 특정 서비스를 변경해도 연결된 다른 서비스에 영향을 주지 않는 구조

개발자가 서비스를 개발하고 적절한 API를 통해 서비스 간에 통신을 하는데 도움이 되는 인프라 스트럭처 소프트웨어

– SOA가 실현되는 플랫폼으로 사용될 수 있지만 ESB는 서비스가 흐르는 매체일 뿐이고 SOA의 구현과 서비스 구성 및 배치를 위한 기능을 제공

 EAI 방식ESB 방식
구성도APPESB(BUS)
개념미들웨어(Hub)를 이용하여 Biz로직을 중심으로 기업 내 APP 통합 연계미들웨어(BUS)를 이용하여서비스 중심으로 서비스를 지원하기 위한 관련 시스템의 유기적 연계 (SOA의 토대가 됨)
특징단일 접점인허브 시스템을 통해 시스템을 통합하는 중앙 집중식 방식
– HUB장애 시 전체 영향
각 시스템을BUS를 통해 연결하므로 뛰어난 확장성, 유현성, 신속성 제공
– network에 의존적

* WEB Service : 네트워크에 분산된 정보를 서비스 형태로 개방하여 표준화된 방식으로 공유

– SOAP, WSDL, UDDI

– SOAP : HTTP, HTTPS, SMTP 프로토콜을 사용하여 XML 기반의 메시지를 교환하는 프로토콜

– WSDL : 웹 서비스에 대한 상세 정보를 기술한 파일

– UDDI : WSDL을 등록하고 검색하기 위한 저장소

* XML(2020 1회 실기 기출)

– HTML 문법이 호환되지 않는 문제와 SGML의 복잡함을 해결하기 위해 고안된 마크업 언어

* JSON(2020 1회 실기 기출)

비동기 브라우저, 서버 통신을 위해 ‘속성-값’의 쌍으로 이루어진 개방형 표준 포맷

* AJAX(2020 2회 실기 기출)

– JavaScript를 이용한 비동기 통신으로 클라이언트와 서버 간 XML 데이터를 주고받는 기술

* REST

– URL을 통해 자원을 명시하고 HTTP 메서드를 통해 해당 자원을 조작할 수 있는 기법

* 테스트 케이스

명세 기반 테스트를 산출물로 입력값, 실행 조건, 기대 결과로 구성된 테스트 항목

1. 서버 프로그램 구현

1) 개발 환경 구축

* 개발 도구 분류

구현 도구 : 코드 작성과 디버깅 및 수정 작업

테스트 도구 : 코드의 기능과 품질 향상 ( xUnit, PMD, Findbugs, Cppcheck, Sonar )

형상관리 도구 : 코드와 산출물에 대한 버전 관리

빌드 도구 : 코드의 빌드와 배포 수행 ( Gradle, Maven, Ant )

* 서버 하드웨어 개발 환경

ClientWeb ServerWASDB(데이터 베이스)
Client 하드웨어 개발 환경웹상의 정적 콘텐츠
HTTP를 이용한 요청/응답
동적 콘텐츠데이터 수집 및 관리

* 소프트웨어 개발 환경

운영체제미들웨어DBMS
하드웨어와 사용자 인터페이스컴퓨터와 컴퓨터를 연결
쉽고 안전하게 프로그램 사용
사용자 DB 사이 위치

* JVM : 시스템 메모리를 관리하고 자바 기반 Application을 위해 실행 환경 제공

* 형상 관리(SCM; Software Configuration Management) (2020 실기 2회 기출문제 – 단답형)

소프트웨어의 개발 과정에서 소프트웨어의 변경 사항을 관리하기 위해 개발된 일련의 활동

소프트웨어 변경의 원인을 알아내고 제어하며, 적절히 변경되고 있는지 확인하여 해당 담당자에게 통보

형상 관리는 소프트웨어 개발의 전 단계에 적용되는 활동이며, 유지보수 단계에서도 수행

형상 관리는 소프트웨어 개발의 전체 비용을 줄이고, 개발 과정의 여러 방해 요인이 최소화되도록 보증하는 것을 목적으로 함

* 형상 관리 기능의 종류 : 형상 식별, 버전 제어, 형상 통제, 형상 감사, 형상 기록

 형상 식별

: 형상 관리 대상에 이름과 관리 번호를 부여하고, 계층(Tree) 구조로 구분하여 수정 및 추적이 용이하도록 함

버전 제어

: 소프트웨어 업그레이드나 유지 보수 과정에서 생성된 다른 버전의 형상 항목을 관리하고, 이를 위해 특정 절차와 도구(Tool)를 결합시키는 작업

 형상 통제(변경 관리)

: 식별된 형상 항목에 대한 변경 요구를 검토하여 현재의 기준선(Base Line)이 잘 반영될 수 있도록 조정하는 작업

 형상 감사

: 기준선의 무결성을 평가하기 위해 확인, 검증, 검열 과정을 통해 공식적으로 승인하는 작업

 형상 기록(상태 보고)

: 형상의 식별, 통제, 감사 작업의 결과를 기록 관리하고 보고서를 작성하는 작업

* 베이스라인(단답형) : 개발 과정의 각 단계에서 나온 산출물들의 변화를 통제하는 시점

2) 공통 모듈 구현

* 모듈(서술형) : 하나의 소프트웨어 또는 하드웨어 단위

소프트웨어 설계에서 기능 단위로 분해하여 추상화되어 재사용 및 공유가 가능한 단위

* 모듈화(서술형) : 모듈을 통해 소프트웨어의 성능을 향상시키고 디버깅, 수정, 통합을 용이하게 하는 설계 기법

모듈화 기법 : 루틴, 메인 루틴, 서브 루틴

* 루틴 : 소프트웨어의 특정 동작을 수행하는 코드

* 공통 모듈

기능을 분할하고 추상화하여 성능 향상 및 유지 보수를 효과적으로 하기 위한 공통 컴포넌트 구현 기법

공통 모듈 구현 비용

: 모듈 개수  >>통합 비용 

: 모듈 개수 >>개발 비용 

* 공장에서 모듈(부품)생산할 때 모듈 개수가 많다면 인프라 구축으로 인해서 개발 비용은 별로 들지 않지만 통합적인 비용이 많이 들 수 있다. 반대로 공장에서 적은 모듈의 개수를 생산한다면 각각의 모듈에 대한 개발 비용이 들 수 있다.

* 결합도와 응집도

결합도 : 상호의존의 정도, 결합도가 약해야 품질이 상승

[ 결합도가 약한 순서 -> 강한 순서 ]

data stamp control external common – content

자스(잤으)니까 합격제외 공부는 내)처럼

자료-데이터 / 스탬프-자료구조 / 제어-다른 모듈에서 흐름 파악 / 외부-참조 / 공통-공유되는 / 내용-직접참조,다른모듈에서 사용

자료: 어떤 모듈이 다른 모듈을 호출하면서 매개 변수나 인수로 데이터를 넘겨주고, 호출 받은 모듈은 받은 데이터에 대한 처리 결과를 다시 돌려주는 방식

스탬프: 두 모듈이 동일한 자료 구조를 조회하는 경우

제어: 한 모듈이 다른 모듈의 상세한 처리 절차를 알고 있어 이를 통제하는 경우나 처리 기능이 두 모듈에 분리되어 설계된 경우, 다른 모듈에서 흐름을 제어

외부: 어떤 모듈에서 선언한 데이터를 외부의 다른 모듈에서 참조할 때

공통: 공유되는 공통 데이터 영역을 여러 모듈이 사용할 때

내용: 한 모듈이 다른 모듈의 내부 기능 및 그 내부 자료를 직접 참조하거나 수정할 때

( 다른 모듈에서 사용하는 경우 )

응집도 : 정보은닉 개념 확장, 응집도가 강할수록 품질이 좋음

[ 응집도가 강한 순서 -> 약한 순서]

functional sequential communication procedural temporal logical coincidental

기엽고 순진한 교회오빠는 절은 시러 노우

기능-단일 / 순차-나온것 입력으로 / 통신-동일한입출력 다른기능수행

절차-다수의 관련기능 순차수행 / 시간-특정시간 / 논리-유사한 성격 / 우연-서로 관련 없는 요소

기능적 : 모듈 내부의 모든 기능 요소들이 단일 문제와 연관되어 수행될 경우

순차적 : 모듈 내 하나의 활동으로부터 나온 출력 데이터를 그 다음활동의 입력 데이터로 사용할 경우

통신적(교환적) : 동일한 입출력을 사용하여 서로 다른 기능을 수행하는 구성 요소들이 모였을 경우

절차적 : 모듈이 다수의 관련 기능을 가질 때 모듈 안의 구성요소들이 그 기능을 순차적으로 수행할 경우

시간적 : 특정 시간에 처리되는 몇 개의 기능을 모아 하나의 모듈로 작성한 경우

논리적 : 유사한 성격을 갖거나 특정 형태로 분류되는 처리요소들이 하나의 모듈이 되는 경우

우연적 : 모듈 내부의 각 구성요소들이 서로 관련 없는 요소로만 구성된 경우

3) 공통 모듈 구현 절차

DTO/VO -> SQL -> DAO -> Service -> Controller -> View

* DTO(Data Access Object) : 프로세스 사이에서 데이터 전송

* VO(Value Object) : 고정 클래스가 가지는 Object

* DAO(Data Transfer Object) : 특정 타입의 DB의 추상 인터페이스를 제공하는 객체

*아키텍처 패턴 : 아키텍처를 설계할 때 참조할 수 있는 전형적인 해결방식 또는 예제를 의미한다. SW시스템 구조 구성위한 기본적인 윤곽 제시

장점:시행착오 줄임, 개발시간 단축, 고품질 SW생산,의사소통 잘됨

손쉬운 유지보수,개발전 특성예측 가능

종류:

*레이어패턴:특정 계층만을 교체해 시스템을 개선(OSI참조모델)

*클라이언트-서버:하나의 서버컴포넌트와 다수의 클라이언트컴포넌트로 구성

*파이프-필터:대표적으로 UNIX의 쉘이 있다. 필터 재사용성 좋고, 확장용이

* MVC 패턴 : Model, View, Controller로 이루어진 패턴(아키텍쳐)

 –모델: 서브시스템의 핵심기능과 데이터 보관

 – 뷰 : 사용자에게 정보를 표시한다.

 – 컨트롤러 : 사용자로부터 받은 입력을 처리한다.

*마스터-슬래이브 패턴: 장애허용시스템,병렬컴퓨터시스템에서 활용

*브로커패턴:분산환경 시스템에서 주로 활용

*피어-투-피어패턴:피어를 하나의 컴포넌트로 간주, 멀트스레딩 방식사용

*이벤트-버스:4가지 이벤트생성소스,수행리스너,통로채널,관리하는버스로 구성

*블랙보드패턴:음성인식,차량식별,신호해석등활용(해결책없는문제처리유용패턴

*인터프리터패턴:특정언어로 작성된 프로그램 코드를 해석.컴포넌트 설계사용

* 디자인 패턴 종류 설명

모듈간 인터페이스와 같은 코드를 작성하는 수준의 세부적인 구현 방안을 설계할 때 참조할 수 있는 전형적인 해결 방식 도는 예제를 의미한다.

디자인패턴은 재사용할 수 있는 기본형 코드들이 포함되어 있다.

생성 패턴
(Creational Pattern)
구조 패턴
(Structural Pattern)
행위 패턴
(Behavioral Pattern)
객체의 생성과 관련된 패턴클래스나 객체들을 조합하여
더 큰 구조로 만들 수 있게 해주는 패턴
클래스나 객체들이 서로 상호작용하는
방법이나 책임 분배 방법을 정의하는 패턴
추상 팩토리(Abstract                  Factory)
빌더(Builder)
팩토리 메소드(Factory                 Method)
프로토타입(Prototype)
싱글톤(Singleton)
어댑터(Adapter)
브리지(Bridege)
컴포지트(Composite)
데코레이터(Decorator)
퍼싸드(Facade)
플라이웨이트(Flyweight)
프록시(Proxy)
책임 연쇄(Chain of                   Responsibility)
커맨드(Command)
인터프리터(Interpreter)
반복자(Iterator)
중재자(Mediator)
메멘토(Memento)
옵서버(Observer)
상태(State)
전략(Strategy)
템플릿 메소드(Template                 Method)
방문자(Visitor)

< 생성 패턴 >팩프로 추운데 싱글쳤어 언빌리버블

추상팩토리는 서로 다른 부품을 조립만 하는 조립공장, 빌더는 건축가가 블록을 조립하는 모습, 팩토리 메소드는 부품부터 완성품가지 통째로 찍어내는 공장, 프로토타입은 원형을 두고 복제품을 만드는 것, 싱글톤은 식당에서 누구나 사용할 수 있지만, 하나뿐인 정수기를 연상해보세요.

* 추상 팩토리

 동일한 주제의 다른 팩토리를 묶어줌

구체적인 클래스에 의존하지 않고 서로 연관되거나 의존적인 객체들의 조합을 만드는 인터페이스를 제공하는 패턴

 * 빌더

생성과 표기를 분리해 복잡한 객체를 생성

 * 팩토리 메소드

생성할 객체의 클래스를 국한하지 않고 객체를 생성

객체 생성 처리를 서브 클래스로 분리해 처리하도록 캡슐화하는 패턴

 * 프로토타입

기존 객체를 복제함으로써 객체를 생성

 * 싱글톤

한 클래스에 한 객체만 존재하도록 제한

전역 변수를 사용하지 않고 객체를 하나만 생성하도록 하며, 생성된 객체를 어디에서든지 참조할 수 있도록 하는 패턴

< 구조 패턴 > 어브가 퍼플색 컴프데 샀어

어댑터는 전압을 맞춰주는 변압기, 브리지는 두 섬을 ᅟᅧᆫ결하는 다리, 컴포지트는 폴더와 파일을 합성한 것, 데코레이터는 온갖 것으로 장식된 눈사람, 퍼싸드는 외부의 리모컨 버튼만으로 복잡한 명령들을 간편하게 수행하는 것, 플라이웨이트는 부담을 가볍게 하기 위해 물품을 공유하는 것, 프록시는 내가 하기 어려운 법률업무를 대리해서 처리해주는 변호사라고 염두해두세요.

* 어댑터

인터페이스가 호환되지 않는 클래스들을 함께 이용할 수 있도록, 타 클래스의 인터페이스를 기존 인터페이스에 덧씌움

 * 브리지

추상화와 구현을 분리해 둘을 각각 따로 발전시킬 수 있음

 * 컴포지트

– 0개, 1개 혹은 그 이상의 객체를 묶어 하나의 객체로 이용할 수 있음

여러 개의 객체들로 구성된 복합 객체와 단일 객체를 클라리언트에서 구별없이 다루게 해주는 패턴

 * 데코레이터

기존 객체의 매서드에 새로운 행동을 추가하거나 오버라이드 할 수 있음

 * 퍼싸드

많은 분량의 코드에 접근할 수 있는 단순한 인터페이스를 제공

 * 플라이웨이트

다수의 유사한 객체를 생성, 조작하는 비용을 절감할 수 있음

 * 프록시

접근 조절, 비용 절감, 복잡도 감소를 위해 접근이 힘든 객체에 대한 대역을 제공함

< 행위 패턴 > 옴메, 반중인이 책방에서 상전노릇하네 템플스테이로 커몬

책임연쇄는 위에서 쏟아지는 물을 여러 물받이가 연속해서 나눠 받는 물레방아, 커맨드는 각종 명령어를 하나로 합쳐둔 것, 인터프리터는 언어 변역가, 반복자는 음악파일의 다음 곡 재생처럼 같은 명령의 반복, 중재자는 물품매매를 중개해주는 인터넷사이트, 메멘토는 기억속의 그때로 돌아가는 것, 옵서버는 변화를 지켜보고(옵서버) 알려주는 것. 상태는 환자의 상태에 따라 치료방법이 다른 것, 전략은 여러전략들은 만들고 원하는 전략을 선택하여 쓰는 것, 템플릿메소드는 세모,네모.동그라미를 그리는 방법들을 도형이라는 하나의 큰 틀(템플릿)로 묶는 것. 방문자는 책을 만들기 위해 저자.편집자.홍보팀을 번갈아가며 방문하는 것과 비교한다고 염두해 두세요.

* 커맨드

위의 명령어를 각각 구현하는 것보다는 위 그림처럼 하나의 추상 클래스에 메서드를 하나 만들고 각 명령이 들어오면 그에 맞는 서브 클래스가 선택되어 실행하는 것

실행될 기능을 캡슐화함으로써 주어진 여러 기능을 실행할 수 있는 재사용성이 높은 클래스를 설계하는 패턴

* Observer 패턴(2020 실기 1회 기출문제)

어떤 클래스에 변화가 일어났을 때, 이를 감지하여 다른 클래스에 통보해주는 것

한 객체의 상태가 바뀌면 그 객체에 의존하는 다른 객체들에게 연락이 가고 자동으로 내용이 갱신되는 패턴

 * 템플릿 메소드

상위 클래스에서는 추상적으로 표현하고, 그 구체적인 내용은 하위 클래스에서 결정되는 디자인 패턴

어떤 작업을 처리하는 일부분을 서브 클래스로 캡슐화해 전체 일을 수행하는 구조는 바꾸지 않으면서 특정 단계에서 수행하는 내역을 바꾸는 패턴

4) 팬 인 팬 아웃(2020 실기 1회 기출문제)

소프트웨어의 구성 요소인 모듈을 계층적으로 분석하기 위해서 팬 인, 팬 아웃 활용

팬 인 : 어떤 모듈을 제어하는 수, 해당 모듈로 들어오는 모듈의 수 (능동태 느낌)

팬 아웃 : 어떤 모듈에 의해 제어되는 수, 해당 모듈에서 나가는 모듈의 수 (수동태 느낌)

 * 공통 모듈 테스트 : 화이트 박스 테스트 // IDE 도구를 활용하여 디버깅 진행

화이트박스 검사

: 내부 소스코드를 확인하며 의도한 설계 흐름에 따라 코드가 실행되는지, 실행흐름에서 벗어나 불필요한 코드는 없는지 살펴봄 + 프로그램 로직을 이해하고 내부 구조와 동작을 검사하는 테스트 기법

블랙박스 검사

: (내부 코드를 보지 않고) 사용자 요구사항 시점에서 기능이 잘 작동하는지 살펴봄 + 인터페이스 오류, 입력값에 목표 결과값이 나오는지 등을 봄 

– JUnit : 자바 프로그래밍 언어용 단위 테스트 도구

어노테이션 : 주석을 달아 특별한 의미를 부여하는 메타데이터

* Assert 메소드

– JUnit에서 가장 많이 이용되는 단정(Assert) 메소드

– assertEquals(a, b) : 객체 a와 b가 일치함을 확인 (객체의 내용)

– assertSame(a, b) : 객체 a와 b가 같은 객체임을 확인 (객체 자체)

5) 배치 프로그램

* 배치 프로그램 : 사용자와 상호작용 없이 일련의 작업을 작업 단위로 묶어 정기적으로 반복 수행하는 일괄 처리 방법

* 배치 스케줄러 : 일괄처리를 위해 주기적으로 발생시키는 작업 지원 도구

 스프링 배치 : 대용량 처리를 제공하는 스케줄러

쿼츠 스케줄링 : 플러그인을 통해 유연성을 제공하는 오픈 소스 기반 스케줄러

– Cron 표현식 : 스케줄러를 실행시키기 위해 작업이 실행되는 주기를 설정하는 표현식

– Cron 표현식 순서 : 초 분 시 일 월 요일 연도

특수문자 의미

(1) * : 모든 값

(2) ? : 특정한 값이 없음

(3) – : 범위를 뜻함 (예) 월요일에서 수요일까지는 MON-WED로 표현

(4) , : 특별한 값일 때만 동작 (예) 월,수,금 MON,WED,FRI 

(5) / : 시작시간 / 단위  (예) 0분부터 매 5분 0/5

(6) L : 일에서 사용하면 마지막 일, 요일에서는 마지막 요일(토요일)

(7) W : 가장 가까운 평일 (예) 15W는 15일에서 가장 가까운 평일 (월 ~ 금)을 찾음

(8) # : 몇째주의 무슨 요일을 표현 (예) 3#2 : 2번째주 수요일

유형 : 이벤트 배치, 온디멘드 배치, 정기 배치

온디멘드 배치 : 사용자의 명시적 요구가 있을 때마다 실행하는 방법

정기 배치 : 정해진 시점(주로 야간)에 실행하는 배치

* 배치 프로그램이 가지는 필수 요소

>> 배치 프로그램 : 컴퓨터 프로그램 흐름에 따라 순차적으로 자료를 처리하는 방식

초기의 배치프로그램 방식은 사용자와 상호작용하는 것이 불가능했지만, 운영체제가 발전함에 따라 프로그램 입출력을 통해 상호작용하는 것이 가능해짐

즉, 개별적으로 어떤 요청이 있을 때마다 실시간으로 통신하는 것이 아닌 한꺼번에 일괄적으로 대량 건을 처리하는 것

 보통 정해진 특정한 시간에 실시함

사용하는 이유 : 업무의 효율성과 비효율적인 시스템의 과부하를 줄이기 위해서

대용량 데이터 : 대용량의 데이터를 처리할 수 있어야 함

자동화 : 심각한 오류 상황 외에는 사용자의 개입없이 동작해야 함

견고성 : 유효하지 않은 데이터의 경우도 처리해서 비정상적인 동작 중단이 발생하지 않아야 함

안정성 : 어떤 문제가 생겼는지 언제 발생했는지 등을 추적할 수 있어야 함

성능은 주어진 시간 내에 처리를 완료할 수 있어야 하고, 동시에 동작하고 있는 다른 애플리케이션을 방해하지 말아야 함

1. 인터페이스 구현

1) 인터페이스 산출물

* 인터페이스 설계서 ( 가장 큰 단위의 설계서 )

이기종 시스템 및 컴포넌트 간 데이터 교환 및 처리를 위해 각 시스템이 교환되는 데이터, 업무, 송수신 주체 등이 정의된 문서

상세기능 인터페이스 정의서 : 상세기능 인터페이스 목록 + 상세기능 인터페이스 정의서

시스템 인터페이스 정의서 : 시스템 인터페이스 목록 + 시스템 인터페이스 정의서

* 인터페이스 정의서

송수신 정보 구체화, 인터페이스 상세 정보

* 인터페이스 데이터 표준 확인

상호 연계하고자 하는 시스템 간 인터페이스 되어야 할 데이터 형식과 표준 정의

* 컴포넌트 명세서 : 컴포넌트 개요, 내부 클래스 동작, 인터페이스를 통해 외부와 통신하는 명세 정의

* 인터페이스 명세서 : 컴포넌트 명세서에 명시된 인터페이스 클래스의 세부정보를 명시한 명세서

2) EAI(Enterprise Application Interface)

 기업에서 운영되는 이기종 간의 시스템 연계 솔루션

EAI 방식 종류
Point to Point 방식1:1 단순 통합 방식
Hub &Spoke 방식허브 시스템을 통하여 데이터를 전송하는 중앙 집중형 방식
Message Bus 방식애플리케이션 사이에 미들웨어를 두고 연계하는 방식
Hybrid 방식내부 – Hub &Spoke 방식, 외부 – Message Bus 방식

3) ESB(Enterprise Service Bus)

기업에서 운영되는 이기종 시스템을 하나로 통합하여 관리하는 방식

* 느슨한 결합 : 서비스를 변경하여도 다른 서비스에 영향을 주지 않는 유연한 구조

* 어댑터 : 애플리케이션을 연결하는 EAI 핵심 장치

 EAI 방식ESB 방식
구성도APPESB(BUS)
개념미들웨어(Hub)를 이용하여 Biz로직을 중심으로기업 내 APP 통합 연계미들웨어(BUS)를 이용하여서비스 중심으로 서비스를 지원하기 위한 관련 시스템의 유기적 연계 (SOA의 토대가 됨)
특징단일 접점인허브 시스템을 통해 시스템을 통합하는 중앙 집중식 방식
– HUB장애 시 전체 영향
각 시스템을BUS를 통해 연결하므로 뛰어난 확장성, 유현성, 신속성 제공
– network에 의존적

4) 인터페이스 기능 구현

(1) 송신 측에서 필요한 데이터를 선택하여 전송

(2) 필요 항목에 대해서 데이터 전달

(3) 전달 후 수신 측으로부터 전달 여부에 대한 값 반환

* JSON(2020 실기 1회 기출문제)

비동기식 브라우저/서버 통신을 위해 속성-값”의 쌍으로 이루어진 오브젝트를 전달하기 위한 인간이 읽기 쉬운 텍스트를 사용하는 개방형 표준 포맷

* REST(단답형)

– URL 자원을 활용하여 HTTP 메서드를 주고받는 웹 아키텍처

* 직렬화(단답형)

데이터 구조나 오브젝트 상태를 다른 컴퓨터 환경에서 저장하고 재구성할 수 있는 포맷으로 변환하는 과정

5) 인터페이스 보안 취약점 및 보안 구현

* 스니핑(단답형) : 직접 공격하지 않고 데이터를 몰래 들여다보는 공격 기법

* 인터페이스 보안 취약점 ( 9장 내용과 동일 ) – 입어 보니 시원한 애 코 캡

 입력 데이터 검증 및 표현

 보안 기능

 시간 및 상태

 에러 처리

 코드 오류

 캡슐화

– API 오용

6) 데이터베이스 보안 적용 ( 9장 내용과 동일 )

* DB 암호화 알고리즘

대칭키 : 암호화와 복호화의 암호키가 동일 ( DES / AES / SEED )

: SEED : 블록 암호화

비대칭키 : 암호화와 복호화의 암호키가 다름 ( RSA / ECC / EIgamal )

: RSA : 공개키 암호화 알고리즘, 소인수분해

해시 : MD5 ( 2020 실기 1회 기출 ) / SHA

* DB 암호화 기법

– API 방식 : 애플리케이션 레벨에서 암호화 모듈을 적용

– Plug-In 방식 : DBMS에서 Plug-In 모듈로 동작하는 방식

– Hybrid 방식 : API 방식과 Plug-In 방식의 장점을 합친 방식

* IPSec(2020 실기 2회 기출) : IP 계층에서 무결성과 인증을 보장하는 인증 헤더와 기밀성을 보장하는 암호화를 이용한 IP 보안 프로토콜

* SSL/TLS : Application과 TCP/IP 계층 사이에서 웹 데이터를 암호화하고 전송 시 기밀정을 보장하는 공개키 기반 보안 프로토콜

* 데이터베이스 보안 기능 적용

데이터베이스 접근 권한

악의적 코드 삽입 금지

민감 데이터 관리

악의적 시도 시 에러 처리

7) 인터페이스 구현 검증(단답형)

 xUnit

:JAVA(Junit), C++(Cppunit), .Net(Nunit)  다양한 언어를 지원하는 단위 테스트 프레임워크

 STAF

: 서비스 호출 및 컴포넌트 재사용 등 다양한 환경을 지원하는 테스트 프레임워크

 FitNesse

: 웹 기반 테스트케이스 설계, 실행, 결과 확인 등을 지원하는 테스트 프레임워크

 NTAF

: FitNesse의 장점인 협업 기능과 STAF의 장점인 재사용 및 확장성을 통합한 NHN(Naver)의 테스트 자동화 프레임워크

 Selenium

: 다양한 브라우저 및 개발 언어를 지원하는 웹 애플리케이션 테스트 프레임워크

 watir

: Ruby를 사용하는 애플리케이션 테이트 프레임워크

8) 인터페이스 감시 도구

스카우터(단답형) : 애플리케이션 모니터링 및 DB 모니터링, 인터페이스 감시 기능 제공

인터페이스 구현 검증 프로세스

: 송신 측에서 인터페이스 대상 선택 전송 -> 인터페이스 객체 전송 -> 수신 측에서 수신 트랜잭션 결과 반환

9) 인터페이스 오류 처리 방법

사용자 화면에 오류 인지하도록 구현

인터페이스 오류 로그 생성

인터페이스 관련 테이블에 오류사항 기록

오류 처리 보고 시기

: 최초 발생 보고 -> 오류 처리 경과보고 -> 완료 보고

1. 화면 설계

1) UI ( 사용자 인터페이스 )

사용자와 시스템 사이에서 의사소통을 할 수 있도록 고안된 물리적 가상의 매개체

– CLI, GUI, NUI, OUI

* UI 설계 원칙 ( 2020 실기 2회 기출 문제 )

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

유효성 : 정확하고 완벽하게 사용자의 목표에 달성할 수 있어야 한다.

학습성 : 초보자와 숙련자 모두가 쉽게 배우고 사용 가능해야 한다.

유연성 : 사용자의 인터렉션을 최대한 포용하고 실수를 방지할 수 있어야 한다.

* UI 설계 지침

사용자 중심, 일관성, 단순성, 결과 예측 가능, 가시성, 표준화, 접근성, 명확성, 오류 발생 해결

* UI 요구사항 종류 : 기능적 비기능적 요구사항

2) UI 표준 정의

디자인 철학과 원칙에 기반하여 시스템에 공통적으로 적용되는 화면 간 이동, 화면 구성에 대한 규약

* UX : 제품과 시스템 사용하면서 느낀 사용자의 직접적, 간접적인 경험

* UI 구동 환경의 정의 : OS 확인, 웹 브라우저, 모니터 해상도, 프레임 시트

프레임 시트 키워드 : 프레임을 구분, 단일 프레임 웹 애플리케이션

* 리치 클라이언트(단답형) : 소프트웨어 실행을 클라이언트가 책임지는 기술

* 씬 클라이언트(단답형) : 소프트웨어 실행을 전적으로 서버가 책임지는 기술

* SSO(Single Sign On) (단답형) : 한 번의 로그인을 통해 다른 사이트에 자동으로 접속하여 이용하는 방법

3) UI 지침

UI 표준에 따라 UI 설계와 개발 시 따라야 하는 가이드 라인

* UI 개발 주요 기법(단답형)

– 3C 분석 : 고객, 경쟁사, 자가 분석

– SWOT : 강점, 약점, 기회, 위협 분석

시나리오 플래닝 : 불확실성이 높은 상황 변화를 예측하고 다양한 시나리오 설계

사용성 테스트(단답형) : 사용자가 직접 제품을 사용하면서 미리 작성된 시나리오에 맞춰 과제를 수행한 후 답하는 테스트

워크숍 : 소규모 과제, 회의 (세미나)

* 사용자 요구사항 도출

페르소나 : 잠재적인 사용자의 다양한 목적과 관찰된 행동 패턴을 응집시켜놓은 가상의 사용자

콘셉트 모델 정의 (브레인스토밍)

요구사항 매트릭스 : 페르소나의 목적을 기준으로 데이터 요구, 기능의 기반으로 만든 요구사항 표

정황 시나리오 : 요구사항 정의에 사용되는 초기 시나리오

이상적인 시스템 동작에 초점을 맞추는 시나리오

4) UI 설계 도구(단답형)

스토리보드 : UI 화면 설계를 위해 와이어 프레임과 데이터베이스 연동 등 구축하는 서비스의 정보가 수록된 문서

와이어 프레임 : 이해관계자들과 화면구성을 협의하거나 화면 단위로 대략적인 레이아웃만 구성하는 단계

프로토타입 : 정적인 화면으로 설계된 와이어 프레임, 스토리보드에 동적인 요소를 적용하여 실제 구현된 것처럼 시뮬레이션 가능한 모형

5) UI 흐름 설계 

업무의 흐름이나 업무 수행 시 일련의 클릭에 의해 화면의 위차와 흐름을 표현

* UI 설계서 구성

– UI 설계서 표지, 개정 이력, UI 요구사항 정의서, 시스템 구조, 사이트 맵, 프로세스 정의, 화면 설계

* 유스케이스

시스템이 액터에게 제공해야 하는 기능으로 시스템 요구사항이자 시스템의 기능

6) 설계 도구 분류

화면 설계 도구 : 파워 목업, 발사믹 목업, 카카오 오븐

프로토타이핑 도구 : UX 핀, 액슈어, 네이버 프로토나우

– UI 디자인 도구 : 스케치, 어도비 익스피리언스

1.  애플리케이션 테스트 관리

1) 애플리케이션 테스트

* 소프트웨어 테스트

개발된 응용프로그램이나 시스템이 사용자가 요구하는 성능이나 사용성, 안정성 등을 만족하는지 확인하고 소프트웨어 결함을 찾아내는 과정

오류 발견의 관점, 오류 예방의 관점, 품질 향상 관점

* 테스트 프로세스 : 테스트 계획 -> 분석/설계 -> 수행 -> 관리

* 소프트웨어 테스트 원리

테스팅은 결함이 존재하는 것을 밝혀내는 행동

완벽한 테스팅은 없다.

개발 초기에 테스팅을 시작 ( 개발 완료 후 테스팅을 시작하면 비용 및 시간 증가 )

결함의 집중 ( 결함은 한 모듈에 집중되어 있다 )

살충제 패러독스 ( 2020 실기 1회 기출문제 )

: 동일한 테스트 케이스로 테스트를 진행하면 더이상 새로운 결함을 찾을 수 없으므로 주기적으로 테스트 케이스를 점검하고 관리하여야 한다.

테스팅은 정황에 의존적

오류-부재의 궤변(서술형)

: 요구사항을 충족시켜주지 못한다면, 결함이 없다고 해도 품질이 높다고 볼 수 없는 소프트웨어 테스트 원리

* 소프트웨어 테스트 산출물

테스트 계획서(테스트 수행 계획), 테스트 케이스(테스트 항목 명세서, 설계 산출물), 테스트 시나리오(테스트 절차 명세), 테스트 결과서(테스트 리프팅)

정적 테스트 : 프로그램 실행 없이 구조를 분석하여 논리성을 검증 ( 동료검토, 인스펙션, 워크스루 )

동적 테스트 : 프로그램 실행을 요구하는 테스트 ( 화이트박스, 블랙박스 테스트 )

* 요구사항 검토(Requirements Review)

요구사항 명세서의 오류 확인 및 표준 준수 여부 등의 결함 여부를 검토 담당자들이 수작업으로 분석하는 방법

* 종류

 동료 검토(Peer Review) : 요구사항 명세서 작성자가 내용을 직접 설명, 동료들이 이를 들으면서 결함 발견

 워크 스루(Walk Trough) : 검토 회의 전 요구사항 명세서를 미리 배포하여 사전 검토 회의를 통해 결함 발견

 인스펙션(Inspection) : 요구사항 명세서 작성자를 제외한 다른 검토 전문가들이 결함 발견

 프로토타이핑 : 실제 개발될 소프트웨어에 대한 견본품을 만들어 최종 결과물 예측

 테스트 설계 : 테스트 케이스를 생성해 이후에 요구사항이 현실적으로 테스트 가능한지 검토

– CASE 도구 활용 : 일관성 분석을 통해 요구사항 변경사항의 추적 및 분석, 관리, 표준 준수 여부 확인

화이트 박스 테스트 : 내부 로직을 보면서 수행하는 구조 기반 테스트 (제어 구조/루프 테스트)

블랙박스 테스트 : 프로그램 외부의 사용자 요구사항 명세를 보면서 수행하는 기능 테스트 (경계값 분석/동등분할/결정테이블/상태전이/유스케이스)

검증 : 소프트웨어 과정을 테스트 ( 개발자 관점 )

확인 : 소프트웨어 결과를 테스트 ( 사용자 관점 )

2) 소프트웨어 테스트 유형 (단답형/서술형)

회귀 테스트 : 오류를 제거하거나 수정 후 새롭게 유입된 오류가 있는지 테스트

회복 테스트 : 고의로 실패 유도 후 정상 복귀 여부 확인하는 테스트

안전 테스트 : 소스 내의 보안적인 결함을 확인

강도 테스트 : 과부하 시 정상적인 동작을 하는지 테스트

성능 테스트 : 응답시간, 특정 시간, 처리량 등 시스템 반응 속도 테스트 (처응경쟈)

구조 테스트 : 시스템 내부의 경로나 소스코드 복잡도 테스트

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

3) 소프트웨어 테스트 종류

** 구조 기반 테스트 ( 화이트박스 테스트)

* 구문 커버리지

프로그램 내 모든 명령문을 적어도 한 번 수행

* 결정 커버리지

프로그램 내 전체 결정문이 적어도 한 번은 참과 거짓의 결과를 수행

프로그램 내의 전체조건식이 적어도 한 번은 참과 거짓의 결과를 수행하는 테스트 케이스

* 조건 커버리지

결정 명령문 내 각 조건이 적어도 한 번은 참과 거짓의 결과가 출력되도록 수행

전체 조건식과 결과와 관계없이 각 개별 조건식이 참/거짓 한 번만 모두 갖도록 개별 조건식을 조합하는 테스트 커버리지

* 조건-결정 커버리지

전체 조건 식 뿐 아니라 개별 조건식도 참, 거짓이 한 번 씩 결과가 되도록 수행

결정 명령문 내의 각 조건(개별조건)과 전체조건식이 적어도 한 번은 참과 거짓의 결과를 수행하는 테스트 케이스

* 변경 조건/결정 커버리지

각 개별 조건식이 다른 개별 조건식에 영향을 받지 않고 전체 조건식의 독립적 영향을 주도록 수행

* 다중 조건 커버리지

결정 포인트 내에 있는 모든 개별 식 조건의 모든 조합을 고려한 커버리지 

* 명세 기반 테스트 : 동등 분할, 경계값 분석, 결정 테이블, 유스케이스, 상태 전이 ( 블랙박스 테스트 )

* 경험 기반 테스트 : 블랙박스 테스트

* 테스트 케이스 : 특정 요구사항을 준수하는지 확인하기 위해 입력값, 실행조건, 예상 결과의 집합 

4) 테스트 오라클

테스트의 결과값이 참인지 거짓인지 판단하기 위해서 사전에 정의한 참 값을 입력하여 비교

* 종류

참 오라클 : 모든 입력값에 대해 기대하는 결과 생성, 모든 오류 검사

샘플링 오라클 : 특정 몇 개의 입력값에 대해 결과값을 제공

 휴라스틱 오라클 : 샘플 오라클을 개선한 것으로 특정 몇 개의 입력값에 대한 결과를 제공하고 나머지는 추정

일관성 검사 오라클 : 애플리케이션 변경이 있을 대 수행 전 후의 결과값이 동일한지 확인

* 테스트 레벨 : 테스트 활동의 그룹

단위 테스트통합 테스트시스템 테스트인수 테스트
단위 모듈, 서브루틴모듈 간 상호작용시스템 기능사용자 입장 테스트 베타/알파 테스트

* 테스트 시나리오 : 테스트를 수행하기 위한 테스트 케이스의 집합으로 테스트 케이스의 실행 순서와 절차를 작성한 문서

5) 통합 테스트

소프트웨어의 각 모듈 간의 인터페이스 관련 오류와 결함을 찾아내는 테스트

하향식 통합 : 깊이-너비, 스텁

상향식 통합 : 드라이버

빅뱅 통합 : 실제 모듈 테스트 진행

6) 테스트 자동화 도구(단답형)

테스트 도구를 활용하여 반복적인 테스트를 스크립트 형태로 구현하여 시간 단축과 비용 최소화

* 정적 분석 도구(2020 실기 2회 기출문제) : 애플리케이션을 실행하지 않고 테스트 수행

애플리케이션을 실행하지 않고 소스코드에 대한 표준 코딩, 코딩 스타일, 코드 복잡도 및 결함을 발견하기 위해 사용

* 성능 테스트 도구

애플리케이션 처리량, 응답시간, 경과시간에 대해 가상 사용자를 생성하여 테스트 실행

* 테스트 통제 도구

테스트 계획 및 관리를 위한 테스트 관리 도구

* 테스트 하네스 

테스트를 지원하기 위한 코드와 데이터를 말하며 단위 테스트에 사용하기 위해 개발자가 작성

* 테스트 슈트

테스트 대상 컴포넌트나 시스템에 사용되는 테스트 케이스 집합

* 테스트 케이스

입력값, 실행 조건, 기대 결과 등의 집합

* 테스트 스크립트

자동화된 테스트 케이스의 절차와 실행 순서 명시

* 목 오브젝트

사용자의 행위를 조건부로 사전에 입력해두면 예정된 행위를 수행하는 객체

7) 소프트웨어 결함

에러/오류 : 결함의 원인이 되는 것으로 인간의 실수에서 생성

결함/버그 : 에러나 오류가 원인이 되어 소프트웨어에 포함되어 있는 것

실패/문제 : 소프트웨어 결함이 시스템 실행 시 발생되어 시각적으로 문제를 확인

* 결함 추이 분석

분포 분석 : 결함의 수

추세 분석 : 시간의 흐름에 따른 결함의 수

에이징 분석 : 결함 상태의 지속시간 측정

* 테스트 커버리지 : 테스트 범위를 측정하는데 테스트 품질 측정 기술

* 구문 커버리지 – 결정 커버리지 – 조건/결정 커버리지 – 변경 조건 커버리지 – 다중 조건 커버리지

* 결함 심각도

치명적 – 주요 – 보통 – 경미 – 단순

* 결함 우선순위

치명적 – 높음 – 중간 – 낮음

8) 애플리케이션 성능 측정 지표( 2020 실기 1회 기출문제 )

* 처리량(Throughput)

일정 시간 내 애플리케이션이 처리하는 작업의 양

애플리케이션이 주어닌 시간에 처리할 수 있는 트랜잭션 수

* 응답시간(Response Time)

애플리케이션에 작업을 요청해서 응답 도착까지 걸린 시간

응답 후 입력에 대한 응답 출력(완료된 상태)

* 경과시간(Turn Around Time)

애플리케이션에 작업을 의뢰한 시간부터 처리가 완료될 때까지 걸린 시간

요구를 입력하여 트랜잭션 처리 후 출력(완료가 되지 않은 상태)

* 자원사용률(단답형)

애플리케이션이 작업을 처리할 동안의 CPU, MEM, DISK 등의 사용량

* 성능 테스트 도구 : JMeter, Load UI

* 시스템 모니터링 도구

스카우터 : 애플리케이션 및 OS 자원에 대한 모니터링 기능을 제공하는 소프트웨어

* 애플리케이션 성능 개선

나쁜 코드 : 다른 개발자가 로직을 이해하기 어렵게 작성된 코드, 동일한 처리 로직이 중복되게 작성된 코드 등

클린 코드 : 의미있는 이름, 간결하고 명확한 주석, 보기좋은 배치 ( 가독성, 유지보수, 프로그래밍 속도 증가 )

* 소스코드 품질 분석

정적 분석 도구 : 작성된 코드를 실행시키지 않고 분석

동적 분석 도구 : 애플리케이션을 실행하여 코드에 존재하는 메모리 누수 현황 파악 및 스레드의 결함 분석

* 애플리케이션 성능 개선 방안

소스코드 최적화

아키텍처 조정을 통한 성능 개선

프로그램 호출 순서 조정 적용

소스코드 품질 분석 도구 활용

메모리 사용 최적화 적용

입출력 발생의 최소화

– System.out.println() 사용 제외

1. SQL 응용

1) 절차형 SQL

특정 사용자가 실행 순서를 정해놓고 사용하는 SQL문

* 프로시저(서술형)

절차형 SQL문을 활용하여 사전에 정의해놓은 SQL문을 호출할 경우 특정 기능을 수행하는 트랜잭션 언어

DECLARE // 프로시저 선언부

BEGIN/END // 프로시저 시작

CONTROL // 제어부(조건/반복), 순차적 처리

SQL // DQL, DML

EXCEPTION // 예외사항 처리

TRANSCATION // DML 수행 취소 여부(ROLLBACK, COMMIT)

– CREATE OR REPLACE : 프로시저 생성 SQL문

* 사용자 정의 함수(서술형)

사용자가 정의하여 SQL문 처리 수행 후 단일 값으로 반환하는 절차형 SQL

DECLARE // 프로시저 선언부

BEGIN/END // 프로시저 시작

CONTROL // 제어부(조건/반복), 순차적 처리

SQL // DQL, DML

EXCEPTION // 예외사항 처리

RETURN // 단일 값 반환

* 트리거(서술형)

특정 테이블에 수정, 삭제, 삽입 등의 데이터 이벤트 발생 시 자동으로 DBMS에서 실행되도록 구현된 프로그램

종류

: 행 트리거 – 데이터 변환 시 실행

: 문장 트리거 – 트리거에 의해 한 번 실행

DECLARE // 프로시저 선언부

EVENT // 이벤트 부(FOREACHROW)

BEGIN/END // 프로시저 시작

CONTROL // 제어부(조건/반복), 순차적 처리

SQL // DQL, DML

EXCEPTION // 예외사항 처리

2) 응용 SQL 작성

* 집계 함수
여러 행과 테이블 전체로부터 하나의 결과값을 반환

– GROUP BY문 사용

– COUNT, SUM, AVG, MAX, MIN, STDDEV, VARIAN 함수 사용

* 그룹 함수

소 그룹 간의 중간 합계, 소계를 계산하여 산출하는 함수

– ROLLUP : 소계, 중간 집계 값 산출

– CUBE : 다차원 집계 생성

– GROUPING SET : 컬럼에 대한 개별 집계

* 윈도 함수

데이터베이스를 사용한 온라인 분석 처리 용도로 사용하기 위해 SQL에 추가한 함수

SELECT 함수명(파라미터) OVER PARTITION BY ORDER BY

순위함수행 순서 함수그룹 내 비율 함수
RANK()FIRST_VALUERATIO_TO_REPORT
DENSE_RANK()LAST_VALUEPERENT_RANK
ROW_NUMBER()  

* JDBC

자바 언어를 이용하여 DBMS에 질의하고 데이터를 조작하는 API 제공

* MyBatis

– DBMS에 질의하기 위해 SQL 쿼리를 별도의 파일에 분리하고 Mapping을 통해 SQL 실행

복잡한 JDBC 코드 단순화

– SQL문 거의 그대로 사용 가능

우수한 성능

* 동적 SQL : 조건에 따라 SQL문 구문 자체를 변경하고 조작이 가능

* DCL

– GRANT : 권한 부여 – ON TO WITH

– REVOKE : 권한 해제 – ON FROM CASCADE

1. 소프트웨어 개발 보안 구축

1) 소프트웨어 개발 보안

* 보안의 3대 요소(단답형)

기밀성(Confidentiality)

: 시스템 내의 정보와 자원은 인가된 사용자에게만 접근이 허용되며, 정보가 전송 중에 노출되더라도 데이터를 읽을 수 없음

무결성(Integrity)

: 시스템 내의 정보는 오직 인가된 사용자만 수정할 수 있음 + 완전성, 일관성, 데이터 훼손 및 파손 X

가용성(Availability)

: 인가받은 사용자는 언제라도 사용할 수 있음

* 인증(Authentication)- 시스템 내의 정보와 자원을 사용하려는 사용자가 합법적인 사용자인지를 확인하는 모든 행위

* 부인 방지(NonRepudiation)- 데이터를 송수신한 자가 송수신 사실을 부인할 수 없도록 송수신 증거를 제공함

* 보안 용어 : 자산, 위협, 취약점, 위험

2) 서비스 공격 유형 ( 키워드 중심 )

* DOS 공격

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

지역 시스템 공격 / 원격 네트워크 공격

* DDOS 공격

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

구성요소 : 핸들러, 에이전트, 마스터, 공격자, 데몬 프로그램

공격 대응 방안 : 보안 솔루션 운영, 차단 정책 업데이트, 시스템 패치

* XSS(크로스 사이트 스크립트)

검증되지 않은 외부 입력 데이터가 포함된 웹페이지가 전송되는 경우, 사용자가 해당 웹페이지를 열람함으로써 웹페이지에 포함된 부적절한 스크립트가 실행되는 공격

* SQL삽입(SQL Injection)

공격자가 입력한 데이터에 대한 유효성을 점검하지 않아 DB쿼리 로직이 변경되어 정보 유출 또는 DB의 변경을 가하는 공격

* CSRF ( 사이트 간 요청 위조 )

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

** 자원 고갈 공격

* SYN 플러딩

 3-hand-shaking 과정에서

* UDP 플러딩

대량의 UDP 패킷 생성하여 자원을 고갈시키는 공격

* 스머프 또는 스머핑

출발지 주소를 공격 대상의 IP로 설정하여 네트워크 전체에 ICMP Echo 패킷을 브로드캐스팅하여 마비시키는 공격으로 제3의 사이트를 이용해 공격하는 공격기법

* PoD(Ping of Death)

 큰 사이즈의 패킷을 의도적으로 목표시스템으로 발생시켜 시스템이 서비스할 수 없는 상태로 만드는 공격

** 애플리케이션 공격

* HTTP GET 플러딩

– Chache Control Attack -> Chaching 서버 유도

* Slowloris

– HTTP GET 메서드, 개행

* 루디(RUDY)

 요청 헤더의 Content-length 를 비정상적으로 크게 설정하여 메시지 바디 부분을 매우 소량으로 보내 계속 연결 상태를 유지시키는 공격

** 네트워크 서비스 공격

* 네트워크 스캐너, 스니퍼

보안 취약점 파악 -> 공격 도구

* 패스워드 크래킹

사전 크래킹과 무차별 크래킹 사용

* IP 스푸핑

– IP Address 위조

* 트로이 목마

정상적인 기능을 하는 프로그램인 척 위장하여 해당 프로그램 동작시 부작용을 일으키는 공격 기법

** 취약점 공격

* 랜드 어택

출발지(Source) IP와 목적지 (Destination) IP를 같은 패킷 주소로 만들어 보냄으로써 수신자가 자기 자신에게 응답을 보내게 하여 시스템의 가용성을 침해하는 공격기법

* 티어 드롭(Tear Drop)

– IP 패킷의 재조합 과정에서 잘못된 Fragment Offset 정보로 인해 수신시스템이 문제를 발생하도록 만드는 Dos 공격

* 봉크/보잉크

프로토콜의 오류 제어를 이용한 공격 기법 (시퀀스 번호)

3) 암호 알고리즘

무결성 및 기밀성 확보

* 암호 알고리즘의 암호 키들의 키워드와 비교할 내용을 잘 암기하기 ( 암호키의 Bit 크기 비교 )

대칭키블록암호DES, AES, SEED (단답형) * DES : 54Bits의 키와 64Bits의 블록 * AES : DES를 대체하는 알고리즘 * SEED : KISA 구현, 고속 블록, 128Bits
스트림 암호 방식RC4
비대칭키디피 헬만
RSA(단답형) : 소인수 분해의 어려움을 이용하여 암호화
해시SHA(단답형) (Secure Hash Algorithm) : 미국 표준
MD5 (2020 실기 1회 기출) : 128Bits 해시 알고리즘 * 1991년 로널드 라이베스트가 예전에 쓰이던 MD4를 대체하기 위해 고안한 128Bits 암호화 해시 함수

정보에 대한 보안 항목 식별 (정보 보호 관련 법률) : 개인정보 보호법, 정보통신망법, 신용정보법

* SSL(Secure Socket Layer) (단답형)

응용 계층과 TCP/IP 계층 사이에서 웹 데이터 암호화 및 전송 시 기밀성을 보장하는 공개키 기반의 보안 프로토콜

* 일방향 암호화 (단답형)

암호화 수행은 하지만 절대로 복호화가 불가능한 알고리즘

4) 정보 자산 주요 용어

자산, 사용자, 소유자, 관리자

자산 분류 기준 : 소프트웨어, 하드웨어, 데이터, 문서, 시설, 자원 설비, 인력

5) 보안 기능

인증 관리, 권한 간리, 암호화, 중요 정보 처리

* 솔트(Salt) (단답형)

일방향 해시 함수에서 다이제스트를 생성할 경우 추가되는 임의의 문자열

소금이 기본 양념이듯 원문에 가미하여 암호문을 다른 값으로 만드는 것

문자열의 앞 뒤에 난수생성을 통해 작성된 특정 문자열을 끼어넣는 상태로 해시를 돌림

6) 예외 처리/세션 통제

* 세션 하이제킹(단답형)

세션을 가로채어 정상적인 인증 절차를 무시하고 불법적으로 시스템 접속

7) 소프트웨어 개발 보안 적용 사례

– MS-SDL, Seven Touchpoints, CLASP

보안 취약점 : 외부 공격과 해킹으로 시스템의 보안 정책을 침해하는 보안 사고의 원인이 되는 보안 허점

보안 약점 : 개발 과정에서 발생할 수 있는 결함/버그와 같은 오류

8) 소프트웨어 개발 보안 구현

보안 취약점 제거, 보안 약점 방지

* 시큐어 코딩 가이드 : 입어 보니 시원한 애코캡

 입력 데이터 검증 및 표현

 보안 기능

 시간 및 상태

 에러 처리

 코드 오류

 캡슐화

– API 오용

(1) 입력 데이터 검증 및 표현 : SQL 삽입, XSS(크로스 사이트 스크립트)

* SQL Injection (SQL 삽입) (2020 실기 2회 기출)

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

* XSS(크로스 사이트 스크립트)

 웹 페이지에 악의적인 스크립트를 포함해 사용자 측에서 실행되게 유도하는 방법으로, 검증되지 않은 외부 입력이 동적 웹페이지 생성에 사용될 경우 전송된 동적 웹페이지를 열람하는 접속자의 권한으로 부적절한 스크립트가 수행되어 정보 유출 등의 공격을 유발할 수 있는 공격 기법

< 보안 취약점 보완 방법 >

– SQL 삽입 : PreparedStatement

– XSS : 치환 함수

(2) 보안 기능 : 인증, 권한 관리, 암호화

* 인증 관련 보안 약점

적절한 인증 X

반복된 인증 시도 제한 기능 부재 -> 무차별 공격

취약 패스워드 허용

* 권한 관리 보안 약점

주요 자원에 대한 잘못된 권한 설정

부적절할 인가

* 암호화 보안 약점

취약 암호화 알고리즘, 충분하지 않은 키 길이, 하드코딩된 비밀번호

부적절한 난수, 솔트없는 일방향 해시 함수 사용

* 시간 상태

경쟁 조건 : 메모리 공유되는 하나의 객체에 두 개 이상의 스레드가 동시 처리되는 상황

종료되지 않은 반복문

재귀 함수

* 에러 처리

오류 메시지 정보 노출 -> 최소한 정보 포함

오류 상황 대응 부재 -> try-catch 문

부적절한 예외 처리

(5) 코드 오류 : 타입 변환 오류, 메모리 부적절한 반환 / 개발자 오류

– Null Pointer 역참조

부적절한 자원 해제

해제된 자원 사용

초기화하지 않은 변수 사용

(6) 캡슐화

잘못된 세션에 의한 정보 노출 -> 싱글톤 패턴

제거되지 않은 디버그 코드

시스템 정보 노출

* 세션 : 서버와 클라이언트 간의 논리적인 연결

* 싱글톤 패턴 : 전역 변수를 사용하지 않고 하나의 객체를 만들어 어디서든지 참조할 수 있도록 하는 패턴

(7) API 오용 : 의도된 사용에 반하는 방법으로 API를 사용하거나 보안에 취약한 API 사용 시 발생

– DNS 의존한 보안 결점

취약한 API

* API(Application Programming Interface)

프로그램 개발 및 작성을 위한 서브 프로그램

9) 소프트웨어 개발 보안 테스트

보안 테스트 유형 : 화이트박스 테스트, 블랙박스 테스트

* 화이트 박스 테스트 : 프로그램 내부 로직을 보면서 수행하는 구조 기반 테스트

* 블랙박스 테스트 : 프로그램 외부 사용자의 요구사항 명세를 보면서 테스트하는 것 (성능 테스트)

* 정적 분석(2020 실기 2회 기출)

소프트웨어를 실행하지 않고 보안 약점 분석

* 동적 분석

소프트웨어 실행환경에서 보안 약점 분석

* 시큐어 코딩(단답형)

설계 및 구현 단계에서 해킹 등 공격을 유발하는 가능성이 있는 보안 취약점을 사전에 제거하고 안전한 소프트웨어를 만드는 코딩 기법

1. 운영체제의 특징

1) 운영체제

사용자가 컴퓨터 하드웨어를 쉽게 사용할 수 있도록 인터페이스를 제공하는 소프트웨어로 컴퓨터 시스템과 사용자의 상호작용할 수 있는 편리성을 제공

* 인터페이스 : 서로 다른 시스템 또는 장치 사이에서 정보를 공유하는 시스템 또는 경계

WindowsGUI 제공, 선점형 멀티태스킹 방식 제공,
자동 감지 기능, OLE(Object Linking and Embeded) 사용
Unix대화식 운영체제, 다중 작업 기능 제공, 다중 사용자 기능 제공,
이식성 제공, 계층적 트리구조 파일 시스템 제공
Linux유닉스 기반, 유닉스 특징, 오픈 소스,
다양한 리눅스 운영체제 종류
MAC유닉스 기반 GUI 운영체제 (Apple 사)
안드로이드(Android)리눅스 기반의 안드로이드 운영체제,
런 타임 라이브러리 제공, SDK

* 안드로이드(Android) (2020 실기 2회 기출)

휴대전화를 비롯한 휴대용 장치를 위한 운영체제와 미들웨어, 사용자 인터페이스 그리고 표준 응용 프로그램 등을 포함하고 있는 소프트웨어 스택이자 리눅스 모바일 운영체제이다. 개발자들이 자바와 코틀린 언어로 응용 프로그램을 작성할 수 있게 하였으며, 컴파일된 바이트코드를 구동할 수 있는 런타임 라이브러리를 제공한다.

* 운영체제 제어

– GUI (Graphic User Interface) : 마우스 클릭 등 그래픽 기반으로 제어

– CLI (Command Line Interface) : 사용자가 직접 명령어 입력 후 컴퓨터에 명령을 내리는 방식

* 리눅스/유닉스 계열 기본 명령어 (2020 실기 2회 기출)

쉘(Shell) : 컴퓨터 내부를 관리하는 커널과 사용자 간의 연결하는 명령어 창

* 운영체제 핵심 기능

중앙처리 장치, 메모리, 스토리지, 주변기기 관리

메모리 관리, 프로세스 관리

메모리에 있는 프로그램을 CPU로 이동시켜 관리

* MMU(단답형) (Memory Management Unit)

– CPU가 메모리에 접근하는 것을 관리하는 하드웨어 부품으로 가상 메모리를 실제 메모리 주소로 변환하는 장치

2) 프로세스 관리

생성 상태 : 사용자로 인해 프로세스가 생성된 상태

준비 상태 : CPU에 할당받을 수 있는 상태

실행 상태 : 프로세스가 CPU를 할당받아 동작 중인 상태

대기 상태 : 프로세스 실행 중 처리로 인해 CPU를 양도하고 대기 리스트에서 기다리는 상태

완료 상태 : 프로세스가 CPU 할당을 받고 주어진 시간에 완전히 수행한 상태

출처; 별랑님 블로그

* 디스패치

준비 상태에 있는 프로세스를 스케줄링하여 CPU에 할당

* 타이머 런 아웃(타임아웃)

– CPU에 할당된 프로세스가 지정된 시간이 초과되면 스케줄러에 의해 PCB 저장

* PCB(Process Control Block)

운영체제가 프로세스의 정보를 표현한 것

* 문맥 교환(단답형)

– CPU가 현재 실행하고 있는 프로세스의 상태를 PCB에 저장하고 다음 프로세스의 PCB로부터 문맥을 복원하는 작업

(1) 프로세스 스케줄링 : CPU를 사용하려는 프로세스 사이의 우선순위를 관리하는 작업

프로세스 스케줄링 이용 시 CPU 이용률 증가, 오버헤드 응답시간, 반환시간, 대기시간 감소

* 서비스 시간 : 프로세스가 결과를 산출하기 전까지 소요되는 시간

* 응답 시간 : Response Time으로 대기시간 + 수행시간

* 대기 시간 : 프로세스가 할당되기 전까지 대기 큐에서 대기하는 시간

* 응답률 : (서비스 시간 + 대기시간) / 서비스 시간 -> HRN(Highest Response Ratio Next) (2020 실기 1회 기출)

(2) 선점형 스케줄링

하나의 프로세스가 CPU에 할당되어 있을 때 우선순위가 높은 다른 프로세스가 현재 프로세스를 중단시키고 CPU를 점유하는 스케줄링 방식

라운드 로빈(RR), SRT(Shortest Remining Time First), 다단계 큐, 피드백 큐

* 라운드 로빈

– CPU 할당 시간 설정 후 프로세스가 할당된 시간 내 처리하지 못할 경우 큐 리스트의 가장 맨 뒤로 이동하고 다음 프로세스를 CPU에 할당하는 기법

* SRT

 가장 짧은 시간이 소요되는 프로세스를 먼저 처리하고 남은 시간이 짧은 프로세스가 리스트 큐에 생기면 CPU에 할당하는 기법

* 다단계 큐

작업들을 분할, 여러 개의 큐를 이용하여 상위 단계 작업에 의한 하위 단계 작업 선정 및 독자적인 스케줄링

* 다단계 피드백 큐

– FIFO + RR의 혼합, 마지막 단계는 RR 방식으로 처리

[정보처리기사 필기/2과목 소프트웨어 개발] – 정보처리기사 필기 ) 선점 스케줄링

(3) 비선점형 스케줄링

한 프로세스가 CPU를 할당받으면 작업 후 CPU 반환 시까지 다른 프로세스가 CPU에 할당하지 못하는 스케줄링 기법

우선순위, 기한부, FCFS, HRN, SJF

* 우선순위

프로세스 별로 우선순위가 주어지고, 우선순위에 따라 CPU를 할당함

* 기한부

작업들을 명시된 시간이나 기한 내 완료되도록 계획

* FCFS

프로세스가 대기 큐 리스트에 도착한 순서에 따라 CPU를 할당

* SJF

가장 작은 서비스 시간을 가진 프로세스를 우선순위로 하여 평균 대기 시간을 최소화시키는 기법

* HRN(2020 실기 1회 기출)

대기 중인 프로세스 중 현재 응답률이 가장 높은 프로세스를 우선순위

– (서비스 시간 + 대기 시간) / 서비스 시간

[정보처리기사 필기/2과목 소프트웨어 개발] – 정보처리기사 필기 ) 비선점 스케줄링

3) 가상화

물리적인 리소스들을 사용자에게 하나로 보이게 하거나 하나의 물리적인 리소스를 여러 개로 보이게 하는 기술

플랫폼 가상화 : 플랫폼 위에 독립된 환경을 만드는 기술

리소스 가상화 : 독립된 하드웨어에서 소프트웨어가 실행되는 것처럼 활용하는 기법

컴퓨터 가상화(Hyper V) : 물리적인 리소스를 논리적인 리소스로 사용

분산처리 기술 : 여러 대 컴퓨터를 이용하여 대용량 처리

4) 컴퓨터 클라우딩

인터넷을 통해 클라우드 서버를 접속하여 리소스를 제공하고 자원들을 네트워크를 통해서 어디서든지 접속할 수 있는 기술

인프라형(IaaS) : 서버, 스토리지 같은 시스템 자원 클라우드 제공

플랫폼형(PaaS) : 인프라 생성 및 관리하는 복잡함을 없애고 애플리케이션 개발과 실행 시 사용

소프트웨어형(SaaS) : 데이터는 중앙에 호스팅되고 사용자는 웹 브라우저 등의 클라이언트를 통해 접속하여 소프트웨어를 서비스 형태로 이용

5) 데이터 베이스

시스템과 프로그램이 사용할 목적으로 통합하여 관리되는 데이터의 집합

* 데이터베이스 종류

파일 시스템 : 파일에 이름을 부여하고 어디에 위치시켜야 하는지 등을 정의한 뒤 DB 전 단계의 데이터를 관리하는 방식

계층형 데이터베이스 관리시스템 : 데이터를 상하 종속적인 관계로 계층화하여 관리하는 DB

망형 데이터베이스 관리시스템 : 데이터 구조를 네트워크의 망 형태로 논리적으로 표현한 DB 모델

관계형 데이터베이스 관리시스템 : 데이터를 저장하는 테이블의 일부를 다른 테이블과 상하관계로 표시하며 상관관계를 정리한 시스템 ( ORACLE, SQL Server, My SQL, Maria DB )

* 데이터베이스 도구

– DB 관리자가 데이터베이스를 편리하고 쉽게 다를 수 있도록 도와주는 도구

– DB 생성 및 삭제, SQL 명령어 수행, 상태 모니터링, 사용자 계정 관리, DB 내보내기

* DBMS

데이터의 관리의 복잡성을 해결하는 동시에 데이터 생성 및 관리(데이터 추가, 삭제, 검색, 변경 및 보안, 백업, 권한 등의) 기능을 지원하는 소프트웨어

* 유형

키-값 DBMS : GET/PUT/DELETE 기능 제공

칼럼 기반 데이터 저장 DBMS : Key 안에 Column과 Value의 조합

문서 저장 DBMS : 값의 데이터 타입을 문서 타입으로 사용

그래프 DBMS : 그래프 데이터 표현

* 특징

데이터 무결성 : 데이터의 정확성, 일관성, 유효성이 유지되는 것

데이터 일관성 : 저장 후 데이터는 일정

데이터 회복성 : 장애 발생 시 회복 가능

데이터 보안성 : 불법적인 노출, 변경, 손실로부터 보호

데이터 효율성 : 응답시간, 저장 공간 활용 등 최적화

* ERD

업무 분석 결과로 도출된 엔티티(개체)와 엔티티(개체) 간의 관계를 도식화한 다이어그램

엔티티 : 현실 세계의 사물이나 사건으로 정의 ( 다이어그램에서 네모로 표현 )

속성 : 엔티티가 가지고 있는 요소 또는 성질 ( 다이어그램에서 원으로 표현 )

관계 : 두 엔티티 간의 관계를 정의 ( 다이어그램에서 마름모로 표현 )

6) 트랜잭션 ( 2020 실기 1회 기출 )

– DB 시스템에서 하나의 논리적인 기능을 수행하기 위한 작업의 기본 단위

원자성 (Atomicity) : 전체가 실패 또는 성공

일관성 (Consistency) : 트랜잭션 성공 이후 항상 일관된 DB 상태 유지

격리성 (Isolation) : 트랜잭션 실행 중 다른 트랜잭션 접근 불가

영속성 (Durability) : 성공된 트랜잭션 결과는 DB에 영속적으로 저장

* 트랜잭션의 특성

– Atomicity(원자성)

: 트랜잭션의 연산은 데이터베이스에 모두 반영되도록 완료(Commit)되든지 아니면 전혀 반영되지 않도록 복구(Rollback)되어야 한다.

: 트랜잭션 내의 모든 명령은 반드시 완벽히 수행되어야 하며, 모두가 완벽히 수행되지 않고 어느 하나라도 오류가 발생하면 트랜잭션 전부가 취소되어야 한다.

: 타인에게 송금하는 도중 장애가 발생하였을 경우 부작용을 방지하는 특성

– Consistency(일관성)

: 트랜잭션이 그 실행을 성공적으로 완료하면 언제나 일관성 있는 데이터베이스 상태로 변환한다.

: 시스템이 가지고 있는 고정 요소는 트랜잭션 수행 전과 트랜잭션 수행 완료 후의 상태가 같아야 한다.

– Isolation(독립성, 격리성, 순차성)

: 둘 이상의 트랜잭션이 동시에 병행 실행되는 경우 어느 하나의 트랜잭션 실행 중에 다른 트랜잭션의 연산이 끼어들 수 없다.(접근 불가)

: 수행중인 트랜잭션은 완전히 완료될 때까지 다른 트랜잭션에서 수행 결과를 참조할 수 없다.

– Durability(영속성, 지속성)

: 성공적으로 완료된 트랜잭션의 결과는 시스템이 고장나더라도 영구적으로 반영되어야 함

* 트랜잭션 상태

활동 상태 : 초기 상태, 트랜잭션이 실행 중인 상태

부분 완료 상태 : 마지막 명령문이 실행되고 난 후 가지는 상태

완료 상태 : 트랜잭션이 성공적으로 처리된 후 완료된 상태

실패 상태 : 정상적인 실행이 더 이상 진행되지 않는 상태

철회 상태 : 트랜잭션이 취소되고 DB가 트랜잭션 시작 전 상태로 환원

* 용어

– TCL : 트랜잭션의 결과를 허용하거나 취소하는 목적으로 사용

– COMMIT : 모든 작업을 정상적으로 처리하겠다고 트랜잭션을 확정하는 명령어

– ROLLBACK(2020 실기 2회 기출) : 트랜잭션의 실패로 작업을 취소하고, 이전 상태로 되돌리는 데이터 제어어

– CHECKPOINT : 트랜잭션을 저장하는 시기를 설정하는 명령어

  Trigger : 트랜잭션을 취소하는 이외의 조치를 명세할 필요가 있는 경우 메시지를 보내 어떤 값을 자동으로 갱신하도록 프로시저를 가동시키는 방법

7) CRUD

* 데이터베이스의 기본 연산

– CREATE : 생성 (SELECT FROM)

– READ : 조회 (INSERT INTO)

– UPDATE : 갱신 (UPDATE SET)

– DELETE : 삭제 (DELETE FROM)

8) 11장 응용 소프트웨어 단답형 및 서술형 예상 내용

* NoSQL (NOT Only SQL)

전통적인 RDBMS(관계형 데이터베이스 관리 시스템)와 달리 데이터 저장이 필요한 테이블 스키마가 필요하지 않고 Join 연산도 하지 않는 수평적 확장이 가능한 DBMS

* 온폴로지(단답형)

설계 시 개념, 속성, 관계를 컴퓨터가 이해할 수 있도록 서술

* 시맨틱 웹(단답형)

온폴로지를 이용하여 서비스 검색, 조합 등 기능들을 자동화하는 웹

* 데이터 마이닝(2020 실기 1회 기출)

대규모로 저장된 데이터 안에서 체계적이고 자동적으로 규칙이나 패턴을 찾아내는 기술

* 빅데이터

주어진 비용과 시간을 초과한 페타바이트 크기의 정형 데이터

9) 네트워크

원하는 정보를 수신자에게 정확하게 전달하기 위한 인프라

– WAN : 광대역 네트워크로 전송거리가 넓고 라우팅 알고리즘이 필요한 네트워크

– LAN : 근거리 네트워크로 작은 지역을 커버하는 네트워크

* OSI 7계층

파일 참고

OSI 7계층.hwp

0.06MB

* 프로토콜 : 이기종 시스템간 데이터 교환을 할 수 있도록 하는 표준화 통신 규약

* 프로토콜의 기본 요소(2020 실기 1회 기출) : 구문, 의미, 타이핑

* 네트워크 프로토콜 : 컴퓨터나 통신장비 사이에서 메시지를 교환하는 통신규약이나 규칙

* TCP(서술형/단답형)

근거리 통신망이나 인터넷에서 신뢰성있는 전송을 수행하는 프로토콜

특징 : 신뢰성 보장, 연결 지향적, 흐름제어, 혼잡제어

* UDP(서술형/단답형)

비연결성이고 신뢰성이 없으며 순서화되지 않는 데이터그램 서비스를 제공하는 통신 프로토콜

특징 : 비 연결성, 비 신뢰성, 순서화되지 않은 데이터그램 서비스 제공, 단순 헤더

[네트워크관리사] – 네트워크관리사2급) TCP/UDP

* IPv4

데이터 교환을 위해 32bit 주소체계를 갖는 네트워크 계층의 프로토콜

유니캐스트, 멀티캐스트, 브로드캐스트

* IPv6

차세대 인터넷 프로토콜로 IPv4의 주소 자원 고갈, 보안성 등 문제점을 해결하기 위해 개발된 128bit 주소체계를 갖는 프로토콜

유니캐스트, 멀티캐스트, 애니캐스트

* 패킷 스위칭

작은 블록의 패킷으로 데이터를 전송하며 전송하는 동안만 네트워크를 사용

* X.25(단답형)

두 단말장치가 패킷 통신망을 통해 원활한 패킷 전송을 하기 위한 프로토콜

* 프레임 릴레이

비동기 전송모드인 광대역 전송에 사용되는 스위칭 기법

* ATM(단답형)

비동기 전송모드인 광대역 전송에 사용되는 스위칭 기법

* 서킷 스위칭

네트워크 리소스를 특정 사용계층이 독점하여 통신하는 방식

10) 라우팅 프로토콜(단답형)

* 거리 벡터 알고리즘

인접 라우터와 정보를 공유하여 목적지까지의 방향과 거리를 결정

 RIP : 자율 시스템(AS) 내에서 사용하는 거리 벡터 알고리즘을 기반으로 개발된 통신규약으로 최대 홉수를 15개로 제한한 라우팅 프로토콜

 IGRP : RIP의 문제점을 개선하기 위해 개발된 통신규약으로 RIP보다 대규모로 복잡한 통신망에서의 운용을 상정한 규격으로 되어 있으며, 거리 백터 라우팅 알고리즘을 채용하여 목적 통신망까지의 경로는 지연, 회성의 대역폭, 신뢰성 및 부하를 고려하여 결정하는 프로토콜

* 링크 상태 알고리즘

링크 정보를 모든 라우터에게 전달하여 최적의 경로를 구성

 OSPF

 BGP : 규모가 큰 네트워크를 상호 연결하는 알고리즘

* 라우팅 프로토콜(Routing Protocol)

최종 목적지까지 패킷을 최소 비용 또는 최소 홉수를 알고리즘을 통해 적잘한 경로를 설정해주는 프로토콜

 RIP
(Routing Information Protocol)
OSPF
(Open Shortest Path First)
개념AS(Autonomous System) 내에서 사용하는 거리벡터 알고리즘에 기초하여 개발된 내부 라우팅 프로토콜RIP의 단점을 개선하기 위해 자신을 기준으로 하여 링크상태 알고리즘 기반으로 최단 경로를 찾는 라우팅 프로토콜
라우팅 테이블 전송 시기일정주기(30초)변화 발생시에만
최대 지원 네트워크 크기15255

1. 제품 소프트웨어 패키징

1) 제품 소프트웨어 패키징

개발이 완료된 소프트웨어를 고객에게 전달하기 위해 패키징 하는 과정

키워드 : 버전관리/릴리즈 노트, 고객 중심, 모듈화

* 모듈

소프트웨어 설계에서 기능 단위로 분해하고 추상되어 재사용 및 공유가 가능한 단위

* 모듈화(서술형)

모듈을 통해 제품 소프트웨어의 성능을 향상시키고 시스템의 통합, 시험 디버깅 및 수정을 용이하게 하는 소프트웨어 설계 기법

* 사용자 중심의 모듈 패키징 프로세스

기능 식별 >모듈화 >빌드 진행 >사용자 환경 분석 >패키징 적용 시험 >패키징 변경 개선

2) 릴리즈 노트

최종 사용자인 고객에게 잘 정리된 릴리즈 정보를 제공하는 문서, 현재 시제로 작성

정보 제공 : 릴리즈 노트에는 테스트 결과와 정보 포함

관리의 용이성 : 자동화, 릴리즈 정보를 체계적으로 관리

고려 사항 : 개발팀에서 작성, 명확, 정확, 완전한 정보 제공

* 구성 요소 (2020 실기 1회 기출)

헤더 : 문서 이름, 제품 이름, 버전 번호, 릴리즈 날짜

개요 : 제품 및 번경에 대한 간략한 전반적인 개요

* 릴리즈 노트 작성 프로세스(모정개 영정추)

모듈 식별 >릴리즈 정보 확인 >릴리즈 노트 개요 작성 >영향도 체크 >정식 릴리즈 노트 작성 >추가 개선 항목 식별

3) 제품 소프트웨어 패키징 도구

패키징 시 디지털 콘텐츠의 지식 재산권을 보호하고 관리하는 기능 제공, 안전한 유통 배포 보장하는 도구

4) 저작권 보호 패키징 도구

* DRM(디지털 저작권 관리) (단답형)

데이터의 안전한 배포를 활성화하거나 불법 배포를 방지하여 인터넷이나 기타 디지털 매체를 통해 유통되는 데이터의 저작권을 보호하기 위한 시스템

5) 암호화

텍스트, 콘텐츠 등을 암호문으로 만드는 기술

* 공개키 기반 구조(PKI), 대칭 및 비대칭 암호화 전자서명, 키 관리, 식별 기술, 저작권 표현, 암호화 파일 생성, 정책 관리, 크랙 방시, 인증

* 공개키 기반 구조(PKI)

공개키 암호화 방식 기반으로 디지털 인증서를 활용하는 소프트웨어, 하드웨어, 사용자 등을 총칭하는 암호 기술

* 대칭 및 비대칭 암호화 : 암호화 시 키, 복호화 키 생성

* 전자 서명 : 전자적 형태의 정보

[정보처리기사 실기/실기 정리] – 정보처리기사 실기) 9 소프트웨어 개발 보안 구축

* DOI(Digital Object Identifier) (단답형)

디지털 저작물에 특정 번호를 부여하는 일종의 바코드 시스템

* URI (단답형)

인터넷에 있는 자원을 나타내는 유일한 주소

* XrML (단답형)

디지털 콘텐츠, 웹 서비스 권리 조건을 표현한 XML 기반의 마크업 언어

* MPEG-21 (단답형)

멀티미디어 표준 규격

* XML (단답형)

 마크업 언어로 ‘키’와 ‘값’의 한 쌍으로 사람이 쉽게 알아볼 수 있는 오브젝트를 생성하는 언어

 
* JSON (단답형)
비동기 브라우저 / 서버 통신(AJAX)을 위해 속성-값 쌍, 키-값 쌍으로 이루어진 데이터 오브젝트를 전달하기 위해 인간이 읽을 수 있는 텍스트를 사용하는 개방형 표준 포맷

* 코드 난독화 (단답형)

 역공학을 통한 공격을 막기 위해 프로그램 소스를 알아보기 힘든 코