정보처리기사 실기 2020년 2회-1 정리

DSeung·2022년 5월 4일
0

정보처리기사

목록 보기
11/18

1. 다음 보기는 네트워크 인프라 서비스 관리 실무와 관련된 사례이다. 괄호안에 들어갈 가장 적합한 용어를 한글 또는 영문으로 쓰시오.

귀하는 IT회사의 보안관제실에서 근무하고 있다. 
정보시스템 운영 중 자연재해나 시스템 장애 등의 이유로 대고객 서비스가 불가능한 경우가 종종 발생한다. 
이를 대비하여 백업 및 복구 솔루션을 도입하고자 한다.
백업 및 복구 솔루션은 (            )와 복구 목표 시점(RPO) 기준을 
충족할 수 있는 제품으로 선정해야 한다. (           )는 
“비상사태 또는 업무중단 시점으로부터 업무가 복구되어 다시 정상가동 될 때까지의 시간” 을 의미하고 
복구 목표 시점(RPO)는 "업무 중단 시 각 업무에 필요한 데이터를 여러 백업 수단을 이용하여 복구할 수 있는 기준점"을 
의미한다.

정답 : RTO

해설 :

RTO (복구시간목표, Recovery Time Object)

  • 시스템이 얼마나 빨리 복구되는가?
  • 서비스가 재개될 때 까지 걸리는 시간 목표

RPO (복구시점목표, Recovery Point Object)

  • 데이터 손실을 얼마나 감당할 수 있는가?
  • 감내할 수 있는 데이터 손실의 양(시간)
  • 현재로부터 가장 가까운 복원지점(백업시점)까지의 시간 목표

2. 다음 파이썬(Python) 스크립트의 실행 결과를 적으시오.

>>> asia={"한국", "중국", "일본"}
>>> asia.add("베트남")
>>> asia.add("중국")
>>> asia.remove("일본")
>>> asia.update(["홍콩", "한국", "태국"])
>>> print(asia)

정답 : {"한국", "중국", "베트남", "홍콩", "태국"}

해설 : update와 add는 없는 값만을 추가함.


3. 다음에서 설명하는 기술을 영문 약어로 쓰시오.

'비동기식 자바스크립트 XML'을 의미하는 용어로, 
클라이언트와 웹서버 간에 XML 데이트를 내부적으로 통신하는 대화식 웹 애플리케이션의 제작을 위해 사용된다. 
클라이언트의 요청에 의해 웹서버에서 로딩된 데이터를 웹 브라우저의 페이지에 보여주기 위해 
웹 페이지 전체를 '새로고침'할 필요 없이 즉, 현재 페이지에서 
필요한 일부만 로딩되도록 하는 웹 개발 기법을 의미한다.

정답 : AJAX(Asynchronous Javascript And XML)

해설 :


4. 다음에서 설명하는 개발방법론은 무엇인지 적으시오.

고객의 요구사항 변화에 유연하게 대응하기 위해 일정한 주기를 반복하면서 개발하며 
고객에게 시제품을 지속적으로 제공하며 고객의 요구사항이 정확하게 반영되고 있는지 점검한다. 
폭포수 모형에 대비되는 유연한 방법론으로 비교적 소규모 개발 프로젝트에서 각광받고 있는 개발 방법론이다.

정답 : 애자일(애자일 방법론)

해설 :

시제품이라는 단어 때문에 프로토타입 같으나, 고객의 요구사항 변화에 초점을 둔다는 내용을 통해

애자일(Agile) : 절차나 문서보다 사람과 업무 자체를 중요시하고 유연하고 신속한 개발을 추구하는 방법론에 적합하다.


5. 다음에 제시된 자바(Java) 프로그램이 [처리 결과]와 같은 결과를 출력할 때, 자바 프로그램의 ( ? )에 들어갈 표현을 대소문자를 구별하여 쓰시오.

class Parent {
    void show() {
        System.out.println("Parent");
    }
}
class Child extends Parent {
    void show() {
        System.out.println("Child");
    }
}
public class Exam {
    public static void main(String[] args) {
        Parent pa = (  ?  ) Child();
        pa.show();
    }
}

[처리결과]
Child

정답 : new

해설 : Java의 객체 선언은 클래스명 변수명 = new 클래스명()이다.


6. 다음과 같은 "학생"테이블을 대상으로, 3학년과 4학년의 학번과 이름을 출력하는 SQL문을 작성하시오. (단, in 구문을 반드시 사용할 것)

정답 : SELCT 학번, 이름 FROM 학생 WHERE 학년 IN (3,4


7. SQL 제어어(DCL)에는 COMMIT, ROLLBACK, GRANT, REVOKE 가 있다. 그 중 ROLLBACK에 대해 약술하시오.

정답 : 트랜잭션의 실패로 작업을 취소되면 트랜잭션 이전 상태로 되돌리는 데이터 제어어

해설 :

  • COMMIT : 트랜잭션 작업이 정상적으로 처리되어 적용시키는 명렁어
  • ROLLBACK : 트랜잭션의 실패로 작업을 취소되면 트랜잭션 이전 상태로 되돌리는 명령어
  • GRANT : 특정 사용자에게 특정 작업을 수행할 권한을 부여하는 명령어
  • REVOKE : 특정 사용자에게 부여한 권한을 회수하는 명령어

8. 네트워크 계층(network layer, 3계층)인 인터넷 프로토콜(IP)에서 '암호화', '인증', '키 관리'를 통해 보안성을 제공해 주는 표준화된 기술

정답 : IPSec

해설 :

IPsec

  • 보안에 취약한 구조를 가진 IP의 보안을 위하여 국제 인터넷 기술 의원회(IEFT)에서 설계한 표준
  • IPv4에서 보안이 필요한 경우에만 선택적으로 사용하였지만 IPv6부턴 기본 스펙에 포함
  • 인터넷 프로토콜(IP)에서 암호화, 인증, 키 관리를 통해 보안성을 제공

IP adress와 IP는 별개


9. 애플리케이션을 실행하지 않고, 소스 코드에 대한 코딩 표준, 코딩 스타일, 코드 복잡도 및 남은 결함을 발견하기 위하여 사용하는 테스트 자동화 도구 유형은?

정답 : 코드 인스펙션

해설 :

소프트웨어 테스트

정적 테스트(Static Test) : 소프트웨어를 실행하지 않고 코드나 문서로 리뷰하는 형식

  • 코드 인스펙션(Code Inspection) : 프로그램을 수행하지 않고 산추물을 대상으로 공식적 검토, 결함을 발견하는 과정
  • 동료 검토(Peer Review) : 프로그램 수행과제에서 각 단계 별 산출물, 제품에 대한 동료들의 상호교차하여 검토 수행 활동
  • 워크스루(WalkThrough) : 프로그램 개발 초기 팀 내에서 수행하는 비공식 검토 과정

10. 다음에서 설명하는 소프트웨어 디자인 패턴을 영문으로 쓰시오.

한 객체의 상태가 바뀌면 그 객체에 의존하는 다른 객체들한테 연락이 가고 자동으로 내용이 갱신되는 방식으로
일 대 다(one-to-many) 의존성을 가지는 디자인 패턴. 
서로 상호작용을 하는 객체 사이에서는 가능하면 느슨하게 결합(Loose coupling)하는 디자인을 사용해야 한다.

정답 : Observer

해설 :

Gof(Gang of Four Design Pattern) 디자인 패턴 : 객체 지향 프로그래밍 설계를 할 때 자주 발생하는 문제들을 피하기 위해 사용되는 패턴

큰 구분
생성 패턴(Creational Pattern)

  • 객체를 생성하는데 관련된 패턴들
  • 객체가 생성되는 과정의 유연성을 높이고 코드의 유지를 쉽게 함
명칭 특징
팩토리 메소드(Factory Method) 객체를 생성하기 위한 인터페이스를 정의하여 어떤 클래스가 인스턴스화 될 것인지는 서브클래스가 결정
추상 팩토리(Abstract Factory) 서로 연관, 의존하는 객체들의 그룹을 생성하여 추상적으로 표현
빌더(Builder) 분리된 인스턴스(객체)를 건축하듯 조합하여 새 객체를 생성
프로토타입(Prototype) 원본 객체를 복제하는 방법으로 객체를 생성하는 패턴
싱글톤(Singleton) 여러 프로세스가 하나의 객체를 참조하는 방식

구조 패턴(Structual Pattern)

  • 프로그램 구조에 관련된 패턴들
  • 프로그램 내의 자료구조나 인터페이스 구조 등 프로그램의 구조를 설계하는데 활용할 수 있는 패턴들
명칭 특징
어댑터(Adaptor) 클래스들의 호환성이 맞도록 변환해주는 패턴
브리지(Bridge) 서로가 독립적으로 확장할 수 있도록 한 패턴, 기능과 구현을 별도의 클래스에서 구현(다리 놓듯이)
컴포지드(Composite) 단일 객체와 복합 객체를 구분 없이 합성물처럼 다루고자 할 때 사용
데코레이터(Decorator) 객체간의 결합으로 기능을 확장하는 것으로 부가적인 기능 추가를 위해 다른 객체들을 덧붙이는 방식
퍼싸드(Facade) 커다란 코드 부분에 대한 간략화된 인터페이스를 제공함으로써 간단하게 복잡한 명령을 수행 가능
플라이웨이트(Flyweight) 인스턴스를 가능한 한 공유해서 사용해서 메모리 절약
프록시(Proxy) 접근이 어려운 객체와 여기 접근하려는 객체 사이의 인터페이스 역할

행위 패턴(Behavioral Pattern)

  • 반복적으로 사용되는 객체들의 상호작용을 패턴화 해놓은 것들
명칭 특징
책임 연쇄(Chain of Responsibility) 요청을 한 객체가 처리 못하면 다음 객체로 책임이 넘어가는 패턴
커맨드(Command) 요청을 캡슐화하여 재이용하거나 취소할 수 있도록 로그로 남겨두면서 명령어를 하나로 합쳐둔 것
인터프리터(Interpreter) 언어 번역하는 것으로 언어에 문법표현을 정의함, SQL이나 통신 프로토콜에 이용
반복자(Iterator) 같은 명령의 반복이고 접근이 잦은 객체에 대해 동일한 인터페이스를 사용하도록 함
중재자(Mediator) 객체들 간의 복잡한 상호작용을 캡슐화하여 객체로 정의하므로써 객체 사이의 결합도를 줄임
메멘토(Memento) 객체를 특정 시점의 상태로 되돌리는 기능으로 내가 사랑하는 CTRL + Z 기능 개발시 사용
옵저버(Observer) 한 객체의 상태 변화시 상속되어있는 다른 객체들에게 알림, 시스템간에 이벤트를 생성하고 수신시 사용
상태(State) 객체의 상태에 따라 동일한 동작을 다르게 처리할 때 사용
전략(Staregy) 동일한 계열의 알고리즘을 캡슐화하여 상호 교환할 수 있게 함으로써 클라이언트에 영향 없이 알고리즘 변경 가능
탬플릿 메소드(Template Method) 상위 클래스에서 골격 정의, 하위 클래스에서 세부 처리를 구체화함으로써 유지보수를 용이하게 함
방문자(Visitor) 각 클래스들의 데이터 구조에서 처리 기능을 별도의 클래스로 구성하여 각 클래스에서 방문해서 수행가능하게 함
profile
블로그에 글을 쓰고 좋은 건 여기로 공유해서 검색엔진을 쪽쪽 빱니다.

0개의 댓글