본문 바로가기
자격증/정보처리기사

정보처리기사 실기 2020년 2회 실기 정답및 개념정리

by 말린밴댕이_공부 2022. 11. 10.
반응형

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

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

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

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

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

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

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

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

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

[처리결과]
Child

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

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

학번   이름   학년
1111   홍길동 1
2222   임꺽정 2
3333   유관순 3
4444   안중근 3
5555   홍범도 4

7.트랜잭션의 롤백에 대해 설명하시오.

 

 

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

 

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

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

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

11. 리눅스 커널을 기반으로 동작하며 자바의 코틀린 언어로 개발된, 모바일 기기에 주로 사용되는 오픈소스 플랫폼인 운영체제는 무엇인지 쓰시오.

12. 다음 주어진 student 테이블의 name 속성에 idx_name를 인덱스 명으로 하는 인덱스를 생성하는 SQL문을 작성하시오.

id   name   grade
1111 홍길동 1
2222 임꺽정 2
3333 유관순 3
4444 안중근 3
5555 홍범도 4

13. 다음 괄호안에 들어갈 프로토콜의 이름을 적으시오.

(              )은(는) HTTP 등의 프로토콜을 이용하여 XML 기반의 메시지를 교환하는 프로토콜로, Envelope-Header-Body 주요 3요소로 구성된다. (              )은(는) 유사한 기능을 하는 RESTful로 대체될 수 있다.

14. 소프트웨어 보안 취약점 중 하나인 SQL Injection에 대해 간략히 설명하시오.

15. 다음은 사용자 인터페이스 설계 원칙에 대한 설명이다. 괄호안에 들어갈 설계 원칙을 적으시오.

ㅇ 직관성: 누구나 쉽게 이해하고 사용할 수 있어야 한다.
ㅇ (        ): 사용자의 목적을 정확하게 달성하여야 한다.
ㅇ 학습성: 누구나 쉽게 배우고 익힐 수 있어야 한다.
ㅇ 유연성: 사용자의 요구사항을 최대한 수용하며, 오류를 최소화하여야 한다.

16. 리눅스 운영체제에서 현재 디렉터리에 위치한 "a.txt"에 아래의 조건대로 권한을 부여하고자 한다. 실행해야 하는 명령어를 적으시오.

ㅇ 사용자에게 읽기,쓰기 실행 권한 부여
ㅇ 그룹에게 읽기, 실행 권한 부여
ㅇ 그 외에게 실행 권한 부여
ㅇ 한 줄의 명령어로 작성하며, 아라비안 숫자를 사용하여 8진수 권한으로 부여

17. 다음에서 설명하는 용어를 영문 완전 이름(Full-name)으로 적으시오.

ㅇ 전세계 오픈된 정보를 하나로 묶는 방식
ㅇ Linked data와 Open data의 합성어
ㅇ URI(Uniform Resource Identifier)를 사용
ㅇ RESTful 방식으로 볼 수 있으며, 링크 기능이 강조된 시멘틱 웹에 속하는 기술

18. 다음은 데이터베이스 설계(모델링) 과정을 간략히 표현한 것이다. 괄호 안에 들어갈 내용을 순서대로 나열하시오.

요구사항 분석 -> (    ) -> (     ) -> (       ) -> 구현

19. 다음 자바(Java) 프로그램을 실행한 출력 결과를 쓰시오.

class A {
    int a;
    public A(int n) {
        a = b;
    }
    public void println("a="+a);
}
class B extends A {
    public B(int n) {
        super(n);
        super.print();
    }
}
public class Exam {
    public static void main(String[] args) {
        B obj = new B(10);
    }
}

20. 다음 보기에서 설명하는 것으로 가장 적절한 것은?

소프트웨어 개발 과정에서 산출물 등의 변경에 대비하기 위해 반드시 필요하다. 소프트웨어 리사이클 기간 동안 개발되는 제품의 무결성을 유지하고 소프트웨어의 식별, 편성 및 수정을 통제하는 프로세스를 제공한다. 실수를 최소화하고 생산성의 최대화가 궁극적인 목적이다. 관련 도구로는 CVS, SVN, Clear Case 등이 있다.

 

 

 

정답 및 해설

  1. 목표 복구 시간(RTO; Recovery Time Objective)
  2. {"한국", "중국", "베트남", "홍콩", "태국"} (순서무관)
  3. AJAX(Asynchronous Javascript And XML)
  4. 애자일 (애자일 방법론, 애자일 기법 등)
  5. new
  6. SELECT 학번,이름 FROM 학생 WHERE 학년 IN (3,4);
  7. 트랜잭션의 실패로 작업을 취소하고, 이전 상태로 되돌리는 데이터 제어어
  8. IPSec
  9. 정적 분석 도구 (정적 테스팅 도구, 코드 검사 도구, 코드 인스펙션 툴 등)
  10. Observer (또는 Observer Pattern)
  11. 안드로이드 (Android)
  12. CREATE INDEX idx_name ON student(name);
  13. SOAP(Simple Object Access Protocol)
  14. 웹 페이지의 입력값을 통해서 SQL명령어를 주입하여 오동작을 일으키는 해킹방법
  15. 유효성
  16. chmod 751 a.txt 또는 chmod 751 ./a.txt
  17. Linked Open Data
  18. 개념적 설계 - 논리적 설계 - 물리적 설계
  19. a = 10
  20. 형상관리

파이썬 문법

  1. Array → 우리가 흔히 쓰는 배열과 같은
  2. Tuple → tuple은 ()를 쓰는 대표적인 타입
  3. Dictionary → {}를 쓰는 대표적인 타입. {}는 딕셔너리를 선언&초기화할때 사용. []는 key에 대응하는 value를 할당하거나, value에 접근할때 쓰임

AJAX란?

AJAX란 비동기 자바스크립트와 XML (Asynchronous JavaScript And XML)을 말합니다. 간단히 말하면, 서버와 통신하기 위해 [XMLHttpRequest] 객체를 사용하는 것을 말합니다. JSON, XML, HTML 그리고 일반 텍스트 형식 등을 포함한 다양한 포맷을 주고 받을 수 있습니다. AJAX의 강력한 특징은 페이지 전체를 리프레쉬 하지 않고서도 수행 되는 "비동기성"입니다. 이러한 비동기성을 통해 사용자의 Event가 있으면 전체 페이지가 아닌 일부분만을 업데이트 할 수 있게 해줍니다.

Agile

절차나 문서보다 사람과 업무 자체를 중요시하여 유연하고 신속한 개발을 추구하는 방법론

DCL

COMMIT : 모든 작업을 정상적으로 처리하겠다고 확정하는 명령어

ROLLBACK: 작업 중 문제가 발생했을 때 트랜젝션의 처리과정에서 발생한 변경사항을 취소하고 이전의 데이터로 돌리는 명령어

GRANT: 특정 사용자에게 특정 작업을 수행할 권한을 부여하는 명령어

REVOKE: 특정 이용자에게 부여한 특정 권한을 회수하는 명령어

코드 인스펙션

소스 코드를 대상으로 자동화된 도구를 통해 수행하는 정적 분석 기법

  • 장애(Failure) 보다는 결함(Defects)를 발견하는 것이 주안점이다.
  • 실제 프로그램을 실행시키는 동적 테스트 전, 조기에 결함을 발견할 수 있다.
  • 동적 테스트로 발견할 수 없는 종류의 결함들을 발견할 수 있다.

생성 패턴(Creational Pattern)

팩토리 메소드(Factory Method)

  • Virtual-Constructor 패턴이라고도 함
  • 객체를 생성하기 위한 인터페이스를 정의 하여 어떤 클래스가 인스턴스화 될 것인지는 서브클래스가 결정

추상 팩토리(Abstract Factory)

  • 구체적인 클래스에 의존하지 않고, 서로 연관·의존하는 객체들의 그룹으로 생성하여 추상적으로 표현
  • 연관된 서브 클래스를 묶어 한 번에 교체 가능

빌더(Builder

  • 건축가가 블록을 조립하는 모습
  • 분리된 인스턴스(객체)를 건축하듯이 조합하여 객체를 생성
  • 동일한 객체 생성에서도 다른 결과 나올 수 있음

프로토타입(Prototype)

  • 원본 객체를 복제하는 방법으로 객체를 생성하는 패턴
  • 비용이 큰 경우 주로 이용

싱글톤(Singleton)

  • 객체를 어디서든 참조할 수 있지만, 여러 프로세스가 동시에 참조하는 것은 불가능
  • 인스턴스가 하나뿐이기 때문에 불필요한 메모리 낭비를 최소화 할 수 있음

구조 패턴(Structural Pattern)

어댑터(Adaptor)

  • 호환성을 맞춰주는 변압기
  • 클래스들의 호환성이 맞도록 변환해주는 패턴
  • 기존의 클래스를 이용하고 싶은데 인터페이스가 일치하지 않을 때 사용

브리지(Bridge)

  • 두 섬을 연결하는 다리
  • 서로가 독립적으로 확장할 수 있도록 구성한 패턴
  • 기능과 구현을 별도의 클래스에서 구현

컴포지트(Composite)

  • 폴더와 파일을 합성한 것
  • 복합 객체와 단일 객체를 구분 없이 다루고자 할 때 사용
  • 복합 객체 안에 복합 객체가 포함되는 구조 구현 가능

데코레이터(Decorator)

  • 온갖 것으로 장식된 눈사람
  • 객체 간의 결합으로 기능을 확장할 수 있음
  • 부가적인 기능 추가를 위해 다른 객체들을 덧붙이는 방식

퍼싸드(Facade)

  • 리모컨만으로 복잡한 명령을 수행하는 것
  • 상위에 인터페이스를 구성하여 서브 클래스들의 기능을 수행할 수 있음
  • 서브 클래스들 사이의 통합 인터페이스를 제공하는 Wrapper 객체 필요

플라이웨이트(Flyweight)

  • 부담을 가볍게 하기 위해 물품 공유
  • 인스턴스를 가능한 한 공유해서 사용하여 메모리를 절약
  • 다수의 유사 객체를 생성하거나 조작할 때 유용함

프록시(Proxy)

  • 하기 어려운 업무를 대리로 해주는 사람
  • 접근이 어려운 객체와 여기 접근하려는 객체 사이의 인터페이스 역할
  • 네트워크 연결, 메모리의 대용량 객체로의 접근에 이용

행위 패턴(Behavioral Pattern)

책임 연쇄(Chain of Responsibility)

  • 연속해서 나눠받는 물레방아
  • 한 객체가 처리하지 못하면 다음 객체로 넘어가는 패턴
  • 요청이 해결될 때까지 고리를 따라 책임이 넘어감

커맨드(Command)

  • 명령어를 하나로 합쳐둔 것
  • 요청을 캡슐화하여 재이용하거나 취소할 수 있도록 저장하거나 로그로 남김
  • 추상클래스와 구체클래스로 나뉨

인터프리터(Interpreter)

  • 언어 번역가
  • 언어에 문법 표현을 정의함
  • SQL이나 통신 프로토콜에 사용

반복자(Iterator)

  • 같은 명령의 반복
  • 접근이 잦은 객체에 대해 동일한 인터페이스를 사용하도록 함
  • 내부 표현 방법의 노출 없이 순차적인 접근 가능

중재자(Mediator)

  • 매매를 중개해주는 중개사이트
  • 객체들 간의 복잡한 상호작용을 캡슐화하여 객체로 정의
  • 객체 사이의 결합도를 감소시킴

메멘토(Memento)

  • 기억 속의 그 때로 돌아감.
  • 객체를 특정 시점의 상태로 돌릴 수 있는 기능
  • ctrl+z 와 같은 기능 개발시 사용

옵서버(Observer)

  • 변화를 지켜보고 알려주는 것
  • 한 객체의 상태 변화시 상속되어 있는 다른 객체들에게 알림
  • 시스템간에 이벤트를 생성하고 수신할 때 사용

상태(State)

  • 상태에 따라 다른 방법을 사용함
  • 객체의 상태에 따라 동일한 동작을 다르게 처리해야 할 때 사용
  • 객체 상태를 캡슐화하고 이를 참조함

전략(Strategy)

  • 여러 전략을 정하고 필요할 때 선택하여 씀
  • 동일한 계열의 알고리즘을 캡슐화하여 상호 교환할 수 있게 정의함
  • 원하는 알고리즘을 선택하여 사용하며 클라이언트에 영향 없이 알고리즘 변경 가능

템플릿 메소드(Template Method)

  • 방법들을 큰 틀로 묶는 것
  • 상위 클래스에서 골격 정의, 하위 클래스에서 세부 처리를 구체화
  • 유사한 서브 클래스의 공통된 내용을 상위 클래스에서 정의(유지보수를 용이하게 함)

방문자(Visitor)

  • 책을 만들기 위해 저자, 편집자를 번갈아가며 방문
  • 각 클래스들의 데이터 구조에서 처리 기능을 별도의 클래스로 구성
  • 분리된 기능은 각 클래스를 방문하여 수행

Simple Object Access ProtocolHTTP 등의 프로토콜을 이용해 XML 기반이 메시지를 교환하는 프로토콜

XML프로토콜이면 SOAP, 언어면 WSDL

SQL Injection

  • 웹 페이지의 입력값을 통해서 SQL명령어를 주입하여 오동작을 일으키는 해킹방법
  • OWASP TOP10에서 꾸준히 상위권을 유지하는, 가장 흔한 웹해킹 기법 중 하나

Linked Open Data

웹상에 존재하는 데이터를 개별 URI(Uniform Resource Identifier)로 식별하고,각 URI에 링크 정보를 부여함으로써 상호 연결된 웹을 지향하는 모형

Representational State Transfer

HTTP URI(Uniform Resource Identifier)를 통해 자원(Resource)을 명시하고, HTTP Method(POST, GET, PUT, DELETE)를 통해 해당 자원에 대한 CRUD Operation을 적용하는 정보 전달 방식

데이터 모델링

단계 설명 산출물

요구사항 정의 목표 기능을 위한 데이터적 요구사항 정의 및 분석 요구사항 명세서
개념 모델링 핵심 엔티티 도출 및 관계를 개념적으로 정의 개념 ERD
논리 모델링 데이터 구조, 연산, 제약조건을 정확하게 표현 상세 ERD, 테이블 정의서
물리 모델링 구현할 DBMS를 기준으로 스키마 설계 DDL Query
데이터베이스 구현 실제 테이블을 생성하고 스키마 구현 데이터베이스
반응형

댓글