문서 읽는 데 115분 · 기출 5회 · 100문항

정보처리기사 필기 — 기출 5회 풀이

목차 106
전체 6회 중 5회 · 기출문제풀이

2020~2025 최신 기출을 재구성한 종합 세트. 100문항·5과목 × 20문항. 4과목(프로그래밍 언어 활용)에 메모리 배치 전략·페이지 교체·교착상태 등 운영체제 계산 문항이 두텁고, C·Java·Python 코드 추적이 고르게 섞였다. 출처: 기출 재구성 5회


Part Ⅰ 소프트웨어 설계 (문 001~020)

문 001. 프로토타이핑 모형(Prototyping Model)에 대한 설명으로 옳지 않은 것은?

  • ① 최종 결과물이 만들어지기 전에 의뢰자가 최종 결과물의 일부 또는 모형을 볼 수 있다.
  • ② 프로토타이핑을 수행하는 과정에서 새로운 요구사항의 반영은 불가능하다.
  • ③ 프로토타입은 발주자나 개발자 모두에게 공동의 참조 모델을 제공한다.
  • ④ 프로토타입은 구현 단계의 구현 골격이 될 수 있다.
정답 및 해설 보기

정답 ②

프로토타이핑 모형은 시제품(prototype)을 만들어 발주자에게 보여주고 요구사항을 반복 반영하는 모델이다. ②"새로운 요구사항 반영이 불가능하다"는 프로토타이핑의 핵심 목적과 정반대라 틀렸다. 프로토타입은 발주자·개발자 공동의 참조 모델이 되고 구현 골격으로도 쓰인다.

💡 프로토타이핑 = 반복 피드백 → 요구사항 변경 가능.

문 002. 자료 흐름도(DFD)의 각 요소별 표기 형태의 연결이 옳지 않은 것은?

  • ① Process : 원
  • ② Data Flow : 화살표
  • ③ Data Store : 삼각형
  • ④ Terminator : 사각형
정답 및 해설 보기

정답 ③

DFD에서 Data Store(자료 저장소)평행선(두 줄)으로 표현한다. ③이 삼각형이라 해서 틀렸다. Process=원, Data Flow=화살표, Terminator=사각형이 맞다.

🔑 암기 — DFD: 처리=원 · 흐름=화살표 · 저장소=평행선 · 단말=사각형.

문 003. 다음 설명에 해당하는 도표는?

시스템의 기능을 여러 개의 고유 모듈들로 분할하여 이들 간의 인터페이스를 계층 구조로 표현한 것으로, 가시적 도표(Visual Table of Contents), 총체적 도표(Overview Diagram), 세부적 도표(Detail Diagram)가 있다.

  • ① Flow Chart
  • ② Burn-down Chart
  • ③ Visual Diagram
  • ④ HIPO Chart
정답 및 해설 보기

정답 ④

시스템 기능을 여러 모듈로 분할해 계층 구조로 표현하고 가시적·총체적·세부적 도표 3종을 갖는 것은 HIPO(Hierarchy Input Process Output)다. Flow Chart는 처리 흐름도, Burn-down Chart는 남은 작업량 진척 차트다.

🔑 암기 — HIPO = 가시적·총체적·세부적 도표.

문 004. 그래픽 표기법을 이용하여 소프트웨어 구성 요소를 모델링하는 럼바우 분석 기법에 포함되지 않는 것은?

  • ① 객체 모델링
  • ② 기능 모델링
  • ③ 동적 모델링
  • ④ 분석 모델링
정답 및 해설 보기

정답 ④

럼바우(Rumbaugh) 객체지향 분석 기법은 객체 모델링·동적 모델링·기능 모델링 3가지다. '분석 모델링'은 없는 용어라 ④가 정답이다.

🔑 암기 — 럼바우 3모델 = 객·동·기(객체·동적·기능).

문 005. XP(eXtreme Programing)의 5가지 가치로 거리가 먼 것은?

  • ① 용기
  • ② 의사소통
  • ③ 정형 분석
  • ④ 피드백
정답 및 해설 보기

정답 ③

XP(eXtreme Programming)의 5가지 가치는 용기·의사소통·피드백·존중·단순성이다. ③'정형 분석'은 수학적 명세 검증 기법으로 XP와 무관하다.

🔑 암기 — XP 5가치 = 용·의·피·존·단.

문 006. 모듈화를 통해 분리된 시스템의 각 기능들로, 서브루틴, 서브시스템, 소프트웨어 내의 프로그램, 작업 단위 등과 같은 의미로 사용되는 것은?

  • ① Module
  • ② Component
  • ③ Things
  • ④ Prototype
정답 및 해설 보기

정답 ①

모듈화로 분리된 시스템의 기능 단위로 서브루틴·서브시스템·프로그램·작업 단위와 같은 뜻으로 쓰이는 것은 Module(모듈)이다. Component=재사용 가능한 독립 배포 단위, Things=UML 구성 요소, Prototype=시제품이다.

💡 분리된 기능 단위 = Module.

문 007. 응용프로그램의 프로시저를 사용하여 원격 프로시저를 로컬 프로시저처럼 호출하는 방식의 미들웨어는?

  • ① WAS(Web Application Server)
  • ② MOM(Message Oriented Middleware)
  • ③ RPC(Remote Procedure Call)
  • ④ ORB(Object Request Broker)
정답 및 해설 보기

정답 ③

원격 컴퓨터의 프로시저(함수)를 로컬 함수처럼 호출하게 해주는 미들웨어는 RPC(Remote Procedure Call)다. 네트워크 통신을 추상화한다.

미들웨어 역할
WAS 웹 애플리케이션 실행 환경
MOM 메시지 큐 기반 비동기 통신
RPC 원격 프로시저 = 로컬 호출
ORB 분산 객체 통신(CORBA 표준)

🔑 암기 — RPC = 원격 프로시저를 로컬처럼 호출.

문 008. 객체지향 기법에서 동일한 형의 특성을 갖는 객체들을 모아 구성한 것으로, 클래스들 사이의 'is instance of' 관계로 설명되는 연관성을 나타내는 용어는?

  • ① 일반화
  • ② 분류화
  • ③ 연관화
  • ④ 집단화
정답 및 해설 보기

정답 ②

'is instance of' 관계로 동일한 형의 객체들을 모아 구성한 것은 분류화(Classification)다. 일반화='is a'(상속), 연관화=객체 간 연결(association), 집단화='part of'(집합)이다.

🔑 암기 — is instance of = 분류화.

문 009. 코드 설계에서 일정한 일련번호를 부여하는 방식의 코드는?

  • ① 연상 코드
  • ② 블록 코드
  • ③ 순차 코드
  • ④ 표의 숫자 코드
정답 및 해설 보기

정답 ③

일정한 일련번호를 차례로 부여하는 방식은 순차 코드(Sequence Code)다. 연상 코드=이름·약어 연상, 블록 코드=구간 분할, 표의 숫자 코드=물리적 수치 표현이다.

💡 일련번호 = 순차 코드.

문 010. UML의 기본 구성 요소가 아닌 것은?

  • ① Things
  • ② Terminal
  • ③ Relationship
  • ④ Diagram
정답 및 해설 보기

정답 ②

UML의 기본 구성 요소는 사물(Things)·관계(Relationship)·다이어그램(Diagram) 3가지다. ②'Terminal'은 UML 구성 요소가 아니다.

🔑 암기 — UML 3요소 = 사물·관계·다이어그램.

문 011. 사용자 인터페이스를 설계할 경우 고려해야 할 가이드라인과 가장 거리가 먼 것은?

  • ① 심미성을 사용성보다 우선하여 설계해야 한다.
  • ② 효율성을 높이게 설계해야 한다.
  • ③ 발생하는 오류를 쉽게 수정할 수 있어야 한다.
  • ④ 사용자에게 피드백을 제공해야 한다.
정답 및 해설 보기

정답 ①

UI 설계는 사용성(Usability)이 심미성(Aesthetics)보다 우선한다. 아무리 예뻐도 쓰기 어려우면 실패라, ①'심미성을 사용성보다 우선'이 원칙에 어긋난다. 효율성·오류 회복·피드백 제공은 올바른 가이드라인이다.

⚠️ 함정 — 사용성 > 심미성(예쁨보다 쓰기 쉬움이 먼저).

문 012. 모듈 안의 구성 요소들이 서로 다른 기능을 같은 시간대에 함께 수행하는 경우의 응집도(Cohesion)는?

  • ① 기능적 응집도
  • ② 시간적 응집도
  • ③ 논리적 응집도
  • ④ 절차적 응집도
정답 및 해설 보기

정답 ②

내용상 서로 관련 없는 기능이라도 '같은 시간대'에 실행된다는 이유로 묶인 경우가 시간적 응집도(Temporal Cohesion)다(예: 초기화 모듈). 기능적 응집도는 단일 기능만 수행(가장 강함), 논리적 응집도는 유사한 성격의 기능을 묶음, 절차적 응집도는 순차적으로 수행되는 기능을 묶음이다.

🔑 암기 — 같은 시간대 실행 = 시간적 응집도. 응집도 강→약: 기능·순차·통신·절차·시간·논리·우연.

문 013. 객체지향 분석 방법론 중 미시적(Micro) 개발 프로세스와 거시적(Macro) 개발 프로세스를 모두 사용하는 분석 방법으로, 클래스와 객체들을 분석 및 식별하고 클래스의 속성과 연산을 정의하는 것은?

  • ① Coad와 Yourdon 방법
  • ② Booch 방법
  • ③ Jacobson 방법
  • ④ Wirfs-Brocks 방법
정답 및 해설 보기

정답 ②

미시적(Micro)·거시적(Macro) 개발 프로세스를 모두 사용해 클래스·객체를 분석·식별하고 속성·연산을 정의하는 것은 Booch 방법이다. Coad-Yourdon=E-R 다이어그램, Jacobson=Use Case, Wirfs-Brock=책임 주도 설계다.

🔑 암기 — 미시+거시 프로세스 = Booch.

문 014. 객체지향 설계 원칙(SOLID) 중, 클라이언트는 자신이 사용하지 않는 메서드(인터페이스)에 의존하지 않아야 한다는 원칙은?

  • ① 단일 책임 원칙(SRP)
  • ② 개방-폐쇄 원칙(OCP)
  • ③ 리스코프 치환 원칙(LSP)
  • ④ 인터페이스 분리 원칙(ISP)
정답 및 해설 보기

정답 ④

클라이언트가 사용하지 않는 인터페이스에 의존하지 않도록 인터페이스를 잘게 분리하라는 원칙이 인터페이스 분리 원칙(ISP; Interface Segregation Principle)이다. SRP=단일 책임, OCP=확장에 열리고 수정에 닫힘, LSP=자식이 부모를 대체 가능, DIP=추상에 의존이다.

🔑 암기 — 안 쓰는 인터페이스 강요 금지 = ISP. SOLID = SRP·OCP·LSP·ISP·DIP.

문 015. 기본 유스케이스 수행 시 특별한 조건을 만족할 때 수행하는 유스케이스는?

  • ① 연관
  • ② 확장
  • ③ 선택
  • ④ 특화
정답 및 해설 보기

정답 ②

기본 유스케이스 수행 중 특별한 조건을 만족할 때만 선택적으로 수행하는 관계는 확장(Extend)이다. '선택'·'특화'는 UML 표준 관계 용어가 아니다.

관계 의미
확장(Extend) 조건 만족 시 선택적 실행
포함(Include) 항상 포함되는 공통 기능
연관(Association) 액터-유스케이스 상호작용

🔑 암기 — 항상 포함=Include · 조건부=Extend.

문 016. GoF(Gangs of Four) 디자인 패턴에서 생성(Creational) 패턴에 해당하는 것은?

  • ① 컴포지트(Composite)
  • ② 어댑터(Adapter)
  • ③ 추상 팩토리(Abstract Factory)
  • ④ 옵서버(Observer)
정답 및 해설 보기

정답 ③

GoF 생성(Creational) 패턴은 추상 팩토리·빌더·팩토리 메서드·프로토타입·싱글턴 5가지다. ③추상 팩토리가 여기 속한다. 컴포지트·어댑터는 구조 패턴, 옵서버는 행위 패턴이다.

🔑 암기 — 생성 5 = 추상팩토리·빌더·팩토리메서드·프로토타입·싱글턴.

문 017. 객체지향 분석 방법론 중 Coad-Yourdon 방법에 해당하는 것은?

  • ① E-R 다이어그램을 사용하여 객체의 행위를 데이터 모델링하는데 초점을 둔 방법이다.
  • ② 객체, 동적, 기능 모델로 나누어 수행하는 방법이다.
  • ③ 미시적 개발 프로세스와 거시적 개발 프로세스를 모두 사용하는 방법이다.
  • ④ Use-Case를 강조하여 사용하는 방법이다.
정답 및 해설 보기

정답 ①

Coad-Yourdon 방법은 E-R 다이어그램으로 객체 행위를 데이터 모델링하는 데 초점을 둔다. ②객체·동적·기능=럼바우(OMT), ③미시·거시=Booch, ④Use-Case=Jacobson이다.

💡 Coad-Yourdon = E-R 다이어그램 중심.

문 018. 다음 설명에 해당하는 소프트웨어 생명주기 모형은?

  • 폭포수 모형과 프로토타입 모형의 장점에 위험 분석(Risk Analysis)을 추가한 모형이다.
  • 계획 수립 → 위험 분석 → 개발 및 검증 → 고객 평가의 과정을 나선을 돌듯 반복한다.
  • ① 폭포수 모형
  • ② 나선형 모형
  • ③ 4GT 모형
  • ④ 프로토타입 모형
정답 및 해설 보기

정답 ②

'위험 분석'을 명시적으로 포함하고 4단계를 나선처럼 반복하는 모형은 나선형(Spiral) 모형이다. 대규모·고위험 프로젝트에 적합하다.

나선형 4단계
계획 수립 → 위험 분석 → 개발·검증 → 고객 평가 (반복)

🔑 암기 — 나선형 = 위험 분석이 핵심. 계·위·개·평 반복.

문 019. 객체지향에서 정보 은닉과 가장 밀접한 관계가 있는 것은?

  • ① Encapsulation
  • ② Class
  • ③ Method
  • ④ Instance
정답 및 해설 보기

정답 ①

데이터와 함수를 하나로 묶고 외부에 감추는 캡슐화(Encapsulation)정보 은닉과 가장 밀접하다. Class=캡슐화의 틀, Method=행위, Instance=실체화된 객체다.

💡 정보 은닉 = 캡슐화.

문 020. UML에서 활용되는 다이어그램의 이름과 설명의 연결이 올바르지 않은 것은?

  • ① 클래스 다이어그램 : 시퀀스 다이어그램과 같이 동작에 참여하는 객체들이 주고받는 메시지를 표현하는데, 메시지뿐만 아니라 객체들 간의 연관까지 표현한다.
  • ② 배치 다이어그램 : 결과물, 프로세스, 컴포넌트 등 물리적 요소들의 위치를 표현한다.
  • ③ 유스케이스 다이어그램 : 사용자의 요구를 분석하는 것으로, 기능 모델링 작업에 사용한다.
  • ④ 활동 다이어그램 : 시스템이 어떤 기능을 수행하는지 객체의 처리 로직이나 조건에 따른 처리의 흐름을 순서에 따라 표현한다.
정답 및 해설 보기

정답 ①

①의 설명(객체들이 주고받는 메시지 + 객체 간 연관 표현)은 커뮤니케이션(협력) 다이어그램에 해당한다. 클래스 다이어그램은 클래스의 속성·메서드·관계(연관·상속·의존)를 정적으로 표현하는 구조 다이어그램이다.

⚠️ 함정 — 클래스=정적 구조 · 커뮤니케이션=객체 간 메시지+연관.


Part Ⅱ 소프트웨어 개발 (문 021~040)

문 021. 제어흐름 그래프가 다음과 같을 때 McCabe의 cyclomatic 수는 얼마인가? (그래프는 노드 6개와 분기·합류 간선 8개로 구성된다)

  • ① 3
  • ② 4
  • ③ 5
  • ④ 6
정답 및 해설 보기

정답 ②

McCabe 순환 복잡도는 V(G) = E − N + 2(E=간선, N=노드)다. E=8, N=6이므로 V(G) = 8 − 6 + 2 = 4다.

🔑 암기 — V(G) = 간선 − 노드 + 2.

문 022. 다음 중 테스트 오라클에 대한 설명으로 옳지 않은 것은?

  • ① 샘플링 오라클 : 특정한 몇몇 테스트 케이스의 입력 값들에 대해서만 기대하는 결과를 제공하는 오라클이다.
  • ② 토탈 오라클 : 모든 테스트 케이스의 입력 값에 대해 기대하는 결과를 제공하는 오라클이다.
  • ③ 휴리스틱 오라클 : 특정 테스트 케이스의 입력 값에 대해 기대하는 결과를 제공하고, 나머지 입력 값들에 대해서는 추정으로 처리하는 오라클이다.
  • ④ 일관성 검사 오라클 : 애플리케이션의 변경이 있을 경우 테스트 케이스의 수행 전과 후의 결과 값이 동일한지를 확인하는 오라클이다.
정답 및 해설 보기

정답 ②

모든 테스트 케이스 입력에 기대 결과를 제공하는 것은 참(True) 오라클이다. ②'토탈 오라클'은 없는 명칭이라 틀렸다. 샘플링=특정 입력만, 휴리스틱=일부 결과+나머지 추정, 일관성 검사=변경 전후 비교다.

🔑 암기 — 오라클 4종 = 참·샘플링·휴리스틱·일관성 검사.

문 023. 소프트웨어 공학의 기본 원칙이라고 볼 수 없는 것은?

  • ① 품질 높은 소프트웨어 상품 개발
  • ② 지속적인 검증 시행
  • ③ 결과에 대한 명확한 기록 유지
  • ④ 최대한 많은 인력 투입
정답 및 해설 보기

정답 ④

소프트웨어 공학의 기본 원칙은 품질 높은 상품 개발·지속적 검증·명확한 기록 유지다. ④'최대한 많은 인력 투입'은 오히려 Brooks의 법칙(지연된 프로젝트에 인력을 더하면 더 늦어진다)에 어긋난다.

⚠️ 함정 — SW 공학 ≠ 대규모 인력 투입.

문 024. 소프트웨어 형상 관리에서 관리 항목에 포함되지 않는 것은?

  • ① 운영 및 설치 지침서
  • ② 프로젝트 개발 비용
  • ③ 소스 코드
  • ④ 프로젝트 요구 분석서
정답 및 해설 보기

정답 ②

형상 관리 항목은 소스 코드·설계 문서·운영/설치 지침서·요구 분석서·테스트 계획서 등이다. ②'프로젝트 개발 비용'은 형상 관리가 아니라 프로젝트 관리 영역이다.

💡 형상 관리 = 산출물 버전 관리(비용 ✗).

문 025. 객체지향 개념을 활용한 소프트웨어 구현과 관련된 설명 중 틀린 것은?

  • ① 객체(Object)란 필요한 자료 구조와 수행되는 함수들을 가진 하나의 독립된 존재이다.
  • ② JAVA에서 정보은닉(Information Hiding)을 표기할 때 private의 의미는 '공개'이다.
  • ③ 상속(Inheritance)은 개별 클래스를 상속 관계로 묶음으로써 클래스 간의 체계화된 전체 구조를 파악하기 쉽다는 장점이 있다.
  • ④ 같은 클래스에 속하는 개개의 객체이자 하나의 클래스에서 생성된 객체를 인스턴스(Instance)라고 한다.
정답 및 해설 보기

정답 ②

Java에서 private비공개(은닉)를 뜻하며 해당 클래스 내부에서만 접근할 수 있다. ②가 private을 '공개'라 해서 틀렸다 — 공개는 public이다. 객체·상속·인스턴스 설명은 옳다.

⚠️ 함정 — private=비공개 · public=공개.

문 026. 다음과 같이 레코드가 구성되어 있을 때, 이진 검색 방법으로 14를 찾을 경우 비교되는 횟수는? [ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 ]

  • ① 2
  • ② 3
  • ③ 4
  • ④ 5
정답 및 해설 보기

정답 ②

1~15 정렬 배열에서 14를 이진 검색하면 1회 mid=8(14>8→우측), 2회 mid=12(14>12→우측), 3회 mid=14(일치)로 3회 비교한다. 실제 실행으로도 비교 3회가 확인된다.

💡 이진 검색 = 매 비교마다 후보 절반 제거.

문 027. 화이트박스 테스트의 검증 기준(Coverage)에 대한 설명으로 옳지 않은 것은?

  • ① 구문(문장) 커버리지는 모든 실행 문장을 적어도 한 번 실행한다.
  • ② 결정(분기) 커버리지는 모든 분기의 참·거짓을 한 번씩 수행한다.
  • ③ 조건 커버리지는 각 조건식의 참·거짓을 한 번씩 수행한다.
  • ④ 구문 커버리지는 결정 커버리지보다 더 강한(엄격한) 기준이다.
정답 및 해설 보기

정답 ④

커버리지 강도는 구문 < 결정(분기) < 조건/결정 순으로 강해진다. 구문 커버리지가 가장 약한 기준이므로 '결정보다 강하다'는 ④는 틀렸다.

약함 → 강함
구문 → 결정(분기) → 조건 → 조건/결정

🔑 암기 — 커버리지 강도: 구문 < 결정 < 조건/결정.

문 028. 소프트웨어 상향식 통합 테스트에서, 아직 개발되지 않은 상위 모듈을 대신하여 하위 모듈을 호출·구동하는 임시 모듈은?

  • ① 스텁(Stub)
  • ② 드라이버(Driver)
  • ③ 목업(Mockup)
  • ④ 프로토타입(Prototype)
정답 및 해설 보기

정답 ②

상향식 통합에서 아직 없는 상위 모듈 역할을 대신해 하위 모듈을 호출·구동하는 임시 모듈이 드라이버(Driver)다. 반대로 하향식에서 하위 모듈 대신 쓰는 것이 스텁(Stub)이다.

통합 방식 임시 모듈 대신하는 것
상향식 드라이버 상위 모듈
하향식 스텁 하위 모듈

🔑 암기 — 상향식 Driver(위 대신), 하향식 Stub(아래 대신).

문 029. 다음 트리를 Preorder 운행법으로 운행할 경우 가장 먼저 탐색되는 것은?

  • ① A
  • ② B
  • ③ D
  • ④ G
정답 및 해설 보기

정답 ①

전위 순회(Preorder)루트 → 왼쪽 → 오른쪽 순서라 루트인 A가 가장 먼저 탐색된다. 중위(Inorder)는 왼→루→오, 후위(Postorder)는 왼→오→루다.

🔑 암기 — Preorder = 루트 먼저.

문 030. 해싱(Hashing)에서 서로 다른 키가 같은 버킷에 배정되는 충돌(Collision)을 해결하는 방법이 아닌 것은?

  • ① 체이닝(Chaining)
  • ② 개방 주소법(Open Addressing)
  • ③ 선형 조사(Linear Probing)
  • ④ 이진 탐색(Binary Search)
정답 및 해설 보기

정답 ④

이진 탐색은 정렬된 데이터에서 값을 찾는 탐색 기법으로, 해싱 충돌 해결과 무관하다. 충돌 해결법에는 체이닝, 개방 주소법(선형 조사·이차 조사·이중 해싱) 등이 있다.

충돌 해결
체이닝(연결 리스트) / 개방 주소법(선형·이차 조사, 이중 해싱)

🔑 암기 — 충돌 해결 = 체이닝 or 개방 주소법. 이진 탐색은 검색 기법.

문 031. 다음 전위식(prefix)을 후위식(postfix)으로 옳게 표현한 것은? - / * A + B C D E

  • ① A B C + D / * E -
  • ② A B * C + D / E -
  • ③ A B * C + D / * E -
  • ④ A B C + * D / E -
정답 및 해설 보기

정답 ④

전위식 - / * A + B C D E를 후위식으로 바꾸면 * A (+ B C)A B C + *, / (…) DA B C + * D /, - (…) EA B C + * D / E -다. 각 연산자를 피연산자 쌍의 뒤로 옮기면 된다.

💡 전위→후위: 연산자를 피연산자 뒤로.

문 032. 목적에 따른 테스트 방식 중 시스템에 과도한 정보량이나 빈도 등을 부과하여 과부하 시에도 소프트웨어가 정상적으로 실행되는지를 확인하는 테스트는?

  • ① 회복(Recovery) 테스트
  • ② 강도(Stress) 테스트
  • ③ 성능(Performance) 테스트
  • ④ 회귀(Regression) 테스트
정답 및 해설 보기

정답 ②

과도한 정보량·빈도를 부과해 과부하 상태에서도 정상 작동하는지 보는 것은 강도(Stress) 테스트다. 회복=장애 후 복구, 성능=응답 시간 측정, 회귀=변경 후 기존 기능 확인이다.

🔑 암기 — 과부하 → 강도(Stress) 테스트.

문 033. 반정규화(Denormalization) 유형 중 중복 테이블을 추가하는 방법에 해당하지 않는 것은?

  • ① 빌드 테이블의 추가
  • ② 집계 테이블의 추가
  • ③ 진행 테이블의 추가
  • ④ 특정 부분만을 포함하는 테이블 추가
정답 및 해설 보기

정답 ①

반정규화의 중복 테이블 추가 유형은 집계 테이블·진행 테이블·특정 부분만 포함하는 테이블이다. ①'빌드 테이블'은 없는 유형이다.

💡 중복 테이블 추가 = 집계·진행·부분.

문 034. 소프트웨어를 수정한 뒤, 그 변경이 기존에 정상 동작하던 기능에 새로운 결함을 유발하지 않았는지 확인하기 위해 다시 수행하는 테스트는?

  • ① 회귀 테스트(Regression Test)
  • ② 스트레스 테스트(Stress Test)
  • ③ 알파 테스트(Alpha Test)
  • ④ 인수 테스트(Acceptance Test)
정답 및 해설 보기

정답 ①

코드를 수정한 뒤 그 변경이 기존 기능을 깨뜨리지 않았는지 재검증하는 것이 회귀 테스트다. 이미 통과했던 테스트 케이스를 다시 돌려 부작용(side effect)을 잡는다.

🔑 암기 — 회귀 테스트 = 고친 뒤 '옛 기능 안 깨졌나' 재확인.

문 035. 알파, 베타 테스트와 가장 밀접한 연관이 있는 테스트 단계는?

  • ① 단위 테스트
  • ② 인수 테스트
  • ③ 통합 테스트
  • ④ 시스템 테스트
정답 및 해설 보기

정답 ②

알파·베타 테스트인수 테스트(Acceptance Test)의 하위 유형이다. 알파는 개발자 환경에서 사용자가, 베타는 실제 사용자 환경에서 수행한다. 단위·통합·시스템 테스트와 구분된다.

💡 알파·베타 = 인수 테스트.

문 036. 알고리즘의 시간 복잡도를 나타내는 빅오(Big-O) 표기 중, 입력 크기 n이 커질수록 수행 시간이 가장 빠르게 증가(비효율)하는 것은?

  • ① O(1)
  • ② O(log n)
  • ③ O(n)
  • ④ O(n²)
정답 및 해설 보기

정답 ④

n이 커질수록 증가 속도는 O(1) < O(log n) < O(n) < O(n log n) < O(n²) < O(2ⁿ) 순이다. 보기 중 O(n²)이 가장 빠르게 증가하므로 가장 비효율적이다.

느린(효율) → 빠른(비효율) 증가
O(1) < O(log n) < O(n) < O(n log n) < O(n²) < O(2ⁿ)

🔑 암기 — 커질수록 부담 순: 1 < logn < n < nlogn < n² < 2ⁿ.

문 037. White Box Testing에 대한 설명으로 옳지 않은 것은?

  • ① Base Path Testing, Boundary Value Analysis가 대표적인 기법이다.
  • ② Source Code의 모든 문장을 한 번 이상 수행함으로써 진행된다.
  • ③ 모듈 안의 작동을 직접 관찰할 수 있다.
  • ④ 산출물의 각 기능별로 적절한 프로그램의 제어 구조에 따라 선택, 반복 등의 부분들을 수행함으로써 논리적 경로를 점검한다.
정답 및 해설 보기

정답 ①

경계값 분석(Boundary Value Analysis)블랙박스 기법이라 화이트박스 대표 기법이 아니라 ①이 틀렸다. 화이트박스는 기초 경로 검사(Base Path)·조건 검사·루프 검사 등으로 모든 문장을 한 번 이상 수행하며 내부 논리 경로를 점검한다.

⚠️ 함정 — 경계값 분석 = 블랙박스(화이트박스 ✗).

문 038. 다음 그래프에서 정점 A를 선택하여 깊이 우선 탐색(DFS)으로 운행한 결과는? 그래프 — 정점 A·B·C·D·E·F·G. 간선: A-B, A-C, A-D, B-E, E-F, F-G, G-C, C-D.

  • ① ABECDFG
  • ② ABECFDG
  • ③ ABCDEFG
  • ④ ABEFGCD
정답 및 해설 보기

정답 ④

정점 A에서 인접 정점을 알파벳 순으로 방문하는 DFS는 A→B→E→F→G→C→D다. B에서 E로 깊이 들어간 뒤 F→G를 지나 되돌아와 미방문 C→D를 방문한다. 실제 탐색으로도 ABEFGCD가 확인된다.

💡 DFS = 한 방향으로 끝까지 깊이 우선.

문 039. 정점이 5개인 방향 그래프가 가질 수 있는 최대 간선 수는? (단, 자기 간선과 중복 간선은 배제한다.)

  • ① 7개
  • ② 10개
  • ③ 20개
  • ④ 27개
정답 및 해설 보기

정답 ③

정점 n개 방향 그래프에서 자기·중복 간선을 빼면 최대 간선 수는 n(n−1)이다. 방향이라 A→B와 B→A를 따로 세기 때문이다. n=5면 5×4 = 20개다. (무방향이면 n(n−1)/2 = 10개)

🔑 암기 — 방향 최대 간선 = n(n−1) · 무방향 = n(n−1)/2.

문 040. 구현 단계에서의 작업 절차를 순서에 맞게 나열한 것은? ㉠ 코딩한다. ㉡ 코딩작업을 계획한다. ㉢ 코드를 테스트한다. ㉣ 컴파일한다.

  • ① ㉠ → ㉡ → ㉢ → ㉣
  • ② ㉡ → ㉠ → ㉣ → ㉢
  • ③ ㉢ → ㉠ → ㉣ → ㉡
  • ④ ㉡ → ㉢ → ㉠ → ㉣
정답 및 해설 보기

정답 ②

구현 단계는 코딩 계획(㉡) → 코딩(㉠) → 컴파일(㉣) → 코드 테스트(㉢) 순이다. 계획을 세우고 코딩한 뒤 컴파일로 문법 오류를 잡고 마지막에 테스트한다.

💡 구현 = 계획→코딩→컴파일→테스트.


Part Ⅲ 데이터베이스 구축 (문 041~060)

문 041. 애트리뷰트가 가질 수 있는 원자값들의 집합을 의미하는 것은?

  • ① 도메인
  • ② 튜플
  • ③ 엔티티
  • ④ 다형성
정답 및 해설 보기

정답 ①

애트리뷰트가 가질 수 있는 원자값들의 집합도메인(Domain)이다. 튜플=행(레코드), 엔티티=개체, 다형성=객체지향 개념이다.

💡 도메인 = 속성의 원자값 집합.

문 042. A1, A2, A3 3개 속성을 갖는 한 릴레이션에서 A1의 도메인은 3개 값, A2의 도메인은 2개 값, A3의 도메인은 4개 값을 갖는다. 이 릴레이션에 존재할 수 있는 가능한 튜플(Tuple)의 최대 수는?

  • ① 24
  • ② 12
  • ③ 8
  • ④ 9
정답 및 해설 보기

정답 ①

가능한 튜플의 최대 수는 각 속성 도메인 값의 이다. 3 × 2 × 4 = 24개다.

💡 최대 튜플 수 = 도메인 크기의 곱.

문 043. 제 3정규형에서 보이스코드 정규형(BCNF)으로 정규화하기 위한 작업은?

  • ① 원자 값이 아닌 도메인을 분해
  • ② 부분 함수 종속 제거
  • ③ 이행 함수 종속 제거
  • ④ 결정자가 후보키가 아닌 함수 종속 제거
정답 및 해설 보기

정답 ④

제3정규형에서 결정자가 후보키가 아닌 함수 종속을 제거하면 BCNF가 된다. 원자값 분해=1NF, 부분 함수 종속 제거=2NF, 이행 함수 종속 제거=3NF다.

🔑 암기 — BCNF = 모든 결정자가 후보키.

문 044. 릴레이션에 있는 모든 튜플에 대해 유일성은 만족시키지만 최소성은 만족시키지 못하는 키는?

  • ① 후보키
  • ② 기본키
  • ③ 슈퍼키
  • ④ 외래키
정답 및 해설 보기

정답 ③

유일성은 만족하지만 최소성은 만족하지 못하는 키는 슈퍼키(Super Key)다. 후보키·기본키는 유일성+최소성을 모두 충족하고, 외래키는 다른 테이블을 참조하는 키다.

🔑 암기 — 슈퍼키 = 유일성 O · 최소성 X.

문 045. 릴레이션에 R1에 속한 애튜리뷰트의 조합인 외래키를 변경하려면 이를 참조하고 있는 R2의 릴레이션의 기본키도 변경해야 하는데 이를 무엇이라고 하는가?

  • ① 정보 무결성
  • ② 고유 무결성
  • ③ 키 제약성
  • ④ 참조 무결성
정답 및 해설 보기

정답 ④

외래키와 참조되는 릴레이션의 기본키가 일관성을 유지하도록 하는 규칙은 참조 무결성(Referential Integrity)이다. '정보 무결성'·'고유 무결성'은 표준 분류가 아니고, 키 제약성은 기본키 고유성에 해당한다.

💡 외래키 ↔ 기본키 일관성 = 참조 무결성.

문 046. 관계형 데이터베이스의 구성 요소에 대한 설명으로 틀린 것은?

  • ① 속성을 구성하는 값에는 동일한 값이 있을 수 있다.
  • ② 한 릴레이션에 포함된 튜플은 모두 상이하다.
  • ③ 한 릴레이션에는 동일한 이름의 속성이 있을 수 있다.
  • ④ 한 릴레이션을 구성하는 속성 사이에는 순서가 없다.
정답 및 해설 보기

정답 ③

한 릴레이션 내 속성명은 고유해야 하므로 ③'동일한 이름의 속성이 있을 수 있다'가 틀렸다. 속성 값은 중복 가능, 튜플은 모두 상이, 속성 사이 순서는 없다.

🔑 암기 — 릴레이션 = 속성명 고유 · 튜플 상이 · 속성 순서 무관.

문 047. DML에 해당하는 것으로만 나열된 것은?

㉠ SELECT ㉡ UPDATE ㉢ INSERT ㉣ GRANT

  • ① ㉠, ㉡, ㉢
  • ② ㉠, ㉡, ㉣
  • ③ ㉠, ㉢, ㉣
  • ④ ㉠, ㉡, ㉢, ㉣
정답 및 해설 보기

정답 ①

DML(데이터 조작어)은 SELECT·INSERT·UPDATE·DELETE다. ㉠SELECT·㉡UPDATE·㉢INSERT가 DML이고, ㉣GRANT는 권한을 부여하는 DCL(데이터 제어어)이라 제외된다.

🔑 암기 — DML=SELECT·INSERT·UPDATE·DELETE · GRANT=DCL.

문 048. 트랜잭션의 특성(ACID) 중, 트랜잭션의 연산은 데이터베이스에 모두 반영되거나 전혀 반영되지 않아야 한다는 성질은?

  • ① 원자성(Atomicity)
  • ② 일관성(Consistency)
  • ③ 고립성(Isolation)
  • ④ 지속성(Durability)
정답 및 해설 보기

정답 ①

트랜잭션의 연산이 모두 반영되거나(All) 전혀 반영되지 않아야(Nothing) 한다는 성질이 원자성(Atomicity)이다. 일관성은 실행 전후 무결성 유지, 고립성은 병행 트랜잭션 간 간섭 차단, 지속성은 완료된 결과의 영구 반영이다.

🔑 암기 — ACID = 원자성·일관성·고립성·지속성.

문 049. 관계 데이터베이스인 테이블 R1에 대한 아래 SQL 문의 실행결과로 옳은 것은?

[R1]

학번 이름 학년 학과 주소
1000 홍길동 1 컴퓨터공학 서울
2000 김철수 1 전기공학 경기
3000 강남길 2 전기공학 경기
4000 오말자 2 컴퓨터공학 경기
5000 장미화 3 전기공학 서울

[SQL문]

SQL
SELECT DISTINCT 학년 FROM R1;
  • ① 학년 컬럼만 있고 값이 1, 1, 2, 2, 3으로 5행 출력
  • ② 학년 컬럼만 있고 값이 1, 2, 3으로 3행 출력
  • ③ 이름, 학년 컬럼이 있고 홍길동/1, 김철수/1, 강남길/2, 오말자/2, 장미화/3으로 5행 출력
  • ④ 이름, 학년 컬럼이 있고 홍길동/1, 강남길/2, 장미화/3으로 3행 출력
정답 및 해설 보기

정답 ②

SELECT DISTINCT 학년 FROM R1학년 컬럼만 선택한 뒤 중복을 제거한다. 학년 원본 1,1,2,2,3(5건)에서 중복을 없애면 1,2,3의 3행이 남는다. 실제 실행으로도 3행이 확인된다.

🔑 암기 — SELECT=컬럼 선택 · DISTINCT=중복 제거.

문 050. 한 릴레이션 스키마가 4개 속성, 2개 후보키 그리고 그 스키마의 대응 릴레이션 인스턴스가 7개 튜플을 갖는다면 그 릴레이션의 차수(Degree)는?

  • ① 1
  • ② 2
  • ③ 4
  • ④ 7
정답 및 해설 보기

정답 ③

릴레이션의 차수(Degree)는 속성(Attribute)의 수다. 속성이 4개이므로 차수는 4다. 후보키 수(2)나 튜플 수(7=카디널리티)와는 무관하다.

🔑 암기 — 차수(Degree)=속성 수 · 카디널리티=튜플 수.

문 051. 데이터베이스 로그(log)를 필요로 하는 회복 기법은?

  • ① 즉각 갱신 기법
  • ② 대수적 코딩 방법
  • ③ 타임 스탬프 기법
  • ④ 폴딩 기법
정답 및 해설 보기

정답 ①

트랜잭션 완료 전에도 변경을 DB에 반영하고 로그(log)로 회복하는 기법은 즉각 갱신(Immediate Update)이다. 대수적 코딩=오류 검출, 타임 스탬프=병행제어, 폴딩=해싱 기법이다.

💡 로그 기반 회복 = 즉각 갱신.

문 052. 이행적 함수 종속 관계를 의미하는 것은?

  • ① A → B이고 B → C일 때, A → C를 만족하는 관계
  • ② A → B이고 B → C일 때, C → A를 만족하는 관계
  • ③ A → B이고 B → C일 때, B → A를 만족하는 관계
  • ④ A → B이고 B → C일 때, C → B를 만족하는 관계
정답 및 해설 보기

정답 ①

이행적 함수 종속은 A→B이고 B→C일 때 A→C가 성립하는 관계로, 제3정규형(3NF)에서 제거 대상이다.

🔑 암기 — 이행 종속 = A→B→C ⇒ A→C.

문 053. 다음 릴레이션의 Degree와 Cardinality는?

학번 이름 학년 학과
13001 홍길동 3학년 전기
13002 이순신 4학년 기계
13003 강감찬 2학년 컴퓨터
  • ① Degree : 4, Cardinality : 3
  • ② Degree : 3, Cardinality : 4
  • ③ Degree : 3, Cardinality : 12
  • ④ Degree : 12, Cardinality : 3
정답 및 해설 보기

정답 ①

Degree(차수)는 속성(열) 수 = 학번·이름·학년·학과 = 4, Cardinality(기수)는 튜플(행) 수 = 3명 = 3이다.

🔑 암기 — Degree=열(속성) 수 · Cardinality=행(튜플) 수.

문 054. 키는 개체 집합에서 고유하게 개체를 식별할 수 있는 속성이다. 데이터베이스에서 사용되는 키의 종류에 대한 설명으로 옳지 않은 것은?

  • ① 후보키는 개체들을 고유하게 식별할 수 있는 속성이다.
  • ② 슈퍼키는 한 개 이상의 속성들의 집합으로 구성된 키이다.
  • ③ 외래키는 다른 테이블의 기본키로 사용되는 속성이다.
  • ④ 대체키는 슈퍼키 중에서 기본키를 제외한 나머지 키를 의미한다.
정답 및 해설 보기

정답 ④

대체키(Alternate Key)후보키 중 기본키를 제외한 나머지다. ④가 '슈퍼키 중'이라 해서 틀렸다. 후보키=고유 식별, 슈퍼키=1개 이상 속성 집합, 외래키=타 테이블 기본키 참조는 옳다.

⚠️ 함정 — 대체키 = 후보키 − 기본키(슈퍼키 아님).

문 055. 데이터베이스에 영향을 주는 생성, 읽기, 갱신, 삭제 연산으로 프로세스와 테이블 간에 매트릭스를 만들어서 트랜잭션을 분석하는 것은?

  • ① CASE 분석
  • ② 일치 분석
  • ③ CRUD 분석
  • ④ 연관성 분석
정답 및 해설 보기

정답 ③

생성·읽기·갱신·삭제 연산으로 프로세스와 테이블 간 매트릭스를 만들어 트랜잭션을 분석하는 것은 CRUD 분석이다.

🔑 암기 — CRUD 분석 = 프로세스 × 테이블 매트릭스.

문 056. 정규화를 거치지 않아 발생하게 되는 이상(anomaly) 현상의 종류에 대한 설명으로 옳지 않은 것은?

  • ① 삭제 이상이란 릴레이션에서 한 튜플을 삭제할 때 의도와는 상관없는 값들로 함께 삭제되는 연쇄 삭제 현상이다.
  • ② 삽입 이상이란 릴레이션에서 데이터를 삽입할 때 의도와는 상관없이 원하지 않는 값들로 함께 삽입되는 현상이다.
  • ③ 갱신 이상이란 릴레이션에서 튜플에 있는 속성값을 갱신할 때 일부 튜플의 정보만 갱신되어 정보에 모순이 생기는 현상이다.
  • ④ 종속 이상이란 하나의 릴레이션에 하나 이상의 함수적 종속성이 존재하는 현상이다.
정답 및 해설 보기

정답 ④

정규화 미적용 시 발생하는 이상은 삽입·삭제·갱신 이상 3가지다. ④'종속 이상'은 표준 유형이 아니며, 함수적 종속이 존재하는 것 자체는 이상 현상이 아니다.

🔑 암기 — 이상 3종 = 삽입·삭제·갱신.

문 057. 3NF에서 BCNF가 되기 위한 조건은?

  • ① 이행적 함수 종속 제거
  • ② 부분적 함수 종속 제거
  • ③ 다치 종속 제거
  • ④ 결정자이면서 후보키가 아닌 것 제거
정답 및 해설 보기

정답 ④

3NF에서 BCNF가 되려면 결정자이면서 후보키가 아닌 것을 제거해 모든 결정자가 후보키가 되게 한다. 이행적 종속 제거=3NF, 부분 종속 제거=2NF, 다치 종속 제거=4NF다.

🔑 암기 — BCNF = 모든 결정자 = 후보키.

문 058. 다음 관계형 데이터 모델에 대한 설명으로 옳은 것은?

고객ID 고객이름 거주도시
S1 홍길동 서울
S2 이정재 인천
S3 신보라 인천
S4 김흥국 서울
S5 도요새 용인
  • ① Relation 3개, Attribute 3개, Tuple 5개
  • ② Relation 3개, Attribute 5개, Tuple 3개
  • ③ Relation 1개, Attribute 5개, Tuple 3개
  • ④ Relation 1개, Attribute 3개, Tuple 5개
정답 및 해설 보기

정답 ④

표 하나 = Relation 1개, 열(고객ID·고객이름·거주도시) = Attribute 3개, 행(S1~S5) = Tuple 5개다. Relation=테이블, Attribute=열, Tuple=행을 뜻한다.

💡 Relation=테이블 · Attribute=열 · Tuple=행.

문 059. 다음 관계 대수식을 SQL 질의로 옳게 표현한 것은?

π이름(σ학과='교육'(학생))

  • ① SELECT 학생 FROM 이름 WHERE 학과 = '교육';
  • ② SELECT 이름 FROM 학생 WHERE 학과 = '교육';
  • ③ SELECT 교육 FROM 학과 WHERE 이름 = '학생';
  • ④ SELECT 학과 FROM 학생 WHERE 이름 = '교육';
정답 및 해설 보기

정답 ②

관계 대수에서 σ(선택)=WHERE, π(프로젝션)=SELECT다. σ학과='교육'(학생) → WHERE 학과='교육', π이름 → SELECT 이름이므로 SELECT 이름 FROM 학생 WHERE 학과='교육'이다.

🔑 암기 — σ=WHERE(선택) · π=SELECT(투영).

문 060. 데이터베이스 설계 단계 중 저장 레코드 양식 설계, 레코드 집중의 분석 및 설계, 접근 경로 설계와 관계되는 것은?

  • ① 논리적 설계
  • ② 요구 조건 분석
  • ③ 개념적 설계
  • ④ 물리적 설계
정답 및 해설 보기

정답 ④

저장 레코드 양식 설계·레코드 집중 분석·접근 경로 설계와 관계되는 단계는 물리적 설계다. 논리적 설계=데이터 모델 변환, 개념적 설계=E-R 모델, 요구 조건 분석=요구사항 수집이다.

💡 저장 구조·접근 경로 = 물리적 설계.


Part Ⅳ 프로그래밍 언어 활용 (문 061~080)

문 061. 다음 파이썬(Python) 프로그램이 실행되었을 때의 결과는?

Python
def cs(n):
    s = 0
    for num in range(n+1):
        s += num
    return s

print(cs(11))
  • ① 45
  • ② 55
  • ③ 66
  • ④ 78
정답 및 해설 보기

정답 ③

cs(11)은 0+1+2+…+11을 더한다. range(n+1)이 0부터 n까지(11 포함)라 합은 11×12/2 = 66이다. 이 코드의 출력은 66이다.

💡 range(n+1) = 0부터 n까지(끝값 포함).

문 062. 다음 파이썬 코드에서 '53t44'를 입력했을 때 출력 결과는?

Python
a, b = map(int, input().split("t"));
print(a, b)
  • ① 53 t 44
  • ② 53t44
  • ③ 53 44
  • ④ 53, 44
정답 및 해설 보기

정답 ③

input().split("t")가 '53t44'를 '53'과 '44'로 나누고, map(int, …)로 정수 변환하면 a=53, b=44다. print(a, b)는 두 값을 공백으로 구분해 출력하므로 결과는 53 44다.

💡 print(a, b) = 값 사이에 공백.

문 063. 기억공간이 15K, 23K, 22K, 21K 순으로 빈 공간이 있을 때 기억장치 배치 전략으로 "First Fit"을 사용하여 17K의 프로그램을 적재할 경우 내부 단편화의 크기는 얼마인가?

  • ① 5K
  • ② 6K
  • ③ 7K
  • ④ 8K
정답 및 해설 보기

정답 ②

First Fit은 빈 공간을 순서대로 훑어 요구 크기(17K) 이상인 첫 번째 영역에 적재한다. 15K는 부족해 건너뛰고 23K에 적재되므로 내부 단편화는 23 − 17 = 6K다.

빈 공간 First Fit 판정
15K 17K 부족 → 건너뜀
23K 적재 → 단편화 23−17 = 6K
22K·21K 검사 전 종료

🔑 암기 — First Fit = 처음 맞는 곳.

문 064. 다음 C 언어 프로그램이 실행되었을 때, 실행 결과는?

c
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char* argv[]) {
     char str1[20] = "KOREA";
     char str2[20] = "LOVE";
     char* p1 = NULL;
     char* p2 = NULL;
     p1 = str1;
     p2 = str2;
     str1[1] = p2[2];
     str2[3] = p1[4];
     strcat(str1, str2);
     printf("%c", *(p1 + 2));
     return 0;
}
  • ① E
  • ② V
  • ③ R
  • ④ O
정답 및 해설 보기

정답 ③

str1="KOREA", str2="LOVE"에서 str1[1]=p2[2]='V' → "KVREA", str2[3]=p1[4]='A' → "LOVA"가 된다. strcat 후 str1="KVREALOVA"이고 *(p1+2)=str1[2]='R'이다. 이 코드의 출력은 R이다.

💡 str1[2]는 바뀌지 않아 R 유지.

문 065. 메모리 관리 기법 중 Worst Fit 방법을 사용할 경우 10K 크기의 프로그램 실행을 위해서는 어느 부분에 할당되는가?

영역 번호 메모리 크기 사용 여부
NO.1 8K FREE
NO.2 12K FREE
NO.3 10K IN USE
NO.4 20K IN USE
NO.5 16K FREE
  • ① NO.2
  • ② NO.3
  • ③ NO.4
  • ④ NO.5
정답 및 해설 보기

정답 ④

Worst Fit은 가용 공간 중 가장 큰 곳에 배치한다. FREE 영역은 NO.1(8K)·NO.2(12K)·NO.5(16K)인데, 10K 이상이면서 가장 큰 NO.5(16K)에 할당된다. NO.1은 부족, NO.3·NO.4는 사용 중이다.

🔑 암기 — Worst Fit = 가장 큰 빈 공간.

문 066. 3개의 페이지 프레임을 갖는 시스템에서 페이지 참조 순서가 1, 2, 1, 0, 4, 1, 3 일 경우 FIFO 알고리즘에 의한 페이지 교체의 경우 프레임의 최종 상태는?

  • ① 1, 2, 0
  • ② 2, 4, 3
  • ③ 1, 4, 2
  • ④ 4, 1, 3
정답 및 해설 보기

정답 ④

FIFO 페이지 교체를 참조열 1,2,1,0,4,1,3에 적용하면 [1]→[1,2]→hit→[1,2,0]→[4,2,0](1 교체)→[4,1,0](2 교체)→[4,1,3](0 교체)로 최종 프레임은 4,1,3이다.

💡 FIFO = 가장 먼저 들어온 페이지부터 교체.

문 067. 운영체제의 가상기억장치 관리에서 프로세스가 일정 시간동안 자주 참조하는 페이지들의 집합을 의미하는 것은?

  • ① Locality
  • ② Deadlock
  • ③ Thrashing
  • ④ Working Set
정답 및 해설 보기

정답 ④

프로세스가 일정 시간 동안 자주 참조하는 페이지들의 집합워킹 셋(Working Set)이다. Locality=참조 지역성, Deadlock=교착 상태, Thrashing=과도한 페이지 교체로 인한 성능 저하다.

💡 자주 참조하는 페이지 집합 = Working Set.

문 068. 다음 C 언어 프로그램이 실행되었을 때, 실행 결과는?

c
#include <stdio.h>
struct st {
     int a;
     int c[10];
};
int main(int argc, char* argv[]) {
     int i = 0;
     struct st ob1;
     struct st ob2;
     ob1.a = 0;
     ob2.a = 0;
     for (i = 0; i < 10; i++) {
          ob1.c[i] = i;
          ob2.c[i] = ob1.c[i] + i;
     }
     for (i = 0; i < 10; i = i + 2) {
          ob1.a = ob1.a + ob1.c[i];
          ob2.a = ob2.a + ob2.c[i];
     }
     printf("%d", ob1.a + ob2.a);
     return 0;
}
  • ① 30
  • ② 60
  • ③ 80
  • ④ 120
정답 및 해설 보기

정답 ②

ob1.c[i]=i, ob2.c[i]=2i다. 짝수 인덱스(0,2,4,6,8)만 더하면 ob1.a=0+2+4+6+8=20, ob2.a=0+4+8+12+16=40이라 합은 60이다. 이 코드의 출력은 60이다.

💡 ob1.a(20) + ob2.a(40) = 60.

문 069. 교착상태가 발생할 수 있는 조건이 아닌 것은?

  • ① Mutual exclusion
  • ② Hold and wait
  • ③ Non-preemption
  • ④ Linear wait
정답 및 해설 보기

정답 ④

교착상태의 4대 필요조건은 상호 배제·점유와 대기·비선점·환형 대기다. ④'Linear wait(선형 대기)'는 없는 조건이다.

🔑 암기 — 교착 = 상호배제·점유대기·비선점·환형대기.

문 070. 다음 Java 프로그램이 실행되었을 때, 실행 결과는?

Java
public class Test {
    public static void main(String args[]) {
         String str = "Message Queueing";
         char s[] = str.toCharArray();
         int r = 0;
         for (char c:s)
              if (c == 'e')
                   r++;
         System.out.print(r);
    }
}
  • ① 2
  • ② 3
  • ③ 4
  • ④ 5
정답 및 해설 보기

정답 ③

"Message Queueing"을 한 글자씩 순회하며 'e'를 센다. M-e-s-s-a-g-e-Q-u-e-u-e-i-n-g로 'e'는 4개라 출력은 4다.

💡 for-each로 문자 순회 · 'e' 4회.

문 071. JAVA의 예외(exception)와 관련한 설명으로 틀린 것은?

  • ① 문법 오류로 인해 발생한 것
  • ② 오동작이나 결과에 악영향을 미칠 수 있는 실행 시간 동안에 발생한 오류
  • ③ 배열의 인덱스가 그 범위를 넘어서는 경우 발생하는 오류
  • ④ 존재하지 않는 파일을 읽으려고 하는 경우에 발생하는 오류
정답 및 해설 보기

정답 ①

문법 오류(Syntax Error)는 컴파일 시점에 잡히는 오류라 예외(Exception)가 아니라 ①이 틀렸다. 예외는 실행 시간에 발생하며, 배열 인덱스 초과·존재하지 않는 파일 읽기 등이 해당한다.

⚠️ 함정 — 예외 = 실행 시간 오류(문법 오류 ✗).

문 072. JAVA에서 변수와 자료형에 대한 설명으로 틀린 것은?

  • ① 변수는 어떤 값을 주기억장치에 기억하기 위해서 사용하는 공간이다.
  • ② char 자료형은 한 개의 문자를 저장하고자 할 때 사용한다.
  • ③ 실수형 자료형에는 float, short, byte가 있다.
  • ④ boolean 자료형은 조건이 참인지 거짓인지 판단하고자 할 때 사용한다.
정답 및 해설 보기

정답 ③

Java의 실수형은 float와 double이다. ③이 실수형에 short·byte를 넣어 틀렸다 — 둘은 정수형이다. 변수·char·boolean 설명은 옳다.

🔑 암기 — Java 실수형 = float·double(short·byte는 정수형).

문 073. C 또는 Java의 printf 명령어에서 키보드의 [Tab] 키와 같이 커서를 일정 간격 띄어주는데 사용하는 제어문자는?

  • ① \r
  • ② \t
  • ③ \b
  • ④ \n
정답 및 해설 보기

정답 ②

[Tab] 키처럼 커서를 일정 간격 띄우는 제어문자(이스케이프 시퀀스)는 \t다. \r=캐리지 리턴, \b=백스페이스, \n=줄 바꿈이다.

🔑 암기 — \t=Tab · \n=줄바꿈 · \r=복귀 · \b=백스페이스.

문 074. 은행가 알고리즘(Banker's Algorithm)은 교착상태의 해결 방법 중 어떤 기법에 해당하는가?

  • ① Avoidance
  • ② Detection
  • ③ Prevention
  • ④ Recovery
정답 및 해설 보기

정답 ①

은행가 알고리즘(Banker's Algorithm)은 자원 할당 전에 안전 상태 여부를 확인해 교착상태를 사전에 피하는 회피(Avoidance) 기법이다. Detection=탐지, Prevention=예방, Recovery=복구다.

🔑 암기 — 은행가 알고리즘 = 회피(Avoidance).

문 075. 다음 C언어 프로그램이 실행되었을 때의 결과는?

c
#include <stdio.h>
int main(int argc, char *argv[]) {
    int a[2][2] = {{11, 22}, {44, 55}};
    int i, sum = 0;
    int *p;
    p = a[0];
    for (i = 1; i < 4; i++)
        sum += *(p + i);
    printf("%d", sum);
    return 0;
}
  • ① 55
  • ② 77
  • ③ 121
  • ④ 132
정답 및 해설 보기

정답 ③

int a[2][2]={{11,22},{44,55}}는 메모리에 11,22,44,55로 연속 저장되고 p=a[0]은 &a[0][0]이다. i=1부터 3까지 *(p+i)를 더하면 22+44+55=121이다(i=0의 11은 제외).

i *(p+i) 누적
1 a[0][1]=22 22
2 a[1][0]=44 66
3 a[1][1]=55 121

💡 2D 배열도 메모리상 1열 → 포인터 산술은 row-major.

문 076. 다음 중 프로세스에 대한 설명 중 틀린 것은?

  • ① 프로세서가 할당되는 실체로, 디스패치가 가능한 단위이다.
  • ② 프로세스는 비동기적 행위를 일으키는 주체이다.
  • ③ 프로세스는 스레드 내의 작업단위를 의미하며, 경량 스레드라고도 불린다.
  • ④ PCB를 가지며 PCB에는 프로세스의 현재상태, 고유식별자를 가지고 있다.
정답 및 해설 보기

정답 ③

③이 뒤바뀌었다 — 프로세스가 스레드 내 단위가 아니라 스레드가 프로세스 내의 실행 단위다. 경량 프로세스(LWP)는 스레드를 가리킨다. 나머지(디스패치 단위·비동기 주체·PCB 보유)는 옳다.

⚠️ 함정 — 스레드 = 프로세스 내 경량 실행 단위(반대 서술 주의).

문 077. 다음 JAVA 프로그램이 실행되었을 때의 결과는?

Java
public class ovr {
  public static void main(String[ ] args) {
    int a = 1, b = 2, c = 3, d = 4;
    int mx, mn;
    mx = a < b ? b : a;
    if (mx == 1) {
      mn = a > mx ? b : a;
    }
    else {
      mn = b < mx ? d : c;
    }
    System.out.println(mn);
  }
}
  • ① 1
  • ② 2
  • ③ 3
  • ④ 4
정답 및 해설 보기

정답 ③

a=1,b=2,c=3,d=4에서 mx=(1<2)?2:1=2다. mx≠1이라 else로 가고 mn=(2<2)?4:3에서 2<2는 거짓이라 mn=3이다. 이 코드의 출력은 3이다.

💡 mx=2 → else → (2<2)거짓 → mn=c=3.

문 078. TCP/IP 프로토콜 중, 비연결형(connectionless) 서비스를 제공하며 데이터 전송의 신뢰성을 보장하지 않는 전송 계층 프로토콜은?

  • ① TCP
  • ② UDP
  • ③ IP
  • ④ ICMP
정답 및 해설 보기

정답 ②

UDP(User Datagram Protocol)는 연결 설정 없이(비연결형) 데이터를 보내며 흐름·오류 제어를 하지 않아 신뢰성은 낮지만 빠른 전송 계층 프로토콜이다. TCP는 연결형·신뢰성 보장, IP는 네트워크 계층 주소 지정, ICMP는 오류·제어 메시지 보고를 담당한다.

🔑 암기 — 비연결·비신뢰 전송 계층 = UDP / 연결·신뢰 = TCP.

문 079. 디스크 스케줄링 기법 중, 현재 헤드 위치에서 이동 거리가 가장 짧은(가까운) 트랙의 요청을 먼저 처리하는 방식은?

  • ① FCFS
  • ② SSTF
  • ③ SCAN
  • ④ C-SCAN
정답 및 해설 보기

정답 ②

현재 헤드에서 가장 가까운 트랙부터 서비스하는 기법이 SSTF(Shortest Seek Time First)다. 탐색 시간은 줄지만 멀리 있는 요청이 계속 밀리는 기아(Starvation)가 생길 수 있다.

기법 처리 순서
FCFS 요청이 도착한 순서
SSTF 가장 가까운 트랙 먼저
SCAN 한 방향 끝까지 훑고 반대로(엘리베이터)

🔑 암기 — SSTF = 가장 가까운 트랙 먼저(Shortest Seek).

문 080. 다음 C언어 프로그램이 실행되었을 때, 실행 결과는?

c
#include <stdio.h>
int main(int arge, char* argv[]) {
    int n1 = 1, n2 = 2, n3 = 3;
    int r1, r2, r3;
    r1 = (n2 <= 2) || (n3 > 3);
    r2 = !n3;
    r3 = (n1 > 1) && (n2 < 3);
    printf("%d", r3 - r2 + r1);
    return 0;
}
  • ① 0
  • ② 1
  • ③ 2
  • ④ 3
정답 및 해설 보기

정답 ②

n1=1, n2=2, n3=3에서 r1=(2<=2)||(3>3)=1||0=1, r2=!3=0, r3=(1>1)&&(2<3)=0&&1=0이다. r3 − r2 + r1 = 0 − 0 + 1 = 1이라 출력은 1이다.

💡 C 논리: ||는 하나만 참이면 1 · &&는 하나만 거짓이면 0 · !(0이 아님)=0.


Part Ⅴ 정보시스템 구축관리 (문 081~100)

문 081. 전자 칩과 같은 소프트웨어 부품, 즉 블록(모듈)을 만들어서 끼워 맞추는 방법으로 소프트웨어를 완성시키는 재사용 방법은?

  • ① 합성 중심
  • ② 생성 중심
  • ③ 분리 중심
  • ④ 구조 중심
정답 및 해설 보기

정답 ①

소프트웨어 부품(모듈)을 조립해 완성하는 재사용 방식은 합성 중심(Composition-based)이다. 생성 중심(Generation-based)은 추상적 명세로부터 코드를 자동 생성하는 방식이다.

🔑 암기 — 블록 끼워 맞추기 = 합성 중심 · 코드 생성 = 생성 중심.

문 082. 상향식 비용 산정 기법 중 LOC(원시 코드 라인 수) 기법에서 예측치를 구하기 위해 사용하는 항목이 아닌 것은?

  • ① 낙관치
  • ② 기대치
  • ③ 비관치
  • ④ 모형치
정답 및 해설 보기

정답 ④

LOC 기법의 예측치는 낙관치·기대치·비관치 3가지로 구하며 공식은 (낙관치 + 4×기대치 + 비관치) / 6이다. ④'모형치'는 예측 항목이 아니다.

🔑 암기 — LOC = (낙관 + 4×기대 + 비관) / 6.

문 083. 소프트웨어 개발 프레임워크를 적용할 경우 기대효과로 거리가 먼 것은?

  • ① 품질 보증
  • ② 기술 종속성
  • ③ 개발 용이성
  • ④ 변경 용이성
정답 및 해설 보기

정답 ②

기술 종속성은 프레임워크의 단점이지 기대효과가 아니다. 특정 프레임워크에 묶이면 전환이 어려워진다. 품질 보증·개발 용이성·변경 용이성이 기대효과다.

⚠️ 함정 — 기술 종속성 = 단점(기대효과 ✗).

문 084. 구조적 방법론에 대한 설명으로 옳은 것은?

  • ① 자료(Data) 중심의 방법론이다.
  • ② 구성 요소에는 객체, 클래스, 메시지 등이 있다.
  • ③ 새로운 기능을 추가하는 것이 간단하여 확장성이 보장된다.
  • ④ 분할과 정복(Divide and Conquer) 원리를 적용한다.
정답 및 해설 보기

정답 ④

구조적 방법론분할과 정복(Divide and Conquer) 원리를 적용하는 기능·프로세스 중심 방법론이다. 자료 중심은 정보공학, 객체·클래스·메시지는 객체지향 방법론의 요소다.

💡 구조적 = 분할 정복 + 기능 중심.

문 085. 다음에 제시된 프로토콜과 포트의 연결이 잘못된 것은?

  • ① UDP 53 포트 - SNMP
  • ② TCP 23 포트 - Telnet
  • ③ UDP 69 포트 - TFTP
  • ④ UDP 111 포트 - RPC
정답 및 해설 보기

정답 ①

UDP 53 포트DNS다. ①이 SNMP라 해서 틀렸다 — SNMP는 UDP 161/162 포트다. TCP 23=Telnet, UDP 69=TFTP, UDP 111=RPC는 옳다.

🔑 암기 — 53=DNS · 161/162=SNMP · 23=Telnet · 69=TFTP.

문 086. COCOMO 모델의 프로젝트 유형으로 거리가 먼 것은?

  • ① Organic
  • ② Semi-detached
  • ③ Embedded
  • ④ Sequential
정답 및 해설 보기

정답 ④

COCOMO 프로젝트 유형은 Organic(단순)·Semi-detached(중간)·Embedded(복잡)다. ④'Sequential'은 COCOMO 유형이 아니다.

🔑 암기 — COCOMO = Organic·Semi-detached·Embedded.

문 087. 다음 중 소프트웨어 개발 보안 생명주기 방법론이 아닌 것은?

  • ① CLASP
  • ② SDL
  • ③ PIMS
  • ④ Seven Touchpoints
정답 및 해설 보기

정답 ③

소프트웨어 개발 보안 생명주기 방법론은 CLASP·SDL(MS-SDL)·Seven Touchpoints다. ③'PIMS'는 개인정보 보호 관리체계 인증이라 개발 보안 방법론이 아니다.

⚠️ 함정 — PIMS = 개인정보 관리체계(개발 보안 방법론 ✗).

문 088. SAN(Storage Area Network)에 대한 설명으로 틀린 것은?

  • ① 서버와 저장 장치를 연결하는 전용 네트워크를 별도로 구성하는 방식이다.
  • ② 파이버 채널(FC) 스위치를 이용하여 네트워크를 구성한다.
  • ③ 서버들이 저장장치 및 파일을 공유할 수 있다.
  • ④ 초기 설치 시 소요되는 비용을 절약할 수 있다.
정답 및 해설 보기

정답 ④

SAN은 서버와 저장장치를 잇는 전용 네트워크를 별도로 구축하므로 초기 설치 비용이 높다. ④'비용을 절약할 수 있다'가 틀렸다. 파이버 채널(FC) 스위치로 고속 전송하고 저장장치·파일을 공유한다.

⚠️ 함정 — SAN = 전용망 · 초기 비용 高 · 고속 전송.

문 089. 블루투스(Bluetooth) 공격과 해당 공격에 대한 설명이 올바르게 연결된 것은?

  • ① 블루버그(BlueBug) - 블루투스의 취약점을 활용하여 장비의 파일에 접근하는 공격으로 OPP를 사용하여 정보를 열람
  • ② 블루스나프(BlueSnarf) - 블루투스를 이용해 스팸처럼 명함을 익명으로 퍼뜨리는 것
  • ③ 블루프린팅(BluePrinting) - 블루투스 공격 장치의 검색 활동을 의미
  • ④ 블루재킹(BlueJacking) - 블루투스 장비사이의 취약한 연결 관리를 악용한 공격
정답 및 해설 보기

정답 ③

블루프린팅(BluePrinting)은 블루투스 공격 대상 장치를 검색하는 활동이라 ③이 옳다. 오답은 각각 다른 공격의 설명과 뒤섞였다.

  • ① 블루버그: OPP 정보 열람 ✗ → 장비 원격 조종
  • ② 블루스나프: 스팸 명함 ✗ → OPP 취약점으로 파일 탈취
  • ④ 블루재킹: 취약한 연결 관리 ✗ → 익명 스팸 메시지 전송

🔑 암기 — 블루프린팅=검색 · 블루스나프=파일탈취 · 블루버그=원격조종 · 블루재킹=스팸.

문 090. 다음 설명에 해당하는 것은?

  • 송신자가 자신의 개인키로 메시지(의 해시값)를 암호화하여 첨부한다.
  • 수신자는 송신자의 공개키로 검증하며, 무결성·인증·부인 방지를 제공한다.
  • ① 전자 서명(Digital Signature)
  • ② 방화벽(Firewall)
  • ③ 접근 통제 목록(ACL)
  • ④ 침입 차단 시스템(Firewall)
정답 및 해설 보기

정답 ①

'개인키로 서명 → 공개키로 검증', 그리고 무결성·인증·부인 방지를 제공하는 것은 전자 서명이다. 송신자만 가진 개인키로 서명하므로 서명한 사실을 부인할 수 없다.

🔑 암기 — 전자 서명 = 개인키로 서명, 공개키로 검증(부인 방지).

문 091. 다음 설명에 해당하는 웹 공격 기법은?

  • 입력값 검증이 미흡한 웹 폼에 조작된 질의문을 삽입한다.
  • 데이터베이스를 인증 없이 조회·변조하거나 인증을 우회한다.
  • ① SQL 삽입(SQL Injection)
  • ② 크로스 사이트 스크립팅(XSS)
  • ③ 서비스 거부(DoS)
  • ④ 무차별 대입(Brute Force)
정답 및 해설 보기

정답 ①

사용자 입력을 검증하지 않아 조작된 SQL 구문이 그대로 실행되는 공격이 SQL 삽입(SQL Injection)이다. 입력값 검증(필터링)과 매개변수화 질의(Prepared Statement)로 막는다.

🔑 암기 — SQL Injection = 입력값에 SQL 심기. 방어 = 입력 검증·매개변수화.

문 092. 다음 내용이 설명하는 로그 파일은?

  • 리눅스 시스템에서 사용자의 성공한 로그인/로그아웃 정보기록
  • 시스템의 종료/시작 시간 기록
  • ① tapping
  • ② xtslog
  • ③ linuxer
  • ④ wtmp
정답 및 해설 보기

정답 ④

리눅스에서 성공한 로그인/로그아웃시스템 종료/시작 시간을 기록하는 로그 파일은 wtmp이며 last 명령으로 조회한다. tapping=네트워크 도청, xtslog·linuxer는 없는 파일명이다.

🔑 암기 — wtmp=로그인/아웃 · utmp=현재 접속자 · btmp=실패 기록.

문 093. 소프트웨어 재공학(Reengineering)에 대한 설명으로 틀린 것은?

  • ① 기존 시스템을 이용하여 보다 나은 시스템을 구축하는 것이다.
  • ② 유지보수 비용의 최소화를 위해 유지보수성과 품질을 향상시키는 것을 목적으로 한다.
  • ③ 소프트웨어 위기를 해결하는 방법 중 하나로 꼽힌다.
  • ④ 소프트웨어의 수명이 연장되지만, 개발 비용이 증가한다.
정답 및 해설 보기

정답 ④

소프트웨어 재공학(Reengineering)은 기존 시스템을 활용해 유지보수성·품질을 높이고 수명을 연장하되, 새로 개발하는 것보다 비용을 절감한다. ④'수명은 연장되지만 개발 비용이 증가한다'가 틀렸다.

💡 재공학 = 수명 연장 + 비용 절감.

문 094. 다음 설명에 해당하는 것은?

  • 공중망(인터넷)을 마치 전용선처럼 사용할 수 있도록 암호화된 가상의 통신 터널을 제공한다.
  • IPSec, SSL 등의 프로토콜로 구현하며 원격지에서 안전하게 내부망에 접속한다.
  • ① VPN(가상 사설망)
  • ② NAC(네트워크 접근 제어)
  • ③ DMZ(비무장 지대)
  • ④ IDS(침입 탐지 시스템)
정답 및 해설 보기

정답 ①

공중망 위에 암호화된 터널을 만들어 전용선처럼 안전하게 쓰는 기술이 VPN(Virtual Private Network)이다. IPSec VPN, SSL VPN이 대표적이다.

🔑 암기 — VPN = 공중망에 암호화 터널(전용선처럼). IPSec·SSL.

문 095. 다음 중 우리나라에서 개발된 대칭키(개인키) 블록 암호 알고리즘이 아닌 것은?

  • ① SEED
  • ② ARIA
  • ③ LEA
  • ④ ECC
정답 및 해설 보기

정답 ④

SEED·ARIA·LEA는 국내에서 개발된 대칭키 블록 암호다. 반면 ECC(타원곡선 암호)는 국내 개발도 아니고 '공개키(비대칭)' 암호이므로 성격이 다르다.

국산 대칭키 공개키(비대칭)
SEED · ARIA · LEA RSA · ECC

🔑 암기 — 국산 대칭키 = SEED·ARIA·LEA. ECC·RSA는 공개키.

문 096. 간트 차트(Gantt Chart)에 대한 설명으로 틀린 것은?

  • ① 프로젝트를 이루는 소작업 별로 언제 시작되고 언제 끝나야 하는지를 한 눈에 볼 수 있도록 도와준다.
  • ② 자원 배치 계획에 유용하게 사용된다.
  • ③ CPM 네트워크로부터 만드는 것이 가능하다.
  • ④ 수평 막대의 길이는 각 작업(Task)에 필요한 인원수를 나타낸다.
정답 및 해설 보기

정답 ④

간트 차트의 수평 막대 길이는 각 작업의 소요 기간(시간)을 나타낸다. ④가 '인원수'라 해서 틀렸다. 작업 시작·종료를 한눈에 보여주고 자원 배치에 유용하며 CPM에서 만들 수 있다.

⚠️ 함정 — 간트 막대 길이 = 기간(인원 ✗).

문 097. 해쉬(Hash) 기법에 대한 설명으로 틀린 것은?

  • ① 임의의 길이의 입력 데이터를 받아 고정된 길이의 해쉬값으로 변환한다.
  • ② 주로 공개키 암호화 방식에서 키 생성을 위해 사용한다.
  • ③ 대표적인 해쉬 알고리즘으로 HAVAL, SHA-1 등이 있다.
  • ④ 해쉬 함수는 일방향 함수(One-way function)이다.
정답 및 해설 보기

정답 ②

해시 함수는 메시지 무결성 검증·전자서명에 주로 쓰이지, 공개키 암호화의 키 생성용이 아니라 ②가 틀렸다. 임의 길이를 고정 길이로 변환하는 일방향 함수이며 HAVAL·SHA-1 등이 대표적이다.

⚠️ 함정 — 해시 = 무결성 검증(키 생성 ✗).

문 098. Secure 코딩에서 입력 데이터의 보안 약점과 관련한 설명으로 틀린 것은?

  • ① SQL 삽입 : 사용자의 입력 값 등 외부 입력 값이 SQL 쿼리에 삽입되어 공격
  • ② 크로스사이트 스크립트 : 검증되지 않은 외부 입력 값에 의해 브라우저에서 악의적인 코드가 실행
  • ③ 운영체제 명령어 삽입 : 운영체제 명령어 파라미터 입력 값이 적절한 사전검증을 거치지 않고 사용되어 공격자가 운영체제 명령어를 조작
  • ④ 자원 삽입 : 사용자가 내부 입력 값을 통해 시스템 내에 사용이 불가능한 자원을 지속적으로 입력함으로써 시스템에 과부하 발생
정답 및 해설 보기

정답 ④

자원 삽입은 외부 입력이 시스템 자원의 접근 경로를 조작해 허가되지 않은 자원에 접근하게 하는 약점이다. ④의 '사용 불가능한 자원을 지속 입력해 과부하 발생'은 서비스 거부(DoS)에 가까워 틀렸다. SQL 삽입·XSS·OS 명령어 삽입 설명은 옳다.

⚠️ 함정 — 자원 삽입 = 자원 경로 조작(과부하는 DoS).

문 099. CPM(Critical Path Method)에 대한 설명으로 옳지 않은 것은?

  • ① 프로젝트 내에서 각 작업이 수행되는 시간과 각 작업 사이의 관계를 파악할 수 있다.
  • ② 작업 일정을 한눈에 볼 수 있도록 해주며 막대 그래프의 형태로 표현한다.
  • ③ 효과적인 프로젝트의 통제를 가능하게 해 준다.
  • ④ 경영층의 과학적인 의사 결정을 지원한다.
정답 및 해설 보기

정답 ②

②'막대 그래프 형태로 표현'은 간트 차트 설명이라 틀렸다. CPM(Critical Path Method)노드와 간선의 네트워크 형태로 임계 경로를 찾아 작업 시간·관계를 파악하고 프로젝트 통제를 돕는다.

⚠️ 함정 — CPM=네트워크 형태 · 간트=막대 그래프.

문 100. 소프트웨어 재공학의 주요 활동 중 기존 소프트웨어를 다른 운영체제나 하드웨어 환경에서 사용할 수 있도록 변환하는 것은?

  • ① 역공학
  • ② 분석
  • ③ 재구성
  • ④ 이식
정답 및 해설 보기

정답 ④

기존 소프트웨어를 다른 운영체제나 하드웨어 환경에서 쓸 수 있게 변환하는 재공학 활동은 이식(Migration)이다. 역공학=설계 복원, 분석=현재 명세 확인, 재구성=구조 변경이다.

💡 다른 환경으로 변환 = 이식.


이 회차 한 장 요약

과목 빈출·핵심 토픽 다시 볼 문항
Ⅰ 소프트웨어 설계 프로토타이핑·DFD 기호(저장소=평행선)·HIPO·럼바우 3모델·XP 5가치·미들웨어(RPC/ORB/MOM/WAS)·객체지향 분석방법론(Booch/Coad-Yourdon/Jacobson)·GoF 패턴(생성/구조/행위)·유스케이스 관계(Extend)·UML 다이어그램 007·013·016·018·020
Ⅱ 소프트웨어 개발 McCabe V(G)·테스트 오라클·이진 검색 비교 횟수·전위/후위 변환·DFS 순회·방향 그래프 간선 수·EAI 유형·반정규화·블랙/화이트박스·인수(알파/베타) 테스트·구현 절차 021·026·031·036·038·039
Ⅲ 데이터베이스 구축 도메인·튜플 최대 수·BCNF(결정자=후보키)·슈퍼키·참조 무결성·릴레이션 구성·DML/DCL·DISTINCT·차수/기수·이행 종속·이상 3종·물리적 설계·관계대수(σ/π) 042·043·049·053·057·058
Ⅳ 프로그래밍 언어 활용 코드 추적(C 포인터/구조체/논리연산·Java char/삼항/자료형·Python range/split)·메모리 배치(First/Worst Fit 단편화)·페이지 교체(FIFO)·워킹셋·교착상태 4조건·은행가 알고리즘·제어문자 064·068·075·077·080
Ⅴ 정보시스템 구축관리 재사용(합성 중심)·LOC 산정·프레임워크·구조적 방법론·포트 번호(53=DNS)·COCOMO·보안 개발 방법론(CLASP/SDL/7T)·SAN·블루투스 공격·RSA·메시 네트워크·로그 파일(wtmp)·재공학·AES·해시·간트/CPM 085·087·089·092·096·099

🎯 빈출 — 매 회차 단골: 객체지향 분석방법론·GoF 패턴·정규화(BCNF)·키(슈퍼/후보/대체)·코드 추적(C/Java/Python)·메모리 배치·페이지 교체·정보보안 암호(대칭/공개키/해시)·프로젝트 관리(COCOMO/LOC/CPM/간트).

⚠️ 함정 — '틀린 것/아닌 것/거리가 먼 것' 고르기 다수(001·002·011·022·023·030·037·046·054·056·069·071·072·076·083·087·088·093·096·097·098·099), 반대로 서술(076 스레드↔프로세스·099 CPM↔간트·025 private↔public), 유사 개념 교차(044·048 슈퍼키·043·057 BCNF·063·078 단편화·066·079 FIFO).

🔑 핵심 두문자 — 럼바우 객·동·기 · XP 용·의·피·존·단 · GoF 생성 추상팩토리·빌더·팩토리메서드·프로토타입·싱글턴 · 교착 상호배제·점유대기·비선점·환형대기 · EAI P2P·Hub&Spoke·MessageBus·Hybrid · COCOMO Organic·Semi-detached·Embedded.

전체 목록 기출문제풀이

합격까지

정보처리기사, 약점 과목이 보이나요?

초개인화 학습앱 Klue로 틀린 유형을 집중 공략하고, 에듀윌 온라인강의로 개념까지 정리하세요.