문서 읽는 데 124분 · 모의 1회 · 100문항

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

목차 106
전체 3회 중 1회 · 실전모의고사

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

문 001. 다음 중 자료 흐름도(DFD)의 구성요소에 포함되지 않는 것은?

  • ① Data Dictionary
  • ② Data Flow
  • ③ Data Store
  • ④ Terminator
정답 및 해설 보기

정답 ①

자료 흐름도(DFD)의 구성요소는 처리(Process)·자료 흐름(Data Flow)·자료 저장소(Data Store)·단말(Terminator) 네 가지다. 자료 사전(Data Dictionary)은 DFD에 쓰인 자료를 정의해 두는 별도 산출물로, DFD의 구성요소가 아니다.

🔑 암기 DFD 4대 구성요소 = "프·플·스·터"(Process · Flow · Store · Terminator)

⚠️ 함정 'Dictionary(사전)'는 DFD를 설명하는 글이지 그림의 구성요소가 아니다.

문 002. 코드 설계에서 대상과 관계있는 문자나 숫자를 조합하여 만든 코드는?

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

정답 ③

대상의 명칭·특성과 관계있는 문자·숫자를 따서 떠올리기(연상) 쉽게 만든 코드가 연상 코드(Mnemonic Code)다(예: TV-LED-50 → 50인치 LED TV).

오답 정리:

코드 부여 방식
순차 코드 일련번호를 차례대로 부여
블록 코드 공통 항목을 블록(구간)으로 묶고 그 안에서 번호 부여
표의 숫자 코드(유효 숫자 코드) 대상의 물리적 수치(길이·두께 등)를 그대로 코드값으로
연상 코드 대상과 관계있는 문자·기호로 연상되게

🔑 암기 "관계있는 문자 → 떠올린다(연상)" = 연상 코드

문 003. 다음 중 XP(eXtreme Programming)의 5가지 가치로 거리가 먼 것은?

  • ① 존중
  • ② 의사소통
  • ③ 피드백
  • ④ 직관성
정답 및 해설 보기

정답 ④

XP의 5대 가치는 의사소통·단순성·피드백·용기·존중이다. 직관성은 포함되지 않는다.

🔑 암기 XP 5가치 = "용·단·의·피·존"(용기 · 단순성 · 의사소통 · 피드백 · 존중). 보기 중 이 다섯에 없는 단어가 정답.

문 004. 다음 중 UML 다이어그램이 아닌 것은?

  • ① 클래스 다이어그램(Class Diagram)
  • ② 속성 다이어그램(Attribute Diagram)
  • ③ 유스케이스 다이어그램(Usecase Diagram)
  • ④ 순차 다이어그램(Sequence Diagram)
정답 및 해설 보기

정답 ②

속성(Attribute)은 클래스 내부의 구성 요소일 뿐 독립된 UML 다이어그램이 아니다. UML에는 '속성 다이어그램'·'연산 다이어그램' 같은 것이 없다.

💡 보충 UML 다이어그램은 구조(클래스·객체·컴포넌트·배치 등)와 행위(유스케이스·순차·상태·활동 등)로 나뉜다.

⚠️ 함정 '속성'·'연산' 등 클래스 내부 요소 이름이 붙은 다이어그램은 UML에 없다.

문 005. 객체지향 프로그램에서 한 객체가 다른 객체의 메소드를 부르는 과정은?

  • ① 메소드
  • ② 클래스
  • ③ 상속성
  • ④ 메시지
정답 및 해설 보기

정답 ④

객체는 서로의 내부에 직접 접근하지 않고 메시지(Message)를 보내 작업을 요청한다. 한 객체가 다른 객체의 메소드를 호출하는 행위가 곧 메시지 전달이다.

문 006. 다음 중 소프트웨어 설계 시 구축된 플랫폼의 성능 특성 분석에 사용되는 측정 항목이 아닌 것은?

  • ① 응답 시간(Response Time)
  • ② 피드백(Feedback)
  • ③ 사용률(Utilization)
  • ④ 가용성(Availability)
정답 및 해설 보기

정답 ②

플랫폼 성능 측정 항목은 응답 시간·가용성·사용률·경과 시간(Turnaround Time)이다. 피드백은 성능 지표가 아니라 UI·상호작용 영역의 용어다.

🔑 암기 플랫폼 성능 측정 4대 = "응·가·경·사"(응답 시간 · 가용성 · 경과 시간 · 사용률)

문 007. '인터넷 서점'에 대한 유스케이스 다이어그램에서 '회원등록' 유스케이스를 수행하기 위해서는 '실명확인' 유스케이스가 반드시 선행되어야 한다면 이들의 관계는?

  • ① 일반화(Generalization) 관계
  • ② 확장(Extend) 관계
  • ③ 포함(Include) 관계
  • ④ 연관(Association) 관계
정답 및 해설 보기

정답 ③

한 유스케이스가 다른 유스케이스를 '반드시' 수행해야 하면(필수) 포함(Include) 관계다. 핵심 키워드는 "반드시".

관계 의미 표기
포함(Include) 필수 — 항상 수행 점선 화살표 + <<include>>
확장(Extend) 선택 — 조건부 수행 점선 화살표 + <<extend>> (방향 반대 주의)
일반화(Generalization) 상속 — is-a 관계 실선 + 빈 삼각형 화살표

🔑 암기 필수 = 포함(Include), 선택 = 확장(Extend)

문 008. 자료 사전에서 자료의 주석을 의미하는 기호는?

  • { }
  • **
  • =
  • ( )
정답 및 해설 보기

정답 ②

자료 사전(Data Dictionary) 표기에서 주석(설명)은 별표로 둘러싸 표시한다(* 주석 *).

기호 의미
= 정의(~로 구성된다)
+ 연결(구성, 그리고)
( ) 생략 가능(선택, 옵션)
{ } 반복(iteration)
[ ] 선택(택일 — 여럿 중 하나)
* * 주석(설명)

⚠️ 함정 점수를 주려는 기본 문항이지만 보기 순서(①{ } ②** ③= ④( ))에 주의. 주석 기호는 **(②).

문 009. 두 개 이상의 클래스에서 똑같은 메시지에 대해 객체가 서로 다르게 반응하는 것은?

  • ① 메시지(Message)
  • ② 캡슐화(Encapsulation)
  • ③ 다형성(Polymorphism)
  • ④ 상속(Inheritance)
정답 및 해설 보기

정답 ③

같은 메시지(요청)를 받아도 객체에 따라 다른 동작을 수행하는 성질이 다형성(Polymorphism)이다. 한자로 多形 — 형태가 여럿이라는 뜻.

💡 보충 메소드 오버라이딩(재정의)·오버로딩이 다형성의 대표 구현이다.

🎯 빈출 객체지향 4대 특징은 거의 매회 출제 — 영어 용어와 뜻을 짝지어 둘 것(문 015 참고).

문 010. 다음 중 DBMS 분석 시 고려사항으로 거리가 먼 것은?

  • ① 성능
  • ② 토폴로지
  • ③ 가용성
  • ④ 상호 호환성
정답 및 해설 보기

정답 ②

DBMS를 선정·분석할 때는 성능·가용성·상호 호환성·기술 지원·구축 비용 등을 고려한다. 토폴로지는 네트워크의 물리적 연결 형태(성형·버스·링 등)를 가리키는 용어로, 소프트웨어인 DBMS 분석과는 거리가 멀다.

문 011. 다음에서 설명하는 디자인 패턴으로 옳은 것은?

클라이언트와 서브시스템 사이에 ○○○ 객체를 세워놓음으로써 복잡한 관계를 구조화한 디자인 패턴이다. ○○○ 패턴을 사용하면 서브시스템의 복잡한 구조를 의식하지 않고, ○○○에서 제공하는 단순화된 하나의 인터페이스만 사용하므로 클래스 간의 의존 관계가 줄어들고 복잡성 또한 낮아지는 효과를 가져 온다.

텍스트
          [클라이언트]
               │
               
          [  ○○○  ]
           │   │   │
                 
          [A]  [A]  [A]
  • ① MVC Pattern
  • ② Facade Pattern
  • ③ Mediator Pattern
  • ④ Bridge Pattern
정답 및 해설 보기

정답 ②

서브시스템의 복잡함을 감추고 클라이언트에게 단순화된 단일 인터페이스 하나만 제공하는 패턴이 퍼사드(Facade) 패턴이다. Facade는 건물의 '정면(출입구)'을 뜻한다 — 호텔의 프론트 데스크처럼 뒤쪽 복잡한 부서를 감추고 창구 하나로 받는 구조.

🔑 암기 복잡한 서브시스템은 뒤로 감추고, 앞에 단순 인터페이스(정면 = Facade) 하나만 세운다.

⚠️ 함정 Mediator(중재자)는 객체 간 상호작용을 한곳에 모으는 패턴, Bridge는 추상과 구현을 분리하는 패턴이라 구분.

🎯 빈출 GoF 디자인 패턴은 설명 → 패턴명 매칭으로 자주 출제.

문 012. 객체지향 분석 방법론 중 여러 가지 다른 방법론을 통합하여 하나의 방법론으로 만들었는데 분석보다는 설계 쪽에 더 많은 중점을 두고 있는 것은?

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

정답 ②

여러 방법론을 통합하고 분석보다 설계에 더 중점을 둔 객체지향 방법론은 Booch 방법이다. 지엽적 암기 문항이라 방법론별 키워드 하나씩만 매칭해 둔다.

방법론 키워드
Coad & Yourdon E-R 다이어그램(데이터 중심)
Booch 설계 중점(여러 방법론 통합)
Jacobson 유스케이스(Use Case) 중심
Wirfs-Brock 책임 주도 설계

🔑 암기 "설계(Design)는 부쳐라(Booch)" — 설계 중점 = Booch

문 013. 다음에서 설명하는 소프트웨어 개발 방법론으로 옳은 것은?

프로세스와 도구 중심이 아닌 개발 과정의 소통을 중요하게 생각하는 소프트웨어 개발 방법론으로 반복적인 개발을 통한 잦은 출시를 목표로 한다.

  • ① 애자일 개발 방법론
  • ② 구조적 개발 방법론
  • ③ 객체지향 개발 방법론
  • ④ 컴포넌트 기반 개발 방법론
정답 및 해설 보기

정답 ①

절차·도구보다 소통을, 반복 개발과 잦은 출시(릴리스)를 강조하는 방법론은 애자일(Agile)이다. XP·스크럼이 대표적이다(문 003 XP와 같은 맥락).

⚠️ 함정 구조적·폭포수 방법론은 문서·계획·순서를 중시하는 정반대 성향이다.

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

  • ① 요구 분석은 소프트웨어 개발의 실제적인 첫 단계로 사용자의 요구에 대해 이해하는 단계라 할 수 있다.
  • ② 비기능적 요구에서 사용자가 필요로 하는 정보처리 능력에 대한 것으로 절차나 입·출력에 대한 요구사항을 도출한다.
  • ③ 도메인 분석은 요구에 대한 정보를 수집하고 배경을 분석하여 이를 토대로 모델링을 하게 된다.
  • ④ 요구 추출은 프로젝트 계획 단계에 정의한 문제의 범위 안에 있는 사용자의 요구를 찾는 단계이다.
정답 및 해설 보기

정답 ②

②가 설명하는 '절차·입출력·정보처리 능력'은 시스템이 무엇을 하는가에 해당하는 기능적(Functional) 요구다. 비기능적(Non-functional) 요구는 성능·보안·품질 같은 제약조건이므로, 주어(비기능적 요구)와 설명(기능 도출)이 서로 어긋난다.

🔑 암기 기능적 요구 = "~기능을 한다"(동작), 비기능적 요구 = "얼마나 잘 하느냐"(성능·보안·품질 제약)

문 015. 객체지향 기법에서 상위 클래스의 메소드와 속성을 하위 클래스가 물려받는 것을 의미하는 것은?

  • ① Abstraction
  • ② Polymorphism
  • ③ Encapsulation
  • ④ Inheritance
정답 및 해설 보기

정답 ④

상위(부모) 클래스의 속성·메소드를 하위(자식) 클래스가 물려받는 것이 상속(Inheritance)이다.

🔑 암기 객체지향 4대 특징 = "캡·상·추·다"

특징 의미
캡슐화(Encapsulation) 데이터 + 기능을 묶고 내부를 숨김
상속(Inheritance) 상위 클래스의 속성·메소드를 물려받음
추상화(Abstraction) 핵심만 남기고 단순화
다형성(Polymorphism) 같은 메시지에 다른 반응(문 009)

🎯 빈출 4대 특징의 영어 용어 ↔ 뜻 매칭은 거의 매회 한 문항.

문 016. 사용자 인터페이스(User Interface)의 설계 방법에 따른 설명으로 틀린 것은?

  • ① 사용자가 오류에 대한 상황을 정확하게 인지할 수 있어야 한다.
  • ② 사용자의 직무, 연령, 성별 등이 고려된 다양한 계층을 수용해야 한다.
  • ③ 작동시킬 기능을 보고도 결과 예측이 가능하지 않도록 설계한다.
  • ④ 사용자가 이해하기 쉽고 편하게 사용할 수 있는 환경을 제공하도록 설계 되어야 한다.
정답 및 해설 보기

정답 ③

좋은 UI는 사용자가 기능을 보고 결과를 예측할 수 있어야 한다(예측 가능성, Predictability). ③은 '예측이 가능하지 않도록'이라며 반대로 서술된 틀린 설명이다.

문 017. 소프트웨어 설계 시 가장 기본적인 컴포넌트를 먼저 설계한 다음 이것을 사용하는 상위 수준의 컴포넌트를 설계하는 방식은?

  • ① 객체 지향 설계
  • ② 데이터 흐름 설계
  • ③ 상향식 설계
  • ④ 하향식 설계
정답 및 해설 보기

정답 ③

기본(하위) 컴포넌트를 먼저 만들고 이를 사용하는 상위 컴포넌트로 올라가는 방식이 상향식(Bottom-up) 설계다. 발문의 "기본을 먼저 → 상위로"가 곧 상향식.

💡 보충 하향식(Top-down)은 전체를 먼저 잡고 세부로 쪼개 내려가는 반대 방향이다.

문 018. 바람직한 소프트웨어 설계 지침이 아닌 것은?

  • ① 이식성을 고려한다.
  • ② 모듈의 기능을 예측할 수 있도록 정의한다.
  • ③ 모듈의 크기는 가능한 크게 유지한다.
  • ④ 가능한 모듈을 독립적으로 생성하고 결합도를 최소화한다.
정답 및 해설 보기

정답 ③

모듈은 한 가지 기능에 집중하도록 작게 만들어 독립성·재사용성을 높이는 것이 바람직하다. '크기를 가능한 크게 유지'는 잘못된 지침이다.

🔑 암기 좋은 설계 = "결소응대" — 결합도는 작게(낮게), 응집도는 크게(높게)

🎯 빈출 결합도·응집도는 단골. 결합도는 낮을수록, 응집도는 높을수록 좋은 모듈.

문 019. 객체에 대한 서비스 요청을 중개하는 중개자 미들웨어는?

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

정답 ④

객체(Object)에 대한 요청(Request)을 중개(Broker)하는 미들웨어는 ORB(Object Request Broker)다(CORBA 표준에서 사용). 발문의 'Object'·'중개자(Broker)' 키워드가 그대로 보기에 들어 있다.

미들웨어 핵심
ORB 객체 요청 중개(분산 객체)
RPC 원격 프로시저(함수) 호출 — 동기
MOM 메시지 기반 — 비동기
WAS 웹 애플리케이션 실행 환경

문 020. CASE(Computer Aided Software Engineering)에 대한 설명으로 틀린 것은?

  • ① 자동화된 기법을 통해 소프트웨어 품질이 향상된다.
  • ② 소프트웨어 모듈의 재사용성이 향상된다.
  • ③ 소프트웨어 유지보수를 간편하게 수행할 수 있다.
  • ④ 소프트웨어 개발 방법론을 쉽게 구성하도록 한다.
정답 및 해설 보기

정답 ④

CASE 도구는 이미 존재하는 개발 방법론(구조적·정보공학 등)을 자동화로 지원해 품질·재사용성·유지보수성을 높이는 도구다(①②③ 모두 옳음). 도구가 개발 방법론 자체를 만들어내는(구성하는) 것은 아니므로 ④가 틀린 설명이다.


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

문 021. 다음 중 알고리즘에 대한 설명으로 옳지 않은 것은?

  • ① 알고리즘은 적어도 하나 이상의 출력 결과를 생성해야 한다.
  • ② 알고리즘 시간복잡도 O(1)이 의미하는 것은 알고리즘의 수행시간이 입력 데이터수와 관계없이 일정하다는 의미이다.
  • ③ 알고리즘은 유한번의 수행 단계를 거치지만 반드시 종료해야 하는 것은 아니다.
  • ④ 알고리즘은 외부에서 제공되는 데이터가 0개 이상 있다.
정답 및 해설 보기

정답 ③

알고리즘은 유한성(Finiteness)을 가져 반드시 유한한 단계를 거친 뒤 종료해야 한다. '반드시 종료해야 하는 것은 아니다'는 틀린 설명이다(끝나지 않으면 알고리즘이 아니라 무한 루프 오류).

🔑 암기 알고리즘 5대 조건 = 입력(0개 이상) · 출력(1개 이상) · 명확성 · 유한성 · 유효성

⚠️ 함정 입력은 0개여도 되지만 출력은 반드시 1개 이상. 입력과 출력 조건을 바꿔 내는 함정이 단골.

문 022. 다음 전위(Prefix) 표기식의 계산 결과는?

텍스트
+ − 5 4 × 4 7
  • ① −19
  • ② 7
  • ③ 8
  • ④ 29
정답 및 해설 보기

정답 ④

전위(Prefix) 표기는 연산자가 두 피연산자 앞에 온다. (연산자 숫자 숫자) 묶음을 뒤에서부터 차례로 계산한다.

  • × 4 7 = 28 → 식이 + − 5 4 28
  • − 5 4 = 1 → 식이 + 1 28
  • + 1 28 = 29

계산 결과는 29다.

🔑 암기 전위식은 뒤에서부터 (연산자·숫자·숫자) 묶음을 찾아 하나씩 치환.

문 023. 다음 자료 구조 중에서 선형구조로만 묶은 것은?

  • ㄱ. 스택(Stack)
  • ㄴ. 트리(Tree)
  • ㄷ. 연결 리스트(Linked List)
  • ㄹ. 그래프(Graph)

선택지:

  • ① ㄱ, ㄴ
  • ② ㄱ, ㄷ
  • ③ ㄴ, ㄷ
  • ④ ㄴ, ㄹ
정답 및 해설 보기

정답 ②

선형구조는 데이터가 일렬로 연결된 구조(스택·큐·데크·리스트)다. 트리·그래프는 가지치거나 그물처럼 얽힌 비선형구조다. 따라서 스택(ㄱ)·연결 리스트(ㄷ)가 선형.

🔑 암기 선형 = "스·큐·데·리"(스택·큐·데크·리스트), 비선형 = 트리·그래프

문 024. 정렬된 N개의 데이터를 처리하는데 평균 O(N²)의 시간이 소요되는 정렬 알고리즘은?

  • ① 힙 정렬
  • ② 퀵 정렬
  • ③ 버블 정렬
  • ④ 합병 정렬
정답 및 해설 보기

정답 ③

평균 O(N²)인 느린 정렬은 버블·선택·삽입이다. 보기 중 힙·퀵·합병은 평균 O(N log N)이므로, 남는 버블 정렬이 정답.

🔑 암기 느린 정렬(N²) = "버·선·삽"(버블·선택·삽입) / 빠른 정렬(N log N) = "퀵·병·힙"(퀵·병합·힙)

🎯 빈출 정렬별 시간복잡도 분류는 거의 매회 출제.

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

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

정답 ③

화이트박스 테스트는 소스 코드의 내부 구조·논리 경로를 직접 들여다보며 검사한다. '모듈 안의 작동을 직접 관찰할 수 없다'는 블랙박스 테스트에 대한 설명이라 옳지 않다.

구분 화이트박스 블랙박스
관점 내부 구조·코드 기능·입출력
시야 내부가 보임 내부가 안 보임
대표 기법 기초 경로·조건·루프 검사 동치 분할·경계값 분석

⚠️ 함정 '관찰할 수 없다 / 내부를 모른다'가 나오면 블랙박스.

문 026. 인터페이스 보안을 위해 네트워크 영역에 적용될 수 있는 솔루션과 거리가 먼 것은?

  • ① SNMP
  • ② SSL
  • ③ IPSec
  • ④ S-HTTP
정답 및 해설 보기

정답 ①

SSL·IPSec·S-HTTP는 데이터를 암호화해 보호하는 보안 프로토콜이다. SNMP(Simple Network Management Protocol)는 네트워크 장비를 감시·관리하는 프로토콜로, 보안 솔루션이 아니다.

🔑 암기 SNMP의 M = Management(관리) — 보안(Security)이 아니다. SSL·IPSec·S-HTTP는 이름에 S/Sec.

문 027. [보기]의 이진 트리에 대해 지정된 방법으로 순회한 결과가 옳지 않은 것은?

텍스트
              A
            /   \
           B     C
          /     / \
         D     E   F
  • ① 중위 순회: D → B → A → E → C → F
  • ② 레벨 순회: A → B → C → D → E → F
  • ③ 전위 순회: A → B → D → C → E → F
  • ④ 후위 순회: D → B → A → E → F → C
정답 및 해설 보기

정답 ④

후위 순회는 (왼쪽 → 오른쪽 → 루트) 순서라 루트 A가 맨 마지막에 와야 한다. 이 트리의 올바른 후위 순회는 D → B → E → F → C → A인데, ④는 A가 중간에 끼고 C로 끝나므로 틀렸다.

🔑 암기 후위 순회 결과의 맨 끝은 항상 루트. 끝이 루트가 아니면 그 보기가 오답.

💡 보충 ① 중위(왼→루트→오), ② 레벨(위에서 아래·왼→오), ③ 전위(루트→왼→오)는 이 트리에서 모두 옳다.

문 028. 인터페이스 구현 검증 도구 중 웹 기반 테스트케이스 설계/실행/결과 확인 등을 지원하는 테스트 프레임워크는?

  • ① xUnit
  • ② STAF
  • ③ FitNesse
  • ④ RubyNode
정답 및 해설 보기

정답 ③

웹(위키) 기반으로 테스트 케이스를 설계·실행·확인할 수 있는 프레임워크는 FitNesse다.

도구 특징
xUnit 단위 테스트 프레임워크(JUnit·CppUnit 등)
STAF 분산 환경의 서비스 호출·컴포넌트 재사용
FitNesse 웹(위키) 기반 테스트

🔑 암기 "웹 기반" 테스트 프레임워크 = FitNesse

문 029. 다음 중 큐에 대한 설명으로 옳은 것은?

  • ① 후입선출 구조이다.
  • ② head(front)와 tail(rear)의 2개 포인터를 갖고 있다.
  • ③ 입출력이 한쪽 끝으로만 제한된 리스트이다.
  • ④ 삽입과 삭제 시에 top 포인터만을 이용한다.
정답 및 해설 보기

정답 ②

큐(Queue)는 선입선출(FIFO)이며 입구(rear/tail)와 출구(front/head)가 분리돼 포인터 2개를 쓴다. ①③④는 모두 스택(Stack)에 대한 설명이다.

구조 입출력 포인터
스택(Stack) 후입선출(LIFO) · 한쪽 끝(top) top 1개
큐(Queue) 선입선출(FIFO) · 양쪽 끝 front · rear 2개

🎯 빈출 스택·큐의 LIFO/FIFO와 포인터 수는 단골(문 039와 짝).

문 030. ISO/IEC 9126의 소프트웨어 품질 특성 중 기능성(Functionality)의 하위 특성으로 옳지 않은 것은?

  • ① 정확성
  • ② 적합성
  • ③ 적응성
  • ④ 보안성
정답 및 해설 보기

정답 ③

기능성의 하위 특성은 적합성·정확성·상호운용성·보안성·준수성이다. 적응성(Adaptability)은 이식성(Portability)의 하위 특성이므로 기능성이 아니다.

🔑 암기 '적응성'은 환경이 바뀌어도 적응 → 이식성. 기능성과 헷갈리지 말 것.

문 031. 디지털 저작권 관리(DRM)에 사용되는 기술 요소가 아닌 것은?

  • ① 키 관리
  • ② IDS
  • ③ Encryption
  • ④ 크랙 방지
정답 및 해설 보기

정답 ②

DRM은 콘텐츠 저작권 보호 기술로 암호화(Encryption)·키 관리·크랙(불법 복제) 방지 등을 사용한다. IDS(침입 탐지 시스템)는 네트워크 침입을 탐지하는 보안 장치로, DRM의 기술 요소가 아니다.

🔑 암기 DRM = 콘텐츠를 잠그는 자물쇠(암호·키·크랙 방지) / IDS·방화벽 = 네트워크를 지키는 경비.

문 032. 다음 자료에 대하여 "Selection Sort"를 사용하여 오름차순으로 정렬한 경우 PASS 2의 결과는?

텍스트
초기상태 : 8, 3, 4, 9, 7
  • ① 3, 4, 7, 9, 8
  • ② 3, 4, 8, 9, 7
  • ③ 3, 8, 4, 9, 7
  • ④ 3, 4, 7, 8, 9
정답 및 해설 보기

정답 ②

선택 정렬은 매 PASS마다 아직 정렬되지 않은 부분에서 최솟값을 골라 맨 앞으로 보낸다.

  • PASS 1: 전체 최솟값 3을 맨 앞(8)과 교환 → 3, 8, 4, 9, 7
  • PASS 2: 남은 (8, 4, 9, 7)의 최솟값 4를 두 번째(8)와 교환 → 3, 4, 8, 9, 7

🔑 암기 선택 정렬 = 최솟값을 골라(pick) 앞으로. PASS 수만큼 앞자리가 확정.

문 033. 버튼을 클릭하면 상태를 'on', 'off'로 변환하는 경우에 사용하는 사용자 인터페이스(UI) 요소는?

  • ① 토글 버튼
  • ② 텍스트 박스
  • ③ 라디오 버튼
  • ④ 체크 박스
정답 및 해설 보기

정답 ①

한 번 누르면 ON, 다시 누르면 OFF로 두 상태를 전환하는 요소는 토글 버튼(Toggle Button)이다.

UI 요소 용도
토글 버튼 ON/OFF 두 상태 전환
라디오 버튼 여럿 중 하나만 선택(택1)
체크 박스 여럿 다중 선택 가능

문 034. 다음 중 디지털 저작권 관리(DRM) 구성 요소가 아닌 것은?

  • ① Clearing House
  • ② DRM Controller
  • ③ Database
  • ④ Contents Distributor
정답 및 해설 보기

정답 ③

DRM의 구성 요소는 콘텐츠 제공자, 콘텐츠 분배자(Contents Distributor), 클리어링 하우스(Clearing House — 저작권료 정산·라이선스 발급), DRM 컨트롤러(재생 제어) 등이다. 데이터베이스는 일반적인 저장소일 뿐 DRM 고유의 구성 요소가 아니다.

🔑 암기 DRM의 정산소 = Clearing House(핵심 등장인물).

문 035. 힙 정렬(Heap Sort)에 대한 설명으로 틀린 것은?

  • ① 정렬할 입력 레코드들로 힙을 구성하고 가장 큰 키 값을 갖는 루트 노드를 제거하는 과정을 반복하여 정렬하는 기법이다.
  • ② 평균 수행 시간은 O(nlog₂n)이다.
  • ③ 이진탐색트리로 입력자료의 레코드를 구성한다.
  • ④ 최악의 수행 시간은 O(nlog₂n)이다.
정답 및 해설 보기

정답 ③

힙 정렬은 완전 이진 트리 기반의 '힙' 자료구조를 사용한다. 이진탐색트리(BST)로 구성한다는 ③이 틀린 설명이다. 힙 정렬은 평균·최악 모두 O(n log₂ n)으로 기복 없이 빠르다.

⚠️ 함정 힙 = 완전 이진 트리(부모와 자식 간 크기 관계만 유지) / 이진탐색트리 = 왼쪽 < 부모 < 오른쪽. 둘은 다르다.

문 036. 정확하고 일관된 결과를 얻기 위해 요구된 기능을 오류 없이 수행하는 정도를 의미하는 것은?

  • ① 신뢰성(Reliability)
  • ② 유지보수성(Maintainability)
  • ③ 가시성(Visibility)
  • ④ 재사용성(Reusability)
정답 및 해설 보기

정답 ①

언제 실행해도 오류 없이 정확하고 일관된 결과를 내는 정도가 신뢰성(Reliability)이다.

품질 특성 의미
신뢰성 오류 없이 일관된 결과
유지보수성 고치기 쉬움
재사용성 다시 사용 가능

문 037. 테스트 케이스에 일반적으로 포함되는 항목이 아닌 것은?

  • ① 테스트 조건
  • ② 테스트 노력
  • ③ 예상 결과
  • ④ 테스트 데이터
정답 및 해설 보기

정답 ②

테스트 케이스는 테스트 조건·입력 데이터·예상 결과 등으로 구성된다. '테스트 노력(Effort)'은 일정·비용을 다루는 프로젝트 관리 용어이지 테스트 케이스의 항목이 아니다.

문 038. 검증(Validation) 검사 기법 중 개발자의 장소에서 사용자가 개발자 앞에서 행해지며, 오류와 사용상의 문제점을 사용자와 개발자가 함께 확인하면서 검사하는 기법은?

  • ① 베타 테스트
  • ② 알파 테스트
  • ③ 통합 테스트
  • ④ 시스템 테스트
정답 및 해설 보기

정답 ②

개발자의 장소에서 개발자가 지켜보는 통제된 환경에서 사용자가 수행하는 검사는 알파 테스트다. 베타 테스트는 사용자의 장소(실제 환경)에서 개발자 없이 수행한다.

🔑 암기 알파 = 개발자 장소(안), 베타 = 사용자 장소(밖).

🎯 빈출 알파/베타 테스트의 장소·주체 구분은 단골.

문 039. 자료구조에 대한 설명으로 틀린 것은?

  • ① 큐는 선형구조에 해당한다.
  • ② 큐는 Last In First Out 처리를 수행한다.
  • ③ 스택은 Last In First Out 처리를 수행한다.
  • ④ 스택은 서브루틴 호출, 인터럽트 처리, 수식 계산 및 수식 표기법에 응용된다.
정답 및 해설 보기

정답 ②

큐는 선입선출(First In First Out, FIFO)이다. '큐는 Last In First Out(후입선출)'이라는 ②는 스택에 대한 설명이라 틀렸다.

🔑 암기 큐 = FIFO(선입선출), 스택 = LIFO(후입선출). 둘을 뒤바꿔 낸 보기가 단골 함정(문 029와 짝).

문 040. 소프트웨어 품질목표 중 허가되지 않은 사람의 소프트웨어나 데이터에의 접근을 통제할 수 있는 정도를 나타내는 것은?

  • ① Correctness
  • ② Reliability
  • ③ Usability
  • ④ Integrity
정답 및 해설 보기

정답 ④

비인가자의 소프트웨어·데이터 접근을 통제할 수 있는 정도를 나타내는 품질 목표는 무결성(Integrity)이다.

품질 목표 의미
Correctness(정확성) 요구를 정확히 만족
Reliability(신뢰성) 오류 없이 동작
Usability(사용성) 사용하기 쉬움
Integrity(무결성) 비인가 접근 통제

🔑 암기 "접근 통제" = Integrity(무결성)


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

문 041. 범 기관적 입장에서 데이터베이스를 정의한 것으로서 데이터베이스에 저장될 데이터의 종류와 데이터 간의 관계를 기술하며 데이터 보안 및 무결성 규칙에 대한 명세를 포함하는 것은?

  • ① 외부 스키마
  • ② 내부 스키마
  • ③ 개념 스키마
  • ④ 물리 스키마
정답 및 해설 보기

정답 ③

조직 전체(범 기관적) 입장에서 데이터베이스의 논리적 구조·보안·무결성 규칙을 정의하는 것은 개념 스키마(Conceptual Schema)다.

스키마 관점
외부(External) 사용자·응용 프로그램 개개인의 뷰
개념(Conceptual) 조직 전체(범 기관적)의 논리 구조·보안·무결성
내부(Internal) 물리적 저장 장치 관점

🔑 암기 "범 기관적 / 전체 정의" = 개념 스키마

🎯 빈출 스키마 3계층(외부·개념·내부)은 단골(문 057과 짝).

문 042. E-R 모델의 표현 방법으로 옳지 않은 것은?

  • ① 개체 타입: 사각형
  • ② 관계 타입: 마름모
  • ③ 다중 속성: 오각형
  • ④ 연결: 선
정답 및 해설 보기

정답 ③

E-R 다이어그램에서 다중 속성(값이 여러 개인 속성)은 이중 타원으로 표현한다. 오각형은 E-R 표기에 없다.

요소 도형
개체(Entity) 사각형
관계(Relationship) 마름모
속성(Attribute) 타원
다중 속성 이중 타원
연결

🔑 암기 사각형=개체, 마름모=관계, 타원=속성. 다중 속성은 타원 두 겹(이중 타원).

문 043. MS Access의 데이터베이스를 이용한 성적 테이블에서 적어도 2명 이상이 수강하는 과목에 대해 등록한 학생 수와 평균점수를 구하기 위한 SQL 질의문을 작성할 경우 빈칸에 적절한 표현은?

[성적] 테이블:

학번 과목 성적 점수
100 자료구조 A 90
100 운영체제 A 95
200 운영체제 B 85
300 프로그래밍 A 90
300 데이터베이스 C 75
300 자료구조 A 95
SQL
SELECT 과목, COUNT(*) AS 학생수, AVG(점수) AS 평균점수
FROM 성적
GROUP BY 과목
(          )
  • ① WHERE SUM(학번) >= 2;
  • ② WHERE COUNT(학번) >= 2;
  • ③ HAVING SUM(학번) >= 2;
  • ④ HAVING COUNT(학번) >= 2;
정답 및 해설 보기

정답 ④

GROUP BY 과목으로 과목별로 묶은 뒤, 묶인 '그룹'에 조건을 거는 절은 HAVING이다. WHERE는 그룹 짓기 전 개별 행을 거르는 절이라 집계함수(COUNT 등)를 쓸 수 없다(①②는 문법 오류). '2명 이상 수강'은 그룹의 행 수이므로 COUNT를 써야 하며, SUM(학번)은 학번을 더한 값이라 조건의 의미가 어긋난다(③). 따라서 ④. 이 질의는 자료구조·운영체제 두 과목(각 2명)을 반환한다.

🔑 암기 GROUP BY의 짝은 HAVING. 그룹 조건엔 집계함수(COUNT·SUM·AVG).

⚠️ 함정 WHERE에는 집계함수를 쓸 수 없고(②), SUM(학번)은 수강 인원수가 아니다(③).

💡 보충 MS Access도 표준 SQL과 동일하게 GROUP BY ~ HAVING COUNT를 사용한다.

문 044. 관계대수 연산에서 테이블에서 조건에 맞는 행을 검색할 수 있는 연산은?

  • ① ▷◁
  • ② ⊃
  • ③ π
  • ④ σ
정답 및 해설 보기

정답 ④

조건에 맞는 행(튜플)을 골라내는 관계대수 연산은 셀렉트(Select), 기호는 σ(시그마)다.

기호 연산 대상
σ (시그마) 셀렉트(Select) 행(튜플) 선택
π (파이) 프로젝트(Project) 열(속성) 추출
▷◁ 조인(Join) 두 릴레이션 결합

🔑 암기 행은 시그마(Select·S), 열은 파이(Project·P).

문 045. 데이터베이스 설계 과정에서 목표 DBMS의 구현 데이터 모델로 표현된 데이터베이스 스키마가 도출되는 단계는?

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

정답 ③

목표 DBMS에 맞춰 스키마(테이블)를 도출하는 단계는 논리적 설계다.

단계 산출물·키워드
요구사항 분석 무엇을 만들지 정의
개념적 설계 E-R 다이어그램(DBMS 독립)
논리적 설계 목표 DBMS에 맞춘 스키마·테이블·정규화
물리적 설계 저장 구조·인덱스

🔑 암기 설계 순서 = "요·개·논·물". E-R 그림=개념, 스키마(테이블)=논리.

문 046. 사원(사번, 이름) 테이블에서 사번이 100인 튜플을 삭제하는 SQL문으로 옳은 것은? (단, 사번의 자료형은 INT이고, 이름의 자료형은 CHAR(20)으로 가정한다)

  • ① DELETE FROM 사원 WHERE 사번=100;
  • ② DELETE IN 사원 WHERE 사번=100;
  • ③ DROP TABLE 사원 WHERE 사번=100;
  • ④ DROP 사원 COLUMN WHERE 사번=100;
정답 및 해설 보기

정답 ①

특정 행(튜플)을 지우는 명령은 DELETE이며, 구문은 DELETE FROM 테이블 WHERE 조건이다. DROP은 테이블 구조 자체를 제거하는 명령이라 행 삭제에 쓰지 않는다.

🔑 암기 행 삭제 = "딜·프·웨"(DELETE FROM ~ WHERE). 구조 삭제 = DROP.

⚠️ 함정 DELETE는 내용(행)만 삭제, DROP은 테이블 자체를 삭제.

문 047. 다음 중 이행적 함수 종속 관계를 의미하는 것은?

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

정답 ④

이행적(Transitive) 함수 종속은 A가 B를 결정하고(A → B) B가 C를 결정할 때(B → C), 중간 다리 B를 거쳐 A가 C를 결정하게 되는(A → C) 관계다. 삼단논법과 같은 구조.

🔑 암기 A → B → C 이면 A → C — 이행적 종속(3NF에서 제거 대상).

문 048. 데이터베이스에 저장된 데이터 값과 그것이 표현하는 현실 세계의 실제값이 일치하는 정확성을 의미하는 것은?

  • ① 트리거(Trigger)
  • ② 무결성(Integrity)
  • ③ 잠금(Lock)
  • ④ 복귀(Rollback)
정답 및 해설 보기

정답 ②

DB의 값과 현실 세계의 실제값이 정확히 일치하는 정도(결함 없음)를 무결성(Integrity)이라 한다.

💡 보충 트리거=자동 실행, 잠금(Lock)=동시성 제어, 복귀(Rollback)=실행 취소·원상복구.

문 049. SQL의 분류 중 DML에 해당하지 않는 것은?

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

정답 ②

ALTER는 테이블 구조를 변경하는 DDL(정의어)이다. UPDATE·INSERT·SELECT는 데이터를 다루는 DML(조작어).

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

🔑 암기 DML = "셀·인·업·데"(SELECT·INSERT·UPDATE·DELETE)

🎯 빈출 DDL/DML/DCL 분류는 거의 매회.

문 050. 다음 중 데이터 제어 언어(DCL)의 기능으로 옳지 않은 것은?

  • ① 릴레이션 생성
  • ② 병행수행 제어
  • ③ 무결성 유지
  • ④ 데이터 보안
정답 및 해설 보기

정답 ①

릴레이션(테이블) 생성은 DDL(정의어)의 기능이다. DCL(제어어)은 보안·무결성·병행제어·회복 등 데이터 관리·통제를 담당한다.

🔑 암기 DCL = 보안·무결성·회복·병행제어. 생성(Create)은 DDL.

문 051. 데이터베이스 설계 시에 양질의 데이터베이스를 구축하기 위하여 데이터베이스 릴레이션을 정규화 한다. 이때 고려해야 할 사항과 가장 관련이 없는 것은?

  • ① 원하지 않은 데이터의 중복을 제거한다.
  • ② 원하지 않는 데이터의 종속을 제거한다.
  • ③ 한 릴레이션 내의 속성들 간의 관계를 고려한다.
  • ④ 한 릴레이션 내의 튜플들 간의 관계를 고려한다.
정답 및 해설 보기

정답 ④

정규화는 속성(열)들 간의 함수 종속을 분석해 중복·이상 종속을 제거하는 작업이다. 튜플(행)들 간의 관계는 정규화의 고려 대상이 아니다.

⚠️ 함정 정규화는 속성(열) 관계를 따지는 '구조' 작업. 튜플(행) 간 관계는 무관.

문 052. 다음과 같은 트랜잭션의 특성은?

'트랜잭션이 성공적으로 완료되면 처리 결과는 영속적으로 반영되어야 한다'는 의미이다.

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

정답 ④

성공적으로 완료된 트랜잭션의 결과가 영구적으로 반영되어 유지되는 특성은 영속성(Durability)이다.

🔑 암기 트랜잭션 ACID:

특성 의미
원자성(Atomicity) 모두 실행되거나 전혀 실행되지 않음(All or Nothing)
일관성(Consistency) 실행 전후 데이터가 일관된 상태 유지
격리성(Isolation) 동시 실행 트랜잭션이 서로 간섭하지 않음
영속성(Durability) 완료 결과가 영구 반영

🎯 빈출 ACID는 영어·한글·뜻 매칭으로 단골.

문 053. 다음 정의에서 말하는 기본 정규형은?

릴레이션 R의 모든 결정자(Determinant)가 후보키(Candidate key)이면 릴레이션 R은 이 정규형에 속한다.

  • ① 제1정규형(1NF)
  • ② 제2정규형(2NF)
  • ③ 제3정규형(3NF)
  • ④ 보이스/코드 정규형(BCNF)
정답 및 해설 보기

정답 ④

모든 결정자가 후보키인 정규형은 보이스/코드 정규형(BCNF)이다.

🔑 암기 정규화 단계 = "도·부·이·결·다·조"

단계 제거 대상
1NF 도메인 원자값(반복 그룹 제거)
2NF 부분 함수 종속 제거
3NF 이행적 함수 종속 제거
BCNF 결정자이면서 후보키가 아닌 것 제거
4NF 다치 종속 제거
5NF 조인 종속 제거

문 054. 다음 중 『학생』 테이블 생성 후 『과목』 필드(컬럼)가 누락되어 이를 추가하려고 한다. 이에 적합한 SQL 명령어는?

  • ① DELETE
  • ② RESTORE
  • ③ ALTER
  • ④ ACCESS
정답 및 해설 보기

정답 ③

이미 생성된 테이블에 필드(컬럼)를 추가하는 등 구조를 변경하는 명령은 ALTER(DDL)다. ALTER TABLE 학생 ADD 과목 ... 형태로 쓴다.

⚠️ 함정 DELETE=행 삭제, RESTORE=복구, ACCESS는 명령어가 아니다(제품명).

문 055. [보기]의 직원 테이블에서 키(key)와 관련된 설명으로 옳지 않은 것은? (단, 사번과 주민등록번호는 각 유일한 값을 갖고, 부서번호는 부서 테이블을 참조하는 속성이며, 나이가 같은 동명이인이 존재할 수 있다.)

직원(사번, 이름, 주민등록번호, 주소, 나이, 성별, 부서 번호)

  • ① 부서번호는 외래키이다.
  • ② 사번은 기본키가 될 수 있다.
  • ③ (이름, 나이)는 후보키가 될 수 있다.
  • ④ 주민등록번호는 대체키가 될 수 있다.
정답 및 해설 보기

정답 ③

키의 핵심 조건은 유일성이다. 단서에 '나이가 같은 동명이인이 존재할 수 있다'고 했으므로 (이름, 나이) 조합은 튜플을 유일하게 식별하지 못해 후보키가 될 수 없다.

오답 확인: ① 부서번호는 다른 테이블을 참조 → 외래키, ② 사번은 유일 → 기본키 가능, ④ 주민등록번호는 유일 → 기본키가 아닐 때 대체키.

🔑 암기 키 자격 = 유일하게 식별 가능한가? 동명이인 가능 → 유일성 깨짐.

🎯 빈출 기본키·후보키·대체키·외래키 구분은 단골.

문 056. SQL에서 VIEW를 생성할 때 사용하는 명령은?

  • ① ERASE
  • ② KILL
  • ③ CREATE
  • ④ DELETE
정답 및 해설 보기

정답 ③

테이블·뷰·인덱스 등 새 객체를 생성하는 명령은 CREATE다(CREATE VIEW ...).

⚠️ 함정 ERASE·KILL은 SQL 표준 명령이 아니다. DELETE는 행 삭제이며, 뷰 자체를 없애려면 DROP을 쓴다.

문 057. 다음에서 설명하는 스키마(Schema)는?

물리적 저장 장치의 입장에서 본 데이터베이스 구조로서 실제로 데이터베이스에 저장될 레코드의 형식을 정의하고 저장 데이터 항목의 표현 방법, 내부 레코드의 물리적 순서 등을 나타낸다.

  • ① 개념 스키마
  • ② 내부 스키마
  • ③ 외부 스키마
  • ④ 내용 스키마
정답 및 해설 보기

정답 ②

물리적 저장 장치 관점에서 레코드의 저장 형식·물리적 순서를 정의하는 것은 내부 스키마다.

🔑 암기 "물리적 저장 장치" = 내부 스키마(문 041 스키마 3계층 참고).

문 058. 정규화를 거치지 않아 발생하게 되는 이상(Anomaly) 현상의 종류로 옳지 않은 것은?

  • ① 삭제 이상
  • ② 삽입 이상
  • ③ 갱신 이상
  • ④ 종속 이상
정답 및 해설 보기

정답 ④

이상(Anomaly) 현상은 삽입 이상·삭제 이상·갱신 이상 세 가지다. '종속 이상'은 이상 현상의 종류가 아니다(종속은 이상의 원인일 뿐).

🔑 암기 이상 현상 3종 = "삽·삭·갱"(삽입·삭제·갱신).

🎯 빈출 이상 현상 3종은 단골.

문 059. 데이터베이스가 미리 정해 놓은 특정 조건이 만족되거나 어떤 동작이 수행되면 자동으로 실행되도록 정의한 동작은?

  • ① 인덱스(Index)
  • ② 트랜잭션(Transaction)
  • ③ 역정규화(Denormalization)
  • ④ 트리거(Trigger)
정답 및 해설 보기

정답 ④

특정 이벤트(조건·동작)가 발생하면 자동으로 실행되도록 정의한 절차형 SQL이 트리거(Trigger)다.

🔑 암기 "자동 실행 / 이벤트 발생" = 트리거(방아쇠).

문 060. 참조 무결성에 대한 설명으로 옳지 않은 것은?

  • ① 검색 연산의 수행 결과는 어떠한 참조 무결성 제약 조건도 위배 하지 않는다.
  • ② 참조하는 릴레이션에서 튜플이 삭제되는 경우, 참조 무결성 제약 조건이 위배될 수 있다.
  • ③ 외래 키 값은 참조되는 릴레이션의 어떤 튜플의 기본 키 값과 같거나 널(NULL) 값일 수 있다.
  • ④ 참조 무결성 제약 조건은 DBMS에 의하여 유지된다.
정답 및 해설 보기

정답 ②

참조 무결성은 자식(참조하는) 릴레이션의 외래키가 부모(참조되는) 릴레이션의 기본키를 가리키도록 보장하는 제약이다. 자식 튜플을 삭제하는 것은 무결성을 깨뜨리지 않는다. 위배될 수 있는 경우는 부모(참조되는) 튜플이 삭제·변경될 때다. 따라서 ②가 틀린 설명이다.

🔑 암기 삭제 시 위험한 쪽은 참조되는(부모) 릴레이션. 참조하는(자식)은 삭제해도 무결성 영향 없음.


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

문 061. 프로세스 상태(Process State)에 대한 설명으로 옳은 것은?

  • ① 종료 상태(Terminated State)는 프로세스가 기억장치를 비롯한 모든 필요한 자원을 할당받은 상태에서 프로세서의 할당을 기다리고 있는 상태이다.
  • ② 대기 상태(Waiting/Blocked State)는 프로세스가 원하는 자원을 할당받지 못해서 기다리고 있는 상태이다.
  • ③ 실행 상태(Running State)는 사용자가 요청한 작업이 커널에 등록되어 커널 공간에 PCB 등이 만들어진 상태이다.
  • ④ 준비 상태(Ready State)는 프로세스의 수행이 끝난 상태이다.
정답 및 해설 보기

정답 ②

대기(Waiting/Blocked) 상태는 입출력 등 원하는 자원을 받지 못해 CPU를 줘도 진행하지 못하고 기다리는 상태다.

오답 정리: ① CPU만 기다리는 상태 → 준비(Ready), ③ PCB가 만들어진 직후 → 생성(New), ④ 수행이 끝난 상태 → 종료(Terminated).

🔑 암기 준비(자원O·CPU 대기) / 실행(CPU 사용) / 대기(자원 못 받아 멈춤).

문 062. 다음 C 프로그램의 실행 결과는?

c
#include <stdio.h>
int a=1, b=2, c=3;
int f(void);
int main(void) {
    printf ("%3d \n", f( ));
    printf ("%3d%3d%3d \n", a, b, c);
    return 0;
}
int f(void) {
    int b, c;
    a=b=c=4;
    return (a+b+c);
}
  • ① 6 / 1 2 3
  • ② 12 / 1 2 3
  • ③ 12 / 4 4 4
  • ④ 12 / 4 2 3
정답 및 해설 보기

정답 ④

함수 안에서는 지역변수가 우선한다. f()int b, c;는 전역 b·c와 별개인 지역변수다.

  • a=b=c=4; → 지역 b·c는 4, af()에 선언이 없어 전역 a가 4로 바뀐다.
  • return a+b+c = 4+4+4 = 12 (첫 줄 출력 12)
  • maina, b, c: 전역 a는 4로 바뀌었고, 전역 b·c는 손대지 않아 그대로 2·3 → 출력 4 2 3

⚠️ 함정 함수 안에 같은 이름의 지역변수가 있으면 전역은 가려진다. 선언이 없는 a만 전역이 바뀐다.

문 063. 프로세스 P1, P2, P3, P4를 선입선출(First In First Out) 방식으로 스케줄링을 수행할 경우 평균 응답 시간으로 옳은 것은? (단, 응답 시간은 프로세스 도착 시간부터 처리가 종료될 때까지의 시간을 말한다.)

프로세스 도착 시간 처리 시간
P1 0 2
P2 2 2
P3 3 3
P4 4 9
  • ① 3
  • ② 4
  • ③ 5
  • ④ 6
정답 및 해설 보기

정답 ③

FIFO는 도착 순서대로 처리한다. 응답(반환) 시간 = 종료 시각 − 도착 시각.

프로세스 실행 구간 종료 응답 시간
P1 0~2 2 2 − 0 = 2
P2 2~4 4 4 − 2 = 2
P3 4~7 7 7 − 3 = 4
P4 7~16 16 16 − 4 = 12

평균 = (2 + 2 + 4 + 12) / 4 = 20 / 4 = 5

문 064. 다음 중 응집도가 가장 높은 것은?

  • ① 절차적 응집도
  • ② 논리적 응집도
  • ③ 우연적 응집도
  • ④ 통신적 응집도
정답 및 해설 보기

정답 ④

응집도는 높을수록 좋다. 약→강 순서에서 보기 중 가장 강한 것은 통신적 응집도다.

🔑 암기 응집도 약→강 = "우·논·시·절·통·순·기"(우연적·논리적·시간적·절차적·통신적·순차적·기능적)

문 065. 다음과 같은 가용 공간을 갖는 주기억장치에 크기가 각각 25KB, 30KB, 15KB, 10KB인 프로세스가 순차적으로 적재 요청된다. 최악적합(Worst-fit) 배치 전략을 사용할 경우 할당되는 가용 공간 시작 주소를 순서대로 나열한 것은?

시작 주소 크기
w 30KB
x 20KB
y 15KB
z 35KB
  • ① w → x → y → z
  • ② x → y → z → w
  • ③ y → z → w → x
  • ④ z → w → x → y
정답 및 해설 보기

정답 ④

최악적합은 매번 가장 큰 가용 공간에 배치한다.

  • 25KB → 가장 큰 z(35) 배치 (z 잔여 10)
  • 30KB → 가장 큰 w(30) 배치 (w 잔여 0)
  • 15KB → 가장 큰 x(20) 배치 (x 잔여 5)
  • 10KB → 가장 큰 y(15) 배치

순서는 z → w → x → y.

🔑 암기 최악적합(Worst-fit) = 가장 큰 공간 선택, 최적적합(Best-fit) = 딱 맞는(가장 작은 충분한) 공간.

문 066. 교착상태(Dead Lock)가 발생할 수 있는 조건 중 비선점(Non-Preemption) 조건에 대한 설명으로 옳은 것은?

  • ① 프로세스가 자신에게 이미 할당된 자원을 보유하고 있으면서 다른 프로세스에 할당된 자원을 요구하면서 기다리는 경우이다.
  • ② 한 프로세스에게 할당된 자원은 그 프로세스가 사용을 완전히 종료하기 전까지는 해제되지 않는 경우이다.
  • ③ 여러 프로세스들이 같은 자원을 동시에 사용하지 못하게 하는 경우이다.
  • ④ 각 프로세스들이 서로 다른 프로세스가 가지고 있는 자원을 요구하며 하나의 순환(Cycle) 구조를 이루는 경우이다.
정답 및 해설 보기

정답 ②

비선점(Non-Preemption)은 한 프로세스가 점유한 자원을 다 쓰기 전까지 강제로 뺏을 수 없는 조건이다(②).

🔑 암기 교착상태 4대 조건 = "상·점·비·환"

조건 의미 보기
상호 배제(Mutual Exclusion) 한 번에 한 프로세스만 사용
점유와 대기(Hold and Wait) 자원 보유하며 다른 자원 대기
비선점(Non-Preemption) 강제로 뺏을 수 없음
환형 대기(Circular Wait) 순환 형태로 서로 대기

🎯 빈출 교착상태 4조건은 단골.

문 067. C 프로그램의 실행 결과로 옳은 것은?

c
#include <stdio.h>
int main( ) {
    int i, sum=0;
    for(i=1; i<=10; i+=2) {
        if(i%2 && i%3) continue;
        sum += i;
    }
    printf("%d\n", sum);
    return 0;
}
  • ① 6
  • ② 12
  • ③ 25
  • ④ 55
정답 및 해설 보기

정답 ②

i는 1, 3, 5, 7, 9. C에서 0이 아니면 참이다. i%2 && i%3이 모두 참이면 continue로 더하기를 건너뛴다.

i i%2 i%3 continue? sum
1 1 1 건너뜀 0
3 1 0 더함 3
5 1 2 건너뜀 3
7 1 1 건너뜀 3
9 1 0 더함 12

3과 9만 더해져 합은 12.

문 068. 다음의 JAVA 프로그램에서 사용되지 않은 기법은?

Java
class Adder {
    public int add(int a, int b) {
        return a+b;
    }
    public double add(double a, double b) {
        return a+b;
    }
}
class Computer extends Adder {
    private int x;
    public int calc(int a, int b, int c) {
        if (a == 1) return add(b, c);
        else return x;
    }
    Computer( ) {
        x = 0;
    }
}

public class Main {
    public static void main(String[ ] args) throws Exception {
        Computer c = new Computer( );
        System.out.println("100 + 200 = " + c.calc(1, 100, 200));
        System.out.println("5.7 + 9.8 = " + c.add(5.7, 9.8));
    }
}
  • ① 캡슐화(Encapsulation)
  • ② 상속(Inheritance)
  • ③ 오버라이딩(Overriding)
  • ④ 오버로딩(Overloading)
정답 및 해설 보기

정답 ③

  • 오버로딩: add(int, int)add(double, double) — 이름은 같고 매개변수가 다름 (사용)
  • 상속: class Computer extends Adder (사용)
  • 캡슐화: private int x (사용)
  • 오버라이딩: 상위 메소드를 하위에서 재정의하는 것인데, Computer는 새 메소드 calc만 추가했을 뿐 add를 재정의하지 않음 (미사용)

⚠️ 함정 오버로딩(이름 같고 매개변수 다름)과 오버라이딩(상위 메소드 재정의)을 구분. 여기선 오버라이딩만 없다.

🎯 빈출 오버로딩 vs 오버라이딩 구분은 단골.

문 069. 운영체제를 기능에 따라 분류할 경우 제어 프로그램이 아닌 것은?

  • ① 통신 제어
  • ② 작업 제어 프로그램
  • ③ 언어 번역 프로그램
  • ④ 감시 프로그램
정답 및 해설 보기

정답 ③

언어 번역 프로그램은 실제 작업을 수행하는 처리(Processing) 프로그램이다. 제어(Control) 프로그램은 감시·작업 제어·데이터 관리 등 관리·통제를 담당한다.

🔑 암기 제어 프로그램 = "감·작·데"(감시·작업 제어·데이터 관리). 처리 프로그램 = 언어 번역·서비스·문제 처리.

문 070. IPv6에 대한 설명으로 틀린 것은?

  • ① 멀티캐스트(Multicast)를 사용한다.
  • ② 보안과 인증 확장 헤더를 사용함으로써 인터넷 계층의 보안기능을 강화하였다.
  • ③ 애니캐스트(Anycast)는 하나의 호스트에서 그룹 내의 가장 가까운 곳에 있는 수신자에게 전달하는 방식이다.
  • ④ 32비트 주소체계를 사용한다.
정답 및 해설 보기

정답 ④

IPv6는 128비트 주소체계를 사용한다. 32비트는 IPv4다.

🔑 암기 IPv4 = 32비트, IPv6 = 128비트. IPv6는 유니·멀티·애니캐스트 사용, 보안 헤더 강화.

문 071. 다음은 파이썬으로 만들어진 반복문 코드이다. 이 코드의 결과는?

Python
while(True) :
    print('A')
    print('B')
    print('C')
    break
    print('D')
  • ① A, B, C 출력이 반복된다.
  • ② A, B, C까지만 출력된다.
  • ③ A, B, C, D 출력이 반복된다.
  • ④ A, B, C, D까지만 출력된다.
정답 및 해설 보기

정답 ②

A·B·C를 출력한 뒤 break를 만나 반복문을 즉시 빠져나간다. break 다음 줄의 print('D')는 실행될 기회가 없다(도달 불가).

🔑 암기 break는 반복문을 즉시 종료. 같은 블록에서 break 뒤의 문장은 실행되지 않는다.

문 072. 다음 C 프로그램의 출력 결과는?

c
#include <stdio.h>
int main(void) {
    int a=30, c;
    c = (10 < a < 20);
    printf("%d", c);
    return 0;
}
  • ① 2
  • ② 0
  • ③ 1
  • ④ 10
정답 및 해설 보기

정답 ③

C는 비교 연산을 왼쪽부터 차례로 계산하며, 비교 결과는 1(참) 또는 0(거짓)이다. a=30일 때:

  • 10 < a10 < 30 → 참 → 1
  • 식이 1 < 20으로 바뀜 → 참 → 1

따라서 c는 1. 수학식처럼 "10과 20 사이"로 읽으면 안 된다.

⚠️ 함정 10 < a < 20은 "사이 범위"가 아니라 (10<a)의 결과(0/1)를 다시 20과 비교한다.

🎯 빈출 연쇄 비교 연산의 좌→우 계산은 자주 나오는 함정.

문 073. UNIX의 커널에 관한 설명으로 옳은 것은?

  • ① 명령어 해석기이다.
  • ② 시스템과 사용자 간의 인터페이스를 담당한다.
  • ③ 여러 종류의 쉘이 있다.
  • ④ 프로세스, 기억장치, 입출력 관리를 수행한다.
정답 및 해설 보기

정답 ④

커널(Kernel)은 UNIX의 핵심으로 프로세스·기억장치·입출력 등 자원을 관리한다. ①②③은 모두 쉘(Shell)에 대한 설명이다.

🔑 암기 쉘 = 명령어 해석·사용자 인터페이스, 커널 = 자원 관리(핵심).

문 074. 다음 중 페이징 기법에서 페이지 크기가 작아질수록 발생하는 현상이 아닌 것은?

  • ① 페이지 맵 테이블의 크기가 증가한다.
  • ② 입·출력 시간이 늘어난다.
  • ③ 내부 단편화가 증가한다.
  • ④ 기억장소 이용 효율이 증가한다.
정답 및 해설 보기

정답 ③

페이지 크기가 작아지면 페이지 수가 늘어 매핑 테이블이 커지고(①), 입출력 횟수가 늘며(②), 마지막 페이지의 자투리가 작아져 내부 단편화는 줄고 기억장소 이용 효율은 높아진다(④). 따라서 '내부 단편화가 증가한다'는 ③이 틀렸다.

⚠️ 함정 페이지가 작다 = 내부 단편화 감소(효율 증가). 크다 = 단편화 증가.

문 075. TCP/IP 프로토콜 중 전송계층 프로토콜은?

  • ① UDP
  • ② FTP
  • ③ SMTP
  • ④ HTTP
정답 및 해설 보기

정답 ①

전송 계층 프로토콜은 TCP와 UDP다. FTP(파일 전송)·SMTP(메일)·HTTP(웹)는 모두 응용 계층 프로토콜이다.

🔑 암기 전송 계층 = TCP·UDP 둘뿐. 나머지 응용 서비스(FTP·SMTP·HTTP)는 응용 계층.

🎯 빈출 계층별 프로토콜 분류는 단골.

문 076. IEEE 802.4 LAN에서 사용되는 전송매체 접속제어(MAC) 방식은?

  • ① CSMA/CD
  • ② Token Bus
  • ③ Token Ring
  • ④ Slotted Ring
정답 및 해설 보기

정답 ②

IEEE 802.4는 토큰 버스(Token Bus) 방식이다.

표준 방식
802.3 CSMA/CD(이더넷)
802.4 Token Bus
802.5 Token Ring
802.11 무선 LAN(Wi-Fi)

🔑 암기 802.3 이더넷, 802.4 토큰버스, 802.5 토큰링, 802.11 무선.

문 077. 아래 C 프로그램의 실행 결과로 적합한 것은?

c
void main( ) {
    int a=10;
    int b;
    int *c=&b;
    b = a++;
    b += 10;
    printf("a=%d \n", a);
    printf("b=%d \n", b);
    printf("c=%d \n", *c);
}
  • ① a=10, b=20, c=20
  • ② a=10, b=21, c=21
  • ③ a=11, b=20, c=20
  • ④ a=11, b=21, c=21
정답 및 해설 보기

정답 ③

  • int *c = &b; → 포인터 cb를 가리킨다(*c는 곧 b).
  • b = a++; → 후위 증가: 먼저 b에 현재 a 값 10을 대입(b=10), 그 뒤 a가 11이 됨.
  • b += 10;b = 20.
  • 출력: a=11, b=20, *cb와 같으므로 20.

⚠️ 함정 후위 a++은 대입 후 증가. *cb의 별칭이라 b와 항상 같은 값.

🎯 빈출 포인터·증감 연산자 추적은 단골 함정.

문 078. 주기억장치의 현재 사용 중인 영역과 사용 가능한 영역의 크기가 다음 그림과 같다. 메모리 할당 시스템은 최악적합(Worst-Fit) 방법으로 요청 영역을 배당한다. 만일 15K 기억 공간을 요청 받은 경우 메모리 할당 시스템이 배당한 영역 번호는?

영역 번호 1 2 3 4 5 6 7
크기 40K 사용 중 145K 사용 중 300K 사용 중 15K
  • ① 1
  • ② 3
  • ③ 5
  • ④ 7
정답 및 해설 보기

정답 ③

최악적합은 가장 큰 가용 공간에 배치한다. 사용 가능한 영역은 1(40K)·3(145K)·5(300K)·7(15K)이며, 가장 큰 300K가 영역 5다. 15K만 필요해도 가장 큰 영역 5에 배당한다.

문 079. 스케줄링(Scheduling)은 다중 프로그래밍 운영체제에서 자원의 성능을 향상시키고 효율적인 프로세서의 관리를 위해 작업 순서를 결정하는 것이다. 스케줄링 알고리즘과 관련이 없는 것은?

  • ① RR
  • ② HRN
  • ③ SSTF
  • ④ SRT
정답 및 해설 보기

정답 ③

RR(Round Robin)·HRN·SRT는 CPU(프로세서) 스케줄링 알고리즘이다. SSTF(Shortest Seek Time First)는 디스크 스케줄링 알고리즘이라 성격이 다르다.

🔑 암기 SSTF의 Seek Time(탐색 시간)은 디스크 용어 — CPU 스케줄링이 아니다.

문 080. CPU 스케줄링에서 HRN 방식으로 스케줄링할 경우, 입력된 작업이 다음과 같을 때 우선순위가 가장 높은 작업은?

작업 대기 시간 서비스 시간
A 15 8
B 15 5
C 10 7
D 5 5
E 8 6
  • ① A
  • ② B
  • ③ C
  • ④ D
정답 및 해설 보기

정답 ②

HRN 우선순위 = (대기 시간 + 서비스 시간) / 서비스 시간. 값이 클수록 우선순위가 높다.

작업 계산 우선순위
A (15+8)/8 2.875
B (15+5)/5 4.0
C (10+7)/7 2.43
D (5+5)/5 2.0
E (8+6)/6 2.33

가장 큰 값은 B(4.0)이므로 우선순위가 가장 높은 작업은 B.

🔑 암기 HRN = (대기 + 서비스) / 서비스. 대기 시간이 길수록 우선순위 상승(에이징 효과).

🎯 빈출 HRN 계산은 빈출 1순위.


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

문 081. 소프트웨어 공학에 대한 설명으로 거리가 먼 것은?

  • ① 소프트웨어 공학의 목표는 양질의 소프트웨어를 생산하는 것이다.
  • ② 소프트웨어의 품질을 평가하는 기준으로는 정확성, 유지보수성, 무결성, 사용성 등이 있다.
  • ③ 소프트웨어 프로세스 모형으로는 폭포수 모형, 프로토타입 모형, 나선형 프로세스 모형이 있고, 이러한 방법을 혼합한 방법은 사용하지 않는다.
  • ④ 소프트웨어를 개발하는 동안 여러 작업들을 자동화 하도록 도와주는 도구를 CASE(Computer Aided Software Engineering)라고 한다.
정답 및 해설 보기

정답 ③

실제로는 모형의 장단점을 보완하기 위해 여러 방법을 혼합·조정(테일러링)해서 사용한다. '혼합한 방법은 사용하지 않는다'는 ③이 틀렸다.

⚠️ 함정 '절대 안 한다 / 무조건 아니다' 같은 단정적 표현은 오답일 가능성이 높다.

문 082. 암호화 키와 복호화 키가 동일한 암호화 알고리즘은?

  • ① DSA
  • ② DES
  • ③ ECC
  • ④ RSA
정답 및 해설 보기

정답 ②

암호화 키와 복호화 키가 같은 방식은 대칭키(비밀키) 암호다. DES가 대칭키이며, RSA·ECC·DSA는 키가 서로 다른 비대칭키(공개키) 방식이다.

구분 대표
대칭키(비밀키) 암호화 = 복호화 키 동일 DES, AES, SEED, ARIA
비대칭키(공개키) 키가 다름 RSA, ECC, DSA

🎯 빈출 대칭/비대칭 분류는 거의 매회.

문 083. COCOMO Model 중 컴파일러, 워드프로세서와 같이 30만 라인 이하 중간 크기의 소프트웨어를 개발하는 비용 산정 유형은?

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

정답 ③

30만 라인 이하 중간 규모(컴파일러·인터프리터 등)는 반분리형(Semi-Detached)이다.

유형 규모
Organic(유기형) 5만 라인 이하 단순 업무용
Semi-Detached(반분리형) 30만 라인 이하 컴파일러·트랜잭션 처리
Embedded(내장형) 30만 라인 초과 하드웨어 제어·실시간 시스템

문 084. 폭포수 모형(Waterfall Model)의 진행 단계를 순서대로 바르게 나열한 것은?

  • ㄱ. 요구 분석
  • ㄴ. 유지보수
  • ㄷ. 시험
  • ㄹ. 구현
  • ㅁ. 설계

선택지:

  • ① ㄱ-ㅁ-ㄷ-ㄹ-ㄴ
  • ② ㅁ-ㄱ-ㄹ-ㄷ-ㄴ
  • ③ ㅁ-ㄱ-ㄷ-ㄹ-ㄴ
  • ④ ㄱ-ㅁ-ㄹ-ㄷ-ㄴ
정답 및 해설 보기

정답 ④

폭포수는 위에서 아래로 한 방향 진행: 요구 분석(ㄱ) → 설계(ㅁ) → 구현(ㄹ) → 시험(ㄷ) → 유지보수(ㄴ).

🔑 암기 폭포수 순서 = "요·설·구·테·유"(요구분석·설계·구현·테스트·유지보수)

문 085. 스마트 그리드 서비스를 제공하기 위한 와이파이 기반의 저전력 장거리 통신 기술은?

  • ① PICONET
  • ② SCRUM
  • ③ NFC
  • ④ WI-SUN
정답 및 해설 보기

정답 ④

WI-SUN(Wireless Smart Utility Network)은 IEEE 802.15.4g 기반의 저전력·장거리 무선 통신으로, 스마트 그리드·원격검침(AMI)·스마트 시티에 쓰인다.

오답 정리: ① PICONET은 블루투스 기반 근거리 망, ② SCRUM은 애자일 개발 방법론(통신 기술 아님), ③ NFC는 약 10cm 근접 통신.

🔑 암기 '스마트 그리드 + 저전력 + 장거리 + Wi-' = WI-SUN. (신기술 용어는 키워드 매칭·소거법으로.)

문 086. 정보보호의 주요 목적에 대한 설명으로 옳지 않은 것은?

  • ① 기밀성(Confidentiality)은 인가된 사용자만이 데이터에 접근할 수 있도록 제한하는 것을 말한다.
  • ② 가용성(Availability)은 필요할 때 데이터에 접근할 수 있는 능력을 말한다.
  • ③ 무결성(Integrity)은 식별, 인증 및 인가 과정을 성공적으로 수행했거나 수행 중일 때 발생하는 활동을 말한다.
  • ④ 책임성(Accountability)은 제재, 부인 방지, 오류 제한, 침입 탐지 및 방지, 사후 처리 등을 지원하는 것을 말한다.
정답 및 해설 보기

정답 ③

무결성(Integrity)은 데이터가 위조·변조되지 않고 정확함을 보장하는 것이다. ③의 '식별·인증·인가' 설명은 인증(Authentication)·접근 통제에 관한 것이라 무결성의 정의가 아니다.

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

🎯 빈출 CIA 정의 매칭은 단골.

문 087. IPSec에서 두 컴퓨터 간의 보안 연결 설정을 위해 사용되는 것은?

  • ① Extensible Authentication Protocol
  • ② Internet Key Exchange
  • ③ Encapsulating Security Payload
  • ④ Authentication Header
정답 및 해설 보기

정답 ②

보안 연결을 위해 키를 협상·교환하는 것은 IKE(Internet Key Exchange)다.

IPSec 구성 역할
AH(Authentication Header) 인증·무결성
ESP(Encapsulating Security Payload) 암호화·기밀성
IKE(Internet Key Exchange) 키 교환·보안 연결 설정

🔑 암기 "키 교환·연결 설정" = IKE.

문 088. 공개키(Public key) 암호화 방식에 대한 설명으로 옳지 않은 것은?

  • ① 공개키와 개인키로 이루어진다.
  • ② 대표적 활용 예로는 전자서명이 있다.
  • ③ 송수신자는 서로 다른 키를 사용한다.
  • ④ 개인키는 메시지를 전송할 때 사용한다.
정답 및 해설 보기

정답 ④

메시지를 보낼 때(암호화)는 수신자의 공개키로 잠그고, 수신자는 자신의 개인키로 푼다. 개인키로 암호화해 보내면 공개키를 가진 누구나 풀 수 있어 기밀성이 없으므로, '개인키는 메시지를 전송할 때 사용한다'는 ④가 틀렸다.

🔑 암기 암호화(전송) = 상대의 공개키, 복호화(수신) = 자신의 개인키.

문 089. 소프트웨어 생명주기 모형 중 프로토타입(Prototype) 모형에 대한 설명으로 옳은 것을 [보기]에서 고른 것은?

[보기] ㄱ. 프로토타입 모형의 마지막 단계는 설계이다. ㄴ. 발주자가 목표 시스템의 모습을 미리 볼 수 있다. ㄷ. 폭포수 모형보다 발주자의 요구사항을 반영하기가 용이하다. ㄹ. 프로토타입별로 구현시스템에 대하여 베타 테스트를 실시한다.

  • ① ㄱ, ㄴ
  • ② ㄴ, ㄷ
  • ③ ㄷ, ㄹ
  • ④ ㄱ, ㄹ
정답 및 해설 보기

정답 ②

프로토타입(시제품) 모형은 발주자가 시스템의 모습을 미리 보고(ㄴ), 폭포수보다 요구사항 반영이 쉽다(ㄷ).

오답 정리: ㄱ 마지막 단계는 설계가 아니다(시제품 확인 후 실제 개발로 진행). ㄹ 베타 테스트는 거의 완성된 제품 단계에서 수행하는 것이라 초기 프로토타입 단계와는 맞지 않는다.

문 090. 인터넷 환경에서 다른 사용자들이 송수신하는 네트워크 상의 데이터를 도청하여 패스워드나 중요한 정보를 알아내는 형태의 공격은?

  • ① 서비스 거부(DoS: denial of service) 공격
  • ② ICMP 스머프(smurf) 공격
  • ③ 스니핑(sniffing)
  • ④ 트로이 목마(Trojanhorse)
정답 및 해설 보기

정답 ③

네트워크에 흐르는 데이터를 몰래 도청·가로채는 수동적 공격은 스니핑(Sniffing)이다.

오답 정리: DoS·Smurf는 가용성을 마비시키는 공격, 트로이 목마는 정상 프로그램으로 위장한 악성코드다.

⚠️ 함정 '도청·엿듣기(수동)' = 스니핑, '데이터 변조·중간 개입(능동)' = 스푸핑/세션 하이재킹과 구분.

문 091. 현재의 위험을 받아들이고 잠재적 손실 비용을 감수하도록 조치하는 방안은?

  • ① 위험 회피
  • ② 위험 감소
  • ③ 위험 수용
  • ④ 위험 전가
정답 및 해설 보기

정답 ③

위험을 받아들이고 손실을 감수하는 대응은 위험 수용(Acceptance)이다.

대응 의미
회피(Avoidance) 위험 활동 자체를 포기
전가(Transference) 보험·외주로 떠넘김
감소/완화(Mitigation) 대책으로 위험을 낮춤
수용(Acceptance) 받아들이고 감수

문 092. LOC 기법에 의하여 예측된 총 라인수가 20,000라인, 프로그래머의 월 평균 생산성이 200라인, 개발에 참여할 프로그래머가 10인일 때, 개발 소요 기간은?

  • ① 10개월
  • ② 20개월
  • ③ 25개월
  • ④ 100개월
정답 및 해설 보기

정답 ①

개발 기간 = 총 라인수 / (프로그래머 수 × 월 생산성) = 20,000 / (10 × 200) = 20,000 / 2,000 = 10개월.

💡 보충 노력(Man-Month)을 묻는다면 20,000 / 200 = 100 M/M. 기간(개월)인지 노력(인월)인지 구분할 것.

문 093. 행위나 이벤트의 발생을 증명하여 나중에 행위나 이벤트를 부인할 수 없도록 하는 보안 요소는?

  • ① 기밀성
  • ② 부인 방지
  • ③ 가용성
  • ④ 무결성
정답 및 해설 보기

정답 ②

행위를 나중에 부인하지 못하도록 증명하는 보안 요소는 부인 방지(Non-repudiation)이다. 전자서명의 핵심 기능이기도 하다.

🔑 암기 "증명·부인 못 함" = 부인 방지.

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

PC나 스마트폰을 해킹하여 특정 프로그램이나 기기 자체를 사용하지 못하도록 하는 악성코드로서 인터넷 사용자의 컴퓨터에 설치되어 내부 문서나 스프레드시트, 이미지 파일 등을 암호화하여 열지 못하도록 만든 후 돈을 보내주면 해독용 열쇠 프로그램을 전송해 준다며 금품을 요구한다.

  • ① Web Shell
  • ② Ransomware
  • ③ Honeypot
  • ④ Stuxnet
정답 및 해설 보기

정답 ②

파일을 암호화해 인질로 잡고 금전(Ransom, 몸값)을 요구하는 악성코드는 랜섬웨어(Ransomware)다.

오답 정리: Web Shell은 웹 서버 침투 후 명령 실행 도구, Honeypot은 공격자를 유인하는 함정 시스템, Stuxnet은 산업 제어 시스템을 노린 웜이다.

문 095. 나선형(spiral) 모형에서 단계별로 수행하는 작업 순서로 옳은 것은?

  • ① 위험 분석 - 계획 및 정의 - 개발 - 고객 평가
  • ② 계획 및 정의 - 위험 분석 - 개발 - 고객 평가
  • ③ 계획 및 정의 - 개발 - 위험 분석 - 고객 평가
  • ④ 위험 분석 - 계획 및 정의 - 고객 평가 - 개발
정답 및 해설 보기

정답 ②

나선형 모형은 계획 및 정의 → 위험 분석 → 개발 → 고객 평가 사이클을 반복한다. 위험 분석을 핵심으로 두는 모형이라 계획 직후 위험 분석이 온다.

🔑 암기 나선형 순서 = "계·위·개·평"(계획·위험분석·개발·평가)

문 096. 좋은 소프트웨어가 가져야 할 특성과 그 설명의 연결이 옳지 않은 것은?

  • ① 확실성(Dependability): 신뢰성, 보안성, 안전성을 포함하는 포괄적인 특성이다.
  • ② 결함 내성(Fault Tolerance): 소프트웨어는 고객의 변경 요구를 수용할 수 있는 방법으로 작성되어야 한다.
  • ③ 사용편리성(Usability): 사용자가 소프트웨어를 편리하게 사용할 수 있어야 한다.
  • ④ 효율성(Efficiency): 소프트웨어는 메모리, 프로세서와 같은 자원을 낭비하지 않아야 한다.
정답 및 해설 보기

정답 ②

결함 내성(Fault Tolerance)은 결함·고장이 생겨도 멈추지 않고 동작을 유지하는 능력이다. ②의 '고객의 변경 요구를 수용'은 유지보수성·유연성에 대한 설명이라 연결이 틀렸다.

⚠️ 함정 결함 내성=고장에도 버팀, 변경 요구 수용=유지보수성. 둘을 바꿔 낸 함정.

문 097. 주체가 속해 있는 그룹의 신원에 근거하여 객체에 대한 접근을 제한하는 방법으로 객체의 소유자가 접근 여부를 결정하는 기법은?

  • ① Mandatory Access Control
  • ② Discretionary Access Control
  • ③ Role Based Access Control
  • ④ Reference Monitor
정답 및 해설 보기

정답 ②

객체의 소유자가 접근 권한을 결정하는 방식은 임의 접근 통제(DAC, Discretionary Access Control)다.

접근 통제 결정 주체
MAC(강제) 시스템(보안 등급)
DAC(임의) 객체의 소유자
RBAC(역할) 직무·역할

🎯 빈출 MAC/DAC/RBAC 결정 주체 구분은 단골.

문 098. 다음 중 소프트웨어 개발 팀 구성에 대한 설명으로 옳지 않은 것은?

  • ① 중앙집중식 팀 구성은 구성원이 한 관리자의 명령에 따라 일하고 결과를 보고하는 방식을 취한다.
  • ② 중앙집중식 팀은 한 사람에 의하여 통제할 수 있는 비교적 소규모 문제에 적합하다.
  • ③ 분산형 팀 구성은 의사교환을 위한 비용이 크고 개개인의 생산성을 떨어뜨린다.
  • ④ 분산형 팀의 의사교환 경로는 계층적(Hierarchical)이다.
정답 및 해설 보기

정답 ④

분산형(민주적) 팀은 구성원이 수평적으로 소통하므로 의사교환 경로가 망(Network)형이다. 계층적(Hierarchical) 경로는 중앙집중식(책임 프로그래머) 팀의 특징이라 ④가 틀렸다.

🔑 암기 중앙집중식 = 계층적·소규모, 분산형 = 수평적(망형)·의사소통 비용 큼.

문 099. 다음 암호 알고리즘 중 성격이 다른 하나는?

  • ① RSA
  • ② MD5
  • ③ SHA-1
  • ④ MD4
정답 및 해설 보기

정답 ①

RSA는 암호화·복호화가 가능한 공개키 암호 알고리즘이다. MD5·SHA-1·MD4는 원문으로 되돌릴 수 없는 해시(Hash) 함수로 무결성 검증에 쓰인다. 따라서 RSA만 성격이 다르다.

🔑 암기 RSA = 암호화(복호화 가능), MD5·SHA·MD4 = 해시(복호화 불가).

🎯 빈출 암호 알고리즘 vs 해시 함수 구분은 단골.

문 100. 다음 설명에 해당하는 DoS 공격을 옳게 짝 지은 것은?

ㄱ. 공격자가 공격 대상의 IP 주소로 위장하여 중계 네트워크에 다량의 ICMP Echo Request 패킷을 전송하며, 중계 네트워크에 있는 모든 호스트는 많은 양의 ICMP Echo Reply 패킷을 공격 대상으로 전송하여 목표시스템을 다운시키는 공격 ㄴ. 공격자가 송신자 IP 주소를 존재하지 않거나 다른 시스템의 IP 주소로 위장하여 목적 시스템으로 SYN 패킷을 연속해서 보내는 공격 ㄷ. 송신자 IP 주소와 수신자 IP 주소, 송신자 포트와 수신자 포트가 동일하게 조작된 SYN 패킷을 공격 대상에 전송하는 공격

  • ① Smurf Attack - Land Attack - SYN Flooding Attack
  • ② Smurf Attack - SYN Flooding Attack - Land Attack
  • ③ SYN Flooding Attack - Smurf Attack - Land Attack
  • ④ Land Attack - Smurf Attack - SYN Flooding Attack
정답 및 해설 보기

정답 ②

  • ㄱ: 피해자 IP로 위장해 ICMP Echo로 중계 네트워크가 반사 응답하게 하는 공격 → Smurf Attack
  • ㄴ: SYN 패킷을 연속 전송해 연결 대기 자원을 고갈시키는 공격 → SYN Flooding Attack
  • ㄷ: 송신자와 수신자 IP·포트를 동일하게 조작한 SYN 패킷 공격 → Land Attack

🔑 암기 ICMP 반사=Smurf, SYN 연속=SYN Flooding, 출발지=목적지=Land.

🎯 빈출 DoS 공격 유형 매칭은 단골.


이 회차 한 장 요약

100문항·5과목 × 20문항·150분·60점 합격(과목별 40점 과락). 과목별 빈출·함정과 다시 볼 문항을 정리한다.

과목 빈출·핵심 단골 함정 다시 볼 문항
Ⅰ 소프트웨어 설계 객체지향 4대 특징(캡·상·추·다)·UML·디자인 패턴·유스케이스 관계·결합도/응집도(결소응대) UML 아닌 것(속성/연산 다이어그램 없음)·포함(필수) vs 확장(선택) 008(자료사전 기호)·011(Facade)·018(결소응대)
Ⅱ 소프트웨어 개발 스택/큐(LIFO/FIFO)·정렬 복잡도(버선삽/퀵병힙)·화이트/블랙박스·알파/베타 큐=FIFO를 LIFO로 바꿔치기·내부 관찰 불가=블랙박스 027(트리 후위)·032(선택정렬 PASS)·035(힙≠BST)
Ⅲ 데이터베이스 구축 스키마 3계층·정규화(도·부·이·결·다·조)·이상현상(삽·삭·갱)·DDL/DML/DCL·ACID·키 WHERE에 집계함수 금지(HAVING)·튜플 vs 속성·참조 무결성 삭제 방향 043(HAVING COUNT)·053(BCNF)·060(참조 무결성)
Ⅳ 프로그래밍 언어 활용 전역/지역변수·포인터·후위++·연쇄 비교·스케줄링(FIFO/HRN)·교착상태(상·점·비·환) 지역변수가 전역 가림·10<a<20은 좌→우·페이지 작을수록 단편화 감소 062(전역 a 변함)·072(체인 비교=1)·077(포인터)·080(HRN)
Ⅴ 정보시스템 구축관리 대칭/비대칭키·CIA(기·무·가)·접근통제(MAC/DAC/RBAC)·해시 vs 암호·DoS 공격·라이프사이클 개인키로 전송(X)·결함 내성 ≠ 변경 수용·분산형은 망형(계층 X) 088(공개키 전송)·097(DAC)·099(RSA≠해시)·100(DoS 짝)

🎯 합격 전략 코드 추적(Ⅳ)과 SQL(Ⅲ)은 손으로 한 번 끝까지 따라가고, 보안·SW공학 용어(Ⅴ)는 키워드 매칭·소거법으로 접근하면 60점 합격선은 충분히 넘는다.

전체 목록 실전모의고사