2020년 정보처리기사실기 3회차 기출문제 정답·해설 페이지
- 1회: n=3, p=0×3=0
- 2회: n=5, p=0
- 3회: n=7, p=0
- 4회: n=9, p=0 → n < 9가 거짓이라 종료
- 경로 1: ② 예(③ 경유), ⑥ 예(①로 복귀)
- 경로 2: ② 아니오(③ 건너뜀), ⑥ 아니오(⑦ 출력)
- unit() = 7
- tens() = 7×3 + 10 = 31
- hund() = 500 + 31 − 7 = 524
- 유효성: 사용자의 목적을 정확하고 완벽하게 달성
- 학습성: 누구나 쉽게 배우고 익힐 수 있음
- 유연성: 사용자 요구를 최대한 수용하고 실수를 방지
- 단순화 — 중복을 없애고 긴 함수를 나누는 식으로 복잡한 코드를 정리한다.
- 가독성 — 의미 있는 이름과 짧은 구조로 코드를 읽기 쉽게 만든다.
- 유지보수성 — 읽기 쉬운 코드는 고치고 늘리기도 쉽다.
- 생산성·품질 — 결함이 숨을 곳이 줄고 변경 비용이 낮아져 개발 속도와 품질이 함께 오른다.
- GROUP BY와 HAVING을 반드시 사용하고, WHERE 절은 쓰지 않는다.
- 최소점수·최대점수는 별칭(AS)으로 지정한다.
- 대소문자는 구분하지 않으며, 끝의 세미콜론(;)은 생략해도 된다.
- 결과 행의 순서는 채점하지 않는다.
- 자료구조: (92+88)/2 = 90 → 포함(이상)
- 네트워크: (86+91)/2 = 88.5 → 제외
- 보안: (97+89)/2 = 93 → 포함
- 동등 분할 — 같은 결과를 내는 입력을 그룹으로 나누고 그룹마다 대표값만 시험한다.
- 경계값 분석 — 오류가 잦은 입력 범위의 경계 근처 값을 집중해서 시험한다.
- 원인-결과 그래프 — 입력 조건과 출력의 관계를 그래프로 분석해 테스트 케이스를 만든다.
- 하나의 자율 시스템(AS) 안에서 쓰이는 내부 라우팅 프로토콜(IGP)이다.
- 링크 상태(Link State) 방식으로, 다익스트라(Dijkstra) 알고리즘으로 최단 경로를 계산한다.
- 영역(Area)을 나눠 관리할 수 있어 규모가 큰 네트워크에 알맞다.
- 심리학자 톰 마릴(Tom Marill)은 컴퓨터끼리 메시지를 주고받고, 도착 여부를 확인하며, 도착하지 않으면 다시 보내는 일련의 규칙을 ( ㉮ )(이)라 불렀다.
- 이 말은 본래 외교 의례처럼 '정해진 격식·절차'를 뜻하는 단어에서 왔다.
- ( ① ): 미들웨어 없이 애플리케이션끼리 1:1로 직접 연결한다. 변경과 재사용이 어렵다.
- ( ② ): 중앙의 허브가 모든 데이터 전송을 맡는 중앙 집중형이다. 허브 장애 시 전체가 멈춘다.
- 메시지 버스(Message Bus): 애플리케이션 사이에 미들웨어(버스)를 두어 처리한다.
- 하이브리드(Hybrid): 그룹 내부는 허브 방식, 그룹 간은 메시지 버스 방식을 쓴다.
- 포인트 투 포인트 — 애플리케이션끼리 1:1로 직접 연결해 구성은 단순하지만 연결 수가 급격히 늘어 변경과 재사용이 어렵다.
- 허브 앤 스포크 — 바퀴의 허브(중심)와 스포크(바퀴살)처럼 중앙 허브를 거쳐 전송해 확장은 쉽지만 허브가 단일 장애점이 된다.
20-3
아래 Java 프로그램의 출력 결과를 적으시오.
abstract class Shape {
String label;
abstract String describe(int n);
String describe() {
return "Shape: " + label;
}
void setLabel(String s) {
label = s;
}
}
class Circle extends Shape {
Circle(String s) {
setLabel(s.toUpperCase());
}
String describe(int n) {
return "Circle x" + n;
}
String describe(int[] arr) {
return "Circle arr " + arr;
}
}
public class Main {
public static void main(String[] args) {
Shape sh = new Circle("dot");
System.out.println(sh.describe());
}
}Shape: DOT
[해설]
sh의 선언 타입은 Shape지만 실제 객체는 Circle이다. Circle은 인자 없는 describe()를 재정의하지 않았으므로 부모 Shape의 describe()가 실행된다.
Circle 생성자에서 setLabel("dot".toUpperCase())가 호출되어 label에는 "DOT"이 저장된다. 따라서 "Shape: " + label의 결과인 Shape: DOT가 출력된다.
혼동 주의: describe(int)는 추상 메서드를 구현한 것이고 describe(int[])는 매개변수가 다른 오버로딩이라 인자 없는 호출과 관계없다.
내용에 오류가 있거나 최신 법령·기준과 다른 부분이 보이면 알려주세요. 확인 후 반영하겠습니다.
20-3
소프트웨어 형상 관리 활동 중 하나인 형상 통제(Configuration Control)가 무엇인지 서술하시오.
형상 항목의 버전 관리를 위해 변경 요청의 수용 여부를 검토·승인하고 변경 활동을 통제하는 활동이다.
[해설]
형상 통제는 기준선(Baseline)이 정해진 형상 항목의 변경 요청을 검토·승인하고, 승인된 변경만 반영되도록 통제하는 활동이다.
보통 형상 통제 위원회(CCB)가 변경의 타당성과 영향을 심사한다.
형상 관리 절차는 형상 식별 → 형상 통제 → 형상 감사 → 형상 기록(보고) 순으로 진행된다.
내용에 오류가 있거나 최신 법령·기준과 다른 부분이 보이면 알려주세요. 확인 후 반영하겠습니다.
20-3
아래 C 프로그램의 실행 결과를 적으시오.
#include <stdio.h>
int main(void) {
int n = 1, p = 0;
do {
n += 2;
p = p * n;
} while (n < 9);
printf("%d %d", n, p);
return 0;
}9 0
[해설]
p가 0으로 초기화되었으므로 어떤 수를 곱해도 계속 0이다.
출력은 9 0이다. 곱셈 누적 변수는 1로 초기화해야 의도대로 곱이 쌓인다.
내용에 오류가 있거나 최신 법령·기준과 다른 부분이 보이면 알려주세요. 확인 후 반영하겠습니다.
20-3
어떤 모듈의 제어 흐름 그래프를 노드와 연결 관계로 나타내면 아래 표와 같다.
| 노드 | 내용 | 다음 노드 |
|---|---|---|
| ① | flag = 0 | ② |
| ② | a > b ? | 예 → ③, 아니오 → ④ |
| ③ | flag = 1 | ④ |
| ④ | a = a - 3 | ⑤ |
| ⑤ | CALL calc(a, flag, res) | ⑥ |
| ⑥ | res > 0 ? | 예 → ①, 아니오 → ⑦ |
| ⑦ | PRINT res | 종료 |
분기(결정) 커버리지를 100% 만족하도록 테스트 경로 2개를 노드 번호 순서로 적으시오. (각 경로는 ①에서 시작해 ⑦ 또는 다시 ①로 돌아오는 지점까지 적는다.)
경로 1: ①→②→③→④→⑤→⑥→①
경로 2: ①→②→④→⑤→⑥→⑦
(또는 ①→②→③→④→⑤→⑥→⑦ 과 ①→②→④→⑤→⑥→①)
[해설]
분기 커버리지는 모든 판단 노드의 참과 거짓을 각각 한 번 이상 지나야 한다. 판단 노드는 ②와 ⑥ 두 개다.
두 경로로 네 개의 분기가 모두 덮인다. ⑥의 예/아니오를 서로 바꾼 조합 ①②③④⑤⑥⑦ / ①②④⑤⑥①도 정답이다.
내용에 오류가 있거나 최신 법령·기준과 다른 부분이 보이면 알려주세요. 확인 후 반영하겠습니다.
20-3
식별자 명명 규칙 중 헝가리안 표기법(Hungarian Notation)이 무엇인지 서술하시오.
식별자 이름 앞에 자료형을 나타내는 접두어를 붙이는 표기법이다.
[해설]
헝가리안 표기법은 식별자 이름 앞에 자료형을 나타내는 접두어를 붙이는 명명 규칙이다. 이름만 보고도 자료형을 알 수 있다.
예를 들어 int형은 nCount, 문자열은 szName, bool형은 bFlag처럼 쓴다.
혼동 주의: 카멜 표기법(userName)·파스칼 표기법(UserName)·스네이크 표기법(user_name)은 자료형 표시와 관계없고, 단어를 구분하는 방식만 정한 규칙이다.
내용에 오류가 있거나 최신 법령·기준과 다른 부분이 보이면 알려주세요. 확인 후 반영하겠습니다.
20-3
아래 C 프로그램을 실행했을 때 출력되는 값을 적으시오.
#include <stdio.h>
int unit(void) {
return 7;
}
int tens(void) {
return unit() * 3 + 10;
}
int hund(void) {
return 500 + tens() - unit();
}
int main(void) {
printf("%d\n", hund());
return 0;
}524
[해설]
호출은 hund → tens → unit 순으로 들어가고, 반환은 안쪽부터 계산된다.
따라서 출력은 524다.
내용에 오류가 있거나 최신 법령·기준과 다른 부분이 보이면 알려주세요. 확인 후 반영하겠습니다.
20-3
C++ 클래스에서 생성자(Constructor)가 무엇인지 쓰시오.
객체가 생성될 때 자동으로 호출되는 특수한 메서드이다.
[해설]
생성자는 객체 생성 시 자동으로 호출되어 멤버를 초기화하는 특수한 메서드다.
C++에서는 클래스 이름과 같은 이름을 쓰고 반환형이 없다. 매개변수를 달리해 여러 개를 오버로딩할 수 있다.
반대로 객체가 소멸될 때 호출되는 것은 소멸자(~클래스명)다.
내용에 오류가 있거나 최신 법령·기준과 다른 부분이 보이면 알려주세요. 확인 후 반영하겠습니다.
20-3
UI 설계 원칙 중 직관성(Intuitiveness)이 무엇인지 쓰시오.
누구나 쉽게 이해하고 쉽게 사용할 수 있어야 한다는 원칙이다.
[해설]
직관성은 사용자가 설명 없이도 쉽게 이해하고 쉽게 사용할 수 있게 하는 원칙이다. 부특성으로 쉬운 검색, 쉬운 사용성, 일관성이 있다.
내용에 오류가 있거나 최신 법령·기준과 다른 부분이 보이면 알려주세요. 확인 후 반영하겠습니다.
20-3
아래 Java 프로그램이 출력하는 값을 적으시오.
public class Main {
public static void main(String[] args) {
int k = 0, total = 0;
while (k < 11) {
k++;
if (k % 3 == 0)
continue;
total += k;
}
System.out.println(total);
}
}48
[해설]
continue를 만나면 남은 문장을 건너뛰고 다음 반복으로 넘어간다. 그래서 k가 3의 배수일 때는 total에 더해지지 않는다.
k를 먼저 증가시킨 뒤 더하므로 실제로 더해지는 값은 1부터 11까지다. k가 10일 때 조건을 통과하고, 증가해서 11이 된 값까지 더해진다.
1~11의 합 = 66
제외되는 3의 배수 = 3 + 6 + 9 = 18
total = 66 − 18 = 48
내용에 오류가 있거나 최신 법령·기준과 다른 부분이 보이면 알려주세요. 확인 후 반영하겠습니다.
20-3
소프트웨어의 외부 동작은 그대로 둔 채 내부 코드 구조를 다듬는 리팩토링(Refactoring)을 수행하는 목적을 간략히 서술하시오.
복잡한 코드를 단순하게 정리해 가독성과 유지보수성을 높이고, 이를 통해 생산성과 품질을 향상시키기 위함이다.
[해설]
리팩토링은 기능은 그대로 두고 내부 구조만 개선하는 작업이다.
외우는 요령: "단순화 → 가독성·유지보수성 → 생산성·품질"의 인과 순서대로 쓴다.
내용에 오류가 있거나 최신 법령·기준과 다른 부분이 보이면 알려주세요. 확인 후 반영하겠습니다.
20-3
TCP/IP 환경에서 IP 패킷 전달 중 오류가 생기거나 목적지에 도달할 수 없을 때, 이를 송신 측에 알리는 제어 메시지를 담당하는 프로토콜의 명칭을 적으시오.
ICMP
[해설]
IP에는 자체 오류 보고 기능이 없어서 ICMP(Internet Control Message Protocol)가 오류·제어 메시지를 송신 측에 알린다.
대표 메시지는 목적지 도달 불가(Destination Unreachable)와 시간 초과(Time Exceeded)이다. ping·traceroute도 ICMP를 이용한다.
혼동 주의: IGMP는 멀티캐스트 그룹을 관리하고, ARP는 IP 주소를 MAC 주소로 바꾸는 프로토콜이다.
내용에 오류가 있거나 최신 법령·기준과 다른 부분이 보이면 알려주세요. 확인 후 반영하겠습니다.
20-3
[회원] 테이블에 최대 40자의 가변 길이 문자열을 담는 '이메일' 속성을 새로 추가하려 한다. 빈칸 ①, ②에 들어갈 키워드를 적으시오.
( ① ) TABLE 회원 ( ② ) 이메일 VARCHAR(40);① ALTER
② ADD
[해설]
이미 있는 테이블의 구조를 바꾸는 DDL은 ALTER TABLE이고, 속성(열)을 추가할 때는 ADD를 쓴다.
완성한 문장은 다음과 같다.
ALTER TABLE 회원 ADD 이메일 VARCHAR(40);
혼동 주의: 속성 변경은 MODIFY(DBMS에 따라 ALTER COLUMN), 속성 삭제는 DROP을 쓴다.
내용에 오류가 있거나 최신 법령·기준과 다른 부분이 보이면 알려주세요. 확인 후 반영하겠습니다.
20-3
관계 대수 연산 중, 릴레이션 A에서 릴레이션 B의 모든 튜플과 연관된 튜플만 골라낸 뒤 B의 속성을 제외한 나머지 속성만 남기는 연산의 기호를 적으시오.
÷
[해설]
관계 대수의 디비전(Division, ÷)은 A에서 B의 값을 모두 가진 튜플만 골라낸 뒤 B의 속성을 떼어 낸다.
예를 들어 수강 릴레이션 ÷ 필수과목 릴레이션을 하면 필수과목을 전부 수강한 학생만 남는다.
혼동 주의: 셀렉트 σ는 조건에 맞는 행을 고르고, 프로젝트 π는 지정한 열을 뽑으며, 조인 ⋈은 공통 속성으로 두 릴레이션을 결합한다.
내용에 오류가 있거나 최신 법령·기준과 다른 부분이 보이면 알려주세요. 확인 후 반영하겠습니다.
20-3
데이터베이스 스키마(Schema)가 무엇인지 서술하시오.
데이터베이스의 구조와 제약조건 등을 정의한 명세(기본 구조)이다.
[해설]
스키마는 데이터 개체·속성·관계와 구조, 제약조건을 기술한 데이터베이스의 설계도다. 데이터 사전(시스템 카탈로그)에 저장된다.
관점에 따라 외부·개념·내부 스키마의 3단계로 나뉜다. 각각 사용자 관점, 기관 전체의 논리 구조, 물리적 저장 구조를 뜻한다.
내용에 오류가 있거나 최신 법령·기준과 다른 부분이 보이면 알려주세요. 확인 후 반영하겠습니다.
20-3
[수강] 테이블에서 과목별 점수 평균이 90 이상인 과목에 대해 과목명, 최소점수, 최대점수를 구하는 SQL 문을 작성하시오.
[수강]
| 과목코드 | 과목명 | 등급 | 점수 |
|---|---|---|---|
| 3100 | 자료구조 | A | 92 |
| 3200 | 네트워크 | B+ | 86 |
| 3100 | 자료구조 | B+ | 88 |
| 3300 | 보안 | A+ | 97 |
| 3200 | 네트워크 | A | 91 |
| 3300 | 보안 | B+ | 89 |
[결과]
| 과목명 | 최소점수 | 최대점수 |
|---|---|---|
| 자료구조 | 88 | 92 |
| 보안 | 89 | 97 |
SELECT 과목명, MIN(점수) AS 최소점수, MAX(점수) AS 최대점수 FROM 수강 GROUP BY 과목명 HAVING AVG(점수) >= 90;
[해설]
과목명으로 묶은 뒤(GROUP BY 과목명) 그룹 단위 조건은 HAVING AVG(점수) >= 90으로 건다. WHERE는 그룹 이전 행 단위 조건이라 집계 함수를 쓸 수 없다.
각 그룹의 최솟값·최댓값은 MIN(점수) AS 최소점수, MAX(점수) AS 최대점수로 구한다.
내용에 오류가 있거나 최신 법령·기준과 다른 부분이 보이면 알려주세요. 확인 후 반영하겠습니다.
20-3
프로그램 내부 구조를 보지 않고 요구사항 명세만을 근거로 입력과 출력을 검증하는 테스트 기법으로, 동등 분할·경계값 분석·원인-결과 그래프 등이 여기에 속한다. 이 테스트 기법의 명칭을 적으시오.
블랙박스 테스트(명세 기반 테스트)
[해설]
내부 구조를 보지 않고 요구사항 명세만으로 입력과 출력을 검증하므로 블랙박스 테스트(명세 기반 테스트)다.
혼동 주의: 기초 경로·조건·분기 커버리지처럼 내부 논리를 검사하는 기법은 화이트박스 테스트(구조 기반 테스트)다.
내용에 오류가 있거나 최신 법령·기준과 다른 부분이 보이면 알려주세요. 확인 후 반영하겠습니다.
20-3
다음 설명에 해당하는 라우팅 프로토콜의 명칭을 적으시오.
OSPF
[해설]
링크 상태 방식에 다익스트라 알고리즘을 쓰는 대표 IGP는 OSPF(Open Shortest Path First)다.
라우터끼리 링크 상태 정보를 주고받아 망 전체 지도를 만든 뒤 최단 경로를 계산한다. 영역(Area)으로 나눠 관리할 수 있어 대규모 망에 알맞다.
혼동 주의: RIP은 홉 수를 기준으로 하는 거리 벡터 방식(최대 15홉)이고, BGP는 AS와 AS 사이에서 쓰는 EGP다.
내용에 오류가 있거나 최신 법령·기준과 다른 부분이 보이면 알려주세요. 확인 후 반영하겠습니다.
20-3
아래 [학생] 테이블에서 이름이 '한결'인 튜플을 삭제하는 SQL 문을 작성하시오.
[학생]
| 학번 | 이름 | 학과 | 학년 |
|---|---|---|---|
| 2401 | 윤서아 | 전자공학 | 2 |
| 2402 | 한결 | 경영학 | 3 |
| 2403 | 고민준 | 통계학 | 1 |
| 2404 | 배다인 | 건축학 | 4 |
DELETE FROM 학생 WHERE 이름 = '한결';
[해설]
튜플 삭제는 DELETE FROM 테이블 WHERE 조건 형식이다. 문자열 값은 작은따옴표로 감싼다.
WHERE를 빠뜨리면 테이블의 모든 행이 지워지므로 주의한다. 테이블 자체를 없애는 것은 DDL인 DROP TABLE이다.
내용에 오류가 있거나 최신 법령·기준과 다른 부분이 보이면 알려주세요. 확인 후 반영하겠습니다.
20-3
빈칸 ( ㉮ )에 들어갈 용어를 적으시오.
프로토콜(Protocol)
[해설]
통신 주체끼리 메시지를 주고받기 위해 미리 약속한 규칙과 절차를 프로토콜(Protocol)이라 한다.
원래 외교 의례의 '격식·절차'를 뜻하는 말이다. 톰 마릴이 컴퓨터 사이의 전송, 도착 확인, 재전송 규칙에 이 이름을 붙였다.
프로토콜의 기본 요소는 구문(Syntax)·의미(Semantics)·타이밍(Timing)이다.
내용에 오류가 있거나 최신 법령·기준과 다른 부분이 보이면 알려주세요. 확인 후 반영하겠습니다.
20-3
EAI(Enterprise Application Integration)의 구축 유형은 4가지다. 아래 설명의 빈칸 ①, ②에 들어갈 유형을 적으시오.
① 포인트 투 포인트(Point-to-Point)
② 허브 앤 스포크(Hub & Spoke)
[해설]
EAI 구축 유형은 연결 구조에 따라 포인트 투 포인트, 허브 앤 스포크, 메시지 버스, 하이브리드로 나뉜다.
1:1 직접 연결은 포인트 투 포인트, 중앙 집중은 허브 앤 스포크로 이름의 뜻 그대로 연결해 외운다.
내용에 오류가 있거나 최신 법령·기준과 다른 부분이 보이면 알려주세요. 확인 후 반영하겠습니다.
2020년 정보처리기사실기 3회차 시험지 PDF 다운로드·인쇄 →
전 회차를 한 권으로 — 정보처리기사 실기 기출문제 PDF 전자책(문제집·정답해설집) →
2020년 정보처리기사실기 3회차 정답과 해설은 무료인가요?
이 페이지의 20문항 정답과 해설은 로그인 없이 무료로 볼 수 있습니다. 무제한 풀이·실전 모의고사·PDF 출력·전자책 다운로드는 베이직 플랜에 포함됩니다.
이 회차를 CBT 로 직접 풀어볼 수 있나요?
정보처리기사 실기 기출문제 암기장에서 이 회차를 회차별·랜덤으로 풀고 오답노트에 자동으로 모을 수 있습니다. 정보처리기사 실기 기출문제 풀러 가기 →
시험지 PDF 나 전자책으로도 볼 수 있나요?
이 회차의 인쇄용 시험지 PDF 와, 전 회차를 문제집·정답해설집으로 묶은 PDF 전자책을 제공합니다. 정보처리기사 실기 기출문제 PDF 전자책 보기 →