자격증/정처기

[정보처리기사 실기] 2021년 3회 기출문제 풀이

lakedata 2025. 2. 14. 06:17

정처기 실기 21년 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

싱글톤 패턴: 객체의 인스턴스가 오직 한개만 생성되는 패턴 

static은 클래스내부에서 별도의 인스턴스선언없이 바로사용가능함

클래스
Connection conn1 = Connection.get(); 이지
Connection conn1 = new Connection.get(); 가아님
Connection 클래스의 _inst는 서로 공유하게됨

 

2. 다음은 정보 보호 기술인 AAA에 대한 설명이다. 각 설명에 맞는 용어를 적으시오.

(1) 시스템을 접근하기 전에 접근 시도하는 사용자의 신원을 검증
(2) 검증된 사용자에게 어떤 수준의 권한과 서비스를 허용
(3) 사용자의 자원(시간,정보,위치 등)에 대한 사용 정보를 수집
더보기

정답:

(1) Authentication(인증)

(2) Authorization(인가)

(3) Accounting(계정관리)

 

AAA (Triple-A)

. 인증 (Authentication) : 사용자가 네트워크 접속 전에 시스템에서 사용자 신원 확인

. 권한부여 (Authorization) : 검증된 사용자에게 사용가능한 접근 권한 확인

. 계정관리 (Accounting) : 사용자의 자원 사용에 대한 정보 수집 (과금, 감사, 보고서)

 

3. 데이터 제어어(DCL) 중 GRANT 에 대하여 설명하시오.

더보기

데이터베이스 사용자에게 사용 권한을 부여하는데 사용하는 명령어

 

DCL = GRCR
GRANT, REVOKE, COMMIT, ROLLBACK

 

4. 다음은 스푸핑 공격에 대한 설명이다. 괄호안에 들어갈 알맞은 답안을 작성하시오.

( ) 스푸핑은 근거리 통신망 하에서 ( ) 메시지를 이용하여 상대방의 데이터 패킷을 중간에서 가로채는 중간자 공격 기법이다. 
이 공격은 데이터 링크 상의 프로토콜인 (  )를 이용하기 때문에 근거리상의 통신에서만 사용할 수 있는 공격이다.
더보기

정답: ARP

 

5. 다음은 Coupling에 대한 설명이다. 설명에 대한 Coupling 종류를 영문으로 작성하시오.

어떤 모듈이 다른 모듈의 내부 논리 조직을 제어하기 위한 목적으로 제어 신호를 이용하여 통신하는 경우의 결합도이다.
하위 모듈에서 상위 모듈로 제어 신호가 이동하여 상위 모듈에게 처리 명령을 부여하는 권리 전도 현상이 발생할 수 있다.
더보기

정답: 제어(control) 결합도

결합도 강한순서  - 내공외제스자 (내 (축구)공 외제쓰자)
내용결합도
공통결합도
외부결합도
제어결합도
스탬프결합도
자료결합도

https://inpa.tistory.com/entry/OOP-💠-객체의-결합도-응집도-의미와-단계-이해하기-쉽게-정리#스탬프_결합도_stamp_coupling

 

6. OSI 7 Layer에 대한 설명이다. 다음 각 설명에 해당되는 계층을 적으시오.

(1) 물리계층을 통해 송수신되는 정보의 오류와 흐름을 관리하여 안전한 정보의 전달을 수행할 수 있도록 도와주는 역할
(2) 데이터를 목적지까지 가장 안전하고 빠르게 전달하는 기능
(3) 수신자에서 데이터의 압축을 풀수 있는 방식으로 된 데이터 압축
더보기

정답: 
(1) 데이터링크
(2) 네트워크
(3) 표현

물데네전세표응

 

7. 다음 객체지향 추상화에 대한 설명 중 괄호 안에 들어갈 알맞은 용어를 적으시오.

(  A  )은/는 클래스들 사이의 전체 또는 부분 같은 관계를 나타내는 것이고,
(  B  )은/는 한 클래스가 다른 클래스를 포함하는 상위 개념일 때 IS-A관계라하며, 일반화 관계로 모델링한다.
더보기

정답:
(A) Aggregation
(B) Generalization

연의일실 포집

 

8. 다음은 테스트케이스의 구성요소에 대한 설명이다. 괄호 ( ) 안에 들어갈 알맞는 보기를 고르시오.

테스트 데이터, 테스트 시나리오, 예상 결과, 테스트 조건, 테스트베드, 테스트시스템
더보기

정답:

(1) 테스트 조건
(2) 테스트 데이터
(3) 예상 결과

 

9. 아래에서 설명하는 테스트 기법은 무엇인가?

입력 자료 간의 관계와 출력에 영향을 미치는 상황을 체계적으로 분석 후 효용성이 높은 테스트 케이스를 선정해서 테스트하는 기법
더보기

정답: Cause Effect Graph (원인 결과 그래프)

동경결상 유분페원비
동등분할 테스트 / 경계값 분석 테스트 / 결정 테이블 테스트 / 상태 전이 테스트 / 유스케이스 테스트 / 분류 트리 테스트 / 페어와이즈 테스트 / 원인-결과 그래프 테스트 / 비교 테스트

 

10. 다음에서 설명하는 블록 암호 알고리즘을 적으시오.

이것은 미국 NBS (National Bureau of Standards, 현재 NIST)에서 국가 표준으로 정한 암호 알고리즘으로, 
64비트 평문을 64비트 암호문으로 암화하는 대칭키 암호 알고리즘이다. 키는 7비트마다 오류검출을 위한 정보가 1비트씩 들어가기 때문에 실질적으로는 56비트이다. 현재는 취약하여 사용되지 않는다.
더보기

정답: DES

DES - 64비트 평문을 64비트 암호문으로 암호화하는 대칭키 암호 알고리즘

 

IBM에서 개발, 미국 NBS에서 국가 표준으로 발표

블록 크기 64비트 / 키 길이 56비트 / 16라운드 (페이스펠 구조)

 

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

 

^는 XOR연산으로 0 1 or 1 0 일 때만 1입니다.
not 연산자(!) > 사칙연산(+,*,/.-) > 관계 연산자(==, >=, !=) > 비트 연산자(&, ^, |) > 논리 연산자(&&, ||)

if((a == 2 | a == c) & !(c > d) & (1 == b ^ c != d)) { 
// if ( ( 0 | 1 ) & !( 3 > 5 ) & ((1 == 4) ^ (3 != 5)) ) ==> ( 1 & 1 & 1 ) ==>1(true)
  a = b + c; // 실행 a=7

   if(7 == b ^ c != a) {    
// if( 7==4 ^ 3 != 7 ) ==> (0 ^ 1) ==> 1(true)

    System.out.println(a); // 실행 7 (출력)
   } else {     // ↓실행안함
   System.out.println(b);
   }
 } else {      // ↓실행안함
   a = c + d;
   if(7 == c ^ d != a) {
   System.out.println(a);
   } else {
   System.out.println(d);
   }

 

12. 다음 C언어 코드에 대한 알맞는 출력값을 쓰시오.

#include 
int main(){
  int *arr[3];
  int a = 12, b = 24, c = 36;
  arr[0] = &a;
  arr[1] = &b;
  arr[2] = &c;

  printf("%dn", *arr[1] + **arr + 1);
}
더보기

정답: 37


arr[i] == *(arr + i)

 

주소 연산자 : &(주소값)

참조 연산자 : *

 

int n = 100; //변수 선언

int *ptr = &n; //포인터 변수

  • int n : 일반 변수 선언과 동일하게 선언
  • int ptr : 변수명 앞에 포인터를 의미하는 을 붙이면 포인터용 변수로 선언하게 된다.
  • &n : 변수 앞에 &를 붙이면 해당 변수의 값의 메모리의 주소값을 가져온다

즉, *arr == arr[0] == &a

 arr=&arr[0]
*arr = arr[0] = &a
**arr = 12 (**arr  은 arr[0] 의 주소번지)
**arr + 1 = 12+1 // 13

 

13. 다음은, 테이블에서 조건값을 실행한 화면이다. 이에 대한 알맞는 결과값을 작성하시오.

더보기

정답: 4


크로스조인은 카티션곱으로 경우는 3x2=6개인데
조건에 t2 테이블에 있는 s% (앞글자 s인건들)  , %t%(글자안에 t가 들어있는것) 
where 절에 의해 allen 2개행은 배제되고 남은4개가 답

 

14. 다음 파이썬 코드의 알맞는 출력값을 쓰시오.

a,b = 100, 200 
print(a==b)
더보기

답: False

자바,C에서는 true, false
파이썬에서는 True, False
int가 아니라 0도 안됌

 

15. 다음은 UML의 다이어그램에 대한 설명이다. 어떤 다이어그램에 대한 설명인가?

이 다이어그램은 문제 해결을 위한 도메인 구조를 나타내어 보이지 않는 도메인 안의 개념과 같은 추상적인 개념을 기술하기 위해 나타낸 것이다.
또한 소프트웨어의 설계 혹은 완성된 소프트웨어의 구현 설명을 목적으로 사용할 수 있다. 이 다이어그램은 속성(attribute)과 메서드(method)를 포함한다.
더보기

정답: 클래스 다이어그램

클래스 다이어그램   : 속성(attribute)과 메서드(method)를 포함한다

클객 컴배 복패
- 클래스 - 객체 - 컴포넌트 - 배치 - 패키지

 

16. 다음 보기에서 설명하는 객체지향 디자인 패턴은 무엇인가?

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

정답: 팩토리

생성패턴: 생빌 프로 팩앱싱
(빌더, 프로토타입, 팩토리 메서드, 앱스트랙 팩토리, 싱글톤)

구조패턴: 구 브데 퍼플 프록컴 어
(브리지, 데코레이터, 퍼사이드, 플라이 웨이트, 프록시, 컴포지트, 어댑터)

행위패턴: 행 미인이 템옵 스테 비커 스트 메체
(미디에이터, 인터프리터, 이터레이터, 템플릿 메서드, 옵져버, 스테이트, 비지터, 커맨드, 스트레티지, 메멘토, 체인 오브 리스판서빌리티)

 

 

17. 다음 C언어 코드에 대한 알맞는 출력값을 쓰시오.

#include 

struct jsu {
  char nae[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("%dn", (p+1)->hab + (p+1)->hhab);
}
더보기

정답: 501

p = &st[0];    ← p는 st의 주소값(배열 시작점)을 가집니다.

(p + 1)->hab = (p + 1)->os + (p + 2)->db;    ← p[1].hap = 84 + 75 = 159 입니다.
(p + 1)->hhab = (p+1)->hab + p->os + p->db;    ← p[1].hhap= 159 + 95 + 88 = 342 입니다.
printf("%d\n", (p+1)->hab + (p+1)->hhab);   ← 159 + 342 = 501 입니다.

 

18. 다음은 파일 구조(File Structures)에 대한 설명이다. 괄호 ( ) 안에 들어갈 알맞는 답을 작성하시오.

파일구조는 파일을 구성하는 레코드들이 보조기억장치에 편성되는 방식으로 접근 방식에 따라 방식이 달라진다. 
접근 방법중, 레코드들을 키-값 순으로 정렬하여 기록하고, 레코드의 키 항목만을 모은 (  )을 구성하여 편성하는 방식이 있으며, 레코드를 참조할 때는 (   ) 이 가르키는 주소를 사용하여 직접 참조할 수 있다. 파일 구조에는 순차 접근, (  ) 접근,  해싱 접근이 있다.
더보기

정답: 인덱스(또는 색인)

파일구조 수(순)색해! - 순차 접근 , 색인 접근, 해싱 접근

 

19. 다음 설명에 대한 알맞는 답을 영문약어로 작성하시오.

(  )는 사용자가 그래픽을 통해 컴퓨터와 정보를 교환하는 환경을 말한다. 이전까지 사용자 인터페이스는 키보드를 통해 명령어로 작업을 수행시켰지만 (   )에서는 키보드 뿐만 아니라 마우스 등을 이용하여 화면의 메뉴 중 하나를 선택하여 작업을 수행한다.
화면에 아이콘을 띄어 마우스를 이용하여 화면에 있는 아이콘을 클릭하여 작업을 수행하는 방식이다.
대표적으로는 마이크로소프트의 Windows, 애플의 Mac 운영체제 등이 있다.
더보기

정답: GUI

(CG NO) CLI, GUI, NUI, OUI 

 

20. 다음은 소프트웨어 통합 테스트에 대한 설명이다. 괄호 ( ) 안에 들어갈 알맞는 답을 작성하시오.

(   A  ) 방식은 하위 모듈부터 시작하여 상위 모듈로 테스트를 진행하는 방식이며, 
이 방식을 사용하기 위해서는 (  C  )가 필요하다. 
(   C   )는 이미 존재하는 하위 모듈과 존재하지 않은 상위 모듈에 대한 인터페이스 역할을 한다.
더보기

정답: 
A: 상향식
B: 테스트 드라이버

* 하스 상드 : 하향식 스텁, 상향식 드라이버