정보처리기사 필기 — 기출 6회 풀이
목차 106
2020~2025 최신 기출을 재구성한 종합 세트. 100문항·5과목 × 20문항. 4과목(프로그래밍 언어 활용)에 IPv6·교착상태·흐름 제어 등 네트워크·운영체제 이론과 C·Python·Java 코드 추적이 고르게 섞였고, 5과목(정보시스템 구축관리)은 접근 제어 모델·암호화(스트림/블록)·랜섬웨어 등 정보보안 문항이 두텁다. 출처: 기출 재구성 6회
Part Ⅰ 소프트웨어 설계 (문 001~020)
문 001. 소프트웨어 개발 단계에서 요구 분석 과정에 대한 설명으로 거리가 먼 것은?
- ① 분석 결과의 문서화를 통해 향후 유지보수에 유용하게 활용할 수 있다.
- ② 개발 비용이 가장 많이 소요되는 단계이다.
- ③ 자료흐름도, 자료 사전 등이 효과적으로 이용될 수 있다.
- ④ 보다 구체적인 명세를 위해 소단위 명세서(Mini-Spec)가 활용될 수 있다.
정답 및 해설 보기
정답 ②
②'개발 비용이 가장 많이 소요되는 단계'는 요구 분석이 아니라 유지보수 단계다(전체의 약 60~70%). 요구 분석은 DFD·자료 사전·소단위 명세서(Mini-Spec)를 활용하고, 분석 결과 문서화로 향후 유지보수를 돕는다.
💡 비용 최대 = 유지보수 단계.
문 002. 요구공학(Requirements Engineering)의 요구사항 개발 프로세스를 순서대로 바르게 나열한 것은?
- ① 도출 → 분석 → 명세 → 확인
- ② 분석 → 도출 → 명세 → 확인
- ③ 명세 → 도출 → 분석 → 확인
- ④ 도출 → 명세 → 분석 → 확인
정답 및 해설 보기
정답 ①
요구사항 개발은 도출(Elicitation) → 분석(Analysis) → 명세(Specification) → 확인(Validation) 순으로 진행한다. 이해관계자에게서 뽑아내고(도출), 정리·모델링하고(분석), 문서화하고(명세), 검증(확인)한다.
🔑 암기 — 요구사항: 도·분·명·확(도출-분석-명세-확인).
문 003. 애자일(Agile) 기법 중 스크럼(Scrum)과 관련된 용어에 대한 설명이 틀린 것은?
- ① 스크럼 마스터(Scrum Master)는 스크럼 프로세스를 따르고, 팀이 스크럼을 효과적으로 활용할 수 있도록 보장하는 역할 등을 맡는다.
- ② 제품 백로그(Product Backlog)는 스크럼 팀이 해결해야 하는 목록으로 소프트웨어 요구사항, 아키텍처 정의 등이 포함될 수 있다.
- ③ 스프린트(Sprint)는 하나의 완성된 최종 결과물을 만들기 위한 주기로 3달 이상의 장기간으로 결정된다.
- ④ 속도(Velocity)는 한 번의 스프린트에서 한 팀이 어느 정도의 제품 백로그를 감당할 수 있는지에 대한 추정치로 볼 수 있다.
정답 및 해설 보기
정답 ③
③'스프린트가 3달 이상의 장기간'이 틀렸다. 스프린트(Sprint)는 보통 2~4주의 짧은 반복 주기라 애자일의 '짧은 반복' 철학에 정면으로 어긋난다. 스크럼 마스터(①)·제품 백로그(②)·속도(④) 설명은 옳다.
⚠️ 함정 — 스프린트 = 2~4주 단기(3달 이상은 폭포수에 가까움).
문 004. 아키텍처 설계 과정이 올바른 순서로 나열된 것은? ㉠ 설계 목표 설정 ㉡ 시스템 타입 결정 ㉢ 스타일 적용 및 커스터마이즈 ㉣ 서브시스템의 기능, 인터페이스 동작 작성 ㉤ 아키텍처 설계 검토
- ① ㉠ → ㉡ → ㉢ → ㉣ → ㉤
- ② ㉡ → ㉠ → ㉢ → ㉣ → ㉤
- ③ ㉠ → ㉢ → ㉡ → ㉣ → ㉤
- ④ ㉡ → ㉠ → ㉣ → ㉢ → ㉤
정답 및 해설 보기
정답 ①
아키텍처 설계는 설계 목표 설정(㉠) → 시스템 타입 결정(㉡) → 스타일 적용·커스터마이즈(㉢) → 서브시스템 기능·인터페이스·동작 작성(㉣) → 아키텍처 설계 검토(㉤) 순이다.
🔑 암기 — 목표→타입→스타일→서브시스템→검토.
문 005. 다음 중 요구사항 모델링에 활용되지 않는 것은?
- ① 애자일(Agile) 방법
- ② 유스케이스 다이어그램(Use Case Diagram)
- ③ 시퀀스 다이어그램(Sequence Diagram)
- ④ 단계 다이어그램(Phase Diagram)
정답 및 해설 보기
정답 ④
④'단계 다이어그램(Phase Diagram)'은 UML 표준 다이어그램이 아니라(물리·화학 분야 용어) 요구사항 모델링에 쓰이지 않는다. 애자일(①)·유스케이스 다이어그램(②)·시퀀스 다이어그램(③)은 요구 도출·표현에 활용된다.
⚠️ 함정 — UML에 Phase Diagram 없음(가짜 이름).
문 006. 소프트웨어 설계에서 자주 발생하는 문제에 대한 일반적이고 반복적인 해결 방법을 무엇이라고 하는가?
- ① 모듈 분해
- ② 디자인 패턴
- ③ 연관 관계
- ④ 클래스 도출
정답 및 해설 보기
정답 ②
자주 발생하는 설계 문제의 일반적·반복적 해결 방법은 디자인 패턴이다. GoF(Gang of Four)가 23가지로 분류했다. 모듈 분해=독립 모듈 분할, 연관 관계=클래스 간 관계, 클래스 도출=클래스 식별이다.
💡 디자인 패턴 = 설계 문제의 재사용 가능한 레시피(GoF 23종).
문 007. 폭포수 모형의 특징으로 거리가 먼 것은?
- ① 순차적인 접근방법을 이용한다.
- ② 나선형 모형의 단점을 보완하기 위한 모형이다.
- ③ 단계적 정의와 산출물이 명확하다.
- ④ 모형의 적용 경험과 성공사례가 많다.
정답 및 해설 보기
정답 ②
폭포수 모형이 나선형 모형보다 먼저 등장했으므로 ②'나선형의 단점을 보완한 모형'이 틀렸다. 오히려 나선형이 폭포수의 위험 관리 부재를 보완했다. 순차적 접근(①)·명확한 산출물(③)·풍부한 성공사례(④)는 폭포수의 특징이다.
💡 등장 순서: 폭포수 → 나선형(위험 관리 보완).
문 008. 다음 중 가장 결합도가 강한 것은?
- ① Data Coupling
- ② Stamp Coupling
- ③ Common Coupling
- ④ Control Coupling
정답 및 해설 보기
정답 ③
결합도 강도 순서: 자료(Data) < 스탬프(Stamp) < 제어(Control) < 외부(External) < 공통(Common) < 내용(Content). 보기 중 ③공통(Common) 결합도가 가장 강하다.
🔑 암기 — 결합도 약→강 = 자·스·제·외·공·내.
문 009. 바람직한 소프트웨어 설계 지침이 아닌 것은?
- ① 결합도를 최소화하고 응집도를 최대화한다.
- ② 복잡도와 중복성을 줄이고 일관성을 유지시킨다.
- ③ 하나의 입구와 하나의 출구를 갖도록 해야 한다.
- ④ 모듈의 크기를 가능한 작게 구성하여 병행성 수준을 높여야 한다.
정답 및 해설 보기
정답 ④
모듈 크기를 무조건 작게 하면 모듈 수가 늘어 통합 복잡도가 오르므로 ④가 바람직하지 않다. 결합도 최소화·응집도 최대화(①), 복잡도·중복 감소(②), 단일 입출구(③)는 올바른 지침이다.
💡 모듈 크기 = 적정 수준 유지(무조건 작게 ✗).
문 010. UI를 설계할 때 사용자 측면에서의 요구사항으로, 사용자가 원하는 목표를 달성하기 위해 수행할 내용을 기술하는 것은?
- ① 프로토타입
- ② 레이아웃
- ③ 유스케이스
- ④ 스토리보드
정답 및 해설 보기
정답 ③
사용자 관점에서 목표 달성을 위해 수행할 내용을 기술한 것은 유스케이스(Use Case)다. 프로토타입=시제품, 레이아웃=배치 구조, 스토리보드=화면 흐름 문서다.
💡 유스케이스 = 사용자 목표 달성 시나리오.
문 011. 사용자 인터페이스를 담당하는 View, 데이터와 비즈니스 로직을 담당하는 Model, 둘 사이를 제어하는 Controller로 구성 요소를 분리한 아키텍처 패턴은?
- ① 계층화(Layered) 패턴
- ② MVC(Model-View-Controller) 패턴
- ③ 파이프-필터(Pipe-Filter) 패턴
- ④ 클라이언트-서버(Client-Server) 패턴
정답 및 해설 보기
정답 ②
화면 표현(View)·데이터와 로직(Model)·제어(Controller)로 관심사를 분리한 것이 MVC 패턴이다. 계층화 패턴은 기능을 수직 계층으로, 파이프-필터는 데이터를 필터로 흘려 처리하며, 클라이언트-서버는 요청·응답 구조로 나눈다.
🔑 암기 — View·Model·Controller 분리 = MVC.
문 012. 럼바우(Rumbaugh)의 객체지향 분석 절차를 가장 바르게 나열한 것은?
- ① 객체 모형 → 동적 모형 → 기능 모형
- ② 객체 모형 → 기능 모형 → 동적 모형
- ③ 기능 모형 → 동적 모형 → 객체 모형
- ④ 기능 모형 → 객체 모형 → 동적 모형
정답 및 해설 보기
정답 ①
럼바우(OMT) 객체지향 분석은 객체 모형(정보 모델링) → 동적 모형(상태 다이어그램) → 기능 모형(DFD) 순이다. 나머지 보기는 순서가 뒤바뀌었다.
🔑 암기 — 럼바우 3모형 = 객·동·기(순서 그대로).
문 013. 다음 설명에 해당하는 소프트웨어 개발 생명주기 모형은?
- 폭포수 모형을 확장한 형태로, 개발 단계와 이에 대응하는 테스트 단계를 V자 형태로 나란히 배치한다.
- 각 개발 단계가 끝나면 대응하는 검증(Verification)·확인(Validation) 활동을 수행한다.
- ① 나선형 모형
- ② V 모형
- ③ 프로토타입 모형
- ④ 4GT 모형
정답 및 해설 보기
정답 ②
개발 단계와 테스트 단계를 V자로 대응시켜 검증·확인을 강조한 모형이 V-모델이다. 단위 테스트↔상세 설계, 통합 테스트↔아키텍처 설계처럼 좌우가 짝을 이룬다.
🔑 암기 — V-모델 = 폭포수 + 단계별 대응 테스트(검증·확인).
문 014. UML(Unified Modeling Language)에 대한 설명 중 틀린 것은?
- ① 기능적 모델은 사용자 측면에서 본 시스템 기능이며, UML에서는 Use Case Diagram을 사용한다.
- ② 정적 모델은 객체, 속성, 연관관계, 오퍼레이션의 시스템의 구조를 나타내며, UML에서는 Class Diagram을 사용한다.
- ③ 동적 모델은 시스템의 내부 동작을 말하며, UML에서는 Sequence Diagram, State Diagram, Activity Diagram을 사용한다.
- ④ State Diagram은 객체들 사이의 메시지 교환을 나타내며, Sequence Diagram은 하나의 객체가 가진 상태와 그 상태의 변화에 의한 동작 순서를 나타낸다.
정답 및 해설 보기
정답 ④
④에서 State Diagram(객체의 상태와 변화)과 Sequence Diagram(객체 간 메시지 교환 순서)의 설명이 서로 뒤바뀌었다. 기능=유스케이스(①), 정적=클래스(②), 동적=시퀀스·상태·활동(③) 설명은 옳다.
⚠️ 함정 — State=상태 변화 · Sequence=메시지 순서(반대 서술 주의).
문 015. 객체지향 분석 기법의 하나로 객체 모형, 동적 모형, 기능 모형의 3개 모형을 생성하는 방법은?
- ① Wirfs-Block Method
- ② Rumbaugh Method
- ③ Booch Method
- ④ Jacobson Method
정답 및 해설 보기
정답 ②
객체·동적·기능 3개 모형을 생성하는 객체지향 분석은 Rumbaugh(럼바우) 방법이다. Wirfs-Brock=책임 주도 설계, Booch=미시·거시 프로세스, Jacobson=유스케이스 중심이다.
🔑 암기 — 객·동·기 3모형 = 럼바우 · 유스케이스 = Jacobson.
문 016. 자료 흐름도(DFD)를 작성하는데 지침이 될 수 없는 항목은?
- ① 자료 흐름은 처리(Process)를 거쳐 변환될 때마다 새로운 이름을 부여한다.
- ② 어떤 처리(Process)가 출력 자료를 산출하기 위해서는 반드시 입력 자료가 발생해야 한다.
- ③ 자료 저장소에 입력 화살표가 있으면 반드시 출력 화살표도 표시되어야 한다.
- ④ 상위 단계의 처리(Process)와 하위 자료 흐름도의 자료 흐름은 서로 일치되어야 한다.
정답 및 해설 보기
정답 ③
자료 저장소(Data Store)는 입력만 또는 출력만 있을 수 있어 ③'입력 화살표가 있으면 반드시 출력 화살표도'가 틀렸다. 변환 시 새 이름 부여(①), 출력엔 입력 필요(②), 상하위 자료 흐름 일치(④)는 옳은 지침이다.
💡 자료 저장소 = 입력·출력 독립(양쪽 필수 ✗).
문 017. GoF(Gangs of Four) 디자인 패턴의 구조 패턴에 속하지 않는 것은?
- ① Composite
- ② Observer
- ③ Adapter
- ④ Decorator
정답 및 해설 보기
정답 ②
②Observer(옵서버)는 행위 패턴이다. 구조 패턴은 Composite·Adapter·Decorator·Bridge·Facade·Flyweight·Proxy다.
🔑 암기 — 구조 = 어·브·컴·데·퍼·플·프 · Observer는 행위 패턴.
문 018. 다음 내용이 설명하는 디자인 패턴은?
- 하나의 객체를 생성하면 생성된 객체를 어디서든 참조할 수 있지만, 여러 프로세스가 동시에 참조할 수는 없다.
- 클래스 내에서 인스턴스가 하나뿐임을 보장하며, 불필요한 메모리 낭비를 최소화 할 수 있다.
- ① Singleton
- ② Adapter
- ③ Prototype
- ④ Decorator
정답 및 해설 보기
정답 ①
①Singleton은 클래스의 인스턴스가 하나뿐임을 보장하고 전역 접근점을 제공해 불필요한 메모리 낭비를 줄인다. Adapter=인터페이스 변환, Prototype=복제 생성, Decorator=기능 동적 추가다.
💡 Singleton = 인스턴스 단 하나 + 전역 접근.
문 019. 인터페이스 요구 사항 검토 방법에 대한 설명이 옳은 것은?
- ① 리팩토링 - 작성자 이외의 전문 검토 그룹이 요구사항 명세서를 상세히 조사하여 결함, 표준 위배, 문제점 등을 파악
- ② 동료검토 - 요구 사항 명세서 작성자가 요구 사항 명세서를 설명하고 이해관계자들이 설명을 들으면서 결함을 발견
- ③ 인스펙션 - 자동화된 요구 사항 관리 도구를 이용하여 요구 사항 추적성과 일관성을 검토
- ④ CASE 도구 - 검토 자료를 회의 전에 배포해서 사전 검토한 후 짧은 시간 동안 검토 회의를 진행하면서 결함을 발견
정답 및 해설 보기
정답 ②
②동료검토(Walkthrough)는 작성자가 직접 명세서를 설명하고 이해관계자들이 들으며 결함을 찾는 방법이다. ①은 인스펙션, ③은 요구 추적 도구, ④는 사전 배포 후 검토 회의 설명이라 각 명칭과 어긋난다.
💡 동료검토 = 작성자 발표 · 인스펙션 = 전문가 결함 발견.
문 020. CASE(Computer-Aided Software Engineering) 도구에 대한 설명으로 거리가 먼 것은?
- ① 소프트웨어 개발 과정의 일부 또는 전체를 자동화하기 위한 도구이다.
- ② 표준화된 개발 환경 구축 및 문서 자동화 기능을 제공한다.
- ③ 작업 과정 및 데이터 공유를 통해 작업자간 커뮤니케이션을 증대한다.
- ④ 2000년대 이후 소개되었으며, 객체지향 시스템에 한해 효과적으로 활용된다.
정답 및 해설 보기
정답 ④
④CASE 도구는 1980년대 후반부터 소개됐고 구조적·객체지향 등 모든 개발 패러다임에 활용되므로 '2000년대 이후·객체지향 한정'이 틀렸다. 자동화(①)·표준화·문서화(②)·커뮤니케이션 증대(③)는 옳다.
💡 CASE = SW 공학 전반 자동화(객체지향 한정 ✗).
Part Ⅱ 소프트웨어 개발 (문 021~040)
문 021. 그래프의 특수한 형태로 노드(Node)와 선분(Branch)으로 되어 있고, 정점 사이에 사이클(Cycle)이 형성되어 있지 않으며, 자료 사이의 관계성이 계층 형식으로 나타나는 비선형 구조는?
- ① tree
- ② network
- ③ stack
- ④ distributed
정답 및 해설 보기
정답 ①
노드·선분으로 구성되고 사이클이 없으며 계층 형식인 비선형 구조는 트리(Tree)다. network=그래프, stack=선형, distributed는 자료구조 명칭이 아니다.
💡 계층 비선형 + 사이클 없음 = 트리.
문 022. DBMS의 필수 기능 중 모든 응용 프로그램들이 요구하는 데이터 구조를 지원하기 위해 데이터베이스에 저장될 데이터 타입과 구조에 대한 정의, 이용 방식, 제약 조건 등을 명시하는 기능은?
- ① 정의 기능
- ② 조작 기능
- ③ 제어 기능
- ④ 절차 기능
정답 및 해설 보기
정답 ①
데이터의 타입·구조·제약 조건을 명시하는 DBMS 기능은 정의(Definition) 기능이다. 조작 기능=CRUD 연산, 제어 기능=보안·무결성·동시성 제어다.
🔑 암기 — DBMS 필수 3기능 = 정의·조작·제어.
문 023. 소프트웨어 테스트의 기본 원리 중, 동일한 테스트 케이스를 반복 수행하면 더 이상 새로운 결함을 찾지 못하는 현상을 무엇이라 하는가?
- ① 살충제 패러독스(Pesticide Paradox)
- ② 오류 부재의 궤변(Absence of Errors Fallacy)
- ③ 파레토 법칙(Pareto Principle)
- ④ 완벽한 테스트 불가능(Exhaustive Testing)
정답 및 해설 보기
정답 ①
같은 테스트 케이스를 반복하면 살충제에 내성이 생긴 해충처럼 더는 새 결함이 잡히지 않는 현상이 살충제 패러독스다. 이를 막으려면 테스트 케이스를 주기적으로 개선·보완해야 한다.
🔑 암기 — 살충제 패러독스 = 같은 케이스 반복 → 새 결함 못 잡음.
문 024. 정형 기술 검토(FTR)의 지침으로 틀린 것은?
- ① 의제를 제한한다.
- ② 논쟁과 반박을 제한한다.
- ③ 문제 영역을 명확히 표현한다.
- ④ 참가자의 수를 제한하지 않는다.
정답 및 해설 보기
정답 ④
FTR은 참가자 수를 제한(보통 3~5명)하므로 ④'제한하지 않는다'가 틀렸다. 의제 제한(①), 논쟁·반박 제한(②), 문제 영역 명확화(③)는 올바른 지침이다.
🔑 암기 — FTR = 참가자 수 제한 필수.
문 025. 자료 구조에 대한 설명으로 틀린 것은?
- ① 큐는 비선형 구조에 해당한다.
- ② 큐는 First In – First Out 처리를 수행한다.
- ③ 스택은 Last In – First Out 처리를 수행한다.
- ④ 스택은 서브루틴 호출, 인터럽트 처리, 수식 계산 및 수식 표기법에 응용된다.
정답 및 해설 보기
정답 ①
큐(Queue)는 선형 구조(FIFO)라 ①'비선형'이 틀렸다. 비선형은 트리·그래프다. 큐=FIFO(②), 스택=LIFO(③), 스택 응용=서브루틴·인터럽트·수식 계산(④)은 옳다.
💡 큐 = 선형 구조(비선형 ✗).
문 026. 테스트 케이스에 일반적으로 포함되는 항목이 아닌 것은?
- ① 테스트 조건
- ② 테스트 데이터
- ③ 테스트 비용
- ④ 예상 결과
정답 및 해설 보기
정답 ③
테스트 케이스 구성 항목은 테스트 조건(①)·데이터(②)·예상 결과(④) 등이다. ③테스트 비용은 구성 항목이 아니다.
💡 테스트 케이스 = 조건 + 데이터 + 예상 결과.
문 027. 하향식 통합에 있어서 모듈 간의 통합 시험을 위해 일시적으로 필요한 조건만을 가지고 임시로 제공되는 시험용 모듈을 무엇이라고 하는가?
- ① Stub
- ② Driver
- ③ Procedure
- ④ Function
정답 및 해설 보기
정답 ①
하향식 통합에서 임시로 제공되는 시험용 하위 모듈은 Stub이다. Driver는 상향식 통합에서 상위 모듈을 대신한다.
🔑 암기 — 하향식 = Stub · 상향식 = Driver.
문 028. 소프트웨어 재공학이 소프트웨어의 재개발에 비해 갖는 장점으로 거리가 먼 것은?
- ① 위험부담 감소
- ② 비용 절감
- ③ 시스템 명세의 오류억제
- ④ 개발 시간의 증가
정답 및 해설 보기
정답 ④
재공학은 위험부담 감소(①)·비용 절감(②)·오류 억제(③)의 장점이 있다. ④개발 시간의 증가는 장점이 아니며, 재공학은 오히려 개발 시간을 단축한다.
💡 재공학 = 위험↓ · 비용↓ · 시간↓.
문 029. 다음 자료에 대하여 선택(Selection) 정렬을 이용하여 오름차순으로 정렬하고자 한다. 3회전 후의 결과로 옳은 것은? 자료: 37, 14, 17, 40, 35
- ① 14, 17, 37, 40, 35
- ② 14, 37, 17, 40, 35
- ③ 17, 14, 37, 35, 40
- ④ 14, 17, 35, 40, 37
정답 및 해설 보기
정답 ④
선택 정렬은 매 회전마다 남은 요소 중 최솟값을 찾아 앞과 교환한다. 37,14,17,40,35 → 1회전 14,37,17,40,35 → 2회전 14,17,37,40,35 → 3회전 14,17,35,40,37이다. 실제 정렬로도 3회전 결과가 확인된다.
🔑 암기 — 선택 정렬 = 매 회전 최솟값을 앞으로.
문 030. 화이트박스 검사 기법에 해당하는 것으로만 짝지어진 것은? ㉠ 데이터 흐름 검사 ㉡ 루프 검사 ㉢ 동등 분할 검사 ㉣ 경계값 분석 ㉤ 원인 결과 그래프 기법 ㉥ 오류예측 기법
- ① ㉠, ㉡
- ② ㉠, ㉣
- ③ ㉡, ㉤
- ④ ㉢, ㉥
정답 및 해설 보기
정답 ①
화이트박스는 데이터 흐름 검사(㉠)·루프 검사(㉡)·기본 경로·조건 검사다. 동등 분할(㉢)·경계값(㉣)·원인결과 그래프(㉤)·오류예측(㉥)은 블랙박스라 ①(㉠,㉡)만 화이트박스 조합이다.
🔑 암기 — 화이트=구조 기반(흐름·루프) · 블랙=명세 기반(분할·경계).
문 031. 다음 설명의 소프트웨어 버전 관리 도구 방식은?
- 버전 관리 자료가 원격 저장소와 로컬 저장소에 함께 저장되어 관리된다.
- 로컬 저장소에서 버전 관리가 가능하므로 원격 저장소에 문제가 생겨도 로컬 저장소의 자료를 이용하여 작업할 수 있다.
- 대표적인 버전 관리 도구로 Git이 있다.
- ① 단일 저장소 방식
- ② 분산 저장소 방식
- ③ 공유 폴더 방식
- ④ 클라이언트·서버 방식
정답 및 해설 보기
정답 ②
원격 저장소와 로컬 저장소에 함께 저장되고 대표 도구가 Git인 것은 분산 저장소 방식이다. 클라이언트·서버 방식의 대표 도구는 SVN이다.
🔑 암기 — 원격+로컬 + Git = 분산 저장소 · SVN = 클라이언트·서버.
문 032. 스택(Stack)에 대한 옳은 내용으로만 나열된 것은? ㉠ FIFO 방식으로 처리된다. ㉡ 순서 리스트의 뒤(Rear)에서 노드가 삽입되며, 앞(Front)에서 노드가 제거된다. ㉢ 선형 리스트의 양쪽 끝에서 삽입과 삭제가 모두 가능한 자료 구조이다. ㉣ 인터럽트 처리, 서브루틴 호출 작업 등에 응용된다.
- ① ㉠, ㉡
- ② ㉡, ㉢
- ③ ㉣
- ④ ㉠, ㉡, ㉢, ㉣
정답 및 해설 보기
정답 ③
스택은 LIFO로 인터럽트·서브루틴 호출(㉣)에 쓰인다. ㉠FIFO·㉡Rear 삽입/Front 제거는 큐, ㉢양쪽 끝 삽입·삭제는 데크의 특성이라 ③(㉣)만 맞다.
💡 스택=LIFO(접시) · 큐=FIFO(줄) · 데크=양쪽.
문 033. 프로그램 설계도의 하나인 NS Chart에 대한 설명으로 가장 거리가 먼 것은?
- ① 논리의 기술에 중점을 두고 도형을 이용한 표현 방법이다.
- ② 이해하기 쉽고 코드 변환이 용이하다.
- ③ 화살표나 GOTO를 사용하여 이해하기 쉽다.
- ④ 연속, 선택, 반복 등의 제어 논리 구조를 표현한다.
정답 및 해설 보기
정답 ③
NS Chart(Nassi-Schneiderman)는 화살표·GOTO를 쓰지 않는 구조적 프로그래밍 표현이라 ③이 틀렸다. 논리 기술 중심(①)·코드 변환 용이(②)·연속·선택·반복 표현(④)은 옳다.
💡 NS Chart = GOTO·화살표 없음(박스로 제어 구조 표현).
문 034. 다음 중 인터페이스 구현 검증에 사용하는 테스트 자동화 도구로 거리가 먼 것은?
- ① xUnit
- ② FitNesse
- ③ STAF
- ④ Ant
정답 및 해설 보기
정답 ④
xUnit(단위 테스트), FitNesse(웹 기반 협업 테스트), STAF(분산 환경 테스트)는 인터페이스 구현을 검증하는 테스트 자동화 도구다. Ant는 소스를 컴파일·패키징하는 빌드 자동화 도구이므로 성격이 다르다.
| 검증(테스트) 도구 | 빌드 도구 |
|---|---|
| xUnit · STAF · FitNesse · NTAF · Selenium | Ant · Maven · Gradle |
🔑 암기 — 인터페이스 검증 = xUnit·STAF·FitNesse. Ant/Maven은 빌드 도구.
문 035. 다음은 인스펙션(Inspection) 과정을 표현한 것이다. (가)~(마)에 들어갈 말을 [보기]에서 찾아 바르게 연결한 것은?
[보기] ㉠ 준비, ㉡ 사전 교육, ㉢ 인스펙션 회의, ㉣ 수정, ㉤ 후속 조치
- ① (가) - ㉡, (나) - ㉢
- ② (나) - ㉠, (다) - ㉢
- ③ (다) - ㉢, (라) - ㉤
- ④ (라) - ㉣, (마) - ㉢
정답 및 해설 보기
정답 ②
인스펙션 과정은 계획 → 사전 교육(㉡) → 준비(㉠) → 인스펙션 회의(㉢) → 수정(㉣) → 후속 조치(㉤)다. 따라서 (나)=㉠준비, (다)=㉢회의로 이은 ②가 맞다.
🔑 암기 — 인스펙션 = 계획→교육→준비→회의→수정→후속(6단계).
문 036. 연결 리스트(Linked List)에 대한 설명으로 거리가 먼 것은?
- ① 노드의 삽입이나 삭제가 쉽다.
- ② 노드들이 포인터로 연결되어 검색이 빠르다.
- ③ 연결을 해주는 포인터(Pointer)를 위한 추가 공간이 필요하다.
- ④ 연결 리스트 중에서 중간 노드 연결이 끊어지면 그 다음 노드를 찾기 힘들다.
정답 및 해설 보기
정답 ②
연결 리스트는 포인터를 따라 순차 탐색하므로 검색이 느리다 — ②가 틀렸다(배열의 인덱스 직접 접근보다 불리). 삽입·삭제 용이(①), 포인터 추가 공간(③), 중간 끊김 시 탐색 곤란(④)은 옳다.
💡 연결 리스트 = 삽입·삭제 빠름 · 검색 느림(순차 탐색).
문 037. n개의 노드로 구성된 무방향 그래프의 최대 간선 수는?
- ① n-1
- ② n/2
- ③ n(n-1)/2
- ④ n(n+1)
정답 및 해설 보기
정답 ③
무방향 그래프의 최대 간선 수는 모든 노드 쌍을 연결하는 완전 그래프일 때 n(n−1)/2다. 방향 그래프는 n(n−1)이다.
🔑 암기 — 무방향 = n(n−1)/2 · 방향 = n(n−1).
문 038. 이진 검색 알고리즘에 대한 설명으로 틀린 것은?
- ① 탐색 효율이 좋고 탐색 시간이 적게 소요된다.
- ② 검색할 데이터가 정렬되어 있어야 한다.
- ③ 피보나치 수열에 따라 다음에 비교할 대상을 선정하여 검색한다.
- ④ 비교횟수를 거듭할 때마다 검색 대상이 되는 데이터의 수가 절반으로 줄어든다.
정답 및 해설 보기
정답 ③
이진 검색은 정렬된 데이터의 중간값과 비교해 탐색 범위를 절반씩 줄인다. ③'피보나치 수열로 비교 대상 선정'은 피보나치 검색 설명이라 틀렸다. 탐색 효율 우수(①), 정렬 필요(②), 매 비교마다 절반(④)은 옳다.
💡 이진 검색 = 중간값 비교 · 피보나치 검색 = 피보나치 수열 기반.
문 039. 소프트웨어 품질 특성을 정의한 ISO/IEC 9126의 6가지 품질 특성에 해당하지 않는 것은?
- ① 기능성(Functionality)
- ② 신뢰성(Reliability)
- ③ 사용성(Usability)
- ④ 경제성(Economics)
정답 및 해설 보기
정답 ④
ISO/IEC 9126의 6대 품질 특성은 기능성·신뢰성·사용성·효율성·유지보수성·이식성이다. 경제성은 여기에 포함되지 않으므로 ④가 답이다.
| ISO/IEC 9126 6대 품질 특성 |
|---|
| 기능성 · 신뢰성 · 사용성 · 효율성 · 유지보수성 · 이식성 |
🔑 암기 — 9126 = 기·신·사·효·유·이(경제성 ✗).
문 040. 소프트웨어 형상관리(Configuration management)에 관한 설명으로 틀린 것은?
- ① 소프트웨어에서 일어나는 수정이나 변경을 알아내고 제어하는 것을 의미한다.
- ② 소프트웨어 개발의 전체 비용을 줄이고, 개발 과정의 여러 방해 요인이 최소화되도록 보증하는 것을 목적으로 한다.
- ③ 형상관리를 위하여 구성된 팀을 "chief programmer team"이라고 한다.
- ④ 형상관리의 기능 중 하나는 버전 제어 기술이다.
정답 및 해설 보기
정답 ③
형상관리를 위한 팀은 CCB(Configuration Control Board, 형상통제위원회)라 ③'chief programmer team'이 틀렸다(수석 프로그래머 팀은 개발 조직 형태). 변경 제어(①)·비용 절감·방해 최소화(②)·버전 제어(④)는 옳다.
🔑 암기 — 형상관리 팀 = CCB(형상통제위원회).
Part Ⅲ 데이터베이스 구축 (문 041~060)
문 041. 관계 데이터 모델에서 릴레이션(relation)에 관한 설명으로 옳은 것은?
- ① 릴레이션의 각 행을 스키마(schema)라 하며, 예로 도서 릴레이션을 구성하는 스키마에는 도서번호, 도서명, 저자, 가격 등이 있다.
- ② 릴레이션의 각 열을 튜플(tuple)이라 하며, 하나의 튜플은 각 속성에서 정의된 값을 이용하여 구성된다.
- ③ 도메인(domain)은 하나의 속성이 가질 수 있는 같은 타입의 모든 값의 집합으로 각 속성의 도메인은 원자값을 갖는다.
- ④ 속성(attribute)은 한 개의 릴레이션의 논리적인 구조를 정의한 것으로 릴레이션의 이름과 릴레이션에 포함된 속성들의 집합을 의미한다.
정답 및 해설 보기
정답 ③
③'도메인은 한 속성이 가질 수 있는 같은 타입의 모든 값의 집합'이 옳다(각 도메인은 원자값을 갖는다).
| 보기 | 오류 |
|---|---|
| ① | 릴레이션의 행=튜플, 스키마는 구조 정의(역할 뒤바뀜) |
| ② | 릴레이션의 열=속성, 튜플은 행(역할 뒤바뀜) |
| ④ | 논리적 구조 정의=스키마(속성과 혼동) |
🔑 암기 — 행=튜플 · 열=속성 · 값의 집합=도메인 · 구조=스키마.
문 042. 릴레이션 R의 모든 결정자(Determinant)가 후보키이면 그 릴레이션 R은 어떤 정규형에 속하는가?
- ① 제 1 정규형
- ② 제 2 정규형
- ③ 보이스/코드 정규형
- ④ 제 4 정규형
정답 및 해설 보기
정답 ③
릴레이션의 모든 결정자(Determinant)가 후보키이면 보이스/코드 정규형(BCNF)에 속한다. 이것이 BCNF의 정의다.
🔑 암기 — 모든 결정자 = 후보키 → BCNF.
문 043. 관계대수의 순수 관계 연산자가 아닌 것은?
- ① Select
- ② Cartesian Product
- ③ Division
- ④ Project
정답 및 해설 보기
정답 ②
②Cartesian Product(교차곱)는 일반 집합 연산자다. 순수 관계 연산자는 Select(σ)·Project(π)·Join(⋈)·Division(÷) 4가지다.
🔑 암기 — 순수 관계 = Select·Project·Join·Division.
문 044. 객체 지향 기법에서 하나 이상의 유사한 객체들을 묶어서 하나의 공통된 특성을 표현한 것은?
- ① 메시지
- ② 클래스
- ③ 추상화
- ④ 메소드
정답 및 해설 보기
정답 ②
유사한 객체들을 묶어 공통된 특성을 표현한 것은 클래스(Class)다. 메시지=객체 간 통신, 추상화=공통 성질 추출, 메소드=객체의 함수다.
💡 클래스 = 유사 객체들의 공통 특성을 정의한 틀.
문 045. 데이터베이스에서 병행제어의 목적으로 틀린 것은?
- ① 시스템 활용도 최대화
- ② 사용자에 대한 응답시간 최소화
- ③ 데이터베이스 공유 최소화
- ④ 데이터베이스 일관성 유지
정답 및 해설 보기
정답 ③
병행제어의 목적은 시스템 활용도 최대화(①)·응답시간 최소화(②)·데이터베이스 공유 최대화·일관성 유지(④)다. ③'공유 최소화'는 반대라 틀렸다.
💡 병행제어 = 공유 최대화 + 일관성 유지.
문 046. DML(Data Manipulation Language) 명령어가 아닌 것은?
- ① INSERT
- ② UPDATE
- ③ ALTER
- ④ DELETE
정답 및 해설 보기
정답 ③
③ALTER는 테이블 구조를 변경하는 DDL(Data Definition Language)이라 DML이 아니다.
| 분류 | 명령어 |
|---|---|
| DDL(정의) | CREATE · ALTER · DROP · TRUNCATE |
| DML(조작) | SELECT · INSERT · UPDATE · DELETE |
| DCL(제어) | GRANT · REVOKE |
| TCL(트랜잭션) | COMMIT · ROLLBACK · SAVEPOINT |
🔑 암기 — ALTER=구조 변경=DDL · DML=데이터 조작.
문 047. 테이블 R1, R2에 대하여 다음 SQL문의 결과는?
(SELECT 학번 FROM R1)
INTERSECT
(SELECT 학번 FROM R2)
[R1] 테이블
| 학번 | 학점 수 |
|---|---|
| 20201111 | 15 |
| 20202222 | 20 |
[R2] 테이블
| 학번 | 과목번호 |
|---|---|
| 20202222 | CS200 |
| 20203333 | CS300 |
- ① 학번 20202222, 학점 수 20, 과목번호 CS200 (1개 행)
- ② 학번 컬럼만 포함, 학번 20202222 (1개 행)
- ③ 학번 컬럼만 포함, 학번 20201111, 20202222, 20203333 (3개 행)
- ④ 학번/학점 수/과목번호 컬럼 포함, 20201111(15, NULL), 20202222(20, CS200), 20203333(NULL, CS300) (3개 행)
정답 및 해설 보기
정답 ②
INTERSECT는 두 SELECT 결과의 교집합 — 양쪽 모두에 존재하는 행만 반환한다. R1.학번={20201111, 20202222}, R2.학번={20202222, 20203333}의 교집합은 {20202222} 1개 행이고, 컬럼은 SELECT 절의 학번만 나온다. 실제 실행으로도 20202222 한 행이 확인된다.
🔑 암기 — UNION=합집합 · INTERSECT=교집합 · MINUS(EXCEPT)=차집합.
문 048. 관계 데이터베이스의 조인(JOIN)에 대한 설명으로 옳지 않은 것은?
- ① 내부 조인(INNER JOIN)은 두 테이블에서 조건이 일치하는 행만 반환한다.
- ② 왼쪽 외부 조인(LEFT OUTER JOIN)은 왼쪽 테이블의 행은 모두 포함한다.
- ③ 교차 조인(CROSS JOIN)의 결과 행 수는 두 테이블 행 수의 합과 같다.
- ④ 자연 조인(NATURAL JOIN)은 이름이 같은 공통 속성을 기준으로 결합한다.
정답 및 해설 보기
정답 ③
교차 조인(CROSS JOIN)은 두 테이블의 카티션 곱이므로 결과 행 수는 두 테이블 행 수의 '합'이 아니라 '곱'이다. 따라서 ③이 틀렸다.
| 조인 | 결과 |
|---|---|
| INNER | 일치하는 행만 |
| LEFT OUTER | 왼쪽 테이블 전부 + 일치 행 |
| CROSS | 두 테이블 행 수의 곱(카티션) |
| NATURAL | 공통 속성 기준 결합 |
🔑 암기 — CROSS JOIN = 행 수의 곱(카티션). 합 아님.
문 049. SQL과 관련한 설명으로 틀린 것은?
- ① REVOKE 키워드를 사용하여 열 이름을 다시 부여할 수 있다.
- ② 데이터 정의어는 기본 테이블, 뷰 테이블, 또는 인덱스 등을 생성, 변경, 제거하는데 사용되는 명령어이다.
- ③ DISTINCT를 활용하여 중복 값을 제거할 수 있다.
- ④ JOIN을 통해 여러 테이블의 레코드를 조합하여 표현할 수 있다.
정답 및 해설 보기
정답 ①
①REVOKE는 부여된 권한을 회수하는 명령어이지 열 이름을 부여하지 않는다(이름 변경은 ALTER·AS 별칭). DDL의 생성·변경·제거(②), DISTINCT 중복 제거(③), JOIN 결합(④)은 옳다.
💡 REVOKE = 권한 회수(이름 변경 ✗).
문 050. 다음 SQL 문에서 ( ) 안에 들어갈 내용으로 옳은 것은?
UPDATE 인사급여 ( ) 호봉 = 15
WHERE 성명 = '홍길동';
- ① SET
- ② FROM
- ③ INTO
- ④ IN
정답 및 해설 보기
정답 ①
UPDATE 구문은 UPDATE 테이블 **SET** 열=값 WHERE 조건이다. FROM은 SELECT에서, INTO는 INSERT에서 쓴다.
🔑 암기 — UPDATE ~ SET ~ WHERE.
문 051. 테이블 두 개를 조인하여 뷰 V_1을 정의하고, V_1을 이용하여 뷰 V_2를 정의하였다. 다음 명령 수행 후 결과로 옳은 것은? DROP VIEW V_1 CASCADE;
- ① V_1만 삭제된다.
- ② V_2만 삭제된다.
- ③ V_1과 V_2 모두 삭제된다.
- ④ V_1과 V_2 모두 삭제되지 않는다.
정답 및 해설 보기
정답 ③
DROP VIEW V_1 CASCADE;는 V_1과 이를 참조해 만든 V_2까지 연쇄 삭제한다. CASCADE 옵션은 종속된 모든 객체를 함께 지운다.
💡 DROP CASCADE = 종속 객체 연쇄 삭제.
문 052. 데이터베이스 시스템에서 삽입, 갱신, 삭제 등의 이벤트가 발생할 때마다 관련 작업이 자동으로 수행되는 절차형 SQL은?
- ① 트리거(Trigger)
- ② 무결성(Integrity)
- ③ 잠금(Lock)
- ④ 복귀(Rollback)
정답 및 해설 보기
정답 ①
INSERT·UPDATE·DELETE 등 이벤트 발생 시 자동으로 실행되는 절차형 SQL은 트리거(Trigger)다. 무결성=데이터 정확성, 잠금=동시성 제어, 롤백=취소 연산이다.
💡 트리거 = 이벤트 기반 자동 실행.
문 053. 정규화된 엔티티, 속성, 관계를 시스템의 성능 향상과 개발 운영의 단순화를 위해 중복, 통합, 분리 등을 수행하는 데이터 모델링 기법은?
- ① 정규화
- ② 반정규화
- ③ 집단화
- ④ 머징
정답 및 해설 보기
정답 ②
정규화된 엔티티를 성능 향상·운영 단순화를 위해 중복·통합·분리하는 기법은 반정규화(Denormalization)다. 정규화의 역방향 과정이다.
💡 성능 위해 중복·통합·분리 = 반정규화.
문 054. 관계 데이터 모델의 무결성 제약 중 기본키 값의 속성 값이 널(Null) 값이 아닌 원자 값을 갖는 성질은?
- ① 개체 무결성
- ② 참조 무결성
- ③ 도메인 무결성
- ④ 튜플의 유일성
정답 및 해설 보기
정답 ①
기본키(PK)가 Null이 아닌 원자값을 가져야 한다는 제약은 개체 무결성이다. 참조 무결성=FK가 참조 테이블에 존재, 도메인 무결성=속성 값이 정의된 범위 내여야 하는 것이다.
🔑 암기 — PK ≠ Null(원자값) = 개체 무결성.
문 055. 아래 그림에서 트리의 차수(degree)를 구하면?
- ① 2
- ② 3
- ③ 4
- ④ 5
정답 및 해설 보기
정답 ②
트리의 차수(degree)는 각 노드의 자식 수 중 최댓값이다. B의 자식이 D·E·F로 3개이고 이것이 최대이므로 차수는 3이다(C·E의 자식 2개는 3보다 작다).
💡 트리 차수 = 노드별 자식 수의 최댓값.
문 056. SQL의 분류 중 DDL에 해당하지 않는 것은?
- ① UPDATE
- ② ALTER
- ③ DROP
- ④ CREATE
정답 및 해설 보기
정답 ①
①UPDATE는 DML(데이터 조작어)이다. DDL은 CREATE·ALTER·DROP·TRUNCATE다.
💡 UPDATE = DML(DDL ✗).
문 057. 다음 두 릴레이션 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,수학)
정답 및 해설 보기
정답 ④
카티션 프로덕트(Cartesian Product · ×)는 두 릴레이션의 모든 튜플 조합 — |R1| × |R2| = 3 × 3 = 9개 튜플이다.
| 학년 | 학과 |
|---|---|
| 1 | 컴퓨터 / 국문 / 수학 |
| 2 | 컴퓨터 / 국문 / 수학 |
| 3 | 컴퓨터 / 국문 / 수학 |
①·②·③은 일부 조합만이라 정의 미충족이다. 실제로도 9행이 나온다.
💡 × = 모든 쌍(조인 조건 없는 곱집합).
문 058. 사용자 X1에게 department 테이블에 대한 검색 연산을 회수하는 명령은?
- ① delete select on department to X1;
- ② remove select on department from X1;
- ③ revoke select on department from X1;
- ④ grant select on department from X1;
정답 및 해설 보기
정답 ③
권한 회수 명령은 **REVOKE** 권한 **ON** 테이블 **FROM** 사용자다. ③ revoke select on department from X1;이 올바른 구문이다.
🔑 암기 — 권한 회수 = REVOKE … ON … FROM.
문 059. 다음 [조건]에 부합하는 SQL문을 작성하고자 할 때, [SQL문]의 빈칸에 들어갈 내용으로 옳은 것은? (단, ‘팀코드’ 및 ‘이름’은 속성이며, ‘직원’은 테이블이다.)
[조건] 이름이 ‘정도일’인 팀원이 소속된 팀코드를 이용하여 해당 팀에 소속된 팀원들의 이름을 출력하는 SQL문 작성
[SQL문]
SELECT 이름
FROM 직원
WHERE 팀코드=( );
- ① WHERE 이름=‘정도일’
- ② SELECT 팀코드 FROM 이름 WHERE 직원=‘정도일’
- ③ WHERE 직원=‘정도일’
- ④ SELECT 팀코드 FROM 직원 WHERE 이름=‘정도일’
정답 및 해설 보기
정답 ④
서브쿼리로 '정도일'이 소속된 팀코드를 먼저 조회한 뒤, 그 팀코드에 해당하는 팀원들의 이름을 출력한다. 올바른 서브쿼리는 ④ SELECT 팀코드 FROM 직원 WHERE 이름='정도일'이다. ②는 FROM 뒤에 속성(이름)이 와서 틀렸다.
💡 서브쿼리 = SELECT 컬럼 FROM 테이블 WHERE 조건.
문 060. 분산 데이터베이스 시스템(Distributed Database System)에 대한 설명으로 틀린 것은?
- ① 분산 데이터베이스는 논리적으로는 하나의 시스템에 속하지만 물리적으로는 여러 개의 컴퓨터 사이트에 분산되어 있다.
- ② 위치 투명성, 중복 투명성, 병행 투명성, 장애 투명성을 목표로 한다.
- ③ 데이터베이스의 설계가 비교적 어렵고, 개발 비용과 처리 비용이 증가한다는 단점이 있다.
- ④ 분산 데이터베이스 시스템의 주요 구성 요소는 분산 처리기, P2P 시스템, 단일 데이터베이스 등이 있다.
정답 및 해설 보기
정답 ④
분산 DB의 주요 구성 요소는 분산 처리기·분산 데이터베이스·통신 네트워크라 ④'P2P 시스템·단일 데이터베이스'가 틀렸다. 논리적 단일·물리적 분산(①), 4대 투명성(②), 설계·비용 부담(③)은 옳다.
💡 분산 DB = 분산 처리기 · 분산 DB · 통신망.
Part Ⅳ 프로그래밍 언어 활용 (문 061~080)
문 061. 다음 중 라우팅 프로토콜과 그 설명의 연결이 옳지 않은 것은?
- ① RIP — 거리 벡터 방식, 홉(Hop) 수(최대 15)로 경로 선택
- ② OSPF — 링크 상태 방식, 대규모 망에 적합
- ③ BGP — 자율 시스템(AS) 간 라우팅에 사용
- ④ ARP — 최단 경로를 계산하는 라우팅 프로토콜
정답 및 해설 보기
정답 ④
ARP는 IP 주소(논리 주소)를 MAC 주소(물리 주소)로 변환하는 프로토콜이지 라우팅(경로 선택) 프로토콜이 아니다. 대표 라우팅 프로토콜은 RIP·OSPF·BGP다.
| 프로토콜 | 방식 |
|---|---|
| RIP | 거리 벡터(홉 ≤ 15) |
| OSPF | 링크 상태(대규모) |
| BGP | AS 간 라우팅 |
🔑 암기 — 라우팅 = RIP·OSPF·BGP. ARP는 주소 변환(IP→MAC).
문 062. IPv6에 대한 설명으로 틀린 것은?
- ① 128비트의 주소 공간을 제공한다.
- ② 인증 및 보안 기능을 포함하고 있다.
- ③ 패킷 크기가 64Kbyte로 고정되어 있다.
- ④ IPv6 확장 헤더를 통해 네트워크 기능 확장이 용이하다.
정답 및 해설 보기
정답 ③
IPv6 패킷 크기는 64KB로 고정된 것이 아니라 확장 헤더로 가변적이라 ③이 틀렸다. 128비트 주소(①), 인증·보안 내장(②), 확장 헤더로 기능 확장 용이(④)는 옳다.
💡 IPv6 = 128비트 · 가변 패킷 · 보안 내장.
문 063. 다음 중 HRN에 대한 설명으로 옳지 않은 것은?
- ① 대기 시간과 서비스 시간을 이용하는 방법이다.
- ② 대기 시간이 긴 프로세스일 경우 우선순위가 높다.
- ③ 우선순위 계산식 값이 낮을수록 우선순위가 높다.
- ④ SJF 기법을 보완하기 위한 스케쥴링 방법이다.
정답 및 해설 보기
정답 ③
HRN 우선순위 = (대기시간 + 서비스시간) ÷ 서비스시간으로, 계산값이 높을수록 우선순위가 높다 — ③'낮을수록 높다'가 틀렸다. 대기·서비스 시간 이용(①), 대기 길수록 우선(②), SJF 보완(④)은 옳다.
🔑 암기 — HRN = (대기+서비스) ÷ 서비스, 값 높을수록 우선.
문 064. 개발에 필요한 환경 구축과 관련하여 하드웨어 환경과 관련이 없는 것은?
- ① Eclipse
- ② Oracle DB
- ③ WAS
- ④ 웹 서버
정답 및 해설 보기
정답 ①
①Eclipse는 통합 개발 환경(IDE)인 소프트웨어 개발 도구다. Oracle DB(데이터베이스 서버)·WAS(애플리케이션 서버)·웹 서버는 모두 서버 장비인 하드웨어 환경과 관련된다.
💡 Eclipse = SW 개발 도구(IDE) ≠ 하드웨어 환경.
문 065. 다음은 파이썬으로 만들어진 반복문 코드이다. 이 코드의 결과는?
while(True) :
print('A')
print('B')
break
print('C')
print('D')
- ① A, B 출력이 반복된다.
- ② A, B, C 까지만 출력된다.
- ③ A, B, C 출력이 반복된다.
- ④ A, B, D 까지만 출력된다.
정답 및 해설 보기
정답 ④
while(True) 안에서 A·B를 출력한 뒤 break로 루프를 즉시 탈출한다. C는 break 다음 줄이라 실행되지 않고, 루프 바깥의 D가 출력된다. 이 코드의 출력은 A, B, D다.
💡 break 이후 같은 반복 안의 코드 = 실행 안 됨.
문 066. 다음 C언어 프로그램의 결과로 옳은 것은?
#include <stdio.h>
main( ) {
int a[10];
a[0] = 0;
a[1] = 1;
for (int i = 0; i < 8; i++)
a[i + 2] = a[i + 1] + a[i];
printf("%d", a[9]);
}
- ① 8
- ② 13
- ③ 21
- ④ 34
정답 및 해설 보기
정답 ④
a[0]=0, a[1]=1이고 a[i+2]=a[i+1]+a[i] 규칙으로 만드는 피보나치 수열이다. a[2]=1, a[3]=2, a[4]=3, a[5]=5, a[6]=8, a[7]=13, a[8]=21, a[9]=34다. 이 코드의 출력은 34다.
💡 피보나치: 0,1,1,2,3,5,8,13,21,34.
문 067. 다음 Python 프로그램이 실행되었을 때, 실행 결과는?
strA = 'Information Technology'
strL = list()
for i in range(0, len(strA), 2):
strL.append(strA[i])
for j in range(len(strL) - 1, 0, -2):
print(strL[j], end='')
- ① gnTir
- ② riTng
- ③ ot hl
- ④ lh to
정답 및 해설 보기
정답 ①
짝수 인덱스(0,2,4,…) 문자를 모으면 strL=[I,f,r,a,i,n,T,c,n,l,g]다. 인덱스 10,8,6,4,2를 −2 스텝으로 출력하면 g,n,T,i,r → gnTir이다. 이 코드의 출력은 gnTir다.
💡 짝수 추출 후 역순 −2 스텝 출력.
문 068. IPv6의 주소체계로 거리가 먼 것은?
- ① Unicast
- ② Anycast
- ③ Broadcast
- ④ Multicast
정답 및 해설 보기
정답 ③
IPv6 주소 체계는 Unicast(1:1)·Anycast(1:최근접 하나)·Multicast(1:그룹)다. ③Broadcast는 IPv6에 없다 — 브로드캐스트 기능은 멀티캐스트로 대체됐다.
💡 IPv6 주소 = Unicast·Anycast·Multicast(Broadcast ✗).
문 069. C언어에서 정수 자료형으로 옳은 것은?
- ① int
- ② float
- ③ char
- ④ double
정답 및 해설 보기
정답 ①
C언어의 정수 자료형은 ①int(short·long 포함)다. float과 double은 실수(부동소수점) 자료형, char는 문자 자료형이다.
💡 정수=int·short·long / 실수=float·double / 문자=char.
문 070. 네트워크 장비에 대한 설명으로 옳지 않은 것은?
- ① 브라우터는 전송되는 신호가 전송 선로의 특성 및 외부 충격 등의 요인으로 인해 원래의 형태와 다르게 왜곡되거나 약해질 경우 원래의 신호 형태로 재생하여 다시 전송하는 역할을 수행한다.
- ② 브리지는 LAN과 LAN을 연결하거나 LAN 안에서의 컴퓨터 그룹을 연결하는 기능을 수행하며, 데이터 링크 계층 중 MAC 계층에서 사용된다.
- ③ 스위치는 LAN과 LAN을 연결하여 훨씬 더 큰 LAN을 만드는 장치로, OSI 7계층의 2계층에서 사용된다.
- ④ 라우터는 LAN과 LAN의 연결 기능에 데이터 전송의 최적 경로를 선택할 수 있는 기능이 추가된 것으로, 서로 다른 LAN이나 LAN과 WAN의 연결도 수행하고, OSI 7계층의 네트워크 계층에서 동작한다.
정답 및 해설 보기
정답 ①
①의 '신호를 원래 형태로 재생·재전송'은 리피터(Repeater)의 역할이다. 브라우터(Brouter)는 브리지+라우터 결합 장비다. 브리지(②·2계층 MAC), 스위치(③·2계층), 라우터(④·3계층 네트워크) 설명은 옳다.
💡 신호 재생·재전송 = 리피터(브라우터 ✗).
문 071. 다음 중 연산자의 종류가 다른 하나는?
- ① %
- ② /
- ③ -
- ④ ++
정답 및 해설 보기
정답 ④
①%·②/·③−는 모두 산술(이항) 연산자이고, ④++는 값을 1 증가시키는 증감(단항) 연산자라 종류가 다르다.
💡 산술(이항) = % / − · 증감(단항) = ++ −−.
문 072. 다음 C 언어 프로그램이 실행되었을 때의 결과는?
#include <stdio.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
정답 및 해설 보기
정답 ③
r1 = (4<=4) || (2==2) = 1, r2 = (3>0) && (4<5) = 1, r3 = !2 = 0(0이 아닌 값의 NOT은 0)이다. r1+r2+r3 = 1+1+0 = 2로, 이 코드의 출력은 2다.
💡 C 논리: !0=1 · !(0이 아닌 값)=0.
문 073. 교착 상태 발생의 필요 충분 조건이 아닌 것은?
- ① 상호 배제(Mutual Exclusion)
- ② 점유와 대기(Hold and Wait)
- ③ 환형 대기(Circular Wait)
- ④ 선점(Preemption)
정답 및 해설 보기
정답 ④
교착 상태의 필요충분 4조건은 상호 배제(①)·점유와 대기(②)·비선점(Non-preemption)·환형 대기(③)다. ④선점(Preemption)은 교착 조건이 아니라 해결 기법이다.
🔑 암기 — 교착 4조건 = 상호배제·점유대기·비선점·환형대기.
문 074. 흐름 제어(Flow Control)에 대한 설명으로 옳지 않은 것은?
- ① 정지-대기는 수신 측의 확인 신호(ACK)를 받은 후에 다음 패킷을 전송하는 방식이다.
- ② 확인 신호를 이용하여 송신 데이터의 양을 조절하는 방식은 슬라이딩 윈도우이다.
- ③ 확인 신호 없이 보낼 수 있는 패킷의 최대치가 윈도우 크기이다.
- ④ 이전에 송신한 패킷에 대한 부정 수신 응답(NAK)이 전달된 경우 윈도우 크기가 증가한다.
정답 및 해설 보기
정답 ④
NAK(부정 수신 응답)가 오면 윈도우 크기가 증가하지 않고 재전송이 일어나므로 ④가 틀렸다. 정지-대기 ACK 후 전송(①), 슬라이딩 윈도우(②), 윈도우 크기=무응답 전송 최대치(③)는 옳다.
💡 NAK = 재전송(윈도우 크기 증가 ✗).
문 075. UNIX에서 새로운 프로세스를 생성하는 명령어는?
- ① ls
- ② cat
- ③ fork
- ④ chmod
정답 및 해설 보기
정답 ③
UNIX에서 새로운 프로세스를 생성하는 시스템 호출은 ③fork()다. ls=파일 목록, cat=내용 출력, chmod=권한 변경이다.
💡 프로세스 생성 = fork.
문 076. 다음 셸 스크립트의 의미로 옳은 것은?
until who | grep wow
do
sleep 5
done
- ① wow 사용자가 로그인한 경우에만 반복문을 수행한다.
- ② wow 사용자가 로그인할 때까지 반복문을 수행한다.
- ③ wow 문자열을 복사한다.
- ④ wow 사용자에 대한 정보를 무한 반복하여 출력한다.
정답 및 해설 보기
정답 ②
UNIX until 문은 조건이 거짓인 동안 반복하고 who | grep wow가 성공(wow 발견)하면 종료하므로, ②'wow 사용자가 로그인할 때까지 반복'이 맞다. while과 정반대다.
💡 until = 조건이 참이 될 때까지 반복(while의 반대).
문 077. HTTP의 잘 알려진(Well Known) 포트 번호는?
- ① 23
- ② 80
- ③ 53
- ④ 443
정답 및 해설 보기
정답 ②
HTTP의 Well Known 포트 번호는 ②80이다. 23=Telnet, 53=DNS, 443=HTTPS다.
🔑 암기 — HTTP=80 · HTTPS=443 · Telnet=23 · DNS=53.
문 078. 다음 중 C 언어에서 우선 순위가 가장 높은 것은?
- ① 비트 연산자
- ② 시프트 연산자
- ③ 관계 연산자
- ④ 산술 연산자
정답 및 해설 보기
정답 ④
C 언어 연산자 우선순위는 산술 > 시프트 > 관계 > 비트 순이라 ④산술 연산자(+ − * / %)가 가장 높다.
🔑 암기 — 우선순위: 산술 > 시프트 > 관계 > 비트.
문 079. 다음은 어떤 프로그램 구조를 나타낸다. 모듈 F에서의 Fan-In과 Fan-Out의 수는 얼마인가?
- ① Fan-In : 2, Fan-Out : 3
- ② Fan-In : 3, Fan-Out : 2
- ③ Fan-In : 1, Fan-Out : 2
- ④ Fan-In : 2, Fan-Out : 1
정답 및 해설 보기
정답 ②
모듈 F는 B·C·D 세 모듈에서 호출되므로 Fan-In=3, G·H 두 모듈을 호출하므로 Fan-Out=2다. Fan-In=해당 모듈을 호출하는 상위 모듈 수, Fan-Out=호출하는 하위 모듈 수다.
💡 Fan-In=호출받는 수(3) · Fan-Out=호출하는 수(2).
문 080. 다음 JAVA 프로그램이 실행되었을 때, 실행 결과는?
public class Ape {
static void rs(char a[]) {
for(int i = 0; i < a.length; i++)
if(a[i] == 'B')
a[i] = 'C';
else if(i == a.length - 1)
a[i] = a[i-1];
else a[i] = a[i+1];
}
static void pca(char a[]) {
for(int i = 0; i < a.length; i ++)
System.out.print(a[i]);
System.out.println();
}
public static void main(String[] args) {
char c[] = {'A','B','D','D','A','B','C'};
rs(c);
pca(c);
}
}
- ① BCDABCA
- ② BCDABCC
- ③ CDDACCC
- ④ CDDACCA
정답 및 해설 보기
정답 ②
char c[] = {'A','B','D','D','A','B','C'}에 rs(c)를 적용하면:
- i=0: 'A'≠'B', 끝 아님 → a[0]=a[1]='B'
- i=1: 'B'='B' → a[1]='C'
- i=2: 'D'≠'B', 끝 아님 → a[2]=a[3]='D'
- i=3: 'D'≠'B', 끝 아님 → a[3]=a[4]='A'
- i=4: 'A'≠'B', 끝 아님 → a[4]=a[5]='B'
- i=5: 'B'='B' → a[5]='C'
- i=6: 'C'≠'B', 마지막 → a[6]=a[5]='C'
결과는 BCDABCC로, 이 프로그램의 출력은 BCDABCC다.
💡 'B'면 'C'로 교체 · 마지막이면 이전값 복사 · 나머지는 다음값 복사.
Part Ⅴ 정보시스템 구축관리 (문 081~100)
문 081. 다음 괄호에 공통으로 들어갈 용어는 무엇인가?
( )는 일련의 데이터를 정의하고 설명해 주는 데이터로, 컴퓨터에서는 데이터 사전의 내용, 스키마 등을 의미한다. ( )는 여러 용도로 사용되나 주로 빠르게 검색하거나 내용을 간략하고 체계적으로 하기 위해 많이 사용된다.
- ① View
- ② Broad Data
- ③ Big Data
- ④ Meta Data
정답 및 해설 보기
정답 ④
데이터를 정의·설명하는 데이터에 대한 데이터는 ④메타데이터(Meta Data)다. 데이터 사전의 내용·스키마 등을 의미하고 빠른 검색과 체계적 관리를 위해 쓴다.
💡 데이터에 대한 데이터 = Meta Data.
문 082. 다음에서 설명하는 IT 기술은?
- 네트워크를 제어부, 데이터 전달부로 분리하여 네트워크 관리자가 보다 효율적으로 네트워크를 제어, 관리할 수 있는 기술
- 기존의 라우터, 스위치 등과 같이 하드웨어에 의존하는 네트워크 체계에서 안정성, 속도, 보안 등을 소프트웨어로 제어, 관리하기 위해 개발됨
- 네트워크 장비의 펌웨어 업그레이드를 통해 사용자의 직접적인 데이터 전송 경로 관리가 가능하고, 기존 네트워크에는 영향을 주지 않으면서 특정 서비스의 전송 경로 수정을 통하여 인터넷상에서 발생하는 문제를 처리할 수 있음
- ① SDN(Software Defined Networking)
- ② NFS(Network File System)
- ③ Network Mapper
- ④ AOE Network
정답 및 해설 보기
정답 ①
SDN(Software Defined Networking)은 네트워크를 제어부(Control Plane)와 데이터 전달부(Data Plane)로 분리해 소프트웨어로 제어·관리하는 기술이다. 하드웨어 의존을 줄이고 유연한 네트워크 운영이 가능하다. NFS=네트워크 파일 시스템, Network Mapper=포트 스캐너(nmap), AOE Network=작업 네트워크다.
💡 제어부/전달부 분리 + SW 제어 = SDN.
문 083. DoS(Denial of Service) 공격과 관련한 내용으로 틀린 것은?
- ① Ping of Death 공격은 정상 크기보다 큰 ICMP 패킷을 작은 조각(Fragment)으로 쪼개어 공격 대상이 조각화 된 패킷을 처리하게 만드는 공격 방법이다.
- ② Smurf 공격은 멀티캐스트(Multicast)를 활용하여 공격 대상이 네트워크의 임의의 시스템에 패킷을 보내게 만드는 공격이다.
- ③ SYN Flooding은 존재하지 않는 클라이언트가 서버별로 한정된 접속 가능 공간에 접속한 것처럼 속여 다른 사용자가 서비스를 이용하지 못하게 하는 것이다.
- ④ Land 공격은 패킷 전송 시 출발지 IP주소와 목적지 IP주소 값을 똑같이 만들어서 공격 대상에게 보내는 공격 방법이다.
정답 및 해설 보기
정답 ②
Smurf 공격은 브로드캐스트(Broadcast)를 이용해 위조된 ICMP Echo를 다량 유발하므로 ②'멀티캐스트 활용'이 틀렸다. Ping of Death(①), SYN Flooding(③), Land 공격(④) 설명은 옳다.
💡 Smurf = 브로드캐스트(멀티캐스트 ✗).
문 084. CMMI의 단계가 아닌 것은?
- ① 초기
- ② 관리
- ③ 정의
- ④ 반복
정답 및 해설 보기
정답 ④
CMMI 성숙도 5단계는 초기 → 관리 → 정의 → 정량적 관리 → 최적화다. ④반복(Repeatable)은 CMM의 2단계 명칭으로, CMMI에서는 '관리'로 바뀌었다.
🔑 암기 — CMMI = 초기·관리·정의·정량·최적(반복은 CMM).
문 085. 테일러링(Tailoring) 개발 방법론의 내부 기준에 해당하지 않는 것은?
- ① 납기/비용
- ② 기술 환경
- ③ 구성원 능력
- ④ 국제 표준 품질 기준
정답 및 해설 보기
정답 ④
테일러링 내부 기준은 납기/비용(①)·기술 환경(②)·구성원 능력(③)이다. ④국제 표준 품질 기준은 조직 외부에서 요구하는 외부 기준이다.
💡 내부=납기·기술·구성원 / 외부=국제 표준·법규.
문 086. 컴퓨터 사용자의 키보드 움직임을 탐지해 ID, 패스워드 등 개인의 중요한 정보를 몰래 빼가는 해킹 공격은?
- ① Key Logger Attack
- ② Worm
- ③ Rollback
- ④ Zombie Worm
정답 및 해설 보기
정답 ①
키보드 입력을 탐지해 ID·패스워드를 탈취하는 공격은 ①키로거(Key Logger) 공격이다. Worm=자기 복제 악성코드, Rollback=복구 기법, Zombie Worm=좀비PC 관련이다.
💡 키로거 = 키보드 입력 도청.
문 087. 다음 내용이 설명하는 접근 제어 모델은?
- 군대의 보안 레벨처럼 정보의 기밀성에 따라 상하 관계가 구분된 정보를 보호하기 위해 사용
- 자신의 권한보다 낮은 보안 레벨 권한을 가진 경우에는 높은 보안 레벨의 문서를 읽을 수 없고 자신의 권한보다 낮은 수준의 문서만 읽을 수 있다.
- 자신의 권한보다 높은 보안 레벨의 문서에는 쓰기가 가능하지만 보안 레벨이 낮은 문서의 쓰기 권한은 제한된다.
- ① Clark-Wilson Integrity Model
- ② PDCA Model
- ③ Bell-Lapadula Model
- ④ Chinese Wall Model
정답 및 해설 보기
정답 ③
벨-라파듈라(Bell-LaPadula) 모델은 기밀성 중심 접근 제어로 No Read Up(상위 등급 읽기 금지)·No Write Down(하위 등급 쓰기 금지)을 적용한다. Clark-Wilson=무결성 모델, Chinese Wall=이해 충돌 방지 모델이다.
💡 기밀성 + 읽기↑금지 + 쓰기↓금지 = Bell-LaPadula.
문 088. 스트림 암호화 방식의 설명으로 옳지 않은 것은?
- ① 비트/바이트/단어들을 순차적으로 암호화한다.
- ② 해쉬 함수를 이용한 해쉬 암호화 방식을 사용한다.
- ③ RC4는 스트림 암호화 방식에 해당한다.
- ④ 대칭키 암호화 방식이다.
정답 및 해설 보기
정답 ②
스트림 암호는 키 스트림으로 비트 단위 XOR을 수행하며 ②'해시 함수 암호화 방식'을 쓰지 않는다(해시는 단방향 함수라 암호화가 아님). 순차 암호화(①), RC4(③), 대칭키 방식(④)은 옳다.
💡 스트림 암호 = 키 스트림 + XOR(해시 ✗).
문 089. Python을 기반으로 컴포넌트의 재사용과 플러그인화를 강조하여 신속한 개발이 가능하도록 지원하는 프레임워크는?
- ① Spring
- ② Node.js
- ③ Django
- ④ Codeigniter
정답 및 해설 보기
정답 ③
Python 기반으로 컴포넌트 재사용·플러그인화를 강조하는 웹 프레임워크는 ③Django다. Spring=Java, Node.js=JavaScript, Codeigniter=PHP다.
💡 Python 웹 프레임워크 = Django.
문 090. 프로젝트에 내재된 위험 요소를 인식하고 그 영향을 분석하여 이를 관리하는 활동으로서, 프로젝트를 성공시키기 위하여 위험 요소를 사전에 예측, 대비하는 모든 기술과 활동을 포함하는 것은?
- ① Critical Path Method
- ② Risk Analysis
- ③ Work Breakdown Structure
- ④ Waterfall Model
정답 및 해설 보기
정답 ②
위험 요소를 인식·영향 분석하고 사전에 예측·대비하는 활동은 ②위험 분석(Risk Analysis)이다. CPM=일정 관리, WBS=작업 분해, Waterfall=개발 모델이다.
💡 위험 인식·분석·대비 = Risk Analysis.
문 091. 침입 탐지 시스템(IDS)에 대한 설명으로 옳지 않은 것은?
- ① 오용 탐지(Misuse)는 알려진 공격 패턴(시그니처)과 비교해 탐지한다.
- ② 이상 탐지(Anomaly)는 정상 행위 기준을 벗어난 활동을 탐지한다.
- ③ 오용 탐지는 알려지지 않은 새로운 공격(제로데이) 탐지에 강하다.
- ④ 설치 위치에 따라 네트워크 기반(NIDS)과 호스트 기반(HIDS)으로 나뉜다.
정답 및 해설 보기
정답 ③
새로운(알려지지 않은) 공격 탐지에 강한 것은 이상 탐지(Anomaly)다. 오용 탐지는 이미 알려진 시그니처와 비교하므로 신종 공격에는 약하다. 따라서 ③이 틀렸다.
| 탐지 방식 | 특징 |
|---|---|
| 오용 탐지 | 알려진 시그니처 비교(신종에 약함) |
| 이상 탐지 | 정상 이탈 감지(신종에 강함) |
🔑 암기 — 오용=알려진 패턴, 이상=정상 이탈(신종 탐지).
문 092. 시스템의 사용자가 로그인하여 명령을 내리는 과정에 대한 시스템의 동작 중 다음 설명에 해당하는 것은?
- 자신의 신원(Identity)을 시스템에 증명하는 과정이다.
- 아이디와 패스워드를 입력하는 과정이 가장 일반적인 예시라고 볼 수 있다.
- ① Aging
- ② Accounting
- ③ Authorization
- ④ Authentication
정답 및 해설 보기
정답 ④
자신의 신원(Identity)을 시스템에 증명하는 과정은 ④인증(Authentication)이다. Aging=프로세스 기아 방지, Accounting=자원 사용 기록, Authorization=권한 부여다.
💡 ID·PW로 신원 증명 = Authentication.
문 093. 다음 설명의 정보보안 침해 공격 관련 용어는?
인터넷 사용자의 컴퓨터에 침입해 내부 문서 파일 등을 암호화해 사용자가 열지 못하게 하는 공격으로, 암호 해독용 프로그램의 전달을 조건으로 사용자에게 돈을 요구하기도 한다.
- ① Smishing
- ② C-brain
- ③ Trojan Horse
- ④ Ransomware
정답 및 해설 보기
정답 ④
파일을 암호화해 인질로 잡고 복호화 대가로 금전(주로 암호화폐)을 요구하는 공격은 ④랜섬웨어(Ransomware)다. Smishing=문자 피싱, C-brain=최초의 PC 바이러스, Trojan Horse=정상 위장 악성코드다.
💡 파일 암호화 + 돈 요구 = Ransomware(몸값).
문 094. DDoS 공격과 연관이 있는 공격 방법은?
- ① Secure shell
- ② Tribe Flood Network
- ③ Nimda
- ④ Deadlock
정답 및 해설 보기
정답 ②
DDoS 공격과 연관된 공격 도구는 ②Tribe Flood Network(TFN)다. Secure Shell=SSH 원격 접속, Nimda=웜 바이러스, Deadlock=교착 상태(보안 공격 아님)다.
💡 DDoS 도구 = TFN.
문 095. LOC 기법에 의하여 예측된 총 라인수가 36,000라인, 개발에 참여할 프로그래머가 6명, 프로그래머들의 평균 생산성이 월간 300라인일 때 개발에 소요되는 기간은?
- ① 5개월
- ② 10개월
- ③ 15개월
- ④ 20개월
정답 및 해설 보기
정답 ④
개발 기간 = 총 라인 수 ÷ (프로그래머 수 × 월간 생산성) = 36,000 ÷ (6 × 300) = 36,000 ÷ 1,800 = 20개월이다.
🔑 암기 — 기간 = 총 라인 ÷ (인원 × 생산성).
문 096. 다음 설명에 해당하는 클라우드 컴퓨팅 서비스 모델은?
- 응용 프로그램을 개발·실행할 수 있는 플랫폼(개발 도구, 실행 환경 등)을 제공한다.
- 사용자는 인프라를 직접 관리하지 않고 애플리케이션 개발에만 집중한다.
- ① IaaS
- ② PaaS
- ③ SaaS
- ④ DaaS
정답 및 해설 보기
정답 ②
개발·실행 플랫폼을 제공하는 모델은 PaaS(Platform as a Service)다. IaaS는 서버·스토리지 등 인프라를, SaaS는 완성된 소프트웨어를 서비스로 제공한다.
| 모델 | 제공 범위 |
|---|---|
| IaaS | 인프라(서버·스토리지) |
| PaaS | 개발·실행 플랫폼 |
| SaaS | 완성된 소프트웨어 |
🔑 암기 — 인프라 I, 플랫폼 P, 소프트웨어 S(aaS).
문 097. 블록 암호화 방식이 아닌 것은?
- ① DES
- ② RC4
- ③ AES
- ④ SEED
정답 및 해설 보기
정답 ②
②RC4는 1바이트씩 처리하는 스트림 암호(Stream Cipher)라 블록 단위(64/128비트)로 처리하는 블록 암호가 아니다.
| 종류 | 알고리즘 |
|---|---|
| 스트림 | RC4(1바이트씩) |
| 블록 | DES(64bit) · AES · SEED · ARIA(128bit) |
🔑 암기 — 스트림=RC4 · 블록=DES·AES·SEED·ARIA.
문 098. Public 메소드로부터 Private 배열이 반환될 경우 발생하는 문제점으로 가장 옳은 것은?
- ① 메소드로의 접근이 불가능해진다.
- ② 배열의 주소가 외부로 공개되어 외부에서 접근할 수 있게 된다.
- ③ 시스템의 내부 정보가 노출된다.
- ④ 동기화 오류가 발생한다.
정답 및 해설 보기
정답 ②
Public 메소드가 Private 배열을 반환하면 배열의 참조(주소)가 외부에 공개돼 외부에서 직접 접근·수정할 수 있게 된다 — ②가 옳다. 캡슐화 위반 문제다.
💡 Private 배열 반환 = 주소 외부 노출(캡슐화 위반).
문 099. 다음은 정보의 접근통제 정책에 대한 설명이다. (ㄱ)에 들어갈 내용으로 옳은 것은?
| 정책 | (ㄱ) | DAC | RBAC |
|---|---|---|---|
| 권한 부여 | 시스템 | 데이터 소유자 | 중앙 관리자 |
| 접근 결정 | 보안등급(Label) | 신분(Identity) | 역할(Role) |
| 정책 변경 | 고정적(변경 어려움) | 변경 용이 | 변경 용이 |
| 장점 | 안정적 중앙 집중적 | 구현 용이 유연함 | 관리 용이 |
- ① NAC
- ② MAC
- ③ SDAC
- ④ AAC
정답 및 해설 보기
정답 ②
②MAC(Mandatory Access Control, 강제적 접근 통제)는 시스템이 권한을 부여하고 보안 등급(Label)으로 접근을 결정한다. 정책 변경이 어렵고 안정적·중앙 집중적이다. DAC=데이터 소유자(신분) 기반, RBAC=역할 기반이다.
💡 MAC = 시스템 부여 + 보안 등급(Label) + 강제적.
문 100. 다음 중 양방향 암호화 방식이 아닌 것은?
- ① DES
- ② SEED
- ③ RSA
- ④ HASH
정답 및 해설 보기
정답 ④
④HASH는 복호화가 불가능한 단방향 암호화다. DES(대칭)·SEED(대칭)·RSA(비대칭)는 암호화·복호화가 모두 되는 양방향 방식이다.
💡 양방향 = DES·SEED·RSA · 단방향(복호화 ✗) = HASH.
이 회차 한 장 요약
| 과목 | 빈출·핵심 토픽 | 다시 볼 문항 |
|---|---|---|
| Ⅰ 소프트웨어 설계 | 요구 분석·LOC 기간 산정·애자일/스크럼(스프린트 2~4주)·아키텍처 설계 순서·럼바우(객·동·기)·디자인 패턴(GoF·Singleton)·폭포수↔나선형·결합도·유스케이스·DFD·동료검토/인스펙션·CASE | 003·005·008·018·019·020 |
| Ⅱ 소프트웨어 개발 | 트리·DBMS 정의 기능·테스트 오라클·FTR·큐/스택/데크·테스트 케이스·Stub/Driver·재공학·선택 정렬·화이트/블랙박스·버전 관리(분산=Git)·NS Chart·McCabe V(G)·인스펙션 절차·연결 리스트·그래프 간선·이진 검색·형상관리(CCB) | 029·030·032·034·035·040 |
| Ⅲ 데이터베이스 구축 | 릴레이션(튜플·속성·도메인·스키마)·BCNF·관계대수(순수/일반)·클래스·병행제어·SQL 분류(DDL/DML/DCL)·INTERSECT·트리거·반정규화·개체 무결성·트리 차수·DROP CASCADE·카티션 프로덕트·REVOKE·분산 DB | 041·046·047·057·058·059 |
| Ⅳ 프로그래밍 언어 활용 | 결합도(제어)·IPv6(패킷·주소체계)·HRN·개발 환경·코드 추적(Python break·C 피보나치·Python 슬라이싱·C 논리연산·Java char 배열)·정수 자료형·네트워크 장비(리피터)·연산자·교착 4조건·흐름 제어(NAK)·fork·셸 until·포트(HTTP 80)·연산자 우선순위·Fan-In/Out | 065·066·067·072·080 |
| Ⅴ 정보시스템 구축관리 | 메타데이터·SDN·DoS(Smurf/Land/SYN)·CMMI·테일러링·키로거·Bell-LaPadula·암호화(스트림 RC4/블록·양방향/단방향)·Django·위험 분석·보안 CIA·인증·랜섬웨어·DDoS(TFN)·LOC·간트 차트·캡슐화·MAC | 082·087·093·097·099 |
🎯 빈출 — 매 회차 단골: 애자일/스크럼·아키텍처 설계 순서·GoF 패턴·정규화(BCNF)·SQL 분류(DDL/DML/DCL)·코드 추적(C/Java/Python)·IPv6·교착 4조건·정보보안(접근 제어 모델·암호 스트림/블록·랜섬웨어)·프로젝트 관리(LOC/CMMI/간트).
⚠️ 함정 — '틀린 것/아닌 것/거리가 먼 것' 고르기 다수(001·003·005·007·009·013·014·016·020·023·024·025·028·033·036·038·039·040·045·049·060·062·063·070·073·074·083·085·088·091·100), 반대로 서술(014 State↔Sequence·063 HRN 값 방향·045 공유 최소화↔최대화), 가짜 이름(005 Phase Diagram·040 chief programmer team↔CCB). 유사 개념 교차 반복: 002·095 LOC 기간 산정 완전 동일 · 004·011 아키텍처 설계 순서 · 046·056 DDL/DML · 062·068 IPv6 · 088·097 스트림/블록 암호.
🔑 핵심 두문자 — 럼바우 객·동·기 · 결합도 자·스·제·외·공·내 · GoF 구조 어·브·컴·데·퍼·플·프 · 교착 상호배제·점유대기·비선점·환형대기 · 보안 CIA 기밀·무결·가용 · CMMI 초·관·정·정량·최적.
합격까지
정보처리기사, 약점 과목이 보이나요?
초개인화 학습앱 Klue로 틀린 유형을 집중 공략하고, 에듀윌 온라인강의로 개념까지 정리하세요.
