정보처리기사 필기 — 기출 3회 풀이
목차 106
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)으로 운행한 결과는?

- ① 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 절
정답 및 해설 보기
정답 ③
HAVING은 GROUP 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 프로그램이 실행되었을 때의 결과는?
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)를 쓸 수 없다.
- ①
else는if와 함께 쓰는 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) 프로그램이 실행되었을 때의 결과는?
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 언어 프로그램이 실행되었을 때의 결과는?
#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 언어 프로그램이 실행되었을 때의 결과는?
#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)→ 참이므로 1r2 = (3 > 0) && (4 < 5)→ 둘 다 참이므로 1r3 = !2→ 2는 참이므로 그 부정은 0r1 + r2 + r3 = 1 + 1 + 0 = 2
문 080. 다음 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로 틀린 유형을 집중 공략하고, 에듀윌 온라인강의로 개념까지 정리하세요.
