본문 바로가기
카테고리 없음

정보처리기사 필기 - 2022년 03월 05

by DS80 2025. 5. 7.
반응형

 

[소프트웨어 설계]

문제 1 User Interface 설계 시 오류 메시지나 경고에 관한 지침으로 가장 거리가 먼 것은?

보기

  1. 메시지는 이해하기 쉬워야 한다.
  2. 오류로부터 회복을 위한 구체적인 설명이 제공되어야 한다.
  3. 오류로 인해 발생 될 수 있는 부정적인 내용을 적극적으로 사용자들에게 알려야 한다.
  4. 소리나 색의 사용을 줄이고 텍스트로만 전달하도록 한다. ⭐

정답: 4. 소리나 색의 사용을 줄이고 텍스트로만 전달하도록 한다. ⭐

해설: 오류 메시지는 직관성과 가독성을 높이기 위해 색이나 아이콘 등의 시각적 요소를 사용하는 것이 바람직합니다. 텍스트만으로 제한하는 것은 효과적인 전달을 저해할 수 있습니다.


문제 2 다음 중 애자일(Agile) 소프트웨어 개발에 대한 설명으로 틀린 것은?

보기

  1. 공정과 도구보다 개인과의 상호작용을 더 가치 있게 여긴다.
  2. 동작하는 소프트웨어보다는 포괄적인 문서를 가치 있게 여긴다. ⭐
  3. 계약 협상보다는 고객과의 협력을 가치 있게 여긴다.
  4. 계획을 따르기보다 변화에 대응하기를 가치 있게 여긴다.

정답: 2. 동작하는 소프트웨어보다는 포괄적인 문서를 가치 있게 여긴다. ⭐

해설: 애자일 개발은 작동하는 소프트웨어, 유연한 대응, 사람 간의 상호작용을 중시합니다. 포괄적 문서보다 작동하는 결과물이 더 중요합니다.


문제 3 소프트웨어 설계에서 요구사항 분석에 대한 설명으로 틀린 것은?

보기

  1. 소프트웨어가 무엇을 해야 하는가를 추적하여 요구사항 명세를 작성하는 작업이다.
  2. 사용자의 요구를 추출하여 목표를 정하고 어떤 방식으로 해결할 것인지 결정하는 단계이다.
  3. 소프트웨어 시스템이 사용되는 동안 발견되는 오류를 정리하는 단계이다. ⭐
  4. 소프트웨어 개발의 출발점이면서 실질적인 첫 번째 단계이다.

정답: 3. 소프트웨어 시스템이 사용되는 동안 발견되는 오류를 정리하는 단계이다. ⭐

해설: 요구사항 분석은 개발 초기 단계에서 사용자의 요구를 파악하고 문서화하는 과정이며, 오류 정리는 테스트 단계에서 이루어집니다.


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

보기

  1. Abstraction
  2. Polymorphism
  3. Encapsulation
  4. Inheritance ⭐

정답: 4. Inheritance ⭐

해설: 상속(Inheritance)은 상위 클래스의 속성과 기능을 하위 클래스가 물려받는 객체지향의 핵심 개념입니다. 재사용성과 확장성을 높입니다.


문제 5 설계 기법 중 하향식 설계 방법과 상향식 설계 방법에 대한 비교 설명으로 가장 옳지 않은 것은?

보기

  1. 하향식 설계에서는 통합 검사 시 인터페이스가 이미 정의되어 있어 통합이 간단하다.
  2. 하향식 설계에서 레벨이 낮은 데이터 구조의 세부 사항은 설계 초기 단계에서 필요하다.
  3. 상향식 설계는 최하위 수준에서 각각의 모듈들을 설계하고 이러한 모듈이 완성되면 이들을 결합하여 검사한다.
  4. 상향식 설계에서는 인터페이스가 이미 성립되어 있지 않더라도 기능 추가가 쉽다. ⭐

정답: 4. 상향식 설계에서는 인터페이스가 이미 성립되어 있지 않더라도 기능 추가가 쉽다. ⭐

해설: 상향식 설계는 모듈부터 구축하고 상위 시스템으로 통합하는 방식으로, 인터페이스가 명확히 성립되어야 모듈 결합과 기능 추가가 원활합니다.


문제 6

자료흐름도(DFD)의 각 요소별 표기 형태의 연결이 옳지 않은 것은?

보기

  1. Process : 원
  2. Data Flow : 화살표
  3. Data Store : 삼각형 ⭐
  4. Terminator : 사각형

정답: 3. Data Store : 삼각형 ⭐

해설:

DFD의 기본 요소 표기법은 다음과 같습니다.

  • Process는 ,
  • Data Flow는 화살표,
  • Data Store는 평행선(=),
  • Terminator는 사각형으로 표기됩니다.
  • 삼각형 표기는 잘못된 것으로, 정답입니다.

문제 7

소프트웨어 개발에 이용되는 모델(Model)에 대한 설명 중 거리가 먼 것은?

보기

  1. 모델은 개발 대상을 추상화하고 기호나 그림 등으로 시각적으로 표현한다.
  2. 모델을 통해 소프트웨어에 대한 이해도를 향상시킬 수 있다.
  3. 모델을 통해 이해 당사자 간의 의사소통이 향상된다.
  4. 모델을 통해 향후 개발될 시스템의 유추는 불가능하다. ⭐

정답: 4. 모델을 통해 향후 개발될 시스템의 유추는 불가능하다. ⭐

해설:

모델은 시스템 구조나 동작을 시각화하여 향후 구현될 시스템의 예측에 도움을 줍니다. 유추가 불가능하다는 설명은 틀립니다.


문제 8

다음의 설명에 해당하는 언어는?

"객체 지향 시스템을 개발할 때 산출물을 명세화, 시각화, 문서화하는데 사용된다. 즉, 개발하는 시스템을 이해하기 쉬운 형태로 표현하여 분석가, 의뢰인, 설계자가 효율적인 의사소통을 할 수 있게 해준다. 따라서, 개발 방법론이나 개발 프로세스가 아니라 표준화된 모델링 언어이다."

보기

  1. JAVA
  2. C
  3. UML ⭐
  4. Python

정답: 3. UML ⭐

해설:

UML은 Unified Modeling Language의 약어로, 시스템의 구조와 동작을 도식화하여 개발자와 사용자 간 의사소통을 돕는 모델링 언어입니다.


문제 9

다음 내용이 설명하는 UI 설계 도구는?

  • 디자인, 사용방법설명, 평가 등을 위해 실제 화면과 유사하게 만든 정적인 형태의 모형
  • 시각적으로만 구성 요소를 배치하는 것으로 일반적으로 실제로 구현되지는 않음

보기

  1. 스토리보드(Storyboard)
  2. 목업(Mockup) ⭐
  3. 프로토타입(Prototype)
  4. 유스케이스(Usecase)

정답: 2. 목업(Mockup) ⭐

해설:

목업은 정적이고 실제 구현이 없는 디자인 시안입니다. 실제와 유사하게 구성하여 시각적 피드백을 받을 수 있게 해줍니다.


문제 10

애자일(Agile) 기법 중 스크럼(Scrum)과 관련된 용어에 대한 설명이 틀린 것은?

보기

  1. 스크럼 마스터는 팀이 스크럼을 효과적으로 수행하도록 돕는 역할을 한다.
  2. 제품 백로그는 제품에 필요한 모든 작업 목록이다.
  3. 스프린트는 보통 3달 이상의 장기간으로 결정된다. ⭐
  4. 속도는 한 스프린트 동안 팀이 처리한 작업량을 의미한다.

정답: 3. 스프린트는 보통 3달 이상의 장기간으로 결정된다. ⭐

해설:

스크럼의 스프린트는 2~4주 단위의 짧은 반복 주기로 진행되며, 3달 이상의 긴 주기는 스크럼 원칙에 어긋납니다.


문제 11

UML 다이어그램 중 정적 다이어그램이 아닌 것은?

보기

  1. 컴포넌트 다이어그램
  2. 배치 다이어그램
  3. 순차 다이어그램 ⭐
  4. 패키지 다이어그램

정답: 3. 순차 다이어그램 ⭐

해설:

정적 다이어그램에는 클래스, 객체, 컴포넌트, 배치, 패키지 등이 포함됩니다.

**순차 다이어그램(시퀀스 다이어그램)**은 객체 간 상호작용의 시간 순서를 표현하는 동적 다이어그램입니다.


문제 12

LOC기법에 의하여 예측된 총 라인수가 36,000라인, 개발에 참여할 프로그래머가 6명, 프로그래머들의 평균 생산성이 월간 300라인일 때 개발에 소요되는 기간은?

보기

  1. 5개월
  2. 10개월
  3. 15개월
  4. 20개월 ⭐

정답: 4. 20개월 ⭐

해설:

총 노력 = 36,000 / 300 = 120 M/M

개발기간 = 120 / 6 = 20개월


문제 13

클래스 설계 원칙에 대한 바른 설명은?

보기

  1. 단일 책임원칙 : 하나의 클래스만 변경 가능 해야 한다.
  2. 개방-폐쇄의 원칙 : 클래스는 확장에 대해 열려 있어야 하며 변경에 대해 닫혀 있어야 한다. ⭐
  3. 리스코프 교체의 원칙 : 여러 개의 책임을 가진 클래스는 하나의 책임을 가진 클래스로 대체되어야 한다.
  4. 의존관계 역전의 원칙 : 클라이언트는 자신이 사용하는 메소드와 의존관계를 갖지 않도록 해야 한다.

정답: 2. 개방-폐쇄의 원칙 ⭐

해설:

**OCP(개방-폐쇄 원칙)**은 기존 코드를 수정하지 않고 새로운 기능을 확장할 수 있어야 한다는 원칙입니다. 즉, 확장에는 열려 있고, 변경에는 닫혀 있어야 합니다.


문제 14

GoF 디자인 패턴에서 생성(Creational) 패턴에 해당하는 것은?

보기

  1. 컴퍼지트(Composite)
  2. 어댑터(Adapter)
  3. 추상 팩토리(Abstract Factory) ⭐
  4. 옵서버(Observer)

정답: 3. 추상 팩토리(Abstract Factory) ⭐

해설:

GoF 생성 패턴에는 추상 팩토리, 빌더, 팩토리 메서드, 프로토타입, 싱글톤 등이 있으며, 객체 생성 방식에 대한 유연성을 제공합니다.


문제 15

아키텍처 설계과정이 올바른 순서로 나열된 것은?

"

㉮ 설계 목표 설정

㉯ 시스템 타입 결정

㉰ 스타일 적용 및 커스터마이즈

㉱ 서브시스템의 기능, 인터페이스 동작 작성

㉲ 아키텍쳐 설계 검토

"

보기

  1. ㉮ → ㉯ → ㉰ → ㉱ → ㉲ ⭐
  2. ㉲ → ㉮ → ㉯ → ㉱ → ㉰
  3. ㉮ → ㉲ → ㉯ → ㉱ → ㉰
  4. ㉮ → ㉯ → ㉰ → ㉲ → ㉱

정답: 1. ㉮ → ㉯ → ㉰ → ㉱ → ㉲ ⭐

해설:

아키텍처 설계과정의 순서:

  1. 설계목표 설정 →
  2. 시스템 타입 결정 →
  3. 아키텍처 패턴 적용 →
  4. 서브시스템 구체화 →
  5. 검토

문제 16

사용자 인터페이스를 설계할 경우 고려해야 할 가이드라인과 가장 거리가 먼 것은?

보기

  1. 심미성을 사용성보다 우선하여 설계해야 한다. ⭐
  2. 효율성을 높이게 설계해야 한다.
  3. 발생하는 오류를 쉽게 수정할 수 있어야 한다.
  4. 사용자에게 피드백을 제공해야 한다.

정답: 1. 심미성을 사용성보다 우선하여 설계해야 한다. ⭐

해설:

UI 설계에서 가장 중요한 것은 **사용성(Usability)**이며, 심미성은 부차적 요소입니다. 사용성 없는 심미성은 실용적이지 않습니다.


문제 17

소프트웨어 설계에서 자주 발생하는 문제에 대한 일반적이고 반복적인 해결 방법은?

보기

  1. 모듈 분해
  2. 디자인 패턴 ⭐
  3. 연관 관계
  4. 클래스 도출

정답: 2. 디자인 패턴 ⭐

해설:

디자인 패턴은 소프트웨어 설계에서 반복적으로 발생하는 문제를 해결하기 위한 일반화된 해법입니다.


문제 18

객체지향 분석기법의 하나로 객체 모형, 동적 모형, 기능 모형의 3개 모형을 생성하는 방법은?

보기

  1. Wirfs-Block Method
  2. Rumbaugh Method ⭐
  3. Booch Method
  4. Jacobson Method

정답: 2. Rumbaugh Method ⭐

해설:

Rumbaugh 방법(OMT)은 객체 모형, 동적 모형, 기능 모형을 만드는 대표적인 분석기법입니다.


문제 19

입력되는 데이터를 컴퓨터의 프로세서가 처리하기 전에 미리 처리하여 시간을 줄여주는 프로그램이나 하드웨어는?

보기

  1. EAI
  2. FEP ⭐
  3. GPL
  4. Duplexing

정답: 2. FEP ⭐

해설:

FEP(Front-End Processor)는 입력 데이터를 미리 처리하여 CPU의 부담을 줄이는 장치 또는 프로그램입니다.


문제 20

객체 지향 개념 중 하나 이상의 유사한 객체들을 묶어 공통된 특성을 표현한 데이터 추상화는?

보기

  1. Method
  2. Class ⭐
  3. Field
  4. Message

정답: 2. Class ⭐

해설:

**클래스(Class)**는 유사한 객체들의 공통 속성과 기능을 추상화하여 정의한 틀로, 객체지향의 핵심 요소입니다.


[소프트웨어 개발]

 

문제 21

클린 코드(Clean Code)를 작성하기 위한 원칙으로 틀린 것은?

보기

  1. 추상화 : 하위 클래스/메소드/함수를 통해 애플리케이션의 특성을 간략하게 나타내고, 상세 내용은 상위 클래스/메소드/함수에서 구현한다. ⭐
  2. 의존성 : 다른 모듈에 미치는 영향을 최소화하도록 작성한다.
  3. 가독성 : 누구든지 읽기 쉽게 코드를 작성한다.
  4. 중복성 : 중복을 최소화 할 수 있는 코드를 작성한다.

정답: 1. 추상화 ⭐

해설:

추상화 원칙은 상위 클래스나 메소드가 공통적이고 간략한 개요를 나타내고, 하위 클래스에서 구체적 세부 내용을 구현하는 구조입니다. 보기의 설명은 방향이 뒤바뀌어 있습니다.


문제 22

단위 테스트에서 테스트의 대상이 되는 하위 모듈을 호출하고, 파라미터를 전달하는 가상의 모듈로 상향식 테스트에 필요한 것은?

보기

  1. 테스트 스텁(Test Stub)
  2. 테스트 드라이버(Test Driver) ⭐
  3. 테스트 슈트(Test Suites)
  4. 테스트 케이스(Test Case)

정답: 2. 테스트 드라이버(Test Driver) ⭐

해설:

상향식 테스트에서는 하위 모듈부터 테스트하며, 이때 호출자 역할을 하는 가짜 모듈이 테스트 드라이버입니다.

반대로 하향식 테스트에서는 테스트 스텁을 사용합니다.


문제 23

스택(Stack)에 대한 옳은 설명은?

보기

ㄱ. FIFO 방식으로 처리한다.

ㄴ. 순서 리스트의 뒤(Rear)에서 삽입, 앞(Front)에서 제거된다.

ㄷ. 양쪽 끝에서 삽입과 삭제가 가능한 자료 구조이다.

ㄹ. 인터럽트 처리, 서브루틴 호출 작업 등에 응용된다. ⭐

  1. ㄱ, ㄴ
  2. ㄴ, ㄷ
  3. ㄹ ⭐
  4. ㄱ, ㄴ, ㄷ, ㄹ

정답: 3. ㄹ ⭐

해설:

스택은 LIFO(후입선출) 구조로, 마지막에 들어간 데이터가 먼저 나옵니다.

인터럽트, 서브루틴 복귀 주소 저장 등에 사용됩니다. ㄱ, ㄴ, ㄷ은 큐나 데크의 설명입니다.


문제 24

소프트웨어 모듈화의 장점이 아닌 것은?

보기

  1. 오류의 파급 효과를 최소화한다.
  2. 기능의 분리가 가능하여 인터페이스가 복잡하다. ⭐
  3. 모듈의 재사용 가능으로 개발과 유지보수가 용이하다.
  4. 프로그램의 효율적인 관리가 가능하다.

정답: 2. 기능의 분리가 가능하여 인터페이스가 복잡하다. ⭐

해설:

모듈화는 기능을 분리하여 구조를 단순화하고, 오히려 인터페이스를 명확하게 만듭니다. 복잡하게 만들지 않습니다.


문제 25

소프트웨어 프로젝트 관리에 대한 설명으로 가장 옳은 것은?

보기

  1. 개발에 따른 산출물 관리
  2. 소요인력은 최대화하되 정책 결정은 신속하게 처리
  3. 주어진 기간은 연장하되 최소의 비용으로 시스템을 개발
  4. 주어진 기간 내에 최소의 비용으로 사용자를 만족시키는 시스템을 개발 ⭐

정답: 4. 주어진 기간 내에 최소의 비용으로 사용자를 만족시키는 시스템을 개발 ⭐

해설:

프로젝트 관리는 정해진 시간과 비용 내에서 품질 좋은 결과물을 산출하는 것을 목표로 합니다.

 


문제 26

정형 기술 검토(FTR)의 지침으로 틀린 것은?

보기

  1. 의제를 제한한다.
  2. 논쟁과 반박을 제한한다.
  3. 문제 영역을 명확히 표현한다.
  4. 참가자의 수를 제한하지 않는다. ⭐

정답: 4. 참가자의 수를 제한하지 않는다. ⭐

해설:

FTR에서는 참가자 수도 제한하여 효율성을 높이는 것이 원칙입니다. 따라서 제한하지 않는다는 설명은 틀립니다.


문제 27

소프트웨어 재공학의 주요 활동 중 기존 소프트웨어 시스템을 새로운 기술 또는 하드웨어 환경에서 사용할 수 있도록 변환하는 작업은?

보기

  1. Analysis
  2. Migration ⭐
  3. Restructuring
  4. Reverse Engineering

정답: 2. Migration ⭐

해설:

**Migration(이관)**은 기존 시스템을 다른 환경(OS, 하드웨어 등)으로 옮기는 작업입니다.

 


문제 28

정보시스템 개발 단계에서 프로그래밍 언어 선택 시 고려할 사항으로 가장 거리가 먼 것은?

보기

  1. 개발 정보시스템의 특성
  2. 사용자의 요구사항
  3. 컴파일러의 가용성
  4. 컴파일러의 독창성 ⭐

정답: 4. 컴파일러의 독창성 ⭐

해설:

컴파일러의 성능, 가용성은 중요하지만 독창성은 고려사항이 아닙니다.

 


문제 29

소프트웨어 패키징에 대한 설명으로 틀린 것은?

보기

  1. 패키징은 개발자 중심으로 진행한다. ⭐
  2. 신규 및 변경 개발소스를 식별하고, 이를 모듈화하여 상용제품으로 패키징한다.
  3. 고객의 편의성을 위해 매뉴얼 및 버전관리를 지속적으로 한다.
  4. 범용 환경에서 사용이 가능하도록 일반적인 배포 형태로 패키징이 진행된다.

정답: 1. 패키징은 개발자 중심으로 진행한다. ⭐

해설:

패키징은 사용자 중심으로 진행되며, 사용자 환경과 편의성을 최우선으로 고려합니다.


문제 30

자료 구조의 분류 중 선형 구조가 아닌 것은?

보기

  1. 트리 ⭐
  2. 리스트
  3. 스택
  4. 데크

정답: 1. 트리 ⭐

해설:

트리는 비선형 자료구조입니다. 선형 구조에는 리스트, 큐, 스택, 데크가 포함됩니다.


문제 31

아주 오래되거나 참고문서 또는 개발자가 없어 유지보수 작업이 아주 어려운 프로그램을 의미하는 것은?

보기

  1. Title Code
  2. Source Code
  3. Object Code
  4. Alien Code ⭐

정답: 4. Alien Code ⭐

해설:

개발자 부재, 문서 미비, 오래된 환경 등으로 유지보수가 극도로 어려운 프로그램을 **에일리언 코드(Alien Code)**라고 합니다.


문제 32

소프트웨어를 재사용함으로써 얻을 수 있는 이점으로 가장 거리가 먼 것은?

보기

  1. 생산성 증가
  2. 프로젝트 문서 공유
  3. 소프트웨어 품질 향상
  4. 새로운 개발 방법론 도입 용이 ⭐

정답: 4. 새로운 개발 방법론 도입 용이 ⭐

해설:

소프트웨어 재사용은 생산성, 품질 향상에 이점이 있지만, 새로운 개발 방법론 도입은 재사용과 직접적인 관련이 없습니다.


문제 33

인터페이스 간의 통신을 위해 이용되는 데이터 포맷이 아닌 것은?

보기

  1. AJTML ⭐
  2. JSON
  3. XML
  4. YAML

정답: 1. AJTML ⭐

해설:

AJTML은 존재하지 않는 가상의 포맷입니다. JSON, XML, YAML은 실제 사용되는 데이터 포맷입니다.


문제 34

프로그램 설계도의 하나인 NS Chart에 대한 설명으로 가장 거리가 먼 것은?

보기

  1. 논리의 기술에 중점을 두고 도형을 이용한 표현 방법이다.
  2. 이해하기 쉽고 코드 변환이 용이하다.
  3. 화살표나 GOTO를 사용하여 이해하기 쉽다. ⭐
  4. 연속, 선택, 반복 등의 제어 논리 구조를 표현한다.

정답: 3. 화살표나 GOTO를 사용하여 이해하기 쉽다. ⭐

해설:

NS 차트는 화살표와 GOTO를 사용하지 않으며, 구조적 프로그래밍에 적합한 표현 방식입니다.


문제 35

입력 순서 A, B, C, D에 대해 push, push, pop, push, push, pop, pop, pop 순서로 스택연산을 수행한 결과는?

보기

  1. B D C A ⭐
  2. A B C D
  3. B A C D
  4. A B D C

정답: 1. B D C A ⭐

해설:

스택은 후입선출(LIFO) 구조이므로 마지막에 push된 요소가 먼저 pop됩니다.


문제 36

분할 정복(Divide and Conquer)에 기반하고 피벗을 사용하는 정렬 알고리즘은?

보기

  1. Selection Sort
  2. Bubble Sort
  3. Insert Sort
  4. Quick Sort ⭐

정답: 4. Quick Sort ⭐

해설:

퀵 정렬은 피벗을 기준으로 리스트를 분할하고 정복하는 알고리즘입니다. 최악의 경우 O(n²) 시간이 소요될 수 있습니다.


문제 37

화이트 박스 검사 기법에 해당하는 것으로만 짝지어진 것은?

"

㉠ 데이터 흐름 검사

㉡ 루프 검사

㉢ 동등 분할 검사

㉣ 경계값 분석

㉤ 원인 결과 그래프 기법

㉥ 오류예측 기법

"

보기

  1. ㉠, ㉡ ⭐
  2. ㉠, ㉣
  3. ㉡, ㉤
  4. ㉢, ㉥

정답: 1. ㉠, ㉡ ⭐

해설:

기초 경로 검사, 조건 검사 등은 화이트 박스 테스트 기법입니다. 블랙박스 테스트와 구분하세요.


문제 38

소프트웨어 품질 관련 국제 표준인 ISO/IEC 25000에 관한 설명으로 옳지 않은 것은?

보기

  1. 소프트웨어 품질 평가를 위한 소프트웨어 품질평가 통합모델 표준이다.
  2. SQuaRE라고도 한다.
  3. ISO/IEC 2501n은 품질 측정을 다룬다. ⭐
  4. ISO/IEC 9126과 14598을 통합한 것이다.

정답: 3. ISO/IEC 2501n은 품질 측정을 다룬다. ⭐

해설:

ISO/IEC 2502n이 품질 측정을 다루고, 2501n은 품질 모델을 다룹니다.

 


문제 39

코드 인스펙션과 관련한 설명으로 틀린 것은?

보기

  1. 프로그램을 실행하지 않고 눈으로 확인하는 방법이다.
  2. 코드 품질 향상 기법 중 하나이다.
  3. 동적 테스트 시에만 활용하는 기법이다. ⭐
  4. 표준 준수, 효율성 등을 함께 검사할 수 있다.

정답: 3. 동적 테스트 시에만 활용하는 기법이다. ⭐

해설:

코드 인스펙션은 정적 테스트 기법입니다. 실행 없이 눈으로 코드 품질을 검토합니다.


문제 40

프로젝트에 내재된 위험 요소를 분석하고 대비하는 모든 기술과 활동을 포함하는 것은?

보기

  1. Critical Path Method
  2. Risk Analysis ⭐
  3. Work Breakdown Structure
  4. Waterfall Model

정답: 2. Risk Analysis ⭐

해설:

**리스크 분석(Risk Analysis)**은 프로젝트 성공을 위하여 위험 요소를 예측하고 대응하기 위한 활동입니다.


[데이터베이스 구축]

 

문제 41

데이터베이스 설계 단계 중 물리적 설계 시 고려 사항으로 적절하지 않은 것은?

보기

  1. 스키마의 평가 및 정제 ⭐
  2. 응답 시간
  3. 저장 공간의 효율화
  4. 트랜잭션 처리량

정답: 1. 스키마의 평가 및 정제 ⭐

해설:

스키마의 평가 및 정제는 논리적 설계 단계에서 수행됩니다.

물리적 설계에서는 성능, 저장공간, 응답 시간 등을 고려합니다.


문제 42

DELETE 명령에 대한 설명으로 틀린 것은?

보기

  1. 테이블의 행을 삭제할 때 사용한다.
  2. WHERE 조건절이 없는 DELETE는 DROP과 동일한 효과를 가진다. ⭐
  3. SQL에서 DML에 해당한다.
  4. 기본 형식은 DELETE FROM 테이블 [WHERE 조건]; 이다.

정답: 2. WHERE 조건절이 없는 DELETE는 DROP과 동일한 효과를 가진다. ⭐

해설:

DELETE는 **데이터(행)**만 삭제하며, DROP은 테이블 자체를 제거합니다.


문제 43

릴레이션 R의 모든 조인 종속성이 R의 후보 키를 통해서만 만족될 때, 해당 정규형은?

보기

  1. 제5정규형 ⭐
  2. 제4정규형
  3. 제3정규형
  4. 제1정규형

정답: 1. 제5정규형 ⭐

해설:

조인 종속성을 제거한 단계는 **5NF (제5정규형)**입니다.

→ 원부이결다조(원자성, 부분, 이행, 결정자, 다치, 조인)

✅ 제1정규형 (1NF)

조건: 모든 속성의 값은 **원자값(Atomic Value)**이어야 함.

쉽게 말해: 셀 안에 값이 하나만 있어야 함.

❌ 예: 한 칸에 전화번호가 2개 ("010-1234-5678, 02-123-4567")

✅ 해결: 전화번호를 각각 다른 행으로 분리

 

✅ 제2정규형 (2NF)

조건: 제1정규형 만족 + 부분 함수 종속 제거

쉽게 말해: 복합키의 일부에만 의존하는 속성은 빼야 함.

❌ 예: 학생ID+강의코드 → 성적, 그런데 학생ID → 이름

✅ 해결: 학생 테이블과 수강 테이블을 나눔

 

✅ 제3정규형 (3NF)

조건: 제2정규형 만족 + 이행 함수 종속 제거

쉽게 말해: A → B, B → C 형태는 안 됨 (A → C를 직접 맵핑하자)

❌ 예: 학과코드 → 학과이름 → 학과장

✅ 해결: 학과 테이블을 따로 만들어 분리

 

✅ 제4정규형 (4NF)

조건: 제3정규형 만족 + 다치 종속 제거

쉽게 말해: 하나의 키에 대해 둘 이상의 독립적인 반복 속성이 있으면 분리

❌ 예: 한 학생이 여러 동아리, 여러 자격증 → 하나의 테이블에 다 기록

✅ 해결: ‘학생-동아리’, ‘학생-자격증’ 테이블로 나눔

 

✅ 제5정규형 (5NF, PJ/NF)

조건: 제4정규형 만족 + 조인 종속 제거

쉽게 말해: 조인을 반복할수록 데이터가 이상하게 나오는 경우 방지

✅ 거의 복잡한 관계에서만 필요함 (예: 상품-부품-공급자 등)

 

🔄 그 외 정규형

BCNF (보이스-코드 정규형): 제3정규형보다 더 엄격한 조건. 모든 결정자가 후보키여야 함.

6NF: 거의 쓰지 않음. 시간적 데이터나 XML 정규화처럼 특수한 케이스에 사용.

출처 입력


문제 44

E-R 모델에서 다중값 속성의 표기법은?

대표사진 삭제

사진 설명을 입력하세요.

정답: 3번 이미지 ⭐

해설:

다중값 속성은 겹원 표시된 타원으로 나타냅니다.

(중첩된 타원이 있으면 정답)


문제 45

다른 릴레이션의 기본키를 참조하는 키를 의미하는 것은?

보기

  1. 필드키
  2. 슈퍼키
  3. 외래키 ⭐
  4. 후보키

정답: 3. 외래키 ⭐

해설:

**외래키(Foreign Key)**는 다른 릴레이션의 기본키를 참조하는 속성입니다.

→ 관계 설정, 무결성 유지


문제 46

관계해석에서 '모든 것에 대하여'의 의미를 나타내는 논리 기호는?

보기

  1. ∀ ⭐

정답: 3. ∀ ⭐

해설:

**∀ (for all)**은 모든 것에 대해 의미하며, **∃**는 존재를 뜻합니다.


문제 47 다음 릴레이션의 Degree와 Cardinality는?

  • 0열 선택0열 다음에 열 추가
  • 1열 선택1열 다음에 열 추가
  • 2열 선택2열 다음에 열 추가
  • 3열 선택3열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
  • 1행 선택1행 다음에 행 추가
  • 2행 선택2행 다음에 행 추가
  • 3행 선택3행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
학번
이름
학년
학과
13001
홍길동
3학년
전기
13002
이순신
4학년
기계
13003
강감찬
2학년
컴퓨터
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제

 

정답: 1. Degree: 4, Cardinality: 3 ⭐

해설:

**Degree(차수)**는 열의 개수, **Cardinality(기수)**는 행의 개수입니다.

→ “카행 디열”로 기억하세요!


문제 48

뷰(View)에 대한 설명으로 틀린 것은?

보기

  1. 뷰 위에 또 다른 뷰를 정의할 수 있다.
  2. DBA는 보안성 측면에서 뷰를 활용할 수 있다.
  3. 사용자가 필요한 정보를 요구에 맞게 가공하여 뷰로 만들 수 있다.
  4. SQL로 삽입, 갱신, 삭제에 제약이 없다. ⭐

정답: 4. SQL로 삽입, 갱신, 삭제에 제약이 없다. ⭐

해설:

뷰는 일부 제약 조건 하에서만 데이터 조작이 가능합니다.

→ JOIN이나 GROUP BY 포함 시 수정 제한됨


문제 49

관계 대수식을 SQL 질의로 옳게 표현한 것은?

보기

  1. SELECT 학생 FROM 이름 WHERE 학과='교육';
  2. SELECT 이름 FROM 학생 WHERE 학과='교육'; ⭐
  3. SELECT 교육 FROM 학과 WHERE 이름='학생';
  4. SELECT 학과 FROM 학생 WHERE 이름='교육';

정답: 2. SELECT 이름 FROM 학생 WHERE 학과='교육'; ⭐

해설:

σ조건(릴레이션) → WHERE절

π속성(릴레이션) → SELECT절

→ 관계대수: σ학과='교육'(학생) → π이름(σ학과='교육'(학생))

 


문제 50

정규화 과정에서 A→B, B→C일 때 A→C 관계를 제거하는 단계는?

보기

  1. 1NF → 2NF
  2. 2NF → 3NF ⭐
  3. 3NF → BCNF
  4. BCNF → 4NF

정답: 2. 2NF → 3NF ⭐

해설:

이행적 함수 종속(A→C)을 제거하는 정규화 단계는 2NF → 3NF입니다.


문제 51

CREATE TABLE문에 포함되지 않는 기능은?

보기

  1. 속성 타입 변경⭐
  2. 속성의 NOT NULL 여부 지정
  3. 기본키를 구성하는 속성 지정
  4. CHECK 제약조건의 정의

정답: 1. 속성 타입 변경 ⭐

해설:

CREATE TABLE은 테이블 생성 시의 구조만 설정하며, 속성 타입 변경은 ALTER TABLE 문에서 수행된다.


문제 52

SQL과 관련한 설명으로 틀린 것은?

보기

  1. REVOKE 키워드를 사용하여 열 이름을 다시 부여할 수 있다.
  2. 데이터 정의어는 기본 테이블, 뷰 테이블, 또는 인덱스 등을 생성, 변경, 제거하는데 사용된다.
  3. DISTINCT를 활용하여 중복 값을 제거할 수 있다.
  4. JOIN을 통해 여러 테이블의 레코드를 조합하여 표현할 수 있다.

정답: 1. REVOKE 키워드를 사용하여 열 이름을 다시 부여할 수 있다. ❌

해설:

REVOKE는 사용자 권한 회수용 키워드이다. 열 이름 변경은 RENAME을 포함한 DDL 문에서 수행된다.


문제 53

"SELECT 급여 FROM 사원;"

<사원> 테이블

  • 0열 선택0열 다음에 열 추가
  • 1열 선택1열 다음에 열 추가
  • 2열 선택2열 다음에 열 추가
  • 3열 선택3열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
  • 1행 선택1행 다음에 행 추가
  • 2행 선택2행 다음에 행 추가
  • 3행 선택3행 다음에 행 추가
  • 4행 선택4행 다음에 행 추가
  • 5행 선택5행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
사원ID
사원명
급여
부서ID
101
박철수
30000
1
102
한나라
35000
2
103
김감동
40000
3
104
이구수
35000
2
105
최초록
40000
3
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  1. 1
  2. 3
  3. 4
  4. 5 ⭐

 

보기

사원 테이블에 5명의 데이터가 있음

정답: 4. 5 ⭐

해설:

조건이 없으므로 급여 컬럼 전체 5개 튜플이 출력된다.

 


문제 54

다음 SQL문에서 사용된 BETWEEN 연산의 의미와 동일한 것은?

"

SELECT *

FROM 성적

WHERE (점수 BETWEEN 90 AND 95) AND 학과 = '컴퓨터공학과';

"

보기

  1. 점수 >= 90 AND 점수 <= 95 ⭐
  2. 점수 > 90 AND 점수 < 95
  3. 점수 > 90 AND 점수 <= 95
  4. 점수 >= 90 AND 점수 < 95

정답: 1. 점수 >= 90 AND 점수 <= 95 ⭐

해설:

BETWEEN A AND B는 A 이상 B 이하로, 양쪽 경계값을 포함한다.


문제 55

트랜잭션의 상태 중 트랜잭션의 수행이 실패하여 Rollback 연산을 실행한 상태는?

보기

  1. 철회(Aborted) ⭐
  2. 부분 완료(Partially Committed)
  3. 완료(Commit)
  4. 실패(Fail)

정답: 1. 철회(Aborted) ⭐

해설:

Rollback 수행 상태는 철회 상태이다. 실패 상태는 단순한 오류 상태를 의미함.


문제 56

데이터 제어어(DCL)에 대한 설명으로 옳은 것은?

보기

  1. ROLLBACK : 데이터의 보안과 무결성을 정의한다.
  2. COMMIT : 데이터베이스 사용자의 사용 권한을 취소한다.
  3. GRANT : 데이터베이스 사용자의 사용 권한을 부여한다. ⭐
  4. REVOKE : 데이터베이스 조작 작업이 비정상적으로 종료되었을 때 원래 상태로 복구한다.

정답: 3. GRANT : 데이터베이스 사용자의 사용 권한을 부여한다. ⭐

해설:

GRANT는 사용 권한 부여, REVOKE는 권한 회수, COMMIT/ROLLBACK은 트랜잭션 처리 명령이다.


문제 57

SELECT A FROM R UNION ALL SELECT A FROM S;

보기

R.A: 1,3 / S.A: 1,2

 


 

🔹 문제 57

문제:

"

sql

SELECT A FROM R UNION ALL SELECT A FROM S;

"

테이블 R:

  • 0열 선택0열 다음에 열 추가
  • 1열 선택1열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
  • 1행 선택1행 다음에 행 추가
  • 2행 선택2행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
A
B
1
A
3
B
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제

테이블 S:

  • 0열 선택0열 다음에 열 추가
  • 1열 선택1열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
  • 1행 선택1행 다음에 행 추가
  • 2행 선택2행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
A
B
1
A
2
B
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제

테이블 R과 S에 대한 SQL에 대한 SQL문이 실행되었을 때, 실행결과로 옳은 것은?

 

정답: 4. 1, 3, 1, 2 ⭐

해설:

UNION ALL은 중복 제거 없이 결과를 모두 출력한다.


문제 58

분산 데이터베이스 시스템(Distributed Database System)에 대한 설명으로 틀린 것은?

보기

  1. 논리적으로는 하나의 시스템에 속하지만 물리적으로는 여러 개의 컴퓨터에 분산됨
  2. 위치·중복·장애 투명성 등을 목표로 함
  3. 설계가 어렵고 비용이 높다는 단점이 있음
  4. 주요 구성 요소는 P2P 시스템, 단일 데이터베이스 등이다 ❌

정답: 4. 주요 구성 요소는 P2P 시스템, 단일 데이터베이스 등이다 ❌

해설:

분산 시스템의 구성 요소는 분산 처리기, 통신 네트워크, 분산 DB 등이며 P2P/단일DB는 아님.

 


문제 59

테이블 두 개를 조인하여 뷰 V_1을 정의하고, V_1을 이용하여 뷰 V_2를 정의하였다. 다음 명령 수행 후 결과로 옳은 것은?

"

DROP VIEW V_1 CASCADE;

"

  1. V_1만 삭제된다.
  2. V_2만 삭제된다.
  3. V_1과 V_2 모두 삭제된다
  4. V_1과 V_2 모두 삭제되지 않는다.

 

 

정답: 3. V_1과 V_2 모두 삭제된다 ⭐

해설:

CASCADE는 참조 중인 뷰까지 함께 삭제하는 옵션이다.


문제 60

데이터베이스에서 병행제어의 목적으로 틀린 것은?

보기

  1. 시스템 활용도 최대화
  2. 사용자에 대한 응답시간 최소화
  3. 데이터베이스 공유 최소화 ❌
  4. 데이터베이스 일관성 유지

정답: 3. 데이터베이스 공유 최소화 ❌

해설:

병행제어는 데이터 공유를 최소화하는 게 아니라 오히려 공유하면서도 일관성을 지키는 것이 목적이다.


[프로그래밍 언어 활용]

 

문제 61

IP 주소체계와 관련한 설명으로 틀린 것은?

보기

  1. IPv6의 패킷 헤더는 32 octet의 고정된 길이를 가진다. ❌
  2. IPv6는 주소 자동설정(Auto Configuration) 기능을 통해 손쉽게 이용자의 단말을 네트워크에 접속시킬 수 있다.
  3. IPv4는 호스트 주소를 자동으로 설정하며 유니캐스트(Unicast)를 지원한다.
  4. IPv4는 클래스별로 네트워크와 호스트 주소의 길이가 다르다.
  5.  

정답: 1. IPv6의 패킷 헤더는 32 octet의 고정된 길이를 가진다. ❌

해설:

  • IPv6의 패킷 헤더는 40 octet(=320비트)의 고정된 길이를 가진다.
  • 따라서 32 octet이라는 설명은 틀림.
  • 나머지 보기들은 모두 올바름:
  • IPv6는 Auto Configuration(자동 주소 설정) 기능을 지원
  • IPv4는 클래스 기반 구조로 네트워크/호스트 구분
  • IPv4는 유니캐스트 포함 다양한 전송 방식을 지원

문제 62

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

(정답률: 53%)

#include <stdio.h> #include <stdlib.h> int main(int argc, char *argv[]) { int arr[2][3] = {1, 2, 3, 4, 5, 6}; int (*p)[3] = NULL; p = arr; printf("%d, ", *(p[0] + 1) + *(p[1] + 2)); printf("%d", *(*(p + 1) + 0) + *(*(p + 1) + 1)); return 0; }
 

보기

  1. 7, 5
  2. 8, 5
  3. 8, 9 ⭐
  4. 7, 9

정답: 3. 8, 9 ⭐

 

해설:

배열 arr[2][3] = {1,2,3,4,5,6};

→ 메모리 구조:

arr[0][0] = 1 arr[0][1] = 2 arr[0][2] = 3 arr[1][0] = 4 arr[1][1] = 5 arr[1][2] = 6

① *(p[0] + 1) + *(p[1] + 2)

  • p[0] + 1 → arr[0][1] → 2
  • p[1] + 2 → arr[1][2] → 6
  • 2 + 6 = 8

② *(*(p + 1) + 0) + *(*(p + 1) + 1)

  • *(p + 1) → arr[1]
  • *(*(p + 1) + 0) → arr[1][0] → 4
  • *(*(p + 1) + 1) → arr[1][1] → 5
  • 4 + 5 = 9
  •  

📌 출력 결과는:

8, 9

따라서 정답은 3번이다.

 

 


문제 63

OSI 7계층 중 데이터링크 계층에 해당되는 프로토콜이 아닌 것은?

보기

  1. HTTP
  2. HDLC
  3. PPP
  4. LLC

정답: 1. HTTP ⭐

해설:

HTTP는 OSI 7계층 중 응용 계층(7계층)에 해당한다. 나머지 HDLC, PPP, LLC는 데이터링크 계층(2계층) 프로토콜이다.


문제 64

C언어에서 두 개의 논리 값 중 하나라도 참이면 1을, 모두 거짓이면 0을 반환하는 연산자는?

보기

  1. || ⭐
  2. &&
  3. **
  4. !=

정답: 1. || ⭐

해설:

||는 OR 연산자로, 두 피연산자 중 하나라도 참이면 결과는 1이다.


문제 65

IPv6에 대한 특성으로 틀린 것은?

보기

  1. 표시방법은 8비트씩 4부분의 10진수로 표시한다. ❌
  2. 2^128개의 주소를 표현할 수 있다.
  3. 등급별, 서비스별로 패킷을 구분할 수 있어 품질보장이 용이하다.
  4. 확장기능을 통해 보안기능을 제공한다.

정답: 1. 표시방법은 8비트씩 4부분의 10진수로 표시한다. ❌

해설:

IPv6는 16비트씩 8부분의 16진수로 표시한다. 1번은 IPv4의 표기 방식이다.


문제 66

JAVA의 예외(exception)와 관련한 설명으로 틀린 것은?

보기

  1. 문법 오류로 인해 발생한 것 ❌
  2. 오동작이나 결과에 악영향을 미칠 수 있는 실행 시간 동안에 발생한 오류
  3. 배열의 인덱스가 그 범위를 넘어서는 경우 발생하는 오류
  4. 존재하지 않는 파일을 읽으려고 하는 경우에 발생하는 오류

정답: 1. 문법 오류로 인해 발생한 것 ❌

해설:

문법 오류는 컴파일 에러이며 예외(Exception)에 해당하지 않는다. 예외는 런타임 중 발생하는 오류를 뜻한다.


문제 67

TCP/IP 계층 구조에서 IP의 동작 과정에서의 전송 오류가 발생하는 경우에 대비해 오류 정보를 전송하는 목적으로 사용하는 프로토콜은?

보기

  1. ECP(Error Checking Protocol)
  2. ARP(Address Resolution Protocol)
  3. ICMP(Internet Control Message Protocol) ⭐
  4. PPP(Point-to-Point Protocol)

정답: 3. ICMP ⭐

해설:

ICMP는 오류 메시지를 전송하거나 진단 정보를 전달하는 IP 보조 프로토콜이다. ping도 ICMP 기반이다.


문제 68

좋은 소프트웨어 설계를 위한 소프트웨어의 모듈간의 결합도(Coupling)와 모듈 내 요소 간 응집도(Cohesion)에 대한 설명으로 옳은 것은?

보기

  1. 응집도는 낮게 결합도는 높게 설계한다.
  2. 응집도는 높게 결합도는 낮게 설계한다. ⭐
  3. 양쪽 모두 낮게 설계한다.
  4. 양쪽 모두 높게 설계한다.

정답: 2. 응집도는 높게 결합도는 낮게 설계한다. ⭐

해설:

좋은 설계는 각 모듈이 독립적으로 기능하며(응집도 높음), 다른 모듈에 의존하지 않아야 한다(결합도 낮음).


문제 69

다음과 같은 형태로 임계 구역의 접근을 제어하는 상호배제 기법은?

P(S) : while S <= 0 do skip;
       S := S - 1;
V(S) : S := S + 1;
 

보기

  1. Dekker Algorithm
  2. Lamport Algorithm
  3. Peterson Algorithm
  4. Semaphore ⭐

정답: 4. Semaphore ⭐

 

해설:

문제에서 제시된 P(S)와 V(S) 연산은 **세마포어(Semaphore)**의 전형적인 사용 방식이다.

  • P(S) (Proberen) = 자원 요청 / 감소 연산
  • → while S <= 0 do skip; 은 자원이 없으면 기다리라는 의미 (대기)
  • → S := S - 1; 은 자원을 확보했으니 1개 사용 (감소)
  • V(S) (Verhogen) = 자원 해제 / 증가 연산
  • → S := S + 1; 자원을 반환 (증가)

📌 세마포어는 다중 프로세스 환경에서 공유 자원 접근을 조절하여 **경쟁 조건(race condition)**을 방지하는 데 사용된다.

 

각 보기 요약 비교

  • Dekker Algorithm: 두 프로세스 간 상호배제 구현, 최초 알고리즘
  • Lamport Algorithm: 다중 프로세스를 위한 우선순위 기반 상호배제
  • Peterson Algorithm: 두 프로세스 상호배제, 단순한 구조
  • Semaphore: P(), V() 연산 기반의 상호배제, 실제 OS에서 널리 사용됨 ✅

 


문제 70

소프트웨어 개발에서 모듈(Module)이 되기 위한 주요 특징에 해당하지 않는 것은?

보기

  1. 다른 것들과 구별될 수 있는 독립적인 기능을 가진 단위(Unit)이다.
  2. 독립적인 컴파일이 가능하다.
  3. 유일한 이름을 가져야 한다.
  4. 다른 모듈에서의 접근이 불가능해야 한다.

정답: 4. 다른 모듈에서의 접근이 불가능해야 한다. ❌

해설:

모듈은 기능적으로 독립적이면서도 필요 시 다른 모듈에서 접근 가능해야 함.

4번처럼 "접근이 불가능해야 한다"는 폐쇄적 설계는 모듈의 일반적인 목적에 맞지 않음.

📌 모듈의 주요 특징

  • 독립성
  • 재사용성
  • 식별 가능한 이름
  • 컴파일 가능
  • 다른 모듈과의 연결/호출 가능성

문제 71

빈 기억공간의 크기가 20KB, 16KB, 8KB, 40KB일 때

기억장치 배치 전략으로 “Best Fit”을 사용하여 17KB의 프로그램을 적재할 경우

내부단편화의 크기는 얼마인가?

보기

  1. 3KB ⭐
  2. 23KB
  3. 64KB
  4. 67KB

정답: 1. 3KB ⭐

해설:

Best Fit자투리 공간(내부 단편화)이 가장 작게 남는 블록을 선택한다.

  • 16KB → 적재 불가 (공간 부족)
  • 8KB → 적재 불가
  • 20KB → 가능, 단편화 3KB
  • 40KB → 가능, 단편화 23KB

📌 20KB 공간이 가장 적절하므로 내부단편화는 20 - 17 = 3KB


문제 72

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

#include <stdio.h> #include <stdlib.h> int main(int argc, char *argv[]) { int i = 0; while(1) { if(i == 4) { break; } ++i; } printf("i = %d", i); return 0; }
 

보기

  1. i = 0
  2. i = 1
  3. i = 3
  4. i = 4 ⭐

정답: 4. i = 4 ⭐

 

해설:

  • i는 처음에 0으로 초기화됨
  • while(1)은 무한루프 (조건이 항상 참)
  • 반복 중 i == 4가 되면 break로 루프 종료됨
  • 그 전까지 ++i가 계속 실행됨 → i = 1, 2, 3, 4

결과 출력:

c

printf("i = %d", i); // i = 4

📌 break는 조건을 만족하면 루프를 즉시 빠져나오게 하는 제어문이므로, i가 4일 때 탈출한다.

 


문제 73

다음 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);
    }
}
 

보기

  1. BCDABCA
  2. BCDABCC ⭐
  3. CDDACCC
  4. CDDACCA

정답: 2. BCDABCC ⭐

 

해설:

초기 배열:

{'A', 'B', 'D', 'D', 'A', 'B', 'C'}
 

rs(c) 실행 과정:

  • i=0 → a[0] = a[1] = 'B' → {'B', 'B', 'D', 'D', 'A', 'B', 'C'}
  • i=1 → a[1] == 'B' → a[1] = 'C' → {'B', 'C', 'D', 'D', 'A', 'B', 'C'}
  • i=2 → a[2] = a[3] = 'D' → {'B', 'C', 'D', 'D', 'A', 'B', 'C'}
  • i=3 → a[3] = a[4] = 'A' → {'B', 'C', 'D', 'A', 'A', 'B', 'C'}
  • i=4 → a[4] = a[5] = 'B' → {'B', 'C', 'D', 'A', 'B', 'B', 'C'}
  • i=5 → a[5] == 'B' → a[5] = 'C' → {'B', 'C', 'D', 'A', 'B', 'C', 'C'}
  • i=6 → 마지막 인덱스 → a[6] = a[5] = 'C' → 그대로 유지
{'B', 'C', 'D', 'A', 'B', 'C', 'C'}
 

→ 출력 결과: BCDABCC ✅

 


문제 74

개발 환경 구성을 위한 빌드(Build) 도구에 해당하지 않는 것은?

(정답률: 73%)

보기

  1. Ant
  2. Kerberos ❌
  3. Maven
  4. Gradle

정답: 2. Kerberos ❌

 

해설:

빌드(Build) 도구란?

→ 소스 코드를 컴파일, 패키징, 배포 가능한 형태로 자동화하는 도구

  • 0열 선택0열 다음에 열 추가
  • 1열 선택1열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
  • 1행 선택1행 다음에 행 추가
  • 2행 선택2행 다음에 행 추가
  • 3행 선택3행 다음에 행 추가
  • 4행 선택4행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
도구
설명
Ant
자바 기반의 초기 빌드 도구, XML 기반
Maven
Ant의 한계를 극복하기 위해 등장, 의존성 관리와 생명주기 지원
Gradle
Maven보다 더 유연하고 성능이 좋음, Android 빌드 도구로 널리 사용됨
Kerberos
❌ 네트워크 인증 시스템(보안 프로토콜), 빌드 도구와는 무관
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제

문제 75

3개의 페이지 프레임을 갖는 시스템에서 페이지 참조 순서가

1, 2, 1, 0, 4, 1, 3일 경우, FIFO 알고리즘에 의한

페이지 교체 후 프레임의 최종 상태는?

(정답률: 76%)

보기

  1. 1, 2, 0
  2. 2, 4, 3
  3. 1, 4, 2
  4. 4, 1, 3 ⭐

정답: 4. 4, 1, 3 ⭐

 

해설: FIFO(Page Replacement)

→ 가장 먼저 들어온 페이지부터 제거하는 방식

📦 페이지 프레임: 총 3칸

순서별 상태 변화

  • 0열 선택0열 다음에 열 추가
  • 1열 선택1열 다음에 열 추가
  • 2열 선택2열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
  • 1행 선택1행 다음에 행 추가
  • 2행 선택2행 다음에 행 추가
  • 3행 선택3행 다음에 행 추가
  • 4행 선택4행 다음에 행 추가
  • 5행 선택5행 다음에 행 추가
  • 6행 선택6행 다음에 행 추가
  • 7행 선택7행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
요청
프레임 상태
설명
1
[1]
페이지 폴트
2
[1, 2]
페이지 폴트
1
[1, 2]
Hit
0
[1, 2, 0]
페이지 폴트
4
[2, 0, 4]
1 제거, 페이지 폴트
1
[0, 4, 1]
2 제거, 페이지 폴트
3
[4, 1, 3]
0 제거, 페이지 폴트
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제

최종 상태: [4, 1, 3]


문제 76

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

char str1[20] = "KOREA";
char str2[20] = "LOVE";
char *p1 = NULL;
char *p2 = NULL;
p1 = str1;
p2 = str2;
str1[1] = p2[2];     // str1[1] = 'V' → "KVREA"
str2[3] = p1[4];     // str2[3] = 'A' → "LOVA"
strcat(str1, str2);  // "KVREALOVA"
printf("%c", *(p1 + 2)); // str1[2] = 'R'
 
  1. E
  2. V
  3. R ⭐
  4. O

문제 77

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

a = 100
list_data = ['a', 'b', 'c']
dict_data = {'a':90, 'b':95}

print(list_data[0])       # 'a'
print(dict_data['a'])     # 90
 
대표사진 삭제

사진 설명을 입력하세요.

해설:

  • 리스트는 인덱스로 접근 → 'a' 출력
  • 딕셔너리는 키로 접근 → 'a': 90 → 90 출력
  • a = 100은 전혀 사용되지 않음

 

✅ 문제 78

C언어에서 정수 변수 a=1, b=2일 때 다음 식의 연산 결과는?

"

c

a < b + 2 && a << 1 <= b

"

보기

  1. 0
  2. 1 ⭐
  3. 3
  4. 5

정답: 2

 

해설:

  • a < b + 2 → 1 < 4 → true (1)
  • a << 1 → 1 << 1 → 2, 2 <= 2 → true (1)
  • 1 && 1 → 결과는 1

✅ 문제 79

다음 Python 프로그램이 실행되었을 때, 실행 결과는?

a = ["대", "한", "민", "국"]
for i in a:
    print(i)
 
대표사진 삭제

사진 설명을 입력하세요.

**정답**: 2

 

**해설:**

- 리스트 요소들을 `print()`로 출력 → 한 줄씩 출력됨

- `print()`는 기본적으로 줄바꿈 포함

→ `"대\n한\n민\n국"` 출력됨


 

✅ 문제 80

UNIX 시스템의 쉘(shell)의 주요 기능에 대한 설명이 아닌 것은?

(정답률: 48%)

보기

  1. 사용자 명령을 해석하고 커널로 전달하는 기능을 제공한다.
  2. 반복적인 명령 프로그램을 만드는 프로그래밍 기능을 제공한다.
  3. 쉘 프로그램 실행을 위해 프로세스와 메모리를 관리한다. ❌
  4. 초기화 파일을 이용해 사용자 환경을 설정하는 기능을 제공한다.

정답: 3. 쉘 프로그램 실행을 위해 프로세스와 메모리를 관리한다.

 

해설:

  • **쉘(shell)**은 사용자가 입력한 명령어를 해석하고 커널에 전달하는 명령어 해석기이자, 스크립트 언어 인터프리터 역할도 한다.
  • 쉘은 사용자의 작업 환경 설정, 명령 실행, 조건문/반복문 사용 등을 통해 간단한 프로그래밍도 가능하다.
  • 또한 .bashrc, .profile 같은 초기화 파일을 통해 환경 설정도 수행한다.

📌 반면,

프로세스 관리나 메모리 관리는 **커널(Kernel)**이 수행하는 기능이며, 쉘은 그저 명령어를 전달할 뿐이다.

 


[정보시스템 구축관리]

✅ 문제 81

소프트웨어 생명주기 모델 중 나선형 모델(Spiral Model)과 관련한 설명으로 틀린 것은?

  1. 소프트웨어 개발 프로세스를 위험 관리(Risk Management) 측면에서 본 모델이다.
  2. 위험 분석(Risk Analysis)은 반복적인 개발 진행 후 주기의 마지막 단계에서 최종적으로 한 번 수행해야 한다. ⭐
  3. 시스템을 여러 부분으로 나누어 여러 번의 개발 주기를 거치면서 시스템이 완성된다.
  4. 요구사항이나 아키텍처를 이해하기 어렵다거나 중심이 되는 기술에 문제가 있는 경우 적합한 모델이다.

📘 해설:

나선형 모델은 반복적 개발 구조로 각 주기마다 위험 분석을 수행합니다. 한 번만 수행한다는 2번은 잘못된 설명입니다.


✅ 문제 82

정보시스템과 관련한 다음 설명에 해당하는 것은?

(장애 발생 시 자원을 인수하는 클러스터 기반 시스템)

  1. 고가용성 솔루션(HACMP) ⭐
  2. 점대점 연결 방식(Point-to-Point Mode)
  3. 스턱스넷(Stuxnet)
  4. 루팅(Rooting)

📘 해설:

HACMP는 IBM의 고가용성 솔루션으로, 하나의 시스템에 문제가 생기면 다른 시스템이 자동으로 자원을 인수해 서비스를 지속할 수 있게 합니다.


✅ 문제 83

스위치를 더미 허브처럼 동작하게 만드는 공격 기법은?

  1. Parsing
  2. LAN Tapping
  3. Switch Jamming ⭐
  4. FTP Flooding

📘 해설:

Switch Jamming은 위조된 MAC 주소를 다량 전송하여 스위치의 MAC 테이블을 포화시켜 일반 허브처럼 만들어버리는 공격입니다.


✅ 문제 84

다음 설명에 해당하는 스토리지 시스템은?

(서버에 직접 연결되어 네트워크를 통하지 않는 저장 장치)

  1. DAS ⭐
  2. NAS
  3. BSA
  4. NFC

📘 해설:

**DAS (Direct Attached Storage)**는 저장 장치가 서버에 직접 연결되는 구조로, 속도는 빠르지만 공유는 어려운 구조입니다.


✅ 문제 85

취약점 관리를 위해 일반적으로 수행하지 않는 작업은?

  1. 무결성 검사
  2. 응용 프로그램의 보안 설정 및 패치(Patch) 적용
  3. 중단 프로세스 및 닫힌 포트 위주로 확인 ⭐
  4. 불필요한 서비스 및 악성 프로그램의 확인과 제거

📘 해설:

취약점 관리는 열린 포트나 실행 중인 프로세스를 중심으로 수행합니다. 닫힌 포트는 이미 차단되었기에 취약점 위험이 낮습니다.


✅ 문제 86

V 모델에 대한 설명 중 틀린 것은?

  1. 요구 분석 및 설계단계를 거치지 않으며 항상 통합 테스트를 중심으로 V 형태를 이룬다. ⭐
  2. Perry에 의해 제안되었으며 세부적인 테스트 과정으로 구성되어 신뢰도 높은 시스템을 개발하는데 효과적이다.
  3. 개발 작업과 검증 작업 사이의 관계를 명확히 드러내 놓은 폭포수 모델의 변형이라고 볼 수 있다.
  4. 폭포수 모델이 산출물 중심이라면 V 모델은 작업과 결과의 검증에 초점을 둔다.

📘 해설:

V 모델은 요구 분석부터 설계까지 모두 포함하며, 각 개발 단계와 대응되는 테스트 단계가 병행됩니다.


✅ 문제 87

블루투스 공격과 설명이 올바르게 연결된 것은?

  1. 블루버그 - 파일 접근 (OPP 사용)
  2. 블루스나프 - 명함 스팸 공격
  3. 블루프린팅 - 블루투스 공격 장치의 검색 활동 ⭐
  4. 블루재킹 - 취약한 연결을 악용한 공격

📘 해설:

  • 블루프린팅: 블루투스 장비 검색
  • 블루스나프: 파일 무단 접근
  • 블루재킹: 익명 메시지 전송
  • 블루버그: 시스템 제어권 탈취

✅ 문제 88

다음 중 DoS 공격에 대한 설명으로 틀린 것은?

  1. Ping of Death는 큰 ICMP 패킷을 분할하여 전송해 시스템 다운을 유도한다.
  2. Smurf 공격은 멀티캐스트를 활용하여 공격 대상이 임의의 시스템에 패킷을 보내게 만든다. ⭐
  3. SYN Flooding은 가짜 요청으로 서버의 연결 큐를 마비시킨다.
  4. Land 공격은 출발지와 목적지 IP를 동일하게 만들어 시스템을 혼란시킨다.

📘 해설:

Smurf 공격은 멀티캐스트가 아니라 브로드캐스트를 사용해 네트워크 전체에 과부하를 유도하는 공격입니다.


✅ 문제 89

다음 설명에 해당하는 시스템은?

(공격자 유인을 위한 가상 시스템)

  1. Apache
  2. Hadoop
  3. Honeypot ⭐
  4. MapReduce

📘 해설:

Honeypot은 공격자를 유인해 행동을 분석하거나 차단하기 위한 허위 시스템입니다.


✅ 문제 90

다음 설명에 해당하는 IT 기술은?

(컨테이너 환경의 응용프로그램 배포 자동화)

  1. StackGuard
  2. Docker ⭐
  3. Cipher Container
  4. Scytale

📘 해설:

Docker는 컨테이너 기반 기술로, 애플리케이션의 배포와 실행을 자동화하는 오픈소스 플랫폼입니다.


문제 91

간트 차트(Gantt Chart)에 대한 설명으로 틀린 것은?

  1. 프로젝트를 이루는 소작업 별로 언제 시작되고 언제 끝나야 하는지를 한 눈에 볼 수 있도록 도와준다.
  2. 자원 배치 계획에 유용하게 사용된다.
  3. CPM 네트워크로부터 만드는 것이 가능하다.
  4. 수평 막대의 길이는 각 작업(Task)에 필요한 인원수를 나타낸다. ⭐

📘 해설:

간트 차트의 수평 막대는 작업의 기간(시간) 을 나타내며, 인원수와는 관계없다.


문제 92

Python 기반의 웹 크롤링(Web Crawling) 프레임워크로 옳은 것은?

  1. Li-fi
  2. Scrapy ⭐
  3. CrawlCat
  4. SBAS

📘 해설:

Scrapy는 Python으로 작성된 웹 크롤링 프레임워크로, 빠르고 확장성이 뛰어납니다.


문제 93

Secure 코딩에서 입력 데이터의 보안 약점과 관련한 설명으로 틀린 것은?

  1. SQL 삽입 : 사용자의 입력 값 등 외부 입력 값이 SQL 쿼리에 삽입되어 공격
  2. 크로스사이트 스크립트 : 검증되지 않은 외부 입력 값에 의해 브라우저에서 악의적인 코드가 실행
  3. 운영체제 명령어 삽입 : 운영체제 명령어 파라미터 입력 값이 적절한 사전검증을 거치지 않고 사용되어 공격자가 운영체제 명령어를 조작
  4. 자원 삽입 : 사용자가 내부 입력 값을 통해 시스템 내에 사용이 불가능한 자원을 지속적으로 입력함으로써 시스템에 과부하 발생 ⭐

📘 해설:

자원 삽입은 시스템 자원에 임의 접근이 핵심이며, 과부하 유발은 잘못된 설명입니다.


문제 94

Windows 파일 시스템인 FAT와 비교했을 때의 NTFS의 특징이 아닌 것은?

  1. 보안에 취약 ⭐
  2. 대용량 볼륨에 효율적
  3. 자동 압축 및 안정성
  4. 저용량 볼륨에서의 속도 저하

📘 해설:

NTFS는 FAT에 비해 보안이 우수하고, 대용량 및 안정성이 뛰어납니다.


문제 95

DES는 몇 비트의 암호화 알고리즘인가?

  1. 8
  2. 24
  3. 64 ⭐
  4. 132

📘 해설:

DES는 64비트 블록 암호화 알고리즘이며, 키는 실질적으로 56비트입니다.


문제 96

리눅스에서 생성된 파일 권한이 644일 경우 umask 값은?

  1. 022 ⭐
  2. 666
  3. 777
  4. 755

📘 해설:

기본 파일 권한은 666. 666 - 644 = 022이므로 umask는 022입니다.


문제 97

다음 내용이 설명하는 로그 파일은?

(성공한 로그인/로그아웃 정보 기록)

  1. tapping
  2. xtslog
  3. linuxer
  4. wtmp ⭐

📘 해설:

/var/log/wtmp는 성공한 로그인과 로그아웃 정보를 저장합니다. last 명령어로 확인 가능.


문제 98

상향식 비용 산정 기법 중 LOC(원시 코드 라인 수) 기법에서 예측치를 구하기 위해 사용하는 항목이 아닌 것은?

  1. 낙관치
  2. 기대치
  3. 비관치
  4. 모형치 ⭐

📘 해설:

LOC 기법은 낙관치, 비관치, 기대치 세 요소로 예측치를 계산합니다. 모형치는 관련 없습니다.


 

문제 99

OSI 7 Layer 전 계층의 프로토콜과 패킷 내부의 콘텐츠를 파악하여 침입 시도, 해킹 등을 탐지하고 트래픽을 조정하기 위한 패킷 분석 기술은?

  1. PLCP
  2. Traffic Distributor
  3. Packet Tree
  4. DPI(Deep Packet Inspection) ⭐

📘 해설:

DPI는 데이터 패킷의 내부 내용을 분석해 보안 위협 탐지와 트래픽 제어를 수행합니다.


문제 100

소프트웨어 개발 방법론의 테일러링(Tailoring)과 관련한 설명으로 틀린 것은?

  1. 프로젝트 수행 시 예상되는 변화를 배제하고 신속히 진행하여야 한다. ⭐
  2. 프로젝트에 최적화된 개발 방법론을 적용하기 위해 절차, 산출물 등을 적절히 변경하는 활동이다.
  3. 관리 측면에서의 목적 중 하나는 최단기간에 안정적인 프로젝트 진행을 위한 사전 위험을 식별하고 제거하는 것이다.
  4. 기술적 측면에서의 목적 중 하나는 프로젝트에 최적화된 기술 요소를 도입하여 프로젝트 특성에 맞는 최적의 기법과 도구를 사용하는 것이다.

📘 해설:

테일러링은 변화의 배제가 아니라, 변화에 유연하게 대응하기 위한 활동입니다. 1번은 반대 개념입니다.

 

반응형