정보처리기사
(2021-08-14 기출문제 - 하나씩 풀이)
총 100문제
답안 완료: 0문제
1. 요구사항 검증(Requirements Validation)과 관련한 설명으로 틀린 것은?
정답을 선택하세요
1.
요구사항이 고객이 정말 원하는 시스템을 제대로 정의하고 있는지 점검하는 과정이다.
2.
개발완료 이후에 문제점이 발견될 경우 막대한 재작업 비용이 들 수 있기 때문에 요구사항 검증은 매우 중요하다.
3.
요구사항이 실제 요구를 반영하는지, 문서상의 요구사항은 서로 상충되지 않는지 등을 점검한다.
4.
요구사항 검증 과정을 통해 모든 요구사항 문제를 발견할 수 있다.
정답: 4번
해설
아직 해설이 없습니다.
2. UML 모델에서 한 사물의 명세가 바뀌면 다른사물에 영향을 주며, 일반적으로 한 클래스가다른 클래스를 오퍼레이션의 매개변수로 사용하는 경우에 나타나는 관계는?
정답을 선택하세요
1.
Association
2.
Dependency
3.
Realization
4.
Generalization
정답: 2번
해설
[정답 근거] → 정답인 2번 'Dependency'는 한 클래스가 다른 클래스를 오퍼레이션의 매개변수로 사용할 때 나타나는 관계입니다. 이 경우, 한 클래스의 변경이 다른 클래스에 영향을 미치므로 의존성이 형성됩니다. 즉, A 클래스가 B 클래스를 매개변수로 사용할 경우, A 클래스는 B 클래스의 변화에 의존하게 됩니다.
[오답 해설] →
1. 'Association'은 두 클래스 간의 정적인 관계를 나타내며, 일반적으로 객체 간의 연결을 의미합니다. 하지만 이는 한 클래스의 변경이 다른 클래스에 영향을 주는 경우가 아닙니다.
3. 'Realization'은 인터페이스와 그 구현 클래스 간의 관계를 나타내며, 주로 상속과 관련된 개념입니다. 이는 매개변수 관계와는 무관합니다.
4. 'Generalization'은 상위 클래스와 하위 클래스 간의 관계를 나타내며, 이는 클래스 간의 계층 구조를 의미합니다. 매개변수로서의 관계와는 관련이 없습니다.
[학습 포인트] → UML에서의 다양한 관계를 이해하는 것은 객체지향 설계의 기초입니다. 특히 'Dependency'는 클래스 간의 상호작용을 이해하는 데 중요한 개념으로, 클래스의 변경이 다른 클래스에 미치는 영향을 분석하는 데 유용합니다.
[오답 해설] →
1. 'Association'은 두 클래스 간의 정적인 관계를 나타내며, 일반적으로 객체 간의 연결을 의미합니다. 하지만 이는 한 클래스의 변경이 다른 클래스에 영향을 주는 경우가 아닙니다.
3. 'Realization'은 인터페이스와 그 구현 클래스 간의 관계를 나타내며, 주로 상속과 관련된 개념입니다. 이는 매개변수 관계와는 무관합니다.
4. 'Generalization'은 상위 클래스와 하위 클래스 간의 관계를 나타내며, 이는 클래스 간의 계층 구조를 의미합니다. 매개변수로서의 관계와는 관련이 없습니다.
[학습 포인트] → UML에서의 다양한 관계를 이해하는 것은 객체지향 설계의 기초입니다. 특히 'Dependency'는 클래스 간의 상호작용을 이해하는 데 중요한 개념으로, 클래스의 변경이 다른 클래스에 미치는 영향을 분석하는 데 유용합니다.
3. 익스트림 프로그래밍 (XP)에 대한 설명으로 틀린 것은?
정답을 선택하세요
1.
빠른 개발을 위해 테스트를 수행하지 않는다.
2.
사용자의 요구사항은 언제든지 변할 수있다.
3.
고객과 직접 대면하며 요구사항을 이야기하기 위해 사용자 스토리(User Story)를 활용할 수 있다.
4.
기존의 방법론에 비해 실용성(Pragmatism)을 강조한 것이라고 볼 수있다.
정답: 1번
해설
아직 해설이 없습니다.
4. 소프트웨어 설계에서 사용되는 대표적인 추상화(Abstraction) 기법이 아닌 것은?
정답을 선택하세요
1.
자료 추상화
2.
제어 추상화
3.
과정 추상화
4.
강도 추상화
정답: 4번
해설
[정답 근거] → 4번 '강도 추상화'는 소프트웨어 설계에서 일반적으로 사용되는 추상화 기법이 아니며, 자료 추상화, 제어 추상화, 과정 추상화는 모두 소프트웨어 설계의 중요한 기법으로 널리 알려져 있습니다. 따라서 정답은 4번입니다.
[오답 해설] → 1번 '자료 추상화'는 데이터 구조와 관련된 개념으로, 복잡한 데이터 구조를 단순화하여 다루기 쉽게 만드는 기법입니다. 2번 '제어 추상화'는 프로그램의 흐름을 단순화하여 제어 구조를 이해하기 쉽게 만드는 방법입니다. 3번 '과정 추상화'는 특정 작업이나 기능을 수행하는 과정을 단순화하여 표현하는 기법입니다. 이 세 가지는 모두 소프트웨어 설계에서 중요한 역할을 합니다.
[관련 개념] → 추상화는 복잡한 시스템을 단순화하여 이해하고 관리하기 쉽게 만드는 기법으로, 소프트웨어 설계에서 필수적인 요소입니다. 자료, 제어, 과정 추상화는 각각 데이터, 프로그램 흐름, 작업 과정을 다루며, 소프트웨어의 품질과 유지보수성을 높이는 데 기여합니다.
[학습 포인트] → 소프트웨어 설계에서 사용되는 다양한 추상화 기법을 이해하고, 각 기법의 목적과 사용 사례를 명확히 구분하는 것이 중요합니다. 이를 통해 복잡한 시스템을 효과적으로 설계하고 관리할 수 있습니다.
[오답 해설] → 1번 '자료 추상화'는 데이터 구조와 관련된 개념으로, 복잡한 데이터 구조를 단순화하여 다루기 쉽게 만드는 기법입니다. 2번 '제어 추상화'는 프로그램의 흐름을 단순화하여 제어 구조를 이해하기 쉽게 만드는 방법입니다. 3번 '과정 추상화'는 특정 작업이나 기능을 수행하는 과정을 단순화하여 표현하는 기법입니다. 이 세 가지는 모두 소프트웨어 설계에서 중요한 역할을 합니다.
[관련 개념] → 추상화는 복잡한 시스템을 단순화하여 이해하고 관리하기 쉽게 만드는 기법으로, 소프트웨어 설계에서 필수적인 요소입니다. 자료, 제어, 과정 추상화는 각각 데이터, 프로그램 흐름, 작업 과정을 다루며, 소프트웨어의 품질과 유지보수성을 높이는 데 기여합니다.
[학습 포인트] → 소프트웨어 설계에서 사용되는 다양한 추상화 기법을 이해하고, 각 기법의 목적과 사용 사례를 명확히 구분하는 것이 중요합니다. 이를 통해 복잡한 시스템을 효과적으로 설계하고 관리할 수 있습니다.
5. 객체지향 설계에서 정보 은닉(Information Hiding)과 관련한 설명으로 틀린 것은?
정답을 선택하세요
1.
필요하지 않은 정보는 접근할 수 없도록 하여 한 모듈 또는 하부시스템이 다른 모듈의 구현에 영향을 받지 않게 설계되는것을 의미한다.
2.
모듈들 사이의 독립성을 유지시키는 데 도움이 된다.
3.
설계에서 은닉되어야 할 기본 정보로는 IP주소와 같은 물리적 코드, 상세 데이터 구조 등이 있다.
4.
모듈 내부의 자료 구조와 접근 동작들에만 수정을 국한하기 때문에 요구사항 등변화에 따른 수정이 불가능하다.
정답: 4번
해설
아직 해설이 없습니다.
6. 소프트웨어 공학에서 모델링 (Modeling)과 관련한 설명으로 틀린 것은?
정답을 선택하세요
1.
개발팀이 응용문제를 이해하는 데 도움을 줄 수 있다.
2.
유지보수 단계에서만 모델링 기법을 활용한다.
3.
개발될 시스템에 대하여 여러 분야의 엔지니어들이 공통된 개념을 공유하는 데 도움을 준다.
4.
절차적인 프로그램을 위한 자료흐름도는 프로세스 위주의 모델링 방법이다.
정답: 2번
해설
아직 해설이 없습니다.
7. 요구 분석(Requirement Analysis)에 대한 설명으로 틀린 것은?
정답을 선택하세요
1.
요구 분석은 소프트웨어 개발의 실제적인 첫 단계로 사용자의 요구에 대해 이해하는 단계라 할 수 있다.
2.
요구 추출(Requirement Elicitation)은 프로젝트 계획 단계에 정의한 문제의 범위 안에 있는 사용자의 요구를 찾는 단계이다.
3.
도메인 분석(Domain Analysis)은 요구에 대한 정보를 수집하고 배경을 분석하여 이를 토대로 모델링을 하게 된다.
4.
기능적(Functional) 요구에서 시스템 구축에대한 성능, 보안, 품질, 안정 등에 대한 요구사항을 도출한다.
정답: 4번
해설
아직 해설이 없습니다.
8. 클래스 다이어그램의 요소로 다음 설명에 해당하는 용어는?
정답을 선택하세요
1.
Instance
2.
Operation
3.
Item
4.
Hiding
정답: 2번
해설
아직 해설이 없습니다.
9. 분산 시스템을 위한 마스터-슬레이브(Master-Slave) 아키텍처에 대한 설명으로 틀린 것은?
정답을 선택하세요
1.
일반적으로 실시간 시스템에서 사용된다.
2.
마스터 프로세스는 일반적으로 연산, 통신, 조정을 책임진다.
3.
슬레이브 프로세스는 데이터 수집 기능을 수행할 수 없다.
4.
마스터 프로세스는 슬레이브 프로세스들을 제어할 수 있다.
정답: 3번
해설
[정답 근거] 3번은 "슬레이브 프로세스는 데이터 수집 기능을 수행할 수 없다"는 내용이 틀렸습니다. 슬레이브 프로세스는 일반적으로 데이터 수집 및 처리 기능을 수행하며, 마스터 프로세스의 지시에 따라 작업을 수행합니다.
[오답 해설] 1번은 마스터-슬레이브 아키텍처가 실시간 시스템에서 사용될 수 있는 경우가 많기 때문에 맞는 설명입니다. 2번은 마스터 프로세스가 연산, 통신, 조정을 책임지는 것이 일반적이므로 맞습니다. 4번은 마스터 프로세스가 슬레이브 프로세스를 제어하는 역할을 하므로 역시 맞는 설명입니다.
[관련 개념] 마스터-슬레이브 아키텍처는 분산 시스템에서 마스터 프로세스가 슬레이브 프로세스를 관리하고 조정하는 구조로, 슬레이브는 데이터 수집, 처리 및 작업 수행을 담당합니다. 이 구조는 데이터의 일관성을 유지하고 작업 분담을 통해 효율성을 높이는 데 유리합니다.
[학습 포인트] 마스터-슬레이브 아키텍처의 기본 개념과 각 프로세스의 역할을 이해하는 것이 중요합니다. 슬레이브 프로세스는 단순히 지시를 따르는 것이 아니라, 데이터 수집 및 처리를 수행할 수 있다는 점을 명확히 인식해야 합니다.
[오답 해설] 1번은 마스터-슬레이브 아키텍처가 실시간 시스템에서 사용될 수 있는 경우가 많기 때문에 맞는 설명입니다. 2번은 마스터 프로세스가 연산, 통신, 조정을 책임지는 것이 일반적이므로 맞습니다. 4번은 마스터 프로세스가 슬레이브 프로세스를 제어하는 역할을 하므로 역시 맞는 설명입니다.
[관련 개념] 마스터-슬레이브 아키텍처는 분산 시스템에서 마스터 프로세스가 슬레이브 프로세스를 관리하고 조정하는 구조로, 슬레이브는 데이터 수집, 처리 및 작업 수행을 담당합니다. 이 구조는 데이터의 일관성을 유지하고 작업 분담을 통해 효율성을 높이는 데 유리합니다.
[학습 포인트] 마스터-슬레이브 아키텍처의 기본 개념과 각 프로세스의 역할을 이해하는 것이 중요합니다. 슬레이브 프로세스는 단순히 지시를 따르는 것이 아니라, 데이터 수집 및 처리를 수행할 수 있다는 점을 명확히 인식해야 합니다.
10. 요구 사항 정의 및 분석·설계의 결과물을 표현하기 위한 모델링 과정에서 사용되는 다이어그램(Diagram)이 아닌 것은?
정답을 선택하세요
1.
Data Flow Diagram
2.
UML Diagram
3.
E-R Diagram
4.
AVL Diagram
정답: 4번
해설
[정답 근거] → 4번인 AVL Diagram은 요구 사항 정의 및 분석·설계의 결과물을 표현하기 위한 모델링 과정에서 사용되지 않는 다이어그램입니다. AVL은 균형 이진 탐색 트리를 나타내는 자료구조로, 소프트웨어 요구 사항 모델링과는 관련이 없습니다.
[오답 해설] →
1. Data Flow Diagram (DFD)은 시스템의 데이터 흐름을 시각적으로 표현하는 도구로, 요구 사항 분석에 널리 사용됩니다.
2. UML Diagram은 객체 지향 설계에서 사용되는 통합 모델링 언어로, 시스템의 구조와 동작을 표현하는 데 유용합니다.
3. E-R Diagram은 개체-관계 다이어그램으로, 데이터베이스 설계에서 개체와 그 관계를 나타내는 데 사용됩니다.
[관련 개념] → 요구 사항 정의 및 분석·설계 과정에서 모델링은 시스템의 기능과 구조를 시각적으로 표현하여 이해를 돕고, 개발자와 이해관계자 간의 소통을 원활하게 합니다. DFD, UML, E-R 다이어그램은 이러한 목적에 부합하는 도구입니다.
[학습 포인트] → 요구 사항 정의 및 분석·설계 과정에서 사용되는 다양한 다이어그램의 종류와 그 용도를 이해하는 것이 중요합니다. 각 다이어그램의 목적과 사용 사례를 명확히 알고 있어야 적절한 도구를 선택하여 효과적으로 시스템을 모델링할 수 있습니다.
[오답 해설] →
1. Data Flow Diagram (DFD)은 시스템의 데이터 흐름을 시각적으로 표현하는 도구로, 요구 사항 분석에 널리 사용됩니다.
2. UML Diagram은 객체 지향 설계에서 사용되는 통합 모델링 언어로, 시스템의 구조와 동작을 표현하는 데 유용합니다.
3. E-R Diagram은 개체-관계 다이어그램으로, 데이터베이스 설계에서 개체와 그 관계를 나타내는 데 사용됩니다.
[관련 개념] → 요구 사항 정의 및 분석·설계 과정에서 모델링은 시스템의 기능과 구조를 시각적으로 표현하여 이해를 돕고, 개발자와 이해관계자 간의 소통을 원활하게 합니다. DFD, UML, E-R 다이어그램은 이러한 목적에 부합하는 도구입니다.
[학습 포인트] → 요구 사항 정의 및 분석·설계 과정에서 사용되는 다양한 다이어그램의 종류와 그 용도를 이해하는 것이 중요합니다. 각 다이어그램의 목적과 사용 사례를 명확히 알고 있어야 적절한 도구를 선택하여 효과적으로 시스템을 모델링할 수 있습니다.
11. 객체지향의 주요 개념에 대한 설명으로 틀린 것은?
정답을 선택하세요
1.
캡슐화는 상위클래스에서 속성이나 연산을 전달받아 새로운 형태의 클래스로 확장하여 사용하는 것을 의미한다.
2.
객체는 실세계에 존재하거나 생각할 수 있는 것을 말한다.
3.
클래스는 하나 이상의 유사한 객체들을 묶어 공통된 특성을 표현한 것이다.
4.
다형성은 상속받은 여러 개의 하위 객체들이 다른 형태의 특성을 갖는 객체로 이용될 수 있는 성질이다.
정답: 1번
해설
아직 해설이 없습니다.
12. 사용자 인터페이스(User Interface)에 대한 설명으로 틀린 것은?
정답을 선택하세요
1.
사용자와 시스템이 정보를 주고받는 상호작용이 잘 이루어지도록 하는 장치나 소프트웨어를 의미한다.
2.
편리한 유지보수를 위해 개발자 중심으로 설계되어야 한다.
3.
배우기가 용이하고 쉽게 사용할 수 있도록 만들어져야 한다.
4.
사용자 요구사항이 UI에 반영될 수 있도록 구성해야 한다.
정답: 2번
해설
아직 해설이 없습니다.
13. GoF(Gang of Four) 디자인 패턴과 관련한 설명으로 틀린 것은?
정답을 선택하세요
1.
디자인 패턴을 목적(Purpose)으로 분류할 때 생성, 구조, 행위로 분류할 수 있다.
2.
Strategy 패턴은 대표적인 구조 패턴으로 인스턴스를 복제하여 사용하는 구조를 말한다.
3.
행위 패턴은 클래스나 객체들이 상호작용하는 방법과 책임을 분산하는 방법을 정의한다.
4.
Singleton 패턴은 특정 클래스의 인스턴스가 오직 하나임을 보장하고, 이 인스턴스에 대한 접근 방법을 제공한다.
정답: 2번
해설
[정답 근거] → 2번은 Strategy 패턴을 잘못 설명하고 있습니다. Strategy 패턴은 객체의 행위를 캡슐화하여 동적으로 교체할 수 있도록 하는 행위 패턴입니다. 인스턴스를 복제하여 사용하는 것이 아니라, 서로 다른 알고리즘을 제공하는 전략 객체를 사용하여 클라이언트가 선택할 수 있게 합니다.
[오답 해설] → 1번은 디자인 패턴의 분류 방법을 올바르게 설명하고 있으며, 3번은 행위 패턴의 정의를 정확히 설명하고 있습니다. 4번은 Singleton 패턴의 목적과 기능을 정확히 설명하고 있습니다. 따라서 2번만이 잘못된 설명입니다.
[관련 핵심 개념] → 디자인 패턴은 소프트웨어 설계에서 자주 발생하는 문제를 해결하기 위한 일반적인 해결책입니다. GoF 디자인 패턴은 크게 생성 패턴, 구조 패턴, 행위 패턴으로 나뉘며, 각 패턴은 특정한 문제를 해결하기 위한 고유한 방식과 목적을 가지고 있습니다.
[학습 포인트] → 디자인 패턴의 종류와 각 패턴의 목적 및 특징을 명확히 이해하는 것이 중요합니다. 특히 Strategy 패턴과 같은 행위 패턴의 개념을 정확히 파악하여, 올바른 상황에서 적절하게 적용할 수 있어야 합니다.
[오답 해설] → 1번은 디자인 패턴의 분류 방법을 올바르게 설명하고 있으며, 3번은 행위 패턴의 정의를 정확히 설명하고 있습니다. 4번은 Singleton 패턴의 목적과 기능을 정확히 설명하고 있습니다. 따라서 2번만이 잘못된 설명입니다.
[관련 핵심 개념] → 디자인 패턴은 소프트웨어 설계에서 자주 발생하는 문제를 해결하기 위한 일반적인 해결책입니다. GoF 디자인 패턴은 크게 생성 패턴, 구조 패턴, 행위 패턴으로 나뉘며, 각 패턴은 특정한 문제를 해결하기 위한 고유한 방식과 목적을 가지고 있습니다.
[학습 포인트] → 디자인 패턴의 종류와 각 패턴의 목적 및 특징을 명확히 이해하는 것이 중요합니다. 특히 Strategy 패턴과 같은 행위 패턴의 개념을 정확히 파악하여, 올바른 상황에서 적절하게 적용할 수 있어야 합니다.
14. 애자일 개발 방법론과 관련한 설명으로 틀린 것은?
정답을 선택하세요
1.
빠른 릴리즈를 통해 문제점을 빠르게 파악할 수 있다.
2.
정확한 결과 도출을 위해 계획 수립과 문서화에 중점을 둔다.
3.
고객과의 의사소통을 중요하게 생각한다.
4.
진화하는 요구사항을 수용하는데 적합하다.
정답: 2번
해설
아직 해설이 없습니다.
15. 럼바우(Rumbaugh)의 객체지향 분석 기법 중 자료 흐름도(DFD)를 주로 이용하는 것은?
정답을 선택하세요
1.
기능 모델링
2.
동적 모델링
3.
객체 모델링
4.
정적 모델링
정답: 1번
해설
[정답 근거] → 럼바우의 객체지향 분석 기법에서 자료 흐름도(DFD)는 시스템의 기능을 모델링하는 데 주로 사용됩니다. 기능 모델링은 시스템이 수행해야 할 기능과 그 기능 간의 관계를 시각적으로 표현하는 방법으로, DFD는 이러한 기능을 명확하게 나타내는 도구입니다.
[오답 해설] →
2. 동적 모델링: 동적 모델링은 시스템의 상태 변화와 시간에 따른 동작을 표현하는 데 중점을 둡니다. DFD는 주로 기능을 표현하므로 동적 모델링과는 관련이 없습니다.
3. 객체 모델링: 객체 모델링은 시스템의 객체와 그들 간의 관계를 정의하는 데 초점을 맞춥니다. DFD는 객체의 구조보다는 기능을 나타내므로 적합하지 않습니다.
4. 정적 모델링: 정적 모델링은 시스템의 정적인 구조를 표현하는 데 사용됩니다. DFD는 기능 흐름을 나타내므로 정적 모델링과는 다릅니다.
[관련 개념] → 자료 흐름도(DFD)는 시스템의 기능을 시각적으로 표현하는 도구로, 입력, 처리, 출력의 흐름을 나타냅니다. 럼바우의 객체지향 분석 기법은 이러한 DFD를 통해 시스템의 요구사항을 명확히 하고, 기능 간의 관계를 이해하는 데 도움을 줍니다.
[학습 포인트] → 기능 모델링에서 자료 흐름도(DFD)의 역할을 이해하고, 각 모델링 기법의 차이점을 명확히 구분하는 것이 중요합니다. 이를 통해 시스템 분석 및 설계 과정에서 적절한 도구를 선택할 수 있습니다.
[오답 해설] →
2. 동적 모델링: 동적 모델링은 시스템의 상태 변화와 시간에 따른 동작을 표현하는 데 중점을 둡니다. DFD는 주로 기능을 표현하므로 동적 모델링과는 관련이 없습니다.
3. 객체 모델링: 객체 모델링은 시스템의 객체와 그들 간의 관계를 정의하는 데 초점을 맞춥니다. DFD는 객체의 구조보다는 기능을 나타내므로 적합하지 않습니다.
4. 정적 모델링: 정적 모델링은 시스템의 정적인 구조를 표현하는 데 사용됩니다. DFD는 기능 흐름을 나타내므로 정적 모델링과는 다릅니다.
[관련 개념] → 자료 흐름도(DFD)는 시스템의 기능을 시각적으로 표현하는 도구로, 입력, 처리, 출력의 흐름을 나타냅니다. 럼바우의 객체지향 분석 기법은 이러한 DFD를 통해 시스템의 요구사항을 명확히 하고, 기능 간의 관계를 이해하는 데 도움을 줍니다.
[학습 포인트] → 기능 모델링에서 자료 흐름도(DFD)의 역할을 이해하고, 각 모델링 기법의 차이점을 명확히 구분하는 것이 중요합니다. 이를 통해 시스템 분석 및 설계 과정에서 적절한 도구를 선택할 수 있습니다.
16. 순차 다이어그램(Sequence Diagram)과 관련한 설명으로 틀린 것은?
정답을 선택하세요
1.
객체들의 상호 작용을 나타내기 위해 사용한다.
2.
시간의 흐름에 따라 객체들이 주고 받는 메시지의 전달 과정을 강조한다.
3.
동적 다이어그램보다는 정적 다이어그램에 가깝다.
4.
교류 다이어그램(Interaction Diagram)의 한 종류로 볼 수 있다.
정답: 3번
해설
아직 해설이 없습니다.
17. 객체지향 분석 기법과 관련한 설명으로 틀린것은?
정답을 선택하세요
1.
동적 모델링 기법이 사용될 수 있다.
2.
기능 중심으로 시스템을 파악하며 순차적인처리가 중요시되는 하향식(Top-down)방식으로 볼 수 있다.
3.
데이터와 행위를 하나로 묶어 객체를 정의내리고 추상화시키는 작업이라 할 수 있다.
4.
코드 재사용에 의한 프로그램 생산성 향상 및 요구에 따른 시스템의 쉬운 변경이 가능하다.
정답: 2번
해설
아직 해설이 없습니다.
18. 대표적으로 DOS 및 Unix 등의 운영체제에서조작을 위해 사용하던 것으로, 정해진 명령문자열을 입력하여 시스템을 조작하는 사용자인터페이스(User Interface)는?
정답을 선택하세요
1.
GUI(Graphical User Interface)
2.
CLI(Command Line Interface)
3.
CUI(Cell User Interface)
4.
MUI(Mobile User Interface)
정답: 2번
해설
아직 해설이 없습니다.
19. 분산 시스템에서의 미들웨어 (Middleware)와 관련한 설명으로 틀린 것은?
정답을 선택하세요
1.
분산 시스템에서 다양한 부분을 관리하고 통신하며 데이터를 교환하게 해주는소프트웨어로 볼 수 있다.
2.
위치 투명성(Location Transparency)을 제공한다.
3.
분산 시스템의 여러 컴포넌트가 요구하는 재사용가능한 서비스의 구현을 제공한다.
4.
애플리케이션과 사용자 사이에서만 분산서비스를 제공한다.
정답: 4번
해설
아직 해설이 없습니다.
20. 소프트웨어 아키텍처와 관련한 설명으로 틀린것은?
정답을 선택하세요
1.
파이프 필터 아키텍처에서 데이터는 파이프를 통해 양방향으로 흐르며, 필터 이동 시 오버헤드가 발생하지 않는다.
2.
외부에서 인식할 수 있는 특성이 담긴 소프트웨어의 골격이 되는 기본 구조로 볼수 있다.
3.
데이터 중심 아키텍처는 공유 데이터저장소를 통해 접근자 간의 통신이 이루어지므로 각 접근자의 수정과 확장이 용이하다.
4.
이해 관계자들의 품질 요구사항을 반영하여 품질 속성을 결정한다.
정답: 1번
해설
[정답 근거] 1번 설명에서 "데이터는 파이프를 통해 양방향으로 흐르며"라는 부분이 틀렸습니다. 파이프 필터 아키텍처는 데이터가 한 방향으로 흐르는 구조이며, 필터 이동 시 오버헤드가 발생할 수 있습니다. 필터 간의 데이터 전송은 처리 지연을 초래할 수 있기 때문입니다.
[오답 해설] 2번, 3번, 4번은 모두 소프트웨어 아키텍처의 특성을 올바르게 설명하고 있습니다. 2번은 소프트웨어의 기본 구조를 설명하며, 3번은 데이터 중심 아키텍처의 특징을 잘 나타내고 있습니다. 4번은 품질 속성을 이해 관계자 요구사항에 따라 결정하는 과정을 설명하고 있습니다.
[관련 개념] 소프트웨어 아키텍처는 시스템의 구조와 구성 요소 간의 관계를 정의하는 중요한 개념입니다. 파이프 필터 아키텍처는 데이터 흐름을 필터를 통해 처리하는 방식으로, 주로 스트림 처리에 사용됩니다. 데이터 중심 아키텍처는 공유 데이터 저장소를 통해 여러 구성 요소가 상호작용하는 방식입니다.
[학습 포인트] 소프트웨어 아키텍처의 다양한 유형과 그 특징을 이해하는 것이 중요합니다. 각 아키텍처의 장단점을 파악하고, 특정 요구사항에 맞는 아키텍처를 선택하는 능력을 기르는 것이 필요합니다.
[오답 해설] 2번, 3번, 4번은 모두 소프트웨어 아키텍처의 특성을 올바르게 설명하고 있습니다. 2번은 소프트웨어의 기본 구조를 설명하며, 3번은 데이터 중심 아키텍처의 특징을 잘 나타내고 있습니다. 4번은 품질 속성을 이해 관계자 요구사항에 따라 결정하는 과정을 설명하고 있습니다.
[관련 개념] 소프트웨어 아키텍처는 시스템의 구조와 구성 요소 간의 관계를 정의하는 중요한 개념입니다. 파이프 필터 아키텍처는 데이터 흐름을 필터를 통해 처리하는 방식으로, 주로 스트림 처리에 사용됩니다. 데이터 중심 아키텍처는 공유 데이터 저장소를 통해 여러 구성 요소가 상호작용하는 방식입니다.
[학습 포인트] 소프트웨어 아키텍처의 다양한 유형과 그 특징을 이해하는 것이 중요합니다. 각 아키텍처의 장단점을 파악하고, 특정 요구사항에 맞는 아키텍처를 선택하는 능력을 기르는 것이 필요합니다.
21. 테스트를 목적에 따라 분류했을 때,강도(Stress) 테스트에 대한 설명으로 옳은것은?
정답을 선택하세요
1.
시스템에 고의로 실패를 유도하고 시스템이정상적으로 복귀하는지 테스트한다.
2.
시스템에 과다 정보량을 부과하여 과부하 시에도 시스템이 정상적으로 작동되는지를 테스트한다.
3.
사용자의 이벤트에 시스템이 응답하는 시간,특정 시간 내에 처리하는 업무량, 사용자 요구에 시스템이 반응하는 속도 등을 테스트한다.
4.
부당하고 불법적인 침입을 시도하여 보안시스템이 불법적인 침투를 잘 막아내는지 테스트한다.
정답: 2번
해설
[정답 근거] 2번은 강도(Stress) 테스트의 정의에 부합합니다. 강도 테스트는 시스템에 과다한 정보량이나 부하를 주어 시스템이 정상적으로 작동할 수 있는지를 확인하는 과정입니다. 이는 시스템의 한계를 파악하고, 과부하 상황에서도 안정성을 유지하는지를 점검하는 데 목적이 있습니다.
[오답 해설]
1번은 시스템에 고의로 실패를 유도하는 것으로, 이는 '내구성 테스트' 또는 '복구 테스트'에 해당합니다. 강도 테스트와는 다른 목적을 가지고 있습니다.
3번은 시스템의 응답 시간과 처리량을 측정하는 '성능 테스트'에 해당하며, 강도 테스트의 정의와는 차이가 있습니다.
4번은 보안 시스템의 취약점을 점검하는 '침투 테스트'에 해당하며, 강도 테스트와는 관련이 없습니다.
[관련 개념] 강도 테스트는 성능 테스트의 한 종류로, 시스템이 극한의 부하를 견딜 수 있는지를 평가합니다. 이를 통해 시스템의 안정성과 신뢰성을 높이는 데 기여합니다.
[학습 포인트] 강도 테스트의 목적과 정의를 명확히 이해하고, 다른 테스트 유형(내구성 테스트, 성능 테스트, 침투 테스트)과의 차이를 구분하는 것이 중요합니다. 이를 통해 시스템의 성능을 종합적으로 평가하고 개선할 수 있습니다.
[오답 해설]
1번은 시스템에 고의로 실패를 유도하는 것으로, 이는 '내구성 테스트' 또는 '복구 테스트'에 해당합니다. 강도 테스트와는 다른 목적을 가지고 있습니다.
3번은 시스템의 응답 시간과 처리량을 측정하는 '성능 테스트'에 해당하며, 강도 테스트의 정의와는 차이가 있습니다.
4번은 보안 시스템의 취약점을 점검하는 '침투 테스트'에 해당하며, 강도 테스트와는 관련이 없습니다.
[관련 개념] 강도 테스트는 성능 테스트의 한 종류로, 시스템이 극한의 부하를 견딜 수 있는지를 평가합니다. 이를 통해 시스템의 안정성과 신뢰성을 높이는 데 기여합니다.
[학습 포인트] 강도 테스트의 목적과 정의를 명확히 이해하고, 다른 테스트 유형(내구성 테스트, 성능 테스트, 침투 테스트)과의 차이를 구분하는 것이 중요합니다. 이를 통해 시스템의 성능을 종합적으로 평가하고 개선할 수 있습니다.
22. 다음 자료를 버블 정렬을 이용하여오름차순으로 정렬할 경우 PASS 3의 결과는?
정답을 선택하세요
1.
6, 3, 5, 7, 9
2.
3, 5, 6, 7, 9
3.
6, 7, 3, 5, 9
4.
3, 5, 9, 6, 7
정답: 2번
해설
아직 해설이 없습니다.
23. 다음 그래프에서 정점 A를 선택하여 깊이우선탐색(DFS)으로 운행한 결과는?
정답을 선택하세요
1.
ABECDFG
2.
ABECFDG
3.
ABCDEFG
4.
ABEFGCD
정답: 4번
해설
아직 해설이 없습니다.
24. 다음 설명에 부합하는 용어로 옳은 것은?
정답을 선택하세요
1.
통합 프로그램
2.
저장소
3.
모듈
4.
데이터
정답: 3번
해설
아직 해설이 없습니다.
25. 테스트 드라이버(Test Driver)에 대한 설명으로 틀린 것은?
정답을 선택하세요
1.
시험대상 모듈을 호출하는 간이 소프트웨어이다.
2.
필요에 따라 매개 변수를 전달하고 모듈을 수행한 후의 결과를 보여줄 수 있다.
3.
상향식 통합 테스트에서 사용된다.
4.
테스트 대상 모듈이 호출하는 하위 모듈의 역할을 한다.
정답: 4번
해설
[정답 근거] → 4번은 "테스트 대상 모듈이 호출하는 하위 모듈의 역할을 한다"는 설명이 틀렸습니다. 테스트 드라이버는 시험대상 모듈을 호출하는 소프트웨어로, 하위 모듈의 역할을 하지 않으며, 오히려 상위 모듈을 테스트하기 위한 도구입니다.
[오답 해설] → 1번, 2번, 3번은 모두 테스트 드라이버의 기능과 용도를 올바르게 설명하고 있습니다. 1번은 테스트 드라이버가 시험대상 모듈을 호출하는 간이 소프트웨어라는 점을 강조하고, 2번은 매개 변수를 전달하고 결과를 보여줄 수 있는 기능을 설명합니다. 3번은 테스트 드라이버가 상향식 통합 테스트에서 사용된다는 점을 정확히 지적하고 있습니다.
[관련 개념] → 테스트 드라이버는 소프트웨어 테스트에서 상위 모듈을 테스트하기 위해 하위 모듈을 대신 호출하는 역할을 하며, 상향식 통합 테스트에서 자주 사용됩니다. 이는 모듈 간의 상호작용을 검증하는 데 중요한 도구입니다.
[학습 포인트] → 테스트 드라이버의 역할과 기능을 명확히 이해하는 것이 중요합니다. 특히, 상향식 통합 테스트에서의 활용과 하위 모듈과의 관계를 구분할 수 있어야 합니다. 이를 통해 소프트웨어 테스트의 전반적인 이해도를 높일 수 있습니다.
[오답 해설] → 1번, 2번, 3번은 모두 테스트 드라이버의 기능과 용도를 올바르게 설명하고 있습니다. 1번은 테스트 드라이버가 시험대상 모듈을 호출하는 간이 소프트웨어라는 점을 강조하고, 2번은 매개 변수를 전달하고 결과를 보여줄 수 있는 기능을 설명합니다. 3번은 테스트 드라이버가 상향식 통합 테스트에서 사용된다는 점을 정확히 지적하고 있습니다.
[관련 개념] → 테스트 드라이버는 소프트웨어 테스트에서 상위 모듈을 테스트하기 위해 하위 모듈을 대신 호출하는 역할을 하며, 상향식 통합 테스트에서 자주 사용됩니다. 이는 모듈 간의 상호작용을 검증하는 데 중요한 도구입니다.
[학습 포인트] → 테스트 드라이버의 역할과 기능을 명확히 이해하는 것이 중요합니다. 특히, 상향식 통합 테스트에서의 활용과 하위 모듈과의 관계를 구분할 수 있어야 합니다. 이를 통해 소프트웨어 테스트의 전반적인 이해도를 높일 수 있습니다.
26. 다음 중 선형 구조로만 묶인 것은?
정답을 선택하세요
1.
스택, 트리
2.
큐, 데크
3.
큐, 그래프
4.
리스트, 그래프
정답: 2번
해설
[정답 근거] → 2번인 "큐, 데크"는 모두 선형 구조입니다. 큐는 FIFO(First In First Out) 방식으로 데이터를 처리하며, 데크(Deque)는 양쪽 끝에서 삽입과 삭제가 가능한 선형 구조입니다. 이들은 모두 일렬로 데이터를 저장하고 처리하는 방식이기 때문에 선형 구조로 묶입니다.
[오답 해설] →
1번 "스택, 트리": 스택은 선형 구조이지만, 트리는 비선형 구조입니다. 트리는 계층적 관계를 가지므로 선형 구조로 묶일 수 없습니다.
3번 "큐, 그래프": 큐는 선형 구조이지만, 그래프는 비선형 구조로 여러 노드가 서로 연결된 형태입니다. 따라서 선형 구조가 아닙니다.
4번 "리스트, 그래프": 리스트는 선형 구조이지만, 그래프는 비선형 구조입니다. 리스트는 순차적으로 데이터를 저장하지만, 그래프는 복잡한 관계를 나타냅니다.
[관련 개념] → 선형 구조는 데이터가 일렬로 배열되는 구조를 의미하며, 대표적인 예로 스택, 큐, 리스트가 있습니다. 반면 비선형 구조는 데이터 간의 관계가 계층적이거나 복잡한 형태를 가지며, 트리와 그래프가 이에 해당합니다.
[학습 포인트] → 선형 구조와 비선형 구조의 차이를 이해하고, 각 데이터 구조의 특성을 명확히 구분하는 것이 중요합니다. 이를 통해 다양한 알고리즘과 데이터 처리 방법을 효과적으로 활용할 수 있습니다.
[오답 해설] →
1번 "스택, 트리": 스택은 선형 구조이지만, 트리는 비선형 구조입니다. 트리는 계층적 관계를 가지므로 선형 구조로 묶일 수 없습니다.
3번 "큐, 그래프": 큐는 선형 구조이지만, 그래프는 비선형 구조로 여러 노드가 서로 연결된 형태입니다. 따라서 선형 구조가 아닙니다.
4번 "리스트, 그래프": 리스트는 선형 구조이지만, 그래프는 비선형 구조입니다. 리스트는 순차적으로 데이터를 저장하지만, 그래프는 복잡한 관계를 나타냅니다.
[관련 개념] → 선형 구조는 데이터가 일렬로 배열되는 구조를 의미하며, 대표적인 예로 스택, 큐, 리스트가 있습니다. 반면 비선형 구조는 데이터 간의 관계가 계층적이거나 복잡한 형태를 가지며, 트리와 그래프가 이에 해당합니다.
[학습 포인트] → 선형 구조와 비선형 구조의 차이를 이해하고, 각 데이터 구조의 특성을 명확히 구분하는 것이 중요합니다. 이를 통해 다양한 알고리즘과 데이터 처리 방법을 효과적으로 활용할 수 있습니다.
27. 다음은 스택의 자료 삭제 알고리즘이다. ⓐ에 들어 갈 내용으로 옳은 것은? (단, Top: 스택포인터, S: 스택의 이름)
정답을 선택하세요
1.
Overflow
2.
Top = Top + 1
3.
Underflow
4.
Top = Top
정답: 3번
해설
아직 해설이 없습니다.
28. 제품 소프트웨어의 사용자 매뉴얼 작성절차로 (가)~(다)와 [보기]의 기호를 바르게 연결한 것은?
정답을 선택하세요
1.
(가)-㉠, (나)-㉡, (다)-㉢
2.
(가)-㉢, (나)-㉡, (다)-㉠
3.
(가)-㉠, (나)-㉢, (다)-㉡
4.
(가)-㉢, (나)-㉠, (다)-㉡
정답: 2번
해설
아직 해설이 없습니다.
29. 순서가 A, B, C, D로 정해진 입력 자료를 스택에 입력한 후 출력한 결과로 불가능한 것은?
정답을 선택하세요
1.
D, C, B, A
2.
B, C, D, A
3.
C, B, A, D
4.
D, B, C, A
정답: 4번
해설
아직 해설이 없습니다.
30. 소프트웨어 테스트에서 검증(Verification)과 확인 (Validation)에 대한 설명으로 틀린 것은?
정답을 선택하세요
1.
소프트웨어 테스트에서 검증과 확인을 구별하면 찾고자 하는 결함 유형을 명확하게 하는 데 도움이 된다.
2.
검증은 소프트웨어 개발 과정을 테스트하는 것이고, 확인은 소프트웨어 결과를 테스트 하는 것이다.
3.
검증은 작업 제품이 요구 명세의 기능, 비기능 요구사항을 얼마나 잘 준수하는지 측정하는 작업이다.
4.
검증은 작업 제품이 사용자의 요구에 적합한지 측정하며, 확인은 작업 제품이 개발자의 기대를 충족시키는지를 측정한다.
정답: 4번
해설
아직 해설이 없습니다.
31. 개별 모듈을 시험하는 것으로 모듈이 정확하게 구현되었는지, 예정한 기능이 제대로 수행되는지를 점검하는 것이 주요 목적인 테스트는?
정답을 선택하세요
1.
통합 테스트(Integration Test)
2.
단위 테스트(Unit Test)
3.
시스템 테스트(System Test)
4.
인수 테스트(Acceptance Test)
정답: 2번
해설
[정답 근거] → 단위 테스트(Unit Test)는 개별 모듈이나 함수가 정확하게 구현되었는지, 그리고 예정한 기능이 제대로 수행되는지를 점검하는 테스트입니다. 이는 개발자가 작성한 코드의 작은 단위가 올바르게 작동하는지를 확인하는 과정으로, 주로 개발 초기 단계에서 수행됩니다.
[오답 해설] →
1. 통합 테스트(Integration Test): 여러 모듈이 결합된 후, 이들 간의 상호작용을 검증하는 테스트로, 개별 모듈의 기능을 점검하는 것이 아닙니다.
3. 시스템 테스트(System Test): 전체 시스템이 요구사항을 충족하는지를 검증하는 테스트로, 개별 모듈이 아닌 전체 시스템의 동작을 확인합니다.
4. 인수 테스트(Acceptance Test): 최종 사용자가 시스템을 수용할 수 있는지를 검증하는 테스트로, 개발자가 아닌 사용자의 관점에서 수행됩니다.
[관련 개념] → 소프트웨어 테스트는 개발 과정에서 코드의 품질을 보장하기 위해 필수적인 과정입니다. 단위 테스트는 테스트 자동화와 코드 리팩토링을 용이하게 하여 개발 효율성을 높이는 데 기여합니다.
[학습 포인트] → 단위 테스트는 소프트웨어 개발의 기초적인 부분으로, 각 모듈의 기능을 독립적으로 검증하는 것이 중요합니다. 이를 통해 초기 버그를 조기에 발견하고 수정할 수 있어, 전체 시스템의 품질을 향상시킬 수 있습니다.
[오답 해설] →
1. 통합 테스트(Integration Test): 여러 모듈이 결합된 후, 이들 간의 상호작용을 검증하는 테스트로, 개별 모듈의 기능을 점검하는 것이 아닙니다.
3. 시스템 테스트(System Test): 전체 시스템이 요구사항을 충족하는지를 검증하는 테스트로, 개별 모듈이 아닌 전체 시스템의 동작을 확인합니다.
4. 인수 테스트(Acceptance Test): 최종 사용자가 시스템을 수용할 수 있는지를 검증하는 테스트로, 개발자가 아닌 사용자의 관점에서 수행됩니다.
[관련 개념] → 소프트웨어 테스트는 개발 과정에서 코드의 품질을 보장하기 위해 필수적인 과정입니다. 단위 테스트는 테스트 자동화와 코드 리팩토링을 용이하게 하여 개발 효율성을 높이는 데 기여합니다.
[학습 포인트] → 단위 테스트는 소프트웨어 개발의 기초적인 부분으로, 각 모듈의 기능을 독립적으로 검증하는 것이 중요합니다. 이를 통해 초기 버그를 조기에 발견하고 수정할 수 있어, 전체 시스템의 품질을 향상시킬 수 있습니다.
32. 형상 관리의 개념과 절차에 대한 설명으로 틀린 것은?
정답을 선택하세요
1.
형상 식별은 형상 관리 계획을 근거로 형상관리의 대상이 무엇인지 식별하는 과정이다.
2.
형상 관리를 통해 가시성과 추적성을 보장함으로써 소프트웨어의 생산성과 품질을 높일 수 있다.
3.
형상 통제 과정에서는 형상 목록의 변경 요구를 즉시 수용 및 반영해야 한다.
4.
형상 감사는 형상 관리 계획대로 형상관리가 진행되고 있는지, 형상 항목의 변경이 요구 사항에 맞도록 제대로 이뤄졌는지 등을 살펴보는 활동이다.
정답: 3번
해설
아직 해설이 없습니다.
33. 소스코드 정적 분석(Static Analysis)에 대한 설명으로 틀린 것은?
정답을 선택하세요
1.
소스 코드를 실행시키지 않고 분석한다.
2.
코드에 있는 오류나 잠재적인 오류를 찾아내기 위한 활동이다.
3.
하드웨어적인 방법으로만 코드 분석이 가능하다.
4.
자료 흐름이나 논리 흐름을 분석하여 비정상적인 패턴을 찾을 수 있다.
정답: 3번
해설
아직 해설이 없습니다.
34. 소프트웨어 개발 활동을 수행함에 있어서 시스템이 고장(Failure)을 일으키게 하며, 오류(Error)가 있는 경우 발생하는 것은?
정답을 선택하세요
1.
Fault
2.
Testcase
3.
Mistake
4.
Inspection
정답: 1번
해설
[정답 근거] → 소프트웨어 개발에서 "Fault"는 시스템이 고장(Failure)을 일으키게 하는 원인으로, 코드 내의 결함이나 오류를 의미합니다. Fault가 존재할 경우, 시스템이 정상적으로 작동하지 않을 수 있으며, 이는 고장으로 이어질 수 있습니다. 따라서 정답은 1번 "Fault"입니다.
[오답 해설] →
2. Testcase: 테스트 케이스는 소프트웨어의 특정 기능이나 성능을 검증하기 위해 설계된 테스트의 집합으로, 고장이나 오류를 발생시키는 것이 아니라 이를 확인하기 위한 도구입니다.
3. Mistake: 실수는 개발자가 의도하지 않게 잘못된 코드를 작성하는 것을 의미하지만, 이는 직접적으로 시스템의 고장을 발생시키는 원인이 아닙니다.
4. Inspection: 검토는 소프트웨어의 품질을 높이기 위한 과정으로, 결함을 발견하기 위한 방법이지만, 고장을 일으키는 원인과는 관련이 없습니다.
[관련 개념] → 소프트웨어 품질 보증에서 "Fault", "Error", "Failure"는 서로 다른 개념입니다. Fault는 코드 내의 결함, Error는 실행 중에 발생하는 문제, Failure는 시스템이 기대한 대로 작동하지 않는 상태를 의미합니다.
[학습 포인트] → 소프트웨어 개발에서 Fault, Error, Failure의 차이를 이해하는 것이 중요합니다. 이를 통해 결함을 조기에 발견하고, 시스템의 품질을 향상시킬 수 있습니다.
[오답 해설] →
2. Testcase: 테스트 케이스는 소프트웨어의 특정 기능이나 성능을 검증하기 위해 설계된 테스트의 집합으로, 고장이나 오류를 발생시키는 것이 아니라 이를 확인하기 위한 도구입니다.
3. Mistake: 실수는 개발자가 의도하지 않게 잘못된 코드를 작성하는 것을 의미하지만, 이는 직접적으로 시스템의 고장을 발생시키는 원인이 아닙니다.
4. Inspection: 검토는 소프트웨어의 품질을 높이기 위한 과정으로, 결함을 발견하기 위한 방법이지만, 고장을 일으키는 원인과는 관련이 없습니다.
[관련 개념] → 소프트웨어 품질 보증에서 "Fault", "Error", "Failure"는 서로 다른 개념입니다. Fault는 코드 내의 결함, Error는 실행 중에 발생하는 문제, Failure는 시스템이 기대한 대로 작동하지 않는 상태를 의미합니다.
[학습 포인트] → 소프트웨어 개발에서 Fault, Error, Failure의 차이를 이해하는 것이 중요합니다. 이를 통해 결함을 조기에 발견하고, 시스템의 품질을 향상시킬 수 있습니다.
35. 코드의 간결성을 유지하기 위해 사용되는 지침으로 틀린 것은?
정답을 선택하세요
1.
공백을 이용하여 실행문 그룹과 주석을 명확히 구분한다.
2.
복잡한 논리식과 산술식은 괄호와 들여쓰기(Indentation)를 통해 명확히 표현한다.
3.
빈 줄을 사용하여 선언부와 구현부를 구별한다.
4.
한 줄에 최대한 많은 문장을 코딩한다.
정답: 4번
해설
아직 해설이 없습니다.
36. 소프트웨어 품질 목표 중 하나 이상의 하드웨어 환경에서 운용되기 위해 쉽게 수정될 수 있는 시스템 능력을 의미하는 것은?
정답을 선택하세요
1.
Portability
2.
Efficiency
3.
Usability
4.
Correctness
정답: 1번
해설
[정답 근거] → 소프트웨어의 'Portability'는 다양한 하드웨어 환경에서 쉽게 수정되고 운용될 수 있는 능력을 의미합니다. 이는 소프트웨어가 여러 플랫폼에서 실행될 수 있도록 설계되었음을 나타내며, 하드웨어의 변화에 유연하게 대응할 수 있는 특성을 강조합니다.
[오답 해설] →
2. Efficiency: 효율성은 소프트웨어가 자원을 얼마나 잘 사용하는지를 나타내며, 하드웨어 환경에 대한 적응성과는 관련이 없습니다.
3. Usability: 사용성은 소프트웨어의 사용 편리함을 의미하며, 하드웨어 환경에서의 수정 가능성과는 직접적인 연관이 없습니다.
4. Correctness: 정확성은 소프트웨어가 요구사항을 얼마나 잘 충족하는지를 나타내며, 하드웨어 환경과의 관계는 없습니다.
[관련 개념] → 소프트웨어 품질 목표는 일반적으로 Portability, Efficiency, Usability, Correctness 등으로 나뉘며, 각각의 목표는 소프트웨어의 성능과 사용자 경험에 중요한 영향을 미칩니다. Portability는 특히 다양한 시스템에서의 호환성을 강조합니다.
[학습 포인트] → 소프트웨어 개발 시, 다양한 하드웨어 환경에서의 운용 가능성을 고려하여 Portability를 높이는 것이 중요합니다. 이를 통해 소프트웨어의 수명과 활용도를 증가시킬 수 있습니다.
[오답 해설] →
2. Efficiency: 효율성은 소프트웨어가 자원을 얼마나 잘 사용하는지를 나타내며, 하드웨어 환경에 대한 적응성과는 관련이 없습니다.
3. Usability: 사용성은 소프트웨어의 사용 편리함을 의미하며, 하드웨어 환경에서의 수정 가능성과는 직접적인 연관이 없습니다.
4. Correctness: 정확성은 소프트웨어가 요구사항을 얼마나 잘 충족하는지를 나타내며, 하드웨어 환경과의 관계는 없습니다.
[관련 개념] → 소프트웨어 품질 목표는 일반적으로 Portability, Efficiency, Usability, Correctness 등으로 나뉘며, 각각의 목표는 소프트웨어의 성능과 사용자 경험에 중요한 영향을 미칩니다. Portability는 특히 다양한 시스템에서의 호환성을 강조합니다.
[학습 포인트] → 소프트웨어 개발 시, 다양한 하드웨어 환경에서의 운용 가능성을 고려하여 Portability를 높이는 것이 중요합니다. 이를 통해 소프트웨어의 수명과 활용도를 증가시킬 수 있습니다.
37. 다음 중 최악의 경우 검색 효율이 가장 나쁜트리 구조는?
정답을 선택하세요
1.
이진 탐색트리
2.
AVL 트리
3.
2-3 트리
4.
레드-블랙 트리
정답: 1번
해설
아직 해설이 없습니다.
38. 다음 트리에 대한 중위 순회 운행 결과는?
정답을 선택하세요
1.
ABDCEF
2.
ABCDEF
3.
DBECFA
4.
DBAECF
정답: 4번
해설
아직 해설이 없습니다.
39. 테스트 케이스 자동 생성 도구를 이용하여 테스트 데이터를 찾아내는 방법이 아닌 것은?
정답을 선택하세요
1.
스터브(Stub)와 드라이버(Driver)
2.
입력 도메인 분석
3.
랜덤(Random) 테스트
4.
자료 흐름도
정답: 1번
해설
[정답 근거] → 1번인 스터브(Stub)와 드라이버(Driver)는 테스트 케이스 자동 생성 도구와는 관련이 없는 개념입니다. 스터브와 드라이버는 주로 모듈 테스트에서 사용되는 방법으로, 특정 모듈의 의존성을 대체하기 위해 사용됩니다. 따라서 테스트 데이터를 자동으로 생성하는 방법이 아닙니다.
[오답 해설] → 2번 입력 도메인 분석, 3번 랜덤(Random) 테스트, 4번 자료 흐름도는 모두 테스트 케이스를 생성하는 방법입니다. 입력 도메인 분석은 테스트할 입력 값의 범위를 정의하고, 랜덤 테스트는 무작위로 입력 값을 생성하여 다양한 경우를 테스트하며, 자료 흐름도는 프로그램의 데이터 흐름을 시각화하여 테스트 케이스를 설계하는 데 도움을 줍니다.
[관련 개념] → 스터브와 드라이버는 소프트웨어 테스트에서 모듈 간의 상호작용을 관리하기 위해 사용되는 기법입니다. 입력 도메인 분석, 랜덤 테스트, 자료 흐름도는 테스트 케이스를 효과적으로 생성하기 위한 다양한 방법론입니다.
[학습 포인트] → 테스트 케이스 자동 생성 도구의 목적과 기능을 이해하고, 스터브와 드라이버의 역할을 구분하는 것이 중요합니다. 다양한 테스트 방법을 익혀 실제 소프트웨어 테스트에 적용할 수 있도록 연습하는 것이 필요합니다.
[오답 해설] → 2번 입력 도메인 분석, 3번 랜덤(Random) 테스트, 4번 자료 흐름도는 모두 테스트 케이스를 생성하는 방법입니다. 입력 도메인 분석은 테스트할 입력 값의 범위를 정의하고, 랜덤 테스트는 무작위로 입력 값을 생성하여 다양한 경우를 테스트하며, 자료 흐름도는 프로그램의 데이터 흐름을 시각화하여 테스트 케이스를 설계하는 데 도움을 줍니다.
[관련 개념] → 스터브와 드라이버는 소프트웨어 테스트에서 모듈 간의 상호작용을 관리하기 위해 사용되는 기법입니다. 입력 도메인 분석, 랜덤 테스트, 자료 흐름도는 테스트 케이스를 효과적으로 생성하기 위한 다양한 방법론입니다.
[학습 포인트] → 테스트 케이스 자동 생성 도구의 목적과 기능을 이해하고, 스터브와 드라이버의 역할을 구분하는 것이 중요합니다. 다양한 테스트 방법을 익혀 실제 소프트웨어 테스트에 적용할 수 있도록 연습하는 것이 필요합니다.
40. 저작권 관리 구성 요소 중 패키저(Packager)의 주요 역할로 옳은 것은?
정답을 선택하세요
1.
콘텐츠를 제공하는 저작권자를 의미한다.
2.
콘텐츠를 메타 데이터와 함께 배포 가능한 단위로 묶는다.
3.
라이선스를 발급하고 관리한다.
4.
배포된 콘텐츠의 이용 권한을 통제한다.
정답: 2번
해설
[정답 근거] → 패키저(Packager)는 콘텐츠를 메타 데이터와 함께 배포 가능한 단위로 묶는 역할을 합니다. 이는 콘텐츠가 효과적으로 전달되고, 필요한 정보가 함께 제공될 수 있도록 하는 중요한 과정입니다.
[오답 해설]
1. 콘텐츠를 제공하는 저작권자를 의미한다. → 이는 저작권자의 역할로, 패키저의 역할과는 다릅니다. 패키저는 콘텐츠를 묶고 배포하는 기능을 담당합니다.
3. 라이선스를 발급하고 관리한다. → 라이선스 발급과 관리는 주로 라이선서의 역할입니다. 패키저는 콘텐츠의 포장과 배포에 집중합니다.
4. 배포된 콘텐츠의 이용 권한을 통제한다. → 이용 권한의 통제는 DRM(디지털 저작권 관리) 시스템의 역할입니다. 패키저는 콘텐츠를 묶는 역할에 국한됩니다.
[관련 개념] 패키저는 저작권 관리 시스템에서 콘텐츠를 효율적으로 배포하기 위해 필요한 메타 데이터와 함께 콘텐츠를 포장하는 역할을 합니다. 이는 콘텐츠의 유통과 관리에 필수적인 요소입니다.
[학습 포인트] 저작권 관리의 구성 요소와 각 요소의 역할을 이해하는 것이 중요합니다. 패키저의 기능을 명확히 알고, 다른 역할들과의 차이를 구분하는 것이 저작권 관리 시스템을 이해하는 데 도움이 됩니다.
[오답 해설]
1. 콘텐츠를 제공하는 저작권자를 의미한다. → 이는 저작권자의 역할로, 패키저의 역할과는 다릅니다. 패키저는 콘텐츠를 묶고 배포하는 기능을 담당합니다.
3. 라이선스를 발급하고 관리한다. → 라이선스 발급과 관리는 주로 라이선서의 역할입니다. 패키저는 콘텐츠의 포장과 배포에 집중합니다.
4. 배포된 콘텐츠의 이용 권한을 통제한다. → 이용 권한의 통제는 DRM(디지털 저작권 관리) 시스템의 역할입니다. 패키저는 콘텐츠를 묶는 역할에 국한됩니다.
[관련 개념] 패키저는 저작권 관리 시스템에서 콘텐츠를 효율적으로 배포하기 위해 필요한 메타 데이터와 함께 콘텐츠를 포장하는 역할을 합니다. 이는 콘텐츠의 유통과 관리에 필수적인 요소입니다.
[학습 포인트] 저작권 관리의 구성 요소와 각 요소의 역할을 이해하는 것이 중요합니다. 패키저의 기능을 명확히 알고, 다른 역할들과의 차이를 구분하는 것이 저작권 관리 시스템을 이해하는 데 도움이 됩니다.
41. 데이터베이스의 무결성 규정(Integrity Rule)과 관련한 설명으로 틀린 것은?
정답을 선택하세요
1.
무결성 규정에는 데이터가 만족해야 될 제약 조건, 규정을 참조할 때 사용하는 식별자 등의 요소가 포함될 수 있다.
2.
무결성 규정의 대상으로는 도메인, 키, 종속성 등이 있다.
3.
정식으로 허가 받은 사용자가 아닌 불법적인 사용자에 의한 갱신으로부터 데이터베이스를 보호하기 위한 규정이다.
4.
릴레이션 무결성 규정(Relation Integrity Rules)은 릴레이 션을 조작하는 과정에서의 의미적 관계(Semantic Relationship)을 명세한 것이다.
정답: 3번
해설
아직 해설이 없습니다.
42. 데이터베이스에서 하나의 논리적 기능을 수행하기 위한 작업의 단위 또는 한꺼번에 모두 수행되어야 할 일련의 연산들을 의미하는 것은?
정답을 선택하세요
1.
트랜잭션
2.
뷰
3.
튜플
4.
카디널리티
정답: 1번
해설
[정답 근거] → 데이터베이스에서 "트랜잭션"은 하나의 논리적 기능을 수행하기 위한 작업의 단위로, 여러 연산이 포함될 수 있으며, 모두 성공적으로 완료되거나 모두 실패해야 하는 원자성을 가집니다. 따라서 정답은 1번입니다.
[오답 해설] →
2. 뷰: 데이터베이스에서 뷰는 하나 이상의 테이블에서 유도된 가상의 테이블로, 데이터의 표시 방식만을 정의하며, 트랜잭션의 개념과는 관련이 없습니다.
3. 튜플: 튜플은 데이터베이스의 한 행(row)을 의미하며, 데이터의 구조적 요소이지 트랜잭션의 개념과는 관련이 없습니다.
4. 카디널리티: 카디널리티는 데이터베이스에서 특정 관계의 개수나 데이터의 수를 나타내는 용어로, 트랜잭션과는 관련이 없습니다.
[관련 개념] → 트랜잭션은 데이터베이스의 ACID 속성(원자성, 일관성, 고립성, 지속성)을 통해 데이터의 무결성을 보장합니다. 트랜잭션은 데이터베이스 관리 시스템(DBMS)에서 중요한 역할을 하며, 여러 연산을 하나의 단위로 묶어 처리합니다.
[학습 포인트] → 데이터베이스의 트랜잭션 개념을 이해하는 것은 데이터 무결성을 유지하고, 시스템의 신뢰성을 높이는 데 필수적입니다. 트랜잭션의 ACID 속성을 숙지하여 데이터베이스 설계 및 운영 시 올바른 처리를 할 수 있도록 해야 합니다.
[오답 해설] →
2. 뷰: 데이터베이스에서 뷰는 하나 이상의 테이블에서 유도된 가상의 테이블로, 데이터의 표시 방식만을 정의하며, 트랜잭션의 개념과는 관련이 없습니다.
3. 튜플: 튜플은 데이터베이스의 한 행(row)을 의미하며, 데이터의 구조적 요소이지 트랜잭션의 개념과는 관련이 없습니다.
4. 카디널리티: 카디널리티는 데이터베이스에서 특정 관계의 개수나 데이터의 수를 나타내는 용어로, 트랜잭션과는 관련이 없습니다.
[관련 개념] → 트랜잭션은 데이터베이스의 ACID 속성(원자성, 일관성, 고립성, 지속성)을 통해 데이터의 무결성을 보장합니다. 트랜잭션은 데이터베이스 관리 시스템(DBMS)에서 중요한 역할을 하며, 여러 연산을 하나의 단위로 묶어 처리합니다.
[학습 포인트] → 데이터베이스의 트랜잭션 개념을 이해하는 것은 데이터 무결성을 유지하고, 시스템의 신뢰성을 높이는 데 필수적입니다. 트랜잭션의 ACID 속성을 숙지하여 데이터베이스 설계 및 운영 시 올바른 처리를 할 수 있도록 해야 합니다.
43. 다음 두 릴레이션 Rl과 R2의 카티션 프로덕트(cartesian product) 수행 결과는?
정답을 선택하세요
정답: 4번
해설
아직 해설이 없습니다.
44. 물리적 데이터베이스 설계에 대한 설명으로 거리가 먼 것은?
정답을 선택하세요
1.
물리적 설계의 목적은 효율적인 방법으로 데이터를 저장하는 것이다.
2.
트랜잭션 처리량과 응답시간, 디스크 용량 등을 고려해야 한다.
3.
저장 레코드의 형식, 순서, 접근 경로와 같은 정보를 사용하여 설계한다.
4.
트랜잭션의 인터페이스를 설계하며, 데이터 타입 및 데이터 타입들 간의 관계로 표현한다.
정답: 4번
해설
[정답 근거] 4번은 물리적 데이터베이스 설계의 범위와 관련이 없습니다. 물리적 설계는 데이터 저장 방식과 관련된 요소들(저장 레코드의 형식, 순서, 접근 경로 등)을 다루며, 트랜잭션의 인터페이스나 데이터 타입 간의 관계는 논리적 설계의 영역입니다.
[오답 해설] 1번, 2번, 3번은 모두 물리적 데이터베이스 설계의 핵심 요소를 설명하고 있습니다. 1번은 물리적 설계의 기본 목적을, 2번은 설계 시 고려해야 할 성능 요소를, 3번은 저장 방식과 관련된 구체적인 정보를 언급하고 있습니다. 이들은 물리적 설계의 중요한 측면입니다.
[관련 개념] 물리적 데이터베이스 설계는 데이터베이스의 실제 저장 구조를 정의하는 과정으로, 데이터의 저장 방식, 접근 경로, 성능 최적화 등을 포함합니다. 반면, 논리적 데이터베이스 설계는 데이터 모델과 관계를 정의하는 단계입니다.
[학습 포인트] 물리적 데이터베이스 설계와 논리적 데이터베이스 설계의 차이를 명확히 이해하는 것이 중요합니다. 물리적 설계는 데이터 저장의 효율성을 중시하며, 논리적 설계는 데이터 구조와 관계를 중점적으로 다룹니다.
[오답 해설] 1번, 2번, 3번은 모두 물리적 데이터베이스 설계의 핵심 요소를 설명하고 있습니다. 1번은 물리적 설계의 기본 목적을, 2번은 설계 시 고려해야 할 성능 요소를, 3번은 저장 방식과 관련된 구체적인 정보를 언급하고 있습니다. 이들은 물리적 설계의 중요한 측면입니다.
[관련 개념] 물리적 데이터베이스 설계는 데이터베이스의 실제 저장 구조를 정의하는 과정으로, 데이터의 저장 방식, 접근 경로, 성능 최적화 등을 포함합니다. 반면, 논리적 데이터베이스 설계는 데이터 모델과 관계를 정의하는 단계입니다.
[학습 포인트] 물리적 데이터베이스 설계와 논리적 데이터베이스 설계의 차이를 명확히 이해하는 것이 중요합니다. 물리적 설계는 데이터 저장의 효율성을 중시하며, 논리적 설계는 데이터 구조와 관계를 중점적으로 다룹니다.
45. 다음 중 기본키는 NULL 값을 가져서는 안되며, 릴레이션 내에 오직 하나의 값만 존재해야 한다는 조건을 무엇이라 하는가?
정답을 선택하세요
1.
개체 무결성 제약조건
2.
참조 무결성 제약조건
3.
도메인 무결성 제약조건
4.
속성 무결성 제약조건
정답: 1번
해설
아직 해설이 없습니다.
46. SQL문에서 HAVING을 사용할 수 있는 절은?
정답을 선택하세요
1.
LIKE 절
2.
WHERE 절
3.
GROUP BY 절
4.
ORDER BY 절
정답: 3번
해설
아직 해설이 없습니다.
47. 관계 데이터베이스에 있어서 관계 대수 연산이 아닌 것은?
정답을 선택하세요
1.
디비전(Division)
2.
프로젝트(Project)
3.
조인(Join)
4.
포크(Fork)
정답: 4번
해설
[정답 근거] → 4번 '포크(Fork)'는 관계 데이터베이스의 관계 대수 연산에 해당하지 않습니다. 관계 대수는 데이터베이스에서 데이터를 조회하고 조작하는 수학적 이론으로, 디비전, 프로젝트, 조인은 모두 관계 대수의 기본 연산입니다. 포크는 일반적으로 컴퓨터 과학에서 프로세스나 작업을 분기하는 개념으로, 데이터베이스와는 관련이 없습니다.
[오답 해설] → 1번 '디비전(Division)', 2번 '프로젝트(Project)', 3번 '조인(Join)'은 모두 관계 대수의 연산입니다. 디비전은 특정 조건을 만족하는 데이터를 찾는 데 사용되고, 프로젝트는 특정 속성만 선택하여 결과를 반환하며, 조인은 두 개 이상의 관계를 결합하여 새로운 관계를 생성합니다. 이들은 모두 데이터베이스에서 데이터를 처리하는 데 필수적인 연산입니다.
[관련 개념] → 관계 대수는 관계형 데이터베이스에서 데이터를 조작하는 데 사용되는 수학적 연산의 집합입니다. 주요 연산으로는 선택(Selection), 투영(Projection), 조인(Join), 합집합(Union), 차집합(Difference), 디비전(Division) 등이 있습니다. 이러한 연산들은 SQL과 같은 데이터베이스 쿼리 언어의 기본적인 기초를 형성합니다.
[학습 포인트] → 관계 대수의 기본 연산을 이해하고, 각 연산이 데이터베이스에서 어떻게 사용되는지를 학습하는 것이 중요합니다. 이를 통해 데이터베이스 쿼리를 작성하고 최적화하는 데 필요한 기초 지식을 쌓을 수 있습니다. 또한, 관계 대수와 관련 없는 용어를 구별하는 능력도 중요합니다.
[오답 해설] → 1번 '디비전(Division)', 2번 '프로젝트(Project)', 3번 '조인(Join)'은 모두 관계 대수의 연산입니다. 디비전은 특정 조건을 만족하는 데이터를 찾는 데 사용되고, 프로젝트는 특정 속성만 선택하여 결과를 반환하며, 조인은 두 개 이상의 관계를 결합하여 새로운 관계를 생성합니다. 이들은 모두 데이터베이스에서 데이터를 처리하는 데 필수적인 연산입니다.
[관련 개념] → 관계 대수는 관계형 데이터베이스에서 데이터를 조작하는 데 사용되는 수학적 연산의 집합입니다. 주요 연산으로는 선택(Selection), 투영(Projection), 조인(Join), 합집합(Union), 차집합(Difference), 디비전(Division) 등이 있습니다. 이러한 연산들은 SQL과 같은 데이터베이스 쿼리 언어의 기본적인 기초를 형성합니다.
[학습 포인트] → 관계 대수의 기본 연산을 이해하고, 각 연산이 데이터베이스에서 어떻게 사용되는지를 학습하는 것이 중요합니다. 이를 통해 데이터베이스 쿼리를 작성하고 최적화하는 데 필요한 기초 지식을 쌓을 수 있습니다. 또한, 관계 대수와 관련 없는 용어를 구별하는 능력도 중요합니다.
48. 학적 테이블에서 전화번호가 Null값이 아닌 학생명을 모두 검색할 때, SQL 구문으로 옳은 것은?
정답을 선택하세요
1.
SELECT FROM 07 WHERE 전화번호 DON'T NULL;
2.
SELECT FROM WHERE 전화번호 != NOT NULL;
3.
SELECT 학생명 FROM 학적 WHERE 전화번호 IS NOT NULL;
4.
SELECT FROM WHERE 전화번호 IS NULL;
정답: 3번
해설
아직 해설이 없습니다.
49. 관계형 데이터베이스에서 다음 설명에 해당하는 키(Key)는?
정답을 선택하세요
1.
후보키
2.
대체키
3.
슈퍼키
4.
외래키
정답: 3번
해설
아직 해설이 없습니다.
50. 데이터베이스에서 인덱스(Index)와 관련한 설명으로 틀린 것은?
정답을 선택하세요
1.
인덱스의 기본 목적은 검색 성능을 최적화하는 것으로 볼 수 있다.
2.
B-트리 인덱스는 분기를 목적으로 하는 Branch Block을 가지고 있다.
3.
BETWEEN 등 범위(Range) 검색에 활용될 수 있다.
4.
시스템이 자동으로 생성하여 사용자가 변경할 수 없다.
정답: 4번
해설
아직 해설이 없습니다.
51. 로킹 단위(Locking Granularity)에 대한 설명으로 옳은 것은?
정답을 선택하세요
1.
로킹 단위가 크면 병행성 수준이 낮아진다.
2.
로킹 단위가 크면 병행 제어 기법이 복잡해진다.
3.
로킹 단위가 작으면 로크(lock)의 수가 적어진다.
4.
로킹은 파일 단위로 이루어지며, 레코드와 필드는 로킹 단위가 될 수 없다.
정답: 1번
해설
[정답 근거] → 로킹 단위가 크면 하나의 로크가 많은 데이터 항목을 포함하게 되어, 동시에 여러 트랜잭션이 접근할 수 있는 범위가 줄어들어 병행성 수준이 낮아진다. 이는 여러 트랜잭션이 동시에 실행될 수 있는 기회를 제한하기 때문이다.
[오답 해설]
2. 로킹 단위가 크면 병행 제어 기법이 복잡해진다는 주장은 틀리다. 오히려 로킹 단위가 크면 관리해야 할 로크의 수가 줄어들어 병행 제어 기법이 단순해질 수 있다.
3. 로킹 단위가 작으면 로크의 수가 많아져, 각 데이터 항목에 대한 개별 로크가 필요하게 된다. 따라서 로크의 수가 적어지지 않는다.
4. 로킹은 파일 단위로 이루어지지 않으며, 레코드와 필드도 로킹 단위가 될 수 있다. 실제로 데이터베이스에서는 다양한 수준의 로킹이 가능하다.
[학습 포인트] → 로킹 단위의 크기는 병행성 수준과 병행 제어 기법의 복잡성에 직접적인 영향을 미친다. 로킹 단위가 크면 병행성이 낮아지고, 로킹 단위가 작으면 로크의 수가 많아져 병행성이 높아진다. 데이터베이스의 효율적인 운영을 위해 로킹 단위를 적절히 설정하는 것이 중요하다.
[오답 해설]
2. 로킹 단위가 크면 병행 제어 기법이 복잡해진다는 주장은 틀리다. 오히려 로킹 단위가 크면 관리해야 할 로크의 수가 줄어들어 병행 제어 기법이 단순해질 수 있다.
3. 로킹 단위가 작으면 로크의 수가 많아져, 각 데이터 항목에 대한 개별 로크가 필요하게 된다. 따라서 로크의 수가 적어지지 않는다.
4. 로킹은 파일 단위로 이루어지지 않으며, 레코드와 필드도 로킹 단위가 될 수 있다. 실제로 데이터베이스에서는 다양한 수준의 로킹이 가능하다.
[학습 포인트] → 로킹 단위의 크기는 병행성 수준과 병행 제어 기법의 복잡성에 직접적인 영향을 미친다. 로킹 단위가 크면 병행성이 낮아지고, 로킹 단위가 작으면 로크의 수가 많아져 병행성이 높아진다. 데이터베이스의 효율적인 운영을 위해 로킹 단위를 적절히 설정하는 것이 중요하다.
52. 관계 대수에 대한 설명으로 틀린 것은?
정답을 선택하세요
1.
원하는 릴레이션을 정의하는 방법을 제공하며 비절차적 언어이다.
2.
릴레이션 조작을 위한 연산의 집합으로 피연산자와 결과가 모두 릴레이션이다.
3.
일반 집합 연산과 순수 관계 연산으로 구분된다.
4.
질의에 대한 해를 구하기 위해 수행해야 할 연산의 순서를 명시한다.
정답: 1번
해설
[정답 근거] → 관계 대수는 원하는 릴레이션을 정의하는 방법을 제공하지만, 비절차적 언어가 아닙니다. 관계 대수는 특정한 연산을 통해 데이터를 조작하는 절차적 성격을 가지고 있습니다. 따라서 1번 설명은 틀린 것입니다.
[오답 해설] → 2번은 맞습니다. 관계 대수는 릴레이션 조작을 위한 연산의 집합으로, 피연산자와 결과가 모두 릴레이션입니다. 3번도 맞습니다. 관계 대수는 일반 집합 연산(합집합, 교집합 등)과 순수 관계 연산(선택, 투영 등)으로 구분됩니다. 4번 또한 맞습니다. 관계 대수는 질의에 대한 해를 구하기 위해 수행해야 할 연산의 순서를 명시하지 않으며, 이는 관계 해석 언어의 특성입니다.
[관련 개념] → 관계 대수는 데이터베이스에서 데이터를 조작하고 질의하는 데 사용되는 수학적 이론으로, 비절차적 언어인 관계 해석 언어와 대조됩니다. 관계 대수의 주요 연산으로는 선택(σ), 투영(π), 합집합(∪), 차집합(-), 교집합(∩) 등이 있습니다.
[학습 포인트] → 관계 대수의 특성을 이해하고, 비절차적 언어와 절차적 언어의 차이를 명확히 구분하는 것이 중요합니다. 이를 통해 데이터베이스 질의 및 조작의 기초를 확립할 수 있습니다.
[오답 해설] → 2번은 맞습니다. 관계 대수는 릴레이션 조작을 위한 연산의 집합으로, 피연산자와 결과가 모두 릴레이션입니다. 3번도 맞습니다. 관계 대수는 일반 집합 연산(합집합, 교집합 등)과 순수 관계 연산(선택, 투영 등)으로 구분됩니다. 4번 또한 맞습니다. 관계 대수는 질의에 대한 해를 구하기 위해 수행해야 할 연산의 순서를 명시하지 않으며, 이는 관계 해석 언어의 특성입니다.
[관련 개념] → 관계 대수는 데이터베이스에서 데이터를 조작하고 질의하는 데 사용되는 수학적 이론으로, 비절차적 언어인 관계 해석 언어와 대조됩니다. 관계 대수의 주요 연산으로는 선택(σ), 투영(π), 합집합(∪), 차집합(-), 교집합(∩) 등이 있습니다.
[학습 포인트] → 관계 대수의 특성을 이해하고, 비절차적 언어와 절차적 언어의 차이를 명확히 구분하는 것이 중요합니다. 이를 통해 데이터베이스 질의 및 조작의 기초를 확립할 수 있습니다.
53. 데이터의 중복으로 인하여 관계연산을 처리할 때 예기치 못한 곤란한 현상이 발생하는 것을 무엇이라 하는가?
정답을 선택하세요
1.
이상(Anomaly)
2.
제한 (Restriction)
3.
종속성(Dependency)
4.
변환(Translation)
정답: 1번
해설
[정답 근거] → 데이터의 중복으로 인해 발생하는 예기치 못한 현상은 '이상(Anomaly)'이라고 합니다. 이는 데이터베이스에서 중복된 데이터로 인해 삽입, 수정, 삭제 시 일관성이 깨지거나 오류가 발생하는 상황을 의미합니다. 따라서 정답은 1번입니다.
[오답 해설] →
2. 제한(Restriction): 제한은 데이터베이스에서 특정 조건을 만족하는 데이터만을 선택하는 것을 의미하며, 중복 문제와는 관련이 없습니다.
3. 종속성(Dependency): 종속성은 데이터 간의 관계를 나타내는 개념으로, 중복으로 인한 문제와는 직접적인 연관이 없습니다.
4. 변환(Translation): 변환은 데이터의 형식이나 구조를 변경하는 과정으로, 중복으로 인한 예기치 못한 현상과는 관련이 없습니다.
[학습 포인트] → 데이터베이스 설계 시 중복을 최소화하여 이상 현상을 방지하는 것이 중요합니다. 이를 위해 정규화(Normalization) 과정을 통해 데이터의 중복성을 줄이고 일관성을 유지하는 방법을 학습하는 것이 필요합니다.
[오답 해설] →
2. 제한(Restriction): 제한은 데이터베이스에서 특정 조건을 만족하는 데이터만을 선택하는 것을 의미하며, 중복 문제와는 관련이 없습니다.
3. 종속성(Dependency): 종속성은 데이터 간의 관계를 나타내는 개념으로, 중복으로 인한 문제와는 직접적인 연관이 없습니다.
4. 변환(Translation): 변환은 데이터의 형식이나 구조를 변경하는 과정으로, 중복으로 인한 예기치 못한 현상과는 관련이 없습니다.
[학습 포인트] → 데이터베이스 설계 시 중복을 최소화하여 이상 현상을 방지하는 것이 중요합니다. 이를 위해 정규화(Normalization) 과정을 통해 데이터의 중복성을 줄이고 일관성을 유지하는 방법을 학습하는 것이 필요합니다.
54. 다음 중 SQL에서의 DDL 문이 아닌 것은?
정답을 선택하세요
1.
CREATE
2.
DELETE
3.
ALTER
4.
DROP
정답: 2번
해설
[정답 근거] → DDL(Data Definition Language) 문은 데이터베이스의 구조를 정의하거나 변경하는 명령어입니다. 2번인 DELETE는 데이터베이스에서 데이터를 삭제하는 DML(Data Manipulation Language) 문으로, DDL 문이 아닙니다.
[오답 해설] → 1번 CREATE, 3번 ALTER, 4번 DROP은 모두 DDL 문으로, 각각 데이터베이스 객체를 생성, 수정, 삭제하는 역할을 합니다. 따라서 이들은 DDL의 정의에 부합하며, 2번 DELETE만 DML에 해당합니다.
[관련 개념] → DDL은 데이터베이스의 구조를 정의하고 관리하는 언어로, CREATE, ALTER, DROP과 같은 명령어가 포함됩니다. DML은 데이터의 조작을 위한 언어로, INSERT, UPDATE, DELETE 등이 포함됩니다.
[학습 포인트] → DDL과 DML의 차이를 명확히 이해하고, 각 명령어의 기능과 용도를 구분하는 것이 중요합니다. 이를 통해 데이터베이스 설계 및 관리에 대한 이해를 높일 수 있습니다.
[오답 해설] → 1번 CREATE, 3번 ALTER, 4번 DROP은 모두 DDL 문으로, 각각 데이터베이스 객체를 생성, 수정, 삭제하는 역할을 합니다. 따라서 이들은 DDL의 정의에 부합하며, 2번 DELETE만 DML에 해당합니다.
[관련 개념] → DDL은 데이터베이스의 구조를 정의하고 관리하는 언어로, CREATE, ALTER, DROP과 같은 명령어가 포함됩니다. DML은 데이터의 조작을 위한 언어로, INSERT, UPDATE, DELETE 등이 포함됩니다.
[학습 포인트] → DDL과 DML의 차이를 명확히 이해하고, 각 명령어의 기능과 용도를 구분하는 것이 중요합니다. 이를 통해 데이터베이스 설계 및 관리에 대한 이해를 높일 수 있습니다.
55. 정규화에 대한 설명으로 적절하지 않은 것은?
정답을 선택하세요
1.
데이터베이스의 개념적 설계 단계 이전에 수행한다.
2.
데이터 구조의 안정성을 최대화한다.
3.
중복을 배제하여 삽입, 삭제, 갱신 이상의 발생을 방지한다.
4.
데이터 삽입 시 릴레이션을 재구성할 필요성을 줄인다.
정답: 1번
해설
[정답 근거] → 정답인 1번은 "데이터베이스의 개념적 설계 단계 이전에 수행한다"는 설명이 적절하지 않기 때문입니다. 정규화는 데이터베이스 설계 단계에서, 특히 논리적 설계 단계에서 수행되어야 하며, 개념적 설계 단계 이후에 이루어집니다.
[오답 해설] → 2번, 3번, 4번은 모두 정규화의 특징을 잘 설명하고 있습니다. 2번은 정규화가 데이터 구조의 안정성을 높이는 데 기여한다는 점을 강조하고, 3번은 중복을 줄여 데이터 무결성을 유지하는 역할을 설명합니다. 4번은 데이터 삽입 시 릴레이션의 재구성을 줄여 효율성을 높인다는 점을 잘 나타냅니다.
[관련 개념] → 정규화는 데이터베이스 설계에서 데이터 중복을 최소화하고 무결성을 유지하기 위해 데이터를 구조화하는 과정입니다. 이 과정은 일반적으로 제1정규형(1NF), 제2정규형(2NF), 제3정규형(3NF) 등 여러 단계로 나뉘며, 각 단계에서 특정 규칙을 적용하여 데이터 구조를 개선합니다.
[학습 포인트] → 정규화의 목적과 절차를 이해하고, 각 단계의 중요성을 인식하는 것이 중요합니다. 또한, 정규화가 데이터베이스 설계에서 언제 수행되는지를 명확히 알고 있어야 합니다.
[오답 해설] → 2번, 3번, 4번은 모두 정규화의 특징을 잘 설명하고 있습니다. 2번은 정규화가 데이터 구조의 안정성을 높이는 데 기여한다는 점을 강조하고, 3번은 중복을 줄여 데이터 무결성을 유지하는 역할을 설명합니다. 4번은 데이터 삽입 시 릴레이션의 재구성을 줄여 효율성을 높인다는 점을 잘 나타냅니다.
[관련 개념] → 정규화는 데이터베이스 설계에서 데이터 중복을 최소화하고 무결성을 유지하기 위해 데이터를 구조화하는 과정입니다. 이 과정은 일반적으로 제1정규형(1NF), 제2정규형(2NF), 제3정규형(3NF) 등 여러 단계로 나뉘며, 각 단계에서 특정 규칙을 적용하여 데이터 구조를 개선합니다.
[학습 포인트] → 정규화의 목적과 절차를 이해하고, 각 단계의 중요성을 인식하는 것이 중요합니다. 또한, 정규화가 데이터베이스 설계에서 언제 수행되는지를 명확히 알고 있어야 합니다.
56. 트랜잭션의 주요 특성 중 하나로 둘 이상의 트랜잭션이 동시에 병행 실행되는 경우 어느 하나의 트랜잭션 실행 중에 다른 트랜잭션의 연산이 끼어들 수 없음을 의미하는 것은?
정답을 선택하세요
1.
Log
2.
Consistency
3.
Isolation
4.
Durability
정답: 3번
해설
[정답 근거] → 트랜잭션의 주요 특성 중 하나인 Isolation(격리성)은 둘 이상의 트랜잭션이 동시에 실행될 때, 하나의 트랜잭션이 실행되는 동안 다른 트랜잭션의 연산이 끼어들지 않도록 보장합니다. 이는 데이터의 일관성을 유지하고, 트랜잭션 간의 간섭을 방지하여 독립적으로 처리될 수 있게 합니다.
[오답 해설] →
1. Log: 로그는 트랜잭션의 실행 기록을 저장하는 것으로, 트랜잭션의 복구 및 일관성을 유지하는 데 도움을 주지만, 격리성과는 직접적인 관련이 없습니다.
2. Consistency: 일관성은 트랜잭션이 성공적으로 완료되었을 때 데이터베이스가 일관된 상태를 유지해야 한다는 특성입니다. 격리성과는 다른 개념입니다.
4. Durability: 지속성은 트랜잭션이 성공적으로 완료된 후 그 결과가 영구적으로 저장되어야 한다는 특성입니다. 이는 격리성과는 관련이 없습니다.
[관련 개념] → 트랜잭션의 ACID 특성은 데이터베이스 관리 시스템에서 트랜잭션의 신뢰성을 보장하는 네 가지 주요 속성입니다. 이 중 Isolation은 여러 트랜잭션이 동시에 실행될 때 서로 간섭하지 않도록 하는 중요한 특성입니다.
[학습 포인트] → 트랜잭션의 ACID 특성을 이해하는 것은 데이터베이스 시스템의 설계와 운영에서 매우 중요합니다. 특히 Isolation은 데이터의 무결성을 유지하는 데 필수적이며, 병행 처리의 효율성을 높이는 데 기여합니다.
[오답 해설] →
1. Log: 로그는 트랜잭션의 실행 기록을 저장하는 것으로, 트랜잭션의 복구 및 일관성을 유지하는 데 도움을 주지만, 격리성과는 직접적인 관련이 없습니다.
2. Consistency: 일관성은 트랜잭션이 성공적으로 완료되었을 때 데이터베이스가 일관된 상태를 유지해야 한다는 특성입니다. 격리성과는 다른 개념입니다.
4. Durability: 지속성은 트랜잭션이 성공적으로 완료된 후 그 결과가 영구적으로 저장되어야 한다는 특성입니다. 이는 격리성과는 관련이 없습니다.
[관련 개념] → 트랜잭션의 ACID 특성은 데이터베이스 관리 시스템에서 트랜잭션의 신뢰성을 보장하는 네 가지 주요 속성입니다. 이 중 Isolation은 여러 트랜잭션이 동시에 실행될 때 서로 간섭하지 않도록 하는 중요한 특성입니다.
[학습 포인트] → 트랜잭션의 ACID 특성을 이해하는 것은 데이터베이스 시스템의 설계와 운영에서 매우 중요합니다. 특히 Isolation은 데이터의 무결성을 유지하는 데 필수적이며, 병행 처리의 효율성을 높이는 데 기여합니다.
57. SQL의 논리 연산자가 아닌 것은?
정답을 선택하세요
1.
AND
2.
OTHER
3.
OR
4.
NOT
정답: 2번
해설
[정답 근거] → SQL의 논리 연산자는 조건을 결합하거나 반전시키기 위해 사용됩니다. 'AND', 'OR', 'NOT'은 모두 SQL에서 사용되는 논리 연산자로, 조건문에서 여러 조건을 조합하는 데 필요합니다. 반면 'OTHER'는 SQL에서 정의된 논리 연산자가 아니므로 정답입니다.
[오답 해설] → 1번 'AND', 3번 'OR', 4번 'NOT'은 모두 SQL에서 조건을 결합하거나 반전시키는 데 사용되는 논리 연산자입니다. 따라서 이들은 모두 정답이 아닙니다. 'AND'는 두 조건이 모두 참일 때 참을 반환하고, 'OR'은 두 조건 중 하나라도 참일 때 참을 반환하며, 'NOT'은 조건의 참/거짓을 반전시킵니다.
[관련 개념] → SQL의 논리 연산자는 데이터베이스 쿼리에서 조건을 조합하는 데 필수적입니다. 이들은 WHERE 절에서 사용되어 특정 조건을 만족하는 데이터를 필터링하는 데 도움을 줍니다.
[학습 포인트] → SQL의 논리 연산자에 대한 이해는 데이터베이스 쿼리를 작성하는 데 매우 중요합니다. 각 연산자의 기능과 사용법을 숙지하여 복잡한 조건을 효과적으로 처리할 수 있도록 연습하는 것이 필요합니다.
[오답 해설] → 1번 'AND', 3번 'OR', 4번 'NOT'은 모두 SQL에서 조건을 결합하거나 반전시키는 데 사용되는 논리 연산자입니다. 따라서 이들은 모두 정답이 아닙니다. 'AND'는 두 조건이 모두 참일 때 참을 반환하고, 'OR'은 두 조건 중 하나라도 참일 때 참을 반환하며, 'NOT'은 조건의 참/거짓을 반전시킵니다.
[관련 개념] → SQL의 논리 연산자는 데이터베이스 쿼리에서 조건을 조합하는 데 필수적입니다. 이들은 WHERE 절에서 사용되어 특정 조건을 만족하는 데이터를 필터링하는 데 도움을 줍니다.
[학습 포인트] → SQL의 논리 연산자에 대한 이해는 데이터베이스 쿼리를 작성하는 데 매우 중요합니다. 각 연산자의 기능과 사용법을 숙지하여 복잡한 조건을 효과적으로 처리할 수 있도록 연습하는 것이 필요합니다.
58. 동시성 제어를 위한 직렬화 기법으로 트랜잭션 간의 처리 순서를 미리 정하는 방법은?
정답을 선택하세요
1.
로킹 기법
2.
타임스탬프 기법
3.
검증 기법
4.
배타 로크 기법
정답: 2번
해설
[정답 근거] → 타임스탬프 기법은 각 트랜잭션에 고유한 타임스탬프를 부여하여 트랜잭션 간의 처리 순서를 결정하는 방법입니다. 이 기법은 트랜잭션이 생성된 시간에 따라 우선순위를 정하고, 이를 통해 동시성 문제를 해결합니다.
[오답 해설] →
1. 로킹 기법: 트랜잭션이 데이터에 접근할 때 잠금을 사용하여 다른 트랜잭션이 동시에 접근하지 못하도록 하는 방법입니다. 처리 순서를 미리 정하는 것이 아니라, 접근을 제어하는 방식입니다.
2. 검증 기법: 트랜잭션이 완료된 후에 일관성을 검증하는 방법으로, 사전 순서를 정하지 않습니다.
3. 배타 로크 기법: 특정 데이터에 대해 하나의 트랜잭션만 접근할 수 있도록 하는 방법으로, 동시성 제어를 위한 로킹 기법의 일종입니다. 역시 미리 순서를 정하는 것이 아닙니다.
[관련 개념] → 동시성 제어는 데이터베이스에서 여러 트랜잭션이 동시에 실행될 때 발생할 수 있는 문제를 해결하기 위한 기법입니다. 타임스탬프 기법은 이를 위한 대표적인 방법 중 하나로, 각 트랜잭션의 순서를 타임스탬프에 기반하여 결정합니다.
[학습 포인트] → 동시성 제어의 다양한 기법을 이해하고, 각 기법이 어떻게 작동하는지를 명확히 구분하는 것이 중요합니다. 특히, 타임스탬프 기법의 원리를 잘 이해하면 데이터베이스의 일관성을 유지하는 데 큰 도움이 됩니다.
[오답 해설] →
1. 로킹 기법: 트랜잭션이 데이터에 접근할 때 잠금을 사용하여 다른 트랜잭션이 동시에 접근하지 못하도록 하는 방법입니다. 처리 순서를 미리 정하는 것이 아니라, 접근을 제어하는 방식입니다.
2. 검증 기법: 트랜잭션이 완료된 후에 일관성을 검증하는 방법으로, 사전 순서를 정하지 않습니다.
3. 배타 로크 기법: 특정 데이터에 대해 하나의 트랜잭션만 접근할 수 있도록 하는 방법으로, 동시성 제어를 위한 로킹 기법의 일종입니다. 역시 미리 순서를 정하는 것이 아닙니다.
[관련 개념] → 동시성 제어는 데이터베이스에서 여러 트랜잭션이 동시에 실행될 때 발생할 수 있는 문제를 해결하기 위한 기법입니다. 타임스탬프 기법은 이를 위한 대표적인 방법 중 하나로, 각 트랜잭션의 순서를 타임스탬프에 기반하여 결정합니다.
[학습 포인트] → 동시성 제어의 다양한 기법을 이해하고, 각 기법이 어떻게 작동하는지를 명확히 구분하는 것이 중요합니다. 특히, 타임스탬프 기법의 원리를 잘 이해하면 데이터베이스의 일관성을 유지하는 데 큰 도움이 됩니다.
59. 이전 단계의 정규형을 만족하면서 후보키를 통하지 않는 조인 종속(JD : Join Dependency) 제거해야 만족하는 정규형은?
정답을 선택하세요
1.
제3정규형
2.
제4정규형
3.
제5정규형
4.
제6정규형
정답: 3번
해설
아직 해설이 없습니다.
60. 어떤 릴레이션 R에서 X와 Y를 각각 R의 애트리뷰트 집합의 부분 집합이라고 할 경우 애트리뷰트 X의 값 각각에 대해 시간에 관계없이 항상 애트리뷰트 Y의 값이 오직 하나만 연관되어 있을 때 Y는 X에 함수 종속이라고 한다. 이 함수 종속의 표기로 옳은 것은?
정답을 선택하세요
1.
Y → X
2.
Y ⊂ X
3.
X → Y
4.
X ⊂ Y
정답: 3번
해설
[정답 근거] → 애트리뷰트 X의 값 각각에 대해 항상 애트리뷰트 Y의 값이 오직 하나만 연관되어 있다는 것은 X의 값이 주어지면 Y의 값이 유일하게 결정된다는 의미입니다. 따라서 X는 Y를 결정하는 역할을 하며, 이를 함수 종속으로 표현할 때는 "X → Y"로 표기합니다. 따라서 정답은 3번입니다.
[오답 해설] →
1. Y → X: 이는 Y의 값이 X의 값을 결정한다는 의미로, 문제의 정의와 반대입니다.
2. Y ⊂ X: 이는 Y가 X의 부분 집합이라는 의미로, 함수 종속과는 관련이 없습니다.
4. X ⊂ Y: 이는 X가 Y의 부분 집합이라는 의미로, 역시 함수 종속의 정의와 맞지 않습니다.
[관련 개념] → 함수 종속은 데이터베이스에서 애트리뷰트 간의 관계를 정의하는 중요한 개념입니다. X → Y는 X의 값이 주어졌을 때 Y의 값이 유일하게 결정된다는 것을 나타냅니다.
[학습 포인트] → 함수 종속의 표기법과 의미를 정확히 이해하는 것이 중요합니다. X가 Y를 결정하는 경우는 X → Y로 표기하며, 이를 통해 데이터베이스 설계 및 정규화 과정에서 애트리뷰트 간의 관계를 명확히 할 수 있습니다.
[오답 해설] →
1. Y → X: 이는 Y의 값이 X의 값을 결정한다는 의미로, 문제의 정의와 반대입니다.
2. Y ⊂ X: 이는 Y가 X의 부분 집합이라는 의미로, 함수 종속과는 관련이 없습니다.
4. X ⊂ Y: 이는 X가 Y의 부분 집합이라는 의미로, 역시 함수 종속의 정의와 맞지 않습니다.
[관련 개념] → 함수 종속은 데이터베이스에서 애트리뷰트 간의 관계를 정의하는 중요한 개념입니다. X → Y는 X의 값이 주어졌을 때 Y의 값이 유일하게 결정된다는 것을 나타냅니다.
[학습 포인트] → 함수 종속의 표기법과 의미를 정확히 이해하는 것이 중요합니다. X가 Y를 결정하는 경우는 X → Y로 표기하며, 이를 통해 데이터베이스 설계 및 정규화 과정에서 애트리뷰트 간의 관계를 명확히 할 수 있습니다.
61. 모듈 내 구성 요소들이 서로 다른 기능을 같은 시간대에 함께 실행하는 경우의 응집도(Cohesion)는?
정답을 선택하세요
1.
Temporal Cohesion
2.
Logical Cohesion
3.
Coincidental Cohesion
4.
Sequential Cohesion
정답: 1번
해설
[정답 근거] → 모듈 내 구성 요소들이 서로 다른 기능을 같은 시간대에 함께 실행하는 경우는 'Temporal Cohesion'에 해당합니다. 이는 특정 시간에 실행되어야 하는 기능들이 모여 있는 경우로, 시간적 연관성을 기반으로 합니다.
[오답 해설] →
2. 'Logical Cohesion'은 여러 기능이 논리적으로 관련되어 있지만, 실행 시점이 다를 수 있는 경우입니다.
3. 'Coincidental Cohesion'은 모듈 내의 구성 요소들이 아무런 관계 없이 단순히 같은 모듈에 포함된 경우를 의미합니다.
4. 'Sequential Cohesion'은 한 기능의 결과가 다음 기능의 입력으로 사용되는 경우로, 시간적 실행 순서가 중요합니다.
[관련 개념] → 응집도(Cohesion)는 모듈 내의 구성 요소들이 얼마나 밀접하게 관련되어 있는지를 나타내는 지표로, 높은 응집도는 모듈의 유지보수성과 재사용성을 높입니다.
[학습 포인트] → 응집도의 종류를 이해하고, 각 응집도가 어떤 상황에서 적용되는지를 명확히 구분하는 것이 중요합니다. 이를 통해 소프트웨어 설계 시 모듈화를 효과적으로 수행할 수 있습니다.
[오답 해설] →
2. 'Logical Cohesion'은 여러 기능이 논리적으로 관련되어 있지만, 실행 시점이 다를 수 있는 경우입니다.
3. 'Coincidental Cohesion'은 모듈 내의 구성 요소들이 아무런 관계 없이 단순히 같은 모듈에 포함된 경우를 의미합니다.
4. 'Sequential Cohesion'은 한 기능의 결과가 다음 기능의 입력으로 사용되는 경우로, 시간적 실행 순서가 중요합니다.
[관련 개념] → 응집도(Cohesion)는 모듈 내의 구성 요소들이 얼마나 밀접하게 관련되어 있는지를 나타내는 지표로, 높은 응집도는 모듈의 유지보수성과 재사용성을 높입니다.
[학습 포인트] → 응집도의 종류를 이해하고, 각 응집도가 어떤 상황에서 적용되는지를 명확히 구분하는 것이 중요합니다. 이를 통해 소프트웨어 설계 시 모듈화를 효과적으로 수행할 수 있습니다.
62. 오류 제어에 사용되는 자동반복 요청방식(ARQ)이 아닌 것은?
정답을 선택하세요
1.
Stop-and-wait ARQ
2.
Go-back-N ARQ
3.
Selective-Repeat ARQ
4.
Non-Acknowledge ARQ
정답: 4번
해설
[정답 근거] → 자동반복 요청방식(ARQ)은 데이터 전송 중 오류를 감지하고 재전송하는 방식입니다. 4번 'Non-Acknowledge ARQ'는 ARQ 방식이 아니며, 오류 제어를 위한 확인 응답(ACK)을 사용하지 않기 때문에 정답입니다.
[오답 해설] →
1. 'Stop-and-wait ARQ'는 송신자가 데이터를 전송한 후 수신자의 확인 응답을 기다리는 방식으로, ARQ의 일종입니다.
2. 'Go-back-N ARQ'는 여러 개의 프레임을 전송하고, 오류가 발생한 프레임 이후의 모든 프레임을 재전송하는 방식으로, ARQ에 해당합니다.
3. 'Selective-Repeat ARQ'는 오류가 발생한 프레임만 재전송하는 방식으로, 역시 ARQ의 한 종류입니다.
[관련 개념] → ARQ(Automatic Repeat reQuest)는 데이터 통신에서 오류를 검출하고 수정하기 위한 프로토콜로, 주로 TCP/IP와 같은 네트워크에서 사용됩니다. ARQ 방식은 효율적인 데이터 전송을 위해 확인 응답을 기반으로 작동합니다.
[학습 포인트] → ARQ의 다양한 방식(Stop-and-wait, Go-back-N, Selective-Repeat)을 이해하고, 이들이 어떻게 오류를 처리하는지 아는 것이 중요합니다. 또한, ARQ가 아닌 방식(예: Non-Acknowledge ARQ)의 특징을 구분할 수 있어야 합니다.
[오답 해설] →
1. 'Stop-and-wait ARQ'는 송신자가 데이터를 전송한 후 수신자의 확인 응답을 기다리는 방식으로, ARQ의 일종입니다.
2. 'Go-back-N ARQ'는 여러 개의 프레임을 전송하고, 오류가 발생한 프레임 이후의 모든 프레임을 재전송하는 방식으로, ARQ에 해당합니다.
3. 'Selective-Repeat ARQ'는 오류가 발생한 프레임만 재전송하는 방식으로, 역시 ARQ의 한 종류입니다.
[관련 개념] → ARQ(Automatic Repeat reQuest)는 데이터 통신에서 오류를 검출하고 수정하기 위한 프로토콜로, 주로 TCP/IP와 같은 네트워크에서 사용됩니다. ARQ 방식은 효율적인 데이터 전송을 위해 확인 응답을 기반으로 작동합니다.
[학습 포인트] → ARQ의 다양한 방식(Stop-and-wait, Go-back-N, Selective-Repeat)을 이해하고, 이들이 어떻게 오류를 처리하는지 아는 것이 중요합니다. 또한, ARQ가 아닌 방식(예: Non-Acknowledge ARQ)의 특징을 구분할 수 있어야 합니다.
63. 다음 파이썬(Python) 프로그램이 실행되었을 때의 결과는?
정답을 선택하세요
1.
45
2.
55
3.
66
4.
78
정답: 3번
해설
아직 해설이 없습니다.
64. 다음 C언어 프로그램이 실행되었을 때의 결과는?
정답을 선택하세요
1.
nation
2.
nationalter
3.
alter
4.
alternation
정답: 2번
해설
아직 해설이 없습니다.
65. JAVA에서 힙(Heap)에 남아있으나 변수가 가지고 있던 참조값을 잃거나 변수 자체가 없어짐으로써 더 이상 사용되지 않는 객체를 제거해주는 역할을 하는 모듈은?
정답을 선택하세요
1.
Heap Collector
2.
Garbage Collector
3.
Memory Collector
4.
Variable Collector
정답: 2번
해설
[정답 근거] → 2번 'Garbage Collector'는 자바에서 더 이상 사용되지 않는 객체를 자동으로 식별하고 메모리에서 제거하는 역할을 합니다. 이는 메모리 누수를 방지하고 프로그램의 효율성을 높이는 데 중요한 기능입니다.
[오답 해설] → 1번 'Heap Collector'는 일반적으로 사용되는 용어가 아니며, 힙 메모리 관리와 관련된 특정 기능을 지칭하지 않습니다. 3번 'Memory Collector'와 4번 'Variable Collector' 또한 자바에서 사용되지 않는 용어로, 메모리 관리와 관련된 기능을 정확히 설명하지 못합니다. 이들은 자바의 메모리 관리 시스템을 제대로 반영하지 못합니다.
[관련 개념] → Garbage Collector는 자바의 메모리 관리 시스템의 핵심 요소로, 자동 메모리 관리를 통해 개발자가 직접 메모리 해제를 신경 쓰지 않아도 되도록 돕습니다. 이는 객체의 생명 주기를 관리하고, 사용되지 않는 객체를 찾아내어 메모리를 회수합니다.
[학습 포인트] → 자바의 Garbage Collector는 메모리 관리의 자동화를 통해 개발자의 부담을 줄이고, 메모리 누수를 방지하는 중요한 역할을 합니다. 자바를 공부할 때 이 개념을 이해하고, Garbage Collection의 작동 방식과 종류(예: Minor GC, Major GC 등)에 대해 학습하는 것이 중요합니다.
[오답 해설] → 1번 'Heap Collector'는 일반적으로 사용되는 용어가 아니며, 힙 메모리 관리와 관련된 특정 기능을 지칭하지 않습니다. 3번 'Memory Collector'와 4번 'Variable Collector' 또한 자바에서 사용되지 않는 용어로, 메모리 관리와 관련된 기능을 정확히 설명하지 못합니다. 이들은 자바의 메모리 관리 시스템을 제대로 반영하지 못합니다.
[관련 개념] → Garbage Collector는 자바의 메모리 관리 시스템의 핵심 요소로, 자동 메모리 관리를 통해 개발자가 직접 메모리 해제를 신경 쓰지 않아도 되도록 돕습니다. 이는 객체의 생명 주기를 관리하고, 사용되지 않는 객체를 찾아내어 메모리를 회수합니다.
[학습 포인트] → 자바의 Garbage Collector는 메모리 관리의 자동화를 통해 개발자의 부담을 줄이고, 메모리 누수를 방지하는 중요한 역할을 합니다. 자바를 공부할 때 이 개념을 이해하고, Garbage Collection의 작동 방식과 종류(예: Minor GC, Major GC 등)에 대해 학습하는 것이 중요합니다.
66. 다음 C언어 프로그램이 실행되었을 때의 결과는?
정답을 선택하세요
2.
1
3.
2
4.
3
정답: 3번
해설
아직 해설이 없습니다.
67. 다음 중 JAVA에서 우선순위가 가장 낮은 연산자는?
정답을 선택하세요
1.
--
2.
%
3.
&
4.
=
정답: 4번
해설
아직 해설이 없습니다.
68. 사용자가 요청한 디스크 입·출력 내용이 다음과 같은 순서로 큐에 들어 있을 때 SSTF 스케쥴링을 사용한 경우의 처리 순서는? (단, 현재 헤드 위치는 53 이고, 제일 안쪽이 1번, 바깥쪽이 200번 트랙이다.)
정답을 선택하세요
1.
53-65-67-37-14-98-122-124-183
2.
53-98-183-37-122-14-124-65-67
3.
53-37-14-65-67-98-122-124-183
4.
53-67-65-124-14-122-37-183-98
정답: 1번
해설
아직 해설이 없습니다.
69. 192.168.1.0/24 네트워크를 FLSM 방식을 이용하여 4개의 Subnet으로 나누고 IP Subnet-zero를 적용했다. 이 때 Subnetting 된 네트워크 중 4번째 네트워크의 4번째 사용가능한 IP는 무엇인가?
정답을 선택하세요
1.
192.168.1.192
2.
192.168.1.195
3.
192.168.1.196
4.
192.168.1.198
정답: 3번
해설
[정답 근거]
192.168.1.0/24 네트워크를 FLSM 방식으로 4개의 서브넷으로 나누면 각 서브넷의 서브넷 마스크는 /26이 됩니다. 이는 각 서브넷이 64개의 IP 주소(2^6)로 구성됨을 의미합니다. 서브넷은 다음과 같이 나뉩니다:
1. 192.168.1.0/26 (사용 가능한 IP: 192.168.1.1 ~ 192.168.1.62)
2. 192.168.1.64/26 (사용 가능한 IP: 192.168.1.65 ~ 192.168.1.126)
3. 192.168.1.128/26 (사용 가능한 IP: 192.168.1.129 ~ 192.168.1.190)
4. 192.168.1.192/26 (사용 가능한 IP: 192.168.1.193 ~ 192.168.1.254)
4번째 서브넷의 4번째 사용 가능한 IP는 192.168.1.196입니다. 따라서 정답은 3번입니다.
[오답 해설]
1. 192.168.1.192: 이 IP는 4번째 서브넷의 네트워크 주소로, 사용 가능한 IP가 아닙니다.
2. 192.168.1.195: 이 IP는 4번째 서브넷의 3번째 사용 가능한 IP입니다.
4. 192.168.1.198: 이 IP는 4번째 서브넷의 6번째 사용 가능한 IP입니다.
[관련 개념]
FLSM(고정 길이 서브넷 마스크)은 동일한 크기의 서브넷을 생성하는 방법입니다. IP 주소는 네트워크 주소와 호스트 주소로 나뉘며, 서브넷팅을 통해 네트워크를 효율적으로 관리할 수 있습니다. 서브넷 마스크는 네트워크와 호스트 부분을 구분하는 데 사용됩니다.
[학습 포인트]
서브넷팅을 통해 IP 주소를 효율적으로 관리하는 방법을 이해하고, 각 서브넷의 사용 가능한 IP 범위를 계산하는 능력을 기르는 것이 중요합니다. 또한, 서브넷 제로를 적용할 때의 규칙과 사용 가능한 IP의 범위를 정확히 파악하는 것이 필요합니다.
192.168.1.0/24 네트워크를 FLSM 방식으로 4개의 서브넷으로 나누면 각 서브넷의 서브넷 마스크는 /26이 됩니다. 이는 각 서브넷이 64개의 IP 주소(2^6)로 구성됨을 의미합니다. 서브넷은 다음과 같이 나뉩니다:
1. 192.168.1.0/26 (사용 가능한 IP: 192.168.1.1 ~ 192.168.1.62)
2. 192.168.1.64/26 (사용 가능한 IP: 192.168.1.65 ~ 192.168.1.126)
3. 192.168.1.128/26 (사용 가능한 IP: 192.168.1.129 ~ 192.168.1.190)
4. 192.168.1.192/26 (사용 가능한 IP: 192.168.1.193 ~ 192.168.1.254)
4번째 서브넷의 4번째 사용 가능한 IP는 192.168.1.196입니다. 따라서 정답은 3번입니다.
[오답 해설]
1. 192.168.1.192: 이 IP는 4번째 서브넷의 네트워크 주소로, 사용 가능한 IP가 아닙니다.
2. 192.168.1.195: 이 IP는 4번째 서브넷의 3번째 사용 가능한 IP입니다.
4. 192.168.1.198: 이 IP는 4번째 서브넷의 6번째 사용 가능한 IP입니다.
[관련 개념]
FLSM(고정 길이 서브넷 마스크)은 동일한 크기의 서브넷을 생성하는 방법입니다. IP 주소는 네트워크 주소와 호스트 주소로 나뉘며, 서브넷팅을 통해 네트워크를 효율적으로 관리할 수 있습니다. 서브넷 마스크는 네트워크와 호스트 부분을 구분하는 데 사용됩니다.
[학습 포인트]
서브넷팅을 통해 IP 주소를 효율적으로 관리하는 방법을 이해하고, 각 서브넷의 사용 가능한 IP 범위를 계산하는 능력을 기르는 것이 중요합니다. 또한, 서브넷 제로를 적용할 때의 규칙과 사용 가능한 IP의 범위를 정확히 파악하는 것이 필요합니다.
70. C Class에 속하는 IP address는?
정답을 선택하세요
1.
200.168.30.1
2.
10.3.2.1 4
3.
225.2.4.1
4.
172.16.98.3
정답: 1번
해설
아직 해설이 없습니다.
71. 다음 C언어 프로그램이 실행되었을 때의 결과는?
정답을 선택하세요
2.
4
3.
8
4.
12
정답: 3번
해설
아직 해설이 없습니다.
72. 귀도 반 로섬(Guido van Rossum)이 발표한 언어로 인터프리터 방식이자 객체지향적이며, 배우기 쉽고 이식성이 좋은 것이 특징인 스크립트 언어는?
정답을 선택하세요
1.
C++
2.
JAVA
3.
C#
4.
Python
정답: 4번
해설
아직 해설이 없습니다.
73. 다음 JAVA 프로그램이 실행되었을 때의 결과를 쓰시오.
정답을 선택하세요
1.
13
2.
21
3.
34
4.
55
정답: 3번
해설
아직 해설이 없습니다.
74. 프로세스와 관련한 설명으로 틀린 것은?
정답을 선택하세요
1.
프로세스가 준비 상태에서 프로세서가 배당되어 실행 상태로 변화하는 것을 디스패치(Dispatch)라고 한다.
2.
프로세스 제어 블록(PCB, Process Control Block)은 프로세스 식별자, 프로세스 상태 등의 정보로 구성된다.
3.
이전 프로세스의 상태 레지스터 내용을 보관하고 다른 프로세스의 레지스터를 적재하는 과정을 문맥 교환(Context Switching)이라고 한다.
4.
프로세스는 스레드(Thread) 내에서 실행되는 흐름의 단위이며, 스레드와 달리 주소 공간에 실행 스택(Stack)이 없다.
정답: 4번
해설
아직 해설이 없습니다.
75. 모듈의 독립성을 높이기 위한 결합도(Coupling)와 관련한 설명으로 틀린 것은?
정답을 선택하세요
1.
오류가 발생했을 때 전파되어 다른 오류의 원인이 되는 파문 효과(Ripple Effect)를 최소화해야 한다.
2.
인터페이스가 정확히 설정되어 있지 않을 경우 불필요한 인터페이스가 나타나 모듈 사이의 의존도는 높아지고 결합도가 증가한다.
3.
모듈들이 변수를 공유하여 사용하게 하거나 제어 정보를 교류하게 함으로써 결합도를 낮추어야 한다.
4.
다른 모듈과 데이터 교류가 필요한 경우 전역변수(Global Variable)보다는 매개변수(Parameter)를 사용하는 것이 결합도를 낮추는 데 도움이 된다.
정답: 3번
해설
[정답 근거] → 3번은 "모듈들이 변수를 공유하여 사용하게 하거나 제어 정보를 교류하게 함으로써 결합도를 낮추어야 한다."라는 내용이 틀립니다. 결합도를 낮추기 위해서는 모듈 간의 의존성을 줄여야 하며, 변수를 공유하거나 제어 정보를 교류하는 것은 오히려 결합도를 높이는 결과를 초래합니다.
[오답 해설] → 1번은 파문 효과를 최소화해야 한다는 내용으로, 이는 결합도가 낮을수록 오류가 다른 모듈에 영향을 미치지 않도록 하는 것이므로 맞는 설명입니다. 2번은 인터페이스가 정확히 설정되지 않으면 의존도가 높아지고 결합도가 증가한다는 설명으로, 이는 결합도와 모듈의 독립성에 대한 올바른 이해를 반영하고 있습니다. 4번은 전역변수 대신 매개변수를 사용하는 것이 결합도를 낮추는 데 도움이 된다는 설명으로, 이는 모듈 간의 의존성을 줄이는 방법으로 맞는 설명입니다.
[관련 개념] → 결합도(Coupling)는 모듈 간의 의존성을 나타내며, 결합도가 낮을수록 모듈의 독립성이 높아집니다. 모듈 간의 의존성을 줄이기 위해서는 매개변수를 통해 데이터를 전달하고, 전역변수의 사용을 피하는 것이 중요합니다.
[학습 포인트] → 모듈 설계 시 결합도를 낮추기 위해서는 변수를 공유하거나 제어 정보를 교류하는 것을 피하고, 명확한 인터페이스를 설정하며, 매개변수를 활용하는 것이 중요합니다. 이를 통해 모듈의 독립성을 높이고 유지보수성을 향상시킬 수 있습니다.
[오답 해설] → 1번은 파문 효과를 최소화해야 한다는 내용으로, 이는 결합도가 낮을수록 오류가 다른 모듈에 영향을 미치지 않도록 하는 것이므로 맞는 설명입니다. 2번은 인터페이스가 정확히 설정되지 않으면 의존도가 높아지고 결합도가 증가한다는 설명으로, 이는 결합도와 모듈의 독립성에 대한 올바른 이해를 반영하고 있습니다. 4번은 전역변수 대신 매개변수를 사용하는 것이 결합도를 낮추는 데 도움이 된다는 설명으로, 이는 모듈 간의 의존성을 줄이는 방법으로 맞는 설명입니다.
[관련 개념] → 결합도(Coupling)는 모듈 간의 의존성을 나타내며, 결합도가 낮을수록 모듈의 독립성이 높아집니다. 모듈 간의 의존성을 줄이기 위해서는 매개변수를 통해 데이터를 전달하고, 전역변수의 사용을 피하는 것이 중요합니다.
[학습 포인트] → 모듈 설계 시 결합도를 낮추기 위해서는 변수를 공유하거나 제어 정보를 교류하는 것을 피하고, 명확한 인터페이스를 설정하며, 매개변수를 활용하는 것이 중요합니다. 이를 통해 모듈의 독립성을 높이고 유지보수성을 향상시킬 수 있습니다.
76. TCP헤더와 관련한 설명으로 틀린 것은?
정답을 선택하세요
1.
순서번호(Sequence Number)는 전달하는 바이트마다 번호가 부여된다.
2.
수신번호확인(Acknowledgement Number)은 상대편 호스트에서 받으려는 바이트의 번호를 정의한다.
3.
체크섬(Checksum)은 데이터를 포함한 세그먼트의 오류를 검사한다.
4.
윈도우 크기는 송수신 측의 버퍼 크기로 최대크기는 32767bit 이다.
정답: 4번
해설
[정답 근거] → 4번은 "윈도우 크기는 송수신 측의 버퍼 크기로 최대크기는 32767bit 이다."라는 설명이 틀립니다. TCP의 윈도우 크기는 16비트 필드로 표현되며, 최대값은 65,535 바이트(즉, 2^16 - 1)입니다. 따라서 32767 비트는 잘못된 수치입니다.
[오답 해설] → 1번, 2번, 3번은 모두 올바른 설명입니다. 1번은 순서번호가 각 바이트에 대해 부여된다는 것을 정확히 설명하고 있으며, 2번은 수신번호확인이 상대방이 기대하는 바이트 번호를 나타낸다는 점을 잘 설명하고 있습니다. 3번은 체크섬이 데이터의 오류를 검사하는 기능을 수행한다는 사실을 정확히 기술하고 있습니다.
[관련 개념] → TCP(Transmission Control Protocol)는 신뢰성 있는 데이터 전송을 위해 여러 가지 기능을 제공합니다. 여기에는 순서번호, 수신번호 확인, 체크섬, 그리고 흐름 제어를 위한 윈도우 크기 등이 포함됩니다. 윈도우 크기는 송수신 측의 버퍼 크기를 반영하며, 데이터 흐름을 조절하는 데 중요한 역할을 합니다.
[학습 포인트] → TCP 헤더의 각 필드는 데이터 전송의 신뢰성과 효율성을 보장하는 데 필수적입니다. 특히, 윈도우 크기와 같은 필드는 네트워크 성능에 큰 영향을 미치므로, TCP 프로토콜의 구조와 각 필드의 기능을 정확히 이해하는 것이 중요합니다.
[오답 해설] → 1번, 2번, 3번은 모두 올바른 설명입니다. 1번은 순서번호가 각 바이트에 대해 부여된다는 것을 정확히 설명하고 있으며, 2번은 수신번호확인이 상대방이 기대하는 바이트 번호를 나타낸다는 점을 잘 설명하고 있습니다. 3번은 체크섬이 데이터의 오류를 검사하는 기능을 수행한다는 사실을 정확히 기술하고 있습니다.
[관련 개념] → TCP(Transmission Control Protocol)는 신뢰성 있는 데이터 전송을 위해 여러 가지 기능을 제공합니다. 여기에는 순서번호, 수신번호 확인, 체크섬, 그리고 흐름 제어를 위한 윈도우 크기 등이 포함됩니다. 윈도우 크기는 송수신 측의 버퍼 크기를 반영하며, 데이터 흐름을 조절하는 데 중요한 역할을 합니다.
[학습 포인트] → TCP 헤더의 각 필드는 데이터 전송의 신뢰성과 효율성을 보장하는 데 필수적입니다. 특히, 윈도우 크기와 같은 필드는 네트워크 성능에 큰 영향을 미치므로, TCP 프로토콜의 구조와 각 필드의 기능을 정확히 이해하는 것이 중요합니다.
77. 모듈화(Modularity)와 관련한 설명으로 틀린 것은?
정답을 선택하세요
1.
소프트웨어의 모듈은 프로그래밍 언어에서 Subroutine, Function 등으로 표현될 수 있다.
2.
모듈의 수가 증가하면 상대적으로 각 모듈의 크기가 커지며, 모듈 사이의 상호교류가 감소하여 과부하(Overload) 현상이 나타난다.
3.
모듈화는 시스템을 지능적으로 관리할 수 있도록 해주며, 복잡도 문제를 해결하는 데 도움을 준다.
4.
모듈화는 시스템의 유지보수와 수정을 용이하게 한다.
정답: 2번
해설
[정답 근거] → 2번은 "모듈의 수가 증가하면 상대적으로 각 모듈의 크기가 커지며, 모듈 사이의 상호교류가 감소하여 과부하(Overload) 현상이 나타난다."라는 설명이 틀렸습니다. 모듈화의 기본 원칙은 각 모듈이 독립적이고 작게 유지되어야 한다는 것입니다. 모듈의 수가 증가하면 각 모듈의 크기는 오히려 작아지고, 모듈 간의 상호작용이 명확해져 과부하 현상이 발생하지 않습니다.
[오답 해설] → 1번은 모듈이 Subroutine이나 Function으로 표현될 수 있다는 사실을 설명하고 있어 맞습니다. 3번은 모듈화가 시스템의 복잡도를 줄이고 관리 효율성을 높인다는 점에서 올바른 설명입니다. 4번은 모듈화가 유지보수와 수정의 용이성을 제공한다는 점에서 정확합니다. 따라서 2번만이 틀린 설명입니다.
[관련 개념] → 모듈화(Modularity)는 소프트웨어 설계에서 시스템을 작은, 독립적인 모듈로 나누어 복잡도를 줄이고, 각 모듈이 특정 기능을 수행하도록 하는 원칙입니다. 이는 유지보수와 재사용성을 높이는 데 기여합니다.
[학습 포인트] → 모듈화의 중요성을 이해하고, 각 모듈의 크기와 상호작용의 관계를 명확히 인식하는 것이 필요합니다. 모듈의 수가 증가할수록 각 모듈은 작고 독립적이어야 하며, 이는 시스템의 효율성과 관리 용이성을 높이는 데 기여합니다.
[오답 해설] → 1번은 모듈이 Subroutine이나 Function으로 표현될 수 있다는 사실을 설명하고 있어 맞습니다. 3번은 모듈화가 시스템의 복잡도를 줄이고 관리 효율성을 높인다는 점에서 올바른 설명입니다. 4번은 모듈화가 유지보수와 수정의 용이성을 제공한다는 점에서 정확합니다. 따라서 2번만이 틀린 설명입니다.
[관련 개념] → 모듈화(Modularity)는 소프트웨어 설계에서 시스템을 작은, 독립적인 모듈로 나누어 복잡도를 줄이고, 각 모듈이 특정 기능을 수행하도록 하는 원칙입니다. 이는 유지보수와 재사용성을 높이는 데 기여합니다.
[학습 포인트] → 모듈화의 중요성을 이해하고, 각 모듈의 크기와 상호작용의 관계를 명확히 인식하는 것이 필요합니다. 모듈의 수가 증가할수록 각 모듈은 작고 독립적이어야 하며, 이는 시스템의 효율성과 관리 용이성을 높이는 데 기여합니다.
78. 다음 중 페이지 교체(Page Replacement)알고리즘이 아닌 것은?
정답을 선택하세요
1.
FIFO(First-In-First-Out)
2.
LUF(Least Used First)
3.
Optimal
4.
LRU(Least Recently Used)
정답: 2번
해설
[정답 근거] → 2번 LUF(Least Used First)는 페이지 교체 알고리즘으로 널리 알려진 것이 아니며, 일반적으로 사용되는 알고리즘 목록에는 포함되지 않습니다. 반면, FIFO, Optimal, LRU는 모두 페이지 교체 알고리즘으로 잘 알려져 있습니다.
[오답 해설] → 1번 FIFO는 가장 먼저 들어온 페이지를 가장 먼저 교체하는 방식이며, 3번 Optimal은 미래의 페이지 요청을 예측하여 가장 나중에 사용될 페이지를 교체하는 방식입니다. 4번 LRU는 가장 최근에 사용되지 않은 페이지를 교체하는 알고리즘입니다. 이들은 모두 페이지 교체 알고리즘으로 인정받고 있습니다.
[관련 개념] → 페이지 교체 알고리즘은 운영체제에서 메모리 관리의 일환으로 사용되며, 메모리의 효율성을 높이고 페이지 폴트(page fault)를 최소화하기 위해 설계되었습니다. 각 알고리즘은 페이지 교체 시 어떤 페이지를 선택할지를 결정하는 기준이 다릅니다.
[학습 포인트] → 페이지 교체 알고리즘의 종류와 특징을 이해하는 것은 운영체제의 메모리 관리 기법을 학습하는 데 중요합니다. 특히, 알고리즘의 효율성과 장단점을 비교하는 능력을 기르는 것이 필요합니다.
[오답 해설] → 1번 FIFO는 가장 먼저 들어온 페이지를 가장 먼저 교체하는 방식이며, 3번 Optimal은 미래의 페이지 요청을 예측하여 가장 나중에 사용될 페이지를 교체하는 방식입니다. 4번 LRU는 가장 최근에 사용되지 않은 페이지를 교체하는 알고리즘입니다. 이들은 모두 페이지 교체 알고리즘으로 인정받고 있습니다.
[관련 개념] → 페이지 교체 알고리즘은 운영체제에서 메모리 관리의 일환으로 사용되며, 메모리의 효율성을 높이고 페이지 폴트(page fault)를 최소화하기 위해 설계되었습니다. 각 알고리즘은 페이지 교체 시 어떤 페이지를 선택할지를 결정하는 기준이 다릅니다.
[학습 포인트] → 페이지 교체 알고리즘의 종류와 특징을 이해하는 것은 운영체제의 메모리 관리 기법을 학습하는 데 중요합니다. 특히, 알고리즘의 효율성과 장단점을 비교하는 능력을 기르는 것이 필요합니다.
79. C언어에서의 변수 선언으로 틀린 것은?
정답을 선택하세요
1.
int else;
2.
int Test2;
3.
int pc;
4.
int True;
정답: 1번
해설
[정답 근거] → 1번 'int else;'는 C언어에서 예약어인 'else'를 변수 이름으로 사용하고 있기 때문에 틀린 선언입니다. C언어에서는 예약어를 변수 이름으로 사용할 수 없습니다.
[오답 해설] → 2번 'int Test2;'는 변수 이름으로 유효하며, 대문자로 시작하는 이름도 허용됩니다. 3번 'int pc;'와 4번 'int True;'도 각각 유효한 변수 선언입니다. 'pc'는 소문자로 시작하는 일반적인 변수 이름이고, 'True'는 대문자로 시작하지만 C언어에서는 대문자 변수 이름도 허용됩니다.
[관련 개념] → C언어에서 변수 이름은 알파벳, 숫자, 언더스코어(_)로 구성될 수 있으며, 숫자로 시작할 수 없습니다. 또한, C언어의 예약어(예: if, else, while 등)는 변수 이름으로 사용할 수 없습니다.
[학습 포인트] → 변수 선언 시 예약어를 피하고, 변수 이름 규칙을 준수하는 것이 중요합니다. 변수 이름은 명확하고 의미 있게 설정하는 것이 좋으며, 대소문자를 구분하므로 일관성을 유지해야 합니다.
[오답 해설] → 2번 'int Test2;'는 변수 이름으로 유효하며, 대문자로 시작하는 이름도 허용됩니다. 3번 'int pc;'와 4번 'int True;'도 각각 유효한 변수 선언입니다. 'pc'는 소문자로 시작하는 일반적인 변수 이름이고, 'True'는 대문자로 시작하지만 C언어에서는 대문자 변수 이름도 허용됩니다.
[관련 개념] → C언어에서 변수 이름은 알파벳, 숫자, 언더스코어(_)로 구성될 수 있으며, 숫자로 시작할 수 없습니다. 또한, C언어의 예약어(예: if, else, while 등)는 변수 이름으로 사용할 수 없습니다.
[학습 포인트] → 변수 선언 시 예약어를 피하고, 변수 이름 규칙을 준수하는 것이 중요합니다. 변수 이름은 명확하고 의미 있게 설정하는 것이 좋으며, 대소문자를 구분하므로 일관성을 유지해야 합니다.
80. 파일 디스크립터(File Descriptor)에 대한 설명으로 틀린 것은?
정답을 선택하세요
1.
파일 관리를 위해 시스템이 필요로 하는 정보를 가지고 있다.
2.
보조기억장치에 저장되어 있다가 파일이 개방(open)되면 주기억장치로 이동된다.
3.
사용자가 파일 디스크립터를 직접 참조할 수 있다.
4.
파일 제어 블록(File Control Block)이라고도 한다.
정답: 3번
해설
[정답 근거] → 파일 디스크립터는 운영체제가 파일을 관리하기 위해 사용하는 내부 구조체로, 사용자가 직접 참조할 수 있는 것이 아니다. 사용자는 파일 디스크립터의 숫자나 핸들을 통해 간접적으로 파일에 접근하지만, 그 내부 구조나 내용을 직접적으로 다룰 수는 없다.
[오답 해설] → 1번은 파일 디스크립터가 파일 관리를 위한 정보를 포함하고 있다는 점에서 맞는 설명이다. 2번은 파일이 개방될 때 파일 디스크립터가 주기억장치로 이동한다는 설명이 맞다. 4번은 파일 디스크립터가 파일 제어 블록(File Control Block)과 관련이 있지만, 두 개념은 다르므로 혼동할 수 있다. 파일 디스크립터는 파일 제어 블록을 참조하는 역할을 한다.
[관련 개념] → 파일 디스크립터는 운영체제에서 파일을 식별하고 관리하는 데 사용되는 정수 값이며, 파일 제어 블록은 파일의 메타데이터를 포함하는 구조체이다. 파일 디스크립터는 파일 제어 블록을 통해 파일에 대한 정보를 간접적으로 접근한다.
[학습 포인트] → 파일 디스크립터와 파일 제어 블록의 차이를 이해하고, 사용자가 파일 디스크립터를 직접 참조할 수 없다는 점을 명확히 인식하는 것이 중요하다. 이를 통해 운영체제의 파일 관리 방식을 보다 잘 이해할 수 있다.
[오답 해설] → 1번은 파일 디스크립터가 파일 관리를 위한 정보를 포함하고 있다는 점에서 맞는 설명이다. 2번은 파일이 개방될 때 파일 디스크립터가 주기억장치로 이동한다는 설명이 맞다. 4번은 파일 디스크립터가 파일 제어 블록(File Control Block)과 관련이 있지만, 두 개념은 다르므로 혼동할 수 있다. 파일 디스크립터는 파일 제어 블록을 참조하는 역할을 한다.
[관련 개념] → 파일 디스크립터는 운영체제에서 파일을 식별하고 관리하는 데 사용되는 정수 값이며, 파일 제어 블록은 파일의 메타데이터를 포함하는 구조체이다. 파일 디스크립터는 파일 제어 블록을 통해 파일에 대한 정보를 간접적으로 접근한다.
[학습 포인트] → 파일 디스크립터와 파일 제어 블록의 차이를 이해하고, 사용자가 파일 디스크립터를 직접 참조할 수 없다는 점을 명확히 인식하는 것이 중요하다. 이를 통해 운영체제의 파일 관리 방식을 보다 잘 이해할 수 있다.
81. 침입탐지 시스템(IDS : Intrusion Detection System)과 관련한 설명으로 틀린 것은?
정답을 선택하세요
1.
이상 탐지 기법(Anomaly Detection)은 Signature Base나 Knowledge Base라고도 불리며 이미 발견되고 정립된 공격 패턴을 입력해두었다가 탐지 및 차단한다.
2.
HIDS(Host-Based Intrusion Detection)는 운영체제에 설정된 사용자 계정에 따라 어떤 사용자가 어떤 접근을 시도하고 어떤 작업을 했는지에 대한 기록을 남기고 추적한다.
3.
NIDS(Network-Based Intrusion Detection System)로는 대표적으로 Snort가 있다.
4.
외부 인터넷에 서비스를 제공하는 서버가 위치하는 네트워크인 DMZ(Demilitarized Zone)에는 IDS가 설치될 수 있다.
정답: 1번
해설
아직 해설이 없습니다.
82. 정보 시스템 내에서 어떤 주체가 특정 개체에 접근하려 할 때 양쪽의 보안 레이블(Security Label)에 기초하여 높은 보안 수준을 요구하는 정보(객체)가 낮은 보안 수준의 주체에게 노출되지 않도록 하는 접근 제어 방법은?
정답을 선택하세요
1.
Mandatory Access Control
2.
User Access Control
3.
Discretionary Access Control
4.
Data-Label Access Control
정답: 1번
해설
[정답 근거] → Mandatory Access Control(MAC)은 보안 레이블을 기반으로 접근을 제어하는 방법으로, 높은 보안 수준의 정보가 낮은 보안 수준의 주체에게 노출되지 않도록 합니다. 이 시스템에서는 주체와 객체 모두에 보안 레이블이 부여되어, 이 레이블에 따라 접근 권한이 결정됩니다. 따라서 정답은 1번입니다.
[오답 해설] →
2. User Access Control은 사용자가 자신의 권한에 따라 자원에 접근할 수 있도록 하는 방식으로, 보안 레이블에 기반하지 않습니다.
3. Discretionary Access Control(DAC)은 자원 소유자가 접근 권한을 설정할 수 있는 방식으로, 보안 레이블을 사용하지 않고 주체의 선택에 의존합니다.
4. Data-Label Access Control은 특정한 용어로 사용되지 않으며, MAC의 개념을 포함할 수 있지만, 명확한 정의가 부족합니다.
[관련 개념] → Mandatory Access Control(MAC)은 보안 정책을 통해 접근을 엄격하게 통제하는 방식으로, 군사 및 정부 기관에서 주로 사용됩니다. MAC은 보안 레이블을 기반으로 하여 정보의 기밀성을 유지합니다.
[학습 포인트] → 정보 시스템에서의 접근 제어 방법을 이해하고, 각 방법의 특징과 차이를 명확히 구분하는 것이 중요합니다. 특히, 보안 레이블을 활용한 MAC의 중요성을 인식하고, 이를 통해 정보 보호의 필요성을 학습하는 것이 필요합니다.
[오답 해설] →
2. User Access Control은 사용자가 자신의 권한에 따라 자원에 접근할 수 있도록 하는 방식으로, 보안 레이블에 기반하지 않습니다.
3. Discretionary Access Control(DAC)은 자원 소유자가 접근 권한을 설정할 수 있는 방식으로, 보안 레이블을 사용하지 않고 주체의 선택에 의존합니다.
4. Data-Label Access Control은 특정한 용어로 사용되지 않으며, MAC의 개념을 포함할 수 있지만, 명확한 정의가 부족합니다.
[관련 개념] → Mandatory Access Control(MAC)은 보안 정책을 통해 접근을 엄격하게 통제하는 방식으로, 군사 및 정부 기관에서 주로 사용됩니다. MAC은 보안 레이블을 기반으로 하여 정보의 기밀성을 유지합니다.
[학습 포인트] → 정보 시스템에서의 접근 제어 방법을 이해하고, 각 방법의 특징과 차이를 명확히 구분하는 것이 중요합니다. 특히, 보안 레이블을 활용한 MAC의 중요성을 인식하고, 이를 통해 정보 보호의 필요성을 학습하는 것이 필요합니다.
83. 구글의 구글 브레인 팀이 제작하여 공개한 기계 학습(Machine Leaming)을 위한 오픈소스 소프트웨어 라이브러리는?
정답을 선택하세요
1.
타조(Tajo)
2.
원 세그(One Seg)
3.
포스퀘어(Foursquare)
4.
텐서플로(TensorFlow)
정답: 4번
해설
아직 해설이 없습니다.
84. 국내 IT 서비스 경쟁력 강화를 목표로 개발되었으며 인프라 제어 및 관리 환경, 실행 환경, 개발 환경, 서비스 환경, 운영환경으로 구성되어 있는 개방형 클라우드 컴퓨팅 플랫폼은?
정답을 선택하세요
1.
N20S
2.
PaaS-TA
3.
KAWS
4.
Metaverse
정답: 2번
해설
[정답 근거] → PaaS-TA(Platform as a Service - Technology Adaptation)는 국내 IT 서비스 경쟁력 강화를 위해 개발된 개방형 클라우드 컴퓨팅 플랫폼으로, 인프라 제어 및 관리 환경, 실행 환경, 개발 환경, 서비스 환경, 운영 환경으로 구성되어 있습니다. 이는 클라우드 서비스의 다양한 요구를 충족시키기 위해 설계되었습니다.
[오답 해설] →
1. N20S: N20S는 특정 클라우드 플랫폼이 아닌, 특정 기술이나 제품을 지칭하지 않기 때문에 문제의 설명과 맞지 않습니다.
3. KAWS: KAWS는 주로 예술과 디자인 분야에서 알려진 브랜드로, IT 서비스와 관련이 없습니다.
4. Metaverse: 메타버스는 가상 현실과 관련된 개념으로, 클라우드 컴퓨팅 플랫폼과는 다른 범주에 속합니다.
[학습 포인트] → PaaS(Platform as a Service)는 클라우드 컴퓨팅의 한 형태로, 개발자에게 애플리케이션 개발 및 배포에 필요한 플랫폼을 제공합니다. PaaS-TA는 이러한 PaaS의 국내 적응형 버전으로, 한국의 IT 환경에 맞춰진 서비스입니다. 클라우드 컴퓨팅의 다양한 모델(PaaS, IaaS, SaaS 등)과 그 특징을 이해하는 것이 중요합니다.
[오답 해설] →
1. N20S: N20S는 특정 클라우드 플랫폼이 아닌, 특정 기술이나 제품을 지칭하지 않기 때문에 문제의 설명과 맞지 않습니다.
3. KAWS: KAWS는 주로 예술과 디자인 분야에서 알려진 브랜드로, IT 서비스와 관련이 없습니다.
4. Metaverse: 메타버스는 가상 현실과 관련된 개념으로, 클라우드 컴퓨팅 플랫폼과는 다른 범주에 속합니다.
[학습 포인트] → PaaS(Platform as a Service)는 클라우드 컴퓨팅의 한 형태로, 개발자에게 애플리케이션 개발 및 배포에 필요한 플랫폼을 제공합니다. PaaS-TA는 이러한 PaaS의 국내 적응형 버전으로, 한국의 IT 환경에 맞춰진 서비스입니다. 클라우드 컴퓨팅의 다양한 모델(PaaS, IaaS, SaaS 등)과 그 특징을 이해하는 것이 중요합니다.
85. 정보 보안을 위한 접근 제어(Access Control)과 관련한 설명으로 틀린 것은?
정답을 선택하세요
1.
적절한 권한을 가진 인가자만 특정 시스템이나 정보에 접근할 수 있도록 통제하는 것이다.
2.
시스템 및 네트워크에 대한 접근 제어의 가장 기본적인 수단은 IP와 서비스 포트로 볼 수 있다.
3.
DBMS에 보안 정책을 적용하는 도구인 XDMCP를 통해 데이터베이스에 대한 접근제어를 수행할 수 있다.
4.
네트워크 장비에서 수행하는 IP에 대한 접근 제어로는 관리 인터페이스의 접근제어와 ACL(Access Control List) 등 있다.
정답: 3번
해설
[정답 근거] → 3번은 XDMCP(X Display Manager Control Protocol)가 데이터베이스 접근 제어와 관련된 도구가 아니라는 점에서 틀립니다. XDMCP는 주로 X 윈도우 시스템에서 원격 디스플레이를 관리하는 프로토콜로, 데이터베이스의 보안 정책을 적용하는 도구가 아닙니다.
[오답 해설] → 1번은 접근 제어의 기본 개념을 정확히 설명하고 있으며, 적절한 권한을 가진 사용자만 접근할 수 있도록 하는 것이 접근 제어의 핵심입니다. 2번은 IP와 서비스 포트가 접근 제어의 기본 수단으로 사용된다는 점에서 맞는 설명입니다. 4번은 네트워크 장비에서의 접근 제어 방법으로 ACL을 언급하며, 이는 실제로 사용되는 접근 제어 기술이므로 올바른 설명입니다.
[관련 핵심 개념] → 접근 제어는 정보 보안의 중요한 요소로, 사용자나 시스템이 특정 자원에 접근할 수 있는 권한을 관리하는 과정입니다. 이에는 인증(Authentication), 인가(Authorization), 접근 제어 목록(ACL) 등이 포함됩니다.
[학습 포인트] → 접근 제어의 다양한 방법과 도구를 이해하고, 각 도구의 용도와 기능을 명확히 구분하는 것이 중요합니다. 특히, XDMCP와 같은 프로토콜의 용도를 정확히 알고, 데이터베이스 보안과 관련된 다른 도구들(예: RBAC, DAC 등)과 비교하는 것이 필요합니다.
[오답 해설] → 1번은 접근 제어의 기본 개념을 정확히 설명하고 있으며, 적절한 권한을 가진 사용자만 접근할 수 있도록 하는 것이 접근 제어의 핵심입니다. 2번은 IP와 서비스 포트가 접근 제어의 기본 수단으로 사용된다는 점에서 맞는 설명입니다. 4번은 네트워크 장비에서의 접근 제어 방법으로 ACL을 언급하며, 이는 실제로 사용되는 접근 제어 기술이므로 올바른 설명입니다.
[관련 핵심 개념] → 접근 제어는 정보 보안의 중요한 요소로, 사용자나 시스템이 특정 자원에 접근할 수 있는 권한을 관리하는 과정입니다. 이에는 인증(Authentication), 인가(Authorization), 접근 제어 목록(ACL) 등이 포함됩니다.
[학습 포인트] → 접근 제어의 다양한 방법과 도구를 이해하고, 각 도구의 용도와 기능을 명확히 구분하는 것이 중요합니다. 특히, XDMCP와 같은 프로토콜의 용도를 정확히 알고, 데이터베이스 보안과 관련된 다른 도구들(예: RBAC, DAC 등)과 비교하는 것이 필요합니다.
86. 소프트웨어 개발 프레임워크와 관련한 설명으로 틀린 것은?
정답을 선택하세요
1.
반제품 상태의 제품을 토대로 도메인별로 필요한 서비스 컴포넌트를 사용하여 재사용성 확대와 성능을 보장 받을 수 있게하는 개발 소프트웨어이다.
2.
개발해야 할 애플리케이션의 일부분이 이미구현되어 있어 동일한 로직 반복을 줄일 수있다.
3.
라이브러리와 달리 사용자 코드가 직접호출하여 사용하기 때문에 소프트웨어 개발프레임워크가 직접 코드의 흐름을 제어할수 없다.
4.
생산성 향상과 유지보수성 향상 등의장점이 있다.
정답: 3번
해설
아직 해설이 없습니다.
87. 물리적 배치와 상관없이 논리적으로 LAN을구성하여 Broadcast Domain을 구분할 수있게 해주는 기술로 접속된 장비들의 성능향상 및 보안성 증대 효과가 있는 것은?
정답을 선택하세요
1.
VLAN
2.
STP
3.
L2AN
4.
ARP
정답: 1번
해설
[정답 근거] → VLAN(가상 LAN)은 물리적 배치와 관계없이 논리적으로 네트워크를 분할하여 브로드캐스트 도메인을 구분할 수 있게 해주는 기술입니다. 이를 통해 접속된 장비들의 성능을 향상시키고 보안성을 높일 수 있습니다. VLAN을 사용하면 서로 다른 VLAN에 속한 장비들은 서로의 트래픽을 볼 수 없으므로 보안이 강화됩니다.
[오답 해설] →
2. STP(스패닝 트리 프로토콜)는 네트워크의 루프를 방지하기 위한 기술로, 브로드캐스트 도메인을 구분하는 기능은 없습니다.
3. L2AN(레이어 2 액세스 네트워크)은 특정한 기술이 아니라 일반적인 네트워크 아키텍처를 의미하며, VLAN과 같은 브로드캐스트 도메인 구분 기능을 제공하지 않습니다.
4. ARP(주소 해석 프로토콜)는 IP 주소를 MAC 주소로 변환하는 프로토콜로, 네트워크의 구조를 구분하는 기능과는 관련이 없습니다.
[관련 개념] → VLAN은 네트워크의 효율성을 높이고 보안을 강화하는 데 중요한 역할을 합니다. VLAN을 통해 네트워크 관리자는 물리적 장비에 구애받지 않고 논리적으로 네트워크를 구성할 수 있습니다.
[학습 포인트] → VLAN의 이해는 현대 네트워크 설계에서 필수적입니다. VLAN을 통해 네트워크 성능을 최적화하고 보안을 강화하는 방법을 배우는 것이 중요합니다.
[오답 해설] →
2. STP(스패닝 트리 프로토콜)는 네트워크의 루프를 방지하기 위한 기술로, 브로드캐스트 도메인을 구분하는 기능은 없습니다.
3. L2AN(레이어 2 액세스 네트워크)은 특정한 기술이 아니라 일반적인 네트워크 아키텍처를 의미하며, VLAN과 같은 브로드캐스트 도메인 구분 기능을 제공하지 않습니다.
4. ARP(주소 해석 프로토콜)는 IP 주소를 MAC 주소로 변환하는 프로토콜로, 네트워크의 구조를 구분하는 기능과는 관련이 없습니다.
[관련 개념] → VLAN은 네트워크의 효율성을 높이고 보안을 강화하는 데 중요한 역할을 합니다. VLAN을 통해 네트워크 관리자는 물리적 장비에 구애받지 않고 논리적으로 네트워크를 구성할 수 있습니다.
[학습 포인트] → VLAN의 이해는 현대 네트워크 설계에서 필수적입니다. VLAN을 통해 네트워크 성능을 최적화하고 보안을 강화하는 방법을 배우는 것이 중요합니다.
88. SQL Injection 공격과 관련한 설명으로 틀린것은?
정답을 선택하세요
1.
SQL Injection은 임의로 작성한 SQL 구문을 애플리케이션에 삽입하는 공격방식이다.
2.
SQL Injection 취약점이 발생하는 곳은 주로웹 애플리케이션과 데이터베이스가 연동되는 부분이다.
3.
DBMS의 종류와 관계없이 SQL Injection공격 기법은 모두 동일하다.
4.
로그인과 같이 웹에서 사용자의 입력 값을 받아 데이터베이스 SQL문으로 데이터를요청하는 경우 SQL Injection을 수행할 수 있다.
정답: 3번
해설
[정답 근거] → 3번은 "DBMS의 종류와 관계없이 SQL Injection 공격 기법은 모두 동일하다"라는 내용으로, 이는 사실이 아닙니다. SQL Injection 공격 기법은 데이터베이스 관리 시스템(DBMS)의 종류에 따라 다르게 적용될 수 있습니다. 예를 들어, MySQL과 Oracle은 SQL 문법이 다르기 때문에 공격 방식도 차이가 날 수 있습니다.
[오답 해설] → 1번, 2번, 4번은 모두 SQL Injection에 대한 정확한 설명입니다. 1번은 SQL Injection의 기본 개념을 설명하고, 2번은 취약점 발생 위치를 언급하며, 4번은 사용자의 입력값을 통해 공격이 가능하다는 점을 강조합니다. 따라서 이들은 모두 옳은 설명입니다.
[관련 개념] → SQL Injection은 웹 애플리케이션의 입력값 검증이 미흡할 때 발생하는 보안 취약점입니다. 공격자는 악의적인 SQL 코드를 삽입하여 데이터베이스에 접근하거나 조작할 수 있습니다. DBMS의 종류에 따라 SQL 문법이 다르기 때문에 공격 기법도 다양해질 수 있습니다.
[학습 포인트] → SQL Injection 공격을 방지하기 위해서는 사용자 입력값에 대한 철저한 검증과 준비된 문(prepared statement) 사용이 중요합니다. 또한, 각 DBMS의 특성을 이해하고 그에 맞는 보안 대책을 마련하는 것이 필요합니다.
[오답 해설] → 1번, 2번, 4번은 모두 SQL Injection에 대한 정확한 설명입니다. 1번은 SQL Injection의 기본 개념을 설명하고, 2번은 취약점 발생 위치를 언급하며, 4번은 사용자의 입력값을 통해 공격이 가능하다는 점을 강조합니다. 따라서 이들은 모두 옳은 설명입니다.
[관련 개념] → SQL Injection은 웹 애플리케이션의 입력값 검증이 미흡할 때 발생하는 보안 취약점입니다. 공격자는 악의적인 SQL 코드를 삽입하여 데이터베이스에 접근하거나 조작할 수 있습니다. DBMS의 종류에 따라 SQL 문법이 다르기 때문에 공격 기법도 다양해질 수 있습니다.
[학습 포인트] → SQL Injection 공격을 방지하기 위해서는 사용자 입력값에 대한 철저한 검증과 준비된 문(prepared statement) 사용이 중요합니다. 또한, 각 DBMS의 특성을 이해하고 그에 맞는 보안 대책을 마련하는 것이 필요합니다.
89. 비대칭 암호화 방식으로 소수를 활용한암호화 알고리즘은?
정답을 선택하세요
1.
DES
2.
AES
3.
SMT
4.
RSA
정답: 4번
해설
[정답 근거] → RSA(Rivest-Shamir-Adleman) 알고리즘은 비대칭 암호화 방식으로, 소수를 활용하여 공개키와 개인키를 생성합니다. 이 알고리즘은 두 개의 큰 소수를 곱하여 모듈러 연산을 사용하고, 이를 통해 암호화와 복호화를 수행합니다. 따라서 주어진 질문에 적합한 정답입니다.
[오답 해설]
1. DES(Data Encryption Standard): 대칭 암호화 방식으로, 동일한 키를 사용하여 암호화와 복호화를 수행합니다. 소수를 활용하지 않습니다.
2. AES(Advanced Encryption Standard): 역시 대칭 암호화 방식으로, 비트 단위로 데이터를 처리하며 소수를 사용하지 않습니다.
3. SMT(Secure Multi-Party Computation): 비대칭 암호화 방식이 아니며, 여러 당사자가 협력하여 계산을 수행하는 방법입니다. 소수를 활용한 암호화 알고리즘이 아닙니다.
[학습 포인트] 비대칭 암호화는 공개키와 개인키를 사용하는 방식으로, RSA와 같은 알고리즘이 소수를 활용하여 보안을 강화합니다. 반면, DES와 AES는 대칭 암호화 방식으로, 동일한 키를 사용하여 암호화와 복호화를 수행하므로 소수를 활용하지 않습니다. 이러한 차이를 이해하는 것이 중요합니다.
[오답 해설]
1. DES(Data Encryption Standard): 대칭 암호화 방식으로, 동일한 키를 사용하여 암호화와 복호화를 수행합니다. 소수를 활용하지 않습니다.
2. AES(Advanced Encryption Standard): 역시 대칭 암호화 방식으로, 비트 단위로 데이터를 처리하며 소수를 사용하지 않습니다.
3. SMT(Secure Multi-Party Computation): 비대칭 암호화 방식이 아니며, 여러 당사자가 협력하여 계산을 수행하는 방법입니다. 소수를 활용한 암호화 알고리즘이 아닙니다.
[학습 포인트] 비대칭 암호화는 공개키와 개인키를 사용하는 방식으로, RSA와 같은 알고리즘이 소수를 활용하여 보안을 강화합니다. 반면, DES와 AES는 대칭 암호화 방식으로, 동일한 키를 사용하여 암호화와 복호화를 수행하므로 소수를 활용하지 않습니다. 이러한 차이를 이해하는 것이 중요합니다.
90. 다음에서 설명하는 IT 스토리지 기술은?
정답을 선택하세요
1.
Software Defined Storage
2.
Distribution Oriented Storage
3.
Network Architected Storage
4.
Systematic Network Storage
정답: 1번
해설
아직 해설이 없습니다.
91. Cocomo model 중 기관 내부에서 개발된 중소규모의 소프트웨어로 일괄 자료 처리나 과학기술계산용, 비즈니스 자료 처리용으로 5만 라인이하의 소프트웨어를 개발하는 유형은?
정답을 선택하세요
1.
Embeded
2.
Organic
3.
Semi-detached
4.
Semi-embeded
정답: 2번
해설
[정답 근거] → Cocomo 모델에서 "Organic" 유형은 소규모, 비즈니스 자료 처리용 소프트웨어를 개발하는 경우에 해당합니다. 이 유형은 개발팀이 경험이 많고, 요구사항이 명확하며, 개발 환경이 안정적인 경우에 적합합니다. 5만 라인 이하의 소프트웨어는 이 범주에 잘 맞아떨어지므로 정답입니다.
[오답 해설] →
1. "Embeded"는 주로 하드웨어에 통합된 소프트웨어를 의미하며, 일반적으로 실시간 시스템이나 특정 기능을 수행하는 소프트웨어에 해당합니다. 따라서 중소규모의 비즈니스 소프트웨어와는 관련이 없습니다.
2. "Semi-detached"는 중간 규모의 프로젝트에 적합하며, 팀의 경험이 다양하고 요구사항이 불확실한 경우에 해당합니다. 이 경우는 중소규모 소프트웨어에 적합하지 않습니다.
3. "Semi-embeded"는 특정한 하드웨어와의 결합이 필요한 소프트웨어를 의미하며, 일반적인 비즈니스 소프트웨어와는 거리가 있습니다.
[관련 개념] → Cocomo 모델은 소프트웨어 개발의 비용과 시간을 추정하기 위해 사용되는 모델로, 프로젝트의 특성에 따라 여러 유형(Organic, Semi-detached, Embedded 등)으로 나뉩니다. 각 유형은 팀의 경험, 프로젝트 규모, 요구사항의 명확성에 따라 다릅니다.
[학습 포인트] → Cocomo 모델의 각 유형을 이해하고, 소프트웨어 개발 프로젝트의 특성에 맞는 유형을 선택하는 것이 중요합니다. 이를 통해 개발 비용과 시간을 보다 정확하게 추정할 수 있습니다.
[오답 해설] →
1. "Embeded"는 주로 하드웨어에 통합된 소프트웨어를 의미하며, 일반적으로 실시간 시스템이나 특정 기능을 수행하는 소프트웨어에 해당합니다. 따라서 중소규모의 비즈니스 소프트웨어와는 관련이 없습니다.
2. "Semi-detached"는 중간 규모의 프로젝트에 적합하며, 팀의 경험이 다양하고 요구사항이 불확실한 경우에 해당합니다. 이 경우는 중소규모 소프트웨어에 적합하지 않습니다.
3. "Semi-embeded"는 특정한 하드웨어와의 결합이 필요한 소프트웨어를 의미하며, 일반적인 비즈니스 소프트웨어와는 거리가 있습니다.
[관련 개념] → Cocomo 모델은 소프트웨어 개발의 비용과 시간을 추정하기 위해 사용되는 모델로, 프로젝트의 특성에 따라 여러 유형(Organic, Semi-detached, Embedded 등)으로 나뉩니다. 각 유형은 팀의 경험, 프로젝트 규모, 요구사항의 명확성에 따라 다릅니다.
[학습 포인트] → Cocomo 모델의 각 유형을 이해하고, 소프트웨어 개발 프로젝트의 특성에 맞는 유형을 선택하는 것이 중요합니다. 이를 통해 개발 비용과 시간을 보다 정확하게 추정할 수 있습니다.
92. 다음 내용이 설명하는 것은?
정답을 선택하세요
1.
Format String
2.
Ransomware
3.
Buffer overflow
4.
Adware
정답: 2번
해설
아직 해설이 없습니다.
93. 생명주기 모형 중 가장 오래된 모형으로 많은적용 사례가 있지만 요구사항의 변경이어렵고 각 단계의 결과가 확인 되어야 다음단계로 넘어갈 수 있는 선형 순차적, 고전적생명 주기 모형이라고도 하는 것은?
정답을 선택하세요
1.
Waterfall Model
2.
Prototype Model
3.
Cocomo Model
4.
Spiral Model
정답: 1번
해설
아직 해설이 없습니다.
94. 소프트웨어 생명주기 모형 중 Spiral Model에 대한 설명으로 틀린 것은?
정답을 선택하세요
1.
비교적 대규모 시스템에 적합하다.
2.
개발 순서는 계획 및 정의, 위험 분석, 공학적 개발, 고객 평가 순으로 진행된다.
3.
소프트웨어를 개발하면서 발생할 수 있는 위험을 관리하고 최소화하는 것을 목적으로 한다.
4.
계획, 설계, 개발, 평가의 개발 주기가 한번만 수행된다.
정답: 4번
해설
아직 해설이 없습니다.
95. 특정 사이트에 매우 많은 ICMP Echo를 보내면, 이에 대한 응답(Respond)을 하기 위해 시스템 자원을 모두 사용해버려 시스템이 정상적으로 동작하지 못하도록 하는 공격방법은?
정답을 선택하세요
1.
Role-Based Access Control
2.
Ping Flood
3.
Brute-Force
4.
Trojan Horses
정답: 2번
해설
[정답 근거] → Ping Flood는 ICMP Echo 요청을 대량으로 보내서 대상 시스템의 자원을 소모시키는 공격 방법입니다. 이로 인해 시스템이 정상적으로 동작하지 못하게 됩니다. 따라서 주어진 질문에 대한 정답은 2번입니다.
[오답 해설]
1. Role-Based Access Control: 사용자의 역할에 따라 접근 권한을 관리하는 보안 모델로, 네트워크 공격과는 관련이 없습니다.
3. Brute-Force: 암호나 키를 찾기 위해 가능한 모든 조합을 시도하는 공격 방식으로, ICMP Echo와는 관련이 없습니다.
4. Trojan Horses: 정상 프로그램처럼 보이지만 악성 코드를 포함한 프로그램으로, 네트워크 자원 소모 공격과는 다른 개념입니다.
[관련 개념] ICMP(Internet Control Message Protocol)는 네트워크 장치 간 오류 메시지 및 진단 정보를 전송하는 프로토콜입니다. Ping Flood는 이 프로토콜을 이용한 서비스 거부(DoS) 공격의 일종입니다.
[학습 포인트] 네트워크 보안에서 다양한 공격 기법을 이해하고, 각 기법의 특징과 작동 방식을 파악하는 것이 중요합니다. Ping Flood와 같은 DoS 공격에 대한 방어 방법도 함께 학습해야 합니다.
[오답 해설]
1. Role-Based Access Control: 사용자의 역할에 따라 접근 권한을 관리하는 보안 모델로, 네트워크 공격과는 관련이 없습니다.
3. Brute-Force: 암호나 키를 찾기 위해 가능한 모든 조합을 시도하는 공격 방식으로, ICMP Echo와는 관련이 없습니다.
4. Trojan Horses: 정상 프로그램처럼 보이지만 악성 코드를 포함한 프로그램으로, 네트워크 자원 소모 공격과는 다른 개념입니다.
[관련 개념] ICMP(Internet Control Message Protocol)는 네트워크 장치 간 오류 메시지 및 진단 정보를 전송하는 프로토콜입니다. Ping Flood는 이 프로토콜을 이용한 서비스 거부(DoS) 공격의 일종입니다.
[학습 포인트] 네트워크 보안에서 다양한 공격 기법을 이해하고, 각 기법의 특징과 작동 방식을 파악하는 것이 중요합니다. Ping Flood와 같은 DoS 공격에 대한 방어 방법도 함께 학습해야 합니다.
96. TCP/IP 기반 네트워크에서 동작하는 발행-구독 기반의 메시징 프로토콜로 최근 IoT 환경에서 자주 사용되고 있는 프로토콜은?
정답을 선택하세요
1.
MLFQ
2.
MQTT
3.
Zigbee
4.
MTSP
정답: 2번
해설
[정답 근거] → MQTT(메시지 큐잉 텔레메트리 전송)는 TCP/IP 기반의 발행-구독 모델을 사용하는 경량 메시징 프로토콜로, IoT 환경에서 장치 간의 통신에 적합합니다. 이 프로토콜은 낮은 대역폭과 높은 지연 시간을 고려하여 설계되었기 때문에 IoT 기기들이 자주 사용합니다.
[오답 해설]
1. MLFQ: 다단계 피드백 큐(Multi-Level Feedback Queue)는 프로세스 스케줄링 알고리즘으로, 메시징 프로토콜과는 관련이 없습니다.
3. Zigbee: Zigbee는 저전력 무선 통신 프로토콜로, 주로 센서 네트워크에 사용되지만 발행-구독 모델을 따르지 않습니다.
4. MTSP: MTSP(Mobile Target Search Protocol)는 모바일 환경에서의 타겟 검색을 위한 프로토콜로, 메시징과는 관련이 없습니다.
[관련 개념] MQTT는 발행-구독 모델을 기반으로 하여, 클라이언트가 특정 주제에 메시지를 발행하거나 구독할 수 있게 하여 효율적인 데이터 전송을 가능하게 합니다. 이 방식은 IoT 기기와 서버 간의 비동기 통신을 지원합니다.
[학습 포인트] MQTT는 IoT 환경에서의 효율적인 데이터 전송을 위해 설계된 프로토콜로, 발행-구독 모델의 이해와 함께 TCP/IP 네트워크의 기본 원리를 학습하는 것이 중요합니다.
[오답 해설]
1. MLFQ: 다단계 피드백 큐(Multi-Level Feedback Queue)는 프로세스 스케줄링 알고리즘으로, 메시징 프로토콜과는 관련이 없습니다.
3. Zigbee: Zigbee는 저전력 무선 통신 프로토콜로, 주로 센서 네트워크에 사용되지만 발행-구독 모델을 따르지 않습니다.
4. MTSP: MTSP(Mobile Target Search Protocol)는 모바일 환경에서의 타겟 검색을 위한 프로토콜로, 메시징과는 관련이 없습니다.
[관련 개념] MQTT는 발행-구독 모델을 기반으로 하여, 클라이언트가 특정 주제에 메시지를 발행하거나 구독할 수 있게 하여 효율적인 데이터 전송을 가능하게 합니다. 이 방식은 IoT 기기와 서버 간의 비동기 통신을 지원합니다.
[학습 포인트] MQTT는 IoT 환경에서의 효율적인 데이터 전송을 위해 설계된 프로토콜로, 발행-구독 모델의 이해와 함께 TCP/IP 네트워크의 기본 원리를 학습하는 것이 중요합니다.
97. 시스템이 몇 대가 되어도 하나의 시스템에서 인증에 성공하면 다른 시스템에 대한 접근권한도 얻는 시스템을 의미하는 것은?
정답을 선택하세요
1.
SOS
2.
SBO
3.
SSO
4.
SOA
정답: 3번
해설
아직 해설이 없습니다.
98. 시스템에 저장되는 패스워드들은 Hash 또는 암호화 알고리즘의 결과 값으로 저장된다. 이때 암호공격을 막기 위해 똑같은 패스워드들이 다른 암호 값으로 저장되도록 추가되는 값을 의미하는 것은?
정답을 선택하세요
1.
Pass flag
2.
Bucket
3.
Opcode
4.
Salt
정답: 4번
해설
[정답 근거] → 정답인 4번 'Salt'는 동일한 패스워드가 입력되더라도 각기 다른 해시 값을 생성하기 위해 추가되는 임의의 데이터입니다. 이를 통해 공격자가 해시 값을 미리 계산해 놓고 패스워드를 추측하는 공격(예: 레인보우 테이블 공격)을 방지할 수 있습니다.
[오답 해설] →
1. 1번 'Pass flag'는 패스워드의 상태나 속성을 나타내는 플래그로, 해시나 암호화와는 관련이 없습니다.
2. 2번 'Bucket'은 데이터 구조에서 데이터를 저장하는 단위를 의미하며, 해시 함수와 관련된 개념이지만 패스워드 저장 방식과는 직접적인 연관이 없습니다.
3. 3번 'Opcode'는 컴퓨터 프로그래밍에서 특정 작업을 수행하는 명령어를 의미하며, 패스워드 저장과는 관련이 없습니다.
[학습 포인트] → 패스워드를 안전하게 저장하기 위해 'Salt'를 사용하는 방법을 이해하는 것이 중요합니다. Salt는 해시 함수와 함께 사용되어 동일한 패스워드라도 고유한 해시 값을 생성하게 하여 보안성을 높이는 역할을 합니다. 이를 통해 해시 기반 공격을 효과적으로 방어할 수 있습니다.
[오답 해설] →
1. 1번 'Pass flag'는 패스워드의 상태나 속성을 나타내는 플래그로, 해시나 암호화와는 관련이 없습니다.
2. 2번 'Bucket'은 데이터 구조에서 데이터를 저장하는 단위를 의미하며, 해시 함수와 관련된 개념이지만 패스워드 저장 방식과는 직접적인 연관이 없습니다.
3. 3번 'Opcode'는 컴퓨터 프로그래밍에서 특정 작업을 수행하는 명령어를 의미하며, 패스워드 저장과는 관련이 없습니다.
[학습 포인트] → 패스워드를 안전하게 저장하기 위해 'Salt'를 사용하는 방법을 이해하는 것이 중요합니다. Salt는 해시 함수와 함께 사용되어 동일한 패스워드라도 고유한 해시 값을 생성하게 하여 보안성을 높이는 역할을 합니다. 이를 통해 해시 기반 공격을 효과적으로 방어할 수 있습니다.
99. S/W 각 기능의 원시 코드 라인수의 비관치, 낙관치, 기대치를 측정하여 예측치를 구하고 이를 이용하여 비용을 산정하는 기법은?
정답을 선택하세요
1.
Effort Per Task기법
2.
전문가 감정 기법
3.
델파이기법
4.
LOC기법
정답: 4번
해설
아직 해설이 없습니다.
100. 오픈소스 웹 애플리케이션 보안 프로젝트로서 주로 웹을 통한 정보 유출, 악성 파일 및 스크립트, 보안 취약점 등을 연구하는 곳은?
정답을 선택하세요
1.
WWW
2.
OWASP
3.
WBSEC
4.
ITU
정답: 2번
해설
아직 해설이 없습니다.
문제 목록
문제 정보
강의: 정보처리기사
연도: 2021-08-14
총 문제: 100문제
현재 문제: 1번
댓글 0
댓글 수정
정정요청
문제에 오류가 있거나 개선사항이 있다면 정정요청을 보내주세요. 빠르게 확인하고 수정하겠습니다.