본문 바로가기

Studying/정보처리기사

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

1. 정보시스템 운영 중 서버가 다운되거나 자연재해나 시스템 장애 등의 이유로 고객에게 서비스가 불가능한 경우가 종종 발생한다. 이와 같은 상황에서 비상사태 또는 업무중단 시점부터 업무가 복구되어 다시 정상 가동될 때까지의 시간을 의미하는 용어가 무엇인지 쓰시오.

 

: 재해 복구 시간(RTO, Recovery Time Objecive)

 

비즈니스 연속성 계획(BCP)의 주요 용어

 

① BIA(Business Impact Analysis)

 : 장애나 재해로 인해 운영상의 주요 손실을 볼 것을 가정하여 시간 흐름에 따른 영향도 및 손실평가를 조사하는 BCP를 구축하기 위한 비즈니스 영향 분석.

② RTO(Recovery Time Objective)

 : 업무중단 시점부터 업무가 복구되어 다시 가동될 때까지의 시간으로 재해 시 복구 목표 시간의 선정.

③ RPO(Recovery Point Objective) 

 : 업무중단 시점부터 데이터가 복구되어 다시 정상가동될 때 데이터의 손실 허용 시점.

   재해 시 복구 목표 지점의 선정.

④ DRP(Disaster Recovery Plan)

 : 재난으로 장기간에 걸쳐 시설의 운영이 불가능한 경우를 대비한 재난 복구 계획

⑤ DRS(Disaster Recovery System)

 : 재해복구계획의 원활한 수행을 지원하기 위하여 평상시에 확보하여 두는 인적, 물적 자원 및 이들에 대한 지속적인 관리체계가 통합된 재해복구센터.

 


 

3. 브라우저가 가지고 있는 XMLHttipRequest 객체를 이용해서 전체 페이지를 새로 고치지 않고도 페이지의 일부분만을 위한 데이터를 로드하는 기법이며, 하이퍼 텍스트 표기언어(HTML)만으로 어려운 다양한 작업을 웹 페이지에서 구현해 이용자가 웹 페이지와 자유롭게 상호작용할 수 있도록 하는 기술명은?

 

: 비동기 통신 기법 (AJAX, Asynchronus JavaScript and XML)


 

4. 절차보다는 사람이 중심이 되어 변화에 유연하고 신속하게 적응하면서 효율적으로 시스템을 개발할 수 있는 신속 적응적 경량 개발방법론으로, 개발 기간이 짧고 신속하며, 워터폴에 대비되는 방법론으로 최근 회사에서 각광받는 방법론은?

 

: 애자일 (Agile)


 

5. 다음은 자바 코드이다. 다음 밑줄에 들어갈 키워드를 작성.

 

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

 

: new

 

클래스 객체변수명 = new 생성자(매개변수);

 


 

6. 학생 테이블은 학번(VARCHAR), 이름(VARCHAR), 학년(NUMBER), 수강과목(VARCHAR), 점수(NUMBER), 연락처(VARCHAR)를 속성으로 가진다. 아래 조건을 만족하는 SQL문을 작성.

① 학생 테이블에서 3, 4학년인 학번, 이름을 조회한다.

② IN 연산자 사용해야 한다.

 

[학생 테이블]

학번 이름 학년 수강과목 점수 연락처
1000 김정미 1 알고리즘 90 010-1111-2222
2000 강은미 2 데이터베이스 95 010-2222-2222
3000 홍길동 3 전산수학 90 010-3333-3333
4000 장길산 4 운영체제 95 010-4444-4444

 

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


 

7. 트랜잭션 Rollback에 대해 설명. (커롤체)

 

: 트랜잭션 처리 중 오류 발생했을 때, 오류 이전의 특정 시점 상태로 되돌려주는 명령어.

 

 TCL 명령어 종류 (TCL : 트랜잭션 제어 언어)

 

① COMMIT(커밋) : 트랜잭션 확정 트랜잭션을 메모리에 영구적으로 저장하는 명령어.

② ROLLBACK(롤백) : 트랜잭션 취소 트랜잭션 내역을 저장 무효화시키는 명령어.

③ CHECKPOINT(체크포인트) : 저장 시기 설정 ROLLBACK을 위한 시점을 지정하는 명령어. 


 

8. 무결성과 인증을 보장하는 인증헤어(AH)와 기밀성을 보장하는 암호화(ESP)를 이용한 프로토콜로 네트워크 계층(Network Layer)인 인터넷 프로토콜(IP)에서 보안성을 제공해 주는 표준화된 기술 작성.

 

: IPSec

 

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

IPSec의 주요 프로토콜

 

① 인증(AH) 프로토콜

 : 메시지 인증 코드(MAC)를 이용하여 인증과 송신처 인증을 제공해 주는 프로토콜로 기밀성(암호화)은 제공하지 않는 프로토콜.

   무결성, 인증 제공.

② 암호화(ESP) 프로토콜

 : 메시지 인증 코드(MAC)와 함호화를 이용하여 인증과 송신처 인증과 기밀성을 제공하는 프로토콜.

   기밀성, 무결성, 인증 제공.

③ 키 관리(IKE) 프로토콜

 : Key를 주고받는 알고리즘.

   공개된 네트워크를 통하여 Key를 어떻게 할 것인가를 정의, IKE 교환을 위한 메시지를 전달하는 프로토콜.

 


 

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

 

: 정적 분석 도구


 

10. 다음 보기가 설명하는 패턴을 쓰시오. (영문 Full-Name으로 작성하시오.)

한 객체의 상태가 바뀌면 그 객체에 의존하는 다른 객체들에 연락이 가고 자동으로 내용이 갱신되는 기법으로 일대 다의 의존성을 가지며 상호작용하는 객체 사이에서는 가능하면 느슨하게 결합하는 디자인을 사용해야 한다.

 

: Observer Pattern

 

디자인 패턴 중 행위패턴

 

① Chain of Responsibility

 : 처리가능한 객체가 둘 이상 존재하여 한 객체 내 처리 불가 시 다음 객체로 이관.

 : 정적으로 어떤 기능에 대한 처리의 연결이 하드 코딩되어 있을 때 기능 처리의 연결 변경이 불가능한데, 이를 동적으로 연결된 경우에 따라 다르게 처리될 수 있도록 연결한 디자인 패턴.

   한 요청을 2개 이상의 객체에서 처리.

② Command

 : 요청 명령어들을 추상, 구체 클래스로 분리 후 단순화, 캡슐화.

 : 실행될 기능을 캡슐화함으로써 주어진 여러 기능을 실행할 수 있는 재사용성이 높은 클래스를 설계하는 패턴.

   하나의 추상 클래스에 메서드를 만들어 각 명령이 들어오면 그에 맞는 서브 클래스가 선택되어 실행되는 특징 갖는 디자인 패턴.

   요구 사항을 갖는 디자인 패턴

③ Interpreter

 : 언어에 문법 표현 정의.

 : 언어의 다양한 해석.

   구체적으로 구문을 나누고 그 분리된 구문의 해석을 맡는 클래스를 각각 작성하여 여러형태의 언어구문을 해석할 수 있게 만드는 디자인 패턴.

④ Iterator

 : 접근이 빈번한 객체에 대해 동일 인터페이스 사용.

 : 컬렉션 구현 방법을 노출시키지 않으면서도 그 집합체 안에 들어있는 모든 항목에 접근할 방법을 제공하는 디자인 패턴.

   문내부 구조를 노출하지 않고, 복잡 객체의 원소를 순차적으로 접근 가능하게 해주는 행위 패턴.

⑤ Mediator

 : 객체들 간 복잡한 상호작용을 캡슐화하여 객체로 정의 후 중재.

 : 객체지향 설계에서 객체의 수가 너무 많아지면 서로 간 통신을 위해 복잡해져서 객체지향에서 가장 중요한 느슨한 결합의 특성을 해칠 수 있기 때문에 이를 해결하는 방법으로 중간에 이를 통제하고 지시할 수 있는 역할을 하는 중재라를 두고, 중재자에게 모든 것을 요구하여 통신의 빈도수를 줄여 객체지향의 목표를 달성하게 해주는 디자인 패턴.

   상호작용의 유연한 변경을 지원.

⑥ Memento

 : 객체를 이전의 특정 시점의 상태로 저장하고 복원(캡슐화 유지).

 : 클래스 설계 관점에서 객체의 정보를 저장할 필요가 있을 때 적용하는 디자인 패턴으로 Undo 기능을 개발할 때 사용하지는 디자인 패턴.

   객체를 이전 상태로 복구시켜야 하는 경우, '작업취소(Undo)' 요청 가능.

⑦ Observer

 : 한 객체 상태 변화 시 상속되어 있는 개체들에 변화 전달.

 : 자동으로 내용이 갱신되어 일대 다의 의존성을 가지며 상호작용하는 객체 사이에서는 가능하면 느슨하게 결합하는 디자인 패턴.

   객체의 상태 변화에 따라 다른 객체의 상태도 연동, 일대다 의존.

⑧ State

 : 객체의 상태에 따라 동일한 동작을 다르게 처리.

 : 객체 상태를 캡슐화하여 클래스화함으로써 그것을 참조하게 하는 방식으로 상태에 따라 다르게 처리할 수 있도록 행위 내용을 변경하여, 변경 시 원시 코드의 수정을 최소화할 수 있고, 유지보수의 편의성도 갖는 디자인 패턴.

⑨ Strategy

 : 동일 계열 알고리즘을 개별적으로 캡슐화하여 상호 교환.

 : 그런 다음 필요할 때 서로 교환해서 사용할 수 있게 하는 패턴으로, 행위를 클래스로 캡슐화해 동적으로 행위를 자유롭게 바꿀 수 있게 해주는 디자인 패턴.

   행위 객체를 클래스로 캡슐화해 동적으로 행위를 자유롭게 반환.

⑩ Template Method

 : 여러 클래스에서 공통 사용 메서드를 상위 클래스에서 정의하고, 하위 클래스마다 다르게 구현해야 하는 세부 사항을 개별 구현.

 : 상위 클래스(추상 클래스) 정의 시 구조는 바꾸지 않으면서 추상 메서드를 통해 기능의 골격을 제공하고, 하위 클래스(구체 클래스)의 메서드에는 코드 양을 줄이고 유지 보수 용이하게 만드는 특징을 갖는 디자인 패턴.

⑪ Visitor

 : 각 클래스 데이터 구조로부터 처리 기능을 분리하여 별도의 클래스를 만들어 놓고 해당 클래스의 메서드가 각 클래스를 돌아다니며 특정 작업을 수행하도록 만드는 패턴으로, 객체의 구조는 변경하지 않으면서 기능만 따로 추가하거나 확장할 때 사용하는 디자인 패턴.

   특정 구조를 이루는 복합 객체의 원소 특성에 따라 동작을 수행할 수 있도록 지원하는 행위.

 


 

11. Linux 운영체제 위에서 구동하며 휴대폰 전화를 비롯한 휴대용 장치를 위한 운영체제와 미들웨어, 사용자 인터페이스 그리고 표준 응용 프로그램(웹 브라우저, 이메일 클라이언트, 단문 메시지 서비스(SMS), MMS) 등을 포함하고 있는 소프트웨어 스택이자 리눅스 모바일 운영체제로 개발자들이 자바와 코틀린 언어로 응용 프로그램을 작성할 수 있게 했고, 컴파일된 바이트 코드를 구동할 수 있는 런타임 라이브러리를 제공하는 운영체제.

 

: 안드로이드(Android)

 

안드로이드 특징

 

① 리눅스 기반 : 안드로이드는 리눅스 커널 위에서 동작.

② 자바와 코틀린 언어 : 고수준 언어를 사용해 응용프로그램을 작성하고, 생산성이 높으며 전문지식이 없어도 개발 가능.

③ 런타임 라이브러리 : 컴파일된 바이트 코드 구동 가능.④ 안드로이드 소프트웨어 개발 키트(SDK) : 응용 프로그램을 개발하는 데 필요한 각종 도구와 API 제공.


 

12. STUDENT 테이블의 NAME 속성에 IDX_NAME 이름으로 인텍스 생성하는 SQL 문을 작성.

[STUDENT] 테이블

STID NAME SCORE DEPTID
1000 김정미 90 1
2000 강은미 95 2
3000 홍길동 90 3
4000 장길산 95 4

 

: CREATE INDEX IDX_NAME ON STUDENT(NAME);

 

INDEX 생성 문법

 

CREATE [UNIQUE] INDEX 인덱스명 ON 테이블명(컬럼명1, 컬럼명2, ...);

오름차순, 내림차순 작성하고 싶으면 컬럼명 다음에 작성하면 됨. ex) NAME ASC

 


 

13. 다음 설명 중 빈칸에 들어갈 알맞은 용어를 작성.

HTTP, HTTPS, SMTP를 통해서 XML 기반의 데이터를 주고받는 프로토콜로 웹 서비스 방식에서 HTTP 기반의 (    )을/를 사용하여 송수신한다.

(    ) 대신 레스트풀(RESTful) 프로토콜로 대체할 수 있다.

 

: SOAP (Simple Object Access Protocol)


 

14. SQL Injection이 무엇인지 서술.

 

: 임의의 SQL 문을 주입하고 실행되게 하여 데이터베이스가 비정상적인 동작을 하도록 조작하는 코드 삽입 공격.

 

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

 

① XSS (Cross Site Scripting) : 검증되지 않은 외부 입력 데이터가 포함된 웹 페이지가 전송되는 경우, 사용자가 해당 웹 페이지를 열람함으로써 웹 페이지에 포함된 부적절한 스크립트가 실행되는 공격.

② 사이트 간 요청 위조(CSRF) : 사용자가 자신의 의지와는 무관하게 공격자가 의도한 행위를 특정 웹 사이트에 요청하게 하는 공격.

③ SQL삽입 : 응용 프로그램의 보안 취약점을 이용해서 악의적인 SQL 구문을 삽입, 실행시켜서 데이터베이스(DB)의 접근을 통해 정보를 탈취하거나 조작 등의 행위를 하는 공격 기법.

 


 

15. 사용자에게 읽기 / 쓰기 / 실행 권한을 부여하고 그룹에게 읽기 / 실행을 부여하고 그 외에는 실행 권한을 a.txt에 부여하는 명령어 한 줄로 작성.

 

: chmod 751 a.txt

User Group Other
4 2 1 4 2 1 4 2 1
R W X R W X R W X

 

16. UI 설계 원칙 중에서 정확하고 완벽하게 사용자의 목표가 달성될 수 있도록 제작할 수 있어야 한다는 원칙으로 다음 빈칸에 들어갈 용어는?

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

 

: 유효성

 

(직유학유)


 

17. 전 세계 오픈된 정보를 하나로 묶는 방식으로 link data와 open data의 합성어는?

 

: LOD (Linked Open Data)


 

18. 다음은 데이터 모델링 절차이다. 절차에 맞도록 보기에서 찾아 채우시오.

<보기>

ⓐ 물리적 데이터 모델링 ⓑ 개념적 데이터 모델링 ⓒ 논리적 데이터 모델링

 

요구사항 분석 → (   ①   ) → (   ②   ) → (   ③   )

 

① 개념적 데이터 모델링

② 논리적 데이터 모델링

③ 물리적 데이터 모델링


 

20. 소프트웨어 개발 과정에서 변경 사항을 관리하는 기법은 (      ) 기법이라고 하며, (      ) 기법을 활용한 도구로는 CVS, SVN, Git 등이 있음.

 

: 형상관리

 

형상관리 절차 (식통감기)

 

① 형상식별

 : 형상 관리 대상을 정의 및 식별하는 활동.

   추적성 부여를 위해 ID와 관리번호 부여하고, 변경 관련 이슈 발생 시 ID와 관리 번호 이용하여 추적.

② 형상통제

 : 형상 항목의 버전 관리를 위한 형상통제위원회 운영.

   변경요구 관리, 변경제어, 형상 관리 등 통제 지원하고 베이스라인에 대한 관리 및 형상 통제 수행 가능.

③ 형상 감사

 : 소프트웨어 베이스라인의 무결성 평가,

   베이스라인 변경 시 요구사항과 일치 여부 검토.

④ 형상 기록

 : 소프트웨어 형상 및 변경관리에 대한 각종 수행 결과를 기록.

   형상결과 보고서 작성.