기타/정보처리기사실기

[정보처리기사 / 공부] 2021년 3회 정보처리기사 실기 기출문제

rinix_x 2022. 5. 6. 03:55
반응형

2021년 3회 정보처리기사 실기 기출문제를 정리해보았습니다.


1. 다음 JAVA코드에 대한 알맞은 출력값을 쓰시오.

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

답 : 3

 

2. 다음은 정보 보호 기술인 AAA에 대한 설명이다. 각 설명에 맞는 답을 고르시오
1) 시스템을 접근하기 전에 접근 시도하는 사용자의 신원을 검증 : Authentication
2) 검증된 사용자에게 어떤 수준의 권한과 서비스를 허용 : Authorization
3) 사용자의 자원(시간,정보,위치 등)에 대한 사용 정보를 수집 : Accounting

더보기

+ AAA는 유무선 이동 및 인터넷 환경에서 가입자에 대한 안전하고, 
신뢰성 있는 인증, 권한 검증 등의 기능을 체계적으로 제공하는 정보 보호 기술입니다.
신분을 확인하는 인증(authentication) 
접근·허가를 결정하는 인가(authorization)
리소스 사용정보를 수집·관리하는 계정(accounting)
위의 3가지를 통합한 보안소프트웨어로 3A라고도 합니다.

 

3. Grant의 기능에 대해 간략하게 약술하시오. 
사용자(User)에게 접속권한, 오브젝트 생성권한, DBA 권한 등을 부여할 수 있는 명령어

더보기

+ Grant는 사용자에게 접속권한, 오브젝트 생성권한, DBA 권한 등을 부여할 수 있는 명령어이며,
Revoke는 사용자에게 부여한 권한을 다시 회수하는 명령어입니다.

 

4. 다음 중, 설명에 대한 괄호( ) 안에 들어가는 내용에 대해 작성하시오.
( ) 스푸핑은 근거리 통신망 하에서 ( ) 메시지를 이용하여 상대방의 데이터 패킷을 중간에서 가로채는 중간자 공격 기법이다. 이 공격은 데이터 링크 상의 프로토콜인 (  )를 이용하기 때문에 근거리상의 통신에서만 사용할 수 있는 공격이다.
답 : 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. 다음 중, 설명에 대한 괄호 ( ) 안에 들어갈 알맞는 보기를 고르시오.
눈에 보이지 않는 것을 개념적으로 표현하는 것이 '추상화'라하며, 
이는 실세계의 복잡한 상황을 간결하고 명확하게 개념화(槪念化)하는 것이다.
( Aggregation )은 클래스들 사이의 전체 또는 부분 같은 관계를 나타내는 것이고,  
( Generalization )은 한 클래스가 다른 클래스를 포함하는 상위 개념일 때 IS-A관계라하며, 일반화 관계로 모델링한다.

더보기

+ UML :
UML(Unified Modeling Language)는 통합 모델링 언어라 불리며, 시스템을 모델로 표현해주는 대표적인 모델링 언어입니다.
+ UML 다이어그램 종류
1. 구조 다이어그램 (Structure Diagram) 
(1) 클래스 다이어그램 
(2) 객체 다이어그램
(3) 복합체 구조 다이어그램
(4) 배치 다이어그램
(5) 컴포넌트 다이어그램
(6) 패키지 다이어그램
2. 행위 다이어그램 (Behavior Diagram)
(1) 활동 다이어그램
(2) 상태 머신 다이어그램
(3) 유즈 케이스 다이어그램
(4) 상호작용 다이어그램
3. 클래스 다이어그램 (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

 

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 : 정적) 과
행위 다이어그램 (Structure Diagram : 동적) 으로 나뉘는데
클래스 다이어그램은 구조 다이어그램에 속합니다.

 

16. 다음 중, 설명에 대한 괄호() 안에 들어갈 알맞은 보기를 고르시오.

( ) 패턴은 객체지향 디자인 패턴이다. 
( )는 부모(상위) 클래스에 알려지지 않은 구체 클래스를 생성하는 패턴이며, 
자식(하위) 클래스가 어떤 객체를 생성할지를 결정하도록 하는 패턴이기도 하다. 
부모(상위) 클래스 코드에 구체 클래스 이름을 감추기 위한 방법으로도 사용한다.

답 : Factory method

 

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

 

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) 샌드위치 접근법 : 하향식과 상향식 접근법의 조합

 

 

 

다음 블로그를 참고 했습니다.

https://chobopark.tistory.com/217

반응형