2020년 실기 기출문제
2020년 실기 기출문제 풀이 모음
1회차
XML
웹브라우저 간 HTML 문법이 호환되지 않는 문제와 SGML의 복잡함을 해결하기 위하여 개발된 다목적 마크업 언어이다.
JSON
속성-값 쌍(attribute-value pairs)으로 이루어진 데이터 오브젝트를 전달하기 위해 사용하는 개방형 표준 포맷이다. AJAX에서 많이 사용되고 XML을 대체하는 주요 데이터 포맷이다. 언어 독립형 데이터 포맷으로 다양한 프로그래밍 언어에서 사용되고 있다.
릴리즈 노트 헤더
릴리즈 노트 이름, 소프트웨어 이름, 릴리즈 버전, 릴리즈 날짜, 릴리즈 노트 날짜, 릴리즈 노트 버전 등의 기존정보가 포함된다.
살충제 패러독스
동일한 살충제를 반복적으로 사용하면 벌레에게 내성이 생기는 것처럼, 동일한 테스트 기법이나 전략을 적용하면 장애가 발견되지 않는 것
데이터 마이닝
대규모로 저장된 데이터 안에서 체계적이고 자동적으로 통계적 규칙이나 패턴을 분석하여 가치있는 정보를 추출하는 과정이다.
프로토콜 구성 요소
- 구문(Syntax): 프로토콜에서 사용하는 메시지의 형식과 구조를 정의합니다. 메시지의 길이, 형식, 필드 구성 등이 포함됩니다.
- 의미(Semantics): 프로토콜에서 사용하는 메시지의 의미와 해석을 정의합니다. 메시지의 내용과 처리 방법 등을 포함합니다.
- 타이밍(Timing): 프로토콜에서 사용하는 메시지의 전송 시점과 순서를 정의합니다. 메시지의 전송 시간, 대기 시간, 순서 등이 포함됩니다.
해시 함수 MD5
128비트 암호화 해시 함수로 RFC 1321로 지정되어 있으며, 주로 프로그램이나 파일이 원본 그대로인지를 확인하는 무결성 검사 등에 사용된다. 1991년에 로널드 라이베스트(Ronald Rivest)가 예전에 쓰이던 MD4를 대체하기 위해 고안하였다.
HRN 우선순위 계산식
우선순위 = (대기시간 + 실행시간) / 실행시간
데이터베이스 트랜잭션의 4가지 속성
- 원자성: 트랜잭션은 연산들을 전부 실행하든지 전혀 실행하지 않아야 한다. 일부만 실행해서는 안 된다.
- 일관성: 트랜잭션이 성공적으로 실행되면 데이터베이스 상태는 모순되지 않고 일관된 상태가 된다.
- 독립성: 트랜잭션 실행 도중의 연산 결과는 다른 트랜잭션에서 접근할 수 없다.
- 지속성: 트랜잭션이 성공했을 경우 영구적으로 반영되어야 한다.
랜드 어택
패킷의 출발지 주소(Address)나 포트(port)를 임의로 변경하여 출발지와 목적지 주소(또는 포트)를 동일하게 함으로써, 공격 대상 컴퓨터의 실행 속도를 느리게 하거나 동작을 마비시켜 서비스 거부 상태에 빠지도록 하는 공격
OSI 7계층 물리계층
전송에 필요한 두 장치 간의 실제 접속과 절단 등 기계적, 전기적, 기능적, 절차적 특성에 대한 규칙을 정의한다. 단위(PDU)는 '비트'를 사용한다.
LOC 기법 계산식
코드 줄 개수 / 개발자 인원수 * 평균 개발 라인수
애플리케이션 성능 측정 요소
- 처리량: 일정 시간 내에 애플리케이션이 처리하는 일의 양
- 응답시간: 애플리케이션에 요청을 전달한 시간부터 응답이 도착할 때까지 걸린 시간
- 경과시간: 애플리케이션에 작업을 의뢰한 시간부터 처리가 완료될 때까지 걸린 시간
- 자원 사용률: 애플리케이션이 의뢰한 작업을 처리하는 동안의 CPU 사용량, 메모리 사용량, 네트워크 사용량 등
소프트웨어 모듈화
모듈의 기능적 독립성은 소프트웨어를 구성하는 각 모듈의 기능이 서로 독립됨을 의미하는 것으로, 모듈이 하나의 기능만을 수행하고 다른 모듈과의 과도한 상호작용을 배제함으로써 이루어진다. 모듈의 독립성을 높이기 위해서는 결합도는 약하게, 응집도는 강하게 만들어야 한다.
데이터베이스 반정규화
시스템 성능 향상, 개발 및 운영 편의성 등을 위해 정규화된 데이터 모델을 통합, 중복, 분리하는 과정으로 의도적으로 정규화 원칙을 위배하는 것
Fan-in
데이터가 들어오는 것. 반대로, Fan-out은 데이터가 나가는 것.
C언어 버블 정렬
- 출력 결과는
50 75 85 95 100
C언어 switch 구문
break가 없으므로case 3:이후 전부 실행- 정답은
-8
Java
- 출력 결과는
0 1 2 3
SQL 튜플 수 계산하기
학생 테이블에 전기과 학생이 50명, 전산과 학생이 100명, 전자과 학생이 50명 있다고 할 때, 다음 SQL문 ①, ②, ③의 실행 결과로 표시되는 튜플의 수를 쓰시오. (단, DEPT 필드는 학과를 의미)
SELECT 학과 FROM 학생;은 모든 학과에 속한 학생들의 정보를 가져오므로, 총 학생 수 만큼의 튜플이 표시됩니다. 따라서 결과 튜플의 수는 150개입니다.SELECT DISTINCT 학과 FROM 학생;은 학과 정보의 중복을 제거하여 각 학과를 한 번씩만 표시합니다. 따라서 학과의 종류인 3개(전기과, 전산과, 전자과.에 대해 한 개의 튜플씩 표시되므로, 결과 튜플의 수는 3개입니다.SELECT COUNT(DISTINCT 학과) FROM 학생 WHERE 학과='전산과';문은 특정 조건(학과가'전산과')을 만족하는 학생들 중에서도 학과의 고유 수를 세는 쿼리입니다. 하지만COUNT(DISTINCT 학과)부분은 조건에 맞는 경우에 학과가 하나뿐이므로, 이 경우 고유 학과 수는 항상 1입니다. 따라서 결과 튜플의 수는 1개입니다.
2회차
RTO
귀하는 IT회사의 보안관제실에서 근무하고 있다. 정보시스템 운영 중 자연재해나 시스템 장애 등의 이유로 대고객 서비스가 불가능한 경우가 종종 발생한다. 이를 대비하여 백업 및 복구 솔루션을 도입하고자 한다. 백업 및 복구 솔루션은 ( A ) 와 복구 목표 시점(RPO) 기준을 충족할 수 있는 제품으로 선정해야 한다. ( A ) 는 “비상사태 또는 업무중단 시점으로부터 업무가 복구되어 다시 정상가동 될 때까지의 시간” 을 의미하고 복구 목표 시점(RPO)는 "업무 중단 시 각 업무에 필요한 데이터를 여러 백업 수단을 이용하여 복구할 수 있는 기준점"을 의미한다.
| 용어 | 약어 | 의미 |
|---|---|---|
| 복구 시간 목표 | RTO (Recovery Time Objective) | 비상사태 또는 업무 중단 시점으로부터 시스템이 다시 정상적으로 가동되기까지 허용 가능한 최대 시간. 예를 들어, RTO가 4시간이면, 장애가 발생한 후 4시간 이내에 서비스를 복구해야 함 |
| 복구 시점 목표 | RPO (Recovery Point Objective) | 장애가 발생했을 때, 데이터가 얼마만큼의 시간 간격까지 복구될 수 있는지를 나타내는 기준. 예를 들어, RPO가 1시간이면, 최근 백업으로부터 최대 1시간 이전까지의 데이터 손실은 감수할 수 있다는 의미 |
Python set 연산
AJAX
'비동기식 자바스크립트 XML'을 의미하는 용어로, 클라이언트와 웹서버 간에 XML 데이터를 내부적으로 통신하는 대화식 웹 애플리케이션의 제작을 위해 사용된다. 클라이언트의 요청에 의해 웹서버에서 로딩된 데이터를 웹 브라우저의 페이지에 보여주기 위해 웹 페이지 전체를 '새로고침'할 필요 없이 즉, 현재 페이지에서 필요한 일부만 로딩되도록 하는 웹 개발 기법을 의미한다.
애자일 방법론
고객의 요구사항 변화에 유연하게 대응하기 위해 일정한 주기를 반복하면서 개발하며 고객에게 시제품을 지속적으로 제공하며 고객의 요구사항이 정확하게 반영되고 있는지 점검한다. 폭포수 모형에 대비되는 유연한 방법론으로 비교적 소규모 개발 프로젝트에서 각광받고 있는 개발 방법론이다.
Java 생성자 new
- 정답은 생성자 키워드
new
SQL IN
다음과 같은 "학생" 테이블을 대상으로, 3학년과 4학년의 학번과 이름을 출력하는 SQL문을 작성하시오. (단, in 구문을 반드시 사용할 것)
| 학번 | 이름 | 학년 |
|---|---|---|
| 1111 | 홍길동 | 1 |
| 2222 | 임꺽정 | 2 |
| 3333 | 유관순 | 3 |
| 4444 | 안중근 | 3 |
| 5555 | 홍범도 | 4 |
SQL ROLLBACK
SQL 제어어(DCL)에는
COMMIT,ROLLBACK,GRANT,REVOKE가 있다. 그 중ROLLBACK에 대해 약술하시오.
SQL ROLLBACK
트랜잭션이 실패하여 작업을 취소하고 이전 상태로 되돌리는 데이터 제어어
| 명령어 | 설명 | 예시 |
|---|---|---|
GRANT | 사용자에게 특정 권한 부여 | GRANT SELECT ON employees TO user1; |
REVOKE | 사용자에게 부여된 권한 회수 | REVOKE SELECT ON employees FROM user1; |
COMMIT | 변경사항을 저장(확정)함. 이후에는 ROLLBACK 불가능 | COMMIT; |
ROLLBACK | 트랜잭션 내 변경사항을 취소하고 이전 상태로 되돌림 | ROLLBACK; |
IPSec
네트워크 계층(network layer, 3계층)인 인터넷 프로토콜(IP)에서 '암호화', '인증', '키 관리'를 통해 보안성을 제공해 주는 표준화된 기술
IPSec
IP 계층에서 무결성과 인증을 보정하는 인증 헤더와 기밀성을 보장하는 암호화를 이용한 IP 보안 프로토콜
정적 테스트
애플리케이션을 실행하지 않고, 소스 코드에 대한 코딩 표준, 코딩 스타일, 코드 복잡도 및 남은 결함을 발견하기 위하여 사용하는 테스트 자동화 도구 유형은?
| 구분 | 정의 | 예시 |
|---|---|---|
| 정적 테스트 | 소프트웨어를 실행하지 않고, 코드나 문서를 분석하여 오류를 식별하는 테스트 기법 | 워크 스루 (Walkthrough), 인스펙션 (Inspection), 코드 검사 (Code Review), 정적 분석 도구 |
| 동적 테스트 | 소프트웨어를 실제로 실행하여, 기능이나 성능이 요구사항에 맞게 동작하는지를 확인하는 테스트 기법 | 블랙박스 테스트, 화이트박스 테스트, 단위 테스트, 통합 테스트 등 |
옵저버 패턴
다음에서 설명하는 소프트웨어 디자인 패턴을 영문으로 쓰시오.
"한 객체의 상태가 바뀌면 그 객체에 의존하는 다른 객체들한테 연락이 가고 자동으로 내용이 갱신되는 방식으로 일 대 다(one-to-many) 의존성을 가지는 디자인 패턴. 서로 상호작용을 하는 객체 사이에서는 가능하면 느슨하게 결합(Loose coupling)하는 디자인을 사용해야 한다."
안드로이드
리눅스 커널을 기반으로 동작하며 자바의 코틀린 언어로 개발된, 모바일 기기에 주로 사용되는 오픈소스 플랫폼인 운영체제는 무엇인지 쓰시오.
SQL 인덱스 생성
다음 주어진
student테이블의name속성에idx_name를 인덱스 명으로 하는 인덱스를 생성하는 SQL문을 작성하시오.
| id | name | grade |
|---|---|---|
| 1111 | 홍길동 | 1 |
| 2222 | 임꺽정 | 2 |
| 3333 | 유관순 | 3 |
| 4444 | 안중근 | 3 |
| 5555 | 홍범도 | 4 |
CREATE INDEX→ 인덱스 생성 명령어다.idx_name→ 생성할 인덱스의 이름이다.ON student→ 인덱스를 생성할 테이블 이름이다.(name)→ 인덱스를 생성할 특정 컬럼 이름이다.
SOAP
( A ) 은(는) HTTP 등의 프로토콜을 이용하여 XML 기반의 메시지를 교환하는 프로토콜로, Envelope-Header-Body 주요 3요소로 구성된다. ( A ) 은(는) 유사한 기능을 하는 RESTful로 대체될 수 있다.
SQL Injection
소프트웨어 보안 취약점 중 하나인 SQL Injection에 대해 간략히 설명하시오.
SQL Injection
웹 애플리케이션 입력 필드에 SQL 코드를 삽입하여 데이터베이스를 비정상적으로 조작하거나 정보를 탈취하는 취약점
인터페이스 설계 원칙
다음은 사용자 인터페이스 설계 원칙에 대한 설명이다. 괄호 안에 들어갈 설계 원칙을 적으시오.
- 직관성: 누구나 쉽게 이해하고 사용할 수 있어야 한다.
- ( A ): 사용자의 목적을 정확하게 달성하여야 한다.
- 학습성: 누구나 쉽게 배우고 익힐 수 있어야 한다.
- 유연성: 사용자의 요구사항을 최대한 수용하며, 오류를 최소화하여야 한다.
사용자 인터페이스 설계 원칙은 직유학유(직관성, 유효성, 학습성, 유연성)다. 고로 정답은 유효성
리눅스 명령어 chmod
리눅스 운영체제에서 현재 디렉터리에 위치한 "a.txt"에 아래의 조건대로 권한을 부여하고자 한다. 실행해야 하는 명령어를 적으시오.
- 사용자에게 읽기, 쓰기, 실행 권한 부여
- 그룹에게 읽기, 실행 권한 부여
- 그 외에게 실행 권한 부여
- 한 줄의 명령어로 작성하며, 아라비안 숫자를 사용하여 8진수 권한으로 부여
- 권한을 8진수로 설정할 때, 각각 읽기는
4(r), 쓰기는2(w), 실행은1(x)에 해당한다. - 복수 권한은 덧셈 연산을 통해 적용하며
사용자/그룹/그외순으로 적용하기에 권한은 아래와 같이 설정된다.- 사용자 권한은 읽기, 쓰기, 실행 권한이 부여되기에
4 + 2 + 1이고7에 해당한다. - 그룹 권한은 읽기, 쓰기에 해당하므로
4 + 1이고5에 해당한다. - 그 외의 권한은 실행만 해당하므로
1에 해당한다.
- 사용자 권한은 읽기, 쓰기, 실행 권한이 부여되기에
- 결론적으로 8진수 권한은
751에 해당한다.
Linked Open Data
다음에서 설명하는 용어를 영문 완전 이름(Full-name)으로 적으시오.
- 전세계 오픈된 정보를 하나로 묶는 방식
- Linked data와 Open data의 합성어
- URI(Uniform Resource Identifier)를 사용
- RESTful 방식으로 볼 수 있으며, 링크 기능이 강조된 시멘틱 웹에 속하는 기술
데이터베이스 모델링 과정
다음은 데이터베이스 설계(모델링) 과정을 간략히 표현한 것이다. 괄호 안에 들어갈 내용을 순서대로 나열하시오.
요구사항 분석 → ( ) → ( ) → ( ) → 구현
- 개념적 설계 → 실제 사용자 관점에서 데이터의 주요 엔티티와 관계를 추상적으로 표현. 비즈니스 요구사항 중심
- 논리적 설계 → 개념적 모델을 특정 데이터베이스 모델로 구체화. 스키마 정의 및 테이블, 컬럼, 제약조건 설계
- 물리적 설계 → 논리적 설계를 데이터베이스 시스템에 맞게 최적화. 데이터 저장 구조, 인덱스 전략, 성능 향상을 위한 물리적 배치
Java
다음 자바(Java) 프로그램을 실행한 출력 결과를 쓰시오.
형상 관리
다음 보기에서 설명하는 것으로 가장 적절한 것은?
소프트웨어 개발 과정에서 산출물 등의 변경에 대비하기 위해 반드시 필요하다. 소프트웨어 리사이클 기간 동안 개발되는 제품의 무결성을 유지하고 소프트웨어의 식별, 편성 및 수정을 통제하는 프로세스를 제공한다. 실수를 최소화하고 생산성의 최대화가 궁극적인 목적이다. 관련 도구로는 CVS, SVN, Clear Case 등이 있다.
3회차
리팩토링의 목적
리팩토링의 목적에 대한 설명을 작성하시오.
- 가독성 향상 → 코드를 더 명확하고 이해하기 쉽게 재구성하여 개발자들이 빠르게 내용을 파악할 수 있게 한다.
- 유지보수 용이성 → 내부 구조를 개선하여 향후 수정과 확장이 수월해지도록 한다. 이로 인해 오류 수정이나 기능 추가가 더 효율적으로 이루어진다.
- 확장성 증대 → 코드의 기본 구조를 최적화함으로써 새로운 기능 추가나 변경사항을 더 쉽게 통합할 수 있다.
- 안정성 강화 → 코드를 간결하고 논리적으로 재구성함으로써 잠재적 버그를 줄이고 시스템의 안정성을 높인다.
C언어
Last updated on