정보처리기사 실기 2021년 3회-1 정리

DSeung·2022년 4월 24일
0

정보처리기사

목록 보기
1/18

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
해설 : 싱글톤 패턴 (Singleton Pattern)으로 어떤 클래스에서 최초 한번만 메모리를 할당하고 그 메모리에 인스턴스를 할당하여 사용하는 패턴입니다.
위 코드를 보시면 처음 Connection conn1 = Connetion.get( )을 통해 _inst에 처음으로 Connection을 할당하고 그 이후에 Connection.get()은 conn에 사용한 _inst와 같은 것을 사용하기에 모두 같은 객체에서 count() 메서들 실행시킨 것 입니다.


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

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

정답 : Authentication(인증), Authorization(인가 및 권한부여), Accounting (회계 및 계정관리)
해설 : 분산 서비스 보안을 위한 포괄적인 핵심 요구사항이다, 특정 프토로콜에 종속되지 않는 용어이면서 주로 ISP(Internet Service Provider)와 같은 인터넷 서비스 확장을 위한 프레임워크 개념이기도 하다.


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

정답 : 데이터베이스에 접근하거나 객체에 권한을 주는 등의 역할을 하는 언어


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

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

정답 : ARP(Address Resolution Protocol)
해설 : ARP 스푸핑은 MAC 주소를 속여 근거리 통신망(LAN) 하에서 주소 결정 프로토콜(ARP) 메시지를 이용하여 상대방의 데이터 패킷을 중간에서 가로채는 중간자 공격 기법이다, 주로 스니핑에 자주 사용된다
추가 공부 :

  • 스푸핑(Spoofing) : 골탕먹이다, 속이다. 로 IP 어드레스를 속여 시스템권한을 획득해서 정보를 탈취까지 함, IP 스푸핑, ARP 스푸핑 등이 있음
  • 스니핑(Sniffing) : 킁킁거리다, 냄새맡다 로 패킷 교환이나 네트워크 트래픽을 도청
  • 스누핑(Snooping) : 기웃기웃, 염탐염탐~ 스니핑보다 조금 발전해서, 네트워크 상에 떠도는 중요정보를 염탐하는 것 뿐만 아니라 획득까지 함

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

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

정답 : 제어(control) 결합도
해설 : Coupling은 응집도(Cohension, 모듈 내부의 기능 응집)와 함께 모듈의 독립성을 판단하는 지표로 모듈과 모듈간의 상호 결합 정도를 나타냅니다.
결합도는 낮을 수록 응집도는 높을 수록 좋은 모듈입니다.
자료 결합도 < 스탬프 결합도 < 제어 결합도 < 외부 결합도 < 공통 결합도 < 내용 결합도
자 -> 스 -> 제 -> 외 -> 공 -> 내

  • 자료 결합도(Data Coupling)
    - 모듈간의 인터페이스 전달되는 파라미터를 통해서만 모듈간의 상호 작용이 일어나는 경우
    • 깔끔한 Call by value
  • 스탬프 결합도(Stamp Coupling)
    - 모듈간의 인터페이스로 배열이나 오브젝트, 스트럭쳐등이 전달되는 경우
  • 제어 결합도(Control Coupling)
    - 단순히 처리를 해야할 대상인 값만 전달되는 게 아닌 어떻게 처리해야 한다는 제어 요소(DCD, Falg 등)이 전달되는 경우
  • 외부 결합도(External Coupling)
    - 어떤 모듈에서 반환한 값을 다른 모듈에서 참조해서 사용하는 경우
  • 공통 결합도(Common Coupling)
    - 파라미터가 아닌 모듈 밖에서 선언되어 있는 전역 변수를 참조하고 전역변수를 갱신하는 식으로 상호작용하는 경우
  • 내용 결합도(Content Coupling)
    - 다른 모듈 내부에 있는 변수나 기능을 다른 모듈에서 사용하는 경우

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

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

정답 :
(1) 데이터링크
(2) 네트워크
(3) 표현
해설 :
물데네전세표응

명칭 특징 단위(PDU) 프로토콜 주요 장비
Layer1: 물리 계층(Physical Layer) 물리적인 장치의 전기적, 전자적 연결에대한 명세로 디지털 데이터를 아날로적인 전기적 신호로 변환하여 물리적 전송을 가능케 함, 주소 개념이 없으므로 물리적 연결로 신호를 주고 받음 비트(Bit) x.21, RS-232 허브(Hub), 리피터(Repeater), 네트워크 카드(NIC : Network Interface Card)
Layer2: 데이터 링크 계층(Data Link Layer) 네트워크 카드의 MAC(Media Access Control) 주소를 통해 목적지를 찾아간다, 신뢰성 있는 전송을 위해 흐름제어(Flow Control), 오류제어(Error Control), 회전제어(Line Control)을 수행한다. 프레임(Frame) HDLC, X.25, Ethernet, TokenRing, DFFI, FrameRelay 브리지(Bridge), L2 Switch
Layer3: 네트워크 계층(Network Layer) 종단간 전송을 위한 경로 설정을 담당하며 호스트로 도달하기 위한 최적의 경로를 라우팅 알고리즘을 통해 선택하고 제어한다, 종단간 전송을 위한 주소로 IP주소를 사용 패킷(Packet) IP, ARP, ICMP, IGMP, RIP, RIP v2, OSPF, IGRP, EIGRP, BGP 라우터(Router), L3 Switch
Layer4: 전송 계층(Transport Layer) 종단간 신뢰성 있는 데이터 전송을 담당하며, 종단(Host)의 구체적인 목적지(Process)까지 데이터가 도달할 수 있도록 한다, Process를 특정하기 위한 주소로 Port Number를 이용, 신뢰성 있는 데이터 전송을 위해 분할과 재조합, 연결제어, 흐름제어, 오류제어, 혼합제어를 수행한다. 세그먼트(Segment) TCP, UDP L4 Switch
Layer5: 세션 계층(Session Layer) 응용 프로그램 간의 논리적 연결(세션) 및 제어를 담당한다. 데이터(Data) 또는 메세지(Message) 없음 없음
Layer6: 표현 계층(Presentation Layer) 데이터 표현방식, 상이한 부호체계 간의 변화에 대해 규정, 인코딩/디코딩, 압축/해제, 암복호화 등의 역할을 수행함 데이터(Data) 없음 업음
Layer7: 응용 계층(Application Layer) 우리가 사용하는 UI를 제공하는 프로그램을 칭함 데이터(Data) TELNET, FTP, SMTP, HTTP 없음

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

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

정답 :
(1) Aggregation(집단화)
(2) Generalization(일반화)
해설 :
객체지향 연관성
두 개 이상의 엔티티 형식에서 데이터를 상호 참조하는 관계

명칭 관계성의 종류 특성 설명
연관화(Association) is-member-of 링크 개념과 유사 관련되지 않은 클래스들간의 의미적 연결
분류화(Classification) is-instance-of 객체 및 클래스의 인스턴스를 표현 동일한 형의 특성을 갖는 개체들이 모여 클래스를 구성하는 것
집단화(Aggregation) is-port-of 상향식, 단일 상속, 복합 객체(Composite Object) 표현에 유용 클래스들의 사이의 전체 또는 부분 같은 관계를 나타내는 것
일반화(Generalization) is-a 하향식, 다중 상속, 복잡한 객체 표현에 유용 객체들에 있어 공통적인 성질들을 상위 객체로 정의한 것

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


정답 :
(1) 테스트 조건
(2) 테스트 데이터
(3) 예상 결과
해설 :
(테스트 케이스는 각 사이트 마다 다른 듯하다, 흐름만 기억하자)
테스트 케이스 : 특정 프로그램의 부분 및 경로를 실행해보거나, 요구사힝에 준수하는 지 확인하기 위해 개발된 입력 값, 조건, 예상된 결과세트


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

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

정답 : Cause Effect Graph (원인 결과 그래프)
해설 :
Black Box Test

  • 내부가 보이지 않음
  • 결과물 상태를 보고 요구사항 충족 확인
  • 결과를 예측할 수 없음으로 test case의 양이 많아야하므로 테스트 비용 상승
  • 종류
    • 동등 분할 테스트(Equivalence Partitioning Testing) : 여러 Test Case 중에 실제로 수행할 대표적인 Test Case를 선택하는 방법, 다양한 입력 사례들을 갖춘 각 시험 사례 유형 마다 최소의 시험 사례 작성
    • 경계 값 분석 테스트(Boundary Value Analysis Testing) : 입력 값의 경계 값에서 오류 발생 가능성이 높다는 통계에 의한 Case 작성
    • 원인 결과 그래프 테스트(Case Effect Graph Testing) : 입력 자료 간의 관계와 출력에 영향을 미치는 상황을 체계적으로 분석 후 효용성이 높은 Case 생성
    • 오류 예측 테스트(Error Guessing Testing) : 각 시험 기법이 놓치기 쉬운 오류들을 감각 및 경험으로 찾아보는 것
    • 페어와이즈 테스트(Pairwise Testing) : 가능한 모든 입력 값을 테스트하는 비현실적 모든 입값 들의 조합 대신 모든 작의 조합을 테스트함으로써 모든 입력 값을 테스트하는 것과 비슷한 것

White Box Test

  • 소스코드 형태로 소프트웨어를 테스트한다.
  • 시작단계 부터 테스트를 진행할 수 없으나 비용이 적음
  • 종류
    • (기본)경로 커버리지(Base Path Coverage) : 수행 가능한 모든 경로 테스트
    • 제어 흐름 테스트(Control Flow Testing) : 프로그램 제어구조를 그래프 형태로 나타내어 내부 로직 테스트

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

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

정답 : DES(Data Encryption Standard)
해설 :
블록 암호 (Block Cipher)

  • 평문을 일정한 크기의 블록으로 잘라낸 후 각 블록을 암호화하는 방식
  • 일반적으로 블록의 크기는 8비트 또는 16비트의 배수
  • 복호화 알고리즘은 암호 알고리즘의 역함수
  • 메시지 길이가 N비트보다 작다면 N비트 블록을 만들기 위해 패딩(Padding)을 추가

블록 암호의 종류

  • AES(Advanced Encryption Standard) : DES를 대체하는 미국 표준 대칭키 알고리즘
  • DES(Data Encryption Standard) : 블록 암호의 일종으로, IBM에서 개발하고, 미국 NBS(현재 NIST)에서 국가 표준으로 정한 암호화 알고리즘이나 취약점이 발견되어 현재 사용 안함
  • IDEA(International Data Encryption Algorithm) : DES를 대체하기 위해 스위스에서 개발됨
  • SEED : 한국인터넷진흥원(KISA)에서 민간부분의 암호 활용을 위하여 국내 순수 기술로 개발하여 보급한 블록 대칭키 암호화 알고리즘
  • HEIGHT(HIGH security and light weigHT) : 국내에서 개발하여 국제 표준으로 등록된 초경량, 저전력 블록 암호 알고리즘
  • LEA : 국내 국가보안연구소가 개발하여 국제 표준(ISO/IEC 29192)로 인정받은 경량 암호 알고리즘
  • RC5 : 다양한 크기의 키, 블록,라운드를 가질 수 있는 블록 알고리즘
profile
블로그에 글을 쓰고 좋은 건 여기로 공유해서 검색엔진을 쪽쪽 빱니다.

0개의 댓글