안녕하세요. 2021년 3회 정보처리기사 실기 기출문제를 정리해보았습니다.
기출문제이면서 보완설명을 덧붙여 정리하였으니 도움이 되었으면 좋겠습니다. (녹색은 답 / 파랑색은 해설입니다.)
정보처리기사 개편안인 2020년 시험부터 기출문제를 정리하였습니다.
[2021년 3회] 정보처리기사 실기 기출문제
1. 다음 Java 코드에 대한 알맞는 출력값을 쓰시오.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
|
class Connection {
private static Connection _inst = null;
private int count = 0;
static public Connection get() {
if(_inst == null) {
_inst = new Connection();
return _inst;
}
return _inst;
}
public void count() { count ++; }
public int getCount() { return count; }
}
public class testcon {
public static void main(String[] args) {
Connection conn1 = Connection.get();
conn1.count();
Connection conn2 = Connection.get();
conn2.count();
Connection conn3 = Connection.get();
conn3.count();
System.out.print(conn1.getCount());
}
}
|
cs |
3
1.
conn1을 생성하여 Connection.get()을 호출할 때,
_inst는 null이므로 Connection() 객체를 생성합니다.
(객체를 생성하면 인스턴스를 생성하고 참조값을 return하기 때문에
여기서 부터는 _inst가 null이 아니게 됩니다.)
conn1.count() 는 0에서 count++ 하므로 1이 됩니다.
2.
conn2를 생성하고 다시 get()을 호출하면 _inst는 null이 아니기 때문에
객체를 생성하지 않고 count 값을 그대로 가지고 갑니다.
그래서 conn2.count() 는 1에서 count++ 하므로 2가 됩니다.
3. conn3.count()도 마찬가지로 위의 시스템처럼 진행되므로 2에서 count++로 3이 됩니다.
2. 다음은 정보 보호 기술인 AAA에 대한 설명이다. 각 설명에 맞는 답을 고르시오
(실제 기출문제에서는 답의 보기 중, A에 대한 보기가 주어집니다.(오답 중, Application 등..))
1. 시스템을 접근하기 전에 접근 시도하는 사용자의 신원을 검증
2. 검증된 사용자에게 어떤 수준의 권한과 서비스를 허용
3. 사용자의 자원(시간,정보,위치 등)에 대한 사용 정보를 수집
1.Authentication
2.Authorization
3.Accounting
AAA는 유무선 이동 및 인터넷 환경에서 가입자에 대한 안전하고,
신뢰성 있는 인증, 권한 검증 등의 기능을 체계적으로 제공하는 정보 보호 기술입니다.
신분을 확인하는 인증(authentication)
접근·허가를 결정하는 인가(authorization)
리소스 사용정보를 수집·관리하는 계정(accounting)
위의 3가지를 통합한 보안소프트웨어로 3A라고도 합니다.
3. Grant의 기능에 대해 간략하게 약술하시오.
사용자(User)에게 접속권한, 오브젝트 생성권한, DBA 권한 등을 부여할 수 있는 명령어
Grant는 사용자에게 접속권한, 오브젝트 생성권한, DBA 권한 등을 부여할 수 있는 명령어이며,
Revoke는 사용자에게 부여한 권한을 다시 회수하는 명령어입니다.
4. 다음 중, 설명에 대한 괄호( ) 안에 들어가는 내용에 대해 작성하시오.
(설명과 함께 동작과정 이미지가 있습니다.)
( ) 스푸핑은 근거리 통신망 하에서 ( ) 메시지를 이용하여 상대방의 데이터 패킷을 중간에서 가로채는 중간자 공격 기법이다. 이 공격은 데이터 링크 상의 프로토콜인 ( )를 이용하기 때문에 근거리상의 통신에서만 사용할 수 있는 공격이다.
ARP
위 내용은 ARP 스푸핑에 대한 내용이고 ARP에 대해 알아보겠습니다.
ARP :
ARP는 (Address Resolution Protocol) 의 약자로 주소 결정 프로토콜이라 불립니다.
네트워크 상에서 IP주소를 물리적 네트워크 주소(이더넷)로
대응(bind)시키기 위해 사용되는 프로토콜이며,인터넷 계층에 속해있습니다.
5. 다음은 Coupling에 대한 설명이다. 설명에 대한 Coupling 종류를 영문으로 작성하시오.
어떤 모듈이 다른 모듈의 내부 논리 조직을 제어하기 위한 목적으로 제어 신호를 이용하여 통신하는 경우의 결합도
하위 모듈에서 상위 모듈로 제어 신호가 이동하여 상위 모듈에게 처리 명령을 부여하는 권리 전도 현상이 발생
control
소프트웨어 공학에서 coupling이란 결합도를 의미합니다.
결합도는 약할수록 모듈의 독립성이 높아지는데,
내용 > 공통 > 외부 > 제어 > 스탬프 > 자료 결합도 순으로 결합도가 약해집니다.
영어용어의 출제가 빈번해지면서 영어용어도 같이 숙지할 필요가 있어보입니다.
내용 결합도(Content Coupling)
공통 결합도(Common Coupling)
외부 결합도(External Coupling)
제어 결합도(Control Coupling)
스탬프 결합도(Stamp Coupling)
자료 결합도(Data Coupling)
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비트로 암호화 하였으며,
하기 때문에 안전하여 현재 보편적으로 사용되는 암호화 방식입니다.
11. 다음 Java 코드에 대한 알맞는 출력값을 쓰시오.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
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);
}
}
}
}
|
cs |
7
& : 비트연산자로써 같은 자리를 비교했을때 모두 같을 경우 True / 아니면 False
| : 비트연산자로써 같은 자리를 비교했을때 하나라도 조건이 맞을 경우 True / 아니면 False
^ : XOR연산자로써 두 값이 같으면 False / 아니면 True
12. 다음 C언어에 대한 알맞는 출력값을 쓰시오.
1
2
3
4
5
6
7
8
9
10
11
12
13
|
#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);
}
|
cs |
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. 다음 파이썬 코드이다. 알맞는 출력값을 쓰시오.
15. 다음 중, 설명에 대한 괄호 ( ) 안에 들어갈 알맞는 답을 작성하시오.
( ) 다이어그램은 문제 해결을 위한 도메인 구조를 나타내어 보이지 않는 도메인 안의 개념과
같은 추상적인 개념을 기술하기 위해 나타낸 것이다.
또한 소프트웨어의 설계 혹은 완성된 소프트웨어의 구현 설명을 목적으로 사용할 수 있다.
( ) 다이어그램의 형식은 ( )를 포함하여 속성(attribute)과 메서드(method)가 있다.
클래스
UML(Unified Modeling Language)은 통합 모델링 언어라고 합니다.
UML를 사용하면
의미가 명확하고 소통이 원활해 지며,
전체 시스템 구조와 클래스 간의 의존성 파악도 쉬우며,
원활한 유지보수를 위한 문서 활용으로도 사용됩니다.
UML다이어그램은
구조 다이어그램 (Structure Diagram : 정적) 과
행위 다이어그램 (Behavior Diagram : 동적) 으로 나뉘는데
클래스 다이어그램은 구조 다이어그램에 속합니다.
16. 다음 중, 설명에 대한 괄호 ( ) 안에 들어갈 알맞는 보기를 고르시오.
(실제 기출문제에서는 답에 대한 보기 중, 영문 보기가 주어집니다.)
( ) 패턴은 객체지향 디자인 패턴이다.
( )는 부모(상위) 클래스에 알려지지 않은 구체 클래스를 생성하는 패턴이며,
자식(하위) 클래스가 어떤 객체를 생성할지를 결정하도록 하는 패턴이기도 하다.
부모(상위) 클래스 코드에 구체 클래스 이름을 감추기 위한 방법으로도 사용한다.
Factory method
17. 다음 C언어에 대한 알맞는 출력값을 쓰시오.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
#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);
}
|
cs |
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)에 대한 설명이다. 괄호 ( ) 안에 들어갈 알맞는 답을 작성하시오.
파일구조는 파일을 구성하는 레코드들이 보조기억장치에 편성되는 방식으로 접근 방식에 따라 방식이 달라진다.
접근 방법중, 레코드들을 키-값 순으로 정렬하여 기록하고, 레코드의 키 항목만을 모은 ( )을 구성하여 편성하는 방식이 있으며, 레코드를 참조할 때는 ( ) 이 가르키는 주소를 사용하여 직접 참조할 수 있다. 파일 구조에는 순차 접근, ( ) 접근, 해싱 접근이 있다.
인덱스 (색인)
19. 다음 설명에 대한 알맞는 답을 영문약어로 작성하시오.
( )는 사용자가 그래픽을 통해 컴퓨터와 정보를 교환하는 환경을 말한다.
이전까지 사용자 인터페이스는 키보드를 통해 명령어로 작업을 수행시켰지만
( )에서는 키보드 뿐만 아니라 마우스 등을 이용하여 화면의 메뉴 중 하나를 선택하여 작업을 수행한다.
화면에 아이콘을 띄어 마우스를 이용하여 화면에 있는 아이콘을 클릭하여 작업을 수행하는 방식이다.
대표적으로는 마이크로소프트의 Windows, 애플의 Mac 운영체제 등이 있다.
GUI
20. 다음은 소프트웨어 통합 테스트에 대한 설명이다. 괄호 ( ) 안에 들어갈 알맞는 답을 작성하시오.
( 1. ) 방식은 이름에서도 알 수 있듯이, 하위 모듈부터 시작하여 상위 모듈로 테스트를 진행하는 방식이며,
이 방식을 사용하기 위해서는 ( 2. )가 필요하다.
( 2. )는 이미 존재하는 하위 모듈과 존재하지 않은 상위 모듈에 대한 인터페이스 역할을 한다.
1. 상향식
2. 테스트 드라이버
모듈을 통합하는 과정에서 모듈 간 호환성의 문제를 찾아내기 위해 수행되는 테스트입니다.
즉, 모듈 간의 인터페이스가 올바르게 작동하는지를 테스트하게 됩니다.
통합 테스트에는 아래와 같은 방식이 존재합니다.
1. 빅뱅(Big Bang) 접근법 : 모든 구성 요소들을 한꺼번에 통합된 후에 테스트 수행
2. 점증적(incremental) 접근법 : 논리적으로 연관된 두개 또는 그 이상의 모듈을 조합시켜서 수행
(1) 하향식(Top Down) 접근법 :
소프트웨어 시스템의 제어 흐름이 위에서 아래로 발생
(테스팅을 위해 스텁의 도움이 필요)
(2) 상향식(Bottom Up) 접근법 :
모든 모듈들이 테스트될 때까지 더 낮은 레벨에 있는 각 모듈은 더 위에 있는 모듈과 함께 테스트 수행
(테스팅을 위한 드라이버의 도움이 필요)
(3) 샌드위치 접근법 : 하향식과 상향식 접근법의 조합
'Exam & Study' 카테고리의 다른 글
[쉬운설명] URI, URN, URL 개념 설명!! (0) | 2021.10.26 |
---|---|
[쉬운설명] 인터넷 네트워크의 통신방법 (IP,TCP,UDP,PORT,DNS) (0) | 2021.10.23 |
정보처리기사 실기 흐름 쉽게 이해하는 방법 (꿀팁&스토리텔링!!) (15) | 2021.10.03 |
[2021년 2회] 정보처리기사 실기 기출문제!! (15) | 2021.09.02 |
[2020년~] 정보처리기사 실기 족보 3탄!! (feat. 요약) (3) | 2021.07.09 |
댓글