문서 읽는 데 142분 · 기출 3회 · 100문항

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

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

2021년 8월 시행(제3회) 기출. 100문항·5과목 × 20문항. 출처: 기출3회 기출문제


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

문 001. 럼바우(Rumbaugh)의 객체지향 분석 기법 중 자료 흐름도(DFD)를 주로 이용하는 것은?

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

정답 ①

럼바우(Rumbaugh)의 객체지향 분석은 객체 모델링·동적 모델링·기능 모델링 세 가지로 이뤄진다. 이 중 자료 흐름도(DFD)로 데이터가 입력에서 출력으로 변환되는 흐름을 표현하는 것은 기능 모델링(Functional Modeling)이다.

  • ② 동적 모델링: 시간 흐름에 따른 상태 변화 — 상태 다이어그램. ③ 객체 모델링: 정적 구조 — 객체 다이어그램. ④ '정적 모델링'은 럼바우 3기법에 없는 용어.
모델링 관점 주요 다이어그램
객체 모델링 정적 구조(What) 객체 다이어그램
동적 모델링 상태 변화(When) 상태 다이어그램
기능 모델링 데이터 흐름(How) 자료 흐름도(DFD)

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

문 002. 클래스 다이어그램의 요소로 다음 설명에 해당하는 용어는?

  • 클래스의 동작을 의미한다.
  • 클래스에 속하는 객체에 대하여 적용될 메소드를 정의한 것이다.
  • UML에서는 동작에 대한 인터페이스를 지칭한다고 볼 수 있다.
  • ① Instance
  • ② Operation
  • ③ Item
  • ④ Hiding
정답 및 해설 보기

정답 ②

클래스 다이어그램에서 클래스는 이름·속성(Attribute)·동작(Operation) 3단으로 표현된다. 제시문의 '클래스의 동작·적용될 메소드·동작 인터페이스'는 모두 오퍼레이션(Operation)을 가리킨다.

  • ① Instance: 클래스로 생성한 실제 객체. ④ Hiding: 정보 은닉이라는 개념이지 클래스 다이어그램의 구성 요소가 아니다.

문 003. 요구사항 검증(Requirements Validation)과 관련한 설명으로 틀린 것은?

  • ① 요구사항이 고객이 정말 원하는 시스템을 제대로 정의하고 있는지 점검하는 과정이다.
  • ② 개발 완료 이후에 문제점이 발견될 경우 막대한 재작업 비용이 들 수 있기 때문에 요구사항 검증은 매우 중요하다.
  • ③ 요구사항이 실제 요구를 반영하는지, 문서상의 요구사항은 서로 상충되지 않는지 등을 점검한다.
  • ④ 요구사항 검증 과정을 통해 모든 요구사항 문제를 발견할 수 있다.
정답 및 해설 보기

정답 ④

요구사항 검증(Validation)은 "올바른 제품을 만들고 있는가"를 확인하는 과정으로, 고객의 실제 요구를 제대로 반영했는지·문서 간 상충은 없는지 점검한다(①②③).

  • ④ 아무리 꼼꼼히 검증해도 모든 요구사항 문제를 발견할 수는 없다. 목표는 최대한 많은 문제를 조기에 찾아 리스크를 줄이는 것이다.
구분 검증(Validation) 확인(Verification)
핵심 질문 고객이 원한 게 맞나? 설계서대로 만들었나?
영어 Are we building the right product? Are we building the product right?
관점 사용자·고객 개발자·설계

⚠️ '모두·반드시·완벽하게' 같은 극단적 표현은 오답 신호다.

문 004. 소프트웨어 공학에서 모델링(Modeling)과 관련한 설명으로 틀린 것은?

  • ① 개발팀이 응용 문제를 이해하는 데 도움을 줄 수 있다.
  • ② 유지보수 단계에서만 모델링 기법을 활용한다.
  • ③ 개발될 시스템에 대하여 여러 분야의 엔지니어들이 공통된 개념을 공유하는 데 도움을 준다.
  • ④ 절차적인 프로그램을 위한 자료 흐름도는 프로세스 위주의 모델링 방법이다.
정답 및 해설 보기

정답 ②

모델링은 복잡한 현실을 이해하기 쉽게 추상화해 표현하는 활동으로, 여러 분야 엔지니어가 공통 개념을 공유하고 문제를 이해하는 데 쓰인다(①③). 절차적 프로그램의 자료 흐름도가 프로세스 위주 모델링이라는 ④도 옳다.

  • ② 모델링은 개발 생명주기 전반에 걸쳐 쓰인다. '유지보수 단계에서만' 쓴다는 설명이 틀렸다.

문 005. 분산 시스템을 위한 마스터-슬레이브(Master-Slave) 아키텍처에 대한 설명으로 틀린 것은?

  • ① 일반적으로 실시간 시스템에서 사용된다.
  • ② 마스터 프로세스는 일반적으로 연산, 통신, 조정을 책임진다.
  • ③ 슬레이브 프로세스는 데이터 수집 기능을 수행할 수 없다.
  • ④ 마스터 프로세스는 슬레이브 프로세스들을 제어할 수 있다.
정답 및 해설 보기

정답 ③

마스터-슬레이브 구조에서 마스터는 작업을 분배·조정하고 결과를 취합하며(②④), 슬레이브는 마스터가 할당한 작업(연산·데이터 수집 등)을 수행한다.

  • ③ 슬레이브도 데이터 수집 기능을 수행할 수 있다. '수행할 수 없다'는 단정이 틀렸다.

문 006. 사용자 인터페이스(User Interface)에 대한 설명으로 틀린 것은?

  • ① 사용자와 시스템이 정보를 주고받는 상호작용이 잘 이루어지도록 하는 장치나 소프트웨어를 의미한다.
  • ② 편리한 유지보수를 위해 개발자 중심으로 설계되어야 한다.
  • ③ 배우기가 용이하고 쉽게 사용할 수 있도록 만들어져야 한다.
  • ④ 사용자 요구사항이 UI에 반영될 수 있도록 구성해야 한다.
정답 및 해설 보기

정답 ②

사용자 인터페이스(UI)는 사용자와 시스템의 상호작용을 매개하며(①), 배우기 쉽고(③) 사용자 요구를 반영해야(④) 한다.

  • ② UI는 '개발자 중심'이 아니라 사용자 중심으로 설계돼야 한다. 이름부터 '사용자' 인터페이스다.

문 007. 객체지향 분석 기법과 관련한 설명으로 틀린 것은?

  • ① 동적 모델링 기법이 사용될 수 있다.
  • ② 기능 중심으로 시스템을 파악하며 순차적인 처리가 중요시되는 하향식(Top-down) 방식으로 볼 수 있다.
  • ③ 데이터와 행위를 하나로 묶어 객체를 정의 내리고 추상화시키는 작업이라 할 수 있다.
  • ④ 코드 재사용에 의한 프로그램 생산성 향상 및 요구에 따른 시스템의 쉬운 변경이 가능하다.
정답 및 해설 보기

정답 ②

객체지향 분석은 시스템을 구성하는 객체를 식별하고 그 관계·상호작용으로 시스템을 파악한다. 데이터와 행위를 하나로 묶어 추상화하며(③), 동적 모델링도 쓰고(①), 재사용으로 생산성·유연성을 높인다(④).

  • ② '기능 중심·순차 처리·하향식(Top-down)'은 객체지향이 아니라 구조적 분석의 특징이다.
구분 구조적 분석 객체지향 분석
중심 기능·절차 객체·데이터
방식 하향식(Top-down) 객체 식별 후 관계 분석
주요 도구 DFD·자료 사전 UML 다이어그램

문 008. 대표적으로 DOS 및 Unix 등의 운영체제에서 조작을 위해 사용하던 것으로, 정해진 명령 문자열을 입력하여 시스템을 조작하는 사용자 인터페이스(User Interface)는?

  • ① GUI(Graphical User Interface)
  • ② CLI(Command Line Interface)
  • ③ CUI(Cell User Interface)
  • ④ MUI(Mobile User Interface)
정답 및 해설 보기

정답 ②

정해진 명령 문자열을 입력해 시스템을 조작하는 인터페이스는 CLI(Command Line Interface)다. DOS·Unix의 명령어 입력 방식이 대표적이다.

  • ① GUI: 아이콘·창을 마우스로 조작하는 그래픽 기반 인터페이스. ③ CUI·④ MUI는 이 문제의 정의와 맞지 않는 보기다.

문 009. 객체지향의 주요 개념에 대한 설명으로 틀린 것은?

  • ① 캡슐화는 상위 클래스에서 속성이나 연산을 전달받아 새로운 형태의 클래스로 확장하여 사용하는 것을 의미한다.
  • ② 객체는 실세계에 존재하거나 생각할 수 있는 것을 말한다.
  • ③ 클래스는 하나 이상의 유사한 객체들을 묶어 공통된 특성을 표현한 것이다.
  • ④ 다형성은 상속받은 여러 개의 하위 객체들이 다른 형태의 특성을 갖는 객체로 이용될 수 있는 성질이다.
정답 및 해설 보기

정답 ①

객체지향 3대 특징은 캡슐화·상속·다형성이다. ①은 '상위 클래스에서 물려받아 확장한다'고 했는데, 이는 캡슐화가 아니라 상속(Inheritance)의 설명이다. 캡슐화는 데이터(속성)와 메소드를 하나로 묶는 것이다.

  • ②③④는 각각 객체·클래스·다형성을 옳게 설명한다.
특징 핵심
캡슐화 데이터·메소드를 하나로 묶고 정보 은닉
상속 상위 클래스의 속성·연산을 물려받아 확장(재사용)
다형성 같은 메시지에 객체마다 다른 형태로 반응

🔑 암기 — 객체지향 3특징: 캡슐화·상속·다형성.

문 010. 객체지향 설계에서 정보은닉(Information Hiding)과 관련한 설명으로 틀린 것은?

  • ① 필요하지 않은 정보는 접근할 수 없도록 하여 한 모듈 또는 하부 시스템이 다른 모듈의 구현에 영향을 받지 않게 설계되는 것을 의미한다.
  • ② 모듈들 사이의 독립성을 유지시키는 데 도움이 된다.
  • ③ 설계에서 은닉되어야 할 기본 정보로는 IP 주소와 같은 물리적 코드, 상세 데이터 구조 등이 있다.
  • ④ 모듈 내부의 자료 구조와 접근 동작들에만 수정을 국한하기 때문에 요구사항 등 변화에 따른 수정이 불가능하다.
정답 및 해설 보기

정답 ④

정보 은닉은 내부 구현·데이터를 숨기고 허용된 방법으로만 접근하게 해 모듈 독립성을 높인다(①②③).

  • ④ 정보 은닉은 내부 수정이 외부로 퍼지는 것을 막아 오히려 수정을 쉽게 만든다. '수정이 불가능하다'는 정반대 설명이다.

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

  • ① 빠른 개발을 위해 테스트를 수행하지 않는다.
  • ② 사용자의 요구사항은 언제든지 변할 수 있다.
  • ③ 고객과 직접 대면하며 요구사항을 이야기하기 위해 사용자 스토리(User Story)를 활용할 수 있다.
  • ④ 기존의 방법론에 비해 실용성(Pragmatism)을 강조한 것이라고 볼 수 있다.
정답 및 해설 보기

정답 ①

XP(익스트림 프로그래밍)는 빠른 개발을 추구하되, 속도를 담보하기 위해 테스트를 오히려 강조한다. 핵심 실천법이 테스트 주도 개발(TDD)로, 테스트 코드를 먼저 만들고 이를 통과하는 코드를 짠다.

  • ① '테스트를 수행하지 않는다'는 애자일·XP 정신과 정반대다. ②③④는 XP의 특징이 맞다.

문 012. 순차 다이어그램(Sequence Diagram)과 관련한 설명으로 틀린 것은?

  • ① 객체들의 상호작용을 나타내기 위해 사용한다.
  • ② 시간의 흐름에 따라 객체들이 주고받는 메시지의 전달 과정을 강조한다.
  • ③ 동적 다이어그램보다는 정적 다이어그램에 가깝다.
  • ④ 교류 다이어그램(Interaction Diagram)의 한 종류로 볼 수 있다.
정답 및 해설 보기

정답 ③

순차 다이어그램은 객체들이 시간 흐름에 따라 주고받는 메시지를 표현하는 동적(행위) 다이어그램이며(①②), 교류(상호작용) 다이어그램의 한 종류다(④).

  • ③ 순차 다이어그램은 정적이 아니라 동적 다이어그램이다.
구분 정적(구조) 다이어그램 동적(행위) 다이어그램
핵심 시스템의 구조·뼈대 시스템의 동작·흐름
대표 예 클래스·객체·컴포넌트 순차·활동·상태

문 013. 분산 시스템에서의 미들웨어(Middleware)와 관련한 설명으로 틀린 것은?

  • ① 분산 시스템에서 다양한 부분을 관리하고 통신하며 데이터를 교환하게 해주는 소프트웨어로 볼 수 있다.
  • ② 위치 투명성(Location Transparency)을 제공한다.
  • ③ 분산 시스템의 여러 컴포넌트가 요구하는 재사용 가능한 서비스의 구현을 제공한다.
  • ④ 애플리케이션과 사용자 사이에서만 분산 서비스를 제공한다.
정답 및 해설 보기

정답 ④

미들웨어는 서로 다른 시스템·애플리케이션 사이에서 통신·데이터 교환을 중개하는 소프트웨어로, 위치 투명성(②)과 재사용 가능한 서비스(③)를 제공한다.

  • ④ 미들웨어는 애플리케이션-OS, 애플리케이션-DB, 애플리케이션 간 등 다양한 지점에서 동작한다. '애플리케이션과 사용자 사이에서만'이라는 한정이 틀렸다.

문 014. GoF(Gang of Four) 디자인 패턴과 관련한 설명으로 틀린 것은?

  • ① 디자인 패턴을 목적(Purpose)으로 분류할 때 생성, 구조, 행위로 분류할 수 있다.
  • ② Strategy 패턴은 대표적인 구조 패턴으로 인스턴스를 복제하여 사용하는 구조를 말한다.
  • ③ 행위 패턴은 클래스나 객체들이 상호작용하는 방법과 책임을 분산하는 방법을 정의한다.
  • ④ Singleton 패턴은 특정 클래스의 인스턴스가 오직 하나임을 보장하고, 이 인스턴스에 대한 접근 방법을 제공한다.
정답 및 해설 보기

정답 ②

GoF 디자인 패턴은 목적에 따라 생성·구조·행위로 분류된다(①). Singleton(생성)은 인스턴스를 하나만 보장하고(④), 행위 패턴은 상호작용·책임 분산을 정의한다(③).

  • Strategy는 행위 패턴이다(구조 패턴이 아니다). 또 '인스턴스를 복제하는 구조'는 Prototype 패턴의 설명이다.
분류 목적
생성 객체 생성 방법 Singleton·Prototype·Factory
구조 클래스·객체 조합 Adapter·Proxy·Decorator
행위 객체 간 상호작용 Strategy·Observer·Template Method

문 015. 소프트웨어 설계에서 사용되는 대표적인 추상화(Abstraction) 기법이 아닌 것은?

  • ① 자료 추상화
  • ② 제어 추상화
  • ③ 과정 추상화
  • ④ 강도 추상화
정답 및 해설 보기

정답 ④

소프트웨어 설계의 대표적 추상화 기법은 과정 추상화·자료 추상화·제어 추상화 셋이다. 각각 함수의 기능, 데이터 접근 방법, 제어 흐름을 단순화해 표현한다.

  • ④ '강도 추상화'는 표준 추상화 기법에 없는 용어다.

🔑 암기 — 추상화 3종: 과정·자료·제어.

문 016. 소프트웨어 아키텍처와 관련한 설명으로 틀린 것은?

  • ① 파이프 필터 아키텍처에서 데이터는 파이프를 통해 양방향으로 흐르며, 필터 이동 시 오버헤드가 발생하지 않는다.
  • ② 외부에서 인식할 수 있는 특성이 담긴 소프트웨어의 골격이 되는 기본 구조로 볼 수 있다.
  • ③ 데이터 중심 아키텍처는 공유 데이터저장소를 통해 접근자 간의 통신이 이루어지므로 각 접근자의 수정과 확장이 용이하다.
  • ④ 이해 관계자들의 품질 요구사항을 반영하여 품질 속성을 결정한다.
정답 및 해설 보기

정답 ①

②③④는 아키텍처의 개념·데이터 중심 구조·품질 속성 결정을 옳게 설명한다.

  • ① 파이프-필터 아키텍처에서 데이터는 단방향으로 흐르고, 필터 간 데이터 전달 시 오버헤드가 발생한다. '양방향으로 흐르며 오버헤드가 발생하지 않는다'는 두 곳이 모두 틀렸다.

문 017. 애자일 개발 방법론과 관련한 설명으로 틀린 것은?

  • ① 빠른 릴리즈를 통해 문제점을 빠르게 파악할 수 있다.
  • ② 정확한 결과 도출을 위해 계획 수립과 문서화에 중점을 둔다.
  • ③ 고객과의 의사소통을 중요하게 생각한다.
  • ④ 진화하는 요구사항을 수용하는데 적합하다.
정답 및 해설 보기

정답 ②

애자일은 '동작하는 소프트웨어를 포괄적 문서보다, 변화 대응을 계획 준수보다' 가치 있게 여긴다. 빠른 릴리즈(①), 고객 소통(③), 변화 수용(④)이 핵심 특징이다.

  • ② '계획 수립·문서화에 중점'은 애자일이 아니라 폭포수 모델의 특징이다.

문 018. UML 모델에서 한 사물의 명세가 바뀌면 다른 사물에 영향을 주며, 일반적으로 한 클래스가 다른 클래스를 오퍼레이션의 매개 변수로 사용하는 경우에 나타나는 관계는?

  • ① Association
  • ② Dependency
  • ③ Realization
  • ④ Generalization
정답 및 해설 보기

정답 ②

한 클래스를 다른 클래스의 오퍼레이션 매개변수로 잠깐 사용하는, 가장 느슨한 관계는 의존(Dependency)이다. 참조하는 클래스의 명세가 바뀌면 사용하는 쪽도 영향을 받는다.

  • ① 연관(Association)은 멤버로 소유하는 더 긴밀한 관계, ③ 실체화(Realization)·④ 일반화(Generalization)는 인터페이스 구현·상속을 나타내는 강한 관계다.
관계 의미 강도
의존(Dependency) 매개변수 등으로 잠깐 사용 약함
연관(Association) 멤버로 서로 인지 중간
일반화(Generalization) 상속(부모-자식) 강함
실체화(Realization) 인터페이스 구현 강함

문 019. 요구사항 정의 및 분석·설계의 결과물을 표현하기 위한 모델링 과정에서 사용되는 다이어그램(Diagram)이 아닌 것은?

  • ① Data Flow Diagram
  • ② UML Diagram
  • ③ E-R Diagram
  • ④ AVL Diagram
정답 및 해설 보기

정답 ④

DFD(기능 모델링)·UML(객체지향 모델링)·E-R(데이터베이스 모델링)은 모두 분석·설계용 모델링 다이어그램이다.

  • ④ AVL은 스스로 균형을 잡는 이진 탐색 트리(자료구조)의 이름으로, 표준 모델링 다이어그램이 아니다.

문 020. 요구 분석(Requirement Analysis)에 대한 설명으로 틀린 것은?

  • ① 요구 분석은 소프트웨어 개발의 실제적인 첫 단계로 사용자의 요구에 대해 이해하는 단계라 할 수 있다.
  • ② 요구 추출(Requirement Elicitation)은 프로젝트 계획 단계에 정의한 문제의 범위 안에 있는 사용자의 요구를 찾는 단계이다.
  • ③ 도메인 분석(Domain Analysis)은 요구에 대한 정보를 수집하고 배경을 분석하여 이를 토대로 모델링을 하게 된다.
  • ④ 기능적(Functional) 요구에서 시스템 구축에 대한 성능, 보안, 품질, 안정 등에 대한 요구사항을 도출한다.
정답 및 해설 보기

정답 ④

요구사항은 기능적 요구사항(무엇을 하는가)과 비기능적 요구사항(어떻게 — 성능·보안·품질·안정성)으로 나뉜다. ①②③은 요구 분석·요구 추출·도메인 분석을 옳게 설명한다.

  • ④ 성능·보안·품질·안정 등은 비기능적 요구에서 도출된다. 기능적 요구에서 도출한다는 설명이 틀렸다.
구분 기능적 요구사항 비기능적 요구사항
정의 시스템이 제공할 기능 시스템이 만족할 품질·제약
회원가입·상품 검색 성능·보안·품질·안정성

🔑 암기 — 기능 = What(무엇을) / 비기능 = 성능·보안·품질(어떻게).


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

문 021. 다음 중 선형구조로만 묶인 것은?

  • ① 스택, 트리
  • ② 큐, 데크
  • ③ 큐, 그래프
  • ④ 리스트, 그래프
정답 및 해설 보기

정답 ②

자료구조는 선형 구조와 비선형 구조로 나뉜다. 선형 구조는 데이터가 한 줄로 순차 연결된 구조로 리스트·스택·큐·데크가 있고, 비선형 구조는 계층·망 형태로 트리·그래프가 있다.

  • ②만 선형(큐·데크)이다. ①③④는 비선형인 트리 또는 그래프를 포함한다.
구분 선형 구조 비선형 구조
연결 1:1 순차 1:N · N:M
종류 리스트·스택·큐·데크 트리·그래프

문 022. 테스트 드라이버(Test Driver)에 대한 설명으로 틀린 것은?

  • ① 시험 대상 모듈을 호출하는 간이 소프트웨어이다.
  • ② 필요에 따라 매개 변수를 전달하고 모듈을 수행한 후의 결과를 보여줄 수 있다.
  • ③ 상향식 통합 테스트에서 사용된다.
  • ④ 테스트 대상 모듈이 호출하는 하위 모듈의 역할을 한다.
정답 및 해설 보기

정답 ④

테스트 드라이버(Driver)는 상향식(Bottom-up) 통합 테스트에서, 아직 없는 상위 모듈을 대신해 테스트 대상 하위 모듈을 호출하는 간이 소프트웨어다(①②③).

  • ④ '테스트 대상 모듈이 호출하는 하위 모듈의 역할'은 드라이버가 아니라 스텁(Stub)의 설명이다.
구분 스텁(Stub) 드라이버(Driver)
방식 하향식(Top-down) 상향식(Bottom-up)
역할 하위 모듈 대역(호출당함) 상위 모듈 대역(호출함)

🔑 암기 — 하향식 = 스텁, 상향식 = 드라이버.

문 023. 다음 트리에 대한 중위 순회(In-order Traversal) 운행 결과는?

텍스트
        A
       / \
      B   C
     /   / \
    D   E   F
  • ① ABDCEF
  • ② ABCDEF
  • ③ DBECFA
  • ④ DBAECF
정답 및 해설 보기

정답 ④

중위 순회(In-order)는 왼쪽 → 루트 → 오른쪽 순서로 방문한다.

  • 왼쪽 서브트리(B): D → B (D는 B의 왼쪽 자식)
  • 루트: A
  • 오른쪽 서브트리(C): E → C → F
  • 이어 붙이면 D B A E C F이다.

🔑 암기 — 전위 VLR · 중위 LVR · 후위 LRV (V=루트, L=왼쪽, R=오른쪽).

문 024. 테스트 케이스 자동 생성 도구를 이용하여 테스트 데이터를 찾아내는 방법이 아닌 것은?

  • ① 스텁(Stub)과 드라이버(Driver)
  • ② 입력 도메인 분석
  • ③ 랜덤(Random) 테스트
  • ④ 자료 흐름도
정답 및 해설 보기

정답 ①

테스트 데이터를 찾아내는 방법으로는 입력 도메인 분석(②)·랜덤 테스트(③)·자료 흐름도 분석(④)이 있다.

  • ① 스텁과 드라이버는 테스트 '데이터'를 만드는 것이 아니라, 테스트를 실행할 환경을 만드는 가짜 모듈(테스트 하네스)이다. 역할이 다르다.

문 025. 소프트웨어 테스트에서 검증(Verification)과 확인(Validation)에 대한 설명으로 틀린 것은?

  • ① 소프트웨어 테스트에서 검증과 확인을 구별하면 찾고자 하는 결함 유형을 명확하게 하는 데 도움이 된다.
  • ② 검증은 소프트웨어 개발 과정을 테스트하는 것이고, 확인은 소프트웨어 결과를 테스트하는 것이다.
  • ③ 검증은 작업 제품이 요구 명세의 기능, 비기능 요구사항을 얼마나 잘 준수하는지 측정하는 작업이다.
  • ④ 검증은 작업 제품이 사용자의 요구에 적합한지 측정하며, 확인은 작업 제품이 개발자의 기대를 충족시키는지를 측정한다.
정답 및 해설 보기

정답 ④

검증(Verification)은 개발 과정을 명세대로 만들었는지(개발자 관점), 확인(Validation)은 결과가 고객 요구에 맞는지(사용자 관점) 점검한다(①②③).

  • ④ 앞뒤가 뒤바뀌었다. 사용자 요구 적합은 확인(Validation), 개발자 기대·명세 충족은 검증(Verification)이다.

💡 검증 = 제품을 올바르게(right) 만들었나 / 확인 = 올바른(right) 제품인가.

문 026. 저작권 관리 구성 요소 중 패키저(Packager)의 주요 역할로 옳은 것은?

  • ① 콘텐츠를 제공하는 저작권자를 의미한다.
  • ② 콘텐츠를 메타데이터와 함께 배포 가능한 단위로 묶는다.
  • ③ 라이선스를 발급하고 관리한다.
  • ④ 배포된 콘텐츠의 이용 권한을 통제한다.
정답 및 해설 보기

정답 ②

DRM(디지털 저작권 관리) 구성 요소 중 패키저(Packager)는 원본 콘텐츠를 암호화하고 메타데이터와 함께 배포 가능한 단위로 묶는(패키징) 역할이다.

  • ① 콘텐츠 제공자, ③ 클리어링 하우스(라이선스 발급·관리), ④ DRM 컨트롤러(이용 권한 통제)의 설명이다.

문 027. 다음 설명에 부합하는 용어로 옳은 것은?

  • 소프트웨어 구조를 이루며, 다른 것들과 구별될 수 있는 독립적인 기능을 갖는 단위이다.
  • 하나 또는 몇 개의 논리적인 기능을 수행하기 위한 명령어들의 집합이라고도 할 수 있다.
  • 서로 모여 하나의 완전한 프로그램으로 만들어질 수 있다.
  • ① 통합 프로그램
  • ② 저장소
  • ③ 모듈
  • ④ 데이터
정답 및 해설 보기

정답 ③

독립적 기능 단위이자 명령어들의 집합이며, 모여서 하나의 완전한 프로그램이 되는 것은 모듈(Module)이다. 프로그램을 기능별 부품으로 나누어 관리하는 것을 모듈화(Modularity)라 한다.

문 028. 제품 소프트웨어의 사용자 매뉴얼 작성 절차로 (가)~(다)와 [보기]의 기호를 바르게 연결한 것은?

텍스트
컴포넌트 명세서 · 컴포넌트 구현 설계서
        │
        
   작성 지침 정의
        │
        
      ( 가 )
        │
        
      ( 나 )
        │
        
      ( 다 )
        │
        
    사용 설명서

[보기] ㉠ 사용 설명서 검토 ㉡ 구성 요소별 내용 작성 ㉢ 사용 설명서 구성 요소 정의

  • ① (가)-㉠, (나)-㉡, (다)-㉢
  • ② (가)-㉢, (나)-㉡, (다)-㉠
  • ③ (가)-㉠, (나)-㉢, (다)-㉡
  • ④ (가)-㉢, (나)-㉠, (다)-㉡
정답 및 해설 보기

정답 ②

사용자 매뉴얼은 뼈대(목차)를 먼저 정하고 → 내용을 채운 뒤 → 마지막에 검토하는 순서로 만든다.

  • (가) 사용 설명서 구성 요소 정의(㉢) → (나) 구성 요소별 내용 작성(㉡) → (다) 사용 설명서 검토(㉠)
  • 따라서 (가)-㉢, (나)-㉡, (다)-㉠ 으로 연결된 ②가 정답이다.

문 029. 코드의 간결성을 유지하기 위해 사용되는 지침으로 틀린 것은?

  • ① 공백을 이용하여 실행문 그룹과 주석을 명확히 구분한다.
  • ② 복잡한 논리식과 산술식은 괄호와 들여쓰기(Indentation)를 통해 명확히 표현한다.
  • ③ 빈 줄을 사용하여 선언부와 구현부를 구별한다.
  • ④ 한 줄에 최대한 많은 문장을 코딩한다.
정답 및 해설 보기

정답 ④

코드의 간결성은 글자 수를 줄이는 것이 아니라 의미를 명확히 파악하기 쉽게 하는 것이다. 공백·괄호·빈 줄로 구조를 드러내는 ①②③은 가독성을 높이는 좋은 지침이다.

  • ④ 한 줄에 최대한 많은 문장을 몰아넣으면 가독성이 크게 떨어진다. 간결성 지침과 정반대다.

문 030. 다음 중 최악의 경우 검색 효율이 가장 나쁜 트리 구조는?

  • ① 이진 탐색 트리
  • ② AVL 트리
  • ③ 2-3 트리
  • ④ 레드-블랙 트리
정답 및 해설 보기

정답 ①

이진 탐색 트리(BST)는 평균 O(log n)이지만, 정렬된 순서로 삽입되면 한쪽으로 기울어 연결 리스트 모양이 되어 최악 O(n)까지 나빠진다.

  • ②③④(AVL·2-3·레드-블랙)는 스스로 균형을 잡아 최악에도 O(log n)을 보장한다. 따라서 최악 효율이 가장 나쁜 것은 균형 기능이 없는 ① 이진 탐색 트리다.

문 031. 다음 그래프에서 정점 A를 선택하여 깊이 우선 탐색(DFS)으로 운행한 결과는?

정점 A를 최상단으로 B·C·D가 연결되고, C가 중심 허브로 B·D·F와, E는 B·F와, F는 C·E·G와 이어지는 무방향 그래프

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

정답 ④

깊이 우선 탐색(DFS)은 한 방향으로 최대한 깊이 내려간 뒤, 막히면 되돌아 나와 다른 경로를 탐색한다.

  • A에서 시작해 B → E → F → G까지 깊이 내려간 뒤, 되돌아 나와 아직 방문하지 않은 C → D를 방문하면 A B E F G C D가 된다.
  • DFS는 스택(또는 재귀)으로 구현된다. 참고로 너비 우선 탐색(BFS)은 큐로 가까운 정점부터 넓게 탐색한다.

문 032. 개별 모듈을 시험하는 것으로 모듈이 정확하게 구현되었는지, 예정한 기능이 제대로 수행되는지를 점검하는 것이 주요 목적인 테스트는?

  • ① 통합 테스트(Integration Test)
  • ② 단위 테스트(Unit Test)
  • ③ 시스템 테스트(System Test)
  • ④ 인수 테스트(Acceptance Test)
정답 및 해설 보기

정답 ②

개별 모듈(함수·메소드)이 정확히 구현됐는지 점검하는 가장 작은 단위의 테스트는 단위 테스트(Unit Test)다.

  • ① 통합(모듈 간 인터페이스 확인), ③ 시스템(전체 요구 충족 확인), ④ 인수(사용자 최종 확인) 테스트다.

🔑 암기 — 테스트 단계: 단위 → 통합 → 시스템 → 인수.

문 033. 다음은 스택의 자료 삭제 알고리즘이다. ⓐ에 들어 갈 내용으로 옳은 것은? (단, Top: 스택 포인터, S: 스택의 이름)

텍스트
If Top=0 Then
    (   ⓐ   )
Else {
    remove S(Top)
    Top=Top-1
}
  • ① Overflow
  • ② Top=Top+1
  • ③ Underflow
  • ④ Top=Top
정답 및 해설 보기

정답 ③

Top=0은 스택이 비어 있다는 뜻인데, 이 상태에서 자료를 삭제(remove)하려 하므로 ⓐ에는 언더플로우(Underflow) 처리가 들어가야 한다.

  • 언더플로우: 빈 스택에서 자료를 꺼낼 때 발생. ① 오버플로우: 꽉 찬 스택에 자료를 넣을 때 발생하는 반대 상황이다.

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

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

정답 ②

버블 정렬은 인접한 두 원소를 비교해 큰 값을 뒤로 보내는 과정을 반복한다. 9, 6, 7, 3, 5를 오름차순으로 정렬하면:

  • PASS 1: 6, 7, 3, 5, 9 (가장 큰 9가 맨 뒤로 확정)
  • PASS 2: 6, 3, 5, 7, 9
  • PASS 3: 3, 5, 6, 7, 9

따라서 PASS 3의 결과는 3, 5, 6, 7, 9이다.

문 035. 순서가 A, B, C, D로 정해진 입력 자료를 스택에 입력한 후 출력한 결과로 불가능한 것은?

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

정답 ④

스택은 LIFO(나중에 넣은 것이 먼저 나온다) 구조다.

  • ④ D를 먼저 출력하려면 A·B·C·D를 모두 넣은 상태여야 하는데(Top=D), D를 꺼내면 Top은 C가 된다. 다음에 B를 꺼내려면 위에 있는 C를 먼저 꺼내야 하므로 'D 다음 B'는 불가능하다.
  • ①②③은 넣기(push)와 꺼내기(pop)를 섞으면 만들 수 있다.

문 036. 소프트웨어 개발 활동을 수행함에 있어서 시스템이 고장(Failure)을 일으키게 하며, 오류(Error)가 있는 경우 발생하는 것은?

  • ① Fault
  • ② Testcase
  • ③ Mistake
  • ④ Inspection
정답 및 해설 보기

정답 ①

결함은 세 단계로 이어진다 — 오류(Error/Mistake) = 사람의 실수 → 결함(Fault) = 코드에 남은 문제(버그) → 고장(Failure) = 실행 시 나타나는 오작동. 오류로 인해 생겨 고장을 일으키는 중간 원인은 결함(Fault)이다.

단계 오류(Error) 결함(Fault) 고장(Failure)
사람의 실수 코드 속 문제 시스템 오작동

문 037. 소프트웨어 품질 목표 중 하나 이상의 하드웨어 환경에서 운용되기 위해 쉽게 수정될 수 있는 시스템 능력을 의미하는 것은?

  • ① Portability
  • ② Efficiency
  • ③ Usability
  • ④ Correctness
정답 및 해설 보기

정답 ①

하나 이상의 하드웨어·환경에서 운용되도록 쉽게 수정될 수 있는 능력은 이식성(Portability)이다.

  • ② Efficiency(효율성 — 자원 대비 성능), ③ Usability(사용성 — 사용 편의), ④ Correctness(정확성 — 요구 기능의 정확한 동작)이다.

문 038. 테스트를 목적에 따라 분류했을 때, 강도(Stress) 테스트에 대한 설명으로 옳은 것은?

  • ① 시스템에 고의로 실패를 유도하고 시스템이 정상적으로 복귀하는지 테스트한다.
  • ② 시스템에 과다 정보량을 부과하여 과부하 시에도 시스템이 정상적으로 작동되는지를 테스트한다.
  • ③ 사용자의 이벤트에 시스템이 응답하는 시간, 특정 시간 내에 처리하는 업무량, 사용자 요구에 시스템이 반응하는 속도 등을 테스트한다.
  • ④ 부당하고 불법적인 침입을 시도하여 보안시스템이 불법적인 침투를 잘 막아내는지 테스트한다.
정답 및 해설 보기

정답 ②

강도(Stress) 테스트는 시스템에 과다한 부하(과다 정보량)를 가해 과부하 상황에서도 정상 작동하는지 확인하는 테스트다.

  • ① 회복(Recovery) 테스트, ③ 성능(Performance) 테스트, ④ 보안(Security) 테스트의 설명이다.

문 039. 형상관리의 개념과 절차에 대한 설명으로 틀린 것은?

  • ① 형상 식별은 형상관리 계획을 근거로 형상관리의 대상이 무엇인지 식별하는 과정이다.
  • ② 형상관리를 통해 가시성과 추적성을 보장함으로써 소프트웨어의 생산성과 품질을 높일 수 있다.
  • ③ 형상 통제 과정에서는 형상 목록의 변경 요구를 즉시 수용 및 반영해야 한다.
  • ④ 형상 감사는 형상관리 계획대로 형상관리가 진행되고 있는지, 형상 항목의 변경이 요구사항에 맞도록 제대로 이뤄졌는지 등을 살펴보는 활동이다.
정답 및 해설 보기

정답 ③

형상관리는 산출물의 변경을 체계적으로 관리·추적하는 활동으로, 형상 식별(①)·형상 감사(④)·가시성/추적성 보장(②)을 포함한다.

  • 형상 통제는 변경 요구를 '즉시' 반영하는 것이 아니라, 변경의 영향을 분석하고 정해진 절차로 검토·승인해 함부로 바뀌지 않도록 통제하는 활동이다. '즉시 수용 및 반영'은 정반대 설명이다.

문 040. 소스 코드 정적 분석(Static Analysis)에 대한 설명으로 틀린 것은?

  • ① 소스 코드를 실행시키지 않고 분석한다.
  • ② 코드에 있는 오류나 잠재적인 오류를 찾아내기 위한 활동이다.
  • ③ 하드웨어적인 방법으로만 코드 분석이 가능하다.
  • ④ 자료 흐름이나 논리 흐름을 분석하여 비정상적인 패턴을 찾을 수 있다.
정답 및 해설 보기

정답 ③

정적 분석(Static Analysis)은 코드를 실행하지 않고(①) 소스 자체를 분석해 오류·잠재 결함을 찾고(②), 자료·논리 흐름의 비정상 패턴을 검출한다(④). 주로 소프트웨어 도구로 수행한다.

  • ③ '하드웨어적인 방법으로만' 가능하다는 설명이 틀렸다. 정적 분석은 소프트웨어적 분석 기법이다.

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

문 041. 데이터의 중복으로 인하여 관계연산을 처리할 때 예기치 못한 곤란한 현상이 발생하는 것을 무엇이라 하는가?

  • ① 이상(Anomaly)
  • ② 제한(Restriction)
  • ③ 종속성(Dependency)
  • ④ 변환(Translation)
정답 및 해설 보기

정답 ①

데이터가 불필요하게 중복 저장되면 삽입·삭제·갱신 시 의도하지 않은 문제가 생긴다. 데이터 중복 때문에 발생하는 이런 예기치 못한 곤란한 현상을 이상(Anomaly)이라 한다. 이 이상을 없애기 위한 처방이 정규화다(문 044).

이상 종류 설명
삽입 이상 원치 않는 데이터까지 함께 넣어야만 삽입되는 현상
삭제 이상 한 데이터를 지우면 유지해야 할 다른 데이터까지 삭제되는 현상
갱신 이상 중복된 값 중 일부만 수정되어 데이터 불일치가 생기는 현상
  • ② 제한(Restriction)·③ 종속성(Dependency)·④ 변환(Translation)은 이 현상을 가리키는 용어가 아니다.

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

문 042. 다음 중 기본키는 NULL 값을 가져서는 안 되며, 릴레이션 내에 오직 하나의 값만 존재해야 한다는 조건을 무엇이라 하는가?

  • ① 개체 무결성 제약 조건
  • ② 참조 무결성 제약 조건
  • ③ 도메인 무결성 제약 조건
  • ④ 속성 무결성 제약 조건
정답 및 해설 보기

정답 ①

기본키(Primary Key)에 대한 규칙이 개체 무결성(Entity Integrity)이다. 기본키는 각 튜플을 유일하게 식별하므로 NULL을 가질 수 없고, 중복되지 않는 유일한 값이어야 한다.

  • ② 참조 무결성: 외래키(Foreign Key) 값은 참조하는 릴레이션의 기본키 값이거나 NULL이어야 한다.
  • ③ 도메인 무결성: 속성 값이 정의된 도메인(허용 범위·자료형)에 속해야 한다.
  • ④ '속성 무결성'은 표준 무결성 제약 조건 분류에 없는 용어.

🔑 암기 — 무결성 3종: 개체(기본키)·참조(외래키)·도메인(속성 범위).

문 043. 다음 두 릴레이션 R1과 R2의 카티션 프로덕트(Cartesian Product) 수행 결과는?

[R1 테이블]

학년
1
2
3

[R2 테이블]

학과
컴퓨터
국문
수학
학년 학과
1 컴퓨터
2 국문
3 수학
학년 학과
2 컴퓨터
2 국문
2 수학
학년 학과
3 컴퓨터
3 국문
3 수학
학년 학과
1 컴퓨터
1 국문
1 수학
2 컴퓨터
2 국문
2 수학
3 컴퓨터
3 국문
3 수학
정답 및 해설 보기

정답 ④

카티션 프로덕트(교차곱)는 두 릴레이션의 가능한 모든 튜플 조합을 만드는 연산이다.

  • 결과 튜플(행) 수 = R1 튜플 수 × R2 튜플 수 = 3 × 3 = 9
  • 결과 차수(속성 수) = R1 차수 + R2 차수 = 1 + 1 = 2(학년, 학과)

학년 3개 각각에 학과 3개가 모두 결합된 9개 튜플을 가진 ④가 정답이다. ①은 3개, ②는 학년이 2로 고정된 3개, ③은 학년이 3으로 고정된 3개뿐이라 모든 조합을 담지 못한다.

🎯 빈출 — 카티션 프로덕트는 행 수 = 곱(×), 열 수 = 합(+). 조인(문 059)의 출발점이 되는 연산.

문 044. 정규화에 대한 설명으로 적절하지 않은 것은?

  • ① 데이터베이스의 개념적 설계 단계 이전에 수행한다.
  • ② 데이터 구조의 안정성을 최대화한다.
  • ③ 중복을 배제하여 삽입, 삭제, 갱신 이상의 발생을 방지한다.
  • ④ 데이터 삽입 시 릴레이션을 재구성할 필요성을 줄인다.
정답 및 해설 보기

정답 ①

정규화(Normalization)는 테이블을 분해해 중복을 없애고 이상 현상을 방지하는 과정으로, 데이터 구조를 안정시키고(②) 이상 발생을 막으며(③) 재구성 필요성을 줄인다(④).

  • ① 정규화는 설계 단계 중 논리적 설계에서 수행한다. '개념적 설계 이전'이 아니다. 설계 순서는 개념적 → 논리적 → 물리적이며, 정규화로 테이블 구조를 확정하는 것이 논리적 설계 단계다.

🔑 암기 — 정규화 = 논리적 설계 단계. 설계 순서 개념 → 논리 → 물리.

문 045. 이전 단계의 정규형을 만족하면서 후보키를 통하지 않는 조인 종속(JD: Join Dependency)을 제거해야 만족하는 정규형은?

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

정답 ③

정규화는 단계마다 제거하는 종속의 종류가 다르다. 조인 종속(Join Dependency)을 제거하는 단계가 제5정규형(5NF)이다.

정규형 제거 대상
1NF 원자값이 아닌 도메인(반복 그룹)
2NF 부분 함수 종속
3NF 이행 함수 종속
BCNF 결정자가 후보키가 아닌 함수 종속
4NF 다치 종속(Multi-valued Dependency)
5NF 조인 종속(Join Dependency)
  • ④ '제6정규형'은 일반적인 정규화 단계(1NF~5NF, BCNF)에 포함되지 않는다.

🔑 암기 — 제거 대상 순서 도·부·이·결·다·조(도메인 원자값 → 부분 → 이행 → 결정자 → 다치 → 조인).

문 046. 물리적 데이터베이스 설계에 대한 설명으로 거리가 먼 것은?

  • ① 물리적 설계의 목적은 효율적인 방법으로 데이터를 저장하는 것이다.
  • ② 트랜잭션 처리량과 응답시간, 디스크 용량 등을 고려해야 한다.
  • ③ 저장 레코드의 형식, 순서, 접근 경로와 같은 정보를 사용하여 설계한다.
  • ④ 트랜잭션의 인터페이스를 설계하며, 데이터 타입 및 데이터 타입들 간의 관계로 표현한다.
정답 및 해설 보기

정답 ④

물리적 설계는 논리적 구조를 실제 저장 장치에 어떻게 효율적으로 구현할지 결정하는 단계다. 저장 효율(①)·트랜잭션 처리량/응답시간/용량(②)·저장 레코드 형식과 접근 경로(③)를 다룬다.

  • ④ '트랜잭션 인터페이스 설계, 데이터 타입과 그 관계 표현'은 논리적 설계에서 하는 일이다.
구분 논리적 설계 물리적 설계
관점 무엇을(What) — 논리 구조 어떻게(How) — 물리 구조
핵심 데이터 모델링·정규화 성능·저장 공간·접근 경로
결과물 테이블 명세·E-R 다이어그램 파일 구조·인덱스·접근 경로

⚠️ 함정 — '트랜잭션 인터페이스·데이터 타입 관계'는 논리적 설계 몫. 물리는 저장·성능.

문 047. SQL의 논리 연산자가 아닌 것은?

  • ① AND
  • ② OTHER
  • ③ OR
  • ④ NOT
정답 및 해설 보기

정답 ②

SQL의 WHERE 절에서 조건을 결합하는 논리 연산자는 AND(그리고)·OR(또는)·NOT(부정) 세 가지다. OTHER는 SQL 논리 연산자가 아니다.

문 048. 학적 테이블에서 전화번호가 NULL 값이 아닌 학생명을 모두 검색할 때, SQL 구문으로 옳은 것은?

  • ① SELECT 학생명 FROM 학적 WHERE 전화번호 DON'T NULL;
  • ② SELECT 학생명 FROM 학적 WHERE 전화번호 != NOT NULL;
  • ③ SELECT 학생명 FROM 학적 WHERE 전화번호 IS NOT NULL;
  • ④ SELECT 학생명 FROM 학적 WHERE 전화번호 IS NULL;
정답 및 해설 보기

정답 ③

NULL은 '값이 없음'을 뜻하는 특수한 상태라 =·!= 같은 일반 비교 연산자로 판별할 수 없고, 반드시 IS NULL / IS NOT NULL을 쓴다. '전화번호가 NULL이 아닌' 행을 찾으므로 IS NOT NULL을 쓴 ③이 옳다.

  • DON'T NULL·② != NOT NULL은 존재하지 않는 문법이다. ④ IS NULL은 전화번호가 없는 학생을 찾으므로 요구와 반대다.

⚠️ 함정 — NULL 비교는 = NULL이 아니라 IS NULL. = NULL은 항상 Unknown(거짓)으로 처리된다.

문 049. 다음 중 SQL에서의 DDL문이 아닌 것은?

  • ① CREATE
  • ② DELETE
  • ③ ALTER
  • ④ DROP
정답 및 해설 보기

정답 ②

DDL(데이터 정의어)은 데이터베이스 구조를 정의하는 명령으로 CREATE·ALTER·DROP이 속한다. DELETE는 테이블 안의 데이터를 삭제하는 DML(데이터 조작어)이다.

분류 명령
DDL(정의) CREATE, ALTER, DROP, TRUNCATE
DML(조작) SELECT, INSERT, UPDATE, DELETE
DCL(제어) GRANT, REVOKE

⚠️ 함정 — DROP(구조 삭제)은 DDL, DELETE(데이터 삭제)는 DML. 이름이 비슷해 헷갈리기 쉽다.

🔑 암기 — DDL CAD(Create·Alter·Drop).

문 050. 동시성 제어를 위한 직렬화 기법으로 트랜잭션 간의 처리 순서를 미리 정하는 방법은?

  • ① 로킹 기법
  • ② 타임스탬프 기법
  • ③ 검증 기법
  • ④ 배타 로크 기법
정답 및 해설 보기

정답 ②

타임스탬프(Timestamp) 기법은 각 트랜잭션이 시스템에 진입할 때 고유한 시간 순서 값을 부여하고, 그 순서대로만 접근·갱신하게 하여 실행 순서를 미리 정한다.

  • ①④ 로킹/배타 로크: 데이터에 자물쇠를 걸어 다른 트랜잭션의 접근을 막는 방식으로, 순서를 미리 정하는 것이 아니다.
  • ③ 검증(낙관적) 기법: 트랜잭션을 자유롭게 수행한 뒤 커밋 직전에 충돌을 검사한다.

문 051. 데이터베이스에서 하나의 논리적 기능을 수행하기 위한 작업의 단위 또는 한꺼번에 모두 수행되어야 할 일련의 연산들을 의미하는 것은?

  • ① 트랜잭션
  • ② 뷰
  • ③ 튜플
  • ④ 카디널리티
정답 및 해설 보기

정답 ①

트랜잭션(Transaction)은 하나의 논리적 작업 단위로, '모두 성공(Commit)'하거나 '하나라도 실패하면 모두 취소(Rollback)'되어야 하는 일련의 연산 묶음이다. 계좌 이체(출금 + 입금)가 대표 예다.

  • ② 뷰: 하나 이상의 테이블에서 유도된 가상 테이블. ③ 튜플: 릴레이션의 행(Row). ④ 카디널리티: 릴레이션의 튜플(행) 개수.

트랜잭션이 지켜야 할 4대 성질(ACID):

성질 의미
원자성(Atomicity) 모두 수행되거나 전혀 수행되지 않음(All or Nothing)
일관성(Consistency) 수행 전후 데이터베이스가 일관된 상태 유지
고립성(Isolation) 수행 중 다른 트랜잭션이 끼어들 수 없음
지속성(Durability) 완료된 결과는 장애가 나도 영구 보존

🔑 암기 — 트랜잭션 4대 성질 원·일·고·지(원자성·일관성·고립성·지속성) = ACID.

문 052. 로킹 단위(Locking Granularity)에 대한 설명으로 옳은 것은?

  • ① 로킹 단위가 크면 병행성 수준이 낮아진다.
  • ② 로킹 단위가 크면 병행 제어 기법이 복잡해진다.
  • ③ 로킹 단위가 작으면 로크(lock)의 수가 적어진다.
  • ④ 로킹은 파일 단위로 이루어지며, 레코드와 필드는 로킹 단위가 될 수 없다.
정답 및 해설 보기

정답 ①

로킹 단위는 한 번에 잠그는 데이터의 크기다. 단위가 크면 넓은 범위를 한꺼번에 잠가 동시에 처리 가능한 트랜잭션이 줄어들어 병행성이 낮아지지만, 관리할 로크 수가 적어 제어는 단순하다(①이 옳음).

  • ② 로킹 단위가 크면 제어는 오히려 단순해진다.
  • ③ 로킹 단위가 작으면 로크 수가 많아진다.
  • ④ 로킹 단위는 데이터베이스·테이블·레코드·필드 등 다양하게 설정할 수 있다.
로킹 단위 병행성 로크 수 제어 기법
크다 낮음 적음 단순
작다 높음 많음 복잡

문 053. 관계형 데이터베이스에서 다음 설명에 해당하는 키(Key)는?

한 릴레이션 내의 속성들의 집합으로 구성된 키로서, 릴레이션을 구성하는 모든 튜플에 대한 유일성은 만족시키지만 최소성은 만족시키지 못한다.

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

정답 ③

키의 두 성질은 유일성(값으로 튜플을 유일하게 식별)과 최소성(식별에 꼭 필요한 최소 속성으로 구성)이다. 유일성만 만족하고 최소성은 못 만족하는 키가 슈퍼키(Super Key)다.

  • ① 후보키: 유일성 + 최소성을 모두 만족(기본키 후보). ② 대체키: 후보키 중 기본키로 선택되지 않은 것. ④ 외래키: 다른 릴레이션의 기본키를 참조하는 속성.

⚠️ 함정 — 후보키에 불필요한 속성을 더하면 슈퍼키가 된다(유일성 O, 최소성 X). 즉 슈퍼키 ⊇ 후보키.

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

문 054. 트랜잭션의 주요 특성 중 하나로 둘 이상의 트랜잭션이 동시에 병행 실행되는 경우 어느 하나의 트랜잭션 실행 중에 다른 트랜잭션의 연산이 끼어들 수 없음을 의미하는 것은?

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

정답 ③

한 트랜잭션이 실행되는 동안 다른 트랜잭션이 끼어들지 못하게 격리하는 성질은 고립성(Isolation)이다(ACID의 I). 각 트랜잭션은 마치 혼자 실행되는 것처럼, 중간 상태가 다른 트랜잭션에 보이지 않는다.

  • ② Consistency(일관성): 수행 전후 일관된 상태 유지. ④ Durability(지속성): 완료 결과의 영구 보존. ① Log는 회복(Recovery)에 쓰이는 기록이지 트랜잭션의 성질이 아니다.

📝 기출 — 문 051의 ACID 표와 짝을 이뤄 반복 출제된다.

문 055. 데이터베이스에서 인덱스(Index)와 관련한 설명으로 틀린 것은?

  • ① 인덱스의 기본 목적은 검색 성능을 최적화하는 것으로 볼 수 있다.
  • ② B-트리 인덱스는 분기를 목적으로 하는 Branch Block을 가지고 있다.
  • ③ BETWEEN 등 범위(Range) 검색에 활용될 수 있다.
  • ④ 시스템이 자동으로 생성하여 사용자가 변경할 수 없다.
정답 및 해설 보기

정답 ④

인덱스는 검색 속도를 높이기 위한 자료구조로(①), 주로 B-트리로 구성되어 분기용 Branch Block을 가지며(②) BETWEEN·> 같은 범위 검색에도 유효하다(③).

  • ④ 인덱스는 사용자(DBA·개발자)가 CREATE INDEX직접 생성·변경·삭제할 수 있다. '자동 생성되어 변경 불가'는 틀렸다. 기본키를 지정하면 인덱스가 자동으로 만들어지기도 하지만, 사용자가 별도로 만들고 지울 수 있다.

문 056. SQL문에서 HAVING을 사용할 수 있는 절은?

  • ① LIKE 절
  • ② WHERE 절
  • ③ GROUP BY 절
  • ④ ORDER BY 절
정답 및 해설 보기

정답 ③

HAVINGGROUP BY로 그룹화한 결과에 조건을 거는 절이다. 따라서 GROUP BY와 함께(그 뒤에) 쓰인다.

구분 WHERE HAVING
적용 시점 그룹화 , 개별 행 그룹화 , 그룹 결과
집계 함수 사용 불가 사용 가능(SUM, AVG 등)
FROM 뒤 GROUP BY 뒤

⚠️ 함정 — 집계 함수를 기준으로 한 조건은 WHERE가 아니라 HAVING. WHERE에는 집계 함수를 쓸 수 없다.

문 057. 어떤 릴레이션 R에서 X와 Y를 각각 R의 애트리뷰트 집합의 부분 집합이라고 할 경우 애트리뷰트 X의 값 각각에 대해 시간에 관계 없이 항상 애트리뷰트 Y의 값이 오직 하나만 연관되어 있을 때 Y는 X에 함수 종속이라고 한다. 이 함수 종속의 표기로 옳은 것은?

  • ① Y → X
  • ② Y ⊂ X
  • ③ X → Y
  • ④ X ⊂ Y
정답 및 해설 보기

정답 ③

함수 종속은 "X를 알면 Y가 유일하게 결정된다"는 관계다. 결정하는 쪽(결정자) X에서 결정되는 쪽 Y로 화살표가 향하므로 X → Y로 표기한다. 예: 학번 → 이름(학번을 알면 이름이 하나로 정해진다).

  • ① Y → X는 방향이 반대다. ②④의 는 부분집합 기호로, 함수 종속이 아니라 집합의 포함 관계를 나타낸다.

🔑 암기 — 함수 종속 화살표는 결정자 → 종속자(왼쪽이 오른쪽을 결정).

문 058. 관계대수에 대한 설명으로 틀린 것은?

  • ① 원하는 릴레이션을 정의하는 방법을 제공하며 비절차적 언어이다.
  • ② 릴레이션 조작을 위한 연산의 집합으로 피연산자와 결과가 모두 릴레이션이다.
  • ③ 일반 집합 연산과 순수 관계 연산으로 구분된다.
  • ④ 질의에 대한 해를 구하기 위해 수행해야 할 연산의 순서를 명시한다.
정답 및 해설 보기

정답 ①

관계대수(Relational Algebra)는 원하는 결과를 얻기 위한 연산의 순서(How)를 명시하는 절차적 언어다(④가 옳은 설명). 피연산자와 결과가 모두 릴레이션이며(②), 일반 집합 연산과 순수 관계 연산으로 나뉜다(③).

  • ① 관계대수는 절차적 언어다. '비절차적'은 원하는 결과(What)만 기술하는 관계해석(Relational Calculus)의 특징이다.
구분 관계대수 관계해석
성격 절차적(How) 비절차적(What)
기반 집합·연산 순서 술어 논리

⚠️ 함정 — 관계대수 = 절차적, 관계해석 = 비절차적. 이 둘을 뒤바꿔 오답을 유도한다.

문 059. 관계 데이터베이스에 있어서 관계 대수 연산이 아닌 것은?

  • ① 디비전(Division)
  • ② 프로젝트(Project)
  • ③ 조인(Join)
  • ④ 포크(Fork)
정답 및 해설 보기

정답 ④

관계대수 연산은 순수 관계 연산(Select·Project·Join·Division)과 일반 집합 연산(합집합·교집합·차집합·카티션 프로덕트)으로 나뉜다. ①②③은 순수 관계 연산이다.

  • ④ 포크(Fork)는 운영체제에서 새 프로세스를 생성하는 시스템 호출이지, 관계대수 연산이 아니다.
순수 관계 연산 기호
Select(선택) σ
Project(추출) π
Join(조인)
Division(나누기) ÷

🔑 암기 — 순수 관계 연산 셀·프·조·디(Select·Project·Join·Division).

문 060. 데이터베이스의 무결성 규정(Integrity Rule)과 관련한 설명으로 틀린 것은?

  • ① 무결성 규정에는 데이터가 만족해야 될 제약 조건, 규정을 참조할 때 사용하는 식별자 등의 요소가 포함될 수 있다.
  • ② 무결성 규정의 대상으로는 도메인, 키, 종속성 등이 있다.
  • ③ 정식으로 허가 받은 사용자가 아닌 불법적인 사용자에 의한 갱신으로부터 데이터베이스를 보호하기 위한 규정이다.
  • ④ 릴레이션 무결성 규정(Relation Integrity Rules)은 릴레이션을 조작하는 과정에서의 의미적 관계(Semantic Relationship)를 명세한 것이다.
정답 및 해설 보기

정답 ③

무결성(Integrity)은 데이터의 정확성·일관성을 지키는 규칙으로, 제약 조건·식별자(①)·도메인/키/종속성(②)·릴레이션 조작의 의미적 관계(④)를 대상으로 한다.

  • ③ '불법적인 사용자로부터 보호'하는 것은 무결성이 아니라 보안(Security)의 영역이다. 권한 없는 접근·갱신을 막는 것은 접근 제어·인증 등 보안 기능이다.
구분 목적
무결성 데이터 내용이 정확·일관한가
보안 허가된 사용자만 접근하는가

⚠️ 함정 — '불법 사용자 차단'은 보안. 무결성은 데이터 정확성 유지.


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

문 061. C Class에 속하는 IP address는?

  • ① 200.168.30.1
  • ② 10.3.2.14
  • ③ 225.2.4.1
  • ④ 172.16.98.3
정답 및 해설 보기

정답 ①

IP 주소의 클래스는 첫 번째 옥텟(맨 앞 숫자)의 범위로 구분한다.

  • A 클래스: 0 ~ 127 (대규모), B 클래스: 128 ~ 191 (중규모), C 클래스: 192 ~ 223 (소규모)
  • D 클래스: 224 ~ 239 (멀티캐스트), E 클래스: 240 ~ 255 (연구용)

① 200은 C 클래스(192~223)에 속한다. ② 10은 A 클래스, ③ 225는 D 클래스, ④ 172는 B 클래스다.

🔑 암기 — A는 0, B는 128, C는 192부터 시작. C 클래스 = 192~223.

문 062. 다음 중 페이지 교체(Page Replacement) 알고리즘이 아닌 것은?

  • ① FIFO(First-In-First-Out)
  • ② LUF(Least Used First)
  • ③ Optimal
  • ④ LRU(Least Recently Used)
정답 및 해설 보기

정답 ②

가상 메모리에서 프레임이 꽉 찼을 때 어떤 페이지를 교체할지 정하는 대표 알고리즘은 FIFO·Optimal·LRU·LFU다.

  • ② LUF(Least Used First)라는 표준 페이지 교체 알고리즘은 없다. 참조 횟수가 가장 적은 페이지를 교체하는 LFU(Least Frequently Used)를 잘못 쓴 것으로 보인다.
  • ① 가장 먼저 들어온 페이지 교체, ③ 앞으로 가장 오래 안 쓸 페이지 교체(이론상 최적), ④ 가장 오래 사용되지 않은 페이지 교체다.

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

Java
public class ovr {
    public static void main(String[] args) {
        int arr[];
        int i = 0;
        arr = new int[10];
        arr[0] = 0;
        arr[1] = 1;
        while(i < 8) {
            arr[i+2] = arr[i+1] + arr[i];
            i++;
        }
        System.out.println(arr[9]);
    }
}
  • ① 13
  • ② 21
  • ③ 34
  • ④ 55
정답 및 해설 보기

정답 ③

앞의 두 값을 더해 다음 값을 만드는 피보나치 수열 코드다. arr[0]=0·arr[1]=1로 시작해 arr[i+2]=arr[i+1]+arr[i]를 i가 0~7까지 8번 채운다.

  • 채워지는 값: arr[2]=1, arr[3]=2, arr[4]=3, arr[5]=5, arr[6]=8, arr[7]=13, arr[8]=21, arr[9]=34
  • 마지막에 arr[9]를 출력하므로 결과는 34다.

문 064. Java에서 힙(Heap)에 남아있으나 변수가 가지고 있던 참조값을 잃거나 변수 자체가 없어짐으로써 더 이상 사용되지 않는 객체를 제거해주는 역할을 하는 모듈은?

  • ① Heap Collector
  • ② Garbage Collector
  • ③ Memory Collector
  • ④ Variable Collector
정답 및 해설 보기

정답 ②

힙에 남아 있지만 더 이상 참조되지 않는 객체(가비지)를 자동으로 찾아 메모리에서 제거하는 것이 가비지 컬렉터(Garbage Collector, GC)다.

  • C 언어는 malloc으로 할당한 메모리를 free로 직접 해제해야 하고, 빠뜨리면 메모리 누수(Memory Leak)가 생긴다.
  • Java·Python은 GC가 힙을 주기적으로 정리해 메모리 관리 부담을 덜어 준다. ①·③·④는 없는 용어다.

문 065. C 언어에서의 변수 선언으로 틀린 것은?

  • ① int else;
  • ② int Test2;
  • ③ int pc;
  • ④ int True;
정답 및 해설 보기

정답 ①

변수 이름(식별자)에는 언어가 미리 예약한 예약어(Reserved Word)를 쓸 수 없다.

  • elseif와 함께 쓰는 C의 예약어이므로 변수명으로 쓸 수 없다.
  • ②·③·④는 예약어가 아니고 명명 규칙(숫자로 시작 불가, 문자·숫자·_만 허용)에도 어긋나지 않아 올바른 선언이다. True는 C에서는 예약어가 아니다(C++·Python 등에서는 예약어라 주의).

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

  • ① Temporal Cohesion
  • ② Logical Cohesion
  • ③ Coincidental Cohesion
  • ④ Sequential Cohesion
정답 및 해설 보기

정답 ①

시간적 응집도(Temporal Cohesion)는 기능적으로는 서로 관련이 없지만 '특정 시간대에 함께 실행된다'는 이유로 묶인 경우다.

  • 예: 프로그램 시작 시 변수 초기화·파일 열기·네트워크 연결을 모아 둔 초기화 모듈. '같은 시간대에 함께 실행'이 핵심 키워드다.

🔑 암기 — 응집도(강→약): 기능적 → 순차적 → 통신적 → 절차적 → 시간적 → 논리적 → 우연적. 기능적이 가장 좋고 우연적이 가장 나쁘다.

문 067. 오류 제어에 사용되는 자동 반복 요청 방식(ARQ)이 아닌 것은?

  • ① Stop-and-wait ARQ
  • ② Go-back-N ARO
  • ③ Selective-Repeat ARQ
  • ④ Non-Acknowledge ARQ
정답 및 해설 보기

정답 ④

ARQ(자동 반복 요청)는 수신 측의 긍정 응답(ACK)·부정 응답(NAK)을 근거로 오류 난 프레임을 자동 재전송하는 오류 제어 기법이다. 대표 방식은 정지-대기(Stop-and-Wait)·Go-Back-N·선택적 재전송(Selective-Repeat) ARQ다.

  • ④ 'Non-Acknowledge ARQ'는 ACK를 쓰지 않는다는 뜻인데, ACK/NAK 피드백이 ARQ의 핵심이라 성립하지 않는 용어다.
  • ① 한 프레임 보내고 응답을 기다리는 방식, ② 오류 지점부터 이후 프레임을 모두 재전송하는 Go-Back-N 방식(원문 표기 ARO는 ARQ의 오기), ③ 오류 난 프레임만 골라 재전송하는 방식이다.

문 068. 사용자가 요청한 디스크 입·출력 내용이 다음과 같은 순서로 큐에 들어 있을 때 SSTF 스케줄링을 사용한 경우의 처리 순서는? (단, 현재 헤드 위치는 53이고, 제일 안쪽이 1번, 바깥쪽이 200번 트랙이다.)

큐의 내용 : 98 183 37 122 14 124 65 67

  • ① 53-65-67-37-14-98-122-124-183
  • ② 53-98-183-37-122-14-124-65-67
  • ③ 53-37-14-65-67-98-122-124-183
  • ④ 53-67-65-124-14-122-37-183-98
정답 및 해설 보기

정답 ①

SSTF(Shortest Seek Time First)는 현재 헤드에서 탐색 거리가 가장 짧은(가장 가까운) 요청을 먼저 처리한다.

  • 53 → 65(거리 12) → 67(2) → 37(30) → 14(23) → 98(84) → 122(24) → 124(2) → 183
  • 이어 붙이면 53-65-67-37-14-98-122-124-183이다.

⚠️ 함정 — 매 단계마다 '지금 위치'를 기준으로 다시 가장 가까운 곳을 찾는다. 처음 방향으로만 쭉 가는 게 아니다.

문 069. 파일 디스크립터(File Descriptor)에 대한 설명으로 틀린 것은?

  • ① 파일 관리를 위해 시스템이 필요로 하는 정보를 가지고 있다.
  • ② 보조기억장치에 저장되어 있다가 파일이 개방(Open)되면 주기억장치로 이동된다.
  • ③ 사용자가 파일 디스크립터를 직접 참조할 수 있다.
  • ④ 파일 제어 블록(File Control Block)이라고도 한다.
정답 및 해설 보기

정답 ③

파일 디스크립터(=파일 제어 블록, FCB)는 파일 이름·위치·크기·접근 권한 등 운영체제가 파일을 관리하는 데 필요한 정보를 담은 자료구조다.

  • 평소 보조기억장치에 있다가 파일이 열리면 주기억장치로 이동하고(②), 시스템이 관리하는 정보이자(①) FCB라고도 부른다(④).
  • ③ 이 정보는 운영체제가 관리하므로 사용자가 직접 참조할 수 없다. 사용자는 정수 값(파일 핸들)만 받아 파일을 다룬다.

문 070. 귀도 반 로섬(Guido van Rossum)이 발표한 언어로 인터프리터 방식이자 객체지향적이며, 배우기 쉽고 이식성이 좋은 것이 특징인 스크립트 언어는?

  • ① C++
  • ② Java
  • ③ C#
  • ④ Python
정답 및 해설 보기

정답 ④

'귀도 반 로섬'이 만든 언어는 Python이다.

  • 인터프리터 방식(한 줄씩 실행), 객체지향, 간결한 문법으로 배우기 쉽고, 여러 운영체제에서 잘 도는 이식성이 특징이다.

문 071. 다음 파이썬(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(n)은 0부터 n까지의 합을 구하는 함수다. range(n+1)은 0, 1, …, n을 만들고 s += num으로 누적한다.

  • cs(11) = 0 + 1 + 2 + … + 11 = (11 × 12) / 2 = 66이다.

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

  • ① 소프트웨어의 모듈은 프로그래밍 언어에서 subroutine, function 등으로 표현될 수 있다.
  • ② 모듈의 수가 증가하면 상대적으로 각 모듈의 크기가 커지며, 모듈 사이의 상호교류가 감소하여 과부하(Overload) 현상이 나타난다.
  • ③ 모듈화는 시스템을 지능적으로 관리할 수 있도록 해주며, 복잡도 문제를 해결하는 데 도움을 준다.
  • ④ 모듈화는 시스템의 유지보수와 수정을 용이하게 한다.
정답 및 해설 보기

정답 ②

모듈화는 큰 프로그램을 관리하기 쉬운 작은 단위로 나누는 것이다. ①·③·④는 개념과 장점을 옳게 설명한다.

  • ② 모듈 수가 증가하면 각 모듈이 맡는 역할이 세분화되어 크기는 작아지고, 모듈끼리 주고받는 상호교류(인터페이스)는 오히려 증가한다. 두 방향 모두 반대로 서술해 틀렸다.

문 073. 192.168.1.0/24 네트워크를 FLSM 방식을 이용하여 4개의 Subnet으로 나누고 IP Subnet-zero를 적용했다. 이때 Subnetting된 네트워크 중 4번째 네트워크의 4번째 사용 가능한 IP는 무엇인가?

  • ① 192.168.1.192
  • ② 192.168.1.195
  • ③ 192.168.1.196
  • ④ 192.168.1.198
정답 및 해설 보기

정답 ③

/24(256개)를 4개로 나누면 서브넷마다 256 ÷ 4 = 64개씩 갖는다(블록 크기 64). Subnet-zero를 적용하므로 첫 번째 .0 서브넷도 사용한다.

  • 서브넷 시작 주소: .0, .64, .128, .192 → 4번째 서브넷은 192.168.1.192
  • 4번째 서브넷의 네트워크 주소(.192)는 쓸 수 없으므로 사용 가능 IP는 .193부터다.
  • .193(1번째) → .194(2번째) → .195(3번째) → .196(4번째)

문 074. 모듈의 독립성을 높이기 위한 결합도(Coupling)와 관련한 설명으로 틀린 것은?

  • ① 오류가 발생했을 때 전파되어 다른 오류의 원인이 되는 파문 효과(Ripple Effect)를 최소화해야 한다.
  • ② 인터페이스가 정확히 설정되어 있지 않을 경우 불필요한 인터페이스가 나타나 모듈 사이의 의존도는 높아지고 결합도가 증가한다.
  • ③ 모듈들이 변수를 공유하여 사용하게 하거나 제어 정보를 교류하게 함으로써 결합도를 낮추어야 한다.
  • ④ 다른 모듈과 데이터 교류가 필요한 경우 전역변수(Global Variable)보다는 매개 변수(Parameter)를 사용하는 것이 결합도를 낮추는 데 도움이 된다.
정답 및 해설 보기

정답 ③

결합도는 모듈 간 의존 정도로, 독립성을 높이려면 낮을수록 좋다. ①·②·④는 결합도를 낮추는 옳은 지침이다.

  • ③ 변수를 공유(공통·외부 결합도)하거나 제어 정보를 주고받는 것(제어 결합도)은 모듈 간 의존을 키워 결합도를 높이는 나쁜 방식이다. '낮추어야 한다'는 서술이 틀렸다.

🔑 암기 — 결합도(약→강): 자료 → 스탬프 → 제어 → 외부 → 공통 → 내용. 자료 결합이 가장 좋고 내용 결합이 가장 나쁘다.

문 075. 프로세스와 관련한 설명으로 틀린 것은?

  • ① 프로세스가 준비 상태에서 프로세서가 배당되어 실행 상태로 변화하는 것을 디스패치(Dispatch)라고 한다.
  • ② 프로세스 제어 블록(PCB: Process Control Block)은 프로세스 식별자, 프로세스 상태 등의 정보로 구성된다.
  • ③ 이전 프로세스의 상태 레지스터 내용을 보관하고 다른 프로세스의 레지스터를 적재하는 과정을 문맥 교환(Context Switching)이라고 한다.
  • ④ 프로세스는 스레드(Thread) 내에서 실행되는 흐름의 단위이며, 스레드와 달리 주소 공간에 실행 스택(Stack)이 없다.
정답 및 해설 보기

정답 ④

①·②·③은 디스패치·PCB·문맥 교환을 옳게 설명한다.

  • ④ 관계가 정반대다. 스레드가 프로세스 내에서 실행되는 흐름의 단위이고, 각 스레드는 자신만의 실행 스택(Stack)과 레지스터를 가진다. 독립된 주소 공간을 갖는 쪽은 프로세스다.

문 076. TCP 헤더와 관련한 설명으로 틀린 것은?

  • ① 순서 번호(Sequence Number)는 전달하는 바이트마다 번호가 부여된다.
  • ② 수신 번호 확인(Acknowledgement Number)은 상대편 호스트에서 받으려는 바이트의 번호를 정의한다.
  • ③ 체크섬(Checksum)은 데이터를 포함한 세그먼트의 오류를 검사한다.
  • ④ 윈도우 크기는 송수신 측의 버퍼 크기로 최대 크기는 32,767bit이다.
정답 및 해설 보기

정답 ④

①·②·③은 TCP 헤더의 순서 번호·확인 번호·체크섬을 옳게 설명한다.

  • ④ 윈도우 크기(Window Size) 필드는 16비트라 최대값이 2¹⁶ − 1 = 65,535이고, 단위도 bit가 아니라 byte다. 값과 단위가 모두 틀렸다.

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

c
#include <stdio.h>
#include <string.h>

int main(void) {
    char str[50] = "nation";
    char *p2 = "alter";
    strcat(str, p2);
    printf("%s", str);
    return 0;
}
  • ① nation
  • ② nationalter
  • ③ alter
  • ④ alternation
정답 및 해설 보기

정답 ②

strcat(str, p2)str의 끝(널 문자 위치)에 p2가 가리키는 문자열을 이어 붙인다(string concatenate).

  • "nation" 뒤에 "alter"가 붙어 str"nationalter"가 되고, 그대로 출력된다.

문 078. 다음 중 JAVA에서 우선 순위가 가장 낮은 연산자는?

  • ① --
  • ② %
  • ③ &
  • ④ =
정답 및 해설 보기

정답 ④

모든 계산을 끝낸 뒤 마지막에 결과를 변수에 넣는 대입 연산자(=)의 우선순위가 가장 낮다.

  • 우선순위 높은 순: --(증감, 단항) → %(산술) → &(비트 AND) → =(대입)
  • 따라서 가장 낮은 것은 ④ =다.

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

c
#include <stdio.h>
#include <string.h>

int main(void) {
    int a = 3, b = 4, c = 2;
    int r1, r2, r3;
    r1 = b <= 4 || c == 2;
    r2 = (a > 0) && (b < 5);
    r3 = !c;
    printf("%d", r1 + r2 + r3);
    return 0;
}
  • ① 0
  • ② 1
  • ③ 2
  • ④ 3
정답 및 해설 보기

정답 ③

C에서 논리 연산 결과는 참이면 1, 거짓이면 0이고, 0이 아닌 값은 참으로 취급한다.

  • r1 = (4 <= 4) || (2 == 2) → 참이므로 1
  • r2 = (3 > 0) && (4 < 5) → 둘 다 참이므로 1
  • r3 = !2 → 2는 참이므로 그 부정은 0
  • r1 + r2 + r3 = 1 + 1 + 0 = 2

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

c
#include <stdio.h>

int main(void) {
    int n = 4;
    int *pt = NULL;
    pt = &n;
    printf("%d", &n + *pt - *&pt + n);
    return 0;
}
  • ① 0
  • ② 4
  • ③ 8
  • ④ 12
정답 및 해설 보기

정답 ③

각 기호의 의미를 풀면 상쇄되는 항이 보인다.

  • &n : n의 주소
  • *pt : pt가 가리키는 값 = 4
  • *&pt : &pt(pt 변수의 주소)의 값 = pt 자신 = n의 주소
  • n : n의 값 = 4
  • 식은 (n의 주소) + 4 − (n의 주소) + 4가 되어 주소끼리 상쇄되고 4 + 4 = 8이 남는다.

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

문 081. 특정 사이트에 매우 많은 ICMP Echo를 보내면, 이에 대한 응답(Respond)을 하기 위해 시스템 자원을 모두 사용해버려 시스템이 정상적으로 동작하지 못하도록 하는 공격 방법은?

  • ① Role-Based Access Control
  • ② Ping Flood
  • ③ Brute-Force
  • ④ Trojan Horses
정답 및 해설 보기

정답 ②

ping이 사용하는 ICMP Echo Request를 대상 서버에 홍수처럼 쏟아부어, 응답 처리에 자원을 모두 소진시켜 정상 서비스를 막는 서비스 거부(DoS) 공격이 Ping Flood다.

  • ① Role-Based Access Control(RBAC): 역할에 권한을 부여하는 접근 제어 모델.
  • ③ Brute-Force: 가능한 값을 모두 대입해 비밀번호 등을 알아내는 공격.
  • ④ Trojan Horses: 정상 프로그램으로 위장한 악성코드.

🔑 핵심 — 'ICMP Echo 대량 → 자원 소진' = Ping Flood.

문 082. 구글의 구글 브레인 팀이 제작하여 공개한 기계 학습(Machine Learning)을 위한 오픈 소스 소프트웨어 라이브러리는?

  • ① 타조(Tajo)
  • ② 원 세그(One Seg)
  • ③ 포스퀘어(Foursquare)
  • ④ 텐서플로(TensorFlow)
정답 및 해설 보기

정답 ④

텐서플로(TensorFlow)는 딥러닝을 포함한 기계 학습 모델을 만들고 학습시키는 데 널리 쓰이는 오픈 소스 라이브러리다.

  • ① 타조(Tajo): 하둡 기반의 빅데이터 웨어하우스 시스템(현재는 개발이 종료되어 Apache Attic으로 이관됨).
  • ② 원 세그(One Seg): 일본의 모바일 지상파 디지털 방송 규격.
  • ③ 포스퀘어(Foursquare): 위치 기반 소셜 네트워크 서비스.

문 083. 비대칭 암호화 방식으로 소수를 활용한 암호화 알고리즘은?

  • ① DES
  • ② AES
  • ③ SMT
  • ④ RSA
정답 및 해설 보기

정답 ④

RSA는 비대칭키(공개키) 암호의 대표 알고리즘으로, 매우 큰 두 소수의 곱은 쉽지만 그 곱을 다시 소인수분해하기는 어렵다는 성질을 이용한다.

구분 대칭키 비대칭키(공개키)
암·복호화 키가 동일 공개키·개인키 쌍
속도 빠름 느림
DES·AES RSA·ECC
  • ①·② DES·AES는 대칭키 알고리즘이다. ③ SMT는 암호 알고리즘이 아니다.

문 084. 시스템이 몇 대가 되어도 하나의 시스템에서 인증에 성공하면 다른 시스템에 대한 접근 권한도 얻는 시스템을 의미하는 것은?

  • ① SOS
  • ② SBO
  • ③ SSO
  • ④ SOA
정답 및 해설 보기

정답 ③

SSO(Single Sign-On)는 한 번의 인증으로 연계된 여러 시스템에 추가 로그인 없이 접근할 수 있게 하는 통합 인증 방식이다.

  • ④ SOA(Service Oriented Architecture): 서비스 지향 아키텍처로, 인증 기술이 아니라 소프트웨어 설계 방식이다. ①·② SOS·SBO는 이 정의와 맞지 않는 보기다.

문 085. 오픈 소스 웹 애플리케이션 보안 프로젝트로서 주로 웹을 통한 정보 유출, 악성 파일 및 스크립트, 보안 취약점 등을 연구하는 곳은?

  • ① WWW
  • ② OWASP
  • ③ WBSEC
  • ④ ITU
정답 및 해설 보기

정답 ②

OWASP(Open Web Application Security Project)는 웹 애플리케이션의 보안 취약점을 연구하고 안전한 개발 가이드를 배포하는 비영리 오픈 소스 프로젝트다. 대표 산출물로 가장 위험한 10대 취약점을 정리한 OWASP Top 10이 있다.

  • ④ ITU: 국제전기통신연합(표준화 기구). ①·③ WWW·WBSEC는 이 정의와 맞지 않는다.

문 086. 생명주기 모형 중 가장 오래된 모형으로 많은 적용 사례가 있지만 요구사항의 변경이 어렵고 각 단계의 결과가 확인 되어야 다음 단계로 넘어갈 수 있는 선형 순차적, 고전적 생명주기 모형이라고도 하는 것은?

  • ① Waterfall Model
  • ② Prototype Model
  • ③ Cocomo Model
  • ④ Spiral Model
정답 및 해설 보기

정답 ①

폭포수 모형(Waterfall Model)은 가장 오래된 고전적 생명주기 모형으로, '계획 → 분석 → 설계 → 구현 → 테스트 → 유지보수'가 한 방향으로 순차 진행된다. 이전 단계로 되돌아가기 어려워 요구사항 변경에 취약하다.

  • ② Prototype: 시제품을 만들어 요구를 확정해 가는 모형. ④ Spiral: 위험 분석을 반복하는 점진적 모형. ③ COCOMO는 생명주기 모형이 아니라 비용 산정 모델이다.

문 087. Cocomo Model 중 기관 내부에서 개발된 중소규모의 소프트웨어로 일괄 자료 처리나 과학기술계산용, 비즈니스 자료 처리용으로 5만 라인 이하의 소프트웨어를 개발하는 유형은?

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

정답 ②

COCOMO(Constructive Cost Model)는 프로그램 규모(LOC)로 개발 비용을 산정하며, 규모에 따라 세 유형으로 나뉜다. 5만 라인 이하의 중소규모는 조직형(Organic)이다.

유형 규모 특징
Organic(조직형) 5만 라인 이하 중소규모·경험 많은 팀·친숙한 업무
Semi-detached(반분리형) 30만 라인 이하 조직형과 내장형의 중간
Embedded(내장형) 30만 라인 초과 대규모·실시간·하드웨어 제약 큼

🔑 암기 — 조직형 5만 · 반분리형 30만 · 내장형 30만 초과.

문 088. 다음에서 설명하는 IT 스토리지 기술은?

  • 가상화를 적용하여 필요한 공간만큼 나눠 사용할 수 있도록 하며 서버 가상화와 유사함
  • 컴퓨팅 소프트웨어로 규정하는 데이터 스토리지 체계이며, 일정 조직 내 여러 스토리지를 하나처럼 관리하고 운용하는 컴퓨터 이용 환경
  • 스토리지 자원을 효율적으로 나누어 쓰는 방법으로 이해할 수 있음
  • ① Software Defined Storage
  • ② Distribution Oriented Storage
  • ③ Network Architected Storage
  • ④ Systematic Network Storage
정답 및 해설 보기

정답 ①

SDS(Software Defined Storage)는 스토리지의 관리 기능을 물리적 저장 장치에서 분리해 소프트웨어로 정의·제어하는 기술이다. 여러 스토리지를 가상화해 하나의 자원 풀처럼 유연하게 나눠 쓴다.

  • ②·③·④는 실제로 쓰이지 않는 가짜 용어 보기다.

문 089. TCP/IP 기반 네트워크에서 동작하는 발행-구독 기반의 메시징 프로토콜로 최근 IoT 환경에서 자주 사용되고 있는 프로토콜은?

  • ① MLFQ
  • ② MQTT
  • ③ Zigbee
  • ④ MTSP
정답 및 해설 보기

정답 ②

MQTT(Message Queuing Telemetry Transport)는 발행-구독(Publish-Subscribe) 모델로 동작하는 경량 메시징 프로토콜로, 저전력·저대역폭의 IoT 환경에 적합하다. 발행자와 구독자 사이를 브로커(Broker)가 중개한다.

  • ① MLFQ: 다단계 피드백 큐(CPU 스케줄링 기법). ③ Zigbee: 근거리 저전력 무선 통신 규격. ④ MTSP는 이 정의와 맞지 않는 보기다.

문 090. 다음 내용이 설명하는 것은?

개인과 기업, 국가적으로 큰 위협이 되고 있는 주요 사이버 범죄 중 하나로 Snake, Darkside 등 시스템을 잠그거나 데이터를 암호화해 사용할 수 없도록 하고 이를 인질로 금전을 요구하는 데 사용되는 악성 프로그램

  • ① Format String
  • ② Ransomware
  • ③ Buffer overflow
  • ④ Adware
정답 및 해설 보기

정답 ②

랜섬웨어(Ransomware)는 '몸값(Ransom)'과 '소프트웨어(Software)'의 합성어로, 파일을 암호화하거나 시스템을 잠근 뒤 이를 인질 삼아 금전을 요구하는 악성코드다. Snake·Darkside가 대표적 사례다.

  • ① Format String·③ Buffer overflow: 입력·메모리를 악용하는 취약점 공격 기법. ④ Adware: 광고를 강제로 노출하는 악성 프로그램.

문 091. 정보 보안을 위한 접근 제어(Access Control)와 관련한 설명으로 틀린 것은?

  • ① 적절한 권한을 가진 인가자만 특정 시스템이나 정보에 접근할 수 있도록 통제하는 것이다.
  • ② 시스템 및 네트워크에 대한 접근 제어의 가장 기본적인 수단은 IP와 서비스 포트로 볼 수 있다.
  • ③ DBMS에 보안 정책을 적용하는 도구인 XDMCP를 통해 데이터베이스에 대한 접근 제어를 수행할 수 있다.
  • ④ 네트워크 장비에서 수행하는 IP에 대한 접근 제어로는 관리 인터페이스의 접근 제어와 ACL(Access Control List) 등 있다.
정답 및 해설 보기

정답 ③

XDMCP(X Display Manager Control Protocol)는 유닉스·리눅스에서 원격으로 그래픽 로그인 화면을 제공하는 프로토콜로, 데이터베이스 접근 제어 도구가 아니다.

  • DBMS 접근 제어는 보통 SQL의 GRANT·REVOKE(DCL)나 별도 DB 보안 솔루션으로 수행한다.
  • ①·②·④는 접근 제어의 개념과 수단을 올바르게 설명한다.

⚠️ 함정 — 그럴듯한 약어(XDMCP)를 DB 도구인 척 끼워 넣은 보기다.

문 092. 국내 IT 서비스 경쟁력 강화를 목표로 개발되었으며 인프라 제어 및 관리 환경, 실행 환경, 개발 환경, 서비스 환경, 운영 환경으로 구성되어 있는 개방형 클라우드 컴퓨팅 플랫폼은?

  • ① N20S
  • ② PaaS-TA
  • ③ KAWS
  • ④ Metaverse
정답 및 해설 보기

정답 ②

PaaS-TA(파스타)는 과학기술정보통신부와 한국지능정보사회진흥원(NIA)이 주도해 개발한 국내 개방형 클라우드 플랫폼(PaaS)으로, 특정 벤더에 종속되지 않는 '개방형'이 특징이다.

  • ④ Metaverse: 가상 융합 공간을 뜻하는 개념으로 클라우드 플랫폼이 아니다. ①·③ N20S·KAWS는 이 정의와 맞지 않는 보기다.

💡 참고 — PaaS-TA는 이후 지원이 종료되고 민간 주도의 K-PaaS로 이어지고 있다.

문 093. 물리적 배치와 상관없이 논리적으로 LAN을 구성하여 Broadcast Domain을 구분할 수 있게 해주는 기술로 접속된 장비들의 성능 향상 및 보안성 증대 효과가 있는 것은?

  • ① VLAN
  • ② STP
  • ③ L2AN
  • ④ ARP
정답 및 해설 보기

정답 ①

VLAN(Virtual LAN)은 물리적 배치와 무관하게 스위치를 논리적으로 분할해 브로드캐스트 도메인을 나누는 기술이다. 불필요한 브로드캐스트를 줄여 성능을 높이고, 그룹 간 통신을 격리해 보안성을 높인다.

  • ② STP: 스위치 루프를 방지하는 스패닝 트리 프로토콜. ④ ARP: IP 주소를 MAC 주소로 변환하는 프로토콜. ③ L2AN은 이 정의와 맞지 않는 보기다.

문 094. S/W 각 기능의 원시 코드 라인수의 비관치, 낙관치, 기대치를 측정하여 예측치를 구하고 이를 이용하여 비용을 산정하는 기법은?

  • ① Effort Per TASK 기법
  • ② 전문가 감정 기법
  • ③ 델파이 기법
  • ④ LOC 기법
정답 및 해설 보기

정답 ④

LOC(Lines of Code) 기법은 각 기능의 원시 코드 라인 수를 비관치·낙관치·기대치로 추정해 예측치를 구하고 이를 비용 산정에 쓰는 방식이다. 예측치는 (낙관치 + 4 × 기대치 + 비관치) / 6으로 구한다.

  • ②·③ 전문가 감정 기법·델파이 기법은 전문가의 주관적 판단에 의존하는 산정 방식이다. ① Effort Per Task는 작업 단위로 노력을 산정하는 기법이다.

문 095. 소프트웨어 개발 프레임워크와 관련한 설명으로 틀린 것은?

  • ① 반제품 상태의 제품을 토대로 도메인별로 필요한 서비스 컴포넌트를 사용하여 재사용성 확대와 성능을 보장받을 수 있게 하는 개발 소프트웨어이다.
  • ② 개발해야 할 애플리케이션의 일부분이 이미 구현되어 있어 동일한 로직 반복을 줄일 수 있다.
  • ③ 라이브러리와 달리 사용자 코드가 직접 호출하여 사용하기 때문에 소프트웨어 개발 프레임워크가 직접 코드의 흐름을 제어할 수 없다.
  • ④ 생산성 향상과 유지보수성 향상 등의 장점이 있다.
정답 및 해설 보기

정답 ③

프레임워크의 핵심은 제어의 역전(IoC, Inversion of Control)이다. 라이브러리는 사용자 코드가 필요할 때 호출하지만, 프레임워크는 반대로 정해진 흐름 속에서 사용자 코드를 호출해 전체 제어권을 가진다.

구분 라이브러리 프레임워크
제어 흐름 내 코드 → 라이브러리 호출 프레임워크 → 내 코드 호출
주도권 사용자 코드 프레임워크(IoC)
  • ③은 '프레임워크가 흐름을 제어할 수 없다'고 하여 IoC를 정반대로 서술했다. ①·②·④는 프레임워크의 특징을 올바르게 설명한다.

문 096. 정보 시스템 내에서 어떤 주체가 특정 개체에 접근하려 할 때 양쪽의 보안 레이블(Security Label)에 기초하여 높은 보안 수준을 요구하는 정보(객체)가 낮은 보안 수준의 주체에게 노출되지 않도록 하는 접근 제어 방법은?

  • ① Mandatory Access Control
  • ② User Access Control
  • ③ Discretionary Access Control
  • ④ Data-Label Access Control
정답 및 해설 보기

정답 ①

MAC(Mandatory Access Control, 강제적 접근 제어)는 주체와 객체에 부여된 보안 레이블(Security Label)을 시스템이 강제로 비교해 접근을 통제한다. 소유자라도 임의로 권한을 바꿀 수 없다.

모델 접근 결정 주체 기준
MAC(강제적) 시스템 보안 레이블
DAC(임의적) 자원 소유자 소유자 재량
RBAC(역할 기반) 관리자 역할(Role)
  • ③ DAC는 소유자가 재량으로 권한을 부여하는 방식이다. ②·④는 이 정의와 맞지 않는 보기다.

문 097. 소프트웨어 생명주기 모형 중 Spiral Model에 대한 설명으로 틀린 것은?

  • ① 비교적 대규모 시스템에 적합하다.
  • ② 개발 순서는 계획 및 정의, 위험 분석, 공학적 개발, 고객 평가 순으로 진행된다.
  • ③ 소프트웨어를 개발하면서 발생할 수 있는 위험을 관리하고 최소화하는 것을 목적으로 한다.
  • ④ 계획, 설계, 개발, 평가의 개발 주기가 한 번만 수행된다.
정답 및 해설 보기

정답 ④

나선형 모형(Spiral Model)은 '계획 및 정의 → 위험 분석 → 공학적 개발 → 고객 평가'의 주기를 여러 번 반복하며 완성도를 점진적으로 높이는 모형이다. '개발 주기가 한 번만 수행된다'는 ④는 반복이라는 핵심 특징과 정반대다.

  • ①·②·③은 나선형 모형의 특징으로, 특히 매 주기 위험 분석을 수행해 대규모·고위험 시스템에 적합하다.

문 098. SQL Injection 공격과 관련한 설명으로 틀린 것은?

  • ① SQL Injection은 임의로 작성한 SQL 구문을 애플리케이션에 삽입하는 공격 방식이다.
  • ② SQL Injection 취약점이 발생하는 곳은 주로 웹 애플리케이션과 데이터베이스가 연동되는 부분이다.
  • ③ DBMS의 종류와 관계없이 SQL Injection 공격 기법은 모두 동일하다.
  • ④ 로그인과 같이 웹에서 사용자의 입력 값을 받아 데이터베이스 SQL문으로 데이터를 요청하는 경우 SQL Injection을 수행할 수 있다.
정답 및 해설 보기

정답 ③

SQL Injection의 큰 원리는 같지만, 주석 문법(예: MySQL #, Oracle --)·시스템 함수·메타 정보 구조가 DBMS마다 다르므로 세부 공격 기법도 대상 DBMS에 맞춰 달라진다. 따라서 '모두 동일하다'는 ③이 틀렸다.

  • ①·②·④는 SQL Injection의 개념과 발생 지점을 올바르게 설명한다.

문 099. 침입탐지 시스템(IDS: Intrusion Detection System)과 관련한 설명으로 틀린 것은?

  • ① 이상 탐지 기법(Anomaly Detection)은 Signature Base나 Knowledge Base라고도 불리며 이미 발견되고 정립된 공격 패턴을 입력해두었다가 탐지 및 차단한다.
  • ② HIDS(Host-Based Intrusion Detection)는 운영체제에 설정된 사용자 계정에 따라 어떤 사용자가 어떤 접근을 시도하고 어떤 작업을 했는지에 대한 기록을 남기고 추적한다.
  • ③ NIDS(Network-Based Intrusion Detection System)로는 대표적으로 Snort가 있다.
  • ④ 외부 인터넷에 서비스를 제공하는 서버가 위치하는 네트워크인 DMZ(Demilitarized Zone)에는 IDS가 설치될 수 있다.
정답 및 해설 보기

정답 ①

①은 주어를 '이상 탐지(Anomaly Detection)'라 해놓고, 설명은 시그니처 기반인 오용 탐지(Misuse Detection)의 내용을 붙여 놓아 틀렸다.

탐지 기법 원리 특징
오용 탐지(Misuse) 알려진 공격 패턴(시그니처) 대조 알려진 공격에 정확·미지 공격은 못 잡음
이상 탐지(Anomaly) 정상 행위를 학습 후 이탈 탐지 미지 공격도 탐지·오탐(false positive) 많음
  • ②·③·④는 HIDS·NIDS(Snort)·DMZ 설치에 대한 올바른 설명이다.

문 100. 시스템에 저장되는 패스워드들은 Hash 또는 암호화 알고리즘의 결과값으로 저장된다. 이때 암호 공격을 막기 위해 똑같은 패스워드들이 다른 암호 값으로 저장되도록 추가되는 값을 의미하는 것은?

  • ① Pass flag
  • ② Bucket
  • ③ Opcode
  • ④ Salt
정답 및 해설 보기

정답 ④

솔트(Salt)는 패스워드를 해시하기 전에 덧붙이는 임의의 값이다. 같은 패스워드라도 사용자마다 다른 해시 결과가 나오게 해, 미리 계산된 해시표를 이용하는 레인보우 테이블 공격을 무력화한다.

  • ① Pass flag·② Bucket·③ Opcode는 이 정의와 맞지 않는 보기다.

🔑 핵심 — Salt = 해시 전에 더하는 임의 값 → 레인보우 테이블 방어.


이 회차 한 장 요약

과목 빈출·핵심 토픽 다시 볼 문항
Ⅰ 소프트웨어 설계 럼바우(객·동·기)·클래스 다이어그램·요구사항 검증·GoF 분류·UML 의존 관계·추상화 기법·애자일/XP·미들웨어 001·002·007·014·018·019
Ⅱ 소프트웨어 개발 선형/비선형 구조·트리 순회(중위)·DFS·스택 삭제(Underflow)·버블 정렬 PASS·검증/확인(V&V)·형상관리·정적 분석 023·030·031·033·034·035
Ⅲ 데이터베이스 구축 이상 현상·개체 무결성·카티션 프로덕트·정규화(5NF/조인 종속)·NULL 검색·키·함수 종속·관계대수 043·045·048·053·057·058
Ⅳ 프로그래밍 언어 활용 C/Java/Python 코드 추적·페이지 교체·GC·응집도(시간적)·ARQ·SSTF·서브넷(FLSM)·연산자 우선순위·TCP 헤더 063·068·071·073·077·078
Ⅴ 정보시스템 구축관리 SDLC(폭포수/나선형)·COCOMO(조직형 5만)·접근제어(MAC/DAC)·대칭/비대칭키(RSA·Salt)·정보보안 공격(Ping Flood/랜섬웨어/SQL Injection)·신기술(TensorFlow·MQTT·SDS·PaaS-TA·VLAN) 081·086·087·091·095·096·099·100

🎯 빈출 — 매 회차 단골: 생명주기 모형, COCOMO, 접근제어 모델(MAC/DAC/RBAC), 대칭/비대칭키, 정보보안 공격 유형, 프레임워크 IoC, 정규화, 관계대수, 코드 추적.

⚠️ 함정 — '틀린 것' 고르기 다수(091·095·097·098·099), 개념 교차 진술(099 이상 탐지 ↔ 시그니처), 반대로 서술(095 IoC·097 '한 번만' 수행), 유사 약어(084 SSO vs SOA·091 XDMCP), 코드 추적 한 글자(077·079·080).

🔑 핵심 두문자 — 결합도 내공외제스자 · 응집도 우논시절통순기 · 정규화 두부이결다조 · 트랜잭션 ACID · COCOMO 규모 조직형 5만 · 반분리형 30만.

전체 목록 기출문제풀이

합격까지

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

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