문제 1. JAVA 싱글톤 문제 (부분점수 없음)
class Singleton {
private static Singleton instance = null;
private int count = 0;
static public Singleton getInstance() {
if(instance == null) {
instance = new Singleton();
return instance;
}
return instance;
}
public void count() {
count++;
}
public int getCount() {
return count;
}
}
public class SSO {
public static void main(String[] args) {
Singleton sg1 = Singleton.getInstance();
sg1.count();
Singleton sg2 = Singleton.getInstance();
sg2.count();
Singleton sg3 = Singleton.getInstance();
sg3.count();
System.out.print(sg1.getCount());
}
}
답:
3
문제 2. 다음은 정보 보호 기술인 AAA에 대한 설명이다. 각 설명에 맞는 답을 고르시오
(실제 기출문제에서는 답의 보기 중, A에 대한 보기가 주어집니다.(오답 중, Application 등..))
1. 시스템을 접근하기 전에 접근 시도하는 사용자의 신원을 검증
2. 검증된 사용자에게 어떤 수준의 권한과 서비스를 허용
3. 사용자의 자원(시간,정보,위치 등)에 대한 사용 정보를 수집
답:
1. Authentication
2. Authorization
3. Accounting
AAA는 유무선 이동 및 인터넷 환경에서 가입자에 대한 안전하고,
신뢰성 있는 인증, 권한 검증 등의 기능을 체계적으로 제공하는 정보 보호 기술입니다.
신분을 확인하는 인증(authentication)
접근·허가를 결정하는 인가(authorization)
리소스 사용정보를 수집·관리하는 계정(accounting)
위의 3가지를 통합한 보안소프트웨어로 3A라고도 합니다.
문제 3. Grant의 기능에 대해 간략하게 약술하시오.
답:
데이터베이스 사용자에게 사용 권한을 부여하는 데 사용하는 명령어이다.
해설
* DCL(Data Control Language)
- 데이터의 보안, 무결성, 회복, 병행 제어 등을 정의하는 데 사용하는 언어
- 데이터베이스관리자(DBA)가 데이터 관리를 목적으로 사용
* DCL의 유형
1. commit : 트랜잭션의 모든 변경 내용들을 영구적으로 데이터베이스에 반영하는 명령어
- 트랜잭션이 성공적으로 끝나면 데이터베이스가 새로운 일관성(Consistency) 상태를 가지기 위해 수행된 모든 변경을 데이터베이스에 반영하여 commit 하여야 함
2. rollback : 변경된 모든 내용들을 취소하고 데이터베이스를 이전 상태로 되돌리는 명령어
- 트랜잭션의 일부를 성공적으로 끝내지 못하면 데이터베이스가 비일관성(Inconsistency)인 상태를 가질 수 있기 때문에(즉 트랜잭션이 수행한 일부 변경이 데이터베이스에 반영될 가능성이 있기 때문에) 일부분만 commit된 트랜잭션은 rollback 되어야 한다.
3. grant : 데이터베이스 관리자가 데이터베이스 사용자에게 권한을 부여하는 명령어
- 부여할 수 있는 권한의 종류 : ALL, SELECT, INSERT, DELETE, UPDATE, ALTER
- WITH GRANT OPTION : 부여받은 권한을 다른 사용자에게 다시 부여할 수 있는 권한을 부여
예) GILDONG에게 STUDENT 테이블에 대한 모든 권한과 다른 사람에게도 권한을 부여할 수 있는 권한까지 부여
GRANT ALL ON STUDENT TO GILDONG WITH GRANT OPTION; |
4. revoke : 권한을 취소하기 위한 명령어
예) GILDONG에게 부여된 STUDENT 테이블에 대한 권한은 유지하고, 다른 사용자에게 권한을 부여할 수 있는 권한만 취소
( ② ) GRANT OPTION FOR ALL ON STUDENT FROM GILDONG; |
5. cascade : grant와 revoke의 추가적인 옵션 중 권한 취소 시 권한을 부여받았던 사용자가 다른 사용자에게 부여한 권한도 연쇄적으로 취소하는 옵션
문제 4. 다음 중, 설명에 대한 괄호( ) 안에 들어가는 내용에 대해 작성하시오.
(설명과 함께 동작과정 이미지가 있습니다.)
( ) 스푸핑은 근거리 통신망 하에서 ( ) 메시지를 이용하여 상대방의 데이터 패킷을 중간에서 가로채는 중간자 공격 기법이다. 이 공격은 데이터 링크 상의 프로토콜인 ( )를 이용하기 때문에 근거리상의 통신에서만 사용할 수 있는 공격이다.
답:
ARP
위 내용은 ARP 스푸핑에 대한 내용이고 ARP에 대해 알아보겠습니다.
ARP :
ARP는 (Address Resolution Protocol) 의 약자로 주소 결정 프로토콜이라 불립니다.
네트워크 상에서 IP주소를 물리적 네트워크 주소(이더넷)로
대응(bind)시키기 위해 사용되는 프로토콜이며,인터넷 계층에 속해있습니다.
문제 5. 다음은 Coupling에 대한 설명이다. 설명에 대한 Coupling 종류를 영문으로 작성하시오.
어떤 모듈이 다른 모듈의 내부 논리 조직을 제어하기 위한 목적으로 제어 신호를 이용하여 통신하는 경우의 결합도
하위 모듈에서 상위 모듈로 제어 신호가 이동하여 상위 모듈에게 처리 명령을 부여하는 권리 전도 현상이 발생
단순 처리할 대상인 값만 전달되는 게 아니라 어떻게 처리를 해야 한다는 제어 요소가 전달되는 경우
답:
Control Coupling
소프트웨어 공학에서 coupling이란 결합도를 의미합니다.
결합도는 약할수록 모듈의 독립성이 높아지는데,
내용 > 공통 > 외부 > 제어 > 스탬프 > 자료 결합도 순으로 결합도가 약해집니다.
영어용어의 출제가 빈번해지면서 영어용어도 같이 숙지할 필요가 있어보입니다.
내용 결합도(Content Coupling)
공통 결합도(Common Coupling)
외부 결합도(External Coupling)
제어 결합도(Control Coupling)
스탬프 결합도(Stamp Coupling)
자료 결합도(Data Coupling)
해설
- 결합도 : 상호의존의 정도, 결합도가 약해야 품질이 상승
[ 결합도가 약한 순서 -> 강한 순서 ]
data – stamp – control – external – common - content
자료-데이터 / 스탬프-자료구조 / 제어-다른 모듈에서 흐름 파악 / 외부-참조 / 공통-공유되는 / 내용-직접참조,다른모듈에서 사용
- data : 어떤 모듈이 다른 모듈을 호출하면서 매개 변수나 인수로 데이터를 넘겨주고, 호출 받은 모듈은 받은 데이터에 대한 처리 결과를 다시 돌려주는 방식
- stamp : 두 모듈이 동일한 자료 구조를 조회하는 경우
- control : 한 모듈이 다른 모듈의 상세한 처리 절차를 알고 있어 이를 통제하는 경우나 처리 기능이 두 모듈에 분리되어 설계된 경우, 다른 모듈에서 흐름을 제어
- external : 어떤 모듈에서 선언한 데이터를 외부의 다른 모듈에서 참조할 때
- common : 공유되는 공통 데이터 영역을 여러 모듈이 사용할 때
- content : 한 모듈이 다른 모듈의 내부 기능 및 그 내부 자료를 직접 참조하거나 수정할 때
( 다른 모듈에서 사용하는 경우 )
문제 6. OSI 7 Layer의 설명으로 해당되는 설명의 답을 작성하시오.
1. 물리계층을 통해 송수신되는 정보의 오류와 흐름을 관리하여 안전한 정보의 전달을 수행할 수 있도록 도와주는 역할
(물리적으로 연결된 두 노드 사이의 데이터 전송, 오류 제어)
2. 데이터를 목적지까지 가장 안전하고 빠르게 전달하는 기능
(경로 제어, 패킷 전달)
3. 수신자에서 데이터의 압축을 풀 수 있는 방식으로 된 데이터 압축
답:
1. 데이터링크
2. 네트워크
3. 표현
OSI 7 Layer :
OSI 7 Layer란 네트워크에서 통신이 일어나는 과정을 단계별로 파악하기 위해 7단계로 나눈 것을 말합니다.
1 Layer - 물리계층(Physical Layer)
단순 데이터를 전기적인 신호로 변환(on/off)해서 주고받는 기능만 하며,
케이블, 리피터, 허브를 통해 데이터를 전송합니다.
2 Layer - 데이터 링크계층(DataLink Layer)
물리계층을 통해 송수신되는 정보의 오류와 흐름을 관리하여 안전한 정보의 전달을 수행하도록 역할합니다.
MAC주소를 가지고 통신을 합니다.
3 Layer - 네트워크 계층(NetWork Layer)
전송 데이터를 목적지까지 경로를 찾아 전송하는 계층입니다.주소(IP)를 정하고, 경로(route)를 선택하여 패킷을 전달하는 것이 핵심입니다.
4 Layer - 전송 계층(Transport)
데이터를 전송하고 전송 속도를 조절하며 오류가 발생된 부분은 다시 맞춰주며,
주로 TCP프로토콜을 사용합니다.
5 Layer - 세션 계층(Session)
네트워크의 양쪽 연결을 관리하고 지속적으로 연결을 시켜줍니다.
TCP/IP의 세션을 만들고 없애는 것을 반복합니다.
6 Layer - 표현 계층(Presentation)
응용계층으로부터 전달받거나 전송하는 데이터의 인코딩(언어처리) 및 디코딩이 이루어 집니다.
JPEG,TIFF,GIF 등의 다양한 포멧을 지원합니다.
7 Layer - 응용계층(Application)
사용자가 네트워크에 접근할 수 있도록 도와줍니다.
사용자에게 보이는 유일한 계층으로 메일전송/인터넷접속 등의 작업을 수행합니다.
문제 7. 다음 중, 설명에 대한 괄호 ( ) 안에 들어갈 알맞는 보기를 고르시오.
(실제 기출문제에서는 답에 대한 영어용어의 보기가 주어집니다.)
눈에 보이지 않는 것을 개념적으로 표현하는 것이 '추상화'라하며,
이는 실세계의 복잡한 상황을 간결하고 명확하게 개념화(槪念化)하는 것이다.
( 1 )은 클래스들 사이의 전체 또는 부분 같은 관계를 나타내는 것이고,
( 2 )은 한 클래스가 다른 클래스를 포함하는 상위 개념일 때 IS-A관계라하며, 일반화 관계로 모델링한다.
답:
1. Aggregation
2. Generalization
UML다이어그램의 구조 다이어그램안에 클래스 다이어그램에 대한 종류 문제입니다.
UML :
UML(Unified Modeling Language)는 통합 모델링 언어라 불리며,
시스템을 모델로 표현해주는 대표적인 모델링 언어입니다.
UML 다이어그램 종류
1. 구조 다이어그램 (Structure Diagram)
(1) 클래스 다이어그램 (이곳에 해당됩니다.)
(2) 객체 다이어그램
(3) 복합체 구조 다이어그램
(4) 배치 다이어그램
(5) 컴포넌트 다이어그램
(6) 패키지 다이어그램
2. 행위 다이어그램 (Behavior Diagram)
(1) 활동 다이어그램
(2) 상태 머신 다이어그램
(3) 유즈 케이스 다이어그램
(4) 상호작용 다이어그램
클래스 다이어그램 (Class Diagram) :
시간에 따라 변하지 않는 시스템의 정적인 면을 보여주는 대표적인 UML 구조 다이어그램이며,
시스템을 구성하는 클래스들 사이의 관계를 표현합니다.
UML에서 제공하는 클래스 사이의 관계 :
(1) 연관 관계 (association) : 클래스들이 개념상 서로 연결되어 있음을 나타냅니다.
(2) 일반화 관계 (generalization) : 상속 관계를 설명합니다. (위 문제 참조)
(3) 집합관계 :
1) 집약 관계(aggregation) : 클래스 사이의 전체 또는 부분 같은 관계를 나타냅니다. (객체 라이프 타임 : 독립적)
2) 합성 관계 (composition) : 클래스 사이의 전체 또는 부분 같은 관계를 나타냅니다. (객체 라이프 타임 : 의존적)
(4) 의존 관계 (dependency) : 연관 관계와 같이 한 클래스가 다른 클래스에서 제공하는 기능을 사용합니다.
(5) 실체화 관계 (realization) : 인터페이스와 구현 클래스 사이의 관계를 나타냅니다.
문제 8. 다음은 테스트케이스의 구성요소에 대한 설명이다. 괄호 ( ) 안에 들어갈 알맞는 보기를 고르시오.
(실제 기출문제에서는 답에 대한 보기가 주어집니다.)
답:
1. 테스트 조건
2. 테스트 데이터
3. 예상 결과
테스트 케이스란 특정 프로그램의 부분 및 경로를 실행해보거나,
요구사항에 준수하는지 확인하기 위해 개발된 입력 값, 조건, 예상된 결과 세트입니다.
케스트 케이스를 함으로써 오류감소 / 비용감소 / 의사소통의 효과가 나타납니다.
테스트 케이스의 설계 기법 종류로는
블랙박스 기법의 명세기반 / 경험기반 기법과
화이트박스 기법의 구조기반 기법이 있습니다.
문제 9. 다음 중, 설명에 대한 괄호 ( ) 안에 들어갈 알맞는 보기를 고르시오.
(실제 기출문제에서는 답에 대한 보기 중, 영문 보기가 주어집니다.)
( ) 통해 요구사항 명세를 입력 조건과 출력 조건 간의 논리적 관계로 표현하고,
이를 기반으로 테스트케이스를 도출한다.
( )의 ‘원인(causes)’은 입력 조건을 의미하고 ‘결과(effects)’는 입력 조건의 결과를 의미하며,
원인과 결과 간의 논리적 관계를 AND, OR, NOT 같은 boolean 연산자를 사용하여 표현한다.
답:
cause effect graph
동적 테스트(Dynamic Test)
- 테스트데이터를 이용해 실제 프로그램을 실행함으로써 오류를 찾는 과정입니다.
• 명세 기반 테스트(Black Box Test)
1) 신택스 기법(Syntax Analysis)
2) 동등 분할 기법(Equivalence Partitioning Analysis)
3) 경계 값 분석 기법(Boundary Value Analysis)
4) 원인-결과 그래프 기법(Cause-Effect Graph Analysis)
5) 의사결정 테이블 기법(Decision Table Analysis)
• 구현 기반 테스트(White Box Test)
1) 문장 검증 기준(Statement Coverage)
2) 분기 검증 기준(Branch Coverage)
3) 조건 검증 기준(Condition Coverage)
4) 분기/조건 검증 기준(Branch/Condition Coverage)
5) 다중 조건 검증 기준(Multiple Condition Coverage)
6) 기본 경로 테스트(Basic Path Test)
문제 10. 다음 중, 설명에 대한 괄호 ( ) 안에 들어갈 알맞는 보기를 고르시오.
( )는 블록 암호의 일종으로, 미국 NBS (National Bureau of Standards, 현재 NIST)에서 국가 표준으로 정한 암호이다.
( )는 64비트 평문을 64비트 암호문으로 암호화하는 대칭키 암호 알고리즘이다.
( )의 키는 7비트마다 오류검출을 위한 정보가 1비트씩 들어가기 때문에 실질적으로는 56비트이다.
답:
DES
DES(Data Encryption Standard)와 AES(Advanced Encryption Standard)는 대칭키 암호화 방식 중 하나입니다.
DES의 취약점을 보완하기 위해 만들어진 고급 암호화 표준 방식이 AES입니다.
DES와 다르게 128비트 평문을 128비트로 암호화 하였으며,
10/12/14 라운드 수와 이에 대응해 128/192/256비트의 키길이를 갖습니다.
(AES-128/AES-192/AES-256) 하기 때문에 안전하여 현재 보편적으로 사용되는 암호화 방식입니다.
문제 11. 다음 Java 코드에 대한 알맞는 출력값을 쓰시오.
public class testco {
public static void main(String[] args) {
int a = 3, b = 4, c = 3, d = 5;
if((a == 2 | a == c) & !(c > d) & (1 == b ^ c != d)) {
a = b + c;
if(7 == b ^ c != a) {
System.out.println(a);
} else {
System.out.println(b);
}
} else {
a = c + d;
if(7 == c ^ d != a) {
System.out.println(a);
} else {
System.out.println(d);
}
}
}
}
답:
7
& : 비트연산자로써 같은 자리를 비교했을때 모두 같을 경우 True / 아니면 False
| : 비트연산자로써 같은 자리를 비교했을때 하나라도 조건이 맞을 경우 True / 아니면 False
^ : XOR연산자로써 두 값이 같으면 False / 아니면 True(=> 둘 중 하나만 true일 때 true가 됨)
문제 12. 다음 C언어에 대한 알맞는 출력값을 쓰시오.
#include <stdio.h>
int main(){
int *arr[3];
int a = 12, b = 24, c = 36;
arr[0] = &a;
arr[1] = &b;
arr[2] = &c;
printf("%d\n", *arr[1] + **arr + 1);
}
답:
37
*array[1] = 24
**array + 1 = 12 + 1 = 13
24 + 13 = 37
문제 13. 다음은, 테이블에서 조건값을 실행한 화면이다. 이에 대한 알맞는 결과값을 작성하시오.
답:
4
cross join은 join을 해서 나올 수 있는 모든 행의 조합을 보여주는 것으로 각 결과를 곱해주면 됩니다.
즉, S로 시작하는 A.NAME의 개수는 2개, T를 포함하는 A.NAME의 개수 또한 2개이므로 2*2 = 4가 됩니다.
문제 14. 다음 파이썬 코드이다. 알맞는 출력값을 쓰시오.
a,b = 100, 200
print(a==b)
답:
False
여기서는 앞글자를 대문자로 표기하는 것이 포인트입니다.
문제 15. 다음 중, 설명에 대한 괄호 ( ) 안에 들어갈 알맞는 답을 작성하시오.
( ) 다이어그램은 문제 해결을 위한 도메인 구조를 나타내어 보이지 않는 도메인 안의 개념과 같은 추상적인 개념을 기술하기 위해 나타낸 것이다.
또한 소프트웨어의 설계 혹은 완성된 소프트웨어의 구현 설명을 목적으로 사용할 수 있다.
( ) 다이어그램의 형식은 ( )를 포함하여 속성(attribute)과 메서드(method)가 있다.
답:
클래스
UML(Unified Modeling Language)은 통합 모델링 언어라고 합니다.
UML를 사용하면 의미가 명확하고 소통이 원활해지며, 전체 시스템 구조와 클래스 간의 의존성 파악도 쉬우며, 원활한 유지보수를 위한 문서 활용으로도 사용됩니다.
UML다이어그램은
구조 다이어그램 (Structure Diagram : 정적) 과
행위 다이어그램 (Behavior Diagram : 동적) 으로 나뉘는데
클래스 다이어그램은 구조 다이어그램에 속합니다.
문제 16. 이것은 디자인 패턴 종류 중 상위 클래스에서 인터페이스만 정의하고 실제 생성은 서브 클래스가 담당하는 패턴이다. [보기]에서 알맞은 답안을 찾아 쓰시오.
[보기]
ㄱ. Factory Method | ㄴ. Observer | ㄷ. Template Method ㄹ. Abstract Factory | ㅁ. Command | ㅂ. Facade |
답:
ㄱ. Factory Method
해설
* MVC 패턴 : Model, View, Controller로 이루어진 패턴
생성 패턴 (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회 기출문제)
- 어떤 클래스에 변화가 일어났을 때, 이를 감지하여 다른 클래스에 통보해주는 것
- 한 객체의 상태가 바뀌면 그 객체에 의존하는 다른 객체들에게 연락이 가고 자동으로 내용이 갱신되는 패턴
* 템플릿 메소드
- 상위 클래스에서는 추상적으로 표현하고, 그 구체적인 내용은 하위 클래스에서 결정되는 디자인 패턴
- 어떤 작업을 처리하는 일부분을 서브 클래스로 캡슐화해 전체 일을 수행하는 구조는 바꾸지 않으면서 특정 단계에서 수행하는 내역을 바꾸는 패턴
문제 17. 다음 C언어에 대한 알맞는 출력값을 쓰시오.
#include <stdio.h>
struct jsu {
char name[12];
int os, db, hab, hhab;
};
int main(){
struct jsu st[3] = {{"데이터1", 95, 88},
{"데이터2", 84, 91},
{"데이터3", 86, 75}};
struct jsu* p;
p = &st[0];
(p + 1)->hab = (p + 1)->os + (p + 2)->db;
(p + 1)->hhab = (p+1)->hab + p->os + p->db;
printf("%d\n", (p+1)->hab + (p+1)->hhab);
}
답:
501
jsu에 들어간 데이터 {name, os, db, hab, hhab}
p = &st[0]; :
p = {"데이터1", 95, 88}
(p+1)→hab = (p+1)→os + (p+2)→db; :
(p+1) = {"데이터2", 84, 91}, (p+2) = {"데이터3", 86, 75}
(p+1)→os + (p+2)→db : 84 + 75 = 159
(p+1)→hhab = (p+1)→hab + p→os + p→db; :
(p+1)→hab + p→os + p→db : 159 + 95 + 88 = 342
printf("%d", (p+1)→hab + (p+1)→hhab) :
(p+1)→hab + (p+1)→hhab : 159 + 342 = 501
문제 18. 다음은, 파일 구조(File Structures)에 대한 설명이다. 괄호 ( ) 안에 들어갈 알맞는 답을 작성하시오.
파일 구조는 파일을 구성하는 레코드들이 보조기억장치에 편성되는 방식으로 접근 방식에 따라 방식이 달라진다.
접근 방법 중, 레코드들을 키-값 순으로 정렬하여 기록하고, 레코드의 키 항목만을 모은 ( )을 구성하여 편성하는 방식이 있으며, 레코드를 참조할 때는 ( ) 이 가리키는 주소를 사용하여 직접 참조할 수 있다. 파일 구조에는 순차 접근, ( ) 접근, 해싱 접근이 있다.
답:
인덱스(색인)
* 해설
- 인덱스 : 검색 연산의 최적화를 위해 키값과 포인터의 쌍으로 구성되는 데이터 구조
- 적용기준 : 분포도가 10~15%이내
- 특징
분포도가 좋은 칼럼은 단독으로 생성
자주 조합되어 사용되는 칼럼은 결합 인덱스로 생성
지나치게 많은 인덱스는 오버헤드 발생 가능
문제 19. 다음 설명에 대한 알맞는 답을 영문약어로 작성하시오.
( )는 사용자가 그래픽을 통해 컴퓨터와 정보를 교환하는 환경을 말한다.
이전까지 사용자 인터페이스는 키보드를 통해 명령어로 작업을 수행시켰지만
( )에서는 키보드 뿐만 아니라 마우스 등을 이용하여 화면의 메뉴 중 하나를 선택하여 작업을 수행한다.
화면에 아이콘을 띄어 마우스를 이용하여 화면에 있는 아이콘을 클릭하여 작업을 수행하는 방식이다.
대표적으로는 마이크로소프트의 Windows, 애플의 Mac 운영체제 등이 있다.
답:
GUI문제 20. 다음은 소프트웨어 통합 테스트에 대한 설명이다. 괄호 ( ) 안에 들어갈 알맞는 답을 작성하시오.
( 1 ) 방식은 이름에서도 알 수 있듯이, 하위 모듈부터 시작하여 상위 모듈로 테스트를 진행하는 방식이며,
이 방식을 사용하기 위해서는 ( 2 )가 필요하다.
( 2 )는 이미 존재하는 하위 모듈과 존재하지 않은 상위 모듈에 대한 인터페이스 역할을 한다.
답:
1. 상향식
2. 테스트 드라이버