※ 모든 문제는 시험 응시자의 기억으로 복원 된 문제임을 알립니다. 따라서 문제의 지문과 답이 상이한 경우가 발생 할 수 있습니다. (서술형의 경우 정확하게 맞지 않을 수 있습니다.)
※ 또한, 모든 문제의 기본 풀이는 수제비2023 책을 기반으로 작성하였습니다. 오타가 있을 경우, 답이 틀렸을 경우 댓글 부탁드립니다.
※ 수제비 카페 바로가기 - https://cafe.naver.com/soojebi
1. 살충제 패러독스의 개념에 관해 서술하시오.
- 살충제 패러독스는 동일한 케이스로 진행하는 테스트로는 새로운 버그를 찾을 수 없다는 이론으로, 테스트 케이스를 주기적으로 변경해주어야 한다는 이론
- 동일한 테스트 케이스에 의한 반복적 테스트는 새로운 버그를 찾지 못함.
소프트웨어 테스트의 기본원칙 - 소프트웨어 테스트의 원리
10-3
2. 데이터 마이닝의 개념에 관해서 서술하시오.
- 대량의 데이터에서 의미있는 구문이나 문장을 찾아내는 기술
- 빅데이터 분석 기술 중 대량의 데이터를 분석하여 데이터 속에 있는 변수 사이의 상호관계를 규명하여 일정한 패턴을 찾아내는 기법
DB관련 신기술 용어
11-80
3. 프로토콜의 기본 요소 3가지를 쓰시오.
- 구문 - 시스템 간의 정보 전송을 위한 데이터 형식, 코딩, 신호 레벨 등의 규정
- 의미 - 시스템 간의 정보 전송을 위한 제어 정보로 조정과 에러 처리를 위한 규정
- 타이밍 - 시스템 간의 정보 전송을 위한 속도 조절과 순서 관리 규정
프로토콜의 기본 3요소 - 프로토콜의 3요소
11-47
4. 다음이 설명하는 용어는 무엇인지 쓰시오.
- W3C (World wide Web Consoritium) 에서 개발되었고, 웹 브라우저 간 호환이 되지 않는 문제와 SGML (Standard Generalized Markup Language)의 복잡함을 해결하기 위해 개발된 다목적 마크업 언어이다.
- XML
- XML은 HTML의 단점을 보완한 인터넷 언어로, SGML의 복잡한 단점을 개선한 특수한 목적을 갖는 마크업 언어이다.
XML(Extensible Markup Language) - XML의 개념
5-8
5. 속성-값(Attribute - value Pair)으로 이루어진 데이터 오브젝트를 전달하기 위해 사용하는 개방형 표준 포멧이다. AJAX (Asynchronous JavaScript and XML) 에서 많이 사용되고, XML(eXtensible Markup Language)을 대체하는 주요 데이터 포멧이다. 언어 독립형 데이터 포멧으로 다양한 데이터 프로그래밍 언어에서 사용하고 있는 기술은 무엇인가?
- JSON
- JSON은 속성-값(Attribute - value Pair)쌍 또는 "키-값 쌍" 으로 이루어진 데이터 오브젝트를 전달하기 위해 인간이 읽을 수 있는 텍스트를 사용하는 개방형 표준 포맷이다.
- AJAX에서 많이 사용되고 XML을 대체하는 주요 데이터 포맷이다.
- 언어독립형 데이터 포맷으로 다양한 데이터 프로그래밍 언어에서 사용된다.
- 사람이 읽고 쓰기에 용이하며 기계가 분석하고 생성하기에 용이하다.
JSON - JSON의 특징
5-7
6. STUDENT테이블에서 컴퓨터과 학생 50명, 인터넷과 학생 100명, 사무자동화과 학생 50명의 정보가 저장되어 있을 때, 다음 SQL문의 실행 결과에 따른 튜플 수는?
- SELECT DEPT FROM STUDENT;
- SELECT DISTINCT DEPT FROM STUDENT;
- SELECT COUNT(DISTINCT DEPT) FROM STUDENT WHERE DEPT = '컴퓨터과';
- 200
- 3
- 1
- SELECT구문의 작성방법
- SELECT [ALL|DISTINCT] 속성명1, 속성명2 .... FROM 테이블명1, ... [WHERE 조건] [GROUP BY 속성명1, ...] [HAVING 그룹조건] [ORDER BY 속성[AEC | DESC]
- 대괄호로 묶은 구문은 생략이 가능하다.
- ALL은 모든 튜플을 검색할 때, DISTINCT는 중복된 속성이 조회될 경우, 그중 한 개만 검색
- AEC는 오름차순, DESC는 내림차순
- COUNT는 집계함수이다. 집계함수는 COUNT, MAX, MIN, AVG등이 있다.
DML - SELECT명령어
7-16
7. 스케줄링 방식에서 HRN(Highest Response ratio Next) 우선순위 계산식을 쓰시오
- (대기시간 + 서비스시간) / 서비스시간
- HRN스케줄링은 비선점형 스케줄링이다.
- HRN스케줄링은 대기중인 프로세스 중 현재 응답률(Response Ratio)이 가장 높은것을 선택하는 스케줄링 기법이다.
- SJF의 약점인 기아 현상을 보완한 기법으로 긴 작업과 짧은 작업 간의 불평등을 완화하였다.
구분 | 선점형 스케줄링 (Preemptive Scheduling) |
비선점형 스케줄링 (Non Preemptive Scheduling) |
개념 | 하나의 프로세스가 CPU를 차지하고 있을 때, 우선순위가 높은 다른 프로세스가 현재 프로세스를 중단시키고 CPU를 점유하는 스케줄링 방식 | 한 프로세스가 CPU를 할당 받으면 작업종료 후 CPU 반환 시까지 다른 프로세스는 CPU 점유가 불가능한 스케줄링 방식 |
장점 | 비교적 빠른 응답 대화식 시분할 시스템에 적합 |
응답시간 예상 용이 모든 프로세스에 대한 요구를 공정하게 처리 |
단점 | 높은 우선순위 프로세스들이 들어오는 경우 오버헤드 초례 | 짧은 작업을 수행하는 프로세스가 긴 작업 종료 시까지 대기 |
알고리즘 | 라운드로빈(Round Robin) SRT(Shortest Remaining Time First) 다단계 큐(Multi-Level Queue) 다단계 피드백 큐(Multi-Level Feedback Queue) |
우선순위(Priority) 기한부(Deadline) FCFS HRN(High Response Ratio Next) SJF(Shortest Job First) |
활용 | 실시간 응답 환경, Deadline 응답 환경 | 처리시간 편차가 적은 특정 프로세스 환경 |
프로세스 스케줄링 - 프로세스 스케줄링 유형
11-21
8. 트랜잭션의 특징 중 일관성, 지속성 외 2개의 특성을 쓰시오.
- 원자성 (Atomicity)
- 격리성 = (고립성) (Isolation)
- 트랜잭션은 인가받지 않은 사용자로 부터 데이터를 보장하기 위해 DBMS가 가져야 하는 특성이자, 데이터베이스 시스템에서 하나의 논리적 기능을 정상적으로 수행하기 위한 작업의 기본 단위이다.
- 트랜잭션의 특성은 다음과 같다.
원자성 (Atomicity) |
트랜잭션을 구성하는 연산 전체가 모두 정상적으로 실행되거나 모두 취소되어야 하는 성질 | Commit / Rollback 회복성 보장 |
일관성 (Consistency) |
시스템이 가지고 있는 고정요소는 트랜잭션 수행 전과 트랜잭션 수행 완료 후의 상태가 같아야 하는 성질 | 무결성 제약조건 동시성 제어 |
격리성 = 고립성 (Isolation) |
동시에 실행되는 트랜잭션들이 서로 영향을 미치지 않아야 한다는 성질 | Read Uncommitted Read Committed Repeatable Read Seializable |
영속성 = 지속성 (Durability) |
성공이 완료된 트랜잭션의 결과는 영속적으로 데이터베이스에 저장되어야 하는 성질 | 회복기법 |
트랜잭션 - 트랜잭션의 특성
7-2
9. 공격자가 패킷의 출발지 주소나 포트를 임의로 변경해 출발지와 목적지 주소를 동일하게 함으로써 공격 대상 컴퓨터의 실행속도를 느리게 하거나 동작을 마비시켜 서비스 거부 상태에 빠지도록 하는 공격방법은 무엇인가?
- 랜드어택 (Land Attack)
- 랜드어택은 DoS공격의 한 종류로, 출발지 IP와 목적지 IP를 같은 패킷 주소로 만들어 보냄으로써 수신자가 자기 자신에게 응답을 보내게 하여 시스템의 가용성을 침해하는 공격기법이다.
DoS공격 - DoS공격의 종류
9-5
10. RFC 1321로 지정되어 있으며, 주로 프로그램이나 파일이 원본 그대로인지를 확인하는 무결성 검사등에 사용된다. 1991년 로널드 라이베스트가 예전에 쓰이던 MD4를 대체하기 위해 고안된 128비트 암호화 해시 함수는 무엇인가?
- MD5
- MD5는 해시 암호화 알고리즘의 한 종류이다.
- 1991년 로널드 라이베스트가 MD4를 개선한 암호화 알고리즘으로 프로그램이나 파일의 무결성 검사에 사용된다.
- 각각의 512비트짜리 입력 메세지 블록에 대해 차례로 동작하여 128비트의 해시값을 생성하는 해시 알고리즘
- 해시 암호화 알고리즘에는 MD5, SHA-1 SHA-256/384/512, HAS-160, HAVAL 등이 있다.
- 해시 암호화 알고리즘은 일방향 암호 방식으로 임의 길이의 정보를 입력받아, 고정된 길이의 암호문(해시값)을 출력하는 암호방식이다.
해시 암호화 알고리즘
9-24
11. 다음은 공통 모듈 구현의 개념에 대한 설명이다. 괄호 ( ) 안에 알맞은 용어를 쓰시오.
- 소프트웨어 개발에 있어 기능을 분할하고 추상화 하여 성능을 향상시키고, 유지보수를 효과적으로 하기 위한 공통 컴포넌트 구현 기법이다.
- 인터페이스 모듈, 데이터베이스 접근 모듈 등 필요한 공통 모듈을 구현한다.
- 모듈 간의 ( 1 )은/는 줄이고, ( 2 )은/는 높이는 공통 모듈 구현을 권장하고 있다.
- 결합도
- 응집도
- 공통 모듈 구현은 소프트웨어 개발에 있어 기능을 분할하고 추상화 하여 성능을 향상시키고, 유지보수를 효과적으로 하기위한 공통 컴포넌트 구현 기법이다.
- 인터페이스 모듈, 데이터베이스 접근 모듈 등 필요한 공통 모듈을 구현한다.
- 모듈 간의 결합도는 줄이고 응집도는 높인 공통 모듈 구현을 권장하고 있다.
- 결합도는 모듈 내부가 아닌 외부의 모듈과의 연관도 또는 모듈 간의 상호의존성이다.
- 소프트웨어 구조에서 모듈 간의 관련성을 측정하는 척도이다.
- 응집도는 모듈의 독립성을 나타내는 정도로, 모듈 내부 구성요소 간 연관 정도이다.
- 하나의 모듈은 하나의 기능을 수행할수록 응집도가 높다.
공통모듈의 구현 개념
8-14
12. 다음은 C언어 소스 코드이다. 출력 결과를 쓰시오.
#include <stdio.h>
void main(){
int i,j;
int temp;
int a[5] = {75,95,85,100,50};
for(i=0; i<4; i++){
for(j=0; j<4-i; j++){
if(a[j] > a[j+1]){
temp=a[j];
a[j] = a[j+1];
a[j+1] = temp;
}
}
}
for(i=0; i<5; i++){
printf("%d", a[i]);
}
}
- 50 75 85 95 100
- 위 코드는 정렬 기법 중 하나인 버블정렬기법을 활용한 코드이다.
- 버블 정렬은 Swap 개념을 사용해 값을 비교 한 후 값의 두 위치를 바꾸는 정렬이다.
- 두 번째 for문 안의 if문에서 앞과 뒤 요소를 비교 후 앞의 요소가 크다면 뒤 요소와 바꾸는걸로 보아, 오름차순 정렬이라는 것을 알 수 있다.
13. 다음은 자바 소스 코드이다. 출력 결과를 쓰시오.
public class good {
public static void main(String[] args){
int i;
int a[4] = {0,1,2,3};
for(i=0; i<4; i++){
system.out.print(a[i] + "");
}
}
}
- 0123
- 기본적인 for문의 활용을 묻는 문제이다.
- Java 코드는 main함수를 먼저 찾고 그 후, 상속관계를 찾아가면서 문제를 풀면 된다.
- system.out.print는 콘솔 창에 로그를 찍는 함수이다.
14. 다음은 자바 소스코드이다. 출력 결과를 쓰시오.
public class good {
public static void main(String[] args){
int i = 3;
int k = 1;
swich (i) {
case 0;
case 1;
case 2;
case 3 k = 0;
case 4 k += 3;
case 5 k -= 10;
default: k--;
}
system.out.print(k);
}
}
- -8
- switch문의 활용을 묻는 문제이다.
- case간의 break문이 없는 관계로, 해당하는 case로 이동하여 아래 구문까지 전부 실행하면 된다.
- default도 case문의 진행해 포함되니 함정에 걸리지 말자
- 현재 i는 3이라고 했으니 case 3부터 순차적으로 실행하면 된다.
15. 다음이 설명하는 제품 패키지 릴리스 노트의 작성 항목은 무엇인가?
- 문서 이름(릴리스 노트 이름), 제품 이름, 버전 번호, 릴리스 날짜, 참고 날짜, 노트 버전 등의 정보
- 헤더
- 릴리즈 노트는 특정 소프트웨어의 최근 변경 사항, 개선 사항 및 버그 수정을 간결히 요약한다.
- 릴리즈 노트 작성 시 다음 항목들이 포함되어야 한다.
헤더 | 문서 이름(릴리스 노트 이름), 제품 이름, 버전 번호, 릴리스 날짜, 참고 날짜, 노트 버전 등의 정보 |
개요 | 제품 및 변경에 대한 간략한 전반적 개요 |
목적 | 릴리즈 버전의 새로운 기능 목록과 릴리즈 노트의 목적에 대한 개요, 버그 수정 및 새로운 기능 기술 |
이슈 요약 | 버그의 간단한 설명 또는 릴리즈 추가 항목 요약 |
재현 항목 | 버그 발견에 따른 재현 단계 기술 |
수정 / 개선 내용 | 수정 / 개선의 간단한 설명 기술 |
사용자 영향도 | 버전 변경에 따른 최종 사용자 기준의 기능 및 응용 프로그램상의 영향도 기술 |
소프트웨어 지원 영향도 | 버전 변경에 따른 소프트웨어의 지원 프로세스 및 영향도 기술 |
노트 | 소프트웨어 및 하드웨어 설치 항목, 제품, 문서를 포함한 업그레이드 항목 |
면책조항 | 회사 및 표준 제품과 관련된 메시지, 프리웨어 및 불법 복제 방지, 중복 등 참조에 대한 고지사항 |
연락 정보 | 사용자 지원 및 문의에 관련한 연락처 정보 |
릴리즈 노트 작성 항목
12-5
16. LoC(Line of Code)가 30,000라인이고, 개발자가 5명이며, 개발자가 월평균 300라인을 개발한다. 이때 프로젝트 개발 기간과 계산식을 쓰시오.
- 20개월
- 계산식 = Man Month / 프로젝트 인력 = 20개월
- Man Month는 한사람이 한달동안 개발할 수 있는 코드의 양이다. 이 문제에서는 30,000 / 300 = 100이다.
비용산정 모형 종류 - LOC모형
1-13
17. 비정규화(De-Normalization)의 개념을 쓰시오.
- 코드의 유지보수 및 성능개선을 위해 정규화의 반대로 코드를 분리, 중복, 통합 하는 기법
- 반 정규화는 정규화 된 엔터티, 속성, 관계에 대해 성능 향상과 개발 운영의 단순화를 위해 중복, 통합, 분리등을 수행하는 데이터 모델링의 기법이다.
- 비 정규화, 역 정규화라고도 한다.
- 정규화는 관계형 데이터 모델에서 데이터의 중복성을 제거하여 이상 현상을 방지하고, 데이터 일관성과 정확성을 유지하기 위해 무손실 분해하는 과정이다.
반정규화
3-18
18. OSI 계층 중, 비트를 전송하는 계층은 무엇인가?
- 물리계층 (1계층)
- OSI 7 계층은 국제 표준화 기구인 ISO(International Standardization Organization)에서 개발한 컴퓨터 네트워크 프로토콜 디자인과 통신을 계층으로 나누어 설명한 개방형 시스템 상호 연결 모델이다.
응용계층 (Application) |
사용자와 네트워크 간 응용서비스 연결 | HTTP FTP |
데이터 (Data) |
호스트 |
표현계층 (Presentation) |
데이터 형식 설정, 부호 교환, 암/복호화 | JPEG MPEG |
||
세션계층 (Session) |
송/수신 간 논리적 연결 연결 접속, 동기 제어 |
RPC NetBIOS |
||
전송계층 (Transport) |
송수신 프로세스 간 연결 데이터 분할, 재조립, 흐름제어, 오류제어, 혼잡제어 |
TCP UDP |
세그먼트 (Segment) |
L4스위치 |
네트워크계층 (Network) |
단말기 간 데이터 전송을 위한 최적화된 경로 제공 | IP ICMP |
패킷 (Packet) |
라우터 |
데이터링크계층 (Data Link) |
인접 시스템 간 데이터 전송, 전송 오류 제어 동기화, 오류제어, 흐름제어, 회선제어 |
HDLC PPP |
프레임 (Frame) |
브리지, 스위치 |
물리계층 (Physical) |
정보를 회선에 보내기 위한 전기적 신호 변환 | RS-232C | 비트 (Bit) |
허브, 리피터 |
OSI 7계층 - OSI 7계층의 특징
11-42
19. 애플리케이션의 성능을 측정하기 위한 지표는 무엇인가?
- ( 1 ) - 애플리케이션이 주어진 시간에 처리할 수 있는 트랜잭션의 수
- ( 2 ) - 사용자 입력이 끝난 후, 애플리케이션의 응답 출력이 개시될 때 까지의 시간
- ( 3 ) - 애플리 케이션에 사용자가 요구를 입력한 시점부터, 트랜잭션 처리 후, 그 결과의 출력이 완료될 때 까지 걸리는 시간
- 자원사용률 - 애플리케이션이 트랜잭션을 처리하는 동안 사용하는 CPU사용량, 메모리 사용량, 네트워크 사용량
- 처리량
- 응답시간
- 경과시간
- 설명은 위와 같습니다.
애플리케이션 성능 점검 개요 - 애플리케이션 성능 측정 지표
10-56
20. 다음은 모듈의 관계를 나타낸 다이어그램이다. Fan-In 개수가 2개 이상인 모듈의 명칭을 쓰시오.
- F, H
- 네모 박스는 모듈, 화살표가 들어오면 Fan-In, 화살표가 나가면 Fan-Out
- 위의 그림에서 네모 박스 안으로 화살표가 들어오는 모듈은 F와 H이다.
오타 및 틀린 문제는 댓글 부탁 드립니다!
'Study > 정보처리기사' 카테고리의 다른 글
2021년 2회 정보처리기사 실기 기출문제 풀이 (1) | 2023.09.24 |
---|---|
2021년 1회 정보처리기사 실기 기출문제 풀이 (0) | 2023.09.24 |
2020년 4회 정보처리기사 실기 기출문제 풀이 (0) | 2023.09.23 |
2020년 3회 정보처리기사 실기 기출문제 풀이 (1) | 2023.09.23 |
2020년 2회 정보처리기사 실기 기출문제 풀이 (1) | 2023.09.21 |