정보처리기사 필기 기출문제복원 (2021-08-14)

정보처리기사 2021-08-14 필기 기출문제 해설

이 페이지는 정보처리기사 2021-08-14 기출문제를 CBT 방식으로 풀이하고 정답 및 회원들의 상세 해설을 확인할 수 있는 페이지입니다.

정보처리기사
(2021-08-14 기출문제)

목록

1과목: 소프트웨어 설계

1. 요구사항 검증(Requirements Validation)과 관련한 설명으로 틀린 것은?

  1. 요구사항이 고객이 정말 원하는 시스템을 제대로 정의하고 있는지 점검하는 과정이다.
  2. 개발완료 이후에 문제점이 발견될 경우 막대한 재작업 비용이 들 수 있기 때문에 요구사항 검증은 매우 중요하다.
  3. 요구사항이 실제 요구를 반영하는지, 문서상의 요구사항은 서로 상충되지 않는지 등을 점검한다.
  4. 요구사항 검증 과정을 통해 모든 요구사항 문제를 발견할 수 있다.
(정답률: 92%)
  • 요구사항 검증 과정을 통해 많은 오류를 잡아낼 수 있지만, 현실적으로 모든 요구사항 문제를 완벽하게 발견하는 것은 불가능합니다.

    오답 노트

    요구사항 검증: 고객의 실제 요구 반영 여부와 문서 간 상충 여부를 점검하며, 개발 후 발견 시 막대한 재작업 비용이 발생하므로 매우 중요함
profile_image
1

*오류신고 접수시 100포인트 지급해드립니다.

2. UML 모델에서 한 사물의 명세가 바뀌면 다른사물에 영향을 주며, 일반적으로 한 클래스가 다른 클래스를 오퍼레이션의 매개변수로 사용하는 경우에 나타나는 관계는?

  1. Association
  2. Dependency
  3. Realization
  4. Generalization
(정답률: 69%)
  • 한 사물의 명세가 변경되었을 때 다른 사물에 영향을 주는 관계를 의존 관계(Dependency)라고 합니다. 특히 한 클래스가 다른 클래스를 오퍼레이션의 매개변수로 사용하는 경우에 전형적으로 나타납니다.

    오답 노트

    Association: 두 클래스 간의 연결과 상호작용을 표현하는 연관 관계
    Realization: 인터페이스를 실제로 구현하는 실체화 관계
    Generalization: 부모 클래스의 특성을 물려받는 상속/일반화 관계
profile_image
1

*오류신고 접수시 100포인트 지급해드립니다.

3. 익스트림 프로그래밍 (XP)에 대한 설명으로 틀린 것은?

  1. 빠른 개발을 위해 테스트를 수행하지 않는다.
  2. 사용자의 요구사항은 언제든지 변할 수있다.
  3. 고객과 직접 대면하며 요구사항을 이야기하기 위해 사용자 스토리(User Story)를 활용할 수 있다.
  4. 기존의 방법론에 비해 실용성(Pragmatism)을 강조한 것이라고 볼 수있다.
(정답률: 93%)
  • XP(익스트림 프로그래밍)는 빠른 개발을 지향하지만, 테스트를 생략하는 것이 아니라 오히려 매우 강조하는 방법론입니다. 사용자 스토리에는 간단한 테스트 케이스가 포함되어 있어 개발 과정에서 지속적인 테스트가 수행됩니다.
profile_image
1

*오류신고 접수시 100포인트 지급해드립니다.

4. 소프트웨어 설계에서 사용되는 대표적인 추상화(Abstraction) 기법이 아닌 것은?

  1. 자료 추상화
  2. 제어 추상화
  3. 과정 추상화
  4. 강도 추상화
(정답률: 81%)
  • 소프트웨어 설계의 추상화 기법에는 제어, 과정(기능), 자료 추상화가 있으며, 강도 추상화라는 개념은 존재하지 않습니다.

    오답 노트

    제어 추상화: 정확한 메커니즘 대신 원하는 효과를 정의
    과정 추상화: 세부 수행 과정 대신 전반적인 흐름을 설계
    자료 추상화: 자료와 적용 기능을 함께 정의하여 객체 구성
profile_image
1

*오류신고 접수시 100포인트 지급해드립니다.

5. 객체지향 설계에서 정보 은닉(Information Hiding)과 관련한 설명으로 틀린 것은?

  1. 필요하지 않은 정보는 접근할 수 없도록 하여 한 모듈 또는 하부시스템이 다른 모듈의 구현에 영향을 받지 않게 설계되는것을 의미한다.
  2. 모듈들 사이의 독립성을 유지시키는 데 도움이 된다.
  3. 설계에서 은닉되어야 할 기본 정보로는 IP주소와 같은 물리적 코드, 상세 데이터 구조 등이 있다.
  4. 모듈 내부의 자료 구조와 접근 동작들에만 수정을 국한하기 때문에 요구사항 등 변화에 따른 수정이 불가능하다.
(정답률: 87%)
  • 정보 은닉은 모듈 내부의 상세 구현을 숨겨 모듈 간 독립성을 높이는 기법입니다. 따라서 내부 구조를 수정하더라도 외부 인터페이스에 영향을 주지 않아 요구사항 변화에 따른 수정과 유지보수가 훨씬 유연해집니다.
profile_image
1

*오류신고 접수시 100포인트 지급해드립니다.

6. 소프트웨어 공학에서 모델링 (Modeling)과 관련한 설명으로 틀린 것은?

  1. 개발팀이 응용문제를 이해하는 데 도움을 줄 수 있다.
  2. 유지보수 단계에서만 모델링 기법을 활용한다.
  3. 개발될 시스템에 대하여 여러 분야의 엔지니어들이 공통된 개념을 공유하는 데 도움을 준다.
  4. 절차적인 프로그램을 위한 자료흐름도는 프로세스 위주의 모델링 방법이다.
(정답률: 93%)
  • 모델링은 분석 및 설계 단계에서 주로 제작되지만, 개발팀의 문제 이해를 돕고 엔지니어 간 공통 개념을 공유하기 위해 소프트웨어 개발 전 과정에서 지속적으로 활용됩니다. 따라서 유지보수 단계에서만 활용한다는 설명은 틀린 것입니다.
profile_image
1

*오류신고 접수시 100포인트 지급해드립니다.

7. 요구 분석(Requirement Analysis)에 대한 설명으로 틀린 것은?

  1. 요구 분석은 소프트웨어 개발의 실제적인 첫 단계로 사용자의 요구에 대해 이해하는 단계라 할 수 있다.
  2. 요구 추출(Requirement Elicitation)은 프로젝트 계획 단계에 정의한 문제의 범위 안에 있는 사용자의 요구를 찾는 단계이다.
  3. 도메인 분석(Domain Analysis)은 요구에 대한 정보를 수집하고 배경을 분석하여 이를 토대로 모델링을 하게 된다.
  4. 기능적(Functional) 요구에서 시스템 구축에 대한 성능, 보안, 품질, 안정 등에 대한 요구사항을 도출한다.
(정답률: 62%)
  • 성능, 보안, 품질, 안정성 등 시스템의 제약사항이나 품질 속성에 관한 요구사항은 기능적 요구가 아니라 비기능적(Non-functional) 요구사항에 해당합니다.

    오답 노트

    기능적 요구: 시스템이 제공해야 하는 구체적인 행위(입출력, DB 기능 등)를 정의하는 것
  • 기능적 요구사항
    - 시스템이 수행해야 하는 행위들을 구체화 한 것
    - 시스템에서 제공해야 할 기능을 정의한 것
    - 입력기능, 출력기능, 데이터베이스 기능, 통신 기능 등

    비기능적 요구사항
    - 시스템이 가져야 하는 기능 이외의 요구사항
    - 시스템의 전체적인 품질이나 고려해야 하는 제약사항 등
    - 사용 용이성, 효율성, 신뢰성, 이식성, 유연성, 확장성 등
    - 성능적인 면: 응답 속도, 자원 사용량 등
    - 보안 측면: 침입 대응, 침입 탐지, 사용자 인증, 권한 부여 등
  • 본 해설은 비추 누적갯수 초과로 자동 블라인드 되었습니다.
    (AI해설 오류가 많아 비추 2개 이상시 자동 블라인드 됩니다.)
    해설을 보시기 원하시면 클릭해 주세요
profile_image
1

*오류신고 접수시 100포인트 지급해드립니다.

8. 클래스 다이어그램의 요소로 다음 설명에 해당하는 용어는?

  1. Instance
  2. Operation
  3. Item
  4. Hiding
(정답률: 73%)

  • 클래스의 동작을 의미하며, 객체에 적용될 메서드를 정의한 것을 Operation이라고 합니다. UML에서는 동작에 대한 인터페이스를 지칭합니다.

    오답 노트

    Instance: 클래스로부터 생성된 실제 객체
    Item: 객체에 속한 데이터나 메서드, 또는 DB의 열
    Hiding: 캡슐화를 통해 내부 정보를 숨기는 것
profile_image
1

*오류신고 접수시 100포인트 지급해드립니다.

9. 분산 시스템을 위한 마스터-슬레이브(Master-Slave) 아키텍처에 대한 설명으로 틀린 것은?

  1. 일반적으로 실시간 시스템에서 사용된다.
  2. 마스터 프로세스는 일반적으로 연산, 통신, 조정을 책임진다.
  3. 슬레이브 프로세스는 데이터 수집 기능을 수행할 수 없다.
  4. 마스터 프로세스는 슬레이브 프로세스들을 제어할 수 있다.
(정답률: 84%)
  • 마스터-슬레이브 아키텍처에서 마스터는 작업의 분리와 배포, 제어를 담당하며, 슬레이브는 마스터의 요청을 받아 실제 작업을 처리하고 그 결과를 반환하는 역할을 수행합니다. 따라서 슬레이브 프로세스가 데이터 수집 기능을 수행할 수 없다는 설명은 틀린 것입니다.

    오답 노트

    마스터 프로세스는 일반적으로 연산, 통신, 조정을 책임지며 슬레이브 프로세스들을 제어할 수 있고, 이는 실시간 시스템에서 흔히 사용되는 구조입니다.
profile_image
1

*오류신고 접수시 100포인트 지급해드립니다.

10. 요구 사항 정의 및 분석·설계의 결과물을 표현하기 위한 모델링 과정에서 사용되는 다이어그램(Diagram)이 아닌 것은?

  1. Data Flow Diagram
  2. UML Diagram
  3. E-R Diagram
  4. AVL Diagram
(정답률: 73%)
  • AVL Diagram이라는 용어는 모델링 다이어그램이 아닙니다. AVL 트리는 이진 트리의 높이 불균형을 보완하여 일정하게 유지하기 위한 이진 트리 모형입니다.

    오답 노트

    Data Flow Diagram: 데이터의 흐름을 표현하는 모델링 도구
    UML Diagram: 객체지향 모델링을 위한 표준 언어
    E-R Diagram: 데이터베이스 구조를 표현하는 개념적 모델링 도구
  • avl 트리는 이진 트리의 높낮이가 불규칙해지는 것을 보완하여
    일정하게 처리하기 위한 이진트리 모형이다.
  • avl 트리는 이진 트리의 높낮이가 불규칙해지는 것을 보완하여
    일정하게 처리하기 위한 이진트리 모형이다.
profile_image
1

*오류신고 접수시 100포인트 지급해드립니다.

11. 객체지향의 주요 개념에 대한 설명으로 틀린 것은?

  1. 캡슐화는 상위클래스에서 속성이나 연산을 전달받아 새로운 형태의 클래스로 확장하여 사용하는 것을 의미한다.
  2. 객체는 실세계에 존재하거나 생각할 수 있는 것을 말한다.
  3. 클래스는 하나 이상의 유사한 객체들을 묶어 공통된 특성을 표현한 것이다.
  4. 다형성은 상속받은 여러 개의 하위 객체들이 다른 형태의 특성을 갖는 객체로 이용될 수 있는 성질이다.
(정답률: 79%)
  • 상위 클래스에서 속성이나 연산을 전달받아 새로운 형태의 클래스로 확장하여 사용하는 것은 캡슐화가 아니라 상속에 대한 설명입니다.

    오답 노트

    캡슐화: 데이터와 연산을 하나로 묶고 외부 접근을 제한하는 것
    객체: 실세계에 존재하거나 생각할 수 있는 대상
    클래스: 유사한 객체들의 공통 특성을 정의한 틀
    다형성: 상속받은 하위 객체들이 서로 다른 형태의 특성을 가질 수 있는 성질
profile_image
1

*오류신고 접수시 100포인트 지급해드립니다.

12. 사용자 인터페이스(User Interface)에 대한 설명으로 틀린 것은?

  1. 사용자와 시스템이 정보를 주고받는 상호작용이 잘 이루어지도록 하는 장치나 소프트웨어를 의미한다.
  2. 편리한 유지보수를 위해 개발자 중심으로 설계되어야 한다.
  3. 배우기가 용이하고 쉽게 사용할 수 있도록 만들어져야 한다.
  4. 사용자 요구사항이 UI에 반영될 수 있도록 구성해야 한다.
(정답률: 96%)
  • 사용자 인터페이스(UI)는 사용자가 시스템을 쉽고 효율적으로 사용할 수 있도록 돕는 접점입니다. 따라서 개발자가 아닌 실제 사용자의 관점과 요구사항을 중심으로 설계되어야 합니다.

    오답 노트

    편리한 유지보수를 위해 개발자 중심으로 설계되어야 한다: 개발자가 아닌 사용자 중심으로 설계해야 합니다.
profile_image
1

*오류신고 접수시 100포인트 지급해드립니다.

13. GoF(Gang of Four) 디자인 패턴과 관련한 설명으로 틀린 것은?

  1. 디자인 패턴을 목적(Purpose)으로 분류할 때 생성, 구조, 행위로 분류할 수 있다.
  2. Strategy 패턴은 대표적인 구조 패턴으로 인스턴스를 복제하여 사용하는 구조를 말한다.
  3. 행위 패턴은 클래스나 객체들이 상호작용하는 방법과 책임을 분산하는 방법을 정의한다.
  4. Singleton 패턴은 특정 클래스의 인스턴스가 오직 하나임을 보장하고, 이 인스턴스에 대한 접근 방법을 제공한다.
(정답률: 69%)
  • GoF 디자인 패턴은 목적에 따라 생성, 구조, 행위 패턴으로 분류됩니다. Strategy 패턴은 알고리즘을 캡슐화하여 교체 가능하게 만드는 대표적인 행위 패턴입니다.

    오답 노트

    Strategy 패턴은 대표적인 구조 패턴으로 인스턴스를 복제하여 사용하는 구조를 말한다: Strategy 패턴은 행위 패턴이며, 인스턴스를 복제하는 것은 생성 패턴인 Prototype 패턴에 대한 설명입니다.
profile_image
1

*오류신고 접수시 100포인트 지급해드립니다.

14. 애자일 개발 방법론과 관련한 설명으로 틀린 것은?

  1. 빠른 릴리즈를 통해 문제점을 빠르게 파악할 수 있다.
  2. 정확한 결과 도출을 위해 계획 수립과 문서화에 중점을 둔다.
  3. 고객과의 의사소통을 중요하게 생각한다.
  4. 진화하는 요구사항을 수용하는데 적합하다.
(정답률: 92%)
  • 애자일 방법론은 변화에 신속하게 대응하기 위해 짧은 개발 주기와 반복적인 릴리즈를 지향하며, 상세한 계획이나 문서화보다는 실제 작동하는 소프트웨어 개발에 더 큰 가치를 둡니다.

    오답 노트

    정확한 결과 도출을 위해 계획 수립과 문서화에 중점을 둔다: 문서화보다 실행 가능한 소프트웨어와 고객 소통을 우선시합니다.
profile_image
1

*오류신고 접수시 100포인트 지급해드립니다.

15. 럼바우(Rumbaugh)의 객체지향 분석 기법 중 자료 흐름도(DFD)를 주로 이용하는 것은?

  1. 기능 모델링
  2. 동적 모델링
  3. 객체 모델링
  4. 정적 모델링
(정답률: 50%)
  • 럼바우(Rumbaugh) 분석 기법은 객체 모델링, 동적 모델링, 기능 모델링의 세 단계로 구성되며, 이 중 기능 모델링에서 프로세스 중심의 자료 흐름도(DFD)를 사용하여 시스템의 기능을 정의합니다.
profile_image
1

*오류신고 접수시 100포인트 지급해드립니다.

16. 순차 다이어그램(Sequence Diagram)과 관련한 설명으로 틀린 것은?

  1. 객체들의 상호 작용을 나타내기 위해 사용한다.
  2. 시간의 흐름에 따라 객체들이 주고 받는 메시지의 전달 과정을 강조한다.
  3. 동적 다이어그램보다는 정적 다이어그램에 가깝다.
  4. 교류 다이어그램(Interaction Diagram)의 한 종류로 볼 수 있다.
(정답률: 85%)
  • 순차 다이어그램은 객체 간의 상호작용을 시간 흐름에 따라 메시지 전달 과정으로 표현하는 대표적인 동적 다이어그램입니다.

    오답 노트

    동적 다이어그램보다는 정적 다이어그램에 가깝다: 순차 다이어그램은 시스템의 동적 행위를 묘사하는 동적 다이어그램입니다.
profile_image
1

*오류신고 접수시 100포인트 지급해드립니다.

17. 객체지향 분석 기법과 관련한 설명으로 틀린것은?

  1. 동적 모델링 기법이 사용될 수 있다.
  2. 기능 중심으로 시스템을 파악하며 순차적인처리가 중요시되는 하향식(Top-down)방식으로 볼 수 있다.
  3. 데이터와 행위를 하나로 묶어 객체를 정의내리고 추상화시키는 작업이라 할 수 있다.
  4. 코드 재사용에 의한 프로그램 생산성 향상 및 요구에 따른 시스템의 쉬운 변경이 가능하다.
(정답률: 68%)
  • 객체지향 분석 기법은 데이터와 행위를 하나로 묶어 객체를 정의하는 상향식(Bottom-up) 방식입니다. 기능 중심의 순차적 처리와 하향식(Top-down) 방식은 절차지향 분석 기법의 특징입니다.
profile_image
1

*오류신고 접수시 100포인트 지급해드립니다.

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)
(정답률: 90%)
  • 텍스트 터미널을 통해 정해진 명령 문자열을 입력하여 컴퓨터와 상호작용하는 방식을 CLI(Command Line Interface)라고 하며, 대표적으로 DOS와 Unix 운영체제에서 사용되었습니다.

    오답 노트

    GUI(Graphical User Interface): 아이콘 등 그래픽 요소를 통해 조작하는 인터페이스
profile_image
1

*오류신고 접수시 100포인트 지급해드립니다.

19. 분산 시스템에서의 미들웨어 (Middleware)와 관련한 설명으로 틀린 것은?

  1. 분산 시스템에서 다양한 부분을 관리하고 통신하며 데이터를 교환하게 해주는 소프트웨어로 볼 수 있다.
  2. 위치 투명성(Location Transparency)을 제공한다.
  3. 분산 시스템의 여러 컴포넌트가 요구하는 재사용가능한 서비스의 구현을 제공한다.
  4. 애플리케이션과 사용자 사이에서만 분산서비스를 제공한다.
(정답률: 87%)
  • 미들웨어는 복잡한 이기종 환경에서 응용 프로그램과 운영 환경 간의 원만한 통신을 돕는 소프트웨어입니다. 따라서 애플리케이션과 사용자 사이뿐만 아니라, 프로그램과 시스템 환경 간에도 분산 서비스를 제공합니다.
profile_image
1

*오류신고 접수시 100포인트 지급해드립니다.

20. 소프트웨어 아키텍처와 관련한 설명으로 틀린것은?

  1. 파이프 필터 아키텍처에서 데이터는 파이프를 통해 양방향으로 흐르며, 필터 이동 시 오버헤드가 발생하지 않는다.
  2. 외부에서 인식할 수 있는 특성이 담긴 소프트웨어의 골격이 되는 기본 구조로 볼수 있다.
  3. 데이터 중심 아키텍처는 공유 데이터저장소를 통해 접근자 간의 통신이 이루어지므로 각 접근자의 수정과 확장이 용이하다.
  4. 이해 관계자들의 품질 요구사항을 반영하여 품질 속성을 결정한다.
(정답률: 78%)
  • 파이프 필터 아키텍처에서 데이터는 기본적으로 파이프를 통해 단방향으로 흐르며, 필터 간에 데이터를 전송하는 과정에서 오버헤드가 발생할 수 있습니다.
profile_image
1

*오류신고 접수시 100포인트 지급해드립니다.

2과목: 소프트웨어 개발

21. 테스트를 목적에 따라 분류했을 때,강도(Stress) 테스트에 대한 설명으로 옳은것은?

  1. 시스템에 고의로 실패를 유도하고 시스템이 정상적으로 복귀하는지 테스트한다.
  2. 시스템에 과다 정보량을 부과하여 과부하 시에도 시스템이 정상적으로 작동되는지를 테스트한다.
  3. 사용자의 이벤트에 시스템이 응답하는 시간,특정 시간 내에 처리하는 업무량, 사용자 요구에 시스템이 반응하는 속도 등을 테스트한다.
  4. 부당하고 불법적인 침입을 시도하여 보안시스템이 불법적인 침투를 잘 막아내는지 테스트한다.
(정답률: 80%)
  • 강도(Stress) 테스트는 시스템에 과다한 정보량을 부과하여 과부하 상태에서도 시스템이 정상적으로 작동하는지 검증하는 테스트입니다.

    오답 노트

    시스템에 고의로 실패를 유도하고 복귀를 확인하는 것은 회복 테스트
    응답 시간 및 처리 업무량을 확인하는 것은 성능 테스트
    불법 침입을 막아내는지 확인하는 것은 안전 테스트
profile_image
1

*오류신고 접수시 100포인트 지급해드립니다.

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
(정답률: 70%)
  • 버블 정렬은 인접한 두 데이터를 비교하여 큰 값을 뒤로 보내는 과정을 반복하며, 매 Pass마다 가장 큰 값이 맨 뒤로 고정됩니다.

    Pass 1: $6, 7, 3, 5, 9$
    Pass 2: $6, 3, 5, 7, 9$
    Pass 3: $3, 5, 6, 7, 9$
  • 96735

    PASS 1 - 9 6 7 3 5
    6 9 7 3 5
    6 7 9 3 5
    6 7 3 9 5
    6 7 3 5 9

    PASS 2 - 6 7 3 5 9
    6 3 7 5 9
    6 3 5 7 9

    PASS 3 - 6 3 5 7 9
    3 6 5 7 9
  • 본 해설은 비추 누적갯수 초과로 자동 블라인드 되었습니다.
    (AI해설 오류가 많아 비추 2개 이상시 자동 블라인드 됩니다.)
    해설을 보시기 원하시면 클릭해 주세요
profile_image
1

*오류신고 접수시 100포인트 지급해드립니다.

23. 다음 그래프에서 정점 A를 선택하여 깊이우선탐색(DFS)으로 운행한 결과는?

  1. ABECDFG
  2. ABECFDG
  3. ABCDEFG
  4. ABEFGCD
(정답률: 76%)
  • 깊이 우선 검색은 노드의 깊이를 우선으로 검색하고 나중에 형제 노드를 검색합니다..문제를 보면 처음에 A - B - E가 되구요....E의 위치에서 더이상 내려갈곳이 없기 때문에 F로 이동을 합니다..F에서 다시 밑으로 G로 갑니다..깊이 검색이 끝났기 때문에 형제 노드인 A에서 시작하여 C로 가고 더이상 갈곳이 없기에 다시 A에서 시작 하여 D로 갑니다..결과적으 로, A B E F G C D 의 순서가 됩니다.
  • 깊이 우선 탐색(DFS)은 가능한 한 깊게 탐색한 후, 더 이상 갈 곳이 없으면 이전 분기로 돌아와 탐색을 이어가는 방식입니다. 주어진 그래프에서 A에서 시작하여 A-B-E-F-G까지 깊게 탐색한 후, 다시 돌아와 C-D를 탐색하므로 ABEFGCD 순서가 됩니다.
profile_image
1

*오류신고 접수시 100포인트 지급해드립니다.

24. 다음 설명에 부합하는 용어로 옳은 것은?

  1. 통합 프로그램
  2. 저장소
  3. 모듈
  4. 데이터
(정답률: 89%)
  • 소프트웨어 구조를 이루는 기본 단위로, 독립적인 기능을 가지며 유니크한 이름을 통해 다른 모듈을 호출하거나 호출될 수 있는 구성 요소를 모듈이라고 합니다.
profile_image
1

*오류신고 접수시 100포인트 지급해드립니다.

25. 테스트 드라이버(Test Driver)에 대한 설명으로 틀린 것은?

  1. 시험대상 모듈을 호출하는 간이 소프트웨어이다.
  2. 필요에 따라 매개 변수를 전달하고 모듈을 수행한 후의 결과를 보여줄 수 있다.
  3. 상향식 통합 테스트에서 사용된다.
  4. 테스트 대상 모듈이 호출하는 하위 모듈의 역할을 한다.
(정답률: 61%)
  • 테스트 드라이버는 상향식 통합 테스트에서 하위 모듈을 호출하고 파라미터를 전달하며 결과를 도출하는 간이 소프트웨어입니다.

    오답 노트

    테스트 대상 모듈이 호출하는 하위 모듈의 역할을 하는 것은 테스트 스텁(Stub)에 대한 설명입니다.
profile_image
1

*오류신고 접수시 100포인트 지급해드립니다.

26. 다음 중 선형 구조로만 묶인 것은?

  1. 스택, 트리
  2. 큐, 데크
  3. 큐, 그래프
  4. 리스트, 그래프
(정답률: 82%)
  • 데이터 구조는 데이터 간의 관계가 일렬로 연결된 선형 구조와 계층적 또는 망형으로 연결된 비선형 구조로 나뉩니다. 큐와 데크는 대표적인 선형 구조에 해당합니다.

    오답 노트

    트리, 그래프: 비선형 구조
profile_image
1

*오류신고 접수시 100포인트 지급해드립니다.

27. 다음은 스택의 자료 삭제 알고리즘이다. ⓐ에 들어 갈 내용으로 옳은 것은? (단, Top: 스택포인터, S: 스택의 이름)

  1. Overflow
  2. Top = Top + 1
  3. Underflow
  4. Top = Top
(정답률: 63%)
  • 제시된 알고리즘은 스택에서 데이터를 삭제하는 과정입니다. 에서 $Top = 0$이라는 조건은 스택이 비어있음을 의미하며, 비어있는 스택에서 데이터를 꺼내려 할 때 발생하는 오류 상태를 Underflow라고 합니다.
  • Overflow(오버플로우) : 스택 공간이 가득찼을 때 하나의 데 이터를 더 넣으려고 하는 경우, 스택 오버플로우가 일어나고 프로그램에 오류 야기
    Underflow(언더플로우) : 스택 공간에 데이터가 없는데 프로 그램에서 스택에서 데이터를 꺼내려고 하는 경우, 스택 언더 플로우가 일어나며 프로그램에 오류를 야기
profile_image
1

*오류신고 접수시 100포인트 지급해드립니다.

28. 제품 소프트웨어의 사용자 매뉴얼 작성절차로 (가)~(다)와 [보기]의 기호를 바르게 연결한 것은?

  1. (가)-㉠, (나)-㉡, (다)-㉢
  2. (가)-㉢, (나)-㉡, (다)-㉠
  3. (가)-㉠, (나)-㉢, (다)-㉡
  4. (가)-㉢, (나)-㉠, (다)-㉡
(정답률: 82%)
  • 사용자 매뉴얼 작성 절차는 작성 지침 정의 $\rightarrow$ 구성 요소 정의 $\rightarrow$ 내용 작성 $\rightarrow$ 검토 순으로 진행됩니다. 따라서 의 빈칸은 (가) 사용 설명서 구성 요소 정의, (나) 구성 요소별 내용 작성, (다) 사용 설명서 검토 순으로 연결되는 것이 옳습니다.
profile_image
1

*오류신고 접수시 100포인트 지급해드립니다.

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
(정답률: 73%)
  • 쓰레기 같은 말장난 문제임.
    스택에 넣었다가 바로 빼는 경우들을 이용한 문제인건데 솔직히 말을 너무 모호하게 해놓음
    1. A넣고 B넣고 C넣고 D 넣고 모두 pop
    2. A넣고 B넣고 B빼고 C넣고 C빼고 D넣고 D빼고 A 빼고
    3. A넣고 B넣고 C넣고 C빼고 B빼고 A빼고 D넣고 D빼고
    4.불가능
  • 스택은 LIFO(Last-In-First-Out) 구조이므로, 나중에 들어온 데이터가 먼저 나가야 합니다. D가 가장 먼저 출력되었다는 것은 A, B, C, D가 모두 push된 상태임을 의미하며, 이 경우 다음으로 출력될 수 있는 값은 가장 최근에 들어온 C여야 합니다. 따라서 D 다음에 B가 출력되는 D, B, C, A 순서는 불가능합니다.
profile_image
1

*오류신고 접수시 100포인트 지급해드립니다.

30. 소프트웨어 테스트에서 검증(Verification)과 확인 (Validation)에 대한 설명으로 틀린 것은?

  1. 소프트웨어 테스트에서 검증과 확인을 구별하면 찾고자 하는 결함 유형을 명확하게 하는 데 도움이 된다.
  2. 검증은 소프트웨어 개발 과정을 테스트하는 것이고, 확인은 소프트웨어 결과를 테스트 하는 것이다.
  3. 검증은 작업 제품이 요구 명세의 기능, 비기능 요구사항을 얼마나 잘 준수하는지 측정하는 작업이다.
  4. 검증은 작업 제품이 사용자의 요구에 적합한지 측정하며, 확인은 작업 제품이 개발자의 기대를 충족시키는지를 측정한다.
(정답률: 63%)
  • 검증(Verification)은 개발자 관점에서 소프트웨어가 요구 명세서대로 정확하게 구현되었는지를 확인하는 활동이며, 확인(Validation)은 사용자 관점에서 소프트웨어가 고객의 의도와 요구에 적합하게 구현되었는지를 보장하는 활동입니다.
  • 본 해설은 비추 누적갯수 초과로 자동 블라인드 되었습니다.
    (AI해설 오류가 많아 비추 2개 이상시 자동 블라인드 됩니다.)
    해설을 보시기 원하시면 클릭해 주세요
profile_image
1

*오류신고 접수시 100포인트 지급해드립니다.

31. 개별 모듈을 시험하는 것으로 모듈이 정확하게 구현되었는지, 예정한 기능이 제대로 수행되는지를 점검하는 것이 주요 목적인 테스트는?

  1. 통합 테스트(Integration Test)
  2. 단위 테스트(Unit Test)
  3. 시스템 테스트(System Test)
  4. 인수 테스트(Acceptance Test)
(정답률: 80%)
  • 단위 테스트(Unit Test)는 하나의 모듈을 기준으로 독립적으로 진행되는 가장 작은 단위의 테스트로, 모듈 내부의 논리적 오류 검출과 기능 수행 여부를 점검하는 것이 목적입니다.

    오답 노트

    통합 테스트: 모듈 간의 호환성 확인
    시스템 테스트: 완전한 시스템의 기능적/비기능적 요구사항 확인
    인수 테스트: 사용자 관점에서 요구사항 충족 여부 확인
  • 단위 테스트(Unit Test)
    : 하나의 "모듈"을 기준으로 독립적으로 진행되는 가장 작은 단위의 테스트
    내부에 존재하는 논리적인 오류를 검출, 기능이 제대로 수행되는지 점검

    통합 테스트(Integration Test): 모듈을 통합하는 과정에서 "모듈 간의" 호환성을 확인하기 위해 수행되는 테스트
    시스템 테스트(System Test): "완전한 시스템"에 대해 수행하는 테스트. 기능적, 비기능적 요구사항을 만족하는지 확인
    인수(Acceptance Test): 실제 환경에서 "사용자"가 참여하는 테스트. 요구 분석 명세서에 나타난 사항을 모두 충족하는지, 시스템이 예상대로 동작하는지 사용자의 관점에서 확인&ㅁ
profile_image
1

*오류신고 접수시 100포인트 지급해드립니다.

32. 형상 관리의 개념과 절차에 대한 설명으로 틀린 것은?

  1. 형상 식별은 형상 관리 계획을 근거로 형상관리의 대상이 무엇인지 식별하는 과정이다.
  2. 형상 관리를 통해 가시성과 추적성을 보장함으로써 소프트웨어의 생산성과 품질을 높일 수 있다.
  3. 형상 통제 과정에서는 형상 목록의 변경 요구를 즉시 수용 및 반영해야 한다.
  4. 형상 감사는 형상 관리 계획대로 형상관리가 진행되고 있는지, 형상 항목의 변경이 요구 사항에 맞도록 제대로 이뤄졌는지 등을 살펴보는 활동이다.
(정답률: 84%)
  • 형상 통제는 소프트웨어 변경 제안을 검토하여 기준선(Baseline)에 반영하는 과정으로, 무분별한 변경을 막기 위해 형상 통제 위원회(CCB)의 승인을 거쳐 체계적으로 통제해야 하며 즉시 수용하는 것이 아닙니다.
profile_image
1

*오류신고 접수시 100포인트 지급해드립니다.

33. 소스코드 정적 분석(Static Analysis)에 대한 설명으로 틀린 것은?

  1. 소스 코드를 실행시키지 않고 분석한다.
  2. 코드에 있는 오류나 잠재적인 오류를 찾아내기 위한 활동이다.
  3. 하드웨어적인 방법으로만 코드 분석이 가능하다.
  4. 자료 흐름이나 논리 흐름을 분석하여 비정상적인 패턴을 찾을 수 있다.
(정답률: 78%)
  • 소스코드 정적 분석은 프로그램을 실행시키지 않고 코드의 구조, 흐름, 규칙 등을 분석하여 잠재적 결함을 찾는 활동으로, pmd나 cppcheck와 같은 소프트웨어적인 도구를 통해 수행됩니다.

    오답 노트

    하드웨어적인 방법으로만 코드 분석이 가능하다: 소프트웨어 도구를 통해 분석하므로 틀린 설명임
profile_image
1

*오류신고 접수시 100포인트 지급해드립니다.

34. 소프트웨어 개발 활동을 수행함에 있어서 시스템이 고장(Failure)을 일으키게 하며, 오류(Error)가 있는 경우 발생하는 것은?

  1. Fault
  2. Testcase
  3. Mistake
  4. Inspection
(정답률: 77%)
  • 결함(Fault)은 소프트웨어 개발자의 설계와 다르게 동작하거나 제작 의도와 다른 결과가 발생하여, 오류(Error)가 있을 때 시스템 고장(Failure)을 일으키는 직접적인 원인이 됩니다.

    오답 노트

    Mistake: 사람이 저지른 잘못된 판단이나 결심을 의미함
profile_image
1

*오류신고 접수시 100포인트 지급해드립니다.

35. 코드의 간결성을 유지하기 위해 사용되는 지침으로 틀린 것은?

  1. 공백을 이용하여 실행문 그룹과 주석을 명확히 구분한다.
  2. 복잡한 논리식과 산술식은 괄호와 들여쓰기(Indentation)를 통해 명확히 표현한다.
  3. 빈 줄을 사용하여 선언부와 구현부를 구별한다.
  4. 한 줄에 최대한 많은 문장을 코딩한다.
(정답률: 92%)
  • 코드의 간결성과 가독성을 높이기 위해서는 한 줄에 너무 많은 문장을 작성하지 않고, 적절한 길이 제한을 두는 것이 좋습니다.
    한 줄에 최대한 많은 문장을 코딩하는 것은 가독성을 심각하게 저해하므로 잘못된 지침입니다.
profile_image
1

*오류신고 접수시 100포인트 지급해드립니다.

36. 소프트웨어 품질 목표 중 하나 이상의 하드웨어 환경에서 운용되기 위해 쉽게 수정될 수 있는 시스템 능력을 의미하는 것은?

  1. Portability
  2. Efficiency
  3. Usability
  4. Correctness
(정답률: 59%)
  • Portability(이식성)는 소프트웨어가 서로 다른 하드웨어 환경이나 운영체제에서도 운용될 수 있도록 쉽게 수정될 수 있는 능력을 의미합니다.

    오답 노트

    Efficiency: 최소 자원으로 기능을 수행하는 효율성
    Usability: 사용자가 소프트웨어를 쉽게 사용할 수 있는 사용 용이성
    Correctness: 요구사항을 정확히 충족하는 정확성
profile_image
1

*오류신고 접수시 100포인트 지급해드립니다.

37. 다음 중 최악의 경우 검색 효율이 가장 나쁜트리 구조는?

  1. 이진 탐색트리
  2. AVL 트리
  3. 2-3 트리
  4. 레드-블랙 트리
(정답률: 62%)
  • 트리의 균형 여부에 따라 검색 효율이 결정됩니다.
    이진 탐색트리는 편향 트리(Skewed Tree)가 될 경우 최악의 시간 복잡도가 $O(n)$까지 늘어나 검색 효율이 가장 나쁩니다.

    오답 노트

    AVL 트리, 레드-블랙 트리, 2-3 트리: 자가 균형 기능을 통해 최악의 경우에도 $O(\log n)$ 수준의 효율을 유지함
profile_image
1

*오류신고 접수시 100포인트 지급해드립니다.

38. 다음 트리에 대한 중위 순회 운행 결과는?

  1. ABDCEF
  2. ABCDEF
  3. DBECFA
  4. DBAECF
(정답률: 70%)
  • 중위 순회는 '왼쪽 서브트리 → 루트 노드 → 오른쪽 서브트리' 순으로 방문하는 방식입니다.
    제시된 이미지 의 순회 과정은 다음과 같습니다.
    1. 왼쪽 서브트리(B)의 왼쪽인 D 방문 $\rightarrow$ D
    2. 루트 B 방문 $\rightarrow$ B
    3. B의 오른쪽이 없으므로 전체 루트 A 방문 $\rightarrow$ A
    4. 오른쪽 서브트리(C)의 왼쪽인 E 방문 $\rightarrow$ E
    5. 루트 C 방문 $\rightarrow$ C
    6. C의 오른쪽인 F 방문 $\rightarrow$ F
    따라서 최종 결과는 DBAECF가 됩니다.
profile_image
1

*오류신고 접수시 100포인트 지급해드립니다.

39. 테스트 케이스 자동 생성 도구를 이용하여 테스트 데이터를 찾아내는 방법이 아닌 것은?

  1. 스터브(Stub)와 드라이버(Driver)
  2. 입력 도메인 분석
  3. 랜덤(Random) 테스트
  4. 자료 흐름도
(정답률: 47%)
  • 테스트 케이스 자동 생성 도구로는 입력 도메인 분석, 랜덤 테스트, 자료 흐름도 등이 사용됩니다.
    반면, 스터브(Stub)와 드라이버(Driver)는 자동 생성 도구가 아니라 통합 테스트 시 상위 또는 하위 모듈이 없을 때 사용하는 임시 모듈입니다.

    오답 노트

    스터브: 하향식 테스트용 임시 모듈
    드라이버: 상향식 테스트용 테스트 가동기
profile_image
1

*오류신고 접수시 100포인트 지급해드립니다.

40. 저작권 관리 구성 요소 중 패키저(Packager)의 주요 역할로 옳은 것은?

  1. 콘텐츠를 제공하는 저작권자를 의미한다.
  2. 콘텐츠를 메타 데이터와 함께 배포 가능한 단위로 묶는다.
  3. 라이선스를 발급하고 관리한다.
  4. 배포된 콘텐츠의 이용 권한을 통제한다.
(정답률: 78%)
  • 패키저는 콘텐츠를 메타 데이터와 함께 배포 가능한 단위로 묶는 역할을 수행합니다.

    오답 노트

    콘텐츠를 제공하는 저작권자: 콘텐츠 제공자
    라이선스 발급 및 관리: 클리어링 하우스
    배포된 콘텐츠의 이용 권한 통제: DRM 컨트롤러
profile_image
1

*오류신고 접수시 100포인트 지급해드립니다.

3과목: 데이터베이스 구축

41. 데이터베이스의 무결성 규정(Integrity Rule)과 관련한 설명으로 틀린 것은?

  1. 무결성 규정에는 데이터가 만족해야 될 제약 조건, 규정을 참조할 때 사용하는 식별자 등의 요소가 포함될 수 있다.
  2. 무결성 규정의 대상으로는 도메인, 키, 종속성 등이 있다.
  3. 정식으로 허가 받은 사용자가 아닌 불법적인 사용자에 의한 갱신으로부터 데이터베이스를 보호하기 위한 규정이다.
  4. 릴레이션 무결성 규정(Relation Integrity Rules)은 릴레이션을 조작하는 과정에서의 의미적 관계(Semantic Relationship)을 명세한 것이다.
(정답률: 62%)
  • 무결성 규정은 데이터베이스 내의 데이터가 정확성, 완전성, 일관성을 유지하도록 보장하는 제약 조건입니다. 불법 사용자의 갱신으로부터 보호하는 것은 무결성 규정이 아니라 보안 정책이나 접근 제어 메커니즘의 영역입니다.
profile_image
1

*오류신고 접수시 100포인트 지급해드립니다.

42. 데이터베이스에서 하나의 논리적 기능을 수행하기 위한 작업의 단위 또는 한꺼번에 모두 수행되어야 할 일련의 연산들을 의미하는 것은?

  1. 트랜잭션
  2. 튜플
  3. 카디널리티
(정답률: 83%)
  • 트랜잭션은 데이터베이스의 논리적 기능을 수행하기 위해 한꺼번에 모두 수행되어야 할 일련의 연산 단위를 의미합니다.

    오답 노트

    뷰: 기본 테이블로부터 유도된 가상 테이블
    튜플: 릴레이션의 행(Row)
    카디널리티: 튜플의 전체 개수
profile_image
1

*오류신고 접수시 100포인트 지급해드립니다.

43. 다음 두 릴레이션 Rl과 R2의 카티션 프로덕트(cartesian product) 수행 결과는?

(정답률: 78%)
  • 카티션 프로덕트(Cartesian Product)는 두 릴레이션의 모든 가능한 튜플 조합을 생성하는 연산입니다. 결과 릴레이션의 튜플 수는 각 릴레이션 튜플 수의 곱이며, 컬럼 수는 각 릴레이션 컬럼 수의 합과 같습니다.
    R1의 튜플 수(3개) $\times$ R2의 튜플 수(3개) = 총 9개의 튜플이 생성되어야 하므로 정답은 입니다.
  • 두 테이블 곱집합
    두 개의 테이블은 카티션 프로덕트 후 튜플의 수는 각 테이블 의 곱,
profile_image
1

*오류신고 접수시 100포인트 지급해드립니다.

44. 물리적 데이터베이스 설계에 대한 설명으로 거리가 먼 것은?

  1. 물리적 설계의 목적은 효율적인 방법으로 데이터를 저장하는 것이다.
  2. 트랜잭션 처리량과 응답시간, 디스크 용량 등을 고려해야 한다.
  3. 저장 레코드의 형식, 순서, 접근 경로와 같은 정보를 사용하여 설계한다.
  4. 트랜잭션의 인터페이스를 설계하며, 데이터 타입 및 데이터 타입들 간의 관계로 표현한다.
(정답률: 69%)
  • 물리적 데이터베이스 설계는 논리적 설계를 바탕으로 효율적인 저장 방법, 트랜잭션 처리량, 응답 시간, 디스크 용량, 레코드 형식 및 접근 경로 등을 결정하는 단계입니다. 반면, 트랜잭션 인터페이스 설계 및 데이터 타입 간의 관계로 표현하는 것은 논리적 설계 단계의 특징입니다.
profile_image
1

*오류신고 접수시 100포인트 지급해드립니다.

45. 다음 중 기본키는 NULL 값을 가져서는 안되며, 릴레이션 내에 오직 하나의 값만 존재해야 한다는 조건을 무엇이라 하는가?

  1. 개체 무결성 제약조건
  2. 참조 무결성 제약조건
  3. 도메인 무결성 제약조건
  4. 속성 무결성 제약조건
(정답률: 81%)
  • 기본키(Primary Key)는 릴레이션의 튜플을 유일하게 식별해야 하므로, NULL 값을 가질 수 없고 중복된 값이 존재해서는 안 된다는 개체 무결성 제약조건을 따릅니다.

    오답 노트

    참조 무결성 제약조건: 외래키는 참조하는 릴레이션의 기본키 값과 일치하거나 NULL이어야 합니다.
    도메인 무결성 제약조건: 특정 속성값은 정의된 도메인 범위 내의 값이어야 합니다.
  • 1. 개체 무결성 : 기본키는 null 값이 될 수 없음
    2. 참조 무결성 : 외래키는 참조할 수 없는 값을 가질 수 없음
    3. 도메인 무결성 : 특정 속성값은 그 속성이 정의된 도메 인에 속한 값이어야 함
profile_image
1

*오류신고 접수시 100포인트 지급해드립니다.

46. SQL문에서 HAVING을 사용할 수 있는 절은?

  1. LIKE 절
  2. WHERE 절
  3. GROUP BY 절
  4. ORDER BY 절
(정답률: 81%)
  • HAVING 절은 GROUP BY 절과 함께 사용되며, 그룹화된 결과 집합에 대해 특정 조건을 지정하여 필터링할 때 사용합니다.
  • HAVING 절 : GROUP BY와 함께 사용되며, 그룹에 대한 조 건을 지정
profile_image
1

*오류신고 접수시 100포인트 지급해드립니다.

47. 관계 데이터베이스에 있어서 관계 대수 연산이 아닌 것은?

  1. 디비전(Division)
  2. 프로젝트(Project)
  3. 조인(Join)
  4. 포크(Fork)
(정답률: 70%)
  • 관계대수 연산에는

    1. 일반 집합 연산자 합집합
    교집합
    차집합
    카티션 프로덕트

    2. 순수 관계 연산자 셀렉트
    프로젝트
    조인
    디비전
  • 관계 대수 연산은 크게 일반 집합 연산자(합집합, 교집합, 차집합, 카티션 프로덕트)와 순수 관계 연산자(Select, Project, Join, Division)로 구성됩니다. 포크(Fork)는 관계 대수 연산에 해당하지 않습니다.
  • fork는 UNIX 환경에서 호출한 프로세스를 복사하는 함수
profile_image
1

*오류신고 접수시 100포인트 지급해드립니다.

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;
(정답률: 89%)
  • SQL에서 NULL 값은 일반적인 비교 연산자가 아닌 IS NULL 또는 IS NOT NULL 연산자를 사용하여 검색해야 합니다. 따라서 전화번호가 Null값이 아닌 데이터를 찾기 위해서는 IS NOT NULL 구문을 사용한 SELECT 학생명 FROM 학적 WHERE 전화번호 IS NOT NULL; 이 정답입니다.

    오답 노트

    DON'T NULL: SQL에 존재하지 않는 문법입니다.
    IS NULL: NULL인 값만 검색합니다.
profile_image
1

*오류신고 접수시 100포인트 지급해드립니다.

49. 관계형 데이터베이스에서 다음 설명에 해당하는 키(Key)는?

  1. 후보키
  2. 대체키
  3. 슈퍼키
  4. 외래키
(정답률: 75%)
  • 제시된 이미지 의 내용은 튜플에 대한 유일성은 만족하지만 최소성은 만족하지 못하는 키를 설명하고 있으므로, 이는 슈퍼키에 대한 정의입니다.

    오답 노트

    후보키: 유일성과 최소성 모두 만족
    대체키: 후보키 중 기본키가 아닌 키
    외래키: 다른 릴레이션의 기본키를 참조
profile_image
1

*오류신고 접수시 100포인트 지급해드립니다.

50. 데이터베이스에서 인덱스(Index)와 관련한 설명으로 틀린 것은?

  1. 인덱스의 기본 목적은 검색 성능을 최적화하는 것으로 볼 수 있다.
  2. B-트리 인덱스는 분기를 목적으로 하는 Branch Block을 가지고 있다.
  3. BETWEEN 등 범위(Range) 검색에 활용될 수 있다.
  4. 시스템이 자동으로 생성하여 사용자가 변경할 수 없다.
(정답률: 82%)
  • 인덱스는 기본키의 경우 자동으로 생성되기도 하지만, 사용자가 데이터 정의어(DDL)를 사용하여 직접 생성, 변경, 제거할 수 있습니다.
profile_image
1

*오류신고 접수시 100포인트 지급해드립니다.

51. 로킹 단위(Locking Granularity)에 대한 설명으로 옳은 것은?

  1. 로킹 단위가 크면 병행성 수준이 낮아진다.
  2. 로킹 단위가 크면 병행 제어 기법이 복잡해진다.
  3. 로킹 단위가 작으면 로크(lock)의 수가 적어진다.
  4. 로킹은 파일 단위로 이루어지며, 레코드와 필드는 로킹 단위가 될 수 없다.
(정답률: 63%)
  • 로킹 단위가 커지면 한 번에 잠그는 데이터 양이 많아져 로크의 수는 적어지지만, 다른 사용자가 접근할 수 있는 범위가 제한되어 병행성 수준은 낮아집니다.

    오답 노트

    로킹 단위가 크면: 병행 제어 기법이 간단해짐
    로킹 단위가 작으면: 로크의 수가 많아짐
    로킹 단위: 데이터베이스, 파일, 레코드 모두 가능
profile_image
1

*오류신고 접수시 100포인트 지급해드립니다.

52. 관계 대수에 대한 설명으로 틀린 것은?

  1. 원하는 릴레이션을 정의하는 방법을 제공하며 비절차적 언어이다.
  2. 릴레이션 조작을 위한 연산의 집합으로 피연산자와 결과가 모두 릴레이션이다.
  3. 일반 집합 연산과 순수 관계 연산으로 구분된다.
  4. 질의에 대한 해를 구하기 위해 수행해야 할 연산의 순서를 명시한다.
(정답률: 61%)
  • 관계대수는 원하는 정보를 검색하기 위해 어떻게 유도하는가를 기술하는 절차적 언어입니다. 비절차적 특성을 갖는 것은 관계해석입니다.
  • 관계대수 : 관계형 데이터베이스에서 원하는 정보와 그 정보 를 검색하기 위해서 어떻게 유도하는가를 기술하는 절차적인 언어이다.

    비절차적 특성은 관계해석이 지니고 있다.
profile_image
1

*오류신고 접수시 100포인트 지급해드립니다.

53. 데이터의 중복으로 인하여 관계연산을 처리할 때 예기치 못한 곤란한 현상이 발생하는 것을 무엇이라 하는가?

  1. 이상(Anomaly)
  2. 제한 (Restriction)
  3. 종속성(Dependency)
  4. 변환(Translation)
(정답률: 86%)
  • 이상(Anomaly)은 데이터 정규화가 되지 않아 중복이 발생한 테이블에서 삽입, 삭제, 갱신 연산 시 논리적 오류가 발생하는 현상을 말합니다.
profile_image
1

*오류신고 접수시 100포인트 지급해드립니다.

54. 다음 중 SQL에서의 DDL 문이 아닌 것은?

  1. CREATE
  2. DELETE
  3. ALTER
  4. DROP
(정답률: 75%)
  • DELETE는 데이터를 조작하는 DML(데이터 조작어)에 해당합니다.

    오답 노트

    CREATE, ALTER, DROP: 데이터베이스 구조를 정의하는 DDL(데이터 정의어)
profile_image
1

*오류신고 접수시 100포인트 지급해드립니다.

55. 정규화에 대한 설명으로 적절하지 않은 것은?

  1. 데이터베이스의 개념적 설계 단계 이전에 수행한다.
  2. 데이터 구조의 안정성을 최대화한다.
  3. 중복을 배제하여 삽입, 삭제, 갱신 이상의 발생을 방지한다.
  4. 데이터 삽입 시 릴레이션을 재구성할 필요성을 줄인다.
(정답률: 76%)
  • 정규화는 데이터베이스 설계 과정 중 개념적 설계 이후인 논리적 설계 단계에서 수행하는 작업입니다.
  • 정규화는 논리적 설계 단계에서 수행하는 작업
profile_image
1

*오류신고 접수시 100포인트 지급해드립니다.

56. 트랜잭션의 주요 특성 중 하나로 둘 이상의 트랜잭션이 동시에 병행 실행되는 경우 어느 하나의 트랜잭션 실행 중에 다른 트랜잭션의 연산이 끼어들 수 없음을 의미하는 것은?

  1. Log
  2. Consistency
  3. Isolation
  4. Durability
(정답률: 77%)
  • Atomicity(원자성)
    1. 트랜잭션의 연산은 데이터베이스에 모두 반영되든지 아 니면 전혀 반영되지 않아야 한다.
    2. 트랜잭션 내의 모든 명령은 반드시 완벽히 수행되어야 하며, 모두가 완벽히 수행되지 않고 어느하나라도 오류가 발생하면 트랜잭션 전부가 취소되어야 한다.

    Consistency(일관성)
    1. 트랜잭션이 그 실행을 성공적으로 완료하면 언제나 일 관성 있는 데이터베이스 상태로 변환한다.
    2. 시스템이 가지고 있는 고정요소는 트랜잭션 수행 전과 트랜잭션 수행 완료 후의 상태가 같아야 한다.

    Isolation(독립성,격리성)
    1.둘이상의트랜잭션이동시에병행실행되는경우어느 하나의 트랜잭션 실행중에 다른 트랜잭션의 연산이 끼어들 수 없다.
    2. 수행중인 트랜잭션은 완전히 완료될 때까지 다른 트랜 잭션에서 수행 결과를 참조할 수 없다.

    Durablility(영속성,지속성)
    1. 성공적으로 완료된 트랜잭션의 결과는 시스템이 고장나 더라도 영구적으로 반영되어야 한다.
  • Isolation(독립성/격리성)은 둘 이상의 트랜잭션이 동시에 병행 실행될 때, 어느 하나의 트랜잭션 실행 중에 다른 트랜잭션의 연산이 끼어들 수 없음을 보장하는 특성입니다.

    오답 노트

    Consistency: 성공적 완료 후 일관성 있는 상태 유지
    Durability: 완료된 결과가 시스템 고장 시에도 영구 반영
profile_image
1

*오류신고 접수시 100포인트 지급해드립니다.

57. SQL의 논리 연산자가 아닌 것은?

  1. AND
  2. OTHER
  3. OR
  4. NOT
(정답률: 89%)
  • SQL의 논리 연산자에는 AND, OR, NOT이 있으며, OTHER는 SQL에서 제공하는 논리 연산자가 아닙니다.
profile_image
1

*오류신고 접수시 100포인트 지급해드립니다.

58. 동시성 제어를 위한 직렬화 기법으로 트랜잭션 간의 처리 순서를 미리 정하는 방법은?

  1. 로킹 기법
  2. 타임스탬프 기법
  3. 검증 기법
  4. 배타 로크 기법
(정답률: 76%)
  • 타임스탬프 기법은 트랜잭션이 실행되기 전 고유한 타임스탬프를 부여하여, 부여된 시간 순서에 따라 트랜잭션의 처리 순서를 미리 정하는 직렬화 기법입니다.

    오답 노트

    로킹 기법: 데이터에 잠금을 걸어 일관성과 무결성을 유지하는 기법
profile_image
1

*오류신고 접수시 100포인트 지급해드립니다.

59. 이전 단계의 정규형을 만족하면서 후보키를 통하지 않는 조인 종속(JD : Join Dependency)을 제거해야 만족하는 정규형은?

  1. 제3정규형
  2. 제4정규형
  3. 제5정규형
  4. 제6정규형
(정답률: 65%)
  • 제5정규형은 제4정규형을 만족하면서, 후보키를 통하지 않는 조인 종속(Join Dependency)을 제거하여 만족하는 정규형입니다.

    오답 노트

    제3정규형: 이행적 함수 종속 제거
    제4정규형: 다치 종속 제거
profile_image
1

*오류신고 접수시 100포인트 지급해드립니다.

60. 어떤 릴레이션 R에서 X와 Y를 각각 R의 애트리뷰트 집합의 부분 집합이라고 할 경우 애트리뷰트 X의 값 각각에 대해 시간에 관계없이 항상 애트리뷰트 Y의 값이 오직 하나만 연관되어 있을 때 Y는 X에 함수 종속이라고 한다. 이 함수 종속의 표기로 옳은 것은?

  1. Y → X
  2. Y ⊂ X
  3. X → Y
  4. X ⊂ Y
(정답률: 57%)
  • 함수적 종속이란 애트리뷰트 $X$의 값을 알면 $Y$의 값을 유일하게 결정할 수 있는 관계를 말하며, 이때 $X$를 결정자, $Y$를 종속자라고 합니다. 이를 기호로 표기하면 다음과 같습니다.
    $$X \rightarrow Y$$
  • 함수적 종속이란 어떤 릴레이션 R이 있을때 X와 Y를 각각 속성의 부분집합이라고 가정해봅니다. 여기서 X의 값을 알면 Y의 값을 바로 식별할 수 있고, X의 값에 Y의 값이 달라질 때, Y는 X에 함수적 종속이라고 합니다. 이 경우 X를 결정자, Y를 종속자라고 합니다.
profile_image
1

*오류신고 접수시 100포인트 지급해드립니다.

4과목: 프로그래밍 언어 활용

61. 모듈 내 구성 요소들이 서로 다른 기능을 같은 시간대에 함께 실행하는 경우의 응집도(Cohesion)는?

  1. Temporal Cohesion
  2. Logical Cohesion
  3. Coincidental Cohesion
  4. Sequential Cohesion
(정답률: 54%)
  • Temporal Cohension(시간적 응집도)를 설명하는 문제이다.
    - Logical Cohension(논리적 응집도): 모듈 내 구성 요소들이 같은 범주에 속하는 기능끼리 묶인 경우(ex. 새글, 불러오기, 저장하기, 다른이름으로 저장하기)
    - Coincidental Cohension(우연적 응집도): 모듈 내 구성 요 소들이 뚜렷한 관계없이 묶인 경우
    - Sequential Cohension(순차적 응집도): 모듈 내 구성 요소 들이 이전의 명령어로부터 나온 출력결과를 그 다음 명령어의 입력자료로 사용하는 경우(ex. 총점과 평균의 관계)
  • 모듈 내의 구성 요소들이 특정 시간대에 함께 실행되어야 하는 기능들로 묶여 있는 경우를 Temporal Cohesion(시간적 응집도)이라고 합니다.

    오답 노트

    Logical Cohesion: 같은 범주의 기능끼리 묶인 경우
    Coincidental Cohesion: 뚜렷한 관계없이 우연히 묶인 경우
    Sequential Cohesion: 이전 단계의 출력 결과가 다음 단계의 입력 자료로 사용되는 경우
profile_image
1

*오류신고 접수시 100포인트 지급해드립니다.

62. 오류 제어에 사용되는 자동반복 요청방식(ARQ)이 아닌 것은?

  1. Stop-and-wait ARQ
  2. Go-back-N ARQ
  3. Selective-Repeat ARQ
  4. Non-Acknowledge ARQ
(정답률: 70%)
  • 자동반복 요청방식(ARQ: Automatic Repeat reQuest)

    - Stop-and-Wait ARQ(정지-대기 ARQ): 송신 측이 하나의 블록을 전송한 후 수신 측에서 에러의 발생을 점검한 다음, 에러 발생 유무 신호를 보내올 때까지 기다리는 방식

    - Go-Back-N ARQ: 여러 블록을 연속적으로 전송하고, 수신 측에서 부정 응답(NAK)을 보내오면 송신 측이 오류가 발생한 블록부터 모두 재 전송

    - Selective-Repeat ARQ(선택적 재전송 ARQ): 여러 블록을 연속적으로 전송하고, 수신측에서 부정 응답(NAK)을 보내오면 송신 측이 오류가 발생한 블록만을 재전송

    - Adaptive ARQ(적응적 ARQ): 전송 효율을 최대로 하기 위 해서 데이터 블록의 길이를 채널의 상태에 따라 동적으로 변 경하는 방식
  • ARQ(Automatic Repeat Request)는 데이터 전송 중 오류 발생 시 재전송을 요청하는 방식입니다.

    오답 노트

    Stop-and-wait ARQ: 하나 전송 후 응답 대기
    Go-back-N ARQ: 오류 발생 지점부터 모두 재전송
    Selective-Repeat ARQ: 오류가 발생한 블록만 선택적 재전송
    Non-Acknowledge ARQ: ARQ는 기본적으로 응답(ACK)을 통한 확인 과정이 필수적이므로 존재하지 않는 방식입니다.
profile_image
1

*오류신고 접수시 100포인트 지급해드립니다.

63. 다음 파이썬(Python) 프로그램이 실행되었을 때의 결과는?

  1. 45
  2. 55
  3. 66
  4. 78
(정답률: 66%)
  • range([시작,] 끝[, 간격])으로 ( []은 생략할 수 있는 인자를 말함 )
    끝은 포함하지 않음 따라서 0~11까지의 숫자의 합
    [해설작성자 : 수성구 불주먹]

    Python의 ranger 함수
    range(A) : 0부터 A-1까지의 정수 범위를 반환한다
    ranger(A,B) : A부터 B-1까지의 정수 범위를 반환한다.
    ranger(A,B,C) : A부터 B-1까지 C만큼의 간격으로 정수를 반환한다.

    문제 : ranger(n+1) → ranger(11+1) → ranger(12) 즉, 0부터 11까지의 숫자를 반환한다
    근데 s+=num 이니깐 s에다가 for문을 돌리면서 나온 num 변수(0부터 11까지의 숫자)를 누적해서 더하라
    [해설작성자 : 합격드가자~]

    for num in range(11) 일경우
    반복을 0부터 10번 까지 반복을 합니다.
    S += num <<-- 뜻은 반복 할때 마다 S 값에 num 값을 추가하라는 뜻이고
    반복되는 과정은
    num 값은 0 , 1 , 2 , 3 , 4 , 5, 6 , 7 , 8 , 9 , 10 값이 추가됩니다.
    즉 해당 숫자를 전부 더하는 값이 결과 이며,
    for num in range(n+1) <<-- 은 즉 11+1 하라는 뜻으로 12이므로
    0부터 11까지 숫자를 더하여 결과 값을 제출하면 됩니다.
  • 파이썬의 range(n) 함수는 0부터 $n-1$까지의 정수 범위를 반환합니다.
    range(11+1)은 range(12)가 되어 0부터 11까지의 정수를 생성하며, for문을 통해 이 값들을 모두 누적 합산합니다.
    ① [기본 공식] $\sum_{i=0}^{n} i = \frac{n(n+1)}{2}$
    ② [숫자 대입] $S = \frac{11(11+1)}{2}$
    ③ [최종 결과] $S = 66$
  • 파이썬 for i in range( n ) 은
    i값이 0부터 n-1까지 반복합니다
profile_image
1

*오류신고 접수시 100포인트 지급해드립니다.

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

  1. nation
  2. nationalter
  3. alter
  4. alternation
(정답률: 76%)
  • string.h 라이브러리의 strcat 함수는 첫 번째 인자로 전달된 문자열 뒤에 두 번째 인자로 전달된 문자열을 이어 붙이는 기능을 수행합니다.
    "nation"이라는 문자열 뒤에 "alter"를 이어 붙였으므로 최종 결과는 "nationalter"가 됩니다.
profile_image
1

*오류신고 접수시 100포인트 지급해드립니다.

65. JAVA에서 힙(Heap)에 남아있으나 변수가 가지고 있던 참조값을 잃거나 변수 자체가 없어짐으로써 더 이상 사용되지 않는 객체를 제거해주는 역할을 하는 모듈은?

  1. Heap Collector
  2. Garbage Collector
  3. Memory Collector
  4. Variable Collector
(정답률: 83%)
  • JAVA의 가비지 컬렉터(Garbage Collector)는 힙 메모리 영역에서 참조값을 잃어 더 이상 사용되지 않는 객체들을 자동으로 찾아내어 제거함으로써 메모리를 효율적으로 관리하는 모듈입니다.
profile_image
1

*오류신고 접수시 100포인트 지급해드립니다.

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

  1. 0
  2. 1
  3. 2
  4. 3
(정답률: 75%)
  • C언어에서 0은 거짓, 0이 아닌 모든 수는 참으로 처리합니다.
    r1: $4 \le 4$ (참) 또는 $2 == 2$ (참) $\rightarrow$ 결과는 참(1)
    r2: $(3 > 0)$ (참) 그리고 $(4 < 5)$ (참) $\rightarrow$ 결과는 참(1)
    r3: $!2$ (참의 부정) $\rightarrow$ 결과는 거짓(0)
    최종 출력값은 $r1 + r2 + r3$이므로 $1 + 1 + 0 = 2$가 됩니다.
  • r1 = 4 <= 4 || 2 == 2; :: 참 (1)
    r2 = (3 > 0) && (4 < 5) :: 참 (1)
    r3 = !2; :: 거짓 (0)
profile_image
1

*오류신고 접수시 100포인트 지급해드립니다.

67. 다음 중 JAVA에서 우선순위가 가장 낮은 연산자는?

  1. --
  2. %
  3. &
  4. =
(정답률: 71%)
  • JAVA 연산자 우선순위는 단항 연산자 $\rightarrow$ 산술 연산자 $\rightarrow$ 비트 연산자 $\rightarrow$ 대입 연산자 순으로 적용됩니다.
    제시된 연산자들의 우선순위를 비교하면 다음과 같습니다.
    $--$ (단항) $\rightarrow$ $\%$ (산술) $\rightarrow$ $\&$ (비트) $\rightarrow$ $=$ (대입)
    따라서 대입 연산자인 $=$의 우선순위가 가장 낮습니다.

  • -- > % > & > =
profile_image
1

*오류신고 접수시 100포인트 지급해드립니다.

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
(정답률: 56%)
  • SSTF(Shortest Seek Time First) 스케줄링은 현재 헤드 위치에서 가장 가까운 트랙을 우선적으로 처리하는 방식입니다.
    현재 위치 $53$에서 가장 가까운 요청부터 순차적으로 탐색합니다.
    1. $53 \rightarrow 65$ (거리 $12$)
    2. $65 \rightarrow 67$ (거리 $2$)
    3. $67 \rightarrow 37$ (거리 $30$)
    4. $37 \rightarrow 14$ (거리 $23$)
    5. $14 \rightarrow 98$ (거리 $84$)
    6. $98 \rightarrow 122$ (거리 $24$)
    7. $122 \rightarrow 124$ (거리 $2$)
    8. $124 \rightarrow 183$ (거리 $59$)
    최종 처리 순서: $53-65-67-37-14-98-122-124-183$
  • SSTF : shortest seek time first
    현재 헤드위치에서 가장 가까운 것부터..
    현재 헤드위치가 53이므로 65가 가장 가깝고( 차이 12) 다른 것도 동일한 방법으로 해결.
profile_image
1

*오류신고 접수시 100포인트 지급해드립니다.

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
(정답률: 55%)
  • FLSM(고정 길이 서브넷 마스크)을 이용한 서브넷팅 문제입니다.
    $/24$ 네트워크를 $4$개로 나누려면 호스트 비트 중 앞의 $2$비트를 네트워크 비트로 사용해야 하며, 각 서브넷의 크기는 $2^{6} = 64$가 됩니다.
    Subnet-zero를 적용한 4개 네트워크의 시작 주소는 다음과 같습니다.
    1번째: $192.168.1.0$, 2번째: $192.168.1.64$, 3번째: $192.168.1.128$, 4번째: $192.168.1.192$
    4번째 네트워크($192.168.1.192/26$)에서 네트워크 주소($192.168.1.192$)를 제외한 사용 가능한 IP는 $192.168.1.193$부터 시작합니다.
    따라서 4번째 사용 가능한 IP는 $193, 194, 195, 196$ 순으로 $192.168.1.196$이 됩니다.
  • CIDR 표기법으로 ipv4 32비트중 앞 24비트가 네트워크ip, 뒤 8비트가 호스트ip가 됩니다.
    여기서 4개의 서브넷으로 나누려면 호스트ip의 앞쪽 비트를 가능한 적게 4개까지 나누어줘야 하는데요
    2진수에서 4개로 나누려면 2비트를 사용해야 하므로
    192.168.1.(00)000000 (0)
    192.168.1.(01)000000 (64)
    192.168.1.(10)000000 (128)
    192.168.1.(11)000000 (192)
    로 나눌 수 있습니다.
    여기서 IP subnet-zero를 적용했다는것은
    호스트ip가 전부 0인 192.168.1.0 도 사용하겠단것을 의미 합니다.
    즉 4번째 네트워크는 192.168.1.192가 되겠죠?
    단 각 서브넷에서 호스트ip가 전부 0인 주소와 전부 1인 주소는 다른 용도로 이미 예약이 되어있습니다.(0은 네트워크 자체의 주소, 1은 브로드캐스팅 주소)
    즉 여기서 4번째 사용가능한 ip는
    193,194,195,196←이게 되는거죠
profile_image
1

*오류신고 접수시 100포인트 지급해드립니다.

70. C Class에 속하는 IP address는?

  1. 200.168.30.1
  2. 10.3.2.1
  3. 225.2.4.1
  4. 172.16.98.3
(정답률: 58%)
  • A class에 속하는 ip 주소 범위: 0.0.0.0 ~ 127.255.255.255
    B class에 속하는 ip 주소 범위: 128.0.0.0 ~ 191.255.255.255
    C class에 속하는 ip 주소 범위: 192.0.0.0 ~ 223.255.255.255

    D class와 E class는 각각 멀티캐스트용, 연구용으로 사용됩니다.
    D class ip 주소 범위: 224.0.0.0 ~ 239.255.255.255
    E class ip 주소 범위: 240.0.0.0 ~ 255.255.255.255
    [해설작성자 : ㄱㄱㅇ]

    A = 0000 0000 ~ 0111 1111
    B = 1000 0000 ~ 1011 1111
    같은 방식으로
    ABCD E111로 외우면 될듯합니당
    [해설작성자 : ㅋㅋ루삥뽕]

    A class -> B class = 128 차이
    B class -> C class = 64 차이
    C class -> D class = 32 차이
    D class -> E class = 16 차이
    [해설작성자 : 웅가리]

    00000000 A 0
    10000000 B 128
    11000000 C 192
    11100000 D 224
    11110000 E 240
    쉽게 2진법으로 하면 이해가 쉬움
  • IP 주소의 클래스 구분은 첫 번째 옥텟의 범위로 결정됩니다.
    C 클래스는 첫 번째 옥텟이 $192$에서 $223$ 사이인 주소 대역을 가집니다.
    따라서 $200.168.30.1$이 C 클래스에 해당합니다.

    오답 노트

    10.3.2.1: A 클래스 ($0 \sim 127$)
    172.16.98.3: B 클래스 ($128 \sim 191$)
    225.2.4.1: D 클래스 ($224 \sim 239$)
  • 본 해설은 비추 누적갯수 초과로 자동 블라인드 되었습니다.
    (AI해설 오류가 많아 비추 2개 이상시 자동 블라인드 됩니다.)
    해설을 보시기 원하시면 클릭해 주세요
profile_image
1

*오류신고 접수시 100포인트 지급해드립니다.

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

  1. 0
  2. 4
  3. 8
  4. 12
(정답률: 65%)
  • 포인터와 주소 연산의 원리를 이해하는 문제입니다.
    변수 $n$의 값은 $4$이며, 포인터 $pt$는 $n$의 주소($&n$)를 가리킵니다.
    따라서 $*pt$는 $n$의 값인 $4$가 되고, $\&*pt$는 $*pt$의 주소이므로 결국 $\&n$과 동일합니다.
    식 $\&n + *pt - \&*pt + n$에서 $\&n$과 $-\&*pt$는 서로 상쇄되어 사라지므로, 최종 계산은 $*pt + n$이 됩니다.
    $$4 + 4 = 8$$
  • 64%
    <문제 해설>
    &n= 변수 n의 주소값
    *pt= 포인터 pt가 가리키고 있는 주소에 저장된 값 = 변수 n
    *&pt = *(포인터 pt의 주소값)= 포인터 pt의 주소가 가리키고 있는 주소에 저장된 값 = 변수 n의 주소

    즉,
    &n + *pt - *&pt + n
    = *pt + n
    = 4 + 4
    = 8
    [해설작성자 : ㄱㄱㅇ]

    pt는 변수 n의 주소를 가리킵니다.(pt=&n)
    *pt는 pt가 가리키는 주소에 있는 값을, 즉 n의 값을 참조합니다.
    &*pt는 *pt의 주소를 다시 취하게 됩니다. 이는 pt가 가리키고 있는 변수인 n의 주소와 동일합니다.

    그러므로 &*pt는 &n과 같습니다.
profile_image
1

*오류신고 접수시 100포인트 지급해드립니다.

72. 귀도 반 로섬(Guido van Rossum)이 발표한 언어로 인터프리터 방식이자 객체지향적이며, 배우기 쉽고 이식성이 좋은 것이 특징인 스크립트 언어는?

  1. C++
  2. JAVA
  3. C#
  4. Python
(정답률: 79%)
  • 귀도 반 로섬이 발표한 Python은 인터프리터 방식의 객체지향 언어로, 문법이 간결하여 배우기 쉽고 이식성이 뛰어난 대표적인 스크립트 언어입니다.
profile_image
1

*오류신고 접수시 100포인트 지급해드립니다.

73. 다음 JAVA 프로그램이 실행되었을 때의 결과를 쓰시오.

  1. 13
  2. 21
  3. 34
  4. 55
(정답률: 62%)
  • 제시된 코드는 앞의 두 항을 더해 다음 항을 만드는 피보나치 수열을 구현한 것입니다. $i$가 0부터 7까지 반복되며 $\text{arr}[9]$까지 값이 채워집니다.
    ① [기본 공식] $\text{arr}[i+2] = \text{arr}[i+1] + \text{arr}[i]$
    ② [숫자 대입] $\text{arr}[9] = \text{arr}[8] + \text{arr}[7] = 21 + 13$
    ③ [최종 결과] $\text{arr}[9] = 34$
  • 배열의 변화 과정:

    arr[0] = 0, arr[1] = 1
    i=0일 때: arr[2] = arr[1] + arr[0] = 1 + 0 = 1
    i=1일 때: arr[3] = arr[2] + arr[1] = 1 + 1 = 2
    i=2일 때: arr[4] = arr[3] + arr[2] = 2 + 1 = 3
    i=3일 때: arr[5] = arr[4] + arr[3] = 3 + 2 = 5
    i=4일 때: arr[6] = arr[5] + arr[4] = 5 + 3 = 8
    i=5일 때: arr[7] = arr[6] + arr[5] = 8 + 5 = 13
    i=6일 때: arr[8] = arr[7] + arr[6] = 13 + 8 = 21
    i=7일 때: arr[9] = arr[8] + arr[7] = 21 + 13 = 34

    따라서 syso(arr[9])의 출력 결과는 34입니다
  • 정답률 : 63%
    <문제 해설>
    i는 0부터 시작해서 i는 8일 때 조건 불만족으로 종료
    즉, i는 0~7까지만 진행되고 배열 arr의 값은 9까지 채워지게 됨
    (반복문 내부의 내용만 기입)
    arr[0] = 0, arr[1] = 1
    arr[2] = arr[1] + arr[0] = 1 + 0 = 1
    arr[3] = arr[2] + arr[1] = 1 + 1 = 2
    arr[4] = arr[3] + arr[2] = 2 + 1 = 3
    arr[5] = arr[4] + arr[3] = 3 + 2 = 5
    arr[6] = arr[5] + arr[4] = 5 + 3 = 8
    arr[7] = arr[6] + arr[5] = 8 + 5 = 13
    arr[8] = arr[7] + arr[6] = 13 + 8 = 21
    arr[9] = arr[8] + arr[7] = 21 + 13 = 34

    따라서, arr[9]의 값은 34

    피보나치수열
profile_image
1

*오류신고 접수시 100포인트 지급해드립니다.

74. 프로세스와 관련한 설명으로 틀린 것은?

  1. 프로세스가 준비 상태에서 프로세서가 배당되어 실행 상태로 변화하는 것을 디스패치(Dispatch)라고 한다.
  2. 프로세스 제어 블록(PCB, Process Control Block)은 프로세스 식별자, 프로세스 상태 등의 정보로 구성된다.
  3. 이전 프로세스의 상태 레지스터 내용을 보관하고 다른 프로세스의 레지스터를 적재하는 과정을 문맥 교환(Context Switching)이라고 한다.
  4. 프로세스는 스레드(Thread) 내에서 실행되는 흐름의 단위이며, 스레드와 달리 주소 공간에 실행 스택(Stack)이 없다.
(정답률: 73%)
  • 프로세스는 실행 중인 프로그램으로, 스레드(Thread)가 프로세스 내에서 실행되는 흐름의 단위입니다. 또한 프로세스는 독립적인 주소 공간을 가지며, 그 안에 실행 스택(Stack)을 포함하고 있습니다.
profile_image
1

*오류신고 접수시 100포인트 지급해드립니다.

75. 모듈의 독립성을 높이기 위한 결합도(Coupling)와 관련한 설명으로 틀린 것은?

  1. 오류가 발생했을 때 전파되어 다른 오류의 원인이 되는 파문 효과(Ripple Effect)를 최소화해야 한다.
  2. 인터페이스가 정확히 설정되어 있지 않을 경우 불필요한 인터페이스가 나타나 모듈 사이의 의존도는 높아지고 결합도가 증가한다.
  3. 모듈들이 변수를 공유하여 사용하게 하거나 제어 정보를 교류하게 함으로써 결합도를 낮추어야 한다.
  4. 다른 모듈과 데이터 교류가 필요한 경우 전역변수(Global Variable)보다는 매개변수(Parameter)를 사용하는 것이 결합도를 낮추는 데 도움이 된다.
(정답률: 57%)
  • 모듈의 독립성을 높이려면 결합도를 낮추어야 합니다. 모듈들이 변수를 공유하거나 제어 정보를 교류하게 되면 모듈 간의 의존성이 강해져 결합도가 높아지므로, 이를 지양해야 합니다.
  • 57%
    <문제 해설>
    모듈들이 변수를 공유하여 사용하게 하거나 제어 정보를 교류하게 하면 모듈 간의 결합도가 높아집니다
profile_image
1

*오류신고 접수시 100포인트 지급해드립니다.

76. TCP헤더와 관련한 설명으로 틀린 것은?

  1. 순서번호(Sequence Number)는 전달하는 바이트마다 번호가 부여된다.
  2. 수신번호확인(Acknowledgement Number)은 상대편 호스트에서 받으려는 바이트의 번호를 정의한다.
  3. 체크섬(Checksum)은 데이터를 포함한 세그먼트의 오류를 검사한다.
  4. 윈도우 크기는 송수신 측의 버퍼 크기로 최대크기는 32767bit 이다.
(정답률: 69%)
  • TCP 헤더의 윈도우 크기(Window Size) 필드는 16비트로 구성되어 있습니다. 따라서 최대 크기는 $2^{16} - 1$ 바이트인 65,535 Bytes(약 64KB)가 되며, 32,767bit라는 설명은 틀린 내용입니다.
  • TCP 헤더에 있는 Window size는 16비트로 2^16 = 65535byte = 64KB
  • TCP 헤더에 있는 Window size는 16비트로 2^16 = 65535byte = 64KB
    [해설작성자 : ㄱㄱㅇ]

    TCP 헤더에 있는 Window size = 16bit = 2Bytes (1Byte = 8bit) = 2^16 - 1 = 65,535 Bytes = 64KB (1KB = 1024 Bytes)
    * TCP 헤더의 크기는 2Bytes이다. 이말은 즉, "수신 버퍼의 여유 용량이 65,535Bytes(2^16-1=65,535)임을 의미한다.
    즉, 한번에 최대로 보낼 수 있는 패킷의 크기는 65,535Bytes이다
profile_image
1

*오류신고 접수시 100포인트 지급해드립니다.

77. 모듈화(Modularity)와 관련한 설명으로 틀린 것은?

  1. 소프트웨어의 모듈은 프로그래밍 언어에서 Subroutine, Function 등으로 표현될 수 있다.
  2. 모듈의 수가 증가하면 상대적으로 각 모듈의 크기가 커지며, 모듈 사이의 상호교류가 감소하여 과부하(Overload) 현상이 나타난다.
  3. 모듈화는 시스템을 지능적으로 관리할 수 있도록 해주며, 복잡도 문제를 해결하는 데 도움을 준다.
  4. 모듈화는 시스템의 유지보수와 수정을 용이하게 한다.
(정답률: 82%)
  • 모듈화의 기본 원리는 시스템을 작은 단위로 나누는 것입니다. 따라서 모듈의 수가 증가하면 상대적으로 각 모듈의 크기는 작아지게 됩니다.
  • 모듈의 수가 "감소"하면 상대적으로 각 모듈의 크기가 커지고,
    모듈의 수가 "증가"하면 상대적으로 각 모듈의 크기가 작아집니다.
profile_image
1

*오류신고 접수시 100포인트 지급해드립니다.

78. 다음 중 페이지 교체(Page Replacement)알고리즘이 아닌 것은?

  1. FIFO(First-In-First-Out)
  2. LUF(Least Used First)
  3. Optimal
  4. LRU(Least Recently Used)
(정답률: 45%)
  • LUF(Least Used First)라는 것 자체가 없음
  • 페이지 교체 알고리즘은 메모리가 꽉 찼을 때 어떤 페이지를 내보낼지 결정하는 기법입니다. LUF라는 알고리즘은 존재하지 않으며, 참조 횟수가 가장 적은 것을 교체하는 알고리즘은 LFU(Least Frequently Used)입니다.

    오답 노트

    FIFO: 가장 먼저 들어온 페이지 교체
    Optimal: 앞으로 가장 오랫동안 사용되지 않을 페이지 교체
    LRU: 가장 오랫동안 사용되지 않은 페이지 교체
  • 페이지 교체 알고리즘의 종류

    OPT - Optimal : 앞으로 가장 오랫동안 사용되지 않을 페이지 교체
    FIFO - First In First Out
    LRU - Least Recently Used : 가장 오랫동안 사용되지 않은 페이지 교체
    LFU - Least Frequently Used : 참조 횟수가 가장 적은 페이지 교체
    MFU - Most Frequently used : 참조 횟수가 가장 많은 페이지 교체
    NUR - Not Used Recently : 최근에 사용하지 않은 페이지 교체
profile_image
1

*오류신고 접수시 100포인트 지급해드립니다.

79. C언어에서의 변수 선언으로 틀린 것은?

  1. int else;
  2. int Test2;
  3. int pc;
  4. int True;
(정답률: 74%)
  • C언어에서 변수명은 영문자, 숫자, 언더바(_)를 사용할 수 있지만, C언어 자체에서 이미 용도를 정해놓은 예약어(Keyword)는 변수명으로 사용할 수 없습니다. else는 조건문에서 사용되는 예약어이므로 변수명으로 사용할 수 없습니다.
  • else는 예약어로 변수명으로 사용할 수 없음
    [해설작성자 : ㄱㄱㅇ]

    사용가능: 영문(대문자,소문자), 숫자, _ (under bar)
    불가능: 첫자리 숫자 사용X, 예약어X
profile_image
1

*오류신고 접수시 100포인트 지급해드립니다.

80. 파일 디스크립터(File Descriptor)에 대한 설명으로 틀린 것은?

  1. 파일 관리를 위해 시스템이 필요로 하는 정보를 가지고 있다.
  2. 보조기억장치에 저장되어 있다가 파일이 개방(open)되면 주기억장치로 이동된다.
  3. 사용자가 파일 디스크립터를 직접 참조할 수 있다.
  4. 파일 제어 블록(File Control Block)이라고도 한다.
(정답률: 73%)
  • 파일 디스크립터는 파일 시스템에서 관리하는 정보로, 파일 이름, 위치, 구조 등 시스템 운영에 필요한 정보를 담고 있습니다. 이는 시스템이 관리하므로 사용자가 직접 참조할 수 없습니다.
  • 파일마다 따로 있으며 시스템에 따라 다른 구조를 가질 수 있 다.
    파일 시스템에서 관리하므로 사용자는 직접 참조할 수 없다. 파일 이름, 위치, 파일 구조, 보조기억장치의 유형, (텍스트/이 진/기계어/실행 파일 등)파일 유형, 시간, 액세스 등의 정보를 담고 있다.
  • 파일마다 따로 있으며 시스템에 따라 다른 구조를 가질 수 있다.
    파일 시스템에서 관리하므로 사용자는 직접 참조할 수 없다.
    파일 이름, 위치, 파일 구조, 보조기억장치의 유형, (텍스트/이진/기계어/실행 파일 등)파일 유형, 시간, 액세스 등의 정보를 담고 있다.
profile_image
1

*오류신고 접수시 100포인트 지급해드립니다.

5과목: 정보시스템 구축관리

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가 설치될 수 있다.
(정답률: 42%)
  • 이상 탐지 기법(Anomaly Detection)은 시스템의 평균적인 상태를 기준으로 비정상적인 행위를 감지하는 방식(Behavior/Statistical Detection)입니다. 이미 정립된 공격 패턴을 입력해두고 탐지하는 방식은 오용 탐지 기법(Misuse Detection)이며, 이를 Signature Base 또는 Knowledge Base라고도 합니다.
  • 이상탐지(Anomaly Detection) -> Behavior, Statistical Detection로 불리며 평균적 시스템의 상태 기준으로 비정상적인 행위나 자원의 사용이 감지되면 이를 알려줌
    오용탐지(Misuse Detection) -> Signature Base나 Knowledge Base로 불리며 미리 입력해둔 공격 패턴이 감지되면 이를 알려줌
    [해설작성자 : 케인인님두판해요]

    침입 탐지 시스템의 모델
    - 오용탐지 : 잘 알려진 시스템의 취약점을 공격하는 패턴의 침입을 탐지 (새로운 공격 패턴을 막기 어려움)
    - 이상탐지 : 잘 알려지지 않은 공격 탐지에 적합, 기존 패턴과 급격하게 다른 패턴을 발견하면 침입으로 판단
  • 침입 탐지 시스템 (IDS)**은 네트워크 트래픽과 디바이스에서 알려진 악성 활동, 의심스러운 활동 또는 보안 정책 위반이 있는지 모니터링하는 네트워크 보안 툴입니다. 이를 통해 보안 관리자는 알려진 위협이나 잠재적 위협을 경고하거나 보안 정보 및 이벤트 관리 (SIEM) 시스템과 같은 중앙 집중식 보안 툴로 경고를 보내, 다른 소스의 데이터와 결합하여 보안 팀이 다른 보안 조치로 놓칠 수 있는 사이버 위협을 식별하고 대응할 수 있도록 지원함으로써 네트워크 위협 탐지를 가속화하고 자동화하는 데 도움이 됩니다.

    침입 탐지 시스템은 다음과 같은 탐지 기법을 사용합니다:

    시그니처 기반 탐지 (Signature-Based Detection):
    네트워크 패킷을 분석하여 공격 시그니처 (특정 위협과 관련된 고유한 특성 또는 행동)를 찾아냅니다.
    시그니처 기반 IDS는 공격 시그니처 데이터베이스를 유지 관리하며, 패킷이 시그니처 중 하나와 일치하는 경우 경고를 발생시킵니다.
    새로운 사이버 공격이 출현하고 기존 공격이 진화함에 따라 시그니처 데이터베이스는 정기적으로 업데이트되어야 합니다.
    이상 징후 기반 탐지 (Anomaly-Based Detection):
    머신 러닝을 사용하여 정상적인 네트워크 활동의 기준 모델을 생성하고 지속적으로 개선합니다.
    네트워크 활동을 모델과 비교하여 편차를 표시하며, 이상 징후를 탐지합니다.
    이상 징후 기반 IDS는 새로운 사이버 공격을 포착할 수 있는 경우가 많지만, 오탐이 발생할 가능성도 높습니다.
    평판 기반 탐지 (Reputation-Based Detection):
    악의적이거나 의심스러운 활동과 관련된 IP 주소 및 도메인의 트래픽을 차단합니다.
    스테이트풀 프로토콜 분석은 프로토콜 동작에 중점을 둡니다.
profile_image
1

*오류신고 접수시 100포인트 지급해드립니다.

82. 정보 시스템 내에서 어떤 주체가 특정 개체에 접근하려 할 때 양쪽의 보안 레이블(Security Label)에 기초하여 높은 보안 수준을 요구하는 정보(객체)가 낮은 보안 수준의 주체에게 노출되지 않도록 하는 접근 제어 방법은?

  1. Mandatory Access Control
  2. User Access Control
  3. Discretionary Access Control
  4. Data-Label Access Control
(정답률: 48%)
  • Mandatory Access Control(강제 접근 통제)은 주체와 객체에 부여된 보안 레이블(등급)을 비교하여, 높은 보안 수준의 정보가 낮은 수준의 주체에게 노출되지 않도록 시스템이 강제로 제어하는 방식입니다.

    오답 노트

    Discretionary Access Control: 사용자의 신원에 따라 소유자가 권한을 부여하는 방식
    User Access Control: 관리자 권한 작업 시 사용자에게 알림을 통해 제어하는 기능
    Data-Label Access Control: 개별 행, 열 단위로 읽기/쓰기 권한을 결정하는 방식
  • *User Access Control (UAC)는 Windows 운영 체제에서 사용자가 실행하는 프로그램이나 작업에 대한 권한을 관리하는 기능입니다. UAC는 사용자, 그룹 및 컴퓨터가 네트워크 컴퓨터의 개체에 액세스하도록 승인하는 프로세스입니다.

    *Discretionary Access Control (DAC)는 시스템 객체에 대한 접근을 사용자나 또는 그룹의 신분을 기준으로 제한하는 방법입니다. DAC은 객체의 소유자가 접근 여부를 결정하는 접근정책입니다. DAC은 주체나 주체가 속해 있는 그룹의 신원 (신분)에 근거하여 객체에 대한 접근을 제한합니다.

    *Data-Label Access Control은 데이터의 라벨링을 기반으로 하는 접근 제어 방식입니다. 이 방식은 데이터의 라벨링 정보를 기반으로 사용자가 데이터에 접근할 수 있는 권한을 부여합니다. 이 방식은 데이터의 중요도에 따라 접근 권한을 부여하므로, 민감한 데이터를 안전하게 보호할 수 있습니다.
  • 강제접근통제(Mandatory Access Control), 주체와 객체의 등 급을 비교하여 접근 권한을 부여하는 방식 임의접근통제(Discretionary Access Control), 접근하는 사용 자의 신원에 따라 접근 권한을 부여하는 방식

    사용자계정컨트롤(User Access Control), 프로그램에서 관리 자 수준의 권한이 필요한 작업을 수행할 때 사용자에게 알려 서 제어할 수 있도록 돕는 기능


    자료별 접근통제(Data-Label Access Control >Label-Based Access Control), 개별 행, 열에 대해 쓰기 권한, 읽기 권한을 가졌는지를 명확하게 결정하는 제어 방식
  • 강제접근통제(Mandatory Access Control), 주체와 객체의 등급을 비교하여 접근 권한을 부여하는 방식
    임의접근통제(Discretionary Access Control), 접근하는 사용자의 신원에 따라 접근 권한을 부여하는 방식
    사용자계정컨트롤(User Access Control), 프로그램에서 관리자 수준의 권한이 필요한 작업을 수행할 때 사용자에게 알려서 제어할 수 있도록 돕는 기능
    자료별 접근통제(Data-Label Access Control > Label-Based Access Control), 개별 행, 열에 대해 쓰기 권한, 읽기 권한을 가졌는지를 명확하게 결정하는 제어 방식
profile_image
1

*오류신고 접수시 100포인트 지급해드립니다.

83. 구글의 구글 브레인 팀이 제작하여 공개한 기계 학습(Machine learning)을 위한 오픈소스 소프트웨어 라이브러리는?

  1. 타조(Tajo)
  2. 원 세그(One Seg)
  3. 포스퀘어(Foursquare)
  4. 텐서플로(TensorFlow)
(정답률: 74%)
  • 텐서플로(TensorFlow)는 2015년 구글 브레인 팀이 기계 학습(Machine Learning)을 위해 공개한 오픈소스 소프트웨어 라이브러리입니다.

    오답 노트

    타조(Tajo): 하둡 기반 데이터웨어하우스 시스템
    원 세그(One Seg): 모바일 대상 디지털 TV 방송 기술
    포스퀘어(Foursquare): 위치 기반 소셜 네트워크 서비스
  • 타조(Tajo) : 하둡(Hadoop) 기반 데이터웨어하우스 시스템
    원 세그(One Seg) : 일본과 브라질에서 상용 중인 디지털 TV 방송 기술의 일종 (주로 모바일 기기를 대상으로)
    포스퀘어(Foursquare) : 위치 기반 소셜 네트워크 서비스
    텐서플로(Tensorflow) : 2015년 오픈소스로 공개된 구글 브레인 팀의 두 번째 기계 학습(Machine Learning) 시스템
profile_image
1

*오류신고 접수시 100포인트 지급해드립니다.

84. 국내 IT 서비스 경쟁력 강화를 목표로 개발되었으며 인프라 제어 및 관리 환경, 실행 환경, 개발 환경, 서비스 환경, 운영환경으로 구성되어 있는 개방형 클라우드 컴퓨팅 플랫폼은?

  1. N20S
  2. PaaS-TA
  3. KAWS
  4. Metaverse
(정답률: 60%)
  • PaaS-TA는 한국지능정보사회진흥원(NIA)이 지원하는 오픈소스 기반의 개방형 클라우드 플랫폼(PaaS)으로, 인프라 제어 및 관리, 실행, 개발, 서비스, 운영 환경으로 구성되어 차세대 전자정부 클라우드의 표준 환경을 제공합니다.
profile_image
1

*오류신고 접수시 100포인트 지급해드립니다.

85. 정보 보안을 위한 접근 제어(Access Control)과 관련한 설명으로 틀린 것은?

  1. 적절한 권한을 가진 인가자만 특정 시스템이나 정보에 접근할 수 있도록 통제하는 것이다.
  2. 시스템 및 네트워크에 대한 접근 제어의 가장 기본적인 수단은 IP와 서비스 포트로 볼 수 있다.
  3. DBMS에 보안 정책을 적용하는 도구인 XDMCP를 통해 데이터베이스에 대한 접근제어를 수행할 수 있다.
  4. 네트워크 장비에서 수행하는 IP에 대한 접근 제어로는 관리 인터페이스의 접근제어와 ACL(Access Control List) 등 있다.
(정답률: 60%)
  • 접근 제어는 인가된 사용자만 시스템이나 정보에 접근하도록 통제하는 보안 체계입니다. XDMCP는 사용자 인증 후 X서버의 로그인 세션을 시작하는 프로토콜일 뿐, DBMS의 보안 정책을 적용하여 데이터베이스 접근 제어를 수행하는 도구가 아닙니다.
  • 1.정보 보안에 대한 접근 제어의 기본 개념
    2.시스템 및 네트워크에 대한 제어 방법에 대해선 IP와 서비스 포트이며 예로는 Telnet port : 23 ssh port : 22
    4.네트워크 장비 라우터,L3 장비에서 ACL config 설정으로 Permit 와 deny 로 허용 과 거부를 사용 할 수 있다.
    [해설작성자 : OSPF_SAN]

    X Display Manager Control Protocol(XDMCP) : 사용자 인증이 완료되면 X서버의 로그인 세션을 시작한다.
profile_image
1

*오류신고 접수시 100포인트 지급해드립니다.

86. 소프트웨어 개발 프레임워크와 관련한 설명으로 틀린 것은?

  1. 반제품 상태의 제품을 토대로 도메인별로 필요한 서비스 컴포넌트를 사용하여 재사용성 확대와 성능을 보장 받을 수 있게하는 개발 소프트웨어이다.
  2. 개발해야 할 애플리케이션의 일부분이 이미구현되어 있어 동일한 로직 반복을 줄일 수있다.
  3. 라이브러리와 달리 사용자 코드가 직접호출하여 사용하기 때문에 소프트웨어 개발프레임워크가 직접 코드의 흐름을 제어할수 없다.
  4. 생산성 향상과 유지보수성 향상 등의 장점이 있다.
(정답률: 86%)
  • 프레임워크의 핵심 특징은 제어의 역전(IoC, Inversion of Control)입니다. 라이브러리는 사용자가 직접 코드를 호출하지만, 프레임워크는 프레임워크 자체가 코드의 흐름을 제어하며 사용자 코드를 호출합니다. 따라서 프레임워크가 코드의 흐름을 제어할 수 없다는 설명은 틀린 것입니다.

    오답 노트

    반제품 상태의 구성 요소 제공, 동일 로직 반복 감소를 통한 생산성 및 유지보수성 향상은 프레임워크의 주요 장점입니다.
profile_image
1

*오류신고 접수시 100포인트 지급해드립니다.

87. 물리적 배치와 상관없이 논리적으로 LAN을구성하여 Broadcast Domain을 구분할 수있게 해주는 기술로 접속된 장비들의 성능향상 및 보안성 증대 효과가 있는 것은?

  1. VLAN
  2. STP
  3. L2AN
  4. ARP
(정답률: 73%)
  • VLAN은 물리적 위치에 관계없이 논리적으로 LAN을 분리하여 브로드캐스트 도메인(Broadcast Domain)을 나누는 기술입니다. 이를 통해 네트워크 성능을 향상시키고 보안성을 높일 수 있습니다.

    오답 노트

    STP: 루프 현상을 방지하기 위해 경로를 하나만 남기는 프로토콜입니다.
    ARP: IP 주소를 MAC 주소로 변환하는 프로토콜입니다.
profile_image
1

*오류신고 접수시 100포인트 지급해드립니다.

88. SQL Injection 공격과 관련한 설명으로 틀린것은?

  1. SQL Injection은 임의로 작성한 SQL 구문을 애플리케이션에 삽입하는 공격방식이다.
  2. SQL Injection 취약점이 발생하는 곳은 주로웹 애플리케이션과 데이터베이스가 연동되는 부분이다.
  3. DBMS의 종류와 관계없이 SQL Injection공격 기법은 모두 동일하다.
  4. 로그인과 같이 웹에서 사용자의 입력 값을 받아 데이터베이스 SQL문으로 데이터를요청하는 경우 SQL Injection을 수행할 수 있다.
(정답률: 84%)
  • SQL Injection은 웹 애플리케이션의 입력값 검증 미흡을 이용해 악의적인 SQL 구문을 삽입하는 공격입니다. 하지만 DBMS(Oracle, MySQL, MSSQL 등)마다 SQL 문법과 예약어가 다르기 때문에, 공격 기법은 DBMS의 종류에 따라 달라집니다.

    오답 노트

    임의의 SQL 구문 삽입, 웹 애플리케이션과 DB 연동 부분의 취약점, 사용자 입력값을 통한 데이터 요청 과정에서의 공격 수행은 모두 SQL Injection의 올바른 설명입니다.
profile_image
1

*오류신고 접수시 100포인트 지급해드립니다.

89. 비대칭 암호화 방식으로 소수를 활용한암호화 알고리즘은?

  1. DES
  2. AES
  3. SMT
  4. RSA
(정답률: 66%)
  • 암호화 알고리즘은 크게 2가지로 나눔. 1. 양방향 2. 단방향
    1. 양방향은 1) 개인키와 2)공개키로 나누어지며
    1) 개인키는 또 다시 블록방식과 스트림방식으로 나누어 짐.

    블록방식은 DES, AES, SEED, ARIA 등이 있고
    스트림 방식으론 LFSR과 RC4가 있음.

    개인키는 다른말로 비대칭키 라고 불리며, 암호화와 복호화때 사용하는 키가 다르며 장 점으로는 속도가 빠르지만 관리해야할 키의 수가 많음(2n 개).

    2) 공개키는 대표적으로 RSA가 있으며 소수 라는 키워드가 나오면 바로 RSA가 답임. 관리해야하는 키의 수가 적음 n(n-1)/2
    그리고 단방향은 hash이며 대표적으로 Sha시리즈나 n nash, md4 md5 등이 있음. 매회 출제되는 영역이라서 계 층별로 특징을 꼭 숙지해야
  • 비대칭 암호화(공개키 암호 방식)는 암호화와 복호화에 서로 다른 키를 사용하는 방식이며, 대표적으로 큰 소수의 곱셈을 이용한 RSA 알고리즘이 있습니다. '소수'라는 키워드가 나오면 RSA를 선택하세요.

    오답 노트

    DES, AES: 대칭키 암호화 방식의 블록 암호화 알고리즘입니다.
profile_image
1

*오류신고 접수시 100포인트 지급해드립니다.

90. 다음에서 설명하는 IT 스토리지 기술은?

  1. Software Defined Storage
  2. Distribution Oriented Storage
  3. Network Architected Storage
  4. Systematic Network Storage
(정답률: 55%)
  • 의 설명 중 '컴퓨팅 소프트웨어로 규정하는 데이터 스토리지 체계'라는 문구에서 알 수 있듯이, 정답은 소프트웨어 정의 스토리지(Software Defined Storage)입니다. 이는 스토리지 가상화를 통해 소프트웨어로 전체 자원을 통합 관리하는 기법입니다.
profile_image
1

*오류신고 접수시 100포인트 지급해드립니다.

91. Cocomo model 중 기관 내부에서 개발된 중소규모의 소프트웨어로 일괄 자료 처리나 과학기술계산용, 비즈니스 자료 처리용으로 5만 라인이하의 소프트웨어를 개발하는 유형은?

  1. Embeded
  2. Organic
  3. Semi-detached
  4. Semi-embeded
(정답률: 70%)
  • COCOMO 모델에서 Organic 모형은 기관 내부에서 개발되는 5만 라인 이하의 중소규모 소프트웨어(일괄 처리, 과학기술 계산용 등) 개발에 적합한 유형입니다.

    오답 노트

    Semi-detached: 30만 라인 이하의 중간 규모 프로젝트에 적합
    Embeded: 30만 라인 이상의 초대형 규모 및 실시간 시스템 개발에 적합
profile_image
1

*오류신고 접수시 100포인트 지급해드립니다.

92. 다음 내용이 설명하는 것은?

  1. Format String
  2. Ransomware
  3. Buffer overflow
  4. Adware
(정답률: 90%)
  • 의 설명처럼 시스템을 잠그거나 데이터를 암호화하여 사용 불능 상태로 만든 뒤, 이를 인질로 금전을 요구하는 악성 프로그램은 랜섬웨어(Ransomware)입니다. 주로 추적이 어려운 비트코인 등으로 몸값을 요구합니다.
profile_image
1

*오류신고 접수시 100포인트 지급해드립니다.

93. 생명주기 모형 중 가장 오래된 모형으로 많은적용 사례가 있지만 요구사항의 변경이어렵고 각 단계의 결과가 확인 되어야 다음단계로 넘어갈 수 있는 선형 순차적, 고전적생명 주기 모형이라고도 하는 것은?

  1. Waterfall Model
  2. Prototype Model
  3. Cocomo Model
  4. Spiral Model
(정답률: 85%)
  • 폭포수 모형(Waterfall Model)은 가장 오래된 고전적 생명주기 모형으로, 분석 $\rightarrow$ 설계 $\rightarrow$ 구현 $\rightarrow$ 테스트 $\rightarrow$ 유지보수 단계가 선형 순차적으로 진행됩니다. 각 단계의 결과물이 확인되어야 다음 단계로 넘어갈 수 있어 요구사항 변경이 어렵다는 특징이 있습니다.
profile_image
1

*오류신고 접수시 100포인트 지급해드립니다.

94. 소프트웨어 생명주기 모형 중 Spiral Model에 대한 설명으로 틀린 것은?

  1. 비교적 대규모 시스템에 적합하다.
  2. 개발 순서는 계획 및 정의, 위험 분석, 공학적 개발, 고객 평가 순으로 진행된다.
  3. 소프트웨어를 개발하면서 발생할 수 있는 위험을 관리하고 최소화하는 것을 목적으로 한다.
  4. 계획, 설계, 개발, 평가의 개발 주기가 한번만 수행된다.
(정답률: 81%)
  • 나선형 모형(Spiral Model)은 대규모 시스템 개발에 적합하며, 계획 및 정의 $\rightarrow$ 위험 분석 $\rightarrow$ 공학적 개발 $\rightarrow$ 고객 평가의 순서로 진행됩니다. 특히 소프트웨어 개발 중 발생할 수 있는 위험을 관리하고 최소화하는 것이 핵심 목적입니다.

    오답 노트

    계획, 설계, 개발, 평가의 개발 주기가 한번만 수행된다: 나선형 모형은 점진적으로 개발 과정이 반복되며 요구사항을 추가/수정하는 반복적 모형입니다.
profile_image
1

*오류신고 접수시 100포인트 지급해드립니다.

95. 특정 사이트에 매우 많은 ICMP Echo를 보내면, 이에 대한 응답(Respond)을 하기 위해 시스템 자원을 모두 사용해버려 시스템이 정상적으로 동작하지 못하도록 하는 공격방법은?

  1. Role-Based Access Control
  2. Ping Flood
  3. Brute-Force
  4. Trojan Horses
(정답률: 82%)
  • ICMP Echo 요청 패킷(Ping)을 대량으로 보내 대상 시스템이 응답 처리에 모든 자원을 소모하게 만들어 정상적인 서비스를 불가능하게 하는 DoS 공격 방법입니다.

    오답 노트

    Brute-Force: 가능한 모든 조합을 시도하는 무차별 대입 공격
    Trojan Horses: 정상 프로그램으로 위장하여 시스템에 침투하는 트로이 목마
  • 본 해설은 비추 누적갯수 초과로 자동 블라인드 되었습니다.
    (AI해설 오류가 많아 비추 2개 이상시 자동 블라인드 됩니다.)
    해설을 보시기 원하시면 클릭해 주세요
profile_image
1

*오류신고 접수시 100포인트 지급해드립니다.

96. TCP/IP 기반 네트워크에서 동작하는 발행-구독 기반의 메시징 프로토콜로 최근 IoT 환경에서 자주 사용되고 있는 프로토콜은?

  1. MLFQ
  2. MQTT
  3. Zigbee
  4. MTSP
(정답률: 63%)
  • IBM에서 개발한 발행-구독(Publish-Subscribe) 기반의 메시징 프로토콜로, TCP/IP를 통해 동작하며 저전력·저대역폭 환경인 IoT 기기에 최적화되어 있습니다.

    오답 노트

    MLFQ: 입출력 위주 프로세스에 우선순위를 주는 선점형 스케줄링 기법
    Zigbee: 홈 네트워크 및 무선 센서망을 위한 저전력 무선 통신 표준
  • MQTT 프로토콜
    - IBM 개발
    - 발행/구독 프로토콜
    - TCP/IP를 통해 실행되어 기본 네트워크 연결을 제공

    - MQTT (Message Queuing Telemetry Transport)
    - MLFQ(=MFQ)(Multi Level Feedback Queue) : 짧은 작업 이나 입출력 위주의 프로세스에 우선순위를 부여하는 선점형 스케줄링 기법
    - Zigbee : 홈 네트워크 및 무선 센서망에서 사용되는 기술 로, 버튼 하나의 동작으로 집안 어느 곳에서나 전등 제어 및 홈 보안 시스템을 제어관리하는 가정 자동화를 목표로 출발하 였음.
profile_image
1

*오류신고 접수시 100포인트 지급해드립니다.

97. 시스템이 몇 대가 되어도 하나의 시스템에서 인증에 성공하면 다른 시스템에 대한 접근권한도 얻는 시스템을 의미하는 것은?

  1. SOS
  2. SBO
  3. SSO
  4. SOA
(정답률: 74%)
  • Single Sign On의 약자로, 여러 개의 시스템이 있더라도 단 한 번의 인증만 성공하면 연결된 다른 모든 시스템에 대한 접근 권한을 자동으로 획득하는 인증 방식입니다.
  • SSO - Single Sign On

    시스템 인증
    - 토큰 기반 인증 : 하드웨어와 소프트웨어의 토큰 장치를 사 용하는 인증 기법, 하드웨어 장치는 스마트카드를 사용, 소프 트웨어 장치는 개인 식별번호를 사용하는 강력한 인증 방법
    - SSO 인증 : 여러 시스템 중 하나의 시스템에 인증을 성공 하면 다른 시스템의 접근 권한도 모두 얻는 방식
profile_image
1

*오류신고 접수시 100포인트 지급해드립니다.

98. 시스템에 저장되는 패스워드들은 Hash 또는 암호화 알고리즘의 결과 값으로 저장된다. 이때 암호공격을 막기 위해 똑같은 패스워드들이 다른 암호 값으로 저장되도록 추가되는 값을 의미하는 것은?

  1. Pass flag
  2. Bucket
  3. Opcode
  4. Salt
(정답률: 61%)
  • 동일한 패스워드라도 해시 함수를 거치면 같은 결과값이 나오는 문제를 해결하기 위해, 해시 전 임의의 값을 추가하여 서로 다른 암호 값으로 저장되게 만드는 기법입니다.
profile_image
1

*오류신고 접수시 100포인트 지급해드립니다.

99. S/W 각 기능의 원시 코드 라인수의 비관치, 낙관치, 기대치를 측정하여 예측치를 구하고 이를 이용하여 비용을 산정하는 기법은?

  1. Effort Per Task기법
  2. 전문가 감정 기법
  3. 델파이기법
  4. LOC기법
(정답률: 70%)
  • 원시 코드 라인수(Source Line of Code)를 기반으로 비관치, 낙관치, 기대치를 측정하여 소프트웨어의 규모를 예측하고 비용을 산정하는 상향식 산정 기법입니다.

    오답 노트

    Effort Per Task기법: 각 기능 구현에 필요한 노력을 생명 주기 단계별로 산정
    전문가 감정 기법: 2명 이상의 전문가에게 의뢰하는 주관적 산정 방식
    델파이기법: 조정자와 여러 전문가의 의견을 종합하여 주관적 편견을 보완
profile_image
1

*오류신고 접수시 100포인트 지급해드립니다.

100. 오픈소스 웹 애플리케이션 보안 프로젝트로서 주로 웹을 통한 정보 유출, 악성 파일 및 스크립트, 보안 취약점 등을 연구하는 곳은?

  1. WWW
  2. OWASP
  3. WBSEC
  4. ITU
(정답률: 66%)
  • OWASP(The Open Web Application Security Project)는 오픈소스 웹 애플리케이션 보안 프로젝트로, 웹을 통한 정보 유출, 악성 파일 및 스크립트, 보안 취약점 등을 전문적으로 연구하는 곳입니다.

    오답 노트

    ITU: 전기 통신의 개선과 효율적 사용을 위한 정부 간 국제 기구
  • 본 해설은 비추 누적갯수 초과로 자동 블라인드 되었습니다.
    (AI해설 오류가 많아 비추 2개 이상시 자동 블라인드 됩니다.)
    해설을 보시기 원하시면 클릭해 주세요
profile_image
1

*오류신고 접수시 100포인트 지급해드립니다.

< 이전회차목록 다음회차 >