정보처리기사 필기 — 모의 2회 풀이
목차 106
Part Ⅰ 소프트웨어 설계 (문 001~020)
문 001. 네트워크 상에서 애플리케이션과 애플리케이션 간의 연동을 하기 위한 미들웨어는?
- ① TP monitor
- ② ORB
- ③ RPC
- ④ HUB
정답 및 해설 보기
정답 ③
RPC(Remote Procedure Call, 원격 프로시저 호출)는 원격에 있는 다른 컴퓨터의 프로시저(함수)를 마치 로컬 함수처럼 호출해 애플리케이션과 애플리케이션 간 연동을 처리하는 미들웨어다.
오답 정리:
| 미들웨어 | 핵심 키워드 |
|---|---|
| TP Monitor | 트랜잭션(Transaction) 처리·감시 — 데이터 무결성·안정성 중시 |
| ORB | 객체(Object) 간 연동 중개 — CORBA 표준 |
| HUB | 미들웨어(SW)가 아니라 네트워크 장비(HW) |
🔑 암기 원격 호출=RPC · 트랜잭션=TP Monitor · 객체=ORB
문 002. 공통 모듈에 대한 명세 기법 중 요구사항 간 충돌이 없어야 한다는 원칙은?
- ① 상호작용성
- ② 일관성
- ③ 독립성
- ④ 내용성
정답 및 해설 보기
정답 ②
공통 모듈 명세에서 요구사항 사이에 충돌·모순이 없어야 한다는 원칙이 일관성(Consistency)이다.
공통 모듈 명세 원칙:
| 원칙 | 의미 |
|---|---|
| 정확성(Correctness) | 시스템 구현에 실제로 필요한 것을 명세 |
| 명확성(Clarity) | 한 가지로만 해석되도록 작성 |
| 완전성(Completeness) | 필요한 것을 모두 기술 |
| 일관성(Consistency) | 요구사항 간 충돌이 없음 |
| 추적성(Traceability) | 요구사항의 출처를 추적 가능 |
🔑 암기 "충돌 없다 = 일관성"
문 003. 코드 설계에서 대상 항목의 크기, 중량, 거리 등을 그대로 사용하는 코드는?
- ① 순차 코드
- ② 블록 코드
- ③ 연상 코드
- ④ 표의 숫자 코드
정답 및 해설 보기
정답 ④
대상의 물리적 수치(크기·중량·거리 등)를 그대로 코드값으로 쓰는 것이 표의 숫자 코드(Significant Digit Code, 유효 숫자 코드)다. 예: 두께 5mm → 5, 무게 100kg → 100.
오답 정리:
| 코드 | 부여 방식 |
|---|---|
| 순차 코드 | 일련번호를 차례대로 부여 |
| 블록 코드 | 공통 항목을 블록(구간)으로 묶고 그 안에서 번호 부여 |
| 연상 코드 | 대상과 관계있는 문자·기호로 연상되게 |
| 표의 숫자 코드 | 대상의 물리적 수치를 그대로 코드값으로 |
🔑 암기 "수치 그대로 = 표의 숫자 코드"
문 004. 다음에서 설명하는 소프트웨어 개발 방법론은?
- 애자일 방법론의 하나로 소프트웨어 개발 프로세스가 문서화하는 데 지나치게 많은 시간과 노력이 소모되는 단점을 보완하기 위해 개발되었다.
- 의사소통, 단순함, 피드백, 용기, 존중의 5가지 가치에 기초하여 '고객에게 최고의 가치를 가장 빨리' 전달하도록 하는 방법론으로 켄트 벡이 고안하였다.
- ① 통합 프로세스(UP)
- ② 익스트림 프로그래밍
- ③ 스크럼
- ④ 나선형 모델
정답 및 해설 보기
정답 ②
5가지 가치(의사소통·단순함·피드백·용기·존중)에 기초하고 켄트 벡(Kent Beck)이 고안한 애자일 방법론은 익스트림 프로그래밍(XP)이다.
🔑 암기 5가지 가치 + 켄트 벡 = XP / 스프린트·일일 회의(Daily Scrum) = 스크럼
문 005. 다음 중 CASE가 갖고 있는 주요 기능이 아닌 것은?
- ① 상호 호환성
- ② 소프트웨어 생명주기 전 단계의 연결
- ③ 그래픽 지원
- ④ 다양한 소프트웨어 개발 모형 지원
정답 및 해설 보기
정답 ①
CASE(Computer Aided Software Engineering)의 주요 기능은 생명주기 전 단계의 연결, 그래픽(다이어그램) 지원, 다양한 개발 모형 지원 등이다. 서로 다른 도구·벤더 간의 완벽한 상호 호환성은 CASE의 주요 기능이라기보다 오히려 한계로 꼽힌다.
⚠️ 함정 "아닌 것"을 묻는 발문 — 보기 ②③④는 모두 CASE의 핵심 기능이고 ①만 기능이 아니다.
문 006. 자료 사전에서 여러 대안 중 하나를 선택하는 기호는?
- ① { }
- ② **
- ③ =
- ④ [ | ]
정답 및 해설 보기
정답 ④
자료 사전(Data Dictionary)에서 선택(여러 대안 중 하나)은 [ | ]로 표기한다. 대괄호 [ ]는 택일, |는 또는(or)을 뜻한다.
🔑 암기 자료 사전 기호 6종
| 기호 | 의미 |
|---|---|
= |
정의(자료의 정의) |
+ |
연결(and, 구성) |
{ } |
반복(iteration) |
[ | ] |
선택(selection) |
* * |
주석(comment) |
( ) |
생략(option, 선택 사양) |
문 007. 객체지향 기법에서 관계성의 종류는 is-a이며, 객체들에 있어 공통적인 성질들을 상위 객체로 정의하는 것을 나타내는 용어는?
- ① 일반화
- ② 추상화
- ③ 캡슐화
- ④ 집단화
정답 및 해설 보기
정답 ①
is-a 관계로 하위 객체들의 공통적인 성질을 상위 객체로 묶어 정의하는 것이 일반화(Generalization)이며, 상속(Inheritance)의 토대가 된다.
오답 정리:
| 용어 | 관계/의미 |
|---|---|
| 집단화(Aggregation) | has-a 관계 — 전체와 부분(예: 컴퓨터 has a 모니터) |
| 캡슐화(Encapsulation) | 데이터와 연산을 묶고 은닉 — 관계 용어가 아님 |
| 추상화(Abstraction) | 핵심 속성만 추출 |
🔑 암기 is-a = 일반화 · has-a = 집단화
문 008. 다음 중 요구사항 정의 및 분석·설계의 결과물을 표현하기 위한 모델링 과정에서 사용되는 다이어그램(Diagram)이 아닌 것은?
- ① Data Flow Diagram
- ② Heap Diagram
- ③ E-R Diagram
- ④ UML Diagram
정답 및 해설 보기
정답 ②
DFD(자료 흐름도)·E-R(개체-관계도)·UML은 모두 분석·설계 모델링에 쓰이는 다이어그램이다. Heap은 자료구조(완전이진트리 기반의 힙)나 메모리 영역의 이름으로, 'Heap Diagram'이라는 모델링 도구는 존재하지 않는다.
문 009. GoF(Gang of Four) 디자인 패턴과 관련한 설명으로 틀린 것은?
- ① 디자인 패턴을 목적(Purpose)으로 분류할 때 생성, 구조, 행위로 분류할 수 있다.
- ② Strategy 패턴은 행위 개선을 위한 패턴으로 교환 가능한 행동을 캡슐화하고 위임을 통해서 어떤 행동을 사용할지 결정한다.
- ③ 행위 패턴은 클래스나 객체들이 상호작용하는 방법과 책임을 분산하는 방법을 정의한다.
- ④ Singleton 패턴은 대표적인 구조 패턴으로 인스턴스를 복제하여 사용하는 구조를 말한다.
정답 및 해설 보기
정답 ④
Singleton은 구조 패턴이 아니라 생성(Creational) 패턴이며, 인스턴스를 복제하는 것이 아니라 단 하나만 생성해 공유한다. 인스턴스를 복제해 사용하는 것은 프로토타입(Prototype) 패턴의 특징이다. ①②③은 모두 옳은 설명이다.
🔑 암기 생성 패턴 5종 = "빌·프로·팩·앱·싱"(빌더 · 프로토타입 · 팩토리 메서드 · 추상 팩토리 · 싱글톤)
문 010. 다음 중 데이터 흐름도(DFD)의 구성요소에서 자료 저장소에 해당하는 것은?
- ① Data Dictionary
- ② Data Flow
- ③ Data Store
- ④ Terminator
정답 및 해설 보기
정답 ③
자료 저장소 = Data Store. DFD의 4대 구성요소는 처리(Process)·자료 흐름(Data Flow)·자료 저장소(Data Store)·단말(Terminator)이다. Data Dictionary(자료 사전)는 DFD에 쓰인 자료를 정의하는 별도 산출물로 그림의 구성요소가 아니다.
🔑 암기 DFD 4대 구성요소 = "프·플·스·터"(Process · Flow · Store · Terminator)
문 011. 다음 중 럼바우(Rumbaugh)의 객체지향 분석 절차를 가장 바르게 나열한 것은?
- ① 기능 모형 → 동적 모형 → 객체 모형
- ② 객체 모형 → 기능 모형 → 동적 모형
- ③ 객체 모형 → 동적 모형 → 기능 모형
- ④ 기능 모형 → 객체 모형 → 동적 모형
정답 및 해설 보기
정답 ③
럼바우(OMT) 분석 순서는 객체 모형 → 동적 모형 → 기능 모형이다. 객체 모형(객체·관계, ER 다이어그램) → 동적 모형(상태·제어 흐름, 상태 다이어그램) → 기능 모형(자료 처리, DFD)의 순서로 진행한다.
🔑 암기 럼바우 분석 = "객·동·기"(객체 → 동적 → 기능)
문 012. 수신 시스템에서 DB 링크를 생성하고, 송신 시스템에서 해당 DB 링크를 직접 참조하는 통신 기술은?
- ① DB 링크 기술
- ② 소켓 기술
- ③ 스크럼 기술
- ④ 프로토타입 기술
정답 및 해설 보기
정답 ①
지문 그대로 DB 링크 기술이다. 데이터 연계(통합) 방식의 하나로, 수신 시스템이 DB 링크를 생성하고 송신 시스템이 이를 직접 참조한다.
오답 정리: 소켓(Socket) 기술은 통신 끝점(포트)을 열어 송수신하는 방식이고, 스크럼·프로토타입은 통신 기술이 아니라 개발 방법론/기법이다.
문 013. 디자인 패턴을 이용한 소프트웨어 재사용으로 얻어지는 장점이 아닌 것은?
- ① 소프트웨어 코드의 품질을 향상시킬 수 있다.
- ② 개발자들 사이의 의사소통을 원활하게 할 수 있다.
- ③ 유지보수를 개발 단계 안으로 넣은 것이다.
- ④ 소프트웨어의 품질과 생산성을 향상시킬 수 있다.
정답 및 해설 보기
정답 ③
디자인 패턴은 검증된 설계를 재사용해 품질·생산성을 높이고(①·④), 개발자 간 공통 어휘로 의사소통을 돕는다(②). '유지보수를 개발 단계 안으로 넣은 것'은 디자인 패턴의 장점에 대한 설명이 아니다(유지보수는 개발 이후의 작업으로, 패턴은 유지보수하기 좋은 구조를 제공할 뿐이다).
문 014. HIPO(Hierarchy Input Process Output)에 대한 설명으로 거리가 먼 것은?
- ① 관람자에 따라 다른 도표 제공이 가능하다.
- ② HIPO 차트 종류에는 가시적 도표, 총체적 도표, 세부적 도표가 있다.
- ③ 기능과 자료의 의존 관계를 동시에 표현할 수 있다.
- ④ 상향식 소프트웨어 개발을 위한 문서화 도구이다.
정답 및 해설 보기
정답 ④
HIPO는 이름의 H가 Hierarchy(계층)로, 하향식(Top-Down) 분석·설계·문서화 도구다. ④는 '상향식'이라고 반대로 서술해 거리가 멀다.
🔑 암기 HIPO 차트 3종 = "가·총·세"(가시적 도표 · 총체적 도표 · 세부적 도표)
문 015. 객체지향 분석 기법과 관련한 설명으로 틀린 것은?
- ① 정적 모델링 기법만 사용될 수 있다.
- ② 객체 중심으로 시스템을 파악하며 상향식 방식으로 볼 수 있다.
- ③ 데이터와 행위를 하나로 묶어 객체를 정의 내리고 추상화시키는 작업이라 할 수 있다.
- ④ 코드 재사용에 의한 프로그램 생산성 향상 및 요구에 따른 시스템의 쉬운 변경이 가능하다.
정답 및 해설 보기
정답 ①
객체지향 분석은 클래스 구조 같은 정적(Static) 모델링뿐 아니라 객체 간 상호작용·상태 변화를 다루는 동적(Dynamic) 모델링도 함께 사용한다. "정적 모델링 기법만 사용된다"는 ①이 틀렸다.
⚠️ 함정 "~만 사용된다"처럼 범위를 단정하는 보기는 일단 의심한다.
문 016. 럼바우(Rumbaugh) 분석 기법에서 시간의 흐름에 따른 객체들 사이의 제어 흐름, 상호작용, 동작 순서 등의 동적인 행위를 표현하는 모델링은?
- ① Object
- ② Dynamic
- ③ Function
- ④ Static
정답 및 해설 보기
정답 ②
시간의 흐름·제어 흐름·동적인 행위를 표현하는 것은 동적 모형(Dynamic Model)으로, 상태 다이어그램을 사용한다.
🔑 암기 럼바우 "객·동·기" — 객체(구조·ER) · 동적(시간·상태) · 기능(처리·DFD)
문 017. 소프트웨어 개발 프로세스인 XP(eXtreme Programming)의 실무 관행(Practice)에 해당하지 않는 것은?
- ① Pair Programming
- ② 소규모 시스템 릴리스
- ③ 이해당사자와의 분리 개발
- ④ 공동 소유권
정답 및 해설 보기
정답 ③
XP는 고객(이해당사자)이 개발에 상주하는 현장 고객(On-site Customer)을 핵심 원칙으로 한다. '이해당사자와의 분리 개발'은 XP의 실천 관행이 아니다. ①·②·④는 모두 XP의 실천 사항(짝 프로그래밍 · 소규모 릴리스 · 공동 코드 소유)이다.
문 018. 현행 시스템 분석에서 고려하지 않아도 되는 항목은?
- ① 유지보수 분석
- ② 네트워크 분석
- ③ 운영체제 분석
- ④ DBMS 분석
정답 및 해설 보기
정답 ①
현행 시스템(플랫폼) 분석은 운영체제·네트워크·DBMS·미들웨어 등 인프라 구성을 조사한다. '유지보수 분석'은 현행 시스템 구성 분석의 표준 항목이 아니다.
🔑 암기 현행 시스템 분석 = 운영체제 · 네트워크 · DBMS(+ 미들웨어)
문 019. ㉠에 들어갈 용어로 옳은 것은?
( ㉠ )(은)는 유사한 문제를 해결하기 위해 설계들을 분류하고, 각 문제 유형별로 가장 적합한 설계를 일반화하여 체계적으로 정리해 놓은 것으로 소프트웨어 개발에서 효율성과 재사용성을 높일 수 있다.
- ① 디자인 패턴
- ② 요구사항 정의서
- ③ 소프트웨어 개발 생명주기
- ④ 소프트웨어 프로세스 모델
정답 및 해설 보기
정답 ①
유사한 문제에 대한 모범 설계를 분류·일반화해 재사용성을 높인 것은 디자인 패턴(Design Pattern)에 대한 정의다.
오답 정리: 요구사항 정의서는 고객 요구를 정리한 문서, 소프트웨어 개발 생명주기(SDLC)는 개발 전 과정의 단계 모형이다.
문 020. [보기]에서 설명하는 객체지향 개념은?
출입문 창문 상자
┌──────┐ ┌──────┐ ┌──────┐
│ │ │ │ │ │
└──────┘ └──────┘ └──────┘
▲ ▲ ▲
└───────────┴───────────┘
open
- 그림에서 'open'이라는 오퍼레이션(Operation)은 객체마다 다르게 기능한다.
- Java 언어에서 오버로딩(Overloading), 오버라이딩(Overriding)으로 구현되는 개념이다.
- ① 캡슐화(Encapsulation)
- ② 인스턴스(Instance)
- ③ 다형성(Polymorphism)
- ④ 상속(Inheritance)
정답 및 해설 보기
정답 ③
동일한 메시지(open)에 대해 객체(출입문·창문·상자)마다 다르게 반응하는 성질이 다형성(Polymorphism)이다. 같은 이름의 오퍼레이션이 객체에 따라 다르게 동작하며, 오버로딩(Overloading)과 오버라이딩(Overriding)이 대표적인 구현 방법이다.
🔑 암기 하나의 메시지, 여러 반응(One Message, Many Reactions) = 다형성
Part Ⅱ 소프트웨어 개발 (문 021~040)
문 021. 한쪽 방향으로 자료가 삽입되고 반대 방향으로 자료가 삭제되는 선입선출(First In First Out) 형태의 자료구조는?
- ① 큐(Queue)
- ② 스택(Stack)
- ③ 트리(Tree)
- ④ 연결리스트(Linked list)
정답 및 해설 보기
정답 ①
한쪽 끝(rear)으로 삽입하고 반대쪽 끝(front)으로 삭제하는 선입선출(FIFO) 구조는 큐(Queue)다. 스택은 한쪽 끝에서만 삽입·삭제하는 후입선출(LIFO) 구조다.
🔑 암기 큐 = FIFO(줄 서기) · 스택 = LIFO(접시 쌓기)
문 022. EAI(Enterprise Application Integration)의 구축 유형으로 옳지 않은 것은?
- ① Point-to-Point
- ② Nunit
- ③ Message Bus
- ④ Hub & Spoke
정답 및 해설 보기
정답 ②
EAI의 구축 유형은 Point-to-Point(1:1 직접 연결), Hub & Spoke(중앙 허브 경유), Message Bus(미들웨어 버스 경유), Hybrid(혼합)다. Nunit(NUnit)은 .NET 환경의 단위 테스트 프레임워크로 EAI 구축 유형이 아니다.
🔑 암기 EAI 유형 = 포인트투포인트 · 허브앤스포크 · 메시지 버스 · 하이브리드
문 023. 모든 모듈들은 하나의 시스템으로 작동하게 된다. 사용자의 모든 요구를 하나의 시스템으로서 완벽하게 수행하기 위한 테스트는?
- ① 통합 테스트(Integration Test)
- ② 단위 테스트(Unit Test)
- ③ 시스템 테스트(System Test)
- ④ 인수 테스트(Acceptance Test)
정답 및 해설 보기
정답 ③
통합이 끝난 전체를 하나의 완전한 시스템으로 보고 기능·성능 등을 검증하는 단계가 시스템 테스트다. 테스트는 단위(모듈) → 통합(인터페이스) → 시스템(전체) → 인수(사용자 만족) 순으로 진행한다.
🔑 암기 테스트 순서 = "단·통·시·인"
문 024. 다음 Postfix로 표현된 연산식의 연산 결과로 옳은 것은?
34*56+*
- ① 23
- ② 42
- ③ 132
- ④ 360
정답 및 해설 보기
정답 ③
후위 표기식은 숫자를 스택에 넣고, 연산자를 만나면 직전 두 수를 꺼내 계산한 뒤 결과를 다시 넣는다. 3 4 * → 3×4=12, 5 6 + → 5+6=11, 마지막 * → 12×11=132. 결과는 132다.
문 025. 다음 중 테스트 케이스 자동 생성 도구를 이용하여 테스트 데이터를 찾아내는 방법이 아닌 것은?
- ① 자료 흐름도
- ② 입력 도메인 분석
- ③ 랜덤(Random) 테스트
- ④ 소단위 명세서
정답 및 해설 보기
정답 ④
입력 도메인 분석(입력값의 범위·경계 분석), 랜덤 테스트(난수 기반 무작위 데이터 생성), 자료 흐름도 기반의 자료 흐름 테스트는 모두 테스트 데이터를 만들어내는 기법이다. 소단위 명세서(Mini-spec)는 모듈의 동작을 기술한 설명 문서일 뿐, 테스트 데이터를 생성하는 방법이 아니다.
문 026. 스택(Stack)을 사용하는 예로 옳지 않은 것은?
- ① 함수의 재귀 호출
- ② 그래프의 너비 우선 탐색
- ③ 부프로그램의 호출
- ④ 후위 표기(Postfix)식의 계산
정답 및 해설 보기
정답 ②
함수·부프로그램의 호출과 복귀, 재귀 호출, 후위 표기식 계산은 모두 후입선출(LIFO)인 스택을 사용한다. 그래프의 너비 우선 탐색(BFS)은 먼저 발견한 정점부터 차례로 방문하므로 큐(Queue)를 사용한다.
🔑 암기 깊이 우선(DFS) = 스택 · 너비 우선(BFS) = 큐
문 027. 다음 중 소프트웨어 설치 매뉴얼에 포함될 항목이 아닌 것은?
- ① 설치 관련 파일
- ② 소프트웨어 개발 비용
- ③ 프로그램 삭제
- ④ 제품 소프트웨어 개요
정답 및 해설 보기
정답 ②
설치 매뉴얼에는 제품 소프트웨어 개요, 설치 관련 파일, 설치·삭제 방법 등 사용자가 설치·운용하는 데 필요한 정보가 들어간다. 소프트웨어 개발 비용은 공급자 내부 정보로 설치 매뉴얼의 항목이 아니다.
문 028. 기준선의 무결성을 평가하기 위해 확인, 검증, 검열 과정을 통해 공식적으로 승인하는 작업을 의미하는 용어는?
- ① 형상 감사(Configuration Audit)
- ② 롤백(Rollback)
- ③ 단위 테스트(Unit Test)
- ④ 체크인(Check-In)
정답 및 해설 보기
정답 ①
형상 관리에서 변경 사항이 기준선(Baseline)에 올바르게 반영되었는지, 무결성이 유지되는지를 확인·검증·검열해 공식적으로 승인하는 작업이 형상 감사(Configuration Audit)다.
오답 정리: 체크인(Check-In)은 수정한 형상 항목을 저장소에 등록하는 작업, 롤백(Rollback)은 트랜잭션을 이전 상태로 되돌리는 것이다.
문 029. 다음 중 소프트웨어 테스트에서 검증(Verification)과 확인(Validation)에 대한 설명으로 옳지 않은 것은?
- ① 검증은 소프트웨어 개발 과정을 테스트하는 것이고, 확인은 소프트웨어 결과를 테스트 것이다.
- ② 검증은 작업 제품이 사용자의 요구에 적합한지 측정하며, 확인은 작업 제품이 개발자의 기대를 충족시키는지를 측정한다.
- ③ 검증은 작업 제품이 요구 명세의 기능, 비기능 요구사항을 얼마나 잘 준수하는지 측정하는 작업이다.
- ④ 소프트웨어 테스트에서 검증과 확인을 구별하면 찾고자 하는 결함 유형을 명확하게 하는 데 도움이 된다.
정답 및 해설 보기
정답 ②
검증(Verification)은 개발자·명세 관점("명세대로 올바르게 만들고 있는가")이고, 확인(Validation)은 사용자 관점("사용자가 원하는 제품을 만들었는가")이다. ②는 검증과 확인의 관점을 서로 반대로 설명해 틀렸다(검증을 사용자 요구로, 확인을 개발자 기대로 뒤바꿈).
🔑 암기 검증 = 개발자·명세(build it right) · 확인 = 사용자·실사용(build the right thing)
문 030. 다음 전위 표기 수식을 중위 표기 수식으로 바꾼 것으로 옳은 것은? (단, 수식에서 연산자는 +, *, /이며 피연산자는 A, B, C, D이다.)
+*AB/CD
- ① A + B * C / D
- ② A + B / C * D
- ③ A * B + C / D
- ④ A * B / C + D
정답 및 해설 보기
정답 ③
전위 표기식은 연산자가 피연산자 앞에 온다. 안쪽 덩어리부터 묶으면 *AB → (A*B), /CD → (C/D)이고, 남은 +가 두 덩어리를 연결한다. + (A*B) (C/D) → 중위 표기로 A * B + C / D가 된다.
문 031. 다음 설명의 소프트웨어 테스트의 기본 원칙은?
동일한 테스트 케이스로는 새 결함을 발견할 수 없으므로 주기적으로 테스트 케이스를 개선해야 한다.
- ① 살충제 패러독스
- ② 파레토 법칙
- ③ 오류 부재의 궤변
- ④ 완벽한 테스팅은 불가능
정답 및 해설 보기
정답 ①
같은 테스트 케이스를 반복하면 더 이상 새로운 결함을 찾지 못하므로 테스트 케이스를 주기적으로 개선해야 한다는 원칙이 살충제 패러독스(Pesticide Paradox)다. 같은 농약을 반복하면 해충에 내성이 생기는 것에 빗댄 것이다.
오답 정리: 파레토 법칙(결함의 80%가 20% 모듈에 집중), 오류 부재의 궤변(결함을 모두 제거해도 사용자 요구에 맞지 않으면 품질이 낮음).
문 032. 정렬된 N개의 데이터를 처리하는데 평균일 때는 O(Nlog₂N), 최악일 때는 O(N²)의 시간이 소요되는 정렬 알고리즘은?
- ① 힙 정렬
- ② 퀵 정렬
- ③ 버블 정렬
- ④ 합병 정렬
정답 및 해설 보기
정답 ②
평균은 O(Nlog₂N)으로 빠르지만, 최악(이미 정렬된 데이터처럼 피벗 분할이 한쪽으로 치우칠 때)에는 O(N²)까지 느려지는 정렬은 퀵 정렬이다.
| 정렬 | 평균 | 최악 |
|---|---|---|
| 힙·합병 정렬 | O(Nlog₂N) | O(Nlog₂N) |
| 퀵 정렬 | O(Nlog₂N) | O(N²) |
| 버블 정렬 | O(N²) | O(N²) |
문 033. 소프트웨어 품질 목표 중 프로그램이 항시 정확하게 동작하고 있는 정도를 나타내는 것은?
- ① Correctness
- ② Reliability
- ③ Usability
- ④ Integrity
정답 및 해설 보기
정답 ②
일정 기간 동안 고장 없이 '항시' 정확하게 동작하는 정도, 즉 믿고 쓸 수 있는 정도를 나타내는 품질 목표는 신뢰성(Reliability)이다.
오답 정리: Correctness(요구 명세를 충족하는 정도), Usability(사용·학습의 편의성), Integrity(불법 접근으로부터 보호되는 정도).
⚠️ 함정 '정확하게'라는 표현 때문에 Correctness로 오인하기 쉽다 — 핵심 키워드는 '항시'다.
문 034. 상향식 통합 시험을 위해 검사 자료 입출력 제어 프로그램은?
- ① Stub
- ② Driver
- ③ Procedure
- ④ Function
정답 및 해설 보기
정답 ②
상향식(Bottom-up) 통합 시험에서 하위 모듈을 호출하고 검사 자료의 입출력을 제어하는 임시 상위 모듈이 드라이버(Driver)다. 하향식(Top-down)에서 아직 구현되지 않은 하위 모듈을 대신하는 것은 스텁(Stub)이다.
🔑 암기 상향식 = Driver(위에서 운전) · 하향식 = Stub(아래를 임시로 받침)
문 035. 이진트리의 순회(Traversal) 경로를 나타낸 그림이다. 이와 같은 이진트리 순회 방식은 무엇인가? (단, 노드의 숫자는 순회 순서를 의미한다.)

- ① 병렬 순회(Parallel Traversal)
- ② 전위 순회(Pre-order Traversal)
- ③ 중위 순회(In-order Traversal)
- ④ 후위 순회(Post-order Traversal)
정답 및 해설 보기
정답 ④
노드의 숫자가 방문 순서다. 뿌리(Root)에 가장 큰 번호 9가 적혀 있으므로 뿌리를 가장 마지막에 방문했다는 뜻이고, 각 서브트리에서도 왼쪽 서브트리 → 오른쪽 서브트리 → 뿌리 순으로 방문한다. 이렇게 도는 방식이 후위 순회(Post-order)다. 실제로 후위 순회로 돌면 방문 순서가 1 → 2 → 3 → 4 → 5 → 6 → 7 → 8 → 9가 되어 그림의 번호와 일치한다.
🔑 암기 뿌리 방문 시점 — 전위(뿌리 먼저) · 중위(뿌리 중간) · 후위(뿌리 마지막)
문 036. 디지털 저작권 관리(DRM)에 사용되는 기술 요소가 아닌 것은?
- ① Encryption
- ② Key Management
- ③ IDS
- ④ Tamper Resistance
정답 및 해설 보기
정답 ③
DRM의 기술 요소에는 암호화(Encryption), 키 관리(Key Management), 변조 방지(Tamper Resistance), 워터마킹 등이 있다. IDS(Intrusion Detection System, 침입 탐지 시스템)는 네트워크 침입을 감시하는 보안 시스템으로 DRM의 기술 요소가 아니다.
문 037. 자료구조에 대한 설명으로 틀린 것은?
- ① 큐는 First In First Out 처리를 수행한다.
- ② 큐는 선형구조에 해당한다.
- ③ 스택은 Last In First Out 처리를 수행한다.
- ④ 스택은 비선형구조에 해당한다.
정답 및 해설 보기
정답 ④
스택은 한쪽 끝에서만 삽입·삭제하는 선형(Linear) 구조다. ④의 '비선형구조'가 틀렸다. 비선형 구조에 해당하는 것은 트리·그래프뿐이고, 스택·큐·리스트 등은 모두 선형 구조다.
🔑 암기 비선형 = 트리·그래프 / 그 외(스택·큐·리스트 등)는 선형
문 038. 그룹 중에 하나 이상의 후보를 선택할 때 사용하는 사용자 인터페이스(UI) 요소는?
- ① 토글 버튼
- ② 텍스트 박스
- ③ 라디오 버튼
- ④ 체크 박스
정답 및 해설 보기
정답 ④
한 그룹에서 하나 이상(다중)을 선택할 때 사용하는 UI 요소는 체크 박스(Check Box)다. 라디오 버튼은 여러 후보 중 하나만 선택하는 단일 선택용이다.
오답 정리: 토글 버튼(On/Off 전환), 텍스트 박스(문자 입력).
문 039. 반정규화(Denormalization) 유형 중 중복 테이블을 추가하는 방법에 해당하지 않는 방법은?
- ① 진행 테이블의 추가
- ② 집계 테이블의 추가
- ③ 가상 테이블의 추가
- ④ 특정 부분만을 포함하는 테이블의 추가
정답 및 해설 보기
정답 ③
중복 테이블을 추가하는 반정규화 방법에는 집계 테이블 추가, 진행 테이블 추가, 특정 부분만을 포함하는 테이블 추가가 있다. 가상 테이블(View)은 데이터를 물리적으로 중복 저장하지 않고 논리적으로만 보여주는 객체이므로, 중복 테이블을 추가하는 방법이 아니다.
문 040. 변경 및 오류 사항 교정을 최소화하는 정도를 의미하는 것은?
- ① 신뢰성(Reliability)
- ② 유지보수성(Maintainability)
- ③ 가시성(Visibility)
- ④ 재사용성(Reusability)
정답 및 해설 보기
정답 ②
변경·오류 교정에 드는 노력을 최소화하는, 즉 쉽게 수정·보수할 수 있는 정도를 나타내는 품질 특성은 유지보수성(Maintainability)이다.
오답 정리: 신뢰성(고장 없이 동작하는 정도), 재사용성(다시 활용할 수 있는 정도), 가시성(개발 진행 상황을 파악할 수 있는 정도).
Part Ⅲ 데이터베이스 구축 (문 041~060)
문 041. 관계형 데이터베이스 언어인 SQL에 대한 설명으로 옳은 것은?
- ① 데이터 정의어(DDL)를 이용하여 데이터를 검색한다.
- ② 데이터 조작어(DML)를 이용하여 권한을 부여하거나 취소한다.
- ③ DELETE문은 테이블을 삭제하는 데 사용한다.
- ④ SELECT문에서 FROM절은 필수 항목이고, WHERE절은 선택 항목이다.
정답 및 해설 보기
정답 ④
SELECT문에서 FROM절은 반드시 있어야 하지만 WHERE절(조건)은 생략할 수 있다.
오답 정리: ① 검색(SELECT)은 DML이다(DDL은 CREATE·ALTER·DROP). ② 권한 부여·취소(GRANT·REVOKE)는 DCL이다. ③ DELETE는 테이블 안의 행(데이터)을 삭제하며, 테이블 자체를 삭제하는 것은 DROP이다.
문 042. 고객계좌 테이블에서 잔고가 100,000원에서 3,000,000원 사이인 고객들의 등급을 '우대고객'으로 변경하고자 [보기]와 같은 SQL문을 작성하였다. ㉠과 ㉡의 내용으로 옳은 것은?
UPDATE 고객계좌
( ㉠ ) 등급 = '우대고객'
WHERE 잔고 ( ㉡ ) 100000 AND 3000000;
- ① ㉠ FROM, ㉡ BETWEEN
- ② ㉠ SET, ㉡ BETWEEN
- ③ ㉠ FROM, ㉡ ORDER BY
- ④ ㉠ SET, ㉡ ORDER BY
정답 및 해설 보기
정답 ②
UPDATE문에서 변경할 컬럼과 값은 SET 절로 지정한다(㉠ = SET). "100000원에서 3000000원 사이"라는 범위 조건은 BETWEEN A AND B로 표현한다(㉡ = BETWEEN).
🔑 암기 수정 = UPDATE ~ SET · 범위 = BETWEEN A AND B
문 043. 데이터베이스 데이터 모델에 대한 설명으로 옳지 않은 것은?
- ① 계층 데이터 모델은 트리 형태의 데이터 구조를 가진다.
- ② 관계 데이터 모델은 테이블로 데이터베이스를 나타낸다.
- ③ 네트워크 데이터 모델은 그래프 형태로 데이터베이스 구조를 표현한다.
- ④ 계층 데이터 모델, 관계 데이터 모델, 네트워크 데이터 모델은 개념적 데이터 모델이다.
정답 및 해설 보기
정답 ④
계층(트리)·관계(테이블)·네트워크(그래프) 데이터 모델은 모두 논리적 데이터 모델이다. 개념적 데이터 모델의 대표는 E-R 다이어그램이므로 ④의 '개념적'이 틀렸다.
🔑 암기 데이터 모델링 3단계 = "개·논·물"(개념적 E-R → 논리적 표/계층/망 → 물리적 저장)
문 044. 관계형 데이터베이스의 표준 질의어인 SQL(Structured Query Language)에서 CREATE TABLE문에 대한 설명으로 옳지 않은 것은?
- ① CREATE TABLE문은 테이블 이름을 기술하며 해당 테이블에 속하는 컬럼에 대해서 컬럼 이름과 데이터 타입을 명시한다.
- ② PRIMARY KEY절에서는 기본키 속성을 지정한다.
- ③ FOREIGN KEY절에서는 참조하고 있는 행이 삭제되거나 변경될 때의 옵션으로 NO ACTION, CASCADE, SET NULL, SET DEFAULT 등을 사용할 수 있다.
- ④ CHECK절은 무결성 제약 조건으로 반드시 UPDATE 키워드와 함께 사용한다.
정답 및 해설 보기
정답 ④
CHECK절은 컬럼 값의 유효성을 검사하는 무결성 제약 조건으로, 테이블 정의(CREATE)나 변경(ALTER) 시 지정한다. UPDATE 키워드와 반드시 함께 사용한다는 ④가 틀렸다.
문 045. 시스템 카탈로그에 대한 설명으로 틀린 것은?
- ① 시스템 카탈로그의 갱신은 무결성 유지를 위하여 SQL을 이용하여 사용자가 직접 갱신할 수 없다.
- ② 데이터베이스에 포함되는 데이터 객체에 대한 정의나 명세에 대한 정보를 유지 관리한다.
- ③ DBMS와 사용자가 생성하고 유지하는 데이터베이스 내의 특별한 테이블의 집합체이다.
- ④ 카탈로그에 저장된 정보를 메타데이터라고도 한다.
정답 및 해설 보기
정답 ③
시스템 카탈로그(데이터 사전)는 DBMS가 생성·유지하며, 사용자는 SELECT로 조회만 가능하고 INSERT·UPDATE·DELETE로 직접 갱신할 수 없다. ③은 "DBMS와 사용자가 생성하고 유지"라고 해 틀렸다 — 생성·유지는 DBMS의 영역이다.
문 046. 단독으로 존재하며 다른 것과 구분되는 객체이며, 애트리뷰트들의 집합을 의미하는 것은?
- ① 도메인
- ② 튜플
- ③ 엔티티
- ④ 다형성
정답 및 해설 보기
정답 ③
현실 세계에서 단독으로 존재하며 다른 것과 구분되고, 속성(애트리뷰트)들의 집합으로 표현되는 것이 엔티티(개체, Entity)다.
오답 정리: 도메인(한 속성이 가질 수 있는 값의 범위), 튜플(테이블의 행 하나).
문 047. 다음 중 트랜잭션을 수행하는 도중 장애로 인해 손상된 데이터베이스를 손상되기 이전의 정상적인 상태로 복구시키는 작업은?
- ① Commit
- ② Abort
- ③ Recovery
- ④ Restart
정답 및 해설 보기
정답 ③
장애로 손상된 데이터베이스를 손상 이전의 정상 상태로 되돌리는 작업이 회복(Recovery)이다.
오답 정리: Commit(트랜잭션 완료 확정), Abort(트랜잭션 중단·취소), Restart(재시작).
문 048. 개체 관계 모델(Entity-Relationship model)을 그래프 방식으로 표현한 E-R 다이어그램에서 마름모 모양으로 표현되는 것은?
- ① 개체 타입(Entity Type)
- ② 관계 타입(relationship Type)
- ③ 속성(Attribute)
- ④ 키 속성(Key Attribute)
정답 및 해설 보기
정답 ②
E-R 다이어그램에서 마름모(◇)는 관계 타입(Relationship Type)을 나타낸다. 개체 타입은 사각형(□), 속성은 타원(○)으로 표현한다.
🔑 암기 사각형 = 개체 · 마름모 = 관계 · 타원 = 속성
문 049. 다음 중 병행 제어의 로킹(Locking) 단위에 대한 설명으로 옳지 않은 것은?
- ① 한꺼번에 로킹할 수 있는 객체의 크기를 로킹 단위라고 한다.
- ② 로킹 단위가 작아지면 로킹 오버헤드가 증가한다.
- ③ 로킹 단위가 작아지면 데이터베이스 공유도가 감소한다.
- ④ 데이터베이스, 파일, 레코드 등은 로킹 단위가 될 수 있다.
정답 및 해설 보기
정답 ③
로킹 단위가 작아지면 더 많은 트랜잭션이 동시에 접근할 수 있어 공유도(병행성)는 증가한다. 다만 관리할 락이 늘어 오버헤드도 증가한다. ③은 "공유도가 감소한다"고 해 틀렸다.
🔑 암기 로킹 단위 작아짐 → 오버헤드 증가 · 공유도 증가 (커지면 둘 다 반대)
문 050. DDL에 해당하는 SQL 명령으로만 나열된 것은?
- ① DROP, CREATE, ALTER
- ② INSERT, DELETE, UPDATE, DROP
- ③ SELECT, INSERT, DELETE, UPDATE
- ④ SELECT, INSERT, DELETE, ALTER
정답 및 해설 보기
정답 ①
DDL(데이터 정의어)은 CREATE·ALTER·DROP이다. ②③④에는 INSERT·DELETE·UPDATE·SELECT 같은 DML이 섞여 있다.
🔑 암기 DDL = 크·알·드 · DML = 셀·인·업·델 · DCL = 그·리·커·롤
문 051. 분산 데이터베이스 목표 중 "사용하려는 데이터가 저장된 사이트를 사용자는 알 필요가 없는 것이며, 위치 정보는 시스템 카탈로그에 유지된다"는 것과 관계있는 것은?
- ① 장애 투명성
- ② 병행 투명성
- ③ 위치 투명성
- ④ 중복 투명성
정답 및 해설 보기
정답 ③
데이터가 저장된 사이트(위치)를 사용자가 몰라도 되는 성질이 위치 투명성(Location Transparency)이다.
🔑 암기 위치(어디 있는지 모름) · 중복(복사본을 하나처럼) · 장애(일부 고장에도 동작) · 병행(동시 접근 일관성)
문 052. 참조 무결성을 유지하기 위하여 DROP문에서 부모 테이블의 항목 값을 삭제할 경우 삭제할 요소가 참조 중이면 삭제하지 않기 위한 옵션은?
- ① CLUSTER
- ② CASCADE
- ③ SET-NULL
- ④ RESTRICTED
정답 및 해설 보기
정답 ④
부모 테이블의 값을 삭제하려 할 때 자식이 그 값을 참조 중이면 삭제를 막는 옵션이 RESTRICTED다. CASCADE(참조하는 행도 연쇄 삭제), SET NULL(참조 값을 NULL로 변경)과 대비된다.
문 053. 릴레이션 R = {A, B, C, D, E}이 함수적 종속성들의 집합 FD = {A → C, {A, B} → D, D → E, {A, B} → E}를 만족할 때, R이 속할 수 있는 가장 높은 차수의 정규형으로 옳은 것은? (단, 기본키는 복합 속성 {A, B}이고, 릴레이션 R의 속성 값은 더이상 분해될 수 없는 원자값으로만 구성된다.)
- ① 제1정규형
- ② 제2정규형
- ③ 제3정규형
- ④ 보이스/코드 정규형
정답 및 해설 보기
정답 ①
기본키가 복합키 {A, B}인데 FD에 A → C가 있다. 비주요 속성 C가 기본키의 일부인 A에만 종속되는 부분 함수 종속이므로 제2정규형 조건을 위반한다. 속성 값이 모두 원자값이라 제1정규형은 만족하므로, R이 속할 수 있는 가장 높은 차수는 제1정규형이다.
🔑 암기 정규화 = "두·부·이·결"(1NF 도메인 원자값 → 2NF 부분 종속 제거 → 3NF 이행 종속 제거 → BCNF 결정자)
문 054. 다음 관계 대수 연산의 수행 결과로 옳은 것은? (단, π 는 프로젝트, σ는 셀렉트, ▷◁은 자연 조인을 나타내는 연산자이다.)
관계 대수: π고객번호, 상품코드 (σ가격<=40 (구매 ▷◁ 상품))
[구매]
| 고객번호 | 상품코드 |
|---|---|
| 100 | P1 |
| 200 | P2 |
| 100 | P3 |
| 100 | P2 |
| 200 | P1 |
| 300 | P2 |
[상품]
| 상품코드 | 비용 | 가격 |
|---|---|---|
| P1 | 20 | 35 |
| P2 | 50 | 65 |
| P3 | 10 | 27 |
| P4 | 20 | 45 |
| P5 | 30 | 50 |
| P6 | 40 | 55 |
- ① (100, P1), (100, P3)
- ② (100, P1), (200, P1)
- ③ (100, P1), (100, P3), (200, P1)
- ④ (200, P2), (100, P2), (300, P2)
(각 보기는 결과 릴레이션의 (고객번호, 상품코드) 튜플 집합이다.)
정답 및 해설 보기
정답 ③
구매와 상품을 상품코드 기준으로 자연 조인한 뒤 가격 ≤ 40 조건으로 거른다. 가격이 40 이하인 상품은 P1(35)과 P3(27)뿐이다. 구매에서 P1 또는 P3를 구매한 행은 (100, P1)·(200, P1)·(100, P3)이고, 고객번호·상품코드만 추출하면 이 세 튜플이 결과가 된다.
문 055. 트랜잭션이 정상적으로 완료(Commit)되거나, 중단(Abort)되었을 때 롤백(Rollback)되어야 하는 트랜잭션의 성질은?
- ① 원자성(Atomicity)
- ② 일관성(Consistency)
- ③ 격리성(Isolation)
- ④ 영속성(Durability)
정답 및 해설 보기
정답 ①
트랜잭션은 전부 반영(Commit)되거나 전부 취소(Rollback)되어야 한다는 'All or Nothing' 성질이 원자성(Atomicity)이다.
🔑 암기 ACID = 원자성(전부/전무) · 일관성 · 격리성 · 영속성
문 056. 데이터베이스 설계 단계에서 목표 DBMS에 맞는 스키마 설계와 트랜잭션 인터페이스 설계에 대한 것은 어떤 단계에서 이루어지는가?
- ① 요구 조건 분석 단계
- ② 개념적 설계 단계
- ③ 논리적 설계 단계
- ④ 물리적 설계 단계
정답 및 해설 보기
정답 ③
목표 DBMS에 맞는 스키마와 트랜잭션 인터페이스를 설계하는 단계는 논리적 설계 단계다. 개념적 설계는 DBMS와 무관하게 E-R로 현실을 모델링하고, 물리적 설계는 저장 구조·인덱스를 다룬다.
🔑 암기 "개·논·물" — 개념(E-R) · 논리(스키마·목표 DBMS) · 물리(저장·인덱스)
문 057. [보기]는 관계형 데이터베이스의 정규화 작업을 설명한 것이다. 제1정규형, 제2정규형, 제3정규형, BCNF를 생성하는 정규화 작업을 순서대로 나열 한 것은?
ㄱ. 결정자가 후보키가 아닌 함수 종속성을 제거한다. ㄴ. 부분 함수 종속성을 제거한다. ㄷ. 속성을 원자값만 갖도록 분해한다. ㄹ. 이행적 함수 종속성을 제거한다.
- ① ㄱ → ㄴ → ㄷ → ㄹ
- ② ㄱ → ㄷ → ㄹ → ㄴ
- ③ ㄷ → ㄱ → ㄴ → ㄹ
- ④ ㄷ → ㄴ → ㄹ → ㄱ
정답 및 해설 보기
정답 ④
정규화 순서는 1NF(원자값으로 분해, ㄷ) → 2NF(부분 함수 종속 제거, ㄴ) → 3NF(이행적 함수 종속 제거, ㄹ) → BCNF(결정자가 후보키가 아닌 종속 제거, ㄱ)다. 따라서 ㄷ → ㄴ → ㄹ → ㄱ이다.
🔑 암기 정규화 = "두·부·이·결"(도메인 원자값 · 부분 · 이행 · 결정자)
문 058. 관계형 데이터베이스의 뷰(View)에 대한 장점으로 옳지 않은 것은?
- ① 뷰는 데이터의 논리적 독립성을 일정 부분 제공할 수 있다.
- ② 뷰를 통해 데이터의 접근을 제어함으로써 보안을 제공할 수 있다.
- ③ 뷰에 대한 연산의 제약이 없어서 효율적인 응용 프로그램의 개발이 가능하다.
- ④ 뷰는 여러 사용자의 상이한 응용이나 요구를 지원할 수 있어서 데이터 관리를 단순하게 한다.
정답 및 해설 보기
정답 ③
뷰는 삽입·수정·삭제 연산에 제약이 많다(집계·조인 등으로 정의한 뷰는 갱신할 수 없다). ③은 "연산의 제약이 없다"고 해 틀렸다. 논리적 독립성·보안 제공(①·②), 다양한 사용자 요구 지원(④)은 옳은 장점이다.
문 059. SQL에서는 데이터베이스 검색의 성능 및 편의 향상을 위하여 내장함수를 제공한다. 다음 중 SQL의 내장 집계함수(Aggregate Function)가 아닌 것은?
- ① COUNT
- ② SUM
- ③ TOTAL
- ④ MAX
정답 및 해설 보기
정답 ③
SQL 표준 집계함수는 COUNT·SUM·AVG·MAX·MIN이다. TOTAL은 SQL 표준 집계함수가 아니며, 합계는 SUM을 사용한다.
🔑 암기 집계함수 = COUNT · SUM · AVG · MAX · MIN
문 060. 직원(사번, 이름, 입사년도, 부서) 테이블에 대한 SQL문 중 문법적으로 옳은 것은?
- ①
SELECT COUNT(부서) FROM 직원 GROUP 부서; - ②
SELECT * FROM 직원 WHERE 입사년도 IS NULL; - ③
SELECT 이름, 입사년도 FROM 직원 WHERE 이름 = '최%'; - ④
SELECT 이름, 부서 FROM 직원 WHERE 입사년도 = (2014,2015);
정답 및 해설 보기
정답 ②
NULL 값은 = NULL이 아니라 IS NULL로 비교해야 하므로 ②가 옳다. ①은 GROUP 뒤에 BY가 빠져 문법 오류이고, ④는 여러 값과 비교할 때 =이 아니라 IN (2014, 2015)를 써야 한다. ③은 '최'로 시작하는 이름을 찾으려면 =이 아니라 LIKE '최%'를 써야 한다(=로는 와일드카드 %가 패턴으로 동작하지 않아 검색되지 않는다).
🔑 암기 NULL은 IS NULL · 패턴 검색은 LIKE · 여러 값은 IN
Part Ⅳ 프로그래밍 언어 활용 (문 061~080)
문 061. OSI 7계층에서 네트워크 장비로 스위치가 필요하며, 물리적 연결을 이용해 신뢰성 있는 정보를 전송하려고 동기화, 오류제어, 흐름제어 등의 전송에러를 제어하는 계층은?
- ① 표현 계층
- ② 물리 계층
- ③ 응용 계층
- ④ 데이터 링크 계층
정답 및 해설 보기
정답 ④
스위치가 동작하고 동기화·오류 제어·흐름 제어로 전송 에러를 제어하는 계층은 데이터 링크 계층(2계층)이다. 물리 계층은 신호 전송만 담당하며 오류·흐름 제어 기능이 없다.
🔑 암기 장비 계층 — 1계층 허브·리피터 · 2계층 스위치·브리지 · 3계층 라우터
문 062. FIFO 페이지 교체 알고리즘을 사용하는 가상메모리에서 프로세스 P가 다음과 같은 페이지 번호 순서대로 페이지에 접근할 때, 페이지 부재(page-fault) 발생 횟수는? (단, 프로세스 P가 사용하는 페이지 프레임은 총 4개이고, 빈 상태에서 시작한다.)
1 2 3 4 5 2 1 1 6 7 5
- ① 6회
- ② 7회
- ③ 8회
- ④ 9회
정답 및 해설 보기
정답 ③
프레임 4개, FIFO(먼저 적재된 페이지를 먼저 교체)로 참조열을 따라가면 1·2·3·4(적재 4회) → 5(1 교체) → 2(적중) → 1(2 교체) → 1(적중) → 6(3 교체) → 7(4 교체) → 5(적중) 순으로, 페이지 부재가 모두 8회 발생한다.
| 참조 | 1 | 2 | 3 | 4 | 5 | 2 | 1 | 1 | 6 | 7 | 5 |
|---|---|---|---|---|---|---|---|---|---|---|---|
| 부재 | ● | ● | ● | ● | ● | ● | ● | ● |
문 063. 다음 C 프로그램의 출력 값은?
#include <stdio.h>
int main( ) {
int a[ ] = {1, 2, 4, 8};
int *p = a;
p[1] = 3;
a[1] = 4;
p[2] = 5;
printf("%d, %d\n", a[1]+p[1], a[2]+p[2]);
return 0;
}
- ① 5, 9
- ② 6, 9
- ③ 7, 9
- ④ 8, 10
정답 및 해설 보기
정답 ④
int *p = a;로 포인터 p는 배열 a와 같은 메모리를 가리킨다. p[1] = 3 후 a[1] = 4로 덮어써 a[1]은 4, p[2] = 5로 a[2]는 5가 된다. a[1]+p[1]은 같은 값 4+4=8, a[2]+p[2]는 5+5=10이므로 출력은 8, 10이다.
💡 배열 이름과 그 배열을 가리키는 포인터는 같은 원소를 공유한다.
문 064. 운영체제를 기능에 따라 분류할 경우 제어 프로그램이 아닌 것은?
- ① 감시 프로그램
- ② 데이터 관리 프로그램
- ③ 통신 제어 프로그램
- ④ 언어번역 프로그램
정답 및 해설 보기
정답 ④
제어 프로그램은 감시 프로그램, 데이터 관리 프로그램, 작업·통신 제어 프로그램 등 시스템을 감시·관리하는 부분이다. 언어번역 프로그램(컴파일러·어셈블러)은 처리 프로그램에 속하므로 제어 프로그램이 아니다.
🔑 암기 제어 프로그램 = 감시 · 데이터 관리 · 작업(통신) 제어 / 처리 프로그램 = 언어번역 · 서비스 · 문제 처리
문 065. 다음 Java 프로그램에서 사용된 객체지향 언어의 특성이 아닌 것은?
class Calc1 {
protected int a, b;
public Calc1( ) {
a = 1;
b = 2;
}
}
class Plus extends Calc1 {
void answer( ) {
System.out.println(a + "+" + b + "=" + (a + b));
}
void answer(int a, int b) {
System.out.println(a + "+" + b + "=" + (a + b));
}
}
- ① 오버라이딩(Overriding)
- ② 상속(Inheritance)
- ③ 캡슐화(Encapsulation)
- ④ 오버로딩(Overloading)
정답 및 해설 보기
정답 ①
extends Calc1은 상속(②), protected int a, b는 접근 제어자로 캡슐화(③), 매개변수가 다른 answer( )와 answer(int a, int b)는 오버로딩(④)이다. 부모 클래스 Calc1에는 answer 메서드가 없으므로 자식이 재정의한 것이 아니다 — 따라서 오버라이딩(①)은 사용되지 않았다.
🔑 암기 오버로딩 = 같은 이름·다른 매개변수(쌓기) / 오버라이딩 = 부모 메서드 재정의(덮어쓰기)
문 066. C 언어에서 변수명으로 사용할 수 없는 것은?
- ① data02
- ② 5int01
- ③ _sub
- ④ shrt
정답 및 해설 보기
정답 ②
C 언어 변수명은 숫자로 시작할 수 없다. 5int01은 숫자 5로 시작하므로 변수명으로 쓸 수 없다. _sub는 밑줄로 시작해 가능하고, shrt는 예약어 short가 아니므로 사용할 수 있다.
🔑 암기 변수명 규칙 — 숫자로 시작 금지 · 특수문자는 밑줄(_)만 허용 · 예약어 금지
문 067. 다음 중 응집도가 가장 낮은 것은?
- ① 절차적 응집도
- ② 논리적 응집도
- ③ 우연적 응집도
- ④ 통신적 응집도
정답 및 해설 보기
정답 ③
응집도는 우연적 < 논리적 < 시간적 < 절차적 < 통신적 < 순차적 < 기능적 순으로 높아진다. 가장 낮은(나쁜) 것은 관련 없는 기능을 모아 놓은 우연적 응집도다.
🔑 암기 응집도(낮음→높음) = "우·논·시·절·통·순·기"
문 068. 다음 중 스크립트 언어가 아닌 것은?
- ① ASP
- ② Python
- ③ JavaScript
- ④ COBOL
정답 및 해설 보기
정답 ④
ASP·Python·JavaScript는 한 줄씩 해석·실행하는 스크립트 언어다. COBOL은 소스를 통째로 번역해 실행 파일을 만드는 컴파일 언어로 스크립트 언어가 아니다.
문 069. 교착상태에 대한 설명으로 옳지 않은 것은?
- ① 교착상태를 예방하기 위한 방법에는 점유와 대기 조건의 방지, 비선점(Non-Preemptive) 조건의 방지, 순환 대기 조건의 방지 방법이 있다.
- ② 교착상태를 회피하기 위한 방법으로 은행가 알고리즘(Banker Algorithm)이 있다.
- ③ 둘 이상의 프로세스들이 서로 다른 프로세스가 점유하고 있는 자원을 기다리느라 어느 프로세스도 진행하지 못하는 상태를 말한다.
- ④ 상호배제 조건, 점유와 대기조건, 비선점(Non-Preemptive) 조건, 순환 대기의 조건 중 어느 하나만 만족하면 발생한다.
정답 및 해설 보기
정답 ④
교착상태는 상호배제·점유와 대기·비선점·순환 대기의 네 조건이 모두(동시에) 충족될 때 발생한다. ④는 "어느 하나만 만족하면 발생한다"고 해 틀렸다.
🔑 암기 교착상태 4조건은 AND(모두 충족) — 하나라도 깨면 교착상태 해소
문 070. 입력 안내에 따라 두 사람의 나이를 입력받고 그 합을 구하는 C 프로그램을 작성하려고 한다. 프로그램이 정상적으로 동작하도록 다음의 코드 조각을 올바른 순서로 나열한 것은?
- ㄱ.
scanf("%d%d", &age1, &age2); - ㄴ.
result = age1 + age2; - ㄷ.
int age1, age2, result; - ㄹ.
printf("나이의 합은 %d살입니다.\n", result); - ㅁ.
printf("철수와 영희의 나이를 입력하세요 :");
① ㄷ→ㅁ→ㄱ→ㄴ→ㄹ ② ㄷ→ㄱ→ㄴ→ㅁ→ㄹ ③ ㅁ→ㄱ→ㄷ→ㄹ→ㄴ ④ ㄷ→ㄱ→ㅁ→ㄴ→ㄹ
정답 및 해설 보기
정답 ①
변수 선언(ㄷ) → 입력 안내 출력(ㅁ) → 입력(ㄱ) → 합 계산(ㄴ) → 결과 출력(ㄹ) 순이다. 변수는 사용 전에 선언하고, 입력을 받기 전에 안내 문구를 먼저 출력해야 자연스럽다. 따라서 ㄷ→ㅁ→ㄱ→ㄴ→ㄹ이다.
문 071. 다음 중 OSI 7계층 중 네트워크 계층에 대한 설명으로 틀린 것은?
- ① 네트워크 계층에서는 IP를 사용한다.
- ② 라우터 또는 교환기는 패킷 전달을 위해 경로를 지정하거나 교환 기능을 제공한다.
- ③ 패킷에 발신지와 목적지의 논리 주소를 추가한다.
- ④ 한 노드로부터 다른 노드로 프레임을 전송하는 책임을 진다.
정답 및 해설 보기
정답 ④
네트워크 계층(3계층)의 전송 단위는 패킷이며 IP(논리 주소)와 라우팅을 다룬다. ④의 "프레임을 전송", "노드에서 노드로"는 데이터 링크 계층(2계층)에 대한 설명이다.
🔑 암기 2계층 = 프레임·노드 간 전송 / 3계층 = 패킷·IP·경로 지정
문 072. 현재 실행 중이던 프로세스가 지정된 시간 이전에 입출력 요구에 의하여 스스로 CPU를 반납하고 대기 상태로 전이하는 것은?
- ① Block
- ② Deadlock
- ③ Interrupt
- ④ Wake Up
정답 및 해설 보기
정답 ①
실행 중인 프로세스가 입출력 요구로 스스로 CPU를 반납하고 실행(Running) → 대기(Wait) 상태로 전이하는 것을 Block이라고 한다.
🔑 암기 Block(실행→대기) · Wake Up(대기→준비) · Dispatch(준비→실행)
문 073. C 프로그램에서 int형 변수 a와 b의 값이 모두 5일 때, 다음 연산 중 결과값이 같은 것끼리 묶은 것은?
- ㄱ.
a && b - ㄴ.
a & b - ㄷ.
a == b - ㄹ.
a - b
① ㄱ, ㄴ ② ㄱ, ㄷ ③ ㄴ, ㄷ ④ ㄴ, ㄹ
정답 및 해설 보기
정답 ②
a = 5, b = 5일 때 ㄱ a && b(논리 AND)는 참이므로 1, ㄴ a & b(비트 AND)는 0101 & 0101 = 5, ㄷ a == b(비교)는 참이므로 1, ㄹ a - b는 0이다. 결과가 1로 같은 것은 ㄱ과 ㄷ이다.
⚠️ 함정 &&(논리)와 &(비트)는 모양이 비슷해도 결과가 다르다.
문 074. IPv6에 대한 설명으로 틀린 것은?
- ① 전송 데이터의 오류 검사를 위해 체크썸을 사용한다.
- ② 멀티캐스트(Multicast)를 사용한다.
- ③ 애니캐스트(Anycast)는 하나의 호스트에서 그룹 내의 가장 가까운 곳에 있는 수신자에게 전달하는 방식이다.
- ④ 128비트 주소체계를 사용한다.
정답 및 해설 보기
정답 ①
IPv6는 헤더를 단순화하면서 헤더 체크섬을 제거했다(오류 검사는 상·하위 계층에 위임). ①의 "체크썸을 사용한다"는 IPv4에 대한 설명으로 틀렸다.
🔑 암기 IPv6 = 128비트 · 유니/멀티/애니캐스트(브로드캐스트 폐지) · 체크섬 제거 · IPSec 기본
문 075. 다음 C 프로그램 실행 결과로 출력되는 sum 값으로 옳은 것은?
#include <stdio.h>
int foo(void) {
int var1 = 1;
static int var2 = 1;
return (var1++) + (var2++);
}
int main( ) {
int i=0, sum=0;
while(i < 3) {
sum = sum + foo( );
i++;
}
printf("%d", sum);
return 0;
}
- ① 8
- ② 9
- ③ 10
- ④ 11
정답 및 해설 보기
정답 ②
var1은 지역 변수라 호출마다 1로 초기화되지만, static int var2는 값을 유지한다. 후위 증가(++)는 더한 뒤 증가하므로, 1번째 호출 1+1=2(var2→2), 2번째 1+2=3(var2→3), 3번째 1+3=4(var2→4)를 반환한다. sum = 2+3+4 = 9다.
🔑 암기 static 변수는 함수가 끝나도 값이 유지되어 누적된다.
문 076. 한 프로세스가 CPU를 독점하는 폐단을 방지하기 위해서 각 프로세스에게 할당된 일정한 시간(Time Slice) 동안만 CPU를 사용하도록 하는 스케줄링 기법으로 범용 시분할 시스템에 적합한 것은?
- ① FIFO(First-In-First-Out)
- ② RR(Round-Robin)
- ③ SRT(Shortest-Remaining-Time)
- ④ HRN(High-Response-ratio-Next)
정답 및 해설 보기
정답 ②
일정한 시간 할당량(Time Slice) 동안만 CPU를 쓰고 다음 프로세스로 넘기는, 시분할 시스템에 적합한 선점형 스케줄링이 RR(Round-Robin)이다.
🔑 암기 시간 할당량(Time Slice)·시분할 = RR
문 077. 프로세스와 스레드(Thread)에 대한 설명으로 옳지 않은 것은?
- ① 하나의 스레드는 여러 프로세스에 포함될 수 있다.
- ② 스레드는 프로세스에서 제어를 분리한 실행단위이다.
- ③ 스레드는 같은 프로세스에 속한 다른 스레드와 코드를 공유한다.
- ④ 스레드는 프로그램 카운터를 독립적으로 가진다.
정답 및 해설 보기
정답 ①
스레드는 하나의 프로세스 안에 속하는 실행 단위로, 여러 프로세스에 동시에 포함될 수 없다. ①이 틀렸다. 같은 프로세스의 스레드끼리 코드·데이터를 공유하되(③), 프로그램 카운터·스택은 각자 따로 가진다(④).
문 078. 다음 C 프로그램의 실행 결과로 옳은 것은?
#include <stdio.h>
int sub(int n) {
if(n==0) return 0;
if(n==1) return 1;
return (sub(n-1) + sub(n-2));
}
int main( ) {
int a=0;
a=sub(4);
printf("%d", a);
return 0;
}
- ① 0
- ② 1
- ③ 2
- ④ 3
정답 및 해설 보기
정답 ④
sub(n) = sub(n-1) + sub(n-2)이고 sub(0)=0, sub(1)=1인 피보나치 수열이다. sub(2)=1, sub(3)=2, sub(4)=sub(3)+sub(2)=2+1=3이므로 출력은 3이다.
문 079. SJF(Shortest Job First) 스케줄링에서 준비 큐에 도착하는 시간과 CPU 사용 시간이 다음 표와 같다. 모든 작업들의 평균 대기 시간은 얼마인가?
| 프로세스 번호 | 도착 시간 | 실행 시간 |
|---|---|---|
| 1 | 0초 | 6초 |
| 2 | 1초 | 4초 |
| 3 | 2초 | 1초 |
| 4 | 3초 | 2초 |
- ① 3
- ② 4
- ③ 5
- ④ 6
정답 및 해설 보기
정답 ②
비선점 SJF로 실행 순서는 P1(0~6) → P3(6~7) → P4(7~9) → P2(9~13)다. 대기 시간(시작 시각 − 도착 시각)은 P1 = 0, P3 = 6−2 = 4, P4 = 7−3 = 4, P2 = 9−1 = 8이다. 평균은 (0+4+4+8)/4 = 4초다.
문 080. 다음 Java 프로그램의 출력 결과는?
class ClassP {
int func1(int a, int b) {
return (a+b);
}
int func2(int a, int b) {
return (a-b);
}
int func3(int a, int b) {
return (a*b);
}
}
class ClassA extends ClassP {
int func1(int a, int b) {
return (a%b);
}
double func2(double a, double b) {
return (a*b);
}
int func3(int a, int b) {
return (a/b);
}
}
public class Main {
public static void main(String[ ] args) throws Exception {
ClassP p = new ClassA( );
System.out.print(p.func1(5, 2) + ", "+
p.func2(5, 2) + ", " + p.func3(5, 2));
}
}
- ① 1, 3, 2
- ② 1, 3, 2.5
- ③ 1, 10.0, 2.5
- ④ 7, 3, 10
정답 및 해설 보기
정답 ①
p는 ClassP 타입으로 선언되었다. func1·func3는 ClassA가 같은 시그니처로 재정의(오버라이딩)했으므로 자식 메서드가 호출되어 5%2=1, 5/2=2(정수 나눗셈)다. func2는 ClassA가 func2(double, double)로 추가했을 뿐 func2(int, int)를 재정의한 것이 아니므로(오버로딩), 정수 인수 (5, 2) 호출은 ClassP의 func2(int, int)인 5-2=3이 실행된다. 따라서 출력은 1, 3, 2다.
⚠️ 함정 매개변수 타입이 다르면 오버라이딩이 아니라 오버로딩이다 — 선언 타입(ClassP) 기준으로 부모 메서드가 호출된다.
Part Ⅴ 정보시스템 구축관리 (문 081~100)
문 081. 소프트웨어 생명주기 모형 중 프로토타입(Prototype) 모형에 대한 설명으로 옳은 것을 [보기]에서 고른 것은?
ㄱ. 프로토타입 모형의 마지막 단계는 설계이다. ㄴ. 발주자가 목표 시스템의 모습을 미리 볼 수 있다. ㄷ. 폭포수 모형보다 발주자의 요구사항을 반영하기가 용이하다. ㄹ. 프로토타입별로 구현 시스템에 대하여 베타 테스트를 실시한다.
① ㄱ, ㄴ ② ㄴ, ㄷ ③ ㄷ, ㄹ ④ ㄱ, ㄹ
정답 및 해설 보기
정답 ②
프로토타입(시제품) 모형은 발주자가 목표 시스템의 모습을 미리 확인할 수 있고(ㄴ), 폭포수 모형보다 요구사항 반영이 쉽다(ㄷ). ㄱ은 시제품 평가 후 구현이 이어지므로 마지막 단계가 설계라는 것이 틀렸고, ㄹ의 베타 테스트는 출시 직전 단계라 프로토타입마다 실시하는 것이 아니다.
문 082. 관리자가 정의한 보안 환경이 운영되는 시스템만 네트워크에 연결이 가능하도록 하며, Clear Network에 악성 Worm이 감염된 Host가 연결되면 순식간에 네트워크는 악성 Worm이 퍼지게 되므로 이러한 상황을 막고자 하는 시스템은?
- ① SAN
- ② MBR
- ③ NAC
- ④ NIC
정답 및 해설 보기
정답 ③
정의된 보안 환경(백신·패치 등)을 갖춘 시스템만 네트워크 접근을 허용하고, 감염된 단말의 연결을 차단·격리하는 시스템이 NAC(Network Access Control, 네트워크 접근 제어)다.
오답 정리: SAN(저장장치 연결 네트워크), MBR(마스터 부트 레코드), NIC(랜카드).
문 083. 소프트웨어 개발 프로세스 모형에 대한 설명으로 옳은 것은?
- ① 폭포수(Waterfall) 모델은 개발 초기단계에 시범 소프트웨어를 만들어 사용자에게 경험하게 함으로써 사용자 피드백을 신속하게 제공할 수 있다.
- ② 프로토타입(Prototyping) 모델은 개발이 완료되고 사용 단계에 들어서야 사용자 의견을 반영할 수 있다.
- ③ 익스트림 프로그래밍(Extreme Programming)은 1950년대 항공 방위 소프트웨어 시스템 개발경험을 토대로 처음 개발되어 1970년대부터 널리 알려졌다.
- ④ 나선형(Spiral) 모델은 위험 분석을 해나가면서 시스템을 개발한다.
정답 및 해설 보기
정답 ④
나선형 모델은 위험 분석을 반복하며 점진적으로 시스템을 개발한다. ①(시범 S/W로 피드백)은 프로토타입 모델, ②(완료 후에야 의견 반영)는 폭포수 모델의 특징으로 서로 뒤바뀌었고, ③의 XP는 1990년대 후반의 애자일 방법론이라 1950년대 개발이 아니다.
🔑 암기 나선형 = 위험 분석(Risk Analysis)
문 084. 다음 중에서 COCOMO 모델에서 사용되는 노력 승수값을 구하기 위해서 사용되는 요소가 아닌 것은?
- ① 제품의 특성
- ② 컴퓨터의 특성
- ③ 개발 요원의 특성
- ④ 사용자의 특성
정답 및 해설 보기
정답 ④
COCOMO의 노력 승수(비용 결정 요소)는 제품 특성, 컴퓨터(플랫폼) 특성, 개발 요원 특성, 프로젝트 특성이다. 사용자의 특성은 노력 승수 요소에 포함되지 않는다.
문 085. 다음 중 파일 전송 프로토콜은?
- ① type
- ② mkdir
- ③ ftp
- ④ nmap
정답 및 해설 보기
정답 ③
ftp(File Transfer Protocol)는 이름 그대로 파일 전송 프로토콜이다.
오답 정리: type(파일 내용 출력 명령), mkdir(디렉터리 생성 명령), nmap(네트워크 스캐닝 도구).
문 086. CMM(Capability Maturity Model) 모델의 레벨로 옳지 않은 것은?
- ① 인수 단계
- ② 관리 단계
- ③ 정의 단계
- ④ 최적 단계
정답 및 해설 보기
정답 ①
CMM의 5단계는 초기(Initial) → 반복(Repeatable) → 정의(Defined) → 관리(Managed) → 최적화(Optimizing)다. '인수 단계'는 CMM 레벨에 없다.
🔑 암기 CMM 5단계 = "초·반·정·관·최"
문 087. 소프트웨어 비용 추정 모형(Estimation Models)이 아닌 것은?
- ① CPM
- ② Putnam
- ③ COCOMO
- ④ Function-Point
정답 및 해설 보기
정답 ①
소프트웨어 비용 추정 모형에는 COCOMO, Putnam, Function-Point(FP) 등이 있다. CPM(Critical Path Method, 임계 경로 기법)은 일정 관리 기법이지 비용 추정 모형이 아니다.
문 088. 우리나라 국가 표준으로 지정되었으며 경량 환경 및 하드웨어 구현에서의 효율성 향상을 위해 개발된 128비트 블록암호 알고리즘은?
- ① ARIA
- ② HMAC
- ③ 3DES
- ④ IDEA
정답 및 해설 보기
정답 ①
ARIA는 우리나라 국가 표준으로 지정된 128비트 블록암호 알고리즘이다. HMAC은 해시 기반 메시지 인증 코드이고, 3DES·IDEA는 국외에서 개발된 블록암호다.
🔑 암기 국내 표준 블록암호 = SEED · ARIA
문 089. 다음 중 ISO 12207 표준의 기본 생명주기의 주요 프로세스에 해당하지 않는 것은?
- ① 유지보수 프로세스
- ② 개발 프로세스
- ③ 운영 프로세스
- ④ 품질보증 프로세스
정답 및 해설 보기
정답 ④
ISO 12207의 기본 생명주기 프로세스는 획득·공급·개발·운영·유지보수다. 품질보증은 검증·감사 등과 함께 지원(Support) 프로세스에 속하므로 기본 생명주기 프로세스가 아니다.
문 090. Link State Routing 기법을 사용하며, 전달 정보는 인접 네트워크 정보를 이용하는 프로토콜은?
- ① RIP
- ② OSPF
- ③ Static
- ④ EIGRP
정답 및 해설 보기
정답 ②
링크 상태(Link State) 라우팅을 사용하는 프로토콜은 OSPF다. RIP는 거리 벡터(Distance Vector) 방식으로 홉 수만 따지며 최대 15홉으로 제한된다.
🔑 암기 RIP = 거리 벡터(홉 수) · OSPF = 링크 상태(최단 경로)
문 091. 다음 중 SSH(Secure Shell)에 대한 설명으로 틀린 것은?
- ① 키를 통한 인증은 클라이언트의 공개키를 서버에 등록해야 한다.
- ② 전송되는 데이터는 암호화 된다.
- ③ SSH의 기본 네트워크 포트는 25번을 사용한다.
- ④ 서로 연결되어 있는 컴퓨터 간 원격 명령 실행이나 셀 서비스 등을 수행한다.
정답 및 해설 보기
정답 ③
SSH의 기본 포트는 22번이다. 25번은 메일 전송 프로토콜인 SMTP의 포트이므로 ③이 틀렸다.
🔑 암기 포트 — 21 FTP · 22 SSH · 23 Telnet · 25 SMTP · 80 HTTP
문 092. 메모리 영역에 비정상적인 데이터나 비트를 채워 시스템의 정상적인 동작을 방해하는 공격 방식은?
- ① Spoofing
- ② Buffer Overflow
- ③ Sniffing
- ④ Scanning
정답 및 해설 보기
정답 ②
메모리 버퍼의 허용 범위를 넘는 데이터를 채워(overflow) 시스템을 마비시키거나 권한을 탈취하는 공격이 버퍼 오버플로(Buffer Overflow)다.
오답 정리: Spoofing(출발지 위장), Sniffing(네트워크 도청), Scanning(취약점 탐색).
문 093. 서비스 거부 공격에 해당하는 것을 [보기]에서 고른 것은?
ㄱ. Ping of Death 공격 ㄴ. SYN Flooding 공격 ㄷ. Session Hijacking 공격 ㄹ. ARP Redirect 공격
① ㄱ, ㄴ ② ㄴ, ㄷ ③ ㄷ, ㄹ ④ ㄱ, ㄹ
정답 및 해설 보기
정답 ①
Ping of Death(거대한 핑으로 시스템 마비)와 SYN Flooding(가짜 연결 요청 폭주로 자원 고갈)은 서비스 거부(DoS) 공격이다. Session Hijacking(세션 탈취)과 ARP Redirect(경로 변조로 가로채기)는 정보 탈취·중간자 공격에 해당한다.
문 094. IPSec(IP Security)에 대한 설명으로 틀린 것은?
- ① 암호화 수행 시 양방향 암호화를 지원한다.
- ② ESP는 발신지 인증, 데이터 무결성, 기밀성 모두를 보장한다.
- ③ 운영 모드는 Tunnel 모드와 Transport 모드로 분류된다.
- ④ AH는 발신지 인증, 데이터 무결성, 기밀성 모두를 보장한다.
정답 및 해설 보기
정답 ④
AH(Authentication Header)는 발신지 인증과 데이터 무결성은 제공하지만 기밀성(암호화)은 제공하지 않는다. 기밀성까지 제공하는 것은 ESP(Encapsulating Security Payload)다. 따라서 ④가 틀렸다.
🔑 암기 AH = 인증·무결성(기밀성 ✗) · ESP = 인증·무결성·기밀성
문 095. 소프트웨어 규모를 예측하기 위한 기능점수(function point)를 산정할 때 고려하지 않는 것은?
- ① 내부 논리 파일(Internal Logical File)
- ② 외부 입력(External Input)
- ③ 외부 조회(External Inquiry)
- ④ 원시 코드 라인 수(Line of Code)
정답 및 해설 보기
정답 ④
기능점수(FP)의 산정 요소는 외부 입력·외부 출력·외부 조회·내부 논리 파일·외부 인터페이스 파일이다. 원시 코드 라인 수(LOC)는 또 다른 규모 산정 기법으로, 기능점수 산정 요소가 아니다.
문 096. 정보화사회에서 개인 정보를 불법적인 방법으로 추출하여 개인의 경제적인 피해를 유발하는 사고가 많이 발생하고 있다. 개인 정보를 불법적으로 추출하는 방법으로 옳지 않은 것은?
- ① 스니핑(Sniffing)
- ② 스푸핑(Spoofing)
- ③ 페이징(Paging)
- ④ 피싱(Phishing)
정답 및 해설 보기
정답 ③
스니핑(도청)·스푸핑(위장)·피싱(낚시성 사기)은 개인 정보를 불법 추출하는 공격 기법이다. 페이징(Paging)은 메모리를 일정한 크기로 분할해 관리하는 기법으로 해킹 방법이 아니다.
문 097. 소프트웨어 개발 프로세스 모델 중 하나인 나선형 모델(Spiral Model)에 대한 설명으로 옳지 않은 것은?
- ① 폭포수(Waterfall) 모델과 원형(Prototype) 모델의 장점을 결합한 모델이다.
- ② 점증적으로 개발을 진행하여 소프트웨어 품질을 지속적으로 개선할 수 있다.
- ③ 위험을 분석하고 최소화하기 위한 단계가 포함되어 있다.
- ④ 관리가 복잡하여 대규모 시스템의 소프트웨어 개발에는 적합하지 않다.
정답 및 해설 보기
정답 ④
나선형 모델은 위험 분석을 통해 위험을 관리하므로 오히려 대규모·고위험 시스템 개발에 적합하다. ④는 "대규모 시스템에 적합하지 않다"고 해 틀렸다.
🔑 암기 나선형 = 위험 분석 + 대규모 시스템에 적합
문 098. 다음 중 공학적으로 잘 작성된 소프트웨어의 특성이 아닌 것은?
- ① 소프트웨어는 편리성이나 유지보수성에 점차 비중을 적게 두는 경향이 있다.
- ② 소프트웨어는 사용자가 원하는 대로 동작해야 한다.
- ③ 소프트웨어는 신뢰성이 높아야 하며 효율적이어야 한다.
- ④ 소프트웨어는 잠재적인 에러가 가능한한 적어야 하며 유지보수가 용이해야 한다.
정답 및 해설 보기
정답 ①
잘 작성된 소프트웨어는 유지보수성과 편리성을 점점 더 중요하게 다룬다(유지보수 비용이 개발 비용보다 크다). ①은 "유지보수성에 비중을 적게 둔다"고 해 틀렸다.
문 099. IP 패킷 전송이 잘게 나누어졌다가 다시 재조합하는 과정의 약점을 악용한 공격 방법은?
- ① TearDrop
- ② Smishing
- ③ Qshing
- ④ Smurfing
정답 및 해설 보기
정답 ①
IP 단편화(Fragment)와 재조합(Reassembly) 과정에서 단편의 오프셋을 겹치거나 어긋나게 조작해 시스템을 마비시키는 공격이 TearDrop이다.
오답 정리: Smishing(문자메시지 사기), Qshing(QR코드 사기), Smurfing(출발지를 위장한 ICMP 증폭 공격).
문 100. V-모형은 폭포수 모형에 테스트와 검증을 강조한 것이다. V모형의 단계를 ㉠ ~ ㉥까지 순서대로 바르게 나열한 것은?

- ① 시스템 설계 → 상세 설계 → 코딩 → 단위 테스트 → 통합 테스트 → 시스템 테스트
- ② 시스템 설계 → 시스템 테스트 → 상세 설계 → 통합 테스트 → 코딩 → 단위 테스트
- ③ 시스템 테스트 → 통합 테스트 → 단위 테스트 → 코딩 → 상세 설계 → 시스템 설계
- ④ 시스템 테스트 → 시스템 설계 → 통합 테스트 → 상세 설계 → 단위 테스트 → 코딩
정답 및 해설 보기
정답 ①
V-모형은 왼쪽 아래로 개발(설계·구현), 오른쪽 위로 테스트가 대응된다. 요구분석 다음부터 ㉠ 시스템 설계 → ㉡ 상세 설계 → ㉢ 코딩 → ㉣ 단위 테스트 → ㉤ 통합 테스트 → ㉥ 시스템 테스트 → 인수 및 설치 순이다. 따라서 ①이 옳다.
🔑 암기 테스트 순서 = "단·통·시·인"(단위 → 통합 → 시스템 → 인수)
이 회차 한 장 요약
| 과목 | 빈출·핵심 | 함정·다시 볼 문항 |
|---|---|---|
| Ⅰ 소프트웨어 설계 | 다형성(020) · 디자인 패턴 분류(009) · 럼바우 객·동·기(011·016) · XP 5가치(004) | 008 'Heap Diagram'은 없음 · 005 CASE 상호 호환성 · 015 "정적만" 단정 |
| Ⅱ 소프트웨어 개발 | 스택/큐(021·026·037) · 테스트 순서 단·통·시·인(023) · 검증 vs 확인(029) | 035 후위 순회(뿌리 마지막) · 024·030 표기식 변환 · 032 퀵 최악 O(N²) |
| Ⅲ 데이터베이스 구축 | DDL/DML/DCL(041·050) · 정규화 두·부·이·결(053·057) · SQL 문법(060) | 054 관계대수 조인 · 049 로킹 단위↔공유도 · 058 뷰 연산 제약 |
| Ⅳ 프로그래밍 언어 활용 | 포인터=배열 별칭(063) · static 누적(075) · SJF·RR(079·076) · OSI 계층(061·071) | 080 오버로딩 함정 · 073 &&와 & · 062 FIFO · 065 오버라이딩 부재 |
| Ⅴ 정보시스템 구축관리 | 나선형=위험 분석(083·097) · ARIA 국내 표준(088) · 포트 SSH 22(091) | 094 AH는 기밀성 ✗ · 086 CMM에 인수 단계 없음 · 087 CPM은 일정 기법 |
합격까지
정보처리기사, 약점 과목이 보이나요?
초개인화 학습앱 Klue로 틀린 유형을 집중 공략하고, 에듀윌 온라인강의로 개념까지 정리하세요.
