문서 읽는 데 148분 · 기출 1회 · 100문항

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

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

2022년 4월 시행(제1회) 기출. 100문항·5과목 × 20문항. 출처: 기출1회 기출문제


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

문 001. UML 다이어그램 중 순차 다이어그램에 대한 설명으로 틀린 것은?

  • ① 객체 간의 동적 상호작용을 시간 개념을 중심으로 모델링 하는 것이다.
  • ② 주로 시스템의 정적 측면을 모델링하기 위해 사용한다.
  • ③ 일반적으로 다이어그램의 수직 방향이 시간의 흐름을 나타낸다.
  • ④ 회귀 메시지(Self Message), 제어블록(Statement block) 등으로 구성된다.
정답 및 해설 보기

정답 ②

순차 다이어그램은 객체 간 동적 상호작용시간 흐름(수직축) 중심으로 표현하는 행위(동적) 다이어그램이다. ②는 "정적 측면 모델링"이라 했으나 정적 구조 표현은 클래스·객체 다이어그램의 역할이므로 틀렸다.

  • ①·③ 순차 다이어그램의 정의(동적·시간축)로 옳다.
  • ④ 회귀 메시지·제어블록 등 구성 요소 설명으로 옳다.

UML 다이어그램 분류:

구분 종류 역할
구조(Structure) 클래스·객체·컴포넌트·배치·복합체구조·패키지 정적 구조·관계(시스템 뼈대)
행위(Behavior) 유스케이스·순차·커뮤니케이션·활동·상태·상호작용개요 동적 흐름(어떻게 동작하나)

🔑 암기 — 순차 다이어그램 = 행위(동적), 시간은 수직축.

문 002. 메시지 지향 미들웨어(Message-Oriented Middleware, MOM)에 대한 설명으로 틀린 것은?

  • ① 느리고 안정적인 응답보다는 즉각적인 응답이 필요한 온라인 업무에 적합하다.
  • ② 독립적인 애플리케이션을 하나의 통합된 시스템으로 묶기 위한 역할을 한다.
  • ③ 송신측과 수신측의 연결 시 메시지 큐를 활용하는 방법이 있다.
  • ④ 상이한 애플리케이션 간 통신을 비동기 방식으로 지원한다.
정답 및 해설 보기

정답 ①

MOM은 비동기(Asynchronous) 메시지 큐 기반 미들웨어다. 송신측은 메시지를 큐에 넣고 응답을 기다리지 않으므로 느슨한 결합·확장성을 얻는다. 즉각적 응답이 필요한 업무(실시간 조회·예매 등)에는 동기 방식이 적합하므로 ①이 틀렸다.

  • ②·③·④ 시스템 통합·메시지 큐 활용·비동기 통신으로 모두 옳다.

미들웨어 종류:

종류 핵심 특징
DB DB 연결 응용이 특정 DB에 종속되지 않게(ODBC·JDBC)
RPC 원격 프로시저 호출 원격 함수를 로컬처럼 호출(동기)
MOM 메시지 기반 메시지 큐로 교환(비동기·느슨한 결합·이기종 통합)
ORB 객체 지향 원격 객체를 로컬처럼 호출(CORBA)
TP-Monitor 트랜잭션 다수 트랜잭션의 안정 처리 감시·제어

⚠️ 함정 — RPC = 동기 / MOM = 비동기.

문 003. 익스트림 프로그래밍에 대한 설명으로 틀린 것은?

  • ① 대표적인 구조적 방법론 중 하나이다.
  • ② 소규모 개발 조직이 불확실하고 변경이 많은 요구를 접하였을 때 적절한 방법이다.
  • ③ 익스트림 프로그래밍을 구동시키는 원리는 상식적인 원리와 경험을 최대한 끌어 올리는 것이다.
  • ④ 구체적인 실천 방법을 정의하고 있으며, 개발 문서보다는 소스코드에 중점을 둔다.
정답 및 해설 보기

정답 ①

익스트림 프로그래밍(XP)은 애자일 방법론의 대표 기법이다. ①은 "구조적 방법론"이라 했으나, 구조적 방법론은 정해진 절차를 중시하는 폭포수 계열로 애자일과 반대 성격이므로 틀렸다.

  • ② 잦은 변경 대응, ③ 상식·경험 활용, ④ 문서보다 코드 중심 — 모두 XP 특징으로 옳다.
구분 애자일 폭포수
철학 변화 대응 철저한 계획
개발 반복·점진(스프린트) 순차·단계
고객 참여 전 과정 지속 초기 단계
문서화 동작 SW 중시(최소화) 단계별 상세 문서
대표 모델 스크럼·XP·칸반 폭포수·V-모델

문 004. 유스케이스(UseCase)의 구성 요소 간의 관계에 포함되지 않는 것은?

  • ① 연관
  • ② 확장
  • ③ 구체화
  • ④ 일반화
정답 및 해설 보기

정답 ③

유스케이스 구성 요소 간 표준 관계는 연관(Association)·포함(Include)·확장(Extend)·일반화(Generalization) 다. 구체화(Realization) 는 유스케이스 관계의 표준 용어가 아니므로 ③이 포함되지 않는다.

관계 표기 의미
포함(Include) <> 점선 화살표 A 실행 시 B가 반드시 실행(공통 기능 모듈화)
확장(Extend) <> 점선 화살표 특정 조건에서 B가 실행될 수도 있음(부가 기능)
일반화(Generalize) 속 빈 화살표 B는 A의 한 종류(상속·역할 분류)

🔑 암기 — 유스케이스 관계: 연관·포함·확장·일반화(구체화 ✗).

문 005. 요구사항 분석에서 비기능적(Nonfunctional) 요구에 대한 설명으로 옳은 것은?

  • ① 시스템의 처리량(Throughput), 반응 시간 등의 성능 요구나 품질 요구는 비기능적 요구에 해당하지 않는다.
  • ② '차량 대여 시스템이 제공하는 모든 화면이 3초 이내에 사용자에게 보여야 한다'는 비기능적 요구이다.
  • ③ 시스템 구축과 관련된 안전, 보안에 대한 요구사항들은 비기능적 요구에 해당하지 않는다.
  • ④ '금융 시스템은 조회, 인출, 입금, 송금의 기능이 있어야 한다'는 비기능적 요구이다.
정답 및 해설 보기

정답 ②

비기능적 요구는 성능·품질·보안·사용성 등 기능을 "어떻게(How well)" 수행할지에 대한 제약이다. ②의 "3초 이내" 응답은 성능 제약이므로 비기능적 요구가 맞다.

  • ①·③ 성능·품질·안전·보안은 모두 비기능적 요구의 핵심인데, 해당하지 않는다고 했으므로 틀렸다.
  • ④ 조회·인출·입금·송금은 시스템이 제공할 기능 자체이므로 기능적 요구다.
구분 기능적 요구 비기능적 요구
정의 제공할 기능·서비스 기능 수행 시 지킬 품질·제약
관점 무엇을(What) 얼마나 잘(How well)
로그인·게시글 등록 응답 2초 이내·암호화 저장·24/365 가용

문 006. 정보공학 방법론에서 데이터베이스 설계의 표현으로 사용하는 모델링 언어는?

  • ① Package Diagram
  • ② State Transition Diagram
  • ③ Deployment Diagram
  • ④ Entity-Relationship Diagram
정답 및 해설 보기

정답 ④

정보공학 방법론은 데이터 중심 분석·설계로, DB 설계 표현에 개체-관계 다이어그램(ERD) 을 사용한다. ①·②·③은 UML 다이어그램(패키지·상태전이·배치)으로 DB 논리구조 표현 목적과 다르다.

방법론 중심 관점 모델링 기법
구조적 프로세스(흐름) DFD·DD
정보공학 데이터(정보) ERD
객체지향 객체(데이터+행위) UML

문 007. 미들웨어(Middleware)에 대한 설명으로 틀린 것은?

  • ① 여러 운영체제에서 응용 프로그램들 사이에 위치한 소프트웨어이다.
  • ② 미들웨어의 서비스 이용을 위해 사용자가 정보 교환 방법 등의 내부 동작을 쉽게 확인할 수 있어야 한다.
  • ③ 소프트웨어 컴포넌트를 연결하기 위한 준비된 인프라 구조를 제공한다.
  • ④ 여러 컴포넌트를 1대 1, 1대 다, 다대 다 등 여러 가지 형태로 연결이 가능하다.
정답 및 해설 보기

정답 ②

미들웨어의 핵심 가치는 투명성(Transparency) 으로, 사용자가 복잡한 내부 동작을 몰라도 기능을 쉽게 쓰게 한다. ②는 사용자가 내부 동작을 확인할 수 있어야 한다고 했으므로 투명성에 반해 틀렸다.

  • ①·③·④ 미들웨어의 위치(OS와 응용 사이)·인프라 제공·다양한 연결 형태로 옳다.

⚠️ 함정 — 미들웨어는 내부 동작을 감추는(투명성) 것이 목적. "내부 동작을 알아야 한다"는 반대 진술.

문 008. UI의 설계 지침으로 틀린 것은?

  • ① 이해하기 편하고 쉽게 사용할 수 있는 환경을 제공해야 한다.
  • ② 주요 기능을 메인 화면에 노출하여 조작이 쉽도록 하여야 한다.
  • ③ 치명적인 오류에 대한 부정적인 사항은 사용자가 인지할 수 없도록 한다.
  • ④ 사용자의 직무, 연령, 성별 등 다양한 계층을 수용하여야 한다.
정답 및 해설 보기

정답 ③

좋은 UI는 오류 발생 시 그 사실을 명확히 알리고 원인·해결을 안내해야 한다. ③은 치명적 오류를 사용자가 인지할 수 없게 한다고 했으므로 좋은 UI 지침과 정반대다.

  • ①·②·④ 사용 편의·주요 기능 노출·다양한 계층 수용으로 옳다.

UI 설계 4대 원칙:

원칙 설명
직관성 처음 봐도 쉽게 이해·사용
유효성 사용자 목적을 정확히 달성
학습성 쉽게 배우고 익힘
유연성 다양한 요구·실수 수용(실행 취소 등)

문 009. 객체지향 개념에서 다형성(Polymorphism)과 관련한 설명으로 틀린 것은?

  • ① 다형성은 현재 코드를 변경하지 않고 새로운 클래스를 쉽게 추가할 수 있게 한다.
  • ② 다형성이란 여러 가지 형태를 가지고 있다는 의미로, 여러 형태를 받아들일 수 있는 특징을 말한다.
  • ③ 메소드 오버라이딩(Overriding)은 상위 클래스에서 정의한 일반 메소드의 구현을 하위 클래스에서 무시하고 재정의할 수 있다.
  • ④ 메소드 오버로딩(Overloading)의 경우 매개 변수 타입은 동일하지만 메소드명을 다르게 함으로써 구현, 구분할 수 있다.
정답 및 해설 보기

정답 ④

오버로딩은 한 클래스 안에서 같은 이름의 메소드를 두되 매개변수의 개수나 타입을 다르게 하는 것이다. ④는 "매개변수 타입은 동일, 메소드명을 다르게"라 했는데, 이름을 다르게 하면 별개의 메소드일 뿐 오버로딩이 아니므로 틀렸다.

  • ①·② 다형성의 개념·장점, ③ 오버라이딩 정의로 옳다.
구분 오버로딩 오버라이딩
개념 한 클래스 내 동일 이름·다른 매개변수 상속 관계에서 부모 메소드 재정의
이름 동일 동일
매개변수 달라야 함(개수·타입) 동일
리턴 타입 관계 없음 동일

⚠️ 함정 — 오버로딩의 조건은 "이름 같음 + 매개변수 다름". "이름 다름"은 오버로딩 아님.

문 010. 소프트웨어 개발 영역을 결정하는 요소 중 다음 사항과 관계있는 것은?

  • 소프트웨어에 의해 간접적으로 제어되는 장치와 소프트웨어를 실행하는 하드웨어
  • 기존의 소프트웨어와 새로운 소프트웨어를 연결하는 소프트웨어
  • 순서적 연산에 의해 소프트웨어를 실행하는 절차
  • ① 기능(Function)
  • ② 성능(Performance)
  • ③ 제약조건(Constraint)
  • ④ 인터페이스(Interface)
정답 및 해설 보기

정답 ④

제시된 세 항목(하드웨어 연결·소프트웨어 간 연결·실행 절차)은 모두 서로 다른 대상이 만나 데이터를 주고받는 접점과 그 약속(규칙) 을 가리키므로 인터페이스(Interface) 에 해당한다.

  • ① 기능(무엇을)·② 성능(얼마나 잘)·③ 제약조건(어떤 한계)과는 의미가 다르다.

문 011. 객체에 대한 설명으로 틀린 것은?

  • ① 객체는 상태, 동작, 고유 식별자를 가진 모든 것이라 할 수 있다.
  • ② 객체는 공통 속성을 공유하는 클래스들의 집합이다.
  • ③ 객체는 필요한 자료 구조와 이에 수행되는 함수들을 가진 하나의 독립된 존재이다.
  • ④ 객체의 상태는 속성값에 의해 정의된다.
정답 및 해설 보기

정답 ②

클래스가 객체들의 공통 속성을 모아놓은 설계도이고, 객체는 그 설계도로 만들어진 실체(인스턴스)다. ②는 "객체는 클래스들의 집합"이라며 순서를 뒤바꿔 틀렸다(공통 속성의 집합은 클래스 쪽 정의).

  • ①·③·④ 객체의 특징(상태·동작·식별자 / 독립된 존재 / 속성값으로 정의되는 상태)으로 옳다.
용어 비유 설명
클래스 설계도(붕어빵 틀) 객체를 만드는 정의(틀)
객체 실체(붕어빵) 틀로 만들어진 실재
인스턴스 '그' 붕어빵 특정 클래스로 만든 객체임을 강조

문 012. 속성과 관련된 연산(Operation)을 클래스 안에 묶어서 하나로 취급하는 것을 의미하는 객체지향 개념은?

  • ① Inheritance
  • ② Class
  • ③ Encapsulation
  • ④ Association
정답 및 해설 보기

정답 ③

데이터(속성)와 그것을 처리하는 연산(메소드)을 하나의 클래스로 묶는 것은 캡슐화(Encapsulation) 다. 외부는 허용된 메소드로만 접근하게 되어 정보 은닉(Information Hiding) 이 가능해진다.

  • ① 상속(Inheritance)·② 클래스(Class)·④ 연관(Association)은 데이터·연산을 하나로 묶는 개념과 직접 관련이 없다.

🔑 암기 — 캡슐화 = 속성 + 연산 묶기 → 정보 은닉.

문 013. 애자일(Agile) 프로세스 모델에 대한 설명으로 틀린 것은?

  • ① 변화에 대한 대응보다는 자세한 계획을 중심으로 소프트웨어를 개발한다.
  • ② 프로세스와 도구 중심이 아닌 개개인과의 상호소통을 통해 의견을 수렴한다.
  • ③ 협상과 계약보다는 고객과의 협력을 중시한다.
  • ④ 문서 중심이 아닌, 실행 가능한 소프트웨어를 중시한다.
정답 및 해설 보기

정답 ①

애자일 선언문은 "계획 준수보다 변화 대응"을 핵심 가치로 둔다. ①은 변화 대응보다 자세한 계획 중심이라 했으므로 애자일과 반대(폭포수 특징)이라 틀렸다.

  • ②·③·④는 애자일 선언문의 가치(개인과 상호작용 / 고객 협력 / 동작하는 SW)를 옳게 설명한다.

애자일 선언문 4대 가치(왼쪽 > 오른쪽):

더 중시 덜 중시
개인과 상호작용 프로세스와 도구
동작하는 소프트웨어 포괄적 문서
고객과의 협력 계약 협상
변화에 대한 대응 계획 준수

문 014. 명백한 역할을 가지고 독립적으로 존재할 수 있는 시스템의 부분으로 넓은 의미에서는 재사용되는 모든 단위라고 볼 수 있으며, 인터페이스를 통해서만 접근할 수 있는 것은?

  • ① Model
  • ② Sheet
  • ③ Component
  • ④ Cell
정답 및 해설 보기

정답 ③

명백한 역할·독립적 존재·재사용 단위·인터페이스로만 접근하는 것은 컴포넌트(Component) 다. 미리 만든 부품(컴포넌트)을 조립해 소프트웨어를 만드는 방식이 컴포넌트 기반 개발(CBD)이다.

문 015. GoF(Gang of Four) 디자인 패턴을 생성, 구조, 행동 패턴의 세 그룹으로 분류할 때, 구조 패턴이 아닌 것은?

  • ① Adapter 패턴
  • ② Bridge 패턴
  • ③ Builder 패턴
  • ④ Proxy 패턴
정답 및 해설 보기

정답 ③

GoF 패턴은 생성·구조·행동으로 분류된다. 어댑터·브리지·프록시는 구조 패턴이지만, 빌더(Builder) 는 복잡한 객체의 생성과 표현을 분리하는 생성 패턴이므로 구조 패턴이 아니다.

구분 목적 대표 패턴
생성(Creational) 객체 생성의 유연성 싱글톤·팩토리메소드·빌더·추상팩토리·프로토타입
구조(Structural) 더 큰 구조 조합 어댑터·프록시·브리지·컴포지트·데코레이터·퍼사드
행동(Behavioral) 상호작용·책임 분배 전략·옵저버·템플릿메소드·커맨드·상태

🔑 암기 — 빌더 = 생성 패턴(구조 패턴 ✗).

문 016. UI와 관련된 기본 개념 중 하나로, 시스템의 상태와 사용자의 지시에 대한 효과를 보여주어 사용자가 명령에 대한 진행 상황과 표시된 내용을 해석할 수 있도록 도와주는 것은?

  • ① Feedback
  • ② Posture
  • ③ Module
  • ④ Hash
정답 및 해설 보기

정답 ①

사용자 행동에 대해 시스템이 응답을 보여주는 것은 피드백(Feedback) 이다. 버튼 클릭 반응·다운로드 진행률·제출 결과 메시지 등이 해당한다. 피드백이 없으면 사용자가 처리 여부를 알 수 없다.

  • ② Posture(자세·형태)·③ Module(기능 단위)·④ Hash(암호화 기법)는 설명과 무관하다.

문 017. UI의 종류로 멀티 터치(Multi-touch), 동작 인식(Gesture Recognition) 등 사용자의 자연스러운 움직임을 인식하여 서로 주고받는 정보를 제공하는 사용자 인터페이스를 의미하는 것은?

  • ① GUI(Graphical User Interface)
  • ② OUI(Organic User Interface)
  • ③ NUI(Natural User Interface)
  • ④ CLI(Command Line Interface)
정답 및 해설 보기

정답 ③

멀티 터치·동작 인식·음성 등 자연스러운 움직임 기반 인터페이스는 NUI(Natural User Interface) 다. 멀티 터치, 동작 인식 게임, 음성 비서가 대표 사례다.

종류 조작 방식
CLI 명령어 입력 터미널·DOS
GUI 그래픽(아이콘·창) 클릭·터치 Windows·모바일 앱
NUI 음성·제스처·시선 멀티 터치·음성 비서·동작 인식
OUI 변형 가능(구부리기 등) 플렉서블 디스플레이

문 018. 소프트웨어 모델링과 관련한 설명으로 틀린 것은?

  • ① 모델링 작업의 결과물은 다른 모델링 작업에 영향을 줄 수 없다.
  • ② 구조적 방법론에서는 DFD(Data Flow Diagram), DD(Data Dictionary) 등을 사용하여 요구 사항의 결과를 표현한다.
  • ③ 객체지향 방법론에서는 UML 표기법을 사용한다.
  • ④ 소프트웨어 모델을 사용할 경우 개발될 소프트웨어에 대한 이해도 및 이해 당사자 간의 의사소통 향상에 도움이 된다.
정답 및 해설 보기

정답 ①

모델링 결과물은 다음 단계 모델링의 입력이 되어 서로 영향을 준다(예: 유스케이스 → 클래스·순차 다이어그램). 모델링은 유기적으로 연결돼 지속 보완되므로, "영향을 줄 수 없다"는 ①이 틀렸다.

  • ② 구조적 방법론의 DFD·DD, ③ 객체지향의 UML, ④ 모델링의 효용(이해·의사소통)으로 모두 옳다.

문 019. 유스케이스 다이어그램(Use Case Diagram)에 관련된 내용으로 틀린 것은?

  • ① 시스템과 상호작용하는 외부 시스템은 액터로 파악해서는 안된다.
  • ② 유스케이스는 사용자 측면에서의 요구사항으로, 사용자가 원하는 목표를 달성하기 위해 수행할 내용을 기술한다.
  • ③ 시스템 액터는 다른 프로젝트에서 이미 개발되어 사용되고 있으며, 본 시스템과 데이터를 주고받는 등 서로 연동되는 시스템을 말한다.
  • ④ 액터가 인식할 수 없는 시스템 내부의 기능을 하나의 유스케이스로 파악해서는 안된다.
정답 및 해설 보기

정답 ①

액터(Actor)는 시스템 외부에서 상호작용하는 모든 대상으로, 사람뿐 아니라 외부 시스템·장치도 포함한다(결제 시스템·연동 시스템 등). ①은 외부 시스템을 액터로 파악하면 안 된다고 했으므로 틀렸다.

  • ③이 "시스템 액터 = 연동되는 외부 시스템"을 옳게 설명해 ①과 충돌한다. ②·④도 유스케이스 작성 원칙으로 옳다.

문 020. 소프트웨어 아키텍처 모델 중 MVC(Model-View-Controller)와 관련한 설명으로 틀린 것은?

  • ① MVC 모델은 사용자 인터페이스를 담당하는 계층의 응집도를 높일 수 있고, 여러 개의 다른 UI를 만들어 그 사이에 결합도를 낮출 수 있다.
  • ② 모델(Model)은 뷰(View)와 제어(Controller) 사이에서 전달자 역할을 하며, 뷰마다 모델 서브시스템이 각각 하나씩 연결된다.
  • ③ 뷰(View)는 모델(Model)에 있는 데이터를 사용자 인터페이스에 보이는 역할을 담당한다.
  • ④ 제어(Controller)는 모델(Model)에 명령을 보냄으로써 모델의 상태를 변경할 수 있다.
정답 및 해설 보기

정답 ②

MVC는 관심사 분리 패턴이다. 모델은 핵심 데이터·로직을 담당하고 뷰·컨트롤러의 존재를 알지 못하며, 하나의 모델에 여러 뷰가 연결될 수 있다. ②는 모델이 전달자 역할을 하고 뷰마다 모델이 하나씩 연결된다고 했으므로 틀렸다(전달자는 컨트롤러에 가깝고, 모델:뷰 = 1:N).

  • ①(응집도↑·결합도↓)·③(뷰의 역할)·④(컨트롤러가 모델 상태 변경)는 MVC 설명으로 옳다.

💡 보충 — 하나의 모델 데이터를 막대그래프·꺾은선그래프 등 여러 뷰로 동시에 표현 가능(모델:뷰 = 1:N).


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

문 021. 통합 테스트(Integration Test)와 관련한 설명으로 틀린 것은?

  • ① 시스템을 구성하는 모듈의 인터페이스와 결합을 테스트하는 것이다.
  • ② 하향식 통합 테스트의 경우 넓이 우선(Breadth First) 방식으로 테스트를 할 모듈을 선택할 수 있다.
  • ③ 상향식 통합 테스트의 경우 시스템 구조도의 최상위에 있는 모듈을 먼저 구현하고 테스트한다.
  • ④ 모듈 간의 인터페이스와 시스템의 동작이 정상적으로 잘되고 있는지를 빨리 파악하고자 할 때 상향식보다는 하향식 통합 테스트를 사용하는 것이 좋다.
정답 및 해설 보기

정답 ③

통합 테스트는 단위 테스트를 마친 모듈을 결합하면서 모듈 간 인터페이스가 정상 동작하는지 확인하는 단계다. ③은 "상향식"이라면서 "최상위 모듈을 먼저 구현·테스트"한다고 했으므로 틀렸다. 최상위부터 시작하는 것은 하향식이고, 상향식은 최하위 모듈부터 시작한다.

  • ① 통합 테스트의 정의, ②·④ 하향식 통합 테스트의 특징으로 옳다.
구분 하향식(Top-down) 상향식(Bottom-up)
진행 방향 상위 → 하위 하위 → 상위
필요한 가짜 모듈 스텁(Stub) 드라이버(Driver)
역할 미개발 하위 모듈 대체 미개발 상위 모듈 대체(데이터·제어 전달)
장점 전체 구조 조기 파악 하위 모듈 결함 조기 발견
단점 하위 결함 발견 지연·스텁 다수 전체 구조 파악 늦음

🔑 암기 — 하향식 = Stub(하위 대체) / 상향식 = Driver(상위 대체).

문 022. 다음과 같이 레코드가 구성되어 있을 때, 이진 검색 방법으로 14를 찾을 경우 비교되는 횟수는?

텍스트
1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15
  • ① 2
  • ② 3
  • ③ 4
  • ④ 5
정답 및 해설 보기

정답 ②

이진 검색은 정렬된 데이터의 중간값과 비교하여 범위를 절반씩 줄인다. 1~15에서 14를 찾는 과정은 다음과 같다.

회차 검색 범위 중간값 판단
1회 1~15 8 14 > 8 → 오른쪽
2회 9~15 12 14 > 12 → 오른쪽
3회 13~15 14 일치 → 종료

중간값을 8 → 12 → 14 순으로 3번 비교해 찾으므로 비교 횟수는 3회다.

구분 순차 검색 이진 검색
방식 처음부터 하나씩 비교 중간값 비교로 범위 절반씩 축소
전제 없음 정렬되어 있어야 함
복잡도 O(n) O(log n)

문 023. 소프트웨어 공학에서 워크스루(Walkthrough)에 대한 설명으로 틀린 것은?

  • ① 사용사례를 확장하여 명세하거나 설계 다이어그램, 원시코드, 테스트 케이스 등에 적용할 수 있다.
  • ② 복잡한 알고리즘 또는 반복, 실시간 동작, 병행 처리와 같은 기능이나 동작을 이해하려고 할 때 유용하다.
  • ③ 인스펙션(Inspection)과 동일한 의미를 가진다.
  • ④ 단순한 테스트 케이스를 이용하여 프로덕트를 수작업으로 수행해 보는 것이다.
정답 및 해설 보기

정답 ③

워크스루와 인스펙션은 둘 다 정적 리뷰지만 같지 않다. 워크스루는 개발자(저자)가 주도하는 비공식 검토로 이해 증진·아이디어 공유가 목적이고, 인스펙션은 훈련된 사회자(Moderator)가 주도하는 공식 절차로 체크리스트를 활용해 결함 발견에 집중한다. ③은 둘이 동일하다고 했으므로 틀렸다.

구분 워크스루 인스펙션
목적 이해 증진·지식 공유 결함 발견
형식 비공식적 공식적·엄격한 절차
주도자 개발자(저자) 훈련된 사회자
사전 준비 필수 아님 필수(체크리스트)

문 024. 소프트웨어의 개발과정에서 소프트웨어의 변경사항을 관리하기 위해 개발된 일련의 활동을 뜻하는 것은?

  • ① 복호화
  • ② 형상관리
  • ③ 저작권
  • ④ 크랙
정답 및 해설 보기

정답 ②

소스 코드·문서 등 모든 산출물의 변경 과정을 체계적으로 관리·통제하는 활동은 형상관리(Configuration Management) 다. 누가·언제·무엇을·왜 바꿨는지 이력을 추적해 충돌을 막고 특정 시점 버전으로 복원할 수 있다.

  • ① 복호화(암호 해제)·③ 저작권(창작물 권리)·④ 크랙(불법 변경)은 변경 관리 활동과 다르다.

문 025. 테스트 케이스와 관련한 설명으로 틀린 것은?

  • ① 테스트의 목표 및 테스트 방법을 결정하기 전에 테스트 케이스를 작성해야 한다.
  • ② 프로그램에 결함이 있더라도 입력에 대해 정상적인 결과를 낼 수 있기 때문에 결함을 검사할 수 있는 테스트 케이스를 찾는 것이 중요하다.
  • ③ 개발된 서비스가 정의된 요구 사항을 준수하는지 확인하기 위한 입력 값과 실행 조건, 예상 결과의 집합으로 볼 수 있다.
  • ④ 테스트 케이스 실행이 통과되었는지 실패하였는지 판단하기 위한 기준을 테스트 오라클(Test Oracle)이라고 한다.
정답 및 해설 보기

정답 ①

테스트 케이스는 테스트의 목표·방법이 결정된 후에 작성한다(목표·방법 결정 → 그에 맞는 입력값·예상 결과 설계). ①은 "결정하기 전에 작성"이라 했으므로 순서가 틀렸다.

  • ② 테스트의 중요성, ③ 테스트 케이스의 정의, ④ 테스트 오라클의 정의로 모두 옳다.

🔑 암기 — 테스트 오라클 = 통과/실패를 판단하는 기준(예상 결과·정답지).

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

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

정답 ②

private 은 "같은 클래스 내부에서만 접근 가능"하게 제한하는 접근 제한자로, 정보 은닉을 구현하는 가장 강한 수단이다. ②는 private의 의미가 '공개'라 했으므로 틀렸다('공개'를 의미하는 것은 public).

  • ①·③·④ 객체·상속·인스턴스 개념으로 옳다.

JAVA 접근 제한자(넓은 → 좁은):

제한자 접근 범위
public 모든 곳
protected 같은 패키지 + 상속받은 자식
default 같은 패키지
private 같은 클래스

🔑 암기 — public > protected > default > private.

문 027. DRM(Digital Rights Management)과 관련한 설명으로 틀린 것은?

  • ① 디지털 콘텐츠와 디바이스의 사용을 제한하기 위해 하드웨어 제조업자, 저작권자, 출판업자 등이 사용할 수 있는 접근 제어 기술을 의미한다.
  • ② 디지털 미디어의 생명 주기 동안 발생하는 사용 권한 관리, 과금, 유통 단계를 관리하는 기술로도 볼 수 있다.
  • ③ 클리어링 하우스(Clearing House)는 사용자에게 콘텐츠 라이선스를 발급하고 권한을 부여해주는 시스템을 말한다.
  • ④ 원본을 안전하게 유통하기 위한 전자적 보안은 고려하지 않기 때문에 불법 유통과 복제의 방지는 불가능하다.
정답 및 해설 보기

정답 ④

DRM은 디지털 콘텐츠의 저작권을 보호하기 위한 기술로, 그 존재 목적 자체가 불법 유통·복제 방지안전한 원본 유통이다(음원이 정해진 앱에서만 재생되거나 OTT 영상 녹화를 막는 기술 등). ④는 전자적 보안을 고려하지 않아 복제 방지가 불가능하다고 했으므로 DRM의 목적을 부정하는 틀린 진술이다.

  • ①·②·③ DRM의 정의·생명주기 관리·클리어링 하우스로 옳다.

💡 보충 — 클리어링 하우스 = 사용 권한 관리·라이선스 발급·결제 처리를 담당하는 구성 요소.

문 028. 위험 모니터링의 의미로 옳은 것은?

  • ① 위험을 이해하는 것
  • ② 첫 번째 조치로 위험을 피할 수 있도록 하는 것
  • ③ 위험 발생 후 즉시 조치하는 것
  • ④ 위험 요소 징후들에 대하여 계속적으로 인지하는 것
정답 및 해설 보기

정답 ④

위험 모니터링은 식별해 둔 위험의 발생 징후를 지속적으로 감시·추적하고 새로운 위험이 나타나는지 확인하는 활동이다. ④ "위험 요소 징후들을 계속적으로 인지"가 정확하다.

  • ① 위험을 이해 = 위험 분석 단계
  • ② 위험을 피하도록 = 위험 대응 중 회피 전략
  • ③ 발생 후 즉시 조치 = 위험 대응·사후 처리

위험 관리 프로세스:

단계 활동
식별 잠재 위험 목록 작성
분석 발생 확률·영향 분석 → 우선순위
대응 계획 회피·전가·완화·수용 전략 수립
모니터링·통제 징후 추적·새 위험 식별

문 029. 동시에 소스를 수정하는 것을 방지하며 다른 방향으로 진행된 개발 결과를 합치거나 변경 내용을 추적할 수 있는 소프트웨어 버전 관리 도구는?

  • ① RCS(Revision Control System)
  • ② RTS(Reliable Transfer Service)
  • ③ RPC(Remote Procedure Call)
  • ④ RVS(Relative Version System)
정답 및 해설 보기

정답 ①

제시된 기능은 모두 버전 관리(형상 관리) 도구의 특징이다. 보기 중 버전 관리 도구는 RCS(Revision Control System) 뿐으로, 중앙 서버 방식 이전에 개발자 개인 PC에서 파일 버전을 관리하던 초기 형태의 VCS다.

  • ② RTS(신뢰성 전송)·③ RPC(원격 프로시저 호출)는 통신 기술, ④ RVS는 표준 용어가 아니다.

버전 관리 시스템의 세대:

세대 방식 대표 도구
1세대 로컬 RCS·SCCS
2세대 중앙 집중식 SVN·CVS
3세대 분산 Git·Mercurial

문 030. 화이트박스 테스트와 관련한 설명으로 틀린 것은?

  • ① 화이트박스 테스트의 이해를 위해 논리흐름도(Logic-Flow Diagram)를 이용할 수 있다.
  • ② 테스트 데이터를 이용해 실제 프로그램을 실행함으로써 오류를 찾는 동적 테스트(Dynamic Test)에 해당한다.
  • ③ 프로그램의 구조를 고려하지 않기 때문에 테스트 케이스는 프로그램 또는 모듈의 요구나 명세를 기초로 결정한다.
  • ④ 테스트 데이터를 선택하기 위하여 검증기준(Test Coverage)을 정한다.
정답 및 해설 보기

정답 ③

화이트박스 테스트는 소프트웨어의 내부 구조와 로직을 들여다보며 모든 경로(분기·반복)가 올바른지 점검하는 기법이다. ③ "프로그램 구조를 고려하지 않고 요구·명세를 기초로 결정"은 블랙박스 테스트 설명이므로 틀렸다.

  • ①·②·④ 논리흐름도 활용·동적 테스트·커버리지 기준으로 옳다.
구분 화이트박스 블랙박스
관점 개발자(내부 구조) 사용자(요구 명세)
기반 소스 코드·내부 로직 요구사항 명세서
대표 기법 구문/결정/조건 커버리지 동등 분할·경계값 분석·원인-결과 그래프

문 031. 알고리즘과 관련한 설명으로 틀린 것은?

  • ① 주어진 작업을 수행하는 컴퓨터 명령어를 순서대로 나열한 것으로 볼 수 있다.
  • ② 검색(Searching)은 정렬이 되지 않은 데이터 혹은 정렬이 된 데이터 중에서 키값에 해당되는 데이터를 찾는 알고리즘이다.
  • ③ 정렬(Sorting)은 흩어져있는 데이터를 키값을 이용하여 순서대로 열거하는 알고리즘이다.
  • ④ 선형 검색은 검색을 수행하기 전에 반드시 데이터의 집합이 정렬되어 있어야 한다.
정답 및 해설 보기

정답 ④

선형(순차) 검색은 데이터를 처음부터 하나씩 비교하므로 정렬 여부와 무관하게 사용할 수 있다. ④ "선형 검색은 반드시 정렬되어 있어야 한다"는 틀렸다. 정렬이 필수인 것은 이진 검색이다.

  • ①·②·③ 알고리즘·검색·정렬의 기본 개념으로 옳다.

문 032. 버블 정렬을 이용하여 다음 자료를 오름차순으로 정렬할 경우 PASS 1의 결과는?

텍스트
9, 6, 7, 3, 5
  • ① 6, 9, 7, 3, 5
  • ② 3, 9, 6, 7, 5
  • ③ 3, 6, 7, 9, 5
  • ④ 6, 7, 3, 5, 9
정답 및 해설 보기

정답 ④

버블 정렬은 인접한 두 원소를 비교해 오름차순이면 큰 값을 뒤로 보낸다. 9, 6, 7, 3, 5 의 PASS 1:

비교 결과
9 ↔ 6 6, 9, 7, 3, 5
9 ↔ 7 6, 7, 9, 3, 5
9 ↔ 3 6, 7, 3, 9, 5
9 ↔ 5 6, 7, 3, 5, 9

1회전이 끝나면 최댓값 9가 맨 뒤로 이동한다. PASS 1 결과는 6, 7, 3, 5, 9다.

정렬 개념 복잡도
선택 최솟값을 찾아 앞으로 O(n²)
버블 인접 2개 비교·교환 O(n²)
삽입 정렬된 부분에 끼워 넣기 O(n²)

문 033. 다음은 인스펙션(Inspection) 과정을 표현한 것이다. (가)~(마)에 들어갈 말을 [보기]에서 찾아 바르게 연결한 것은?

텍스트
계획  (가)  (나)  (다)  (라)  (마)

[보기]

  • ㉠ 준비

  • ㉡ 사전 교육

  • ㉢ 인스펙션 회의

  • ㉣ 수정

  • ㉤ 후속 조치

  • ① (가) - ㉡, (나) - ㉢

  • ② (나) - ㉠, (다) - ㉢

  • ③ (다) - ㉢, (라) - ㉤

  • ④ (라) - ㉣, (마) - ㉢

정답 및 해설 보기

정답 ②

인스펙션의 표준 절차는 계획 → 사전 교육(개요) → 준비 → 인스펙션 회의 → 수정(재작업) → 후속 조치다. 보기를 대입하면 (가)=㉡사전 교육, (나)=㉠준비, (다)=㉢인스펙션 회의, (라)=㉣수정, (마)=㉤후속 조치가 된다.

따라서 (나)-㉠, (다)-㉢으로 연결한 ②가 정답이다.

단계 내용
계획 자료·일정·담당자 결정
(가) 사전 교육 참가자에게 개요·자료 교육
(나) 준비 회의 전 각자 결함 검토
(다) 인스펙션 회의 결함 목록화·토의
(라) 수정 결함 수정(재작업)
(마) 후속 조치 수정 반영 확인·마무리

문 034. 소프트웨어를 보다 쉽게 이해할 수 있고 적은 비용으로 수정할 수 있도록 겉으로 보이는 동작의 변화 없이 내부구조를 변경하는 것은?

  • ① Refactoring
  • ② Architecting
  • ③ Specification
  • ④ Renewal
정답 및 해설 보기

정답 ①

겉보기 동작(기능)은 그대로 유지하면서 내부 코드 구조만 개선해 가독성·유지보수성을 높이고 중복을 제거하는 작업은 리팩토링(Refactoring) 이다.

  • ② 아키텍팅(시스템 뼈대 설계)·③ 명세(요구사항 문서화)·④ 갱신(새 버전 교체)과는 다르다.

문 035. 단위 테스트(Unit Test)와 관련한 설명으로 틀린 것은?

  • ① 구현 단계에서 각 모듈의 개발을 완료한 후 개발자가 명세서의 내용대로 정확히 구현되었는지 테스트한다.
  • ② 모듈 내부의 구조를 구체적으로 볼 수 있는 구조적 테스트를 주로 시행한다.
  • ③ 필요 데이터를 인자를 통해 넘겨주고, 테스트 완료 후 그 결과값을 받는 역할을 하는 가상의 모듈을 테스트 스텁(Stub)이라고 한다.
  • ④ 테스트할 모듈을 호출하는 모듈도 있고, 테스트할 모듈이 호출하는 모듈도 있다.
정답 및 해설 보기

정답 ③

필요 데이터를 인자로 넘겨주고 실행 후 결과값을 받는 가상의 모듈은 상위 모듈을 대체하는 드라이버(Driver) 다. ③은 이를 스텁이라 했으므로 틀렸다. 스텁(Stub) 은 하위 모듈을 대체해, 호출을 받으면 미리 정한 값을 반환하는 역할이다.

  • ① 단위 테스트의 정의, ② 내부 구조를 보는 구조적(화이트박스) 테스트, ④ 호출/피호출 모듈 관계로 옳다.

🔑 암기 — 드라이버 = 상위 대체(데이터·제어 전달) / 스텁 = 하위 대체(정해진 값 반환).

문 036. IDE(Integrated Development Environment) 도구의 각 기능에 대한 설명으로 틀린 것은?

  • ① Coding - 프로그래밍 언어를 가지고 컴퓨터 프로그램을 작성할 수 있는 환경을 제공
  • ② Compile - 저급언어의 프로그램을 고급언어 프로그램으로 변환하는 기능
  • ③ Debugging - 프로그램에서 발견되는 버그를 찾아 수정할 수 있는 기능
  • ④ Deployment - 소프트웨어를 최종 사용자에게 전달하기 위한 기능
정답 및 해설 보기

정답 ②

컴파일(Compile)은 사람이 이해하기 쉬운 고급 언어로 작성한 코드를 컴퓨터가 이해하는 저급 언어(기계어) 로 번역하는 과정이다. ②는 "저급 → 고급"이라 했으므로 번역 방향이 반대라 틀렸다.

  • ①·③·④ 코딩·디버깅·배포 기능 설명으로 옳다.

문 037. 아래 Tree 구조에 대하여 후위 순회(Postorder)한 결과는?

후위 순회 대상 트리 — 루트 a의 왼쪽 b(자식 d), 오른쪽 c(자식 e·f), e의 자식 g·h

  • ① a → b → d → c → e → g → h → f
  • ② d → b → g → h → e → f → c → a
  • ③ d → b → a → g → e → h → c → f
  • ④ a → b → d → g → e → h → c → f
정답 및 해설 보기

정답 ②

후위 순회는 왼쪽 → 오른쪽 → 루트 순서로, 루트를 가장 마지막에 방문한다. 주어진 트리를 따라가면 다음과 같다.

  • b 서브트리: d 방문 → b 방문 → d b
  • c 서브트리: e의 g·h 방문 후 e → g h e, 이어서 f → f, 마지막 c → g h e f c
  • 마지막에 루트 a 방문

전체 결과는 d → b → g → h → e → f → c → a 로 ②가 정답이다.

순회 방문 순서
전위(Preorder) 루트 → 왼 → 오
중위(Inorder) 왼 → 루트 → 오
후위(Postorder) 왼 → 오 → 루트

🔑 암기 — 전/중/후위는 루트를 각각 처음/중간/마지막에 방문.

문 038. 인터페이스 구현 시 사용하는 기술로 속성-값 쌍(Attribute-Value Pairs)으로 이루어진 데이터 오브젝트를 전달하기 위해 사용하는 개방형 표준 포맷은?

  • ① JSON
  • ② HTML
  • ③ AVPN
  • ④ DOF
정답 및 해설 보기

정답 ①

JSON(JavaScript Object Notation){"키": "값"} 형태의 속성-값(Key-Value) 쌍으로 데이터를 표현하는 개방형 표준 포맷이다. 가볍고 사람이 읽기 쉬우며 파싱이 빨라 인터페이스 데이터 교환의 사실상 표준으로 쓰인다.

  • ② HTML은 웹 페이지의 구조를 표현하는 마크업 언어다.
  • ③ AVPN·④ DOF는 문제에서 설명하는 개방형 표준 데이터 교환 포맷이 아니다.
구분 JSON XML
문법 {"key": "value"} <key>value</key>
표현 속성-값 쌍 태그 기반 트리 구조
특징 단순·경량·파싱 빠름 구조 표현 유연·스키마 검증

문 039. 순서가 있는 리스트에서 데이터의 삽입(Push), 삭제(Pop)가 한 쪽 끝에서 일어나며 LIFO(Last-In-First-Out)의 특징을 가지는 자료구조는?

  • ① Tree
  • ② Graph
  • ③ Stack
  • ④ Queue
정답 및 해설 보기

정답 ③

한 쪽 끝(Top)에서만 삽입(Push)·삭제(Pop)가 일어나고 마지막에 들어온 것이 먼저 나가는 LIFO(후입선출) 구조는 스택(Stack) 이다. ④ 큐(Queue)는 반대로 먼저 들어온 것이 먼저 나가는 FIFO 구조다.

구분 스택
구조 LIFO(후입선출) FIFO(선입선출)
입출구 한 쪽(Top) 양 쪽(Front·Rear)
삽입/삭제 Push / Pop Enqueue / Dequeue
활용 함수 호출·되돌리기 작업 스케줄링·버퍼

문 040. 다음 중 단위 테스트 도구로 사용될 수 없는 것은?

  • ① CppUnit
  • ② JUnit
  • ③ HttpUnit
  • ④ IgpUnit
정답 및 해설 보기

정답 ④

단위 테스트 프레임워크로 ① CppUnit(C++)·② JUnit(Java)·③ HttpUnit(웹·HTTP 응답 테스트용 자바 프레임워크)은 모두 실제 사용되는 도구다. ④ IgpUnit은 표준 단위 테스트 도구가 아니다.

🔑 암기 — xUnit 계열(JUnit·CppUnit·NUnit·HttpUnit 등)이 대표적인 단위 테스트 프레임워크.


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

문 041. 다음 조건을 모두 만족하는 정규형은?

  • 테이블 R에 속한 모든 도메인이 원자값만으로 구성되어 있다.
  • 테이블 R에서 키가 아닌 모든 필드가 키에 대해 함수적으로 종속되며, 키의 부분 집합이 결정자가 되는 부분 종속이 존재하지 않는다.
  • 테이블 R에 존재하는 모든 함수적 종속에서 결정자가 후보키이다.
  • ① BCNF
  • ② 제1정규형
  • ③ 제2정규형
  • ④ 제3정규형
정답 및 해설 보기

정답 ①

세 조건을 단계별로 보면, 1조건(모든 도메인 원자값) = 1NF, 2조건(부분 함수 종속 없음) = 2NF, 3조건(모든 결정자가 후보키) = BCNF의 조건이다. 세 조건을 모두 만족하는 가장 높은 정규형은 BCNF다. ③ 3NF는 이행 함수 종속 제거까지이고, "모든 결정자가 후보키"는 그보다 엄격한 BCNF의 조건이다.

정규형 조건
1NF 도메인이 원자값
2NF 부분 함수 종속 제거
3NF 이행 함수 종속 제거
BCNF 결정자가 후보키가 아닌 함수 종속 제거
4NF 다치 종속 제거
5NF 조인 종속 제거

🔑 암기 — 정규화 단계: 두부이결다조(도메인원자값·부분종속·이행종속·결정자후보키·다치종속·조인종속).

문 042. 데이터베이스의 트랜잭션 성질들 중에서 다음 설명에 해당하는 것은?

트랜잭션의 모든 연산들이 정상적으로 수행 완료되거나 아니면 전혀 어떠한 연산도 수행되지 않은 원래 상태가 되도록 해야 한다.

  • ① Atomicity
  • ② Consistency
  • ③ Isolation
  • ④ Durability
정답 및 해설 보기

정답 ①

"모든 연산이 완료되거나 전혀 수행되지 않은 원래 상태" = All or Nothing = 원자성(Atomicity) 이다. 일부만 성공하는 경우는 없어야 하며, 중간에 실패하면 모두 취소(Rollback)한다.

성질 개념
원자성(Atomicity) All or Nothing(모두 성공/모두 실패)
일관성(Consistency) 트랜잭션 전후 제약조건 유지
고립성(Isolation) 동시 실행 시 서로 독립적
지속성(Durability) 완료된 결과는 장애에도 영구 보존

🔑 암기 — 트랜잭션 4대 성질 = ACID.

문 043. 분산 데이터베이스 시스템과 관련한 설명으로 틀린 것은?

  • ① 물리적으로 분산된 데이터베이스 시스템을 논리적으로 하나의 데이터베이스 시스템처럼 사용할 수 있도록 한 것이다.
  • ② 물리적으로 분산되어 지역별로 필요한 데이터를 처리할 수 있는 지역 컴퓨터(Local Computer)를 분산 처리기(Distributed Processor)라고 한다.
  • ③ 분산 데이터베이스 시스템을 위한 통신 네트워크 구조가 데이터 통신에 영향을 주므로 효율적으로 설계해야 한다.
  • ④ 데이터베이스가 분산되어 있음을 사용자가 인식할 수 있도록 분산 투명성(Distribution Transparency)을 배제해야 한다.
정답 및 해설 보기

정답 ④

분산 데이터베이스의 핵심 목표는 분산 투명성(Transparency) 으로, 데이터가 어디에 흩어져 있는지 사용자가 몰라도 하나의 DB처럼 쓰게 한다(위치·중복·장애 투명성). ④는 투명성을 "배제"해 사용자가 분산을 인식하게 한다고 했으므로 목표와 정반대라 틀렸다.

  • ①·②·③ 분산 DB의 정의·분산 처리기·네트워크 설계로 옳다.

문 044. 다음 테이블을 보고 강남지점의 판매량이 많은 제품부터 출력되도록 할 때 다음 중 가장 적절한 SQL 구문은? (단, 출력은 제품명과 판매량이 출력되도록 한다.)

<푸드> 테이블

지점명 제품명 판매량
강남지점 비빔밥 500
강북지점 도시락 300
강남지점 도시락 200
강남지점 미역국 550
수원지점 비빔밥 600
인천지점 비빔밥 800
강남지점 잡채밥 250
  • SELECT 제품명, 판매량 FROM 푸드 ORDER BY 판매량 ASC;
  • SELECT 제품명, 판매량 FROM 푸드 ORDER BY 판매량 DESC;
  • SELECT 제품명, 판매량 FROM 푸드 WHERE 지점명='강남지점' ORDER BY 판매량 ASC;
  • SELECT 제품명, 판매량 FROM 푸드 WHERE 지점명='강남지점' ORDER BY 판매량 DESC;
정답 및 해설 보기

정답 ④

요구사항을 구문으로 옮기면 ① 강남지점만 거르고(WHERE 지점명='강남지점') ② 많은 것부터 정렬(ORDER BY 판매량 DESC)해야 한다. 둘을 모두 만족하는 것은 ④다.

  • ①·② 는 WHERE 가 없어 전체 지점이 출력되므로 요구를 충족하지 못한다.
  • ③ 은 ASC(오름차순)라 "많은 것부터"와 반대다.

실제로 ④를 실행하면 강남지점 4건이 미역국 550 → 비빔밥 500 → 잡채밥 250 → 도시락 200 순으로 출력된다.

SELECT 절 작성 순서:

순서 역할
1 SELECT 조회할 컬럼
2 FROM 조회할 테이블
3 WHERE 행 조건
4 GROUP BY 그룹화
5 HAVING 그룹 조건
6 ORDER BY 정렬

문 045. 데이터베이스의 인덱스와 관련한 설명으로 틀린 것은?

  • ① 문헌의 색인, 사전과 같이 데이터를 쉽고 빠르게 찾을 수 있도록 만든 데이터 구조이다.
  • ② 테이블에 붙여진 색인으로 데이터 검색 시 처리속도 향상에 도움이 된다.
  • ③ 인덱스의 추가, 삭제 명령어는 각각 ADD, DELETE이다.
  • ④ 대부분의 데이터베이스에서 테이블을 삭제하면 인덱스도 같이 삭제된다.
정답 및 해설 보기

정답 ③

인덱스 객체의 생성·삭제 명령어는 CREATE INDEXDROP INDEX 다. ③은 ADD/DELETE라 했으므로 틀렸다(ADD/DROP은 ALTER TABLE 로 컬럼을 조작할 때 쓰는 키워드).

  • ①·②·④ 인덱스의 개념·검색 속도 향상·테이블 삭제 시 동반 삭제로 옳다.

⚠️ 함정 — 인덱스는 검색(SELECT)은 빨라지지만, INSERT/UPDATE/DELETE 시 인덱스도 갱신해야 해 변경 작업은 느려지고 저장 공간도 추가로 든다.

문 046. 물리적 데이터베이스 구조의 기본 데이터 단위인 저장 레코드의 양식을 설계할 때 고려 사항이 아닌 것은?

  • ① 데이터 타입
  • ② 데이터 값의 분포
  • ③ 트랜잭션 모델링
  • ④ 접근 빈도
정답 및 해설 보기

정답 ③

저장 레코드 양식 설계는 물리적 설계 단계로, 데이터 타입·값의 분포·접근 빈도 등을 고려한다. ③ 트랜잭션 모델링은 개념적 설계 단계의 활동이므로 물리적 저장 양식 설계의 고려 사항이 아니다.

설계 단계 주요 활동
개념적 요구분석·ERD·트랜잭션 모델링
논리적 테이블 스키마·정규화·트랜잭션 인터페이스 설계
물리적 저장 레코드 양식·인덱스 구조·접근 경로

문 047. SQL의 기능에 따른 분류 중에서 REVOKE문과 같이 데이터의 사용 권한을 관리하는데 사용하는 언어는?

  • ① DDL(Data Definition Language)
  • ② DML(Data Manipulation Language)
  • ③ DCL(Data Control Language)
  • ④ DUL(Data User Language)
정답 및 해설 보기

정답 ③

권한 회수(REVOKE)·부여(GRANT)는 데이터 제어어인 DCL(Data Control Language) 에 속한다. ① DDL은 구조 정의, ② DML은 데이터 조작, ④ DUL은 존재하지 않는 분류다.

구분 역할 대표 명령어
DDL 구조 정의 CREATE·ALTER·DROP·TRUNCATE
DML 데이터 조작 SELECT·INSERT·UPDATE·DELETE
DCL 권한·트랜잭션 제어 GRANT·REVOKE·COMMIT·ROLLBACK

문 048. 데이터 사전에 대한 설명으로 틀린 것은?

  • ① 시스템 카탈로그 또는 시스템 데이터베이스라고도 한다.
  • ② 데이터 사전 역시 데이터베이스의 일종이므로 일반 사용자가 생성, 유지 및 수정 할 수 있다.
  • ③ 데이터베이스에 대한 데이터인 메타데이터(Metadata)를 저장하고 있다.
  • ④ 데이터 사전에 있는 데이터에 실제로 접근하는 데 필요한 위치 정보는 데이터 디렉토리(Data Directory)라는 곳에서 관리한다.
정답 및 해설 보기

정답 ②

데이터 사전(시스템 카탈로그)은 메타데이터를 저장하는 시스템 DB로, DBMS가 스스로 생성·유지한다. 일반 사용자는 조회만 가능하고 직접 수정할 수 없다. ②는 일반 사용자가 생성·유지·수정할 수 있다고 했으므로 틀렸다.

  • ①·③·④ 시스템 카탈로그·메타데이터·데이터 디렉토리로 옳다.

💡 보충 — 데이터 디렉토리는 데이터 사전 내 데이터에 접근하는 위치 정보를 관리하는 곳이다.

문 049. 데이터베이스에서 릴레이션에 대한 설명으로 틀린 것은?

  • ① 모든 튜플은 서로 다른 값을 가지고 있다.
  • ② 하나의 릴레이션에서 튜플은 특정한 순서를 가진다.
  • ③ 각 속성은 릴레이션 내에서 유일한 이름을 가진다.
  • ④ 모든 속성 값은 원자값(atomic value)을 가진다.
정답 및 해설 보기

정답 ②

릴레이션의 튜플(행)은 순서가 없다(무순서성). ②는 "특정한 순서를 가진다"라 했으므로 틀렸다. SELECT 시 특정 순서로 보이는 것은 DBMS의 편의일 뿐 릴레이션의 본질이 아니다.

  • ① 튜플의 유일성, ③ 속성명의 유일성, ④ 속성값의 원자성으로 옳다.
관계 모델 파일 시스템 설명
릴레이션 파일 테이블
튜플 레코드 행(Row)
속성 필드 열(Column)
차수(Degree) - 속성의 수
카디널리티 - 튜플의 수

문 050. 데이터베이스에서의 뷰(View)에 대한 설명으로 틀린 것은?

  • ① 뷰는 다른 뷰를 기반으로 새로운 뷰를 만들 수 있다.
  • ② 뷰는 일종의 가상 테이블이며, update에는 제약이 따른다.
  • ③ 뷰는 기본 테이블을 만드는 것처럼 create view를 사용하여 만들 수 있다.
  • ④ 뷰는 논리적으로 존재하는 기본 테이블과 다르게 물리적으로만 존재하며 카탈로그에 저장된다.
정답 및 해설 보기

정답 ④

뷰는 SELECT 문만 저장해두고 조회 시 실행하는 가상 테이블로, 논리적으로만 존재하고 물리적 데이터 저장 공간을 갖지 않는다. ④는 "물리적으로만 존재"라 했으므로 가상 테이블 개념과 반대라 틀렸다.

  • ①·②·③ 뷰 기반 뷰 생성·갱신 제약·CREATE VIEW 사용으로 옳다.

💡 보충 — 뷰의 장점: 논리적 데이터 독립성, 데이터 접근 제어(보안), 복잡한 쿼리 단순화.

문 051. 트랜잭션의 상태 중 트랜잭션의 마지막 연산이 실행된 직후의 상태로, 모든 연산의 처리는 끝났지만 트랜잭션이 수행한 최종 결과를 데이터베이스에 반영하지 않은 상태는?

  • ① Active
  • ② Partially Committed
  • ③ Committed
  • ④ Aborted
정답 및 해설 보기

정답 ②

모든 연산은 끝났으나 결과를 DB에 영구 반영(COMMIT)하기 직전의 상태는 부분 완료(Partially Committed) 다.

  • ① Active: 트랜잭션 실행 중
  • ③ Committed: 결과를 DB에 영구 반영한 완전 성공
  • ④ Aborted: 비정상 종료되어 Rollback이 수행된 완전 실패

상태 흐름: Active → Partially Committed → (COMMIT) Committed / (장애) Failed → (ROLLBACK) Aborted.

문 052. SQL의 명령을 사용 용도에 따라 DDL, DML, DCL로 구분할 경우, 그 성격이 나머지 셋과 다른 것은?

  • ① SELECT
  • ② UPDATE
  • ③ INSERT
  • ④ GRANT
정답 및 해설 보기

정답 ④

① SELECT·② UPDATE·③ INSERT는 모두 데이터를 다루는 DML이고, ④ GRANT는 권한을 제어하는 DCL이다. 따라서 성격이 다른 하나는 GRANT다.

문 053. 키의 종류 중 유일성과 최소성을 만족하는 속성 또는 속성들의 집합은?

  • ① Atomic key
  • ② Super key
  • ③ Candidate key
  • ④ Test key
정답 및 해설 보기

정답 ③

유일성 + 최소성을 모두 만족하는 키는 후보키(Candidate key) 다.

  • ② 슈퍼키: 유일성은 만족하나 불필요한 속성이 포함될 수 있어 최소성은 보장 못 함
  • 기본키: 후보키 중 대표로 선정한 하나
  • 대체키: 기본키로 선택되지 못한 나머지 후보키

🔑 암기 — 슈퍼키 ⊃ 후보키 ⊃ 기본키. 후보키 = 유일성 + 최소성.

문 054. 데이터베이스에서 개념적 설계 단계에 대한 설명으로 틀린 것은?

  • ① 산출물로 E-R Diagram을 만들 수 있다.
  • ② DBMS에 독립적인 개념스키마를 설계한다.
  • ③ 트랜잭션 인터페이스를 설계 및 작성한다.
  • ④ 논리적 설계 단계의 앞 단계에서 수행된다.
정답 및 해설 보기

정답 ③

개념적 설계는 E-R 다이어그램·개념 스키마(DBMS 독립)를 산출하며 논리적 설계의 앞 단계다. ③ 트랜잭션 인터페이스 설계논리적 설계 단계의 활동이므로 개념적 설계 설명으로는 틀렸다.

  • ①·②·④ E-R Diagram·DBMS 독립 개념 스키마·논리적 설계 앞 단계로 옳다.

문 055. 테이블의 기본키(Primary Key)로 지정된 속성에 관한 설명으로 가장 거리가 먼 것은?

  • ① NOT NULL로 널 값을 가지지 않는다.
  • ② 릴레이션에서 튜플을 구별할 수 있다.
  • ③ 외래키로 참조될 수 있다.
  • ④ 검색할 때 반드시 필요하다.
정답 및 해설 보기

정답 ④

기본키는 NULL 불가·중복 불가(개체 무결성)로 튜플을 식별하며, 다른 테이블의 외래키로 참조될 수 있다. ④ "검색할 때 반드시 필요"는 틀렸다 — 일반 컬럼으로도 얼마든지 검색할 수 있다.

구분 기본키(PK) 외래키(FK)
역할 튜플 유일 식별 다른 테이블 PK 참조(관계)
제약 NULL 불가·중복 불가 참조 PK에 존재하는 값만
개수 테이블당 하나 여러 개 가능

문 056. 데이터 모델의 구성 요소 중 데이터 구조에 따라 개념 세계나 컴퓨터 세계에서 실제로 표현된 값들을 처리하는 작업을 의미하는 것은?

  • ① Relation
  • ② Data Structure
  • ③ Constraint
  • ④ Operation
정답 및 해설 보기

정답 ④

표현된 값들을 처리(검색·삽입·수정·삭제)하는 작업은 연산(Operation) 이다.

요소 역할
구조(Structure) 데이터의 논리적 뼈대
연산(Operation) 데이터를 다루는 방법
제약조건(Constraint) 무결성을 위한 규칙

🔑 암기 — 데이터 모델 3요소 = 구조·연산·제약조건.

문 057. 다음 [조건]에 부합하는 SQL문을 작성하고자 할 때, [SQL문]의 빈칸에 들어갈 내용으로 옳은 것은? (단, '팀코드' 및 '이름'은 속성이며, '직원'은 테이블이다.)

[조건] 이름이 '정도일'인 팀원이 소속된 팀코드를 이용하여 해당 팀에 소속된 팀원들의 이름을 출력하는 SQL문 작성

SQL
SELECT 이름
FROM   직원
WHERE  팀코드 = (    );
  • WHERE 이름='정도일'
  • SELECT 팀코드 FROM 이름 WHERE 직원='정도일'
  • WHERE 직원='정도일'
  • SELECT 팀코드 FROM 직원 WHERE 이름='정도일'
정답 및 해설 보기

정답 ④

먼저 '정도일'의 팀코드를 구하는 서브쿼리 SELECT 팀코드 FROM 직원 WHERE 이름='정도일' 를 빈칸에 넣고, 그 팀코드와 같은 직원의 이름을 조회한다. 따라서 빈칸은 ④다.

  • ②는 FROM 이름(테이블이 아님)·WHERE 직원(속성이 아님)으로 잘못된 구조다.

실제로 ④를 넣어 실행하면 정도일과 같은 팀코드에 속한 팀원 전원의 이름이 반환된다.

문 058. 무결성 제약조건 중 개체 무결성 제약조건에 대한 설명으로 옳은 것은?

  • ① 릴레이션 내의 튜플들이 각 속성의 도메인에 정해진 값만을 가져야 한다.
  • ② 기본키는 NULL 값을 가져서는 안되며 릴레이션 내에 오직 하나의 값만 존재해야 한다.
  • ③ 자식 릴레이션의 외래키는 부모 릴레이션의 기본키와 도메인이 동일해야 한다.
  • ④ 자식 릴레이션의 값이 변경될 때 부모 릴레이션의 제약을 받는다.
정답 및 해설 보기

정답 ②

개체 무결성은 기본키에 대한 제약으로, 기본키는 NULL을 가질 수 없고 중복될 수 없다. ②가 이를 정확히 설명한다.

  • ① 도메인 무결성, ③·④ 참조 무결성(외래키)에 대한 설명이다.
무결성 대상 규칙
개체 무결성 기본키 NULL 불가·중복 불가
참조 무결성 외래키 참조 PK에 존재하는 값만
도메인 무결성 모든 속성 정해진 타입·범위만

문 059. 관계 데이터 모델에서 릴레이션(Relation)에 포함되어 있는 튜플(Tuple)의 수를 무엇이라고 하는가?

  • ① Degree
  • ② Cardinality
  • ③ Attribute
  • ④ Cartesian product
정답 및 해설 보기

정답 ②

튜플(행)의 수는 카디널리티(Cardinality) 다. 속성(열)의 수는 차수(Degree)다.

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

문 060. 사용자 'PARK'에게 테이블을 생성할 수 있는 권한을 부여하기 위한 SQL문의 구성으로 빈칸에 적합한 내용은?

SQL
GRANT (    ) PARK;
  • ① CREATE TABLE TO
  • ② CREATE TO
  • ③ CREATE FROM
  • ④ CREATE TABLE FROM
정답 및 해설 보기

정답 ①

시스템 권한을 부여하는 구문은 GRANT [권한] TO [사용자]; 이다. 발문이 GRANT ( ) PARK; 이므로 빈칸에 CREATE TABLE TO 를 넣어야 GRANT CREATE TABLE TO PARK; 가 완성된다.

  • ② CREATE TO·③ CREATE FROM·④ CREATE TABLE FROM은 권한명이 불완전하거나 TO 가 아닌 FROM을 써서 틀렸다(권한 부여는 TO, 회수 REVOKE는 FROM).

💡 보충 — 테이블 생성 같은 시스템 권한은 특정 객체에 종속되지 않으므로 ON [객체] 절 없이 GRANT 권한 TO 사용자; 형태로 부여한다.


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

문 061. C언어에서 문자열 처리 함수의 서식과 그 기능의 연결로 틀린 것은?

  • strlen(s) - s의 길이를 구한다.
  • strcpy(s1, s2) - s2를 s1으로 복사한다.
  • strcmp(s1, s2) - s1과 s2를 연결한다.
  • strrev(s) - s를 거꾸로 변환한다.
정답 및 해설 보기

정답 ③

strcmpcmpcompare(비교) 의 약자로, 두 문자열을 비교해 같으면 0, 사전순으로 s1이 크면 양수, 작으면 음수를 반환한다. ③은 "연결"이라 했으므로 틀렸다. 문자열 연결(concatenate)은 strcat(cat) 이다.

  • ① strlen(length)·② strcpy(copy)·④ strrev(reverse)는 옳다.
함수 기능
strlen 길이 계산
strcpy 복사
strcat 연결
strcmp 비교

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

c
#include <stdio.h>
int main(int argc, char *argv[]) {
    int a=5, b=3, c=12;
    int t1, t2, t3;
    t1 = a && b;
    t2 = a || b;
    t3 = !c;
    printf("%d", t1+t2+t3);
    return 0;
}
  • ① 0
  • ② 2
  • ③ 5
  • ④ 14
정답 및 해설 보기

정답 ②

&&·||·! 는 모두 논리 연산자다. C에서는 0이 아닌 값을 참(1), 0을 거짓으로 다룬다.

  • t1 = a && b → 5(참) && 3(참) = 참 = 1
  • t2 = a || b → 5(참) || 3(참) = 참 = 1
  • t3 = !c → !12(참) = 거짓 = 0

t1 + t2 + t3 = 1 + 1 + 0 = 2 이므로 출력은 2다.

구분 비트 연산자 논리 연산자
AND & &&
OR | ||
NOT ~ !

⚠️ 함정 — &&·||·! 의 결과는 항상 1(참) 또는 0(거짓)이다.

문 063. 다음 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 = [0,1,2,…,9], ob2.c[i] = ob1.c[i] + i = 2i = [0,2,4,…,18] 가 된다.

두 번째 반복문은 i 가 2씩 증가하므로 짝수 인덱스(0·2·4·6·8)만 더한다.

  • ob1.a = 0 + 2 + 4 + 6 + 8 = 20
  • ob2.a = 0 + 4 + 8 + 12 + 16 = 40

ob1.a + ob2.a = 20 + 40 = 60 이므로 출력은 60이다.

문 064. IP 프로토콜에서 사용하는 필드와 해당 필드에 대한 설명으로 틀린 것은?

  • ① Header Length는 IP 프로토콜의 헤더 길이를 32비트 워드 단위로 표시한다.
  • ② Packet Length는 IP 헤더를 제외한 패킷 전체의 길이를 나타내며 최대 크기는 2³²-1비트이다.
  • ③ Time To Live는 송신 호스트가 패킷을 전송하기 전 네트워크에서 생존할 수 있는 시간을 지정한 것이다.
  • ④ Version Number는 IP 프로토콜의 버전번호를 나타낸다.
정답 및 해설 보기

정답 ②

Packet Length(Total Length) 필드는 IP 헤더를 포함한 패킷 전체 길이를 바이트 단위로 나타내며, 16비트 필드라 최대 2¹⁶-1(65,535) 바이트다. ②는 "헤더를 제외"·"2³²-1 비트"라 했으므로 포함/제외와 단위가 모두 틀렸다.

  • ①·③·④ Header Length·TTL·Version Number 설명으로 옳다.
필드 크기 역할
Version 4 bit IP 버전(IPv4=4)
Header Length 4 bit 헤더 길이(32비트 워드)
Total Length 16 bit 헤더+데이터 전체 길이(바이트)
TTL 8 bit 패킷 생존 시간(홉)

문 065. 다음 Python 프로그램의 실행 결과가 [실행 결과]와 같을 때, 빈칸에 적합한 것은?

Python
x = 20
if x == 10:
    print('10')
(    ) x == 20:
    print('20')
else:
    print('other')

[실행 결과] 20

  • ① either
  • ② elif
  • ③ else if
  • ④ else
정답 및 해설 보기

정답 ②

Python에서 여러 조건을 순차 검사하는 키워드는 elif(else if의 축약)다. x = 20 이므로 if x == 10 은 거짓이고, elif x == 20 이 참이 되어 '20'이 출력된다. 따라서 빈칸은 elif다.

⚠️ 함정 — C/Java는 else if, Python은 elif. 블록 구분도 중괄호가 아닌 들여쓰기다.

문 066. RIP 라우팅 프로토콜에 대한 설명으로 틀린 것은?

  • ① 경로 선택 메트릭은 홉 카운트(Hop Count)이다.
  • ② 라우팅 프로토콜을 IGP와 EGP로 분류했을 때 EGP에 해당한다.
  • ③ 최단 경로 탐색에 Bellman-Ford 알고리즘을 사용한다.
  • ④ 각 라우터는 이웃 라우터들로부터 수신한 정보를 이용하여 라우팅 표를 갱신한다.
정답 및 해설 보기

정답 ②

RIP은 하나의 자치 시스템(AS) 내부에서 쓰이는 대표적인 IGP다. ②는 EGP라 했으므로 틀렸다(EGP의 대표는 BGP).

  • ①·③·④ 홉 카운트 메트릭·Bellman-Ford·이웃 정보 기반 갱신은 RIP의 특징으로 옳다.
분류 종류 대표
적용 범위 IGP(내부) / EGP(외부) RIP·OSPF / BGP
알고리즘 거리 벡터 / 링크 상태 RIP / OSPF

문 067. 다음에서 설명하는 프로세스 스케줄링은?

최소 작업 우선(SJF) 기법의 약점을 보완한 비선점 스케줄링 기법으로 다음과 같은 식을 이용해 우선순위를 판별한다.

우선순위 = (대기한 시간 + 서비스를 받을 시간) / 서비스를 받을 시간

  • ① FIFO 스케줄링
  • ② RR 스케줄링
  • ③ HRN 스케줄링
  • ④ MQ 스케줄링
정답 및 해설 보기

정답 ③

제시된 공식은 HRN(Highest Response Ratio Next) 의 우선순위 계산식이다. SJF는 실행 시간이 짧은 작업을 먼저 처리해 효율적이지만 긴 작업이 계속 밀리는 기아 현상이 생긴다. HRN은 대기 시간을 분자에 더해, 오래 기다린 작업의 우선순위를 높여 이를 보완한다.

알고리즘 기준
FCFS(FIFO) 도착 순서
SJF 실행 시간(기아 발생 가능)
HRN (대기+실행)/실행

문 068. UNIX 운영체제에 관한 특징으로 틀린 것은?

  • ① 하나 이상의 작업에 대하여 백그라운드에서 수행이 가능하다.
  • ② Multi-User는 지원하지만 Multi-Tasking은 지원하지 않는다.
  • ③ 트리 구조의 파일 시스템을 갖는다.
  • ④ 이식성이 높으며 장치 간의 호환성이 높다.
정답 및 해설 보기

정답 ②

UNIX는 Multi-User와 Multi-Tasking을 모두 지원한다. ②는 멀티태스킹을 지원하지 않는다고 했으므로 틀렸다.

  • ①·③·④ 백그라운드 수행·트리 구조 파일 시스템·높은 이식성은 옳다.

문 069. UDP 프로토콜의 특징이 아닌 것은?

  • ① 비연결형 서비스를 제공한다.
  • ② 단순한 헤더 구조로 오버헤드가 적다.
  • ③ 주로 주소를 지정하고, 경로를 설정하는 기능을 한다.
  • ④ TCP와 같이 트랜스포트 계층에 존재한다.
정답 및 해설 보기

정답 ③

주소 지정·경로 설정은 네트워크 계층의 IP 가 담당하는 기능이다. ③은 UDP의 특징이 아니다. UDP는 전송 계층에서 비연결형으로 데이터를 빠르게 실어 나를 뿐 경로를 만들지 않는다.

  • ①·②·④ 비연결형·단순 헤더·전송 계층 프로토콜은 UDP의 특징으로 옳다.
구분 TCP UDP
연결 연결형 비연결형
신뢰성 높음 낮음
속도 느림 빠름
헤더 큼(20B~) 작음(8B)

문 070. Python 데이터 타입 중 시퀀스(Sequence) 데이터 타입에 해당하며 다양한 데이터 타입들을 주어진 순서에 따라 저장할 수 있으나 저장된 내용을 변경할 수 없는 것은?

  • ① 복소수(complex) 타입
  • ② 리스트(list) 타입
  • ③ 사전(dict) 타입
  • ④ 튜플(tuple) 타입
정답 및 해설 보기

정답 ④

순서가 있는 시퀀스이면서 변경 불가능(Immutable) 한 것은 튜플(tuple) 이다. 리스트는 시퀀스이지만 변경 가능(Mutable)하고, 사전은 키-값 매핑이다.

구분 리스트 튜플
문법 [ ] ( )
변경 가능(Mutable) 불가(Immutable)

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

Java
public class Rarr {
    static int[] marr() {
        int temp[] = new int[4];
        for(int i=0; i<temp.length; i++)
            temp[i] = i;
        return temp;
    }
    public static void main(String[] args) {
        int iarr[];
        iarr = marr();
        for(int i=0; i<iarr.length; i++)
            System.out.print(iarr[i] + " ");
    }
}
  • ① 1 2 3 4
  • ② 0 1 2 3
  • ③ 1 2 3
  • ④ 0 1 2
정답 및 해설 보기

정답 ②

marr() 은 크기 4의 배열에 temp[i] = i 로 0·1·2·3을 채워 반환한다. iarr 이 이를 받아 처음부터 끝까지 출력하므로 결과는 0 1 2 3 이다.

문 072. 다음 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
정답 및 해설 보기

정답 ③

  • mx = a < b ? b : a1 < 2 참이므로 mx = b = 2
  • if(mx==1)2 == 1 거짓이므로 else 블록 실행
  • mn = b < mx ? d : c2 < 2 거짓이므로 mn = c = 3

따라서 출력은 3이다.

💡 보충 — 삼항 연산자 (조건) ? 참일 때 값 : 거짓일 때 값.

문 073. 다음 중 Myers가 구분한 응집도(Cohesion)의 정도에서 가장 낮은 응집도를 갖는 단계는?

  • ① 순차적 응집도(Sequential Cohesion)
  • ② 기능적 응집도(Functional Cohesion)
  • ③ 시간적 응집도(Temporal Cohesion)
  • ④ 우연적 응집도(Coincidental Cohesion)
정답 및 해설 보기

정답 ④

응집도는 모듈 내부 요소들이 얼마나 밀접한지를 나타내며, 가장 낮은(나쁜) 단계는 서로 관련 없는 기능이 우연히 모인 우연적 응집도다.

응집도(강 → 약): 기능적 → 순차적 → 통신적 → 절차적 → 시간적 → 논리적 → 우연적.

🔑 암기 — 응집도 7단계 = 우논시절통순기(약 → 강 역순으로 읽으면 우연·논리·시간·절차·통신·순차·기능).

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

c
#include <stdio.h>
int main(int argc, 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
정답 및 해설 보기

정답 ②

  • r1 = (2<=2) || (3>3) → 참 || 거짓 = 1
  • r2 = !3 → !참 = 0
  • r3 = (1>1) && (2<3) → 거짓 && 참 = 0

r3 - r2 + r1 = 0 - 0 + 1 = 1 이므로 출력은 1이다.

문 075. IP 프로토콜의 주요 특징에 해당하지 않는 것은?

  • ① 체크섬(Checksum) 기능으로 데이터 체크섬(Data Checksum)만 제공한다.
  • ② 패킷을 분할, 병합하는 기능을 수행하기도 한다.
  • ③ 비연결형 서비스를 제공한다.
  • ④ Best Effort 원칙에 따른 전송 기능을 제공한다.
정답 및 해설 보기

정답 ①

IP의 체크섬은 헤더에 대한 오류만 검사한다(헤더 체크섬). 데이터(Payload) 오류 검사는 상위 계층(TCP/UDP)의 몫이다. ①은 "데이터 체크섬만 제공"이라 반대로 설명했으므로 틀렸다.

  • ② 분할·병합(Fragmentation), ③ 비연결형, ④ Best Effort는 IP의 특징으로 옳다.

문 076. 4개의 페이지를 수용할 수 있는 주기억장치가 있으며, 초기에는 모두 비어 있다고 가정한다. 다음의 순서로 페이지 참조가 발생할 때, LRU 페이지 교체 알고리즘을 사용할 경우 몇 번의 페이지 결함이 발생하는가?

텍스트
페이지 참조 순서: 1, 2, 3, 1, 2, 4, 1, 2, 5
  • ① 5회
  • ② 6회
  • ③ 7회
  • ④ 8회
정답 및 해설 보기

정답 ①

LRU는 가장 오래 사용되지 않은 페이지를 교체한다. 프레임 4개로 추적하면 다음과 같다.

참조 프레임 상태 결함
1 1 O
2 1 2 O
3 1 2 3 O
1 1 2 3 hit
2 1 2 3 hit
4 1 2 3 4 O
1 1 2 3 4 hit
2 1 2 3 4 hit
5 (LRU 3 교체) 1 2 4 5 O

총 페이지 결함은 5회다(5 참조 시 가장 오래 안 쓰인 3이 교체됨).

문 077. 사용자 수준에서 지원되는 스레드(thread)가 커널에서 지원되는 스레드에 비해 가지는 장점으로 옳은 것은?

  • ① 한 프로세스가 운영체제를 호출할 때 전체 프로세스가 대기할 필요가 없으므로 시스템 성능을 높일 수 있다.
  • ② 동시에 여러 스레드가 커널에 접근할 수 있으므로 여러 스레드가 시스템 호출을 동시에 사용할 수 있다.
  • ③ 각 스레드를 개별적으로 관리할 수 있으므로 스레드의 독립적인 스케줄링이 가능하다.
  • ④ 커널 모드로의 전환 없이 스레드 교환이 가능하므로 오버헤드가 줄어든다.
정답 및 해설 보기

정답 ④

사용자 수준 스레드는 사용자 영역의 라이브러리가 스레드를 관리하므로 커널 모드 전환 없이 문맥 교환이 가능해 오버헤드가 적다. ④가 그 장점을 정확히 설명한다.

  • ①·②·③ 은 오히려 커널 수준 스레드의 장점이다. 사용자 수준 스레드는 한 스레드가 시스템 호출로 블로킹되면 프로세스 전체가 멈추는 단점이 있다.

문 078. 한 모듈이 다른 모듈의 내부 기능 및 그 내부 자료를 참조하는 경우의 결합도는?

  • ① 내용 결합도(Content Coupling)
  • ② 제어 결합도(Control Coupling)
  • ③ 공통 결합도(Common Coupling)
  • ④ 스탬프 결합도(Stamp Coupling)
정답 및 해설 보기

정답 ①

다른 모듈의 내부 기능·자료를 직접 참조하는 것은 결합도가 가장 높은(나쁜) 내용 결합도(Content Coupling) 다.

결합도(낮음 → 높음): 자료 → 스탬프 → 제어 → 외부 → 공통 → 내용.

🔑 암기 — 결합도 6단계 = 내공외제스자(높음 → 낮음: 내용·공통·외부·제어·스탬프·자료).

문 079. a[0]의 주소값이 10일 경우 다음 C언어 프로그램이 실행되었을 때의 결과는? (단, int 형의 크기는 4Byte로 가정한다.)

c
#include <stdio.h>
int main(int argc, char *argv[]) {
    int a[] = {14, 22, 30, 38};
    printf("%u, ", &a[2]);
    printf("%u", a);
    return 0;
}
  • ① 14, 10
  • ② 14, 14
  • ③ 18, 10
  • ④ 18, 14
정답 및 해설 보기

정답 ③

배열은 메모리에 연속 저장되고 int는 4바이트이므로, a[0] 주소가 10이면 &a[2] = 10 + 2 × 4 = 18 이다. 또한 배열 이름 a 는 시작 주소(&a[0])와 같으므로 10이다. 따라서 출력은 18, 10 이다.

🔑 암기 — &a[i] = 시작주소 + i × 자료형 크기, 배열 이름 = 시작 주소.

문 080. 모듈화(Modularity)와 관련한 설명으로 틀린 것은?

  • ① 시스템을 모듈로 분할하면 각각의 모듈을 별개로 만들고 수정할 수 있기 때문에 좋은 구조가 된다.
  • ② 응집도는 모듈과 모듈 사이의 상호의존 또는 연관 정도를 의미한다.
  • ③ 모듈 간의 결합도가 약해야 독립적인 모듈이 될 수 있다.
  • ④ 모듈 내 구성 요소들 간의 응집도가 강해야 좋은 모듈 설계이다.
정답 및 해설 보기

정답 ②

②가 설명하는 "모듈과 모듈 사이의 상호의존 정도"는 결합도(Coupling) 의 정의다. 응집도(Cohesion) 는 모듈 내부 요소들의 밀접한 정도를 뜻하므로 ②는 틀렸다.

  • ①·③·④ 모듈 분할의 장점·낮은 결합도·높은 응집도는 좋은 모듈화 원칙으로 옳다.

🔑 암기 — 좋은 모듈화 = 높은 응집도(내부 결속) + 낮은 결합도(외부 독립).


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

문 081. 소프트웨어 개발에서 정보보안 3요소에 해당하지 않는 설명은?

  • ① 기밀성: 인가된 사용자에 대해서만 자원 접근이 가능하다.
  • ② 무결성: 인가된 사용자에 대해서만 자원 수정이 가능하며 전송 중인 정보는 수정되지 않는다.
  • ③ 가용성: 인가된 사용자는 가지고 있는 권한 범위 내에서 언제든 자원 접근이 가능하다.
  • ④ 휘발성: 인가된 사용자가 수행한 데이터는 처리 완료 즉시 폐기 되어야 한다.
정답 및 해설 보기

정답 ④

정보보안 3요소는 기밀성(Confidentiality)·무결성(Integrity)·가용성(Availability), 즉 CIA 다. ④ 휘발성은 전원이 꺼지면 데이터가 사라지는 메모리 특성으로, 정보보안 3요소가 아니다.

  • ① 기밀성, ② 무결성, ③ 가용성을 옳게 설명한다.

🔑 암기 — 정보보안 3요소 = CIA(기밀성·무결성·가용성).

문 082. 어떤 외부 컴퓨터가 접속되면 접속 인가 여부를 점검해서 인가된 경우에는 접속이 허용되고, 그 반대의 경우에는 거부할 수 있는 접근제어 유틸리티는?

  • ① tcp wrapper
  • ② trace checker
  • ③ token finder
  • ④ change detector
정답 및 해설 보기

정답 ①

TCP Wrapper 는 UNIX 계열에서 접속 클라이언트의 IP를 규칙 파일(/etc/hosts.allow·/etc/hosts.deny)과 대조해 접속을 허용/거부하는 호스트 기반 접근 제어 도구다. ②·③·④는 표준 보안 유틸리티 명칭이 아니다.

문 083. 기기를 키오스크에 갖다 대면 원하는 데이터를 바로 가져올 수 있는 기술로 10cm 이내 근접 거리에서 기가급 속도로 데이터 전송이 가능한 초고속 근접무선통신(NFC: Near Field Communication) 기술은?

  • ① BcN(Broadband Convergence Network)
  • ② Zing
  • ③ Marine Navi
  • ④ C-V2X(Cellular Vehicle To Everything)
정답 및 해설 보기

정답 ②

Zing 은 NFC의 느린 속도를 보완한 초고속 근접통신 기술로, 10cm 이내에서 기가급(수 Gbps) 속도로 대용량 데이터를 전송한다. "초고속·기가급"이 핵심 단서다.

  • ① BcN: 통신·방송·인터넷이 융합된 차세대 통합 네트워크
  • ③ Marine Navi: 선박 안전 솔루션
  • ④ C-V2X: 차량과 사물 간 통신 기술

문 084. 취약점 관리를 위한 응용 프로그램의 보안 설정과 가장 거리가 먼 것은?

  • ① 서버 관리실 출입 통제
  • ② 실행 프로세스 권한 설정
  • ③ 운영체제의 접근 제한
  • ④ 운영체제의 정보 수집 제한
정답 및 해설 보기

정답 ①

②·③·④는 소프트웨어 설정으로 보안을 강화하는 기술적 보안이다. ① 서버 관리실 출입 통제는 시설·장비를 보호하는 물리적 보안이므로 "응용 프로그램의 보안 설정"과 가장 거리가 멀다.

💡 보충 — 보안은 물리적·기술적·관리적 보안으로 나뉜다.

문 085. 소프트웨어 개발 프레임워크와 관련한 설명으로 가장 적절하지 않은 것은?

  • ① 반제품 상태의 제품을 토대로 도메인별로 필요한 서비스 컴포넌트를 사용하여 재사용성 확대와 성능을 보장받을 수 있게 하는 개발 소프트웨어이다.
  • ② 라이브러리와는 달리 사용자 코드에서 프레임워크를 호출해서 사용하고, 그에 대한 제어도 사용자 코드가 가지는 방식이다.
  • ③ 설계 관점에 개발 방식을 패턴화시키기 위한 노력의 결과물인 소프트웨어 디자인 패턴을 반제품 소프트웨어 상태로 집적화시킨 것으로 볼 수 있다.
  • ④ 프레임워크의 동작 원리를 그 제어 흐름의 일반적인 프로그램 흐름과 반대로 동작한다고 해서 IoC(Inversion of Control)이라고 설명하기도 한다.
정답 및 해설 보기

정답 ②

프레임워크는 프레임워크가 사용자 코드를 호출하고 전체 제어 흐름을 주도한다(제어의 역전, IoC). ②는 사용자 코드가 프레임워크를 호출하고 제어도 사용자 코드가 가진다고 했는데, 이는 라이브러리에 대한 설명이므로 틀렸다.

구분 프레임워크 라이브러리
제어 흐름 프레임워크가 내 코드 호출(IoC) 내 코드가 호출
비유 조립식 주택 공구함

문 086. 클라우드 기반 HSM(Cloud-based Hardware Security Module)에 대한 설명으로 틀린 것은?

  • ① 클라우드(데이터센터) 기반 암호화 키 생성, 처리, 저장 등을 하는 보안 기기이다.
  • ② 국내에서는 공인인증제의 폐지와 전자서명법 개정을 추진하면서 클라우드 HSM 용어가 자주 등장하였다.
  • ③ 클라우드에 인증서를 저장하므로 기존 HSM 기기나 휴대폰에 인증서를 저장해 다닐 필요가 없다.
  • ④ 하드웨어가 아닌 소프트웨어적으로만 구현되기 때문에 소프트웨어식 암호 기술에 내재된 보안 취약점을 해결할 수 없다는 것이 주요 단점이다.
정답 및 해설 보기

정답 ④

HSM은 이름 그대로 Hardware Security Module, 즉 암호화 키를 안전하게 다루는 하드웨어 기반 장비다. 클라우드 HSM도 그 근간은 하드웨어다. ④는 "소프트웨어적으로만 구현"이라 했으므로 HSM의 정체성을 부정하는 틀린 설명이다.

  • ①·②·③ HSM의 정의·국내 등장 배경·인증서 휴대 불필요는 옳다.

문 087. 다음 내용이 설명하는 기술로 가장 적절한 것은?

  • 다른 국을 향하는 호출이 중계에 의하지 않고 직접 접속되는 그물 모양의 네트워크이다.
  • 통신량이 많은 비교적 소수의 국 사이에 구성될 경우 경제적이며 간편하지만, 다수의 국 사이에는 회선이 세분화 되어 비경제적일 수도 있다.
  • 해당 형태의 무선 네트워크의 경우 대용량을 빠르고 안전하게 전달할 수 있어 행사장이나 군 등에서 많이 활용된다.
  • ① Virtual Local Area Network
  • ② Simple Station Network
  • ③ Mesh Network
  • ④ Modem Network
정답 및 해설 보기

정답 ③

모든 노드가 그물처럼 직접 연결되는 구조는 망형(Mesh) 네트워크다. 일부 회선 장애에도 대체 경로로 통신이 유지돼 안정성이 높지만, 노드가 늘면 회선 수가 n(n-1)/2로 급증해 비용이 커진다.

토폴로지 특징
버스형 저렴하나 버스 장애 시 전체 마비
링형 충돌 없으나 추가·삭제 어려움
성형 유지보수 쉬우나 중앙 장비 장애에 취약
망형 매우 안정적이나 비용 큼

문 088. 물리적 위협으로 인한 문제에 해당하지 않는 것은?

  • ① 화재, 홍수 등 천재지변으로 인한 위협
  • ② 하드웨어 파손, 고장으로 인한 장애
  • ③ 방화, 테러로 인한 하드웨어와 기록장치를 물리적으로 파괴하는 행위
  • ④ 방화벽 설정의 잘못된 조작으로 인한 네트워크, 서버 보안 위협
정답 및 해설 보기

정답 ④

①(자연재해)·②(장비 장애)·③(물리적 파괴)은 모두 물리적 위협이다. ④ 방화벽 설정 오조작은 소프트웨어 설정 실수로 인한 기술적/논리적 위협이므로 물리적 위협이 아니다.

문 089. 악성코드의 유형 중 다른 컴퓨터의 취약점을 이용하여 스스로 전파하거나 메일로 전파되며 스스로를 증식하는 것은?

  • ① Worm
  • ② Rogue Ware
  • ③ Adware
  • ④ Reflection Attack
정답 및 해설 보기

정답 ①

숙주 파일 없이 독자적으로 존재하며 네트워크 취약점으로 스스로 전파·증식하는 악성코드는 웜(Worm) 이다.

  • ② Rogue Ware(가짜 백신)·③ Adware(광고)·④ Reflection Attack(반사 공격)은 자기 증식형 악성코드가 아니다.
구분 자기 증식 특징
바이러스 불가(숙주 필요) 정상 파일에 기생
가능 네트워크로 전파
트로이 목마 불가 정상 프로그램 위장

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

시스템 공격 기법 중 하나로 허용범위 이상의 ICMP 패킷을 전송하여 대상 시스템의 네트워크를 마비시킨다.

  • ① Ping of Death
  • ② Session Hijacking
  • ③ Piggyback Attack
  • ④ XSS
정답 및 해설 보기

정답 ①

허용 범위를 초과하는 큰 ICMP 패킷을 보내 대상을 마비시키는 공격은 Ping of Death 다.

  • ② Session Hijacking: 정상 세션 가로채기
  • ③ Piggyback Attack: 인가 사용자 접속에 편승
  • ④ XSS: 웹에 악성 스크립트 삽입

문 091. 다음 설명에 해당하는 소프트웨어는?

  • 개발해야 할 애플리케이션의 일부분이 이미 내장된 클래스 라이브러리로 구현이 되어 있다.
  • 따라서, 그 기반이 되는 이미 존재하는 부분을 확장 및 이용하는 것으로 볼 수 있다.
  • Java 기반의 대표적인 소프트웨어로는 스프링(Spring)이 있다.
  • ① 전역 함수 라이브러리
  • ② 소프트웨어 개발 프레임워크
  • ③ 컨테이너 아키텍처
  • ④ 어휘 분석기
정답 및 해설 보기

정답 ②

필수 기능이 미리 구현돼 있고 그 뼈대를 확장해 사용하며, Java의 대표가 스프링(Spring)인 소프트웨어는 소프트웨어 개발 프레임워크다(문 085와 같은 개념).

문 092. 소프트웨어 개발 방법론 중 애자일(Agile) 방법론의 특징과 가장 거리가 먼 것은?

  • ① 각 단계의 결과가 완전히 확인된 후 다음 단계 진행
  • ② 소프트웨어 개발에 참여하는 구성원들 간의 의사소통 중시
  • ③ 환경 변화에 대한 즉시 대응
  • ④ 프로젝트 상황에 따른 주기적 조정
정답 및 해설 보기

정답 ①

①은 한 단계가 완전히 끝나야 다음으로 넘어가는 폭포수 모델의 특징이다. 애자일은 반복·점진적 개발로 변화에 유연하게 대응하므로 ①과 거리가 멀다.

  • ②(의사소통)·③(즉시 대응)·④(주기적 조정)은 애자일의 특징으로 옳다.

문 093. 대칭 암호 알고리즘과 비대칭 암호 알고리즘에 대한 설명으로 틀린 것은?

  • ① 대칭 암호 알고리즘은 비교적 실행 속도가 빠르기 때문에 다양한 암호의 핵심 함수로 사용될 수 있다.
  • ② 대칭 암호 알고리즘은 비밀키 전달을 위한 키 교환이 필요하지 않아 암호화 및 복호화의 속도가 빠르다.
  • ③ 비대칭 암호 알고리즘은 자신만이 보관하는 비밀키를 이용하여 인증, 전자서명 등에 적용이 가능하다.
  • ④ 대표적인 대칭키 암호 알고리즘으로는 AES, IDEA 등이 있다.
정답 및 해설 보기

정답 ②

대칭키는 암호화·복호화에 같은 키를 쓰므로, 송수신자가 비밀키를 안전하게 공유해야 하는 키 배송 문제가 가장 큰 단점이다. ②는 "키 교환이 필요하지 않다"라며 이를 반대로 설명해 틀렸다.

  • ①(빠른 속도)·③(비대칭키 활용)·④(AES·IDEA)는 옳다.
구분 대칭키 비대칭키
1개(동일) 2개(공개/개인)
키 배송 문제 있음 없음
속도 빠름 느림
대표 AES·DES·SEED RSA·ECC

문 094. 두 명의 개발자가 5개월에 걸쳐 10000 라인의 코드를 개발하였을 때, 월별(man-month) 생산성 측정을 위한 계산 방식으로 가장 적합한 것은?

  • ① 10000/2
  • ② 10000/(5×2)
  • ③ 10000/5
  • ④ (2×10000)/5
정답 및 해설 보기

정답 ②

생산성 = 전체 코드 라인 수 ÷ 총 투입 공수(Man-Month)이고, 총 공수 = 개발자 수 × 기간 = 2 × 5 = 10 MM이다. 따라서 10000 / (5 × 2) = 1000 LOC/MM 으로 계산하는 ②가 적합하다.

🔑 암기 — Man-Month = 인원 × 개월, 생산성 = LOC ÷ Man-Month.

문 095. 접근 통제 방법 중 조직 내에서 직무, 직책 등 개인의 역할에 따라 결정하여 부여하는 접근 정책은?

  • ① RBAC
  • ② DAC
  • ③ MAC
  • ④ QAC
정답 및 해설 보기

정답 ①

직무·직책 같은 역할(Role) 에 따라 권한을 부여하는 접근 통제는 RBAC(Role-Based Access Control) 다.

  • ② DAC: 자원 소유자가 권한 관리
  • ③ MAC: 시스템이 정한 보안 등급으로 통제

문 096. COCOMO(Constructive Cost Model) 모형의 특징이 아닌 것은?

  • ① 프로젝트를 완성하는데 필요한 man-month로 산정 결과를 나타낼 수 있다.
  • ② 보헴(Boehm)이 제안한 것으로 원시코드 라인 수에 의한 비용 산정 기법이다.
  • ③ 비교적 작은 규모의 프로젝트 기록을 통계 분석하여 얻은 결과를 반영한 모델이며 중소 규모 소프트웨어 프로젝트 비용 추정에 적합하다.
  • ④ 프로젝트 개발 유형에 따라 object, dynamic, function의 3가지 모드로 구분한다.
정답 및 해설 보기

정답 ④

COCOMO는 개발 유형을 조직형(Organic)·반분리형(Semi-detached)·내장형(Embedded) 3가지로 구분한다. ④는 object·dynamic·function이라 했으므로 틀렸다.

  • ①(man-month 산정)·②(보헴·LOC 기반)·③(중소 규모 적합)은 옳다.

🔑 암기 — COCOMO 3모드 = 조직형 → 반분리형 → 내장형(규모·복잡도 순).

문 097. 각 사용자 인증의 유형에 대한 설명으로 가장 적절하지 않은 것은?

  • ① 지식: 주체는 '그가 알고 있는 것'을 보여주며 예시로는 패스워드, PIN 등이 있다.
  • ② 소유: 주체는 '그가 가지고 있는 것'을 보여주며 예시로는 토큰, 스마트카드 등이 있다.
  • ③ 존재: 주체는 '그를 대체하는 것'을 보여주며 예시로는 패턴, QR 등이 있다.
  • ④ 행위: 주체는 '그가 하는 것'을 보여주며 예시로는 서명, 움직임, 음성 등이 있다.
정답 및 해설 보기

정답 ③

'존재(생체) 기반' 인증은 지문·홍채·얼굴 등 신체 특징을 쓰는데, ③은 예시로 패턴(지식 기반)·QR(소유 기반) 을 들었고 "그를 대체하는 것"이라는 설명도 생체 인증과 맞지 않아 가장 부적절하다.

  • ① 지식, ② 소유, ④ 행위 기반 설명은 적절하다.

💡 보충 — 인증 요소: 지식(아는 것)·소유(가진 것)·존재(생체)·행위.

문 098. 시스템의 사용자가 로그인하여 명령을 내리는 과정에 대한 시스템의 동작 중 다음 설명에 해당하는 것은?

  • 자신의 신원(Identity)을 시스템에 증명하는 과정이다.
  • 아이디와 패스워드를 입력하는 과정이 가장 일반적인 예시라고 볼 수 있다.
  • ① Aging
  • ② Accounting
  • ③ Authorization
  • ④ Authentication
정답 및 해설 보기

정답 ④

신원을 증명하는 과정은 인증(Authentication) 이다. ③ 인가(Authorization)는 인증된 사용자가 무엇을 할 수 있는지 권한을 결정하는 과정으로 구분된다.

🔑 암기 — 인증(Authentication) = "누구인가" / 인가(Authorization) = "무엇을 할 수 있나".

문 099. 다음에서 설명하는 IT 기술은?

  • 네트워크를 제어부, 데이터 전달부로 분리하여 네트워크 관리자가 보다 효율적으로 네트워크를 제어, 관리할 수 있는 기술
  • 기존의 라우터, 스위치 등과 같이 하드웨어에 의존하는 네트워크 체계에서 안정성, 속도, 보안 등을 소프트웨어로 제어, 관리하기 위해 개발됨
  • 네트워크 장비의 펌웨어 업그레이드를 통해 사용자의 직접적인 데이터 전송 경로 관리가 가능하고, 기존 네트워크에는 영향을 주지 않으면서 특정 서비스의 전송 경로 수정을 통하여 인터넷상에서 발생하는 문제를 처리할 수 있음
  • ① SDN(Software Defined Networking)
  • ② NFS(Network File System)
  • ③ Network Mapper
  • ④ AOE Network
정답 및 해설 보기

정답 ①

네트워크의 제어부와 데이터 전달부를 분리해 소프트웨어로 중앙에서 제어·관리하는 기술은 SDN(Software Defined Networking) 이다.

  • ② NFS: 네트워크 파일 공유 시스템
  • ③ Network Mapper(nmap): 네트워크 탐색·보안 점검 유틸리티
  • ④ AOE Network: 작업 수행 최단시간을 구하는 간선 작업 네트워크

문 100. 프로젝트 일정 관리 시 사용하는 PERT 차트에 대한 설명에 해당하는 것은?

  • ① 각 작업들이 언제 시작하고 언제 종료되는지에 대한 일정을 막대 도표를 이용하여 표시한다.
  • ② 시간선(Time-line) 차트라고도 한다.
  • ③ 수평 막대의 길이는 각 작업의 기간을 나타낸다.
  • ④ 작업들 간의 상호 관련성, 결정경로, 경계시간, 자원할당 등을 제시한다.
정답 및 해설 보기

정답 ④

PERT는 작업을 노드로, 선후 관계를 화살표로 잇는 네트워크 다이어그램으로, 작업 간 상호 관련성과 주 공정(Critical Path)을 분석한다. ④가 이에 해당한다.

  • ①·②·③(막대 도표·시간선·막대 길이=기간)은 모두 간트(Gantt) 차트에 대한 설명이다.
구분 PERT 간트 차트
형태 네트워크 다이어그램 막대 도표
초점 작업 의존 관계·주 공정 작업 기간·일정

이 회차 한 장 요약

과목 빈출·핵심 토픽 다시 볼 문항
Ⅰ 소프트웨어 설계 UML 분류·미들웨어(RPC 동기/MOM 비동기)·애자일 4대 가치·유스케이스 관계·GoF 분류·MVC 002·004·015·020
Ⅱ 소프트웨어 개발 통합테스트(스텁/드라이버)·화이트/블랙박스·검색·정렬·인스펙션 절차·스택/큐 021·032·033·037·039
Ⅲ 데이터베이스 구축 정규화(두부이결다조)·ACID·SQL 분류(DDL/DML/DCL)·키(후보키)·무결성 3종·뷰·서브쿼리 041·051·053·057·060
Ⅳ 프로그래밍 언어 활용 C 논리/비트 연산·구조체 추적·Java 배열/삼항·Python elif·응집도/결합도·TCP/UDP·LRU 062·063·076·078
Ⅴ 정보시스템 구축관리 정보보안 CIA·프레임워크(IoC)·암호(대칭/비대칭)·man-month·RBAC·COCOMO·SDN 085·093·094·096

🎯 빈출 — 매 회차 단골: 응집도/결합도(우논시절통순기·내공외제스자), TCP/UDP, 정규화, ACID, SQL 분류, 애자일, GoF.

⚠️ 함정 — 코드 추적(062·063·071·072·074), 계산(022·032·076·094), 보기 반대 진술(045 인덱스 ADD/DELETE·049 튜플 순서·093 대칭키 키 교환).

🔑 핵심 두문자 — 정규화 두부이결다조 · 응집도 우논시절통순기 · 결합도 내공외제스자 · 보안 3요소 CIA · 트랜잭션 ACID.

전체 목록 기출문제풀이