본문 바로가기
  • 문과생의 백엔드 개발자 성장기
|Developer_Study/정보처리기사

[정보처리기사] 2020년 2회 실기 기출

by 케리's 2023. 3. 20.

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

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

목표 복구 시간(RTO; Recovery Time Objective)


비즈니스 연속성 계획 (BCP; Busniess Continuity Plan)

각종 재해, 장애 재난으로부터 위기 관리를 기반으로 재해복구, 업무복구 및 재개 비상계획 등을 통해 비즈니스 연속성을 보장하는 체계 

종류 설명
BIA
(Bisiness Impact Analysis)
장애나 재해로 인한 운영상의 주요 손실을 볼 것을 가정하여 비즈니스 영향 분석
RTO
(Recovery Time Objective)
업무 중단 시점부터 업무가 복구되어 다시 가동될 때 까지의 시간
RPO
(Recovery Point Objective)
업무 중단 시점부터 데이터가 복구되어 다시 정상가동될때 데이터의 손실 허용 시점
DRP
(Disaster Recovery Plan)
재난으로 장기간에 걸쳐 시설의 운영이 불가능한 경우를 대비한 재난 복구계획
DRS
(Disaster Recovery System)
재해 복구 센터

 

 

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

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

{"한국", "중국", "베트남", "홍콩", "태국"}
(순서 무관)


위 코드는 set 자료형이다.

set 자료형은 중복이 없고 변경이 가능하며 순서가 없는 자료형이다.

 

 

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

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

AJAX(Asynchronous Javascript And XML)

 

 

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

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

애자일 방법론

 

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

 

 

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

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

SELECT 학번,이름 FROM 학생 WHERE 학년 IN (3,4);

 

 

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

더보기

트랜잭션의 실패로 작업을 취소하고, 이전 상태로 되돌리는 데이터 제어어


트랜잭션은 분할할 수 없는 최소 단위로, 논리적인 작업 단위라고 할 수 있다.

트랜잭션 제어어에는 COMMIT, ROLLBACK, SAVEPOINT 등이 있다

COMMIT: 트랜잭션을 완료하여 데이터 변경사항을 최종 반영함
ROLLBACK: 트랜잭션을 취소하여 데이터 변경사항을 되돌림
SAVEPOINT: 트랜잭션 중간에 임시 저장점을 설정
트랜잭션 제어어를 사용하면 데이터의 일관성과 무결성을 보장할 수 있다. 예를 들어, 은행에서 송금 작업을 할 때, 송금자와 수신자의 계좌 잔액이 모두 정상적으로 업데이트되도록 하기 위해 트랜잭션 제어어를 사용할 수 있다.

 

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

더보기

IPSec


IPSec
(Internet Protocol Security)
IP계층에서 무결성과 인증을 보장하는 인증 헤더와 기밀성을 보장하는 암호화를 이용한 IP 보안 프로토콜

 

 

 

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

더보기

정적분석도구

 

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

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

Observer


행위패턴 : 행 미인이 템옵 스테 비커 스트메체

패턴 설명
미디에이터(Mediator) '객체지향설계에서 객체의 수가 너무 많아지면 서로 간 통신을 위해 복잡해져서 객체지향에서 가장 중요한 느슨한 결합의 특성을 해칠 수 있기 때문에 이를 해결하는 방법으로 중간에 이를 통제하고 지시할 수 있는 역할을 하는 중재자를 두고, 중재자에게 모든것을 요구하여 통신의 빈도수를 줄여 객체 지향의 목표를 달성하게 해주는 디자인 패턴
'상호작용의 유연한 변경을 지원 
인터프리터(Interpreter) '언어의 다양한 해석, 구체적으로 구문을 나누고 그 분리된 구문의 해석을 맡는 클래스를 각각 작성하여 여러 형태의 언어 구문을 해석할 수 있게 만드는 디자인 패턴
'문법 자체를 캡슐화 하여 사용 (스크립팅 언어의 수학적 표현이나 명령 집합과 같은 간단한 언어나 표현을 해석)
이터레이터(Iterator) '컬랙션 구현방법을 노출시키지 않으면서도 그 집합체 안에 들어있는 모든 항목에 접근할 방법을 제공하는 패턴
' 내부구조를 노출하지 않고 복잡객체의 원소를 순차적으로 접근 가능하게 해주는 행위패턴
int[] list = {1, 2, 3, 4, 5}; IntegerList integerList = new IntegerList(list); Iterator iterator = integerList.getIterator(); while (iterator.hasNext()) { System.out.println(iterator.next()); }
템플릿 메서드
(Template Method)
'어떤 작업을 처리하는 일부분을 서브클래스로 캡슐화해 전체 일을 수행하는 구조는 바꾸지 않으면서 특정 단계에서 수행하는 내역을 바꾸는 패턴
'일반적으로 상위클래스(추상)에는 추상메서드를 통해 기능의 골격 제공, 하위클래스(구체)의 메서드에는 세부 처리를 구체화하는 방식으로 사용
'코드의 양을 줄이고 유지보수를 용이하게 만드는 특징을 갖는 패턴
'상위 작업의 구조를 바꾸지 않으면서 서브클래스로 작업의 일부분을 수행
알고리즘의 단계를 정의하고 하위 클래스가 이러한 단계 중 일부에 대해 자체 구현을 제공할 수 있도록 하는 데 중점을 둡니다.
옵저버(Observer) '한 객체의 상태가 바뀌면 그 객체에 의존하는 다른객체들에 연락이가고 자동으로 내용이 갱신되는 방법
'일대 다의 의존성을 가지며 상호작용하는 객체사이에서 가능하면 느슨하게 결합하는 패턴
'객체의 상테에 따라 행위 내용을 변경
스테이트(State) '객체의 상태를 캡슐화하여 클래스화 함으로써 그것을 참조하게 하는 방식으로 상태에 따라 다르게 처리할 수 있도록 행위 내용을 변경하여 변경시 원시코드의 수정을 최소화 할 수 있고 유지보수의 편의성도 갖는 디자인패턴
'객체의 상태에 따라 행위 내용을 변경
비지터(Visitor) '각 클래스 데이터 구조로 부터 처리기능을 분리하여 별도의 클래스를 만들어놓고 해당 클래스의 메서드가 각 클래스를 돌아다니며 특정작업을 수행하도록 만드는 패턴
'객체의 구조는 변경하지 않으면서 기능만 따로 추가하거나 확장할 때 사용하는 디자인 패턴
'특정 구조를 이루는 복합 객체의 원소 특성에 따라 동작을 수행할 수 있도록 지원하는 행위
커맨드(Command) '실행될 기능을 캡슐화 함으로써 주어진 여러 기능을 실행할 수 있는 재사용성이 높은 클래스를 설계하는 패턴
'하나의 추상 클래스에 메서드를 만들어 각 명령이 들어오면 그에 맞는 서브클래스가 선택되어 실행되는 특징을 갖는 패턴
'요구사항을 객체로 캡슐화
스트레티지(Strategy) '알고리즘군을 정의하고(추상) 같은 알고리즘을 각각 하나의 클래스로 캡슐화한다음 필요할때 서로 교환해서 사용할 수 있게하는 패턴
'행위를 클래스로 캡슐화해 동적으로 행위를 자유롭게 바꿀 수 있게 해줌
'행위 객체를 클래스로 캡슐화해 동적으로 행위를 자유롭게 변환
'사용하는 알고리즘을 변경하여 런타임 시 개체의 동작을 변경할 수 있습니다.
Duck mallard = new Duck(new FlyWithWings()); mallard.performFly(); // outputs: "I'm flying with my wings!" mallard.setFlyBehavior(new FlyNoWay()); mallard.performFly(); // outputs: "I can't fly."
메멘토(Memento) '클래스 설계 관점에서 객체의 정보를 저장할 필요가 있을때 적용하는 디자인 패턴
'Undo 기능을 개발할때 사용
'객체를 이전 상태로 복구시켜야하는경우, Undo 요청 가능
책임연쇄
(Chain of Responsibility)
'정적으로 어떤 기능에대한 처리의 연결이 하드코딩 되어있을때 기능처리의 연결 변경이 불가능한데 이를 동적으로 연결되어있는 경우에 따라 다르게 처리될 수 있도록 연결한 디자인 패턴
'한 요청을 2개이상의 객체에서 처리 (Java 에서의 try catch 문)

 

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

더보기

안드로이드

 

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

idnamegrade

1111 홍길동 1
2222 임꺽정 2
3333 유관순 3
4444 안중근 3
5555 홍범도 4
더보기

CREATE INDEX idx_name ON student(name);


(1) INDEX 생성

CREATE INDEX idx1 ON orders(name, tel);

 

(2) VIEW 생성

CREATE VIEW v1 AS SELECT id, name FROM orders WHERE gender = 'M';

 

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

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


웹서비스 유형

유형 설명
SOAP
(Simple Object Acess Protocol)
HTTP, HTTPS, SMTP 등 사용하여 XML 기반의 메시지를 네트워크 상태에서 교환하는 프로토콜
원격 프로시저 호출 (RPC; Remote Procedure Call)을 하는 메시지 패턴을 사용
클라이언트에서 서버로 메시지를 요청하고 서버는 메시지를 즉시 응답
HTTP 프로토콜 상 SOAP Envelope, 헤더, 바디등 추가된 XML 문서로 송수신은 HTTP로함
UDDI
(Universal Description Discovery and Integration)
웹서비스에 대한 정보인 WSDL을 등록하고 검색하기 위한 저장소, 공개적으로 접근 검색이 가능한 레지스트리이자 표준
서비스 제공자는 UDDI라는 서비스 소비자에게 이미 알려진 온라인 저장소에 그들이 제공하는 서비스 목록들을 저장하게되고, 서비스 소비자들은 그 저장소에 접근하며 원하는 서비스 목록을 찾을 수 있게된다.
WSDL
(WebService Description Language)
웹 서비스명, 제공위치, 메시지포맷, 프로토콜 정보 등 웹서비스에 대한 상세정보가 기술된 XML 형식으로 구현되어있는 언어
SOAP, XML 스키마와 결합하여 인터넷상에 웹서비스를 제공하기 위해 사용되기도 함

 

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

더보기

웹 페이지의 입력값을 통해서 SQL명령어를 주입하여 오동작을 일으키는 해킹방법


입력 데이터 검증 및 표현 취약점

종류 설명
XSS
(Cross Site Script)
검증되지 않은 외부 입력 데이터가 포함된 웹 페이지를 사용자가 열람할때 부적절한 스크립트가 실행되는 공격
사이트간 요청위조
(CSRF; Cross Site Request Forgery)
사용자가 자신의 의지와는 무관하게 공격자가 의도한 행위를 특정 웹사이트에 요청하게 하는 공격
SQL 삽입
(SQL Injection)
악의적인 SQL 구문을 삽입하고 실행시켜 정보를 열람, 조작할 수 있는 취약 공격법

 

 

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

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

유효성

 

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

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

chmod 751 a.txt


 

chmod - 위키백과, 우리 모두의 백과사전 (wikipedia.org)

 

 

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

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

Linked Open Data


Linked Open Data는 링크된 데이터 중에서 재사용을 제한하지 않는 오픈 라이선스로 공개된 데이터를 말한다.

링크된 데이터란 웹 상에서 서로 연결되어 의미와 관계를 가지는 데이터이다.

Linked Open Data는 다양한 분야의 정보를 통합하고 검색하고 활용할 수 있도록 하는 기술이다.

예) Wikidata, DBpedia 등

 

시멘틱웹은 월드 와이드 웹을 확장하여 인터넷의 데이터를 기계가 읽고 처리할 수 있도록 하는 기술.

시멘틱웹의 목표는 웹 상의 자원에 대한 의미와 관계를 표현하고 연결하는 것.

시멘틱웹을 구현하기 위해 RDF, OWL, SPARQL 등의 표준이 사용된다.

 

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

요구사항 분석 -> (    ) -> (     ) -> (       ) -> 구현
더보기

개념모델링 - 논리모델링 - 물리모델링

 

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

class A {
    int a;
    public A(int n) {
        a = n;
    }
    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);
    }
}
더보기

a = 10

 

 

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

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

형상 관리

 

댓글