문제지 PDF · 웹 정답 해설

정보처리기사 필기 2026년 2회 CBT 편집복원 100문항

정보처리기사 필기 2026년 2회 CBT 편집복원 100문항을 과목별로 풀고 문항별 정답과 상세해설을 확인하세요.

후기복원 100문항 시험기간 2026-05-09 ~ 2026-05-29 근거 기준일 2026-08-29

정보처리기사 필기 2026년 2회 CBT 편집복원 100문항 안내

정보처리기사 필기 2026년 2회 CBT 편집복원 100문항을 과목별로 풀고 문항별 정답과 상세해설을 확인하세요.

각 문항의 정답은 아래 해설과 연결된 기술 표준·공식 문서·독립 계산으로 검증했습니다.

정보처리기사 전체 자료 · 정보처리기사 CBT 학습실 · Q-Net 정보처리기사 출제기준

정보처리기사 필기 2026년 2회 CBT 편집복원 100문항 자격증3001

정보처리기사 필기 기출문제 · 소프트웨어 설계

1. XP 팀의 실천으로 보기 어려운 것은?

  1. 일정을 줄이기 위해 자동화 테스트를 생략한다
  2. 짧은 주기로 결과를 전달한다
  3. 요구 변경을 반복 계획에 반영한다
  4. 고객 피드백을 개발에 활용한다
정답과 해설 보기

정답: 1

XP는 빠른 피드백을 위해 테스트와 지속적 통합을 중시한다. 속도를 이유로 검증을 없애는 것은 XP의 실천과 반대다.

선지별 해설

  • 1번은 정답 선지다. XP는 빠른 피드백을 위해 테스트와 지속적 통합을 중시한다. 속도를 이유로 검증을 없애는 것은 XP의 실천과 반대다.
  • 2번 ‘짧은 주기로 결과를 전달한다’는 이 문항의 조건에 맞지 않는다. XP는 빠른 피드백을 위해 테스트와 지속적 통합을 중시한다. 속도를 이유로 검증을 없애는 것은 XP의 실천과 반대다.
  • 3번 ‘요구 변경을 반복 계획에 반영한다’는 이 문항의 조건에 맞지 않는다. XP는 빠른 피드백을 위해 테스트와 지속적 통합을 중시한다. 속도를 이유로 검증을 없애는 것은 XP의 실천과 반대다.
  • 4번 ‘고객 피드백을 개발에 활용한다’는 이 문항의 조건에 맞지 않는다. XP는 빠른 피드백을 위해 테스트와 지속적 통합을 중시한다. 속도를 이유로 검증을 없애는 것은 XP의 실천과 반대다.

정답 판정: 정답 판정: XP는 빠른 피드백을 위해 테스트와 지속적 통합을 중시한다. 속도를 이유로 검증을 없애는 것은 XP의 실천과 반대다. 검증 기준: XP의 반복 개발, 테스트, 고객 피드백 원칙을 기준으로 판단한다. 원문 대조: XP는 시험과 빠른 피드백을 핵심 실천으로 두므로 시험 생략은 반대 방향이다.

2. XP가 제시하는 핵심 가치 다섯 가지에 포함되지 않는 것은?

  1. 의사소통
  2. 단순성
  3. 정형 분석
  4. 존중
정답과 해설 보기

정답: 3

XP의 대표 가치는 의사소통, 단순성, 피드백, 용기, 존중이다. 정형 분석은 이 다섯 가치에 포함되지 않는다.

선지별 해설

  • 1번 ‘의사소통’는 이 문항의 조건에 맞지 않는다. XP의 대표 가치는 의사소통, 단순성, 피드백, 용기, 존중이다. 정형 분석은 이 다섯 가치에 포함되지 않는다.
  • 2번 ‘단순성’는 이 문항의 조건에 맞지 않는다. XP의 대표 가치는 의사소통, 단순성, 피드백, 용기, 존중이다. 정형 분석은 이 다섯 가치에 포함되지 않는다.
  • 3번은 정답 선지다. XP의 대표 가치는 의사소통, 단순성, 피드백, 용기, 존중이다. 정형 분석은 이 다섯 가치에 포함되지 않는다.
  • 4번 ‘존중’는 이 문항의 조건에 맞지 않는다. XP의 대표 가치는 의사소통, 단순성, 피드백, 용기, 존중이다. 정형 분석은 이 다섯 가치에 포함되지 않는다.

정답 판정: 정답 판정: XP의 대표 가치는 의사소통, 단순성, 피드백, 용기, 존중이다. 정형 분석은 이 다섯 가치에 포함되지 않는다. 검증 기준: XP 핵심 가치의 명시적 목록을 대조한다. 원문 대조: 명시된 다섯 가치에 정형 분석은 포함되지 않는다.

3. 여러 유스케이스가 반드시 수행하는 공통 절차를 별도 유스케이스로 빼고 «include»로 연결했다. 이 관계의 이름은?

  1. 포함 관계
  2. 확장 관계
  3. 일반화 관계
  4. 연관 관계
정답과 해설 보기

정답: 1

기반 유스케이스가 공통 절차를 항상 실행하면 포함 관계다. 확장 관계는 특정 조건에서 선택적으로 행동을 덧붙인다.

선지별 해설

  • 1번은 정답 선지다. 기반 유스케이스가 공통 절차를 항상 실행하면 포함 관계다. 확장 관계는 특정 조건에서 선택적으로 행동을 덧붙인다.
  • 2번 ‘확장 관계’는 이 문항의 조건에 맞지 않는다. 기반 유스케이스가 공통 절차를 항상 실행하면 포함 관계다. 확장 관계는 특정 조건에서 선택적으로 행동을 덧붙인다.
  • 3번 ‘일반화 관계’는 이 문항의 조건에 맞지 않는다. 기반 유스케이스가 공통 절차를 항상 실행하면 포함 관계다. 확장 관계는 특정 조건에서 선택적으로 행동을 덧붙인다.
  • 4번 ‘연관 관계’는 이 문항의 조건에 맞지 않는다. 기반 유스케이스가 공통 절차를 항상 실행하면 포함 관계다. 확장 관계는 특정 조건에서 선택적으로 행동을 덧붙인다.

정답 판정: 정답 판정: 기반 유스케이스가 공통 절차를 항상 실행하면 포함 관계다. 확장 관계는 특정 조건에서 선택적으로 행동을 덧붙인다. 검증 기준: UML 유스케이스 관계 중 include와 extend의 실행 조건 차이를 적용한다. 원문 대조: include는 포함되는 유스케이스의 행동을 기반 유스케이스에 삽입하는 관계다.

4. 아키텍처 뷰 중 구성 요소, 인터페이스, 성능을 이용해 운용 요구를 만족할 구체적 시스템 해법을 표현하는 것은?

  1. System View
  2. Technical View
  3. Operational View
  4. All View
정답과 해설 보기

정답: 1

System View는 운용 요구를 실현하는 시스템 기능과 구성, 인터페이스를 기술한다. Operational View는 임무와 정보교환, Technical View는 표준에 초점을 둔다.

선지별 해설

  • 1번은 정답 선지다. System View는 운용 요구를 실현하는 시스템 기능과 구성, 인터페이스를 기술한다. Operational View는 임무와 정보교환, Technical View는 표준에 초점을 둔다.
  • 2번 ‘Technical View’는 이 문항의 조건에 맞지 않는다. System View는 운용 요구를 실현하는 시스템 기능과 구성, 인터페이스를 기술한다. Operational View는 임무와 정보교환, Technical View는 표준에 초점을 둔다.
  • 3번 ‘Operational View’는 이 문항의 조건에 맞지 않는다. System View는 운용 요구를 실현하는 시스템 기능과 구성, 인터페이스를 기술한다. Operational View는 임무와 정보교환, Technical View는 표준에 초점을 둔다.
  • 4번 ‘All View’는 이 문항의 조건에 맞지 않는다. System View는 운용 요구를 실현하는 시스템 기능과 구성, 인터페이스를 기술한다. Operational View는 임무와 정보교환, Technical View는 표준에 초점을 둔다.

정답 판정: 정답 판정: System View는 운용 요구를 실현하는 시스템 기능과 구성, 인터페이스를 기술한다. Operational View는 임무와 정보교환, Technical View는 표준에 초점을 둔다. 검증 기준: 아키텍처 프레임워크의 OV·SV·TV 역할을 구분한다. 원문 대조: Systems Viewpoint는 운용·능력 요구를 지원하는 시스템 자원과 상호연결을 기술한다.

5. 다음 GoF 패턴 중 행위 패턴은?

  1. Builder
  2. Visitor
  3. Prototype
  4. Bridge
정답과 해설 보기

정답: 2

Visitor는 객체 구조의 원소를 방문하며 연산을 분리하는 행위 패턴이다. Builder와 Prototype은 생성, Bridge는 구조 패턴이다.

선지별 해설

  • 1번 ‘Builder’는 이 문항의 조건에 맞지 않는다. Visitor는 객체 구조의 원소를 방문하며 연산을 분리하는 행위 패턴이다. Builder와 Prototype은 생성, Bridge는 구조 패턴이다.
  • 2번은 정답 선지다. Visitor는 객체 구조의 원소를 방문하며 연산을 분리하는 행위 패턴이다. Builder와 Prototype은 생성, Bridge는 구조 패턴이다.
  • 3번 ‘Prototype’는 이 문항의 조건에 맞지 않는다. Visitor는 객체 구조의 원소를 방문하며 연산을 분리하는 행위 패턴이다. Builder와 Prototype은 생성, Bridge는 구조 패턴이다.
  • 4번 ‘Bridge’는 이 문항의 조건에 맞지 않는다. Visitor는 객체 구조의 원소를 방문하며 연산을 분리하는 행위 패턴이다. Builder와 Prototype은 생성, Bridge는 구조 패턴이다.

정답 판정: 정답 판정: Visitor는 객체 구조의 원소를 방문하며 연산을 분리하는 행위 패턴이다. Builder와 Prototype은 생성, Bridge는 구조 패턴이다. 검증 기준: GoF 패턴의 생성·구조·행위 분류를 적용한다. 원문 대조: Visitor는 behavioral, Builder·Prototype은 creational, Bridge는 structural 패턴 목록에 놓인다.

6. 모듈 독립성을 높이는 일반적인 설계 방향은?

  1. 낮은 응집도와 높은 결합도
  2. 높은 응집도와 낮은 결합도
  3. 낮은 응집도와 낮은 결합도
  4. 높은 응집도와 높은 결합도
정답과 해설 보기

정답: 2

한 모듈 안의 책임은 긴밀하게 모으고 모듈 사이 의존은 줄여야 변경 영향이 작다. 따라서 높은 응집도와 낮은 결합도가 바람직하다.

선지별 해설

  • 1번 ‘낮은 응집도와 높은 결합도’는 이 문항의 조건에 맞지 않는다. 한 모듈 안의 책임은 긴밀하게 모으고 모듈 사이 의존은 줄여야 변경 영향이 작다. 따라서 높은 응집도와 낮은 결합도가 바람직하다.
  • 2번은 정답 선지다. 한 모듈 안의 책임은 긴밀하게 모으고 모듈 사이 의존은 줄여야 변경 영향이 작다. 따라서 높은 응집도와 낮은 결합도가 바람직하다.
  • 3번 ‘낮은 응집도와 낮은 결합도’는 이 문항의 조건에 맞지 않는다. 한 모듈 안의 책임은 긴밀하게 모으고 모듈 사이 의존은 줄여야 변경 영향이 작다. 따라서 높은 응집도와 낮은 결합도가 바람직하다.
  • 4번 ‘높은 응집도와 높은 결합도’는 이 문항의 조건에 맞지 않는다. 한 모듈 안의 책임은 긴밀하게 모으고 모듈 사이 의존은 줄여야 변경 영향이 작다. 따라서 높은 응집도와 낮은 결합도가 바람직하다.

정답 판정: 정답 판정: 한 모듈 안의 책임은 긴밀하게 모으고 모듈 사이 의존은 줄여야 변경 영향이 작다. 따라서 높은 응집도와 낮은 결합도가 바람직하다. 검증 기준: 모듈화 설계의 응집도와 결합도 원칙을 적용한다. 원문 대조: 약한 결합과 높은 응집을 권고하는 정의가 정답 방향을 직접 지지한다.

7. UML 다이어그램 중 구조 다이어그램으로 분류되는 것은?

  1. 활동 다이어그램
  2. 상태 머신 다이어그램
  3. 시퀀스 다이어그램
  4. 배치 다이어그램
정답과 해설 보기

정답: 4

배치 다이어그램은 실행 환경 노드와 산출물의 물리적 배치를 나타내는 구조 다이어그램이다. 나머지는 동작을 표현한다.

선지별 해설

  • 1번 ‘활동 다이어그램’는 이 문항의 조건에 맞지 않는다. 배치 다이어그램은 실행 환경 노드와 산출물의 물리적 배치를 나타내는 구조 다이어그램이다. 나머지는 동작을 표현한다.
  • 2번 ‘상태 머신 다이어그램’는 이 문항의 조건에 맞지 않는다. 배치 다이어그램은 실행 환경 노드와 산출물의 물리적 배치를 나타내는 구조 다이어그램이다. 나머지는 동작을 표현한다.
  • 3번 ‘시퀀스 다이어그램’는 이 문항의 조건에 맞지 않는다. 배치 다이어그램은 실행 환경 노드와 산출물의 물리적 배치를 나타내는 구조 다이어그램이다. 나머지는 동작을 표현한다.
  • 4번은 정답 선지다. 배치 다이어그램은 실행 환경 노드와 산출물의 물리적 배치를 나타내는 구조 다이어그램이다. 나머지는 동작을 표현한다.

정답 판정: 정답 판정: 배치 다이어그램은 실행 환경 노드와 산출물의 물리적 배치를 나타내는 구조 다이어그램이다. 나머지는 동작을 표현한다. 검증 기준: UML의 structure diagram과 behavior diagram 분류를 확인한다. 원문 대조: Deployment는 구조 다이어그램이고 Activity·State Machine·Sequence는 동작 다이어그램군이다.

8. UML 확장 메커니즘에 관한 설명으로 틀린 것은?

  1. 스테레오타입은 기존 요소에 추가 의미를 준다
  2. 태그 값은 이름과 값 형태의 정보를 덧붙인다
  3. 제약은 요소가 만족할 규칙을 표현한다
  4. 사용할 때마다 UML 메타모델에 새 메타클래스를 직접 추가해야 한다
정답과 해설 보기

정답: 4

스테레오타입, 태그 값, 제약은 UML을 정해진 방식으로 확장한다. 이를 사용할 때마다 메타모델 자체에 새 메타클래스를 추가해야 하는 것은 아니다.

선지별 해설

  • 1번 ‘스테레오타입은 기존 요소에 추가 의미를 준다’는 이 문항의 조건에 맞지 않는다. 스테레오타입, 태그 값, 제약은 UML을 정해진 방식으로 확장한다. 이를 사용할 때마다 메타모델 자체에 새 메타클래스를 추가해야 하는 것은 아니다.
  • 2번 ‘태그 값은 이름과 값 형태의 정보를 덧붙인다’는 이 문항의 조건에 맞지 않는다. 스테레오타입, 태그 값, 제약은 UML을 정해진 방식으로 확장한다. 이를 사용할 때마다 메타모델 자체에 새 메타클래스를 추가해야 하는 것은 아니다.
  • 3번 ‘제약은 요소가 만족할 규칙을 표현한다’는 이 문항의 조건에 맞지 않는다. 스테레오타입, 태그 값, 제약은 UML을 정해진 방식으로 확장한다. 이를 사용할 때마다 메타모델 자체에 새 메타클래스를 추가해야 하는 것은 아니다.
  • 4번은 정답 선지다. 스테레오타입, 태그 값, 제약은 UML을 정해진 방식으로 확장한다. 이를 사용할 때마다 메타모델 자체에 새 메타클래스를 추가해야 하는 것은 아니다.

정답 판정: 정답 판정: 스테레오타입, 태그 값, 제약은 UML을 정해진 방식으로 확장한다. 이를 사용할 때마다 메타모델 자체에 새 메타클래스를 추가해야 하는 것은 아니다. 검증 기준: UML 프로파일과 확장 메커니즘의 정의를 기준으로 판단한다. 원문 대조: Profile은 stereotype·tagged value·constraint로 UML을 확장하며 사용 때마다 메타모델을 직접 바꾸는 방식이 아니다.

9. 연산 실행 전 조건, 실행 후 조건, 실행 동안 유지할 불변식을 명세하는 설계 방식은?

  1. 계약에 의한 설계
  2. 프로토콜 우선 설계
  3. 자료 흐름 설계
  4. 관계형 설계
정답과 해설 보기

정답: 1

계약에 의한 설계는 선행조건, 사후조건, 불변식을 이용해 구성요소가 제공하고 요구하는 책임을 명시한다.

선지별 해설

  • 1번은 정답 선지다. 계약에 의한 설계는 선행조건, 사후조건, 불변식을 이용해 구성요소가 제공하고 요구하는 책임을 명시한다.
  • 2번 ‘프로토콜 우선 설계’는 이 문항의 조건에 맞지 않는다. 계약에 의한 설계는 선행조건, 사후조건, 불변식을 이용해 구성요소가 제공하고 요구하는 책임을 명시한다.
  • 3번 ‘자료 흐름 설계’는 이 문항의 조건에 맞지 않는다. 계약에 의한 설계는 선행조건, 사후조건, 불변식을 이용해 구성요소가 제공하고 요구하는 책임을 명시한다.
  • 4번 ‘관계형 설계’는 이 문항의 조건에 맞지 않는다. 계약에 의한 설계는 선행조건, 사후조건, 불변식을 이용해 구성요소가 제공하고 요구하는 책임을 명시한다.

정답 판정: 정답 판정: 계약에 의한 설계는 선행조건, 사후조건, 불변식을 이용해 구성요소가 제공하고 요구하는 책임을 명시한다. 검증 기준: Design by Contract의 세 계약 요소를 대조한다. 원문 대조: 계약에 의한 설계는 precondition·postcondition·invariant로 책임을 명세한다.

10. 접수된 순서대로 0001, 0002, 0003처럼 번호를 붙이는 코드 체계는?

  1. 연상 코드
  2. 블록 코드
  3. 순차 코드
  4. 표의 숫자 코드
정답과 해설 보기

정답: 3

순차 코드는 발생하거나 등록된 순서에 따라 일련번호를 부여한다. 번호 자체에 분류 의미를 넣는 방식과 구별된다.

선지별 해설

  • 1번 ‘연상 코드’는 이 문항의 조건에 맞지 않는다. 순차 코드는 발생하거나 등록된 순서에 따라 일련번호를 부여한다. 번호 자체에 분류 의미를 넣는 방식과 구별된다.
  • 2번 ‘블록 코드’는 이 문항의 조건에 맞지 않는다. 순차 코드는 발생하거나 등록된 순서에 따라 일련번호를 부여한다. 번호 자체에 분류 의미를 넣는 방식과 구별된다.
  • 3번은 정답 선지다. 순차 코드는 발생하거나 등록된 순서에 따라 일련번호를 부여한다. 번호 자체에 분류 의미를 넣는 방식과 구별된다.
  • 4번 ‘표의 숫자 코드’는 이 문항의 조건에 맞지 않는다. 순차 코드는 발생하거나 등록된 순서에 따라 일련번호를 부여한다. 번호 자체에 분류 의미를 넣는 방식과 구별된다.

정답 판정: 정답 판정: 순차 코드는 발생하거나 등록된 순서에 따라 일련번호를 부여한다. 번호 자체에 분류 의미를 넣는 방식과 구별된다. 검증 기준: 코드 설계의 순차 코드 정의를 적용한다. 원문 대조: sequence 객체가 요청 순서에 따라 연속 값을 생성한다는 동작이 순차 번호 부여와 일치한다.

11. 프로세스가 IP 주소와 포트를 사용해 상대 프로세스와 송수신 통로를 만드는 연계 기술은?

  1. DB 링크
  2. 소켓
  3. 스크럼
  4. 프로토타이핑
정답과 해설 보기

정답: 2

소켓은 네트워크 통신 종단점을 나타내며 주소와 포트, 프로토콜을 바탕으로 프로세스 간 통신을 제공한다.

선지별 해설

  • 1번 ‘DB 링크’는 이 문항의 조건에 맞지 않는다. 소켓은 네트워크 통신 종단점을 나타내며 주소와 포트, 프로토콜을 바탕으로 프로세스 간 통신을 제공한다.
  • 2번은 정답 선지다. 소켓은 네트워크 통신 종단점을 나타내며 주소와 포트, 프로토콜을 바탕으로 프로세스 간 통신을 제공한다.
  • 3번 ‘스크럼’는 이 문항의 조건에 맞지 않는다. 소켓은 네트워크 통신 종단점을 나타내며 주소와 포트, 프로토콜을 바탕으로 프로세스 간 통신을 제공한다.
  • 4번 ‘프로토타이핑’는 이 문항의 조건에 맞지 않는다. 소켓은 네트워크 통신 종단점을 나타내며 주소와 포트, 프로토콜을 바탕으로 프로세스 간 통신을 제공한다.

정답 판정: 정답 판정: 소켓은 네트워크 통신 종단점을 나타내며 주소와 포트, 프로토콜을 바탕으로 프로세스 간 통신을 제공한다. 검증 기준: 네트워크 소켓의 통신 종단점 역할을 기준으로 판단한다. 원문 대조: socket()은 통신 종단점을 만들고 주소 계열·형식·프로토콜로 통신 특성을 정한다.

12. 위험 관리에서 위험 징후와 상태를 프로젝트 진행 중 계속 추적하는 활동은?

  1. 위험 식별
  2. 위험 회피
  3. 위험 대응
  4. 위험 모니터링
정답과 해설 보기

정답: 4

위험 모니터링은 이미 식별한 위험의 지표와 징후, 대응 효과를 지속적으로 관찰하는 활동이다.

선지별 해설

  • 1번 ‘위험 식별’는 이 문항의 조건에 맞지 않는다. 위험 모니터링은 이미 식별한 위험의 지표와 징후, 대응 효과를 지속적으로 관찰하는 활동이다.
  • 2번 ‘위험 회피’는 이 문항의 조건에 맞지 않는다. 위험 모니터링은 이미 식별한 위험의 지표와 징후, 대응 효과를 지속적으로 관찰하는 활동이다.
  • 3번 ‘위험 대응’는 이 문항의 조건에 맞지 않는다. 위험 모니터링은 이미 식별한 위험의 지표와 징후, 대응 효과를 지속적으로 관찰하는 활동이다.
  • 4번은 정답 선지다. 위험 모니터링은 이미 식별한 위험의 지표와 징후, 대응 효과를 지속적으로 관찰하는 활동이다.

정답 판정: 정답 판정: 위험 모니터링은 이미 식별한 위험의 지표와 징후, 대응 효과를 지속적으로 관찰하는 활동이다. 검증 기준: 위험관리 생명주기에서 감시 활동의 역할을 적용한다. 원문 대조: 식별된 위험과 통제 효과를 계속 추적·갱신하는 단계가 모니터링이다.

13. 상태 머신에서 한 상태에서 다른 상태로 옮겨가게 만드는 발생 사실은?

  1. 상태
  2. 이벤트
  3. 가드 조건
  4. 전이
정답과 해설 보기

정답: 2

이벤트는 상태 전이를 촉발하는 발생 사실이다. 가드 조건은 이벤트가 왔을 때 전이가 허용되는지를 판정한다.

선지별 해설

  • 1번 ‘상태’는 이 문항의 조건에 맞지 않는다. 이벤트는 상태 전이를 촉발하는 발생 사실이다. 가드 조건은 이벤트가 왔을 때 전이가 허용되는지를 판정한다.
  • 2번은 정답 선지다. 이벤트는 상태 전이를 촉발하는 발생 사실이다. 가드 조건은 이벤트가 왔을 때 전이가 허용되는지를 판정한다.
  • 3번 ‘가드 조건’는 이 문항의 조건에 맞지 않는다. 이벤트는 상태 전이를 촉발하는 발생 사실이다. 가드 조건은 이벤트가 왔을 때 전이가 허용되는지를 판정한다.
  • 4번 ‘전이’는 이 문항의 조건에 맞지 않는다. 이벤트는 상태 전이를 촉발하는 발생 사실이다. 가드 조건은 이벤트가 왔을 때 전이가 허용되는지를 판정한다.

정답 판정: 정답 판정: 이벤트는 상태 전이를 촉발하는 발생 사실이다. 가드 조건은 이벤트가 왔을 때 전이가 허용되는지를 판정한다. 검증 기준: UML 상태 머신의 trigger, guard, transition 개념을 구분한다. 원문 대조: trigger event와 guard·transition의 역할을 구분하면 발생 사실은 이벤트다.

14. SWEBOK가 설명하는 아키텍처 뷰와 뷰포인트의 역할로 옳지 않은 것은?

  1. 모든 이해관계자의 서로 다른 관심사를 하나의 표현으로 강제한다
  2. 특정 이해관계자의 관심사를 다루는 표현을 제공한다
  3. 한 아키텍처에 여러 뷰를 둘 수 있다
  4. 뷰포인트는 뷰를 구성하는 규약을 제공한다
정답과 해설 보기

정답: 1

아키텍처에는 서로 다른 이해관계자와 관심사가 있으므로 한 표현으로 모두 강제하지 않고 관심사별 뷰를 사용한다. 뷰포인트는 해당 뷰를 구성·해석하는 규약을 제공한다.

선지별 해설

  • 1번은 정답 선지다. 아키텍처에는 서로 다른 이해관계자와 관심사가 있으므로 한 표현으로 모두 강제하지 않고 관심사별 뷰를 사용한다. 뷰포인트는 해당 뷰를 구성·해석하는 규약을 제공한다.
  • 2번 ‘특정 이해관계자의 관심사를 다루는 표현을 제공한다’는 이 문항의 조건에 맞지 않는다. 아키텍처에는 서로 다른 이해관계자와 관심사가 있으므로 한 표현으로 모두 강제하지 않고 관심사별 뷰를 사용한다. 뷰포인트는 해당 뷰를 구성·해석하는 규약을 제공한다.
  • 3번 ‘한 아키텍처에 여러 뷰를 둘 수 있다’는 이 문항의 조건에 맞지 않는다. 아키텍처에는 서로 다른 이해관계자와 관심사가 있으므로 한 표현으로 모두 강제하지 않고 관심사별 뷰를 사용한다. 뷰포인트는 해당 뷰를 구성·해석하는 규약을 제공한다.
  • 4번 ‘뷰포인트는 뷰를 구성하는 규약을 제공한다’는 이 문항의 조건에 맞지 않는다. 아키텍처에는 서로 다른 이해관계자와 관심사가 있으므로 한 표현으로 모두 강제하지 않고 관심사별 뷰를 사용한다. 뷰포인트는 해당 뷰를 구성·해석하는 규약을 제공한다.

정답 판정: 정답 판정: 아키텍처에는 서로 다른 이해관계자와 관심사가 있으므로 한 표현으로 모두 강제하지 않고 관심사별 뷰를 사용한다. 뷰포인트는 해당 뷰를 구성·해석하는 규약을 제공한다. 검증 기준: SWEBOK Software Architecture KA의 Architecture Views and Viewpoints 정의에서 stakeholder concern별 표현 원칙을 대조한다. 원문 대조: 서로 다른 이해관계자 관심사를 한 표현으로 강제하지 않고 관심사별 뷰를 구성한다.

15. 주 컴퓨터가 처리하기 전에 통신 입력을 모아 형식 변환·오류 확인 등을 담당해 부하를 줄이는 장치는?

  1. EAI
  2. FEP
  3. GPL
  4. Duplexing
정답과 해설 보기

정답: 2

FEP(Front-End Processor)는 통신 제어와 전처리를 맡아 중앙 처리 장치의 입출력 부담을 줄인다.

선지별 해설

  • 1번 ‘EAI’는 이 문항의 조건에 맞지 않는다. FEP(Front-End Processor)는 통신 제어와 전처리를 맡아 중앙 처리 장치의 입출력 부담을 줄인다.
  • 2번은 정답 선지다. FEP(Front-End Processor)는 통신 제어와 전처리를 맡아 중앙 처리 장치의 입출력 부담을 줄인다.
  • 3번 ‘GPL’는 이 문항의 조건에 맞지 않는다. FEP(Front-End Processor)는 통신 제어와 전처리를 맡아 중앙 처리 장치의 입출력 부담을 줄인다.
  • 4번 ‘Duplexing’는 이 문항의 조건에 맞지 않는다. FEP(Front-End Processor)는 통신 제어와 전처리를 맡아 중앙 처리 장치의 입출력 부담을 줄인다.

정답 판정: 정답 판정: FEP(Front-End Processor)는 통신 제어와 전처리를 맡아 중앙 처리 장치의 입출력 부담을 줄인다. 검증 기준: 전단 처리기의 통신 전처리 역할을 적용한다. 원문 대조: FEP가 통신 입력을 라우팅·전처리하고 호스트 통신 기능을 분담한다.

16. 객체와 클래스의 관계를 잘못 설명한 것은?

  1. 객체는 상태와 행동, 식별성을 가질 수 있다
  2. 객체는 공통 특성을 지닌 클래스들의 집합이다
  3. 클래스는 유사 객체의 공통 명세다
  4. 객체의 상태는 속성 값으로 표현할 수 있다
정답과 해설 보기

정답: 2

클래스가 공통 속성과 동작을 가진 객체들의 추상적 명세이며 객체는 그 클래스의 인스턴스다. 객체를 클래스들의 집합이라고 하면 관계가 뒤바뀐다.

선지별 해설

  • 1번 ‘객체는 상태와 행동, 식별성을 가질 수 있다’는 이 문항의 조건에 맞지 않는다. 클래스가 공통 속성과 동작을 가진 객체들의 추상적 명세이며 객체는 그 클래스의 인스턴스다. 객체를 클래스들의 집합이라고 하면 관계가 뒤바뀐다.
  • 2번은 정답 선지다. 클래스가 공통 속성과 동작을 가진 객체들의 추상적 명세이며 객체는 그 클래스의 인스턴스다. 객체를 클래스들의 집합이라고 하면 관계가 뒤바뀐다.
  • 3번 ‘클래스는 유사 객체의 공통 명세다’는 이 문항의 조건에 맞지 않는다. 클래스가 공통 속성과 동작을 가진 객체들의 추상적 명세이며 객체는 그 클래스의 인스턴스다. 객체를 클래스들의 집합이라고 하면 관계가 뒤바뀐다.
  • 4번 ‘객체의 상태는 속성 값으로 표현할 수 있다’는 이 문항의 조건에 맞지 않는다. 클래스가 공통 속성과 동작을 가진 객체들의 추상적 명세이며 객체는 그 클래스의 인스턴스다. 객체를 클래스들의 집합이라고 하면 관계가 뒤바뀐다.

정답 판정: 정답 판정: 클래스가 공통 속성과 동작을 가진 객체들의 추상적 명세이며 객체는 그 클래스의 인스턴스다. 객체를 클래스들의 집합이라고 하면 관계가 뒤바뀐다. 검증 기준: 객체, 클래스, 인스턴스의 정의 관계를 확인한다. 원문 대조: 클래스는 인스턴스의 공통 특성을 명세하고 객체는 그 분류자의 인스턴스다.

17. 스크럼에서 스프린트 종료까지 남은 작업량을 시간 흐름에 따라 표시하는 차트는?

  1. 사용자 스토리
  2. 번다운 차트
  3. 칸반 보드
  4. 간트 차트
정답과 해설 보기

정답: 2

번다운 차트는 스프린트에서 남은 작업량이 목표 속도로 줄어드는지 보여 준다. 팀은 이를 통해 진행 편차를 확인한다.

선지별 해설

  • 1번 ‘사용자 스토리’는 이 문항의 조건에 맞지 않는다. 번다운 차트는 스프린트에서 남은 작업량이 목표 속도로 줄어드는지 보여 준다. 팀은 이를 통해 진행 편차를 확인한다.
  • 2번은 정답 선지다. 번다운 차트는 스프린트에서 남은 작업량이 목표 속도로 줄어드는지 보여 준다. 팀은 이를 통해 진행 편차를 확인한다.
  • 3번 ‘칸반 보드’는 이 문항의 조건에 맞지 않는다. 번다운 차트는 스프린트에서 남은 작업량이 목표 속도로 줄어드는지 보여 준다. 팀은 이를 통해 진행 편차를 확인한다.
  • 4번 ‘간트 차트’는 이 문항의 조건에 맞지 않는다. 번다운 차트는 스프린트에서 남은 작업량이 목표 속도로 줄어드는지 보여 준다. 팀은 이를 통해 진행 편차를 확인한다.

정답 판정: 정답 판정: 번다운 차트는 스프린트에서 남은 작업량이 목표 속도로 줄어드는지 보여 준다. 팀은 이를 통해 진행 편차를 확인한다. 검증 기준: 스크럼 진행 가시화 도구의 측정 대상을 구분한다. 원문 대조: Scrum Guide는 남은 작업을 예측하는 관행 중 burn-down을 명시한다.

18. 분산된 구성요소가 중개자를 통해 위치를 찾고 원격 서비스를 호출하도록 하는 아키텍처 패턴은?

  1. Master-Slave
  2. Client-Server
  3. Pipe-Filter
  4. Broker
정답과 해설 보기

정답: 4

Broker 패턴은 서비스 제공자와 요청자 사이에서 등록, 탐색, 통신을 중개해 분산 구성요소의 결합을 낮춘다.

선지별 해설

  • 1번 ‘Master-Slave’는 이 문항의 조건에 맞지 않는다. Broker 패턴은 서비스 제공자와 요청자 사이에서 등록, 탐색, 통신을 중개해 분산 구성요소의 결합을 낮춘다.
  • 2번 ‘Client-Server’는 이 문항의 조건에 맞지 않는다. Broker 패턴은 서비스 제공자와 요청자 사이에서 등록, 탐색, 통신을 중개해 분산 구성요소의 결합을 낮춘다.
  • 3번 ‘Pipe-Filter’는 이 문항의 조건에 맞지 않는다. Broker 패턴은 서비스 제공자와 요청자 사이에서 등록, 탐색, 통신을 중개해 분산 구성요소의 결합을 낮춘다.
  • 4번은 정답 선지다. Broker 패턴은 서비스 제공자와 요청자 사이에서 등록, 탐색, 통신을 중개해 분산 구성요소의 결합을 낮춘다.

정답 판정: 정답 판정: Broker 패턴은 서비스 제공자와 요청자 사이에서 등록, 탐색, 통신을 중개해 분산 구성요소의 결합을 낮춘다. 검증 기준: 분산 시스템 Broker 패턴의 중개 책임을 적용한다. 원문 대조: Broker 스타일은 분산 구성요소 사이 등록·탐색·호출을 중개한다.

19. 소프트웨어 설계의 대표적인 추상화 유형으로 보기 어려운 것은?

  1. 자료 추상화
  2. 제어 추상화
  3. 과정 추상화
  4. 강도 추상화
정답과 해설 보기

정답: 4

자료, 제어, 과정 추상화는 구현 세부를 감추고 필요한 특성에 집중하는 대표 유형이다. 강도 추상화는 일반적인 분류가 아니다.

선지별 해설

  • 1번 ‘자료 추상화’는 이 문항의 조건에 맞지 않는다. 자료, 제어, 과정 추상화는 구현 세부를 감추고 필요한 특성에 집중하는 대표 유형이다. 강도 추상화는 일반적인 분류가 아니다.
  • 2번 ‘제어 추상화’는 이 문항의 조건에 맞지 않는다. 자료, 제어, 과정 추상화는 구현 세부를 감추고 필요한 특성에 집중하는 대표 유형이다. 강도 추상화는 일반적인 분류가 아니다.
  • 3번 ‘과정 추상화’는 이 문항의 조건에 맞지 않는다. 자료, 제어, 과정 추상화는 구현 세부를 감추고 필요한 특성에 집중하는 대표 유형이다. 강도 추상화는 일반적인 분류가 아니다.
  • 4번은 정답 선지다. 자료, 제어, 과정 추상화는 구현 세부를 감추고 필요한 특성에 집중하는 대표 유형이다. 강도 추상화는 일반적인 분류가 아니다.

정답 판정: 정답 판정: 자료, 제어, 과정 추상화는 구현 세부를 감추고 필요한 특성에 집중하는 대표 유형이다. 강도 추상화는 일반적인 분류가 아니다. 검증 기준: 소프트웨어 추상화의 표준 분류를 대조한다. 원문 대조: 자료·제어·과정 추상화와 달리 강도 추상화는 제시된 소프트웨어 추상화 범주가 아니다.

20. SWEBOK가 설명하는 소프트웨어 설계 원칙과 직접 관계가 가장 먼 것은?

  1. 관심사 분리
  2. 정보 은닉
  3. 운영 후 유지보수 비용 집계
  4. 모듈화
정답과 해설 보기

정답: 3

관심사 분리, 정보 은닉, 모듈화는 설계 구조를 정하는 원칙이다. 운영 후 유지보수 비용 집계는 관리 활동이지 설계 원칙 자체가 아니다.

선지별 해설

  • 1번 ‘관심사 분리’는 이 문항의 조건에 맞지 않는다. 관심사 분리, 정보 은닉, 모듈화는 설계 구조를 정하는 원칙이다. 운영 후 유지보수 비용 집계는 관리 활동이지 설계 원칙 자체가 아니다.
  • 2번 ‘정보 은닉’는 이 문항의 조건에 맞지 않는다. 관심사 분리, 정보 은닉, 모듈화는 설계 구조를 정하는 원칙이다. 운영 후 유지보수 비용 집계는 관리 활동이지 설계 원칙 자체가 아니다.
  • 3번은 정답 선지다. 관심사 분리, 정보 은닉, 모듈화는 설계 구조를 정하는 원칙이다. 운영 후 유지보수 비용 집계는 관리 활동이지 설계 원칙 자체가 아니다.
  • 4번 ‘모듈화’는 이 문항의 조건에 맞지 않는다. 관심사 분리, 정보 은닉, 모듈화는 설계 구조를 정하는 원칙이다. 운영 후 유지보수 비용 집계는 관리 활동이지 설계 원칙 자체가 아니다.

정답 판정: 정답 판정: 관심사 분리, 정보 은닉, 모듈화는 설계 구조를 정하는 원칙이다. 운영 후 유지보수 비용 집계는 관리 활동이지 설계 원칙 자체가 아니다. 검증 기준: SWEBOK Software Design KA의 Design Principles에 열거된 abstraction, separation of concerns, modularization, encapsulation과 대조한다. 원문 대조: 관심사 분리·모듈화·정보 은닉은 설계 원칙 목록이고 비용 집계는 그 목록의 설계 원칙이 아니다.

정보처리기사 필기 기출문제 · 소프트웨어 개발

21. 배열 8, 3, 6, 2, 5를 버블 정렬로 오름차순 정렬할 때 첫 번째 전체 통과 직후의 배열은?

  1. 3, 8, 6, 2, 5
  2. 2, 3, 6, 8, 5
  3. 3, 6, 8, 2, 5
  4. 3, 6, 2, 5, 8
정답과 해설 보기

정답: 4

왼쪽부터 인접한 두 값을 바꾸면 가장 큰 8이 매 비교에서 오른쪽으로 이동한다. 첫 통과 결과는 3, 6, 2, 5, 8이다.

선지별 해설

  • 1번 ‘3, 8, 6, 2, 5’는 이 문항의 조건에 맞지 않는다. 왼쪽부터 인접한 두 값을 바꾸면 가장 큰 8이 매 비교에서 오른쪽으로 이동한다. 첫 통과 결과는 3, 6, 2, 5, 8이다.
  • 2번 ‘2, 3, 6, 8, 5’는 이 문항의 조건에 맞지 않는다. 왼쪽부터 인접한 두 값을 바꾸면 가장 큰 8이 매 비교에서 오른쪽으로 이동한다. 첫 통과 결과는 3, 6, 2, 5, 8이다.
  • 3번 ‘3, 6, 8, 2, 5’는 이 문항의 조건에 맞지 않는다. 왼쪽부터 인접한 두 값을 바꾸면 가장 큰 8이 매 비교에서 오른쪽으로 이동한다. 첫 통과 결과는 3, 6, 2, 5, 8이다.
  • 4번은 정답 선지다. 왼쪽부터 인접한 두 값을 바꾸면 가장 큰 8이 매 비교에서 오른쪽으로 이동한다. 첫 통과 결과는 3, 6, 2, 5, 8이다.

정답 판정: 정답 판정: 왼쪽부터 인접한 두 값을 바꾸면 가장 큰 8이 매 비교에서 오른쪽으로 이동한다. 첫 통과 결과는 3, 6, 2, 5, 8이다. 검증 기준: 버블 정렬의 첫 패스 인접 비교를 단계별로 재계산한다. 원문 대조: 왼쪽부터 한 번 통과하면 최댓값 8이 끝으로 이동한다.

독립 계산·실행 추적: 초기 [8,3,6,2,5] → (8,3) 교환 [3,8,6,2,5] → (8,6) 교환 [3,6,8,2,5] → (8,2) 교환 [3,6,2,8,5] → (8,5) 교환 [3,6,2,5,8].

22. 중위식 (P-Q)×R+S÷T를 후위식으로 올바르게 바꾼 것은?

  1. P Q R – × S T ÷ +
  2. P Q – R × S T ÷ +
  3. P Q – R S × T ÷ +
  4. P Q R × – S T + ÷
정답과 해설 보기

정답: 2

괄호 안 P-Q를 먼저 P Q -로 쓰고 R과 곱한 뒤 S T ÷ 결과를 더한다. 따라서 P Q – R × S T ÷ +가 된다.

선지별 해설

  • 1번 ‘P Q R – × S T ÷ +’는 이 문항의 조건에 맞지 않는다. 괄호 안 P-Q를 먼저 P Q -로 쓰고 R과 곱한 뒤 S T ÷ 결과를 더한다. 따라서 P Q – R × S T ÷ +가 된다.
  • 2번은 정답 선지다. 괄호 안 P-Q를 먼저 P Q -로 쓰고 R과 곱한 뒤 S T ÷ 결과를 더한다. 따라서 P Q – R × S T ÷ +가 된다.
  • 3번 ‘P Q – R S × T ÷ +’는 이 문항의 조건에 맞지 않는다. 괄호 안 P-Q를 먼저 P Q -로 쓰고 R과 곱한 뒤 S T ÷ 결과를 더한다. 따라서 P Q – R × S T ÷ +가 된다.
  • 4번 ‘P Q R × – S T + ÷’는 이 문항의 조건에 맞지 않는다. 괄호 안 P-Q를 먼저 P Q -로 쓰고 R과 곱한 뒤 S T ÷ 결과를 더한다. 따라서 P Q – R × S T ÷ +가 된다.

정답 판정: 정답 판정: 괄호 안 P-Q를 먼저 P Q -로 쓰고 R과 곱한 뒤 S T ÷ 결과를 더한다. 따라서 P Q – R × S T ÷ +가 된다. 검증 기준: 연산자 우선순위와 후위 표기 변환 규칙을 적용한다. 원문 대조: 연산자를 피연산자 뒤에 놓고 괄호·우선순위 순으로 변환한다.

독립 계산·실행 추적: (P-Q) → P Q -, 그 결과와 R의 곱 → P Q – R ×, S÷T → S T ÷, 마지막 덧셈 → P Q – R × S T ÷ +.

23. W3C ODRL 권리 정책 모델이 직접 표현하려는 대상으로 보기 어려운 것은?

  1. 분석용 데이터 마트의 집계 스키마
  2. 자산에 허용되는 행위
  3. 자산에 금지되는 행위
  4. 허가에 붙는 의무
정답과 해설 보기

정답: 1

ODRL은 자산에 대한 허가, 금지, 의무와 그 조건을 표현하는 권리 정책 모델이다. 분석용 데이터 마트의 집계 스키마는 이 정책 모델의 직접 구성 개념이 아니다.

선지별 해설

  • 1번은 정답 선지다. ODRL은 자산에 대한 허가, 금지, 의무와 그 조건을 표현하는 권리 정책 모델이다. 분석용 데이터 마트의 집계 스키마는 이 정책 모델의 직접 구성 개념이 아니다.
  • 2번 ‘자산에 허용되는 행위’는 이 문항의 조건에 맞지 않는다. ODRL은 자산에 대한 허가, 금지, 의무와 그 조건을 표현하는 권리 정책 모델이다. 분석용 데이터 마트의 집계 스키마는 이 정책 모델의 직접 구성 개념이 아니다.
  • 3번 ‘자산에 금지되는 행위’는 이 문항의 조건에 맞지 않는다. ODRL은 자산에 대한 허가, 금지, 의무와 그 조건을 표현하는 권리 정책 모델이다. 분석용 데이터 마트의 집계 스키마는 이 정책 모델의 직접 구성 개념이 아니다.
  • 4번 ‘허가에 붙는 의무’는 이 문항의 조건에 맞지 않는다. ODRL은 자산에 대한 허가, 금지, 의무와 그 조건을 표현하는 권리 정책 모델이다. 분석용 데이터 마트의 집계 스키마는 이 정책 모델의 직접 구성 개념이 아니다.

정답 판정: 정답 판정: ODRL은 자산에 대한 허가, 금지, 의무와 그 조건을 표현하는 권리 정책 모델이다. 분석용 데이터 마트의 집계 스키마는 이 정책 모델의 직접 구성 개념이 아니다. 검증 기준: W3C ODRL Information Model의 Policy, Asset, Permission, Prohibition, Duty 클래스를 대조한다. 원문 대조: ODRL의 직접 모델 요소에는 데이터 마트 집계 스키마가 없다.

24. 아래 함수에 (15,15)와 (5,15)를 각각 입력했다. 두 if가 만드는 네 분기 결과 중 실행된 비율은?
“`c
int g(int a,int b){ int r=0; if(a>10) r++; if(b>10) r+=2; else r–; return r; }
“`

  1. 50%
  2. 75%
  3. 80%
  4. 100%
정답과 해설 보기

정답: 2

첫 번째 조건은 참과 거짓을 모두 지나고 두 번째 조건은 참만 지난다. 전체 네 분기 중 세 분기를 실행했으므로 분기 커버리지는 75%다.

선지별 해설

  • 1번 ‘50%’는 이 문항의 조건에 맞지 않는다. 첫 번째 조건은 참과 거짓을 모두 지나고 두 번째 조건은 참만 지난다. 전체 네 분기 중 세 분기를 실행했으므로 분기 커버리지는 75%다.
  • 2번은 정답 선지다. 첫 번째 조건은 참과 거짓을 모두 지나고 두 번째 조건은 참만 지난다. 전체 네 분기 중 세 분기를 실행했으므로 분기 커버리지는 75%다.
  • 3번 ‘80%’는 이 문항의 조건에 맞지 않는다. 첫 번째 조건은 참과 거짓을 모두 지나고 두 번째 조건은 참만 지난다. 전체 네 분기 중 세 분기를 실행했으므로 분기 커버리지는 75%다.
  • 4번 ‘100%’는 이 문항의 조건에 맞지 않는다. 첫 번째 조건은 참과 거짓을 모두 지나고 두 번째 조건은 참만 지난다. 전체 네 분기 중 세 분기를 실행했으므로 분기 커버리지는 75%다.

정답 판정: 정답 판정: 첫 번째 조건은 참과 거짓을 모두 지나고 두 번째 조건은 참만 지난다. 전체 네 분기 중 세 분기를 실행했으므로 분기 커버리지는 75%다. 검증 기준: 두 독립 조건의 true·false 분기를 표로 나누어 3/4를 재계산한다. 원문 대조: 각 판정 결과를 분기로 세어 실행된 분기 수를 전체 분기 수로 나눈다.

독립 계산·실행 추적: 입력 (15,15): 첫 if 참·둘째 if 참. 입력 (5,15): 첫 if 거짓·둘째 if 참. 가능한 네 분기 결과 중 {첫 참, 첫 거짓, 둘째 참} 3개를 실행해 3/4=75%.

25. 변경 가능성이 큰 구현 세부를 모듈 내부에 감추고 공개 인터페이스만 노출하는 원리는?

  1. 정보 은닉
  2. 분할 정복
  3. 자료 정렬
  4. 원형 큐
정답과 해설 보기

정답: 1

정보 은닉은 바뀔 가능성이 큰 설계 결정을 모듈 내부에 숨겨 다른 모듈이 그 세부에 의존하지 않도록 한다.

선지별 해설

  • 1번은 정답 선지다. 정보 은닉은 바뀔 가능성이 큰 설계 결정을 모듈 내부에 숨겨 다른 모듈이 그 세부에 의존하지 않도록 한다.
  • 2번 ‘분할 정복’는 이 문항의 조건에 맞지 않는다. 정보 은닉은 바뀔 가능성이 큰 설계 결정을 모듈 내부에 숨겨 다른 모듈이 그 세부에 의존하지 않도록 한다.
  • 3번 ‘자료 정렬’는 이 문항의 조건에 맞지 않는다. 정보 은닉은 바뀔 가능성이 큰 설계 결정을 모듈 내부에 숨겨 다른 모듈이 그 세부에 의존하지 않도록 한다.
  • 4번 ‘원형 큐’는 이 문항의 조건에 맞지 않는다. 정보 은닉은 바뀔 가능성이 큰 설계 결정을 모듈 내부에 숨겨 다른 모듈이 그 세부에 의존하지 않도록 한다.

정답 판정: 정답 판정: 정보 은닉은 바뀔 가능성이 큰 설계 결정을 모듈 내부에 숨겨 다른 모듈이 그 세부에 의존하지 않도록 한다. 검증 기준: 모듈 경계와 변경 영향 관점에서 정보 은닉을 적용한다. 원문 대조: 비본질 구현을 감추고 인터페이스의 핵심만 노출하는 원리를 정보 은닉이라 한다.

26. 시험 실행 결과가 요구된 결과와 일치하는지 판정해 통과·실패 결론을 내리는 기준 또는 주체는?

  1. 테스트 오라클
  2. 테스트 드라이버
  3. 테스트 스텁
  4. 테스트 하네스
정답과 해설 보기

정답: 1

테스트 오라클은 관찰한 결과를 기대 결과와 비교해 시험의 통과 또는 실패를 판정하는 사람·규칙·모델·도구 등의 기준이다. 드라이버와 스텁은 모듈 호출 관계를 대신하는 시험 보조물이다.

선지별 해설

  • 1번은 정답 선지다. 테스트 오라클은 관찰한 결과를 기대 결과와 비교해 시험의 통과 또는 실패를 판정하는 사람·규칙·모델·도구 등의 기준이다. 드라이버와 스텁은 모듈 호출 관계를 대신하는 시험 보조물이다.
  • 2번 ‘테스트 드라이버’는 이 문항의 조건에 맞지 않는다. 테스트 오라클은 관찰한 결과를 기대 결과와 비교해 시험의 통과 또는 실패를 판정하는 사람·규칙·모델·도구 등의 기준이다. 드라이버와 스텁은 모듈 호출 관계를 대신하는 시험 보조물이다.
  • 3번 ‘테스트 스텁’는 이 문항의 조건에 맞지 않는다. 테스트 오라클은 관찰한 결과를 기대 결과와 비교해 시험의 통과 또는 실패를 판정하는 사람·규칙·모델·도구 등의 기준이다. 드라이버와 스텁은 모듈 호출 관계를 대신하는 시험 보조물이다.
  • 4번 ‘테스트 하네스’는 이 문항의 조건에 맞지 않는다. 테스트 오라클은 관찰한 결과를 기대 결과와 비교해 시험의 통과 또는 실패를 판정하는 사람·규칙·모델·도구 등의 기준이다. 드라이버와 스텁은 모듈 호출 관계를 대신하는 시험 보조물이다.

정답 판정: 정답 판정: 테스트 오라클은 관찰한 결과를 기대 결과와 비교해 시험의 통과 또는 실패를 판정하는 사람·규칙·모델·도구 등의 기준이다. 드라이버와 스텁은 모듈 호출 관계를 대신하는 시험 보조물이다. 검증 기준: SWEBOK의 Oracle Problem 정의에서 관찰 결과의 정확성을 판정하고 pass/fail verdict를 제공하는 역할을 대조한다. 원문 대조: 오라클은 관찰 결과가 옳은지 판정해 pass/fail verdict를 제공한다.

27. 상향식 단위 통합 시험에서 아직 없는 상위 호출 모듈을 대신해 피시험 모듈을 호출하는 가상 모듈은?

  1. 스텁
  2. 드라이버
  3. 테스트 슈트
  4. 테스트 데이터
정답과 해설 보기

정답: 2

드라이버는 하위 모듈을 호출하고 입력을 전달하며 결과를 받는 상위 역할을 대신한다. 스텁은 하향식 시험에서 하위 모듈을 대신한다.

선지별 해설

  • 1번 ‘스텁’는 이 문항의 조건에 맞지 않는다. 드라이버는 하위 모듈을 호출하고 입력을 전달하며 결과를 받는 상위 역할을 대신한다. 스텁은 하향식 시험에서 하위 모듈을 대신한다.
  • 2번은 정답 선지다. 드라이버는 하위 모듈을 호출하고 입력을 전달하며 결과를 받는 상위 역할을 대신한다. 스텁은 하향식 시험에서 하위 모듈을 대신한다.
  • 3번 ‘테스트 슈트’는 이 문항의 조건에 맞지 않는다. 드라이버는 하위 모듈을 호출하고 입력을 전달하며 결과를 받는 상위 역할을 대신한다. 스텁은 하향식 시험에서 하위 모듈을 대신한다.
  • 4번 ‘테스트 데이터’는 이 문항의 조건에 맞지 않는다. 드라이버는 하위 모듈을 호출하고 입력을 전달하며 결과를 받는 상위 역할을 대신한다. 스텁은 하향식 시험에서 하위 모듈을 대신한다.

정답 판정: 정답 판정: 드라이버는 하위 모듈을 호출하고 입력을 전달하며 결과를 받는 상위 역할을 대신한다. 스텁은 하향식 시험에서 하위 모듈을 대신한다. 검증 기준: 상향식 통합의 드라이버와 하향식 통합의 스텁 역할을 구분한다. 원문 대조: 점진 통합의 시험 인프라로 stubs와 drivers가 필요하며 driver가 상위 호출자를 대신한다.

28. 입력 크기 n이 커져도 기본 연산 횟수가 일정한 알고리즘의 시간 복잡도는?

  1. O(1)
  2. O(log n)
  3. O(n)
  4. O(n²)
정답과 해설 보기

정답: 1

O(1)은 입력 크기와 무관하게 일정한 수의 기본 연산으로 끝나는 상수 시간 복잡도를 뜻한다.

선지별 해설

  • 1번은 정답 선지다. O(1)은 입력 크기와 무관하게 일정한 수의 기본 연산으로 끝나는 상수 시간 복잡도를 뜻한다.
  • 2번 ‘O(log n)’는 이 문항의 조건에 맞지 않는다. O(1)은 입력 크기와 무관하게 일정한 수의 기본 연산으로 끝나는 상수 시간 복잡도를 뜻한다.
  • 3번 ‘O(n)’는 이 문항의 조건에 맞지 않는다. O(1)은 입력 크기와 무관하게 일정한 수의 기본 연산으로 끝나는 상수 시간 복잡도를 뜻한다.
  • 4번 ‘O(n²)’는 이 문항의 조건에 맞지 않는다. O(1)은 입력 크기와 무관하게 일정한 수의 기본 연산으로 끝나는 상수 시간 복잡도를 뜻한다.

정답 판정: 정답 판정: O(1)은 입력 크기와 무관하게 일정한 수의 기본 연산으로 끝나는 상수 시간 복잡도를 뜻한다. 검증 기준: 점근 표기에서 상수 시간의 정의를 적용한다. 원문 대조: 입력 크기에 관계없이 연산 수가 상수이면 O(1)이다.

29. 소프트웨어 형상관리에 대한 설명으로 틀린 것은?

  1. 변경과 버전을 식별하고 통제한다
  2. 문서·코드·테스트 산출물이 관리 대상이 될 수 있다
  3. Ant·Maven·Gradle은 대표적인 형상관리 저장소다
  4. 개발과 유지보수 전 과정에서 활용할 수 있다
정답과 해설 보기

정답: 3

Ant, Maven, Gradle은 주로 빌드·의존성 관리 도구다. Git 같은 버전 관리 도구 및 변경·상태 통제가 형상관리의 핵심을 이룬다.

선지별 해설

  • 1번 ‘변경과 버전을 식별하고 통제한다’는 이 문항의 조건에 맞지 않는다. Ant, Maven, Gradle은 주로 빌드·의존성 관리 도구다. Git 같은 버전 관리 도구 및 변경·상태 통제가 형상관리의 핵심을 이룬다.
  • 2번 ‘문서·코드·테스트 산출물이 관리 대상이 될 수 있다’는 이 문항의 조건에 맞지 않는다. Ant, Maven, Gradle은 주로 빌드·의존성 관리 도구다. Git 같은 버전 관리 도구 및 변경·상태 통제가 형상관리의 핵심을 이룬다.
  • 3번은 정답 선지다. Ant, Maven, Gradle은 주로 빌드·의존성 관리 도구다. Git 같은 버전 관리 도구 및 변경·상태 통제가 형상관리의 핵심을 이룬다.
  • 4번 ‘개발과 유지보수 전 과정에서 활용할 수 있다’는 이 문항의 조건에 맞지 않는다. Ant, Maven, Gradle은 주로 빌드·의존성 관리 도구다. Git 같은 버전 관리 도구 및 변경·상태 통제가 형상관리의 핵심을 이룬다.

정답 판정: 정답 판정: Ant, Maven, Gradle은 주로 빌드·의존성 관리 도구다. Git 같은 버전 관리 도구 및 변경·상태 통제가 형상관리의 핵심을 이룬다. 검증 기준: 형상관리 기능과 빌드 자동화 도구의 역할을 구분한다. 원문 대조: SCM은 항목 식별·버전·변경·상태·감사를 다루며 Ant·Maven·Gradle은 저장소 분류가 아니다.

30. 모든 입력 조합 대신 각 인자 값의 쌍이 적어도 한 번 나타나도록 시험 조합을 줄이는 기법은?

  1. 분류 트리 시험
  2. 유스케이스 시험
  3. 페어와이즈 시험
  4. 상태 전이 시험
정답과 해설 보기

정답: 3

페어와이즈 시험은 모든 요인 값의 2원 조합을 최소 한 번 포함하도록 조합을 구성해 전체 경우의 수를 줄인다.

선지별 해설

  • 1번 ‘분류 트리 시험’는 이 문항의 조건에 맞지 않는다. 페어와이즈 시험은 모든 요인 값의 2원 조합을 최소 한 번 포함하도록 조합을 구성해 전체 경우의 수를 줄인다.
  • 2번 ‘유스케이스 시험’는 이 문항의 조건에 맞지 않는다. 페어와이즈 시험은 모든 요인 값의 2원 조합을 최소 한 번 포함하도록 조합을 구성해 전체 경우의 수를 줄인다.
  • 3번은 정답 선지다. 페어와이즈 시험은 모든 요인 값의 2원 조합을 최소 한 번 포함하도록 조합을 구성해 전체 경우의 수를 줄인다.
  • 4번 ‘상태 전이 시험’는 이 문항의 조건에 맞지 않는다. 페어와이즈 시험은 모든 요인 값의 2원 조합을 최소 한 번 포함하도록 조합을 구성해 전체 경우의 수를 줄인다.

정답 판정: 정답 판정: 페어와이즈 시험은 모든 요인 값의 2원 조합을 최소 한 번 포함하도록 조합을 구성해 전체 경우의 수를 줄인다. 검증 기준: 조합 시험에서 2-way coverage의 정의를 적용한다. 원문 대조: 모든 두 요인 값 조합을 포함하도록 시험 집합을 만드는 것이 pairwise다.

31. 큐에 대한 설명으로 틀린 것은?

  1. 삽입과 삭제가 서로 다른 쪽에서 일어난다
  2. 후입선출 구조다
  3. 삭제 쪽을 Front라 부른다
  4. 삽입 연산은 Rear에 원소를 더한다
정답과 해설 보기

정답: 2

일반 큐는 먼저 들어온 원소가 먼저 나오는 FIFO 구조다. LIFO는 스택의 동작 방식이다.

선지별 해설

  • 1번 ‘삽입과 삭제가 서로 다른 쪽에서 일어난다’는 이 문항의 조건에 맞지 않는다. 일반 큐는 먼저 들어온 원소가 먼저 나오는 FIFO 구조다. LIFO는 스택의 동작 방식이다.
  • 2번은 정답 선지다. 일반 큐는 먼저 들어온 원소가 먼저 나오는 FIFO 구조다. LIFO는 스택의 동작 방식이다.
  • 3번 ‘삭제 쪽을 Front라 부른다’는 이 문항의 조건에 맞지 않는다. 일반 큐는 먼저 들어온 원소가 먼저 나오는 FIFO 구조다. LIFO는 스택의 동작 방식이다.
  • 4번 ‘삽입 연산은 Rear에 원소를 더한다’는 이 문항의 조건에 맞지 않는다. 일반 큐는 먼저 들어온 원소가 먼저 나오는 FIFO 구조다. LIFO는 스택의 동작 방식이다.

정답 판정: 정답 판정: 일반 큐는 먼저 들어온 원소가 먼저 나오는 FIFO 구조다. LIFO는 스택의 동작 방식이다. 검증 기준: 큐의 FIFO, Front, Rear 연산 규칙을 적용한다. 원문 대조: 큐는 rear 삽입·front 삭제의 FIFO 구조다.

32. 한 모듈만 고립해 수행하는 단위 시험으로 직접 확인하기 가장 어려운 결함은?

  1. 서로 다른 두 모듈의 실제 연동 계약 불일치
  2. 반복문 종료 조건 오류
  3. 모듈 내부 계산식 오류
  4. 지역 변수 초기화 오류
정답과 해설 보기

정답: 1

실제 모듈 사이 인터페이스 계약 문제는 통합 시험에서 확인하는 것이 핵심이다. 나머지는 고립된 모듈의 단위 시험으로 직접 관찰할 수 있다.

선지별 해설

  • 1번은 정답 선지다. 실제 모듈 사이 인터페이스 계약 문제는 통합 시험에서 확인하는 것이 핵심이다. 나머지는 고립된 모듈의 단위 시험으로 직접 관찰할 수 있다.
  • 2번 ‘반복문 종료 조건 오류’는 이 문항의 조건에 맞지 않는다. 실제 모듈 사이 인터페이스 계약 문제는 통합 시험에서 확인하는 것이 핵심이다. 나머지는 고립된 모듈의 단위 시험으로 직접 관찰할 수 있다.
  • 3번 ‘모듈 내부 계산식 오류’는 이 문항의 조건에 맞지 않는다. 실제 모듈 사이 인터페이스 계약 문제는 통합 시험에서 확인하는 것이 핵심이다. 나머지는 고립된 모듈의 단위 시험으로 직접 관찰할 수 있다.
  • 4번 ‘지역 변수 초기화 오류’는 이 문항의 조건에 맞지 않는다. 실제 모듈 사이 인터페이스 계약 문제는 통합 시험에서 확인하는 것이 핵심이다. 나머지는 고립된 모듈의 단위 시험으로 직접 관찰할 수 있다.

정답 판정: 정답 판정: 실제 모듈 사이 인터페이스 계약 문제는 통합 시험에서 확인하는 것이 핵심이다. 나머지는 고립된 모듈의 단위 시험으로 직접 관찰할 수 있다. 검증 기준: 단위 시험과 통합 시험의 결함 탐지 범위를 구분한다. 원문 대조: 고립 단위 시험은 실제 모듈 간 계약 불일치보다 내부 결함 판정에 적합하다.

33. 테스트 케이스 명세의 일반 구성 항목으로 보기 어려운 것은?

  1. 입력 데이터
  2. 수행 조건
  3. 예상 결과
  4. 프로젝트 총개발비
정답과 해설 보기

정답: 4

테스트 케이스에는 조건, 입력, 절차, 기대 결과 등이 들어간다. 프로젝트 총개발비는 개별 테스트 케이스의 판정 항목이 아니다.

선지별 해설

  • 1번 ‘입력 데이터’는 이 문항의 조건에 맞지 않는다. 테스트 케이스에는 조건, 입력, 절차, 기대 결과 등이 들어간다. 프로젝트 총개발비는 개별 테스트 케이스의 판정 항목이 아니다.
  • 2번 ‘수행 조건’는 이 문항의 조건에 맞지 않는다. 테스트 케이스에는 조건, 입력, 절차, 기대 결과 등이 들어간다. 프로젝트 총개발비는 개별 테스트 케이스의 판정 항목이 아니다.
  • 3번 ‘예상 결과’는 이 문항의 조건에 맞지 않는다. 테스트 케이스에는 조건, 입력, 절차, 기대 결과 등이 들어간다. 프로젝트 총개발비는 개별 테스트 케이스의 판정 항목이 아니다.
  • 4번은 정답 선지다. 테스트 케이스에는 조건, 입력, 절차, 기대 결과 등이 들어간다. 프로젝트 총개발비는 개별 테스트 케이스의 판정 항목이 아니다.

정답 판정: 정답 판정: 테스트 케이스에는 조건, 입력, 절차, 기대 결과 등이 들어간다. 프로젝트 총개발비는 개별 테스트 케이스의 판정 항목이 아니다. 검증 기준: 테스트 케이스 명세의 입력·조건·기대 결과 요소를 기준으로 판단한다. 원문 대조: 시험 케이스는 입력·조건·예상 결과를 포함하며 프로젝트 총개발비는 판정 항목이 아니다.

34. 검색 키를 더 작은 범위의 정수 주소로 매핑해 해시 테이블의 위치를 정하는 것은?

  1. 선택 정렬
  2. 해시 함수
  3. 후위 순회
  4. 원형 큐
정답과 해설 보기

정답: 2

해시 함수는 키를 보통 더 작은 정수 범위로 매핑해 해시 테이블의 주소를 계산한다. 나머지 선택지는 정렬·트리 순회·자료구조에 관한 개념이다.

선지별 해설

  • 1번 ‘선택 정렬’는 이 문항의 조건에 맞지 않는다. 해시 함수는 키를 보통 더 작은 정수 범위로 매핑해 해시 테이블의 주소를 계산한다. 나머지 선택지는 정렬·트리 순회·자료구조에 관한 개념이다.
  • 2번은 정답 선지다. 해시 함수는 키를 보통 더 작은 정수 범위로 매핑해 해시 테이블의 주소를 계산한다. 나머지 선택지는 정렬·트리 순회·자료구조에 관한 개념이다.
  • 3번 ‘후위 순회’는 이 문항의 조건에 맞지 않는다. 해시 함수는 키를 보통 더 작은 정수 범위로 매핑해 해시 테이블의 주소를 계산한다. 나머지 선택지는 정렬·트리 순회·자료구조에 관한 개념이다.
  • 4번 ‘원형 큐’는 이 문항의 조건에 맞지 않는다. 해시 함수는 키를 보통 더 작은 정수 범위로 매핑해 해시 테이블의 주소를 계산한다. 나머지 선택지는 정렬·트리 순회·자료구조에 관한 개념이다.

정답 판정: 정답 판정: 해시 함수는 키를 보통 더 작은 정수 범위로 매핑해 해시 테이블의 주소를 계산한다. 나머지 선택지는 정렬·트리 순회·자료구조에 관한 개념이다. 검증 기준: NIST DADS의 hash function 정의에서 keys를 integers로 매핑한다는 문장을 직접 대조한다. 원문 대조: 키를 더 작은 정수 주소 범위로 매핑하는 계산이 해시 함수다.

35. 클린 코드 원칙에 어긋나는 것은?

  1. 의도가 드러나는 이름을 사용한다
  2. 같은 로직을 가능한 많이 복제한다
  3. 함수의 책임을 작게 유지한다
  4. 불필요한 복잡성을 줄인다
정답과 해설 보기

정답: 2

중복 로직은 수정 지점을 늘리고 불일치 위험을 만든다. 공통 책임을 적절히 추출해 중복을 줄이는 편이 유지보수에 유리하다.

선지별 해설

  • 1번 ‘의도가 드러나는 이름을 사용한다’는 이 문항의 조건에 맞지 않는다. 중복 로직은 수정 지점을 늘리고 불일치 위험을 만든다. 공통 책임을 적절히 추출해 중복을 줄이는 편이 유지보수에 유리하다.
  • 2번은 정답 선지다. 중복 로직은 수정 지점을 늘리고 불일치 위험을 만든다. 공통 책임을 적절히 추출해 중복을 줄이는 편이 유지보수에 유리하다.
  • 3번 ‘함수의 책임을 작게 유지한다’는 이 문항의 조건에 맞지 않는다. 중복 로직은 수정 지점을 늘리고 불일치 위험을 만든다. 공통 책임을 적절히 추출해 중복을 줄이는 편이 유지보수에 유리하다.
  • 4번 ‘불필요한 복잡성을 줄인다’는 이 문항의 조건에 맞지 않는다. 중복 로직은 수정 지점을 늘리고 불일치 위험을 만든다. 공통 책임을 적절히 추출해 중복을 줄이는 편이 유지보수에 유리하다.

정답 판정: 정답 판정: 중복 로직은 수정 지점을 늘리고 불일치 위험을 만든다. 공통 책임을 적절히 추출해 중복을 줄이는 편이 유지보수에 유리하다. 검증 기준: 가독성, 단일 책임, 중복 최소화의 코드 품질 원칙을 적용한다. 원문 대조: 이해 가능한 이름·작은 책임·낮은 중복은 유지보수성을 높이고 복제는 반대다.

36. 이진 탐색 트리의 일반 규칙으로 틀린 것은?

  1. 각 노드는 최대 두 자식을 가진다
  2. 왼쪽 부분트리 키는 부모보다 작다
  3. 오른쪽 부분트리 키는 부모보다 크다
  4. 큰 키는 반드시 왼쪽 자식으로 삽입한다
정답과 해설 보기

정답: 4

일반적인 이진 탐색 트리는 작은 키를 왼쪽, 큰 키를 오른쪽에 둔다. 큰 키를 왼쪽에 둔다는 설명은 규칙과 반대다.

선지별 해설

  • 1번 ‘각 노드는 최대 두 자식을 가진다’는 이 문항의 조건에 맞지 않는다. 일반적인 이진 탐색 트리는 작은 키를 왼쪽, 큰 키를 오른쪽에 둔다. 큰 키를 왼쪽에 둔다는 설명은 규칙과 반대다.
  • 2번 ‘왼쪽 부분트리 키는 부모보다 작다’는 이 문항의 조건에 맞지 않는다. 일반적인 이진 탐색 트리는 작은 키를 왼쪽, 큰 키를 오른쪽에 둔다. 큰 키를 왼쪽에 둔다는 설명은 규칙과 반대다.
  • 3번 ‘오른쪽 부분트리 키는 부모보다 크다’는 이 문항의 조건에 맞지 않는다. 일반적인 이진 탐색 트리는 작은 키를 왼쪽, 큰 키를 오른쪽에 둔다. 큰 키를 왼쪽에 둔다는 설명은 규칙과 반대다.
  • 4번은 정답 선지다. 일반적인 이진 탐색 트리는 작은 키를 왼쪽, 큰 키를 오른쪽에 둔다. 큰 키를 왼쪽에 둔다는 설명은 규칙과 반대다.

정답 판정: 정답 판정: 일반적인 이진 탐색 트리는 작은 키를 왼쪽, 큰 키를 오른쪽에 둔다. 큰 키를 왼쪽에 둔다는 설명은 규칙과 반대다. 검증 기준: 이진 탐색 트리의 정렬 불변식을 기준으로 판단한다. 원문 대조: 이진 탐색 트리는 작은 키를 왼쪽, 큰 키를 오른쪽 부분트리에 둔다.

37. IPsec에 대한 설명으로 옳지 않은 것은?

  1. 암호화에 단방향 해시만 사용할 수 있다
  2. ESP는 기밀성과 무결성·인증 서비스를 제공할 수 있다
  3. 전송 모드와 터널 모드가 있다
  4. AH는 무결성과 데이터 출처 인증을 제공한다
정답과 해설 보기

정답: 1

IPsec은 단방향 해시만으로 암호화하는 체계가 아니다. ESP는 선택한 변환에 따라 암호화와 무결성 서비스를 제공하며 전송·터널 모드를 지원한다.

선지별 해설

  • 1번은 정답 선지다. IPsec은 단방향 해시만으로 암호화하는 체계가 아니다. ESP는 선택한 변환에 따라 암호화와 무결성 서비스를 제공하며 전송·터널 모드를 지원한다.
  • 2번 ‘ESP는 기밀성과 무결성·인증 서비스를 제공할 수 있다’는 이 문항의 조건에 맞지 않는다. IPsec은 단방향 해시만으로 암호화하는 체계가 아니다. ESP는 선택한 변환에 따라 암호화와 무결성 서비스를 제공하며 전송·터널 모드를 지원한다.
  • 3번 ‘전송 모드와 터널 모드가 있다’는 이 문항의 조건에 맞지 않는다. IPsec은 단방향 해시만으로 암호화하는 체계가 아니다. ESP는 선택한 변환에 따라 암호화와 무결성 서비스를 제공하며 전송·터널 모드를 지원한다.
  • 4번 ‘AH는 무결성과 데이터 출처 인증을 제공한다’는 이 문항의 조건에 맞지 않는다. IPsec은 단방향 해시만으로 암호화하는 체계가 아니다. ESP는 선택한 변환에 따라 암호화와 무결성 서비스를 제공하며 전송·터널 모드를 지원한다.

정답 판정: 정답 판정: IPsec은 단방향 해시만으로 암호화하는 체계가 아니다. ESP는 선택한 변환에 따라 암호화와 무결성 서비스를 제공하며 전송·터널 모드를 지원한다. 검증 기준: RFC 4301의 IPsec 서비스와 모드 정의를 기준으로 판단한다. 원문 대조: ESP·AH 서비스와 전송·터널 모드가 명시되며 단방향 해시만으로 암호화한다는 설명은 틀리다.

38. 개발자 환경에서 사용자가 개발자와 함께 통제된 조건으로 수행하는 인수 시험은?

  1. 동치분할 시험
  2. 회귀 시험
  3. 알파 시험
  4. 베타 시험
정답과 해설 보기

정답: 3

알파 시험은 개발 조직의 통제된 환경에서 사용자와 개발자가 함께 수행한다. 베타 시험은 실제 사용자 환경에서 제한된 사용자에게 맡기는 방식이다.

선지별 해설

  • 1번 ‘동치분할 시험’는 이 문항의 조건에 맞지 않는다. 알파 시험은 개발 조직의 통제된 환경에서 사용자와 개발자가 함께 수행한다. 베타 시험은 실제 사용자 환경에서 제한된 사용자에게 맡기는 방식이다.
  • 2번 ‘회귀 시험’는 이 문항의 조건에 맞지 않는다. 알파 시험은 개발 조직의 통제된 환경에서 사용자와 개발자가 함께 수행한다. 베타 시험은 실제 사용자 환경에서 제한된 사용자에게 맡기는 방식이다.
  • 3번은 정답 선지다. 알파 시험은 개발 조직의 통제된 환경에서 사용자와 개발자가 함께 수행한다. 베타 시험은 실제 사용자 환경에서 제한된 사용자에게 맡기는 방식이다.
  • 4번 ‘베타 시험’는 이 문항의 조건에 맞지 않는다. 알파 시험은 개발 조직의 통제된 환경에서 사용자와 개발자가 함께 수행한다. 베타 시험은 실제 사용자 환경에서 제한된 사용자에게 맡기는 방식이다.

정답 판정: 정답 판정: 알파 시험은 개발 조직의 통제된 환경에서 사용자와 개발자가 함께 수행한다. 베타 시험은 실제 사용자 환경에서 제한된 사용자에게 맡기는 방식이다. 검증 기준: 알파 시험과 베타 시험의 장소·통제 주체 차이를 적용한다. 원문 대조: Alpha는 개발 조직 현장에서 잠재·기존 사용자나 운영자 등이 수행하는 시험이다.

39. 시스템 간 메시지 교환에 널리 쓰이는 데이터 표현 형식이 아닌 것은?

  1. AJTML
  2. JSON
  3. XML
  4. YAML
정답과 해설 보기

정답: 1

JSON, XML, YAML은 구조화 데이터를 표현하는 실제 형식이다. AJTML은 통용되는 인터페이스 데이터 형식이 아니다.

선지별 해설

  • 1번은 정답 선지다. JSON, XML, YAML은 구조화 데이터를 표현하는 실제 형식이다. AJTML은 통용되는 인터페이스 데이터 형식이 아니다.
  • 2번 ‘JSON’는 이 문항의 조건에 맞지 않는다. JSON, XML, YAML은 구조화 데이터를 표현하는 실제 형식이다. AJTML은 통용되는 인터페이스 데이터 형식이 아니다.
  • 3번 ‘XML’는 이 문항의 조건에 맞지 않는다. JSON, XML, YAML은 구조화 데이터를 표현하는 실제 형식이다. AJTML은 통용되는 인터페이스 데이터 형식이 아니다.
  • 4번 ‘YAML’는 이 문항의 조건에 맞지 않는다. JSON, XML, YAML은 구조화 데이터를 표현하는 실제 형식이다. AJTML은 통용되는 인터페이스 데이터 형식이 아니다.

정답 판정: 정답 판정: JSON, XML, YAML은 구조화 데이터를 표현하는 실제 형식이다. AJTML은 통용되는 인터페이스 데이터 형식이 아니다. 검증 기준: 일반적인 구조화 데이터 직렬화 형식을 대조한다. 원문 대조: JSON은 표준 데이터 교환 형식이다.

40. 배열 42, 18, 35, 9, 27을 최소값 선택 방식으로 오름차순 정렬할 때 3회전 뒤 배열은?

  1. 9, 18, 35, 42, 27
  2. 9, 18, 42, 35, 27
  3. 9, 18, 27, 42, 35
  4. 18, 9, 27, 35, 42
정답과 해설 보기

정답: 3

1회전에서 9, 2회전에서 18, 3회전에서 27이 차례로 앞자리에 확정된다. 결과는 9, 18, 27, 42, 35다.

선지별 해설

  • 1번 ‘9, 18, 35, 42, 27’는 이 문항의 조건에 맞지 않는다. 1회전에서 9, 2회전에서 18, 3회전에서 27이 차례로 앞자리에 확정된다. 결과는 9, 18, 27, 42, 35다.
  • 2번 ‘9, 18, 42, 35, 27’는 이 문항의 조건에 맞지 않는다. 1회전에서 9, 2회전에서 18, 3회전에서 27이 차례로 앞자리에 확정된다. 결과는 9, 18, 27, 42, 35다.
  • 3번은 정답 선지다. 1회전에서 9, 2회전에서 18, 3회전에서 27이 차례로 앞자리에 확정된다. 결과는 9, 18, 27, 42, 35다.
  • 4번 ‘18, 9, 27, 35, 42’는 이 문항의 조건에 맞지 않는다. 1회전에서 9, 2회전에서 18, 3회전에서 27이 차례로 앞자리에 확정된다. 결과는 9, 18, 27, 42, 35다.

정답 판정: 정답 판정: 1회전에서 9, 2회전에서 18, 3회전에서 27이 차례로 앞자리에 확정된다. 결과는 9, 18, 27, 42, 35다. 검증 기준: 선택 정렬의 각 회전 최소값 교환을 독립 재계산한다. 원문 대조: 최솟값을 매 회전 앞자리에 확정하는 선택 정렬 규칙을 적용한다.

독립 계산·실행 추적: [42,18,35,9,27] → 1회전 [9,18,35,42,27] → 2회전 변화 없음 → 3회전 [9,18,27,42,35].

정보처리기사 필기 기출문제 · 데이터베이스 구축

41. PostgreSQL의 트랜잭션 격리 수준 표에서 Read Committed 수준에 발생 가능하다고 표시된 현상은?

  1. Dirty Read
  2. 항상 Serializable
  3. Nonrepeatable Read
  4. 모든 Serialization Anomaly 차단
정답과 해설 보기

정답: 3

PostgreSQL 문서는 Read Committed에서 dirty read는 불가능하지만 nonrepeatable read와 phantom read, serialization anomaly는 발생 가능하다고 표로 구분한다.

선지별 해설

  • 1번 ‘Dirty Read’는 이 문항의 조건에 맞지 않는다. PostgreSQL 문서는 Read Committed에서 dirty read는 불가능하지만 nonrepeatable read와 phantom read, serialization anomaly는 발생 가능하다고 표로 구분한다.
  • 2번 ‘항상 Serializable’는 이 문항의 조건에 맞지 않는다. PostgreSQL 문서는 Read Committed에서 dirty read는 불가능하지만 nonrepeatable read와 phantom read, serialization anomaly는 발생 가능하다고 표로 구분한다.
  • 3번은 정답 선지다. PostgreSQL 문서는 Read Committed에서 dirty read는 불가능하지만 nonrepeatable read와 phantom read, serialization anomaly는 발생 가능하다고 표로 구분한다.
  • 4번 ‘모든 Serialization Anomaly 차단’는 이 문항의 조건에 맞지 않는다. PostgreSQL 문서는 Read Committed에서 dirty read는 불가능하지만 nonrepeatable read와 phantom read, serialization anomaly는 발생 가능하다고 표로 구분한다.

정답 판정: 정답 판정: PostgreSQL 문서는 Read Committed에서 dirty read는 불가능하지만 nonrepeatable read와 phantom read, serialization anomaly는 발생 가능하다고 표로 구분한다. 검증 기준: PostgreSQL Transaction Isolation의 격리 수준별 현상 표에서 Read Committed 행과 Nonrepeatable Read 열을 직접 대조한다. 원문 대조: Read Committed 행에서 nonrepeatable read는 Possible로 표시된다.

42. 판매(고객, 금액)에 A: 1200·800, B: 500·700·300, C: 2500 한 건이 있다. 다음 SQL 결과는?
“`sql
SELECT 고객, SUM(금액) FROM 판매 GROUP BY 고객 HAVING COUNT(*) >= 2;
“`

  1. A 2000, B 1500
  2. A 2000, B 1500, C 2500
  3. B 1500만 반환
  4. A 1200, B 700
정답과 해설 보기

정답: 1

HAVING은 그룹화 뒤 행 수가 2개 이상인 고객만 남긴다. A와 B가 조건을 만족하고 합계는 각각 2000과 1500이다.

선지별 해설

  • 1번은 정답 선지다. HAVING은 그룹화 뒤 행 수가 2개 이상인 고객만 남긴다. A와 B가 조건을 만족하고 합계는 각각 2000과 1500이다.
  • 2번 ‘A 2000, B 1500, C 2500’는 이 문항의 조건에 맞지 않는다. HAVING은 그룹화 뒤 행 수가 2개 이상인 고객만 남긴다. A와 B가 조건을 만족하고 합계는 각각 2000과 1500이다.
  • 3번 ‘B 1500만 반환’는 이 문항의 조건에 맞지 않는다. HAVING은 그룹화 뒤 행 수가 2개 이상인 고객만 남긴다. A와 B가 조건을 만족하고 합계는 각각 2000과 1500이다.
  • 4번 ‘A 1200, B 700’는 이 문항의 조건에 맞지 않는다. HAVING은 그룹화 뒤 행 수가 2개 이상인 고객만 남긴다. A와 B가 조건을 만족하고 합계는 각각 2000과 1500이다.

정답 판정: 정답 판정: HAVING은 그룹화 뒤 행 수가 2개 이상인 고객만 남긴다. A와 B가 조건을 만족하고 합계는 각각 2000과 1500이다. 검증 기준: GROUP BY, COUNT, HAVING의 실행 의미를 표 데이터로 재계산한다. 원문 대조: GROUP BY 뒤 HAVING COUNT(*) 조건으로 두 건 이상인 A와 B만 남고 SUM을 계산한다.

독립 계산·실행 추적: A는 1200+800=2000이고 2건, B는 500+700+300=1500이고 3건, C는 1건이라 HAVING에서 제외된다.

43. ER 다이어그램의 기호와 의미가 잘못 연결된 것은?

  1. 사각형-개체
  2. 타원-속성
  3. 마름모-관계
  4. 삼각형-일반 속성
정답과 해설 보기

정답: 4

전통적인 ER 표기에서 개체는 사각형, 속성은 타원, 관계는 마름모로 나타낸다. 일반 속성을 삼각형으로 표시하지 않는다.

선지별 해설

  • 1번 ‘사각형-개체’는 이 문항의 조건에 맞지 않는다. 전통적인 ER 표기에서 개체는 사각형, 속성은 타원, 관계는 마름모로 나타낸다. 일반 속성을 삼각형으로 표시하지 않는다.
  • 2번 ‘타원-속성’는 이 문항의 조건에 맞지 않는다. 전통적인 ER 표기에서 개체는 사각형, 속성은 타원, 관계는 마름모로 나타낸다. 일반 속성을 삼각형으로 표시하지 않는다.
  • 3번 ‘마름모-관계’는 이 문항의 조건에 맞지 않는다. 전통적인 ER 표기에서 개체는 사각형, 속성은 타원, 관계는 마름모로 나타낸다. 일반 속성을 삼각형으로 표시하지 않는다.
  • 4번은 정답 선지다. 전통적인 ER 표기에서 개체는 사각형, 속성은 타원, 관계는 마름모로 나타낸다. 일반 속성을 삼각형으로 표시하지 않는다.

정답 판정: 정답 판정: 전통적인 ER 표기에서 개체는 사각형, 속성은 타원, 관계는 마름모로 나타낸다. 일반 속성을 삼각형으로 표시하지 않는다. 검증 기준: ER 모델의 개체·속성·관계 기호를 대조한다. 원문 대조: 개체·속성·관계의 전통적 표기는 사각형·타원·마름모이며 일반 속성을 삼각형으로 표시하지 않는다.

44. 관계형 데이터베이스의 개체 무결성을 올바르게 설명한 것은?

  1. 기본키를 이루는 속성은 NULL이 될 수 없다
  2. 외래키는 언제나 서로 다른 값이어야 한다
  3. 모든 일반 속성은 기본키와 같은 도메인을 쓴다
  4. 한 테이블에는 후보키가 하나만 존재한다
정답과 해설 보기

정답: 1

개체 무결성은 각 튜플을 식별하는 기본키가 NULL을 포함하지 않도록 한다. 기본키는 또한 튜플을 유일하게 식별한다.

선지별 해설

  • 1번은 정답 선지다. 개체 무결성은 각 튜플을 식별하는 기본키가 NULL을 포함하지 않도록 한다. 기본키는 또한 튜플을 유일하게 식별한다.
  • 2번 ‘외래키는 언제나 서로 다른 값이어야 한다’는 이 문항의 조건에 맞지 않는다. 개체 무결성은 각 튜플을 식별하는 기본키가 NULL을 포함하지 않도록 한다. 기본키는 또한 튜플을 유일하게 식별한다.
  • 3번 ‘모든 일반 속성은 기본키와 같은 도메인을 쓴다’는 이 문항의 조건에 맞지 않는다. 개체 무결성은 각 튜플을 식별하는 기본키가 NULL을 포함하지 않도록 한다. 기본키는 또한 튜플을 유일하게 식별한다.
  • 4번 ‘한 테이블에는 후보키가 하나만 존재한다’는 이 문항의 조건에 맞지 않는다. 개체 무결성은 각 튜플을 식별하는 기본키가 NULL을 포함하지 않도록 한다. 기본키는 또한 튜플을 유일하게 식별한다.

정답 판정: 정답 판정: 개체 무결성은 각 튜플을 식별하는 기본키가 NULL을 포함하지 않도록 한다. 기본키는 또한 튜플을 유일하게 식별한다. 검증 기준: 기본키와 entity integrity 제약의 정의를 적용한다. 원문 대조: 기본키는 unique이면서 not null이어야 한다.

45. 잠금 단위를 테이블처럼 크게 잡을 때 일반적으로 나타나는 효과는?

  1. 동시에 접근할 수 있는 트랜잭션 수가 줄어든다
  2. 잠금 개수가 늘고 관리 비용이 반드시 커진다
  3. 교착 상태가 논리적으로 불가능해진다
  4. 레코드와 페이지는 잠금 대상이 될 수 없다
정답과 해설 보기

정답: 1

큰 잠금 단위는 한 번에 넓은 범위를 막아 관리할 잠금 수는 줄지만 병행성도 낮춘다. 세밀한 잠금은 반대의 절충관계를 가진다.

선지별 해설

  • 1번은 정답 선지다. 큰 잠금 단위는 한 번에 넓은 범위를 막아 관리할 잠금 수는 줄지만 병행성도 낮춘다. 세밀한 잠금은 반대의 절충관계를 가진다.
  • 2번 ‘잠금 개수가 늘고 관리 비용이 반드시 커진다’는 이 문항의 조건에 맞지 않는다. 큰 잠금 단위는 한 번에 넓은 범위를 막아 관리할 잠금 수는 줄지만 병행성도 낮춘다. 세밀한 잠금은 반대의 절충관계를 가진다.
  • 3번 ‘교착 상태가 논리적으로 불가능해진다’는 이 문항의 조건에 맞지 않는다. 큰 잠금 단위는 한 번에 넓은 범위를 막아 관리할 잠금 수는 줄지만 병행성도 낮춘다. 세밀한 잠금은 반대의 절충관계를 가진다.
  • 4번 ‘레코드와 페이지는 잠금 대상이 될 수 없다’는 이 문항의 조건에 맞지 않는다. 큰 잠금 단위는 한 번에 넓은 범위를 막아 관리할 잠금 수는 줄지만 병행성도 낮춘다. 세밀한 잠금은 반대의 절충관계를 가진다.

정답 판정: 정답 판정: 큰 잠금 단위는 한 번에 넓은 범위를 막아 관리할 잠금 수는 줄지만 병행성도 낮춘다. 세밀한 잠금은 반대의 절충관계를 가진다. 검증 기준: locking granularity와 concurrency·overhead의 절충관계를 적용한다. 원문 대조: 큰 잠금 단위는 더 넓은 범위를 충돌시켜 동시성을 줄인다.

46. 릴레이션에서 튜플을 유일하게 식별하면서 불필요한 속성을 더 포함하지 않는 키는?

  1. 슈퍼키
  2. 후보키
  3. 외래키
  4. 대체키
정답과 해설 보기

정답: 2

후보키는 유일성과 최소성을 모두 만족한다. 슈퍼키는 유일하지만 최소성을 반드시 만족하지는 않는다.

선지별 해설

  • 1번 ‘슈퍼키’는 이 문항의 조건에 맞지 않는다. 후보키는 유일성과 최소성을 모두 만족한다. 슈퍼키는 유일하지만 최소성을 반드시 만족하지는 않는다.
  • 2번은 정답 선지다. 후보키는 유일성과 최소성을 모두 만족한다. 슈퍼키는 유일하지만 최소성을 반드시 만족하지는 않는다.
  • 3번 ‘외래키’는 이 문항의 조건에 맞지 않는다. 후보키는 유일성과 최소성을 모두 만족한다. 슈퍼키는 유일하지만 최소성을 반드시 만족하지는 않는다.
  • 4번 ‘대체키’는 이 문항의 조건에 맞지 않는다. 후보키는 유일성과 최소성을 모두 만족한다. 슈퍼키는 유일하지만 최소성을 반드시 만족하지는 않는다.

정답 판정: 정답 판정: 후보키는 유일성과 최소성을 모두 만족한다. 슈퍼키는 유일하지만 최소성을 반드시 만족하지는 않는다. 검증 기준: 키의 유일성과 최소성 조건을 대조한다. 원문 대조: candidate key는 튜플을 유일하게 식별하는 최소 키 후보다.

47. 뷰에 대한 설명으로 옳은 것은?

  1. 뷰는 항상 조회 결과 행을 별도 파일에 영구 저장한다
  2. 뷰를 이용하면 특정 열이나 행만 노출하는 논리적 창을 만들 수 있다
  3. 모든 뷰는 제한 없이 INSERT·UPDATE·DELETE할 수 있다
  4. 기본 테이블과 무관하게 같은 정의를 영구 유지한다
정답과 해설 보기

정답: 2

일반 뷰는 저장된 질의 정의를 통해 기본 테이블의 일부를 논리적으로 보여 준다. 갱신 가능성은 집계·조인 등 정의에 따라 제한된다.

선지별 해설

  • 1번 ‘뷰는 항상 조회 결과 행을 별도 파일에 영구 저장한다’는 이 문항의 조건에 맞지 않는다. 일반 뷰는 저장된 질의 정의를 통해 기본 테이블의 일부를 논리적으로 보여 준다. 갱신 가능성은 집계·조인 등 정의에 따라 제한된다.
  • 2번은 정답 선지다. 일반 뷰는 저장된 질의 정의를 통해 기본 테이블의 일부를 논리적으로 보여 준다. 갱신 가능성은 집계·조인 등 정의에 따라 제한된다.
  • 3번 ‘모든 뷰는 제한 없이 INSERT·UPDATE·DELETE할 수 있다’는 이 문항의 조건에 맞지 않는다. 일반 뷰는 저장된 질의 정의를 통해 기본 테이블의 일부를 논리적으로 보여 준다. 갱신 가능성은 집계·조인 등 정의에 따라 제한된다.
  • 4번 ‘기본 테이블과 무관하게 같은 정의를 영구 유지한다’는 이 문항의 조건에 맞지 않는다. 일반 뷰는 저장된 질의 정의를 통해 기본 테이블의 일부를 논리적으로 보여 준다. 갱신 가능성은 집계·조인 등 정의에 따라 제한된다.

정답 판정: 정답 판정: 일반 뷰는 저장된 질의 정의를 통해 기본 테이블의 일부를 논리적으로 보여 준다. 갱신 가능성은 집계·조인 등 정의에 따라 제한된다. 검증 기준: SQL view의 논리적 정의와 갱신 제한을 적용한다. 원문 대조: 뷰는 물리 저장 파일이 아니라 질의로 정의되는 논리적 관계이며 열·행 노출을 제한할 수 있다.

48. 다음 중 데이터 조작어(DML)가 아닌 것은?

  1. INSERT
  2. UPDATE
  3. ALTER
  4. DELETE
정답과 해설 보기

정답: 3

INSERT, UPDATE, DELETE는 데이터를 조작한다. ALTER는 테이블 등 스키마 객체의 정의를 바꾸는 데이터 정의어다.

선지별 해설

  • 1번 ‘INSERT’는 이 문항의 조건에 맞지 않는다. INSERT, UPDATE, DELETE는 데이터를 조작한다. ALTER는 테이블 등 스키마 객체의 정의를 바꾸는 데이터 정의어다.
  • 2번 ‘UPDATE’는 이 문항의 조건에 맞지 않는다. INSERT, UPDATE, DELETE는 데이터를 조작한다. ALTER는 테이블 등 스키마 객체의 정의를 바꾸는 데이터 정의어다.
  • 3번은 정답 선지다. INSERT, UPDATE, DELETE는 데이터를 조작한다. ALTER는 테이블 등 스키마 객체의 정의를 바꾸는 데이터 정의어다.
  • 4번 ‘DELETE’는 이 문항의 조건에 맞지 않는다. INSERT, UPDATE, DELETE는 데이터를 조작한다. ALTER는 테이블 등 스키마 객체의 정의를 바꾸는 데이터 정의어다.

정답 판정: 정답 판정: INSERT, UPDATE, DELETE는 데이터를 조작한다. ALTER는 테이블 등 스키마 객체의 정의를 바꾸는 데이터 정의어다. 검증 기준: SQL의 DML과 DDL 명령 분류를 적용한다. 원문 대조: INSERT·UPDATE·DELETE는 데이터 조작이고 ALTER는 스키마 정의 변경이다.

49. 외래키에 대한 설명으로 틀린 것은?

  1. 기본키가 아닌 나머지 후보키를 모두 외래키라고 한다
  2. 다른 릴레이션의 키를 참조해 관계를 표현할 수 있다
  3. 외래키 값에는 참조 무결성 제약이 적용될 수 있다
  4. 여러 속성을 묶어 외래키를 만들 수도 있다
정답과 해설 보기

정답: 1

기본키로 선택되지 않은 후보키는 대체키다. 외래키는 같은 테이블 또는 다른 테이블의 후보키·고유키를 참조해 관계를 표현한다.

선지별 해설

  • 1번은 정답 선지다. 기본키로 선택되지 않은 후보키는 대체키다. 외래키는 같은 테이블 또는 다른 테이블의 후보키·고유키를 참조해 관계를 표현한다.
  • 2번 ‘다른 릴레이션의 키를 참조해 관계를 표현할 수 있다’는 이 문항의 조건에 맞지 않는다. 기본키로 선택되지 않은 후보키는 대체키다. 외래키는 같은 테이블 또는 다른 테이블의 후보키·고유키를 참조해 관계를 표현한다.
  • 3번 ‘외래키 값에는 참조 무결성 제약이 적용될 수 있다’는 이 문항의 조건에 맞지 않는다. 기본키로 선택되지 않은 후보키는 대체키다. 외래키는 같은 테이블 또는 다른 테이블의 후보키·고유키를 참조해 관계를 표현한다.
  • 4번 ‘여러 속성을 묶어 외래키를 만들 수도 있다’는 이 문항의 조건에 맞지 않는다. 기본키로 선택되지 않은 후보키는 대체키다. 외래키는 같은 테이블 또는 다른 테이블의 후보키·고유키를 참조해 관계를 표현한다.

정답 판정: 정답 판정: 기본키로 선택되지 않은 후보키는 대체키다. 외래키는 같은 테이블 또는 다른 테이블의 후보키·고유키를 참조해 관계를 표현한다. 검증 기준: 후보키·대체키·외래키의 역할을 구분한다. 원문 대조: 외래키는 다른 테이블의 행을 참조하며 단순히 기본키가 아닌 모든 후보키를 뜻하지 않는다.

50. 사원 테이블에 행이 5개 있고 급여 열에는 3000, NULL, 4200, 3000, 5100이 저장돼 있다. SELECT 급여 FROM 사원; 이 반환하는 행 수는?

  1. 1
  2. 3
  3. 4
  4. 5
정답과 해설 보기

정답: 4

SELECT에 DISTINCT나 WHERE가 없으므로 NULL과 중복을 포함해 원본의 다섯 행이 모두 결과 행으로 반환된다.

선지별 해설

  • 1번 ‘1’는 이 문항의 조건에 맞지 않는다. SELECT에 DISTINCT나 WHERE가 없으므로 NULL과 중복을 포함해 원본의 다섯 행이 모두 결과 행으로 반환된다.
  • 2번 ‘3’는 이 문항의 조건에 맞지 않는다. SELECT에 DISTINCT나 WHERE가 없으므로 NULL과 중복을 포함해 원본의 다섯 행이 모두 결과 행으로 반환된다.
  • 3번 ‘4’는 이 문항의 조건에 맞지 않는다. SELECT에 DISTINCT나 WHERE가 없으므로 NULL과 중복을 포함해 원본의 다섯 행이 모두 결과 행으로 반환된다.
  • 4번은 정답 선지다. SELECT에 DISTINCT나 WHERE가 없으므로 NULL과 중복을 포함해 원본의 다섯 행이 모두 결과 행으로 반환된다.

정답 판정: 정답 판정: SELECT에 DISTINCT나 WHERE가 없으므로 NULL과 중복을 포함해 원본의 다섯 행이 모두 결과 행으로 반환된다. 검증 기준: SQL SELECT의 행 보존과 NULL·중복 처리 규칙을 적용한다. 원문 대조: 열에 NULL이나 중복이 있어도 DISTINCT·WHERE가 없으면 입력 다섯 행 각각 한 결과 행을 만든다.

독립 계산·실행 추적: SELECT 급여는 WHERE나 DISTINCT가 없으므로 원본 5행을 그대로 반환한다. NULL 1개와 중복 3000 두 개도 각각 결과 행을 차지한다.

51. 분산 데이터베이스에서 응용 프로그램이 데이터가 어느 서버에 저장됐는지 몰라도 접근할 수 있는 성질은?

  1. 위치 투명성
  2. 복제 투명성
  3. 병행 투명성
  4. 장애 투명성
정답과 해설 보기

정답: 1

위치 투명성은 데이터의 물리적 저장 위치를 응용 프로그램에서 감춘다. 사용자는 동일한 논리 이름으로 접근할 수 있다.

선지별 해설

  • 1번은 정답 선지다. 위치 투명성은 데이터의 물리적 저장 위치를 응용 프로그램에서 감춘다. 사용자는 동일한 논리 이름으로 접근할 수 있다.
  • 2번 ‘복제 투명성’는 이 문항의 조건에 맞지 않는다. 위치 투명성은 데이터의 물리적 저장 위치를 응용 프로그램에서 감춘다. 사용자는 동일한 논리 이름으로 접근할 수 있다.
  • 3번 ‘병행 투명성’는 이 문항의 조건에 맞지 않는다. 위치 투명성은 데이터의 물리적 저장 위치를 응용 프로그램에서 감춘다. 사용자는 동일한 논리 이름으로 접근할 수 있다.
  • 4번 ‘장애 투명성’는 이 문항의 조건에 맞지 않는다. 위치 투명성은 데이터의 물리적 저장 위치를 응용 프로그램에서 감춘다. 사용자는 동일한 논리 이름으로 접근할 수 있다.

정답 판정: 정답 판정: 위치 투명성은 데이터의 물리적 저장 위치를 응용 프로그램에서 감춘다. 사용자는 동일한 논리 이름으로 접근할 수 있다. 검증 기준: 분산 데이터베이스의 location transparency 정의를 적용한다. 원문 대조: 사용자가 데이터의 물리적 위치를 몰라도 접근하는 특성을 location transparency라 한다.

52. 한 부서에는 여러 사원이 속할 수 있지만 각 사원은 한 부서에만 속한다. 부서와 사원의 대응 관계는?

  1. 1:1
  2. 1:N
  3. N:M
  4. N:1만 가능
정답과 해설 보기

정답: 2

부서 하나가 여러 사원과 연결되고 각 사원은 하나의 부서에 연결되므로 부서에서 사원 방향은 1:N 관계다.

선지별 해설

  • 1번 ‘1:1’는 이 문항의 조건에 맞지 않는다. 부서 하나가 여러 사원과 연결되고 각 사원은 하나의 부서에 연결되므로 부서에서 사원 방향은 1:N 관계다.
  • 2번은 정답 선지다. 부서 하나가 여러 사원과 연결되고 각 사원은 하나의 부서에 연결되므로 부서에서 사원 방향은 1:N 관계다.
  • 3번 ‘N:M’는 이 문항의 조건에 맞지 않는다. 부서 하나가 여러 사원과 연결되고 각 사원은 하나의 부서에 연결되므로 부서에서 사원 방향은 1:N 관계다.
  • 4번 ‘N:1만 가능’는 이 문항의 조건에 맞지 않는다. 부서 하나가 여러 사원과 연결되고 각 사원은 하나의 부서에 연결되므로 부서에서 사원 방향은 1:N 관계다.

정답 판정: 정답 판정: 부서 하나가 여러 사원과 연결되고 각 사원은 하나의 부서에 연결되므로 부서에서 사원 방향은 1:N 관계다. 검증 기준: ER 모델의 대응수 cardinality를 사례에 적용한다. 원문 대조: 한 부모 아래 여러 자식이 있고 각 자식이 한 부모에 속하는 대응은 1:N이다.

53. 트랜잭션의 ACID 특성에 포함되지 않는 것은?

  1. 원자성
  2. 동시성
  3. 고립성
  4. 지속성
정답과 해설 보기

정답: 2

ACID는 원자성, 일관성, 고립성, 지속성을 뜻한다. 동시성은 처리 환경의 성질이며 ACID 글자의 구성 요소가 아니다.

선지별 해설

  • 1번 ‘원자성’는 이 문항의 조건에 맞지 않는다. ACID는 원자성, 일관성, 고립성, 지속성을 뜻한다. 동시성은 처리 환경의 성질이며 ACID 글자의 구성 요소가 아니다.
  • 2번은 정답 선지다. ACID는 원자성, 일관성, 고립성, 지속성을 뜻한다. 동시성은 처리 환경의 성질이며 ACID 글자의 구성 요소가 아니다.
  • 3번 ‘고립성’는 이 문항의 조건에 맞지 않는다. ACID는 원자성, 일관성, 고립성, 지속성을 뜻한다. 동시성은 처리 환경의 성질이며 ACID 글자의 구성 요소가 아니다.
  • 4번 ‘지속성’는 이 문항의 조건에 맞지 않는다. ACID는 원자성, 일관성, 고립성, 지속성을 뜻한다. 동시성은 처리 환경의 성질이며 ACID 글자의 구성 요소가 아니다.

정답 판정: 정답 판정: ACID는 원자성, 일관성, 고립성, 지속성을 뜻한다. 동시성은 처리 환경의 성질이며 ACID 글자의 구성 요소가 아니다. 검증 기준: ACID 네 특성의 명시적 목록을 대조한다. 원문 대조: ACID는 atomicity, consistency, isolation, durability이며 concurrency는 머리글자에 없다.

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

  1. 입력과 결과가 릴레이션인 닫힘 성질을 가진다
  2. 원하는 결과를 얻는 연산 절차를 표현한다
  3. 일반 집합 연산과 순수 관계 연산을 포함한다
  4. 프레디킷 해석에 기반한 비절차적 언어다
정답과 해설 보기

정답: 4

관계대수는 연산 순서를 기술하는 절차적 형식 언어다. 프레디킷 해석을 바탕으로 하는 비절차적 체계는 관계해석이다.

선지별 해설

  • 1번 ‘입력과 결과가 릴레이션인 닫힘 성질을 가진다’는 이 문항의 조건에 맞지 않는다. 관계대수는 연산 순서를 기술하는 절차적 형식 언어다. 프레디킷 해석을 바탕으로 하는 비절차적 체계는 관계해석이다.
  • 2번 ‘원하는 결과를 얻는 연산 절차를 표현한다’는 이 문항의 조건에 맞지 않는다. 관계대수는 연산 순서를 기술하는 절차적 형식 언어다. 프레디킷 해석을 바탕으로 하는 비절차적 체계는 관계해석이다.
  • 3번 ‘일반 집합 연산과 순수 관계 연산을 포함한다’는 이 문항의 조건에 맞지 않는다. 관계대수는 연산 순서를 기술하는 절차적 형식 언어다. 프레디킷 해석을 바탕으로 하는 비절차적 체계는 관계해석이다.
  • 4번은 정답 선지다. 관계대수는 연산 순서를 기술하는 절차적 형식 언어다. 프레디킷 해석을 바탕으로 하는 비절차적 체계는 관계해석이다.

정답 판정: 정답 판정: 관계대수는 연산 순서를 기술하는 절차적 형식 언어다. 프레디킷 해석을 바탕으로 하는 비절차적 체계는 관계해석이다. 검증 기준: 관계대수와 관계해석의 절차성 차이를 적용한다. 원문 대조: 관계대수는 연산 순서를 표현하는 절차적 체계이고 비절차적 프레디킷 해석과 구별된다.

55. 학과 테이블에서 교수명이 ‘김’으로 시작하는 행의 학과번호를 900으로 바꾸는 SQL은?

  1. UPDATE 학과 SET 학과번호=900 WHERE 교수명 LIKE '김%';
  2. UPDATE 학과 TO 학과번호=900 WHERE 교수명 LIKE '김%';
  3. UPDATE 학과 SET 학과번호=900 WHERE 교수명 LIKE '%김%';
  4. MODIFY 학과 SET 학과번호=900 WHERE 교수명='김';
정답과 해설 보기

정답: 1

UPDATE 대상 뒤 SET으로 값을 지정하고 WHERE의 LIKE '김%'로 김으로 시작하는 문자열을 선택한다.

선지별 해설

  • 1번은 정답 선지다. UPDATE 대상 뒤 SET으로 값을 지정하고 WHERE의 LIKE '김%'로 김으로 시작하는 문자열을 선택한다.
  • 2번 ‘UPDATE 학과 TO 학과번호=900 WHERE 교수명 LIKE '김%';’는 이 문항의 조건에 맞지 않는다. UPDATE 대상 뒤 SET으로 값을 지정하고 WHERE의 LIKE '김%'로 김으로 시작하는 문자열을 선택한다.
  • 3번 ‘UPDATE 학과 SET 학과번호=900 WHERE 교수명 LIKE '%김%';’는 이 문항의 조건에 맞지 않는다. UPDATE 대상 뒤 SET으로 값을 지정하고 WHERE의 LIKE '김%'로 김으로 시작하는 문자열을 선택한다.
  • 4번 ‘MODIFY 학과 SET 학과번호=900 WHERE 교수명='김';’는 이 문항의 조건에 맞지 않는다. UPDATE 대상 뒤 SET으로 값을 지정하고 WHERE의 LIKE '김%'로 김으로 시작하는 문자열을 선택한다.

정답 판정: 정답 판정: UPDATE 대상 뒤 SET으로 값을 지정하고 WHERE의 LIKE '김%'로 김으로 시작하는 문자열을 선택한다. 검증 기준: UPDATE, SET, WHERE, LIKE 와일드카드 문법을 적용한다. 원문 대조: UPDATE … SET … WHERE … LIKE '김%' 구문이 조건에 맞는 행의 값을 변경한다.

56. 하위 개체 하나가 상위 개체 하나만 갖고 전체를 트리로 표현하는 데이터 모델은?

  1. 관계 모델
  2. 네트워크 모델
  3. 계층 모델
  4. 객체관계 모델
정답과 해설 보기

정답: 3

계층 데이터 모델은 부모-자식 트리 구조를 사용하며 한 자식이 하나의 부모에 소속되는 1:N 관계 표현에 적합하다.

선지별 해설

  • 1번 ‘관계 모델’는 이 문항의 조건에 맞지 않는다. 계층 데이터 모델은 부모-자식 트리 구조를 사용하며 한 자식이 하나의 부모에 소속되는 1:N 관계 표현에 적합하다.
  • 2번 ‘네트워크 모델’는 이 문항의 조건에 맞지 않는다. 계층 데이터 모델은 부모-자식 트리 구조를 사용하며 한 자식이 하나의 부모에 소속되는 1:N 관계 표현에 적합하다.
  • 3번은 정답 선지다. 계층 데이터 모델은 부모-자식 트리 구조를 사용하며 한 자식이 하나의 부모에 소속되는 1:N 관계 표현에 적합하다.
  • 4번 ‘객체관계 모델’는 이 문항의 조건에 맞지 않는다. 계층 데이터 모델은 부모-자식 트리 구조를 사용하며 한 자식이 하나의 부모에 소속되는 1:N 관계 표현에 적합하다.

정답 판정: 정답 판정: 계층 데이터 모델은 부모-자식 트리 구조를 사용하며 한 자식이 하나의 부모에 소속되는 1:N 관계 표현에 적합하다. 검증 기준: 계층 데이터 모델의 트리와 단일 부모 제약을 적용한다. 원문 대조: 단일 루트 아래 부모·자식으로 내려가는 트리 구조가 계층 모델이다.

57. 데이터베이스 인덱스에 대한 설명으로 틀린 것은?

  1. 검색 경로를 줄이기 위한 보조 자료구조다
  2. 추가 인덱스는 쓰기 비용과 저장공간을 늘릴 수 있다
  3. 표준 생성·삭제 명령은 ADD INDEX와 DELETE INDEX뿐이다
  4. 테이블 삭제 시 그 테이블의 인덱스도 함께 제거된다
정답과 해설 보기

정답: 3

SQL에서는 보통 CREATE INDEX와 DROP INDEX를 사용한다. 인덱스는 검색을 빠르게 할 수 있지만 갱신 비용과 공간을 추가로 요구한다.

선지별 해설

  • 1번 ‘검색 경로를 줄이기 위한 보조 자료구조다’는 이 문항의 조건에 맞지 않는다. SQL에서는 보통 CREATE INDEX와 DROP INDEX를 사용한다. 인덱스는 검색을 빠르게 할 수 있지만 갱신 비용과 공간을 추가로 요구한다.
  • 2번 ‘추가 인덱스는 쓰기 비용과 저장공간을 늘릴 수 있다’는 이 문항의 조건에 맞지 않는다. SQL에서는 보통 CREATE INDEX와 DROP INDEX를 사용한다. 인덱스는 검색을 빠르게 할 수 있지만 갱신 비용과 공간을 추가로 요구한다.
  • 3번은 정답 선지다. SQL에서는 보통 CREATE INDEX와 DROP INDEX를 사용한다. 인덱스는 검색을 빠르게 할 수 있지만 갱신 비용과 공간을 추가로 요구한다.
  • 4번 ‘테이블 삭제 시 그 테이블의 인덱스도 함께 제거된다’는 이 문항의 조건에 맞지 않는다. SQL에서는 보통 CREATE INDEX와 DROP INDEX를 사용한다. 인덱스는 검색을 빠르게 할 수 있지만 갱신 비용과 공간을 추가로 요구한다.

정답 판정: 정답 판정: SQL에서는 보통 CREATE INDEX와 DROP INDEX를 사용한다. 인덱스는 검색을 빠르게 할 수 있지만 갱신 비용과 공간을 추가로 요구한다. 검증 기준: 인덱스 생성·삭제와 읽기·쓰기 비용의 절충을 적용한다. 원문 대조: 인덱스는 검색을 돕지만 쓰기·공간 비용이 있으며 ADD INDEX/DELETE INDEX만이 표준 명령이라는 설명은 틀리다.

58. R의 차수는 3, 카디널리티는 8이고 S의 차수는 5, 카디널리티는 4다. R×S의 차수와 카디널리티는?

  1. 8, 32
  2. 15, 12
  3. 8, 12
  4. 15, 32
정답과 해설 보기

정답: 1

카티션 프로덕트는 두 릴레이션의 모든 튜플 쌍을 만든다. 속성 수는 3+5=8이고 튜플 수는 8×4=32다.

선지별 해설

  • 1번은 정답 선지다. 카티션 프로덕트는 두 릴레이션의 모든 튜플 쌍을 만든다. 속성 수는 3+5=8이고 튜플 수는 8×4=32다.
  • 2번 ‘15, 12’는 이 문항의 조건에 맞지 않는다. 카티션 프로덕트는 두 릴레이션의 모든 튜플 쌍을 만든다. 속성 수는 3+5=8이고 튜플 수는 8×4=32다.
  • 3번 ‘8, 12’는 이 문항의 조건에 맞지 않는다. 카티션 프로덕트는 두 릴레이션의 모든 튜플 쌍을 만든다. 속성 수는 3+5=8이고 튜플 수는 8×4=32다.
  • 4번 ‘15, 32’는 이 문항의 조건에 맞지 않는다. 카티션 프로덕트는 두 릴레이션의 모든 튜플 쌍을 만든다. 속성 수는 3+5=8이고 튜플 수는 8×4=32다.

정답 판정: 정답 판정: 카티션 프로덕트는 두 릴레이션의 모든 튜플 쌍을 만든다. 속성 수는 3+5=8이고 튜플 수는 8×4=32다. 검증 기준: 카티션 프로덕트의 차수 합과 카디널리티 곱을 재계산한다. 원문 대조: 카티션 곱은 모든 행 조합을 만들므로 열 수는 합하고 행 수는 곱한다.

독립 계산·실행 추적: R×S의 속성 수=3+5=8, 튜플 조합 수=8×4=32.

59. 관계형 데이터베이스의 일반적인 테이블 파티션 방식으로 보기 어려운 것은?

  1. 범위 분할
  2. 해시 분할
  3. 목록 분할
  4. 유닛 처리 분할
정답과 해설 보기

정답: 4

범위, 해시, 목록 및 이들의 조합은 널리 쓰이는 파티션 전략이다. 유닛 처리 분할은 일반적인 파티션 유형 명칭이 아니다.

선지별 해설

  • 1번 ‘범위 분할’는 이 문항의 조건에 맞지 않는다. 범위, 해시, 목록 및 이들의 조합은 널리 쓰이는 파티션 전략이다. 유닛 처리 분할은 일반적인 파티션 유형 명칭이 아니다.
  • 2번 ‘해시 분할’는 이 문항의 조건에 맞지 않는다. 범위, 해시, 목록 및 이들의 조합은 널리 쓰이는 파티션 전략이다. 유닛 처리 분할은 일반적인 파티션 유형 명칭이 아니다.
  • 3번 ‘목록 분할’는 이 문항의 조건에 맞지 않는다. 범위, 해시, 목록 및 이들의 조합은 널리 쓰이는 파티션 전략이다. 유닛 처리 분할은 일반적인 파티션 유형 명칭이 아니다.
  • 4번은 정답 선지다. 범위, 해시, 목록 및 이들의 조합은 널리 쓰이는 파티션 전략이다. 유닛 처리 분할은 일반적인 파티션 유형 명칭이 아니다.

정답 판정: 정답 판정: 범위, 해시, 목록 및 이들의 조합은 널리 쓰이는 파티션 전략이다. 유닛 처리 분할은 일반적인 파티션 유형 명칭이 아니다. 검증 기준: 물리 저장 설계의 range·hash·list partitioning을 대조한다. 원문 대조: 공식 파티션 전략은 range·list·hash이며 유닛 처리 분할은 그 분류가 아니다.

60. 자식 테이블의 외래키가 부모 테이블에 존재하는 키를 가리키도록 유지하는 제약은?

  1. 도메인 무결성
  2. 개체 무결성
  3. 참조 무결성
  4. 사용자 정의 무결성
정답과 해설 보기

정답: 3

참조 무결성은 외래키가 NULL이거나 참조 대상의 유효한 키 값과 대응하도록 해 고아 참조를 막는다.

선지별 해설

  • 1번 ‘도메인 무결성’는 이 문항의 조건에 맞지 않는다. 참조 무결성은 외래키가 NULL이거나 참조 대상의 유효한 키 값과 대응하도록 해 고아 참조를 막는다.
  • 2번 ‘개체 무결성’는 이 문항의 조건에 맞지 않는다. 참조 무결성은 외래키가 NULL이거나 참조 대상의 유효한 키 값과 대응하도록 해 고아 참조를 막는다.
  • 3번은 정답 선지다. 참조 무결성은 외래키가 NULL이거나 참조 대상의 유효한 키 값과 대응하도록 해 고아 참조를 막는다.
  • 4번 ‘사용자 정의 무결성’는 이 문항의 조건에 맞지 않는다. 참조 무결성은 외래키가 NULL이거나 참조 대상의 유효한 키 값과 대응하도록 해 고아 참조를 막는다.

정답 판정: 정답 판정: 참조 무결성은 외래키가 NULL이거나 참조 대상의 유효한 키 값과 대응하도록 해 고아 참조를 막는다. 검증 기준: foreign key와 referential integrity 제약을 적용한다. 원문 대조: 외래키가 유효한 참조 대상 행을 가리키도록 하는 제약이 참조 무결성이다.

정보처리기사 필기 기출문제 · 프로그래밍 언어 활용

61. 다음 C 프로그램의 출력은?
“`c
#include <stdio.h>
int main(void){ char s[]="CODE"; char *p=s; s[1]='A'; printf("%c%c", *(p+1), *(p+3)); }
“`

  1. AE
  2. AO
  3. CD
  4. CE
정답과 해설 보기

정답: 1

s[1]은 A로 바뀌고 p는 같은 배열의 첫 원소를 가리킨다. p+1은 A, p+3은 E이므로 AE가 출력된다.

선지별 해설

  • 1번은 정답 선지다. s[1]은 A로 바뀌고 p는 같은 배열의 첫 원소를 가리킨다. p+1은 A, p+3은 E이므로 AE가 출력된다.
  • 2번 ‘AO’는 이 문항의 조건에 맞지 않는다. s[1]은 A로 바뀌고 p는 같은 배열의 첫 원소를 가리킨다. p+1은 A, p+3은 E이므로 AE가 출력된다.
  • 3번 ‘CD’는 이 문항의 조건에 맞지 않는다. s[1]은 A로 바뀌고 p는 같은 배열의 첫 원소를 가리킨다. p+1은 A, p+3은 E이므로 AE가 출력된다.
  • 4번 ‘CE’는 이 문항의 조건에 맞지 않는다. s[1]은 A로 바뀌고 p는 같은 배열의 첫 원소를 가리킨다. p+1은 A, p+3은 E이므로 AE가 출력된다.

정답 판정: 정답 판정: s[1]은 A로 바뀌고 p는 같은 배열의 첫 원소를 가리킨다. p+1은 A, p+3은 E이므로 AE가 출력된다. 검증 기준: C 배열과 포인터의 동일 저장공간 참조를 단계별로 계산한다. 원문 대조: 배열 수정과 동일 배열을 가리키는 포인터 인덱싱을 표준 규칙대로 추적한다.

독립 계산·실행 추적: s는 C,O,D,E에서 C,A,D,E로 바뀐다. p+1은 A, p+3은 E이므로 출력은 AE.

62. C 언어에서 식별자로 사용할 수 없는 것은?

  1. data02
  2. int01
  3. _sub
  4. short
정답과 해설 보기

정답: 4

short는 C의 예약 키워드이므로 변수 이름으로 사용할 수 없다. 나머지는 식별자 형식에 맞고 키워드가 아니다.

선지별 해설

  • 1번 ‘data02’는 이 문항의 조건에 맞지 않는다. short는 C의 예약 키워드이므로 변수 이름으로 사용할 수 없다. 나머지는 식별자 형식에 맞고 키워드가 아니다.
  • 2번 ‘int01’는 이 문항의 조건에 맞지 않는다. short는 C의 예약 키워드이므로 변수 이름으로 사용할 수 없다. 나머지는 식별자 형식에 맞고 키워드가 아니다.
  • 3번 ‘_sub’는 이 문항의 조건에 맞지 않는다. short는 C의 예약 키워드이므로 변수 이름으로 사용할 수 없다. 나머지는 식별자 형식에 맞고 키워드가 아니다.
  • 4번은 정답 선지다. short는 C의 예약 키워드이므로 변수 이름으로 사용할 수 없다. 나머지는 식별자 형식에 맞고 키워드가 아니다.

정답 판정: 정답 판정: short는 C의 예약 키워드이므로 변수 이름으로 사용할 수 없다. 나머지는 식별자 형식에 맞고 키워드가 아니다. 검증 기준: C 키워드와 식별자 어휘 규칙을 적용한다. 원문 대조: short는 C 키워드이므로 식별자로 사용할 수 없다.

63. POSIX 계열에서 현재 프로세스를 복제해 새 프로세스를 만드는 대표 시스템 호출은?

  1. ls
  2. cat
  3. fork
  4. chmod
정답과 해설 보기

정답: 3

fork는 호출한 프로세스를 바탕으로 새 프로세스를 만든다. ls, cat, chmod는 일반 명령 이름이며 프로세스 생성 시스템 호출이 아니다.

선지별 해설

  • 1번 ‘ls’는 이 문항의 조건에 맞지 않는다. fork는 호출한 프로세스를 바탕으로 새 프로세스를 만든다. ls, cat, chmod는 일반 명령 이름이며 프로세스 생성 시스템 호출이 아니다.
  • 2번 ‘cat’는 이 문항의 조건에 맞지 않는다. fork는 호출한 프로세스를 바탕으로 새 프로세스를 만든다. ls, cat, chmod는 일반 명령 이름이며 프로세스 생성 시스템 호출이 아니다.
  • 3번은 정답 선지다. fork는 호출한 프로세스를 바탕으로 새 프로세스를 만든다. ls, cat, chmod는 일반 명령 이름이며 프로세스 생성 시스템 호출이 아니다.
  • 4번 ‘chmod’는 이 문항의 조건에 맞지 않는다. fork는 호출한 프로세스를 바탕으로 새 프로세스를 만든다. ls, cat, chmod는 일반 명령 이름이며 프로세스 생성 시스템 호출이 아니다.

정답 판정: 정답 판정: fork는 호출한 프로세스를 바탕으로 새 프로세스를 만든다. ls, cat, chmod는 일반 명령 이름이며 프로세스 생성 시스템 호출이 아니다. 검증 기준: 프로세스 생성 시스템 호출과 셸 명령을 구분한다. 원문 대조: fork()는 호출 프로세스를 복제해 자식 프로세스를 만든다.

64. C에서 printf와 scanf 선언을 사용하기 위한 올바른 전처리 지시문은?

  1. #import <stdio.h>
  2. #include <stdio.h>
  3. #import <studio.h>
  4. #include <studio.h>
정답과 해설 보기

정답: 2

표준 입출력 함수는 stdio.h에 선언되어 있으며 C 전처리 지시문 #include로 헤더를 포함한다.

선지별 해설

  • 1번 ‘#import <stdio.h>’는 이 문항의 조건에 맞지 않는다. 표준 입출력 함수는 stdio.h에 선언되어 있으며 C 전처리 지시문 #include로 헤더를 포함한다.
  • 2번은 정답 선지다. 표준 입출력 함수는 stdio.h에 선언되어 있으며 C 전처리 지시문 #include로 헤더를 포함한다.
  • 3번 ‘#import <studio.h>’는 이 문항의 조건에 맞지 않는다. 표준 입출력 함수는 stdio.h에 선언되어 있으며 C 전처리 지시문 #include로 헤더를 포함한다.
  • 4번 ‘#include <studio.h>’는 이 문항의 조건에 맞지 않는다. 표준 입출력 함수는 stdio.h에 선언되어 있으며 C 전처리 지시문 #include로 헤더를 포함한다.

정답 판정: 정답 판정: 표준 입출력 함수는 stdio.h에 선언되어 있으며 C 전처리 지시문 #include로 헤더를 포함한다. 검증 기준: C 표준 입출력 헤더 이름과 include 지시문을 확인한다. 원문 대조: stdio.h 선언을 사용하려면 #include 지시문으로 해당 헤더를 포함한다.

65. 다음 C 프로그램의 출력은?
“`c
#include <stdio.h>
int f(int x){ static int s=5; int a=5; s+=x; a+=x; return s-a; }
int main(void){ int r=0; for(int i=1;i<=4;i++) r=f(i); printf("%d",r); }
“`

  1. 0
  2. 3
  3. 6
  4. 10
정답과 해설 보기

정답: 3

static s는 호출 사이에 누적되어 마지막에 15가 되고, 마지막 호출의 자동 변수 a는 9다. 반환값은 15-9=6이다.

선지별 해설

  • 1번 ‘0’는 이 문항의 조건에 맞지 않는다. static s는 호출 사이에 누적되어 마지막에 15가 되고, 마지막 호출의 자동 변수 a는 9다. 반환값은 15-9=6이다.
  • 2번 ‘3’는 이 문항의 조건에 맞지 않는다. static s는 호출 사이에 누적되어 마지막에 15가 되고, 마지막 호출의 자동 변수 a는 9다. 반환값은 15-9=6이다.
  • 3번은 정답 선지다. static s는 호출 사이에 누적되어 마지막에 15가 되고, 마지막 호출의 자동 변수 a는 9다. 반환값은 15-9=6이다.
  • 4번 ‘10’는 이 문항의 조건에 맞지 않는다. static s는 호출 사이에 누적되어 마지막에 15가 되고, 마지막 호출의 자동 변수 a는 9다. 반환값은 15-9=6이다.

정답 판정: 정답 판정: static s는 호출 사이에 누적되어 마지막에 15가 되고, 마지막 호출의 자동 변수 a는 9다. 반환값은 15-9=6이다. 검증 기준: 정적 저장기간 변수와 자동 변수의 호출별 상태를 표로 재계산한다. 원문 대조: static 객체는 호출 사이 값을 유지하고 automatic 객체는 각 호출마다 새 수명을 갖는다.

독립 계산·실행 추적: 호출별 (s,a,반환): x=1 (6,6,0), x=2 (8,7,1), x=3 (11,8,3), x=4 (15,9,6). 마지막 r=6.

66. OSI 계층 중 같은 링크에 직접 연결된 노드 사이의 프레임 전송, 오류 검출, 흐름 제어를 담당하는 계층은?

  1. 데이터 링크 계층
  2. 물리 계층
  3. 세션 계층
  4. 표현 계층
정답과 해설 보기

정답: 1

데이터 링크 계층은 물리 매체 위에서 프레임 단위의 노드 간 전달과 오류·흐름 제어를 담당한다.

선지별 해설

  • 1번은 정답 선지다. 데이터 링크 계층은 물리 매체 위에서 프레임 단위의 노드 간 전달과 오류·흐름 제어를 담당한다.
  • 2번 ‘물리 계층’는 이 문항의 조건에 맞지 않는다. 데이터 링크 계층은 물리 매체 위에서 프레임 단위의 노드 간 전달과 오류·흐름 제어를 담당한다.
  • 3번 ‘세션 계층’는 이 문항의 조건에 맞지 않는다. 데이터 링크 계층은 물리 매체 위에서 프레임 단위의 노드 간 전달과 오류·흐름 제어를 담당한다.
  • 4번 ‘표현 계층’는 이 문항의 조건에 맞지 않는다. 데이터 링크 계층은 물리 매체 위에서 프레임 단위의 노드 간 전달과 오류·흐름 제어를 담당한다.

정답 판정: 정답 판정: 데이터 링크 계층은 물리 매체 위에서 프레임 단위의 노드 간 전달과 오류·흐름 제어를 담당한다. 검증 기준: OSI 계층별 프로토콜 데이터 단위와 책임을 구분한다. 원문 대조: 데이터 링크 계층은 인접 시스템 사이 데이터 링크 연결과 프레임 전달을 담당한다.

67. 다음 C 프로그램의 출력은?
“`c
#include <stdio.h>
void a(int x,int y){int t=x;x=y;y=t;}
void b(int *x,int *y){int t=*x;*x=*y;*y=t;}
int main(void){int x=4,y=9;a(x,y);b(&x,&y);printf("%d",x*10+y);}
“`

  1. 44
  2. 49
  3. 94
  4. 99
정답과 해설 보기

정답: 3

a는 값 복사본만 바꾸므로 원래 변수는 그대로다. b가 주소를 통해 x와 y를 교환하므로 9와 4가 되어 94가 출력된다.

선지별 해설

  • 1번 ‘44’는 이 문항의 조건에 맞지 않는다. a는 값 복사본만 바꾸므로 원래 변수는 그대로다. b가 주소를 통해 x와 y를 교환하므로 9와 4가 되어 94가 출력된다.
  • 2번 ‘49’는 이 문항의 조건에 맞지 않는다. a는 값 복사본만 바꾸므로 원래 변수는 그대로다. b가 주소를 통해 x와 y를 교환하므로 9와 4가 되어 94가 출력된다.
  • 3번은 정답 선지다. a는 값 복사본만 바꾸므로 원래 변수는 그대로다. b가 주소를 통해 x와 y를 교환하므로 9와 4가 되어 94가 출력된다.
  • 4번 ‘99’는 이 문항의 조건에 맞지 않는다. a는 값 복사본만 바꾸므로 원래 변수는 그대로다. b가 주소를 통해 x와 y를 교환하므로 9와 4가 되어 94가 출력된다.

정답 판정: 정답 판정: a는 값 복사본만 바꾸므로 원래 변수는 그대로다. b가 주소를 통해 x와 y를 교환하므로 9와 4가 되어 94가 출력된다. 검증 기준: C의 값 전달과 포인터를 통한 원본 변경을 단계별로 계산한다. 원문 대조: 값 인수는 원본을 바꾸지 않고 포인터 인수의 역참조 대입은 원본을 바꾼다.

독립 계산·실행 추적: a(4,9)는 복사본만 바꿔 x=4,y=9 유지. b(&x,&y)는 원본을 교환해 x=9,y=4. x*10+y=94.

68. 192.168.10.0/24를 동일 크기의 4개 서브넷으로 나눴다. 네 번째 서브넷의 네 번째 사용 가능 주소는?

  1. 192.168.10.192
  2. 192.168.10.195
  3. 192.168.10.196
  4. 192.168.10.254
정답과 해설 보기

정답: 3

/26 블록 크기는 64이므로 네 번째 네트워크 주소는 .192다. 사용 가능 주소는 .193부터 시작하므로 네 번째는 .196이다.

선지별 해설

  • 1번 ‘192.168.10.192’는 이 문항의 조건에 맞지 않는다. /26 블록 크기는 64이므로 네 번째 네트워크 주소는 .192다. 사용 가능 주소는 .193부터 시작하므로 네 번째는 .196이다.
  • 2번 ‘192.168.10.195’는 이 문항의 조건에 맞지 않는다. /26 블록 크기는 64이므로 네 번째 네트워크 주소는 .192다. 사용 가능 주소는 .193부터 시작하므로 네 번째는 .196이다.
  • 3번은 정답 선지다. /26 블록 크기는 64이므로 네 번째 네트워크 주소는 .192다. 사용 가능 주소는 .193부터 시작하므로 네 번째는 .196이다.
  • 4번 ‘192.168.10.254’는 이 문항의 조건에 맞지 않는다. /26 블록 크기는 64이므로 네 번째 네트워크 주소는 .192다. 사용 가능 주소는 .193부터 시작하므로 네 번째는 .196이다.

정답 판정: 정답 판정: /26 블록 크기는 64이므로 네 번째 네트워크 주소는 .192다. 사용 가능 주소는 .193부터 시작하므로 네 번째는 .196이다. 검증 기준: FLSM /26 경계와 네트워크·브로드캐스트 제외 주소를 재계산한다. 원문 대조: /24에서 두 비트를 빌리면 /26 네 개가 되고 블록 크기는 64다.

독립 계산·실행 추적: /24를 4등분하면 /26, 블록은 .0/.64/.128/.192. 네 번째 사용 가능 주소는 .193을 첫째로 세어 .196.

69. 다음 Java 코드의 출력은?
“`java
class A { int f(int x){return x+2;} int g(int x){return f(x)*2;} }
class B extends A { int f(int x){return super.f(x)+3;} }
A v=new B(); System.out.print(v.g(4));
“`

  1. 12
  2. 14
  3. 16
  4. 18
정답과 해설 보기

정답: 4

g는 상속된 메서드지만 내부의 f 호출은 실제 객체 B의 오버라이드 메서드로 동적 선택된다. f(4)=9이고 두 배는 18이다.

선지별 해설

  • 1번 ‘12’는 이 문항의 조건에 맞지 않는다. g는 상속된 메서드지만 내부의 f 호출은 실제 객체 B의 오버라이드 메서드로 동적 선택된다. f(4)=9이고 두 배는 18이다.
  • 2번 ‘14’는 이 문항의 조건에 맞지 않는다. g는 상속된 메서드지만 내부의 f 호출은 실제 객체 B의 오버라이드 메서드로 동적 선택된다. f(4)=9이고 두 배는 18이다.
  • 3번 ‘16’는 이 문항의 조건에 맞지 않는다. g는 상속된 메서드지만 내부의 f 호출은 실제 객체 B의 오버라이드 메서드로 동적 선택된다. f(4)=9이고 두 배는 18이다.
  • 4번은 정답 선지다. g는 상속된 메서드지만 내부의 f 호출은 실제 객체 B의 오버라이드 메서드로 동적 선택된다. f(4)=9이고 두 배는 18이다.

정답 판정: 정답 판정: g는 상속된 메서드지만 내부의 f 호출은 실제 객체 B의 오버라이드 메서드로 동적 선택된다. f(4)=9이고 두 배는 18이다. 검증 기준: Java 가상 메서드 호출과 super 호출 순서를 계산한다. 원문 대조: 인스턴스 메서드는 실제 객체 B의 override를 동적으로 선택하고 super.f 호출은 A 구현을 사용한다.

독립 계산·실행 추적: v.g(4)에서 A.g 실행 → 가상 호출 B.f(4) → super.f(4)=6 → +3=9 → 9×2=18.

70. C의 정수형 자료형은?

  1. int
  2. float
  3. double
  4. void
정답과 해설 보기

정답: 1

int는 정수 값을 표현하는 기본 정수형이다. float와 double은 부동소수형이고 void는 값이 없음을 나타낸다.

선지별 해설

  • 1번은 정답 선지다. int는 정수 값을 표현하는 기본 정수형이다. float와 double은 부동소수형이고 void는 값이 없음을 나타낸다.
  • 2번 ‘float’는 이 문항의 조건에 맞지 않는다. int는 정수 값을 표현하는 기본 정수형이다. float와 double은 부동소수형이고 void는 값이 없음을 나타낸다.
  • 3번 ‘double’는 이 문항의 조건에 맞지 않는다. int는 정수 값을 표현하는 기본 정수형이다. float와 double은 부동소수형이고 void는 값이 없음을 나타낸다.
  • 4번 ‘void’는 이 문항의 조건에 맞지 않는다. int는 정수 값을 표현하는 기본 정수형이다. float와 double은 부동소수형이고 void는 값이 없음을 나타낸다.

정답 판정: 정답 판정: int는 정수 값을 표현하는 기본 정수형이다. float와 double은 부동소수형이고 void는 값이 없음을 나타낸다. 검증 기준: C 기본 자료형 분류를 대조한다. 원문 대조: 표준은 char·signed/unsigned integer types를 정수형으로 분류하며 int가 기본 정수형이다.

71. 다음 C 프로그램의 출력은?
“`c
#include <stdio.h>
int main(void){ int a[4]={7,11,13,17}; int *p=a; int s=0; for(int i=1;i<4;i++) s+=p[i]; printf("%d",s); }
“`

  1. 41
  2. 48
  3. 31
  4. 37
정답과 해설 보기

정답: 1

반복문은 인덱스 1, 2, 3의 값 11, 13, 17을 더한다. 합은 41이다.

선지별 해설

  • 1번은 정답 선지다. 반복문은 인덱스 1, 2, 3의 값 11, 13, 17을 더한다. 합은 41이다.
  • 2번 ‘48’는 이 문항의 조건에 맞지 않는다. 반복문은 인덱스 1, 2, 3의 값 11, 13, 17을 더한다. 합은 41이다.
  • 3번 ‘31’는 이 문항의 조건에 맞지 않는다. 반복문은 인덱스 1, 2, 3의 값 11, 13, 17을 더한다. 합은 41이다.
  • 4번 ‘37’는 이 문항의 조건에 맞지 않는다. 반복문은 인덱스 1, 2, 3의 값 11, 13, 17을 더한다. 합은 41이다.

정답 판정: 정답 판정: 반복문은 인덱스 1, 2, 3의 값 11, 13, 17을 더한다. 합은 41이다. 검증 기준: 한 배열 안의 포인터 인덱싱과 반복 범위를 재계산한다. 원문 대조: p[i]는 *(p+i)와 같으므로 인덱스 1·2·3의 합을 계산한다.

독립 계산·실행 추적: 반복 인덱스는 1,2,3이고 p[i] 값은 11,13,17. 합계 11+13+17=41.

72. 다음 C 프로그램의 출력은?
“`c
#include <stdio.h>
int main(void){ int a[5]={5,10,15,20,25}; int i=0; int x=a[i++]; x+=a[++i]; int y=a[++i]; y+=a[i++]; printf("%d,%d",x,y); }
“`

  1. 15,35
  2. 20,40
  3. 20,45
  4. 25,45
정답과 해설 보기

정답: 2

첫 문장 뒤 i=1, 전위 증가 뒤 i=2여서 x=5+15=20이다. 다음 전위 증가로 i=3에서 y=20, 뒤 문장에서 a[3]을 더한 뒤 i=4가 되어 y=40이다.

선지별 해설

  • 1번 ‘15,35’는 이 문항의 조건에 맞지 않는다. 첫 문장 뒤 i=1, 전위 증가 뒤 i=2여서 x=5+15=20이다. 다음 전위 증가로 i=3에서 y=20, 뒤 문장에서 a[3]을 더한 뒤 i=4가 되어 y=40이다.
  • 2번은 정답 선지다. 첫 문장 뒤 i=1, 전위 증가 뒤 i=2여서 x=5+15=20이다. 다음 전위 증가로 i=3에서 y=20, 뒤 문장에서 a[3]을 더한 뒤 i=4가 되어 y=40이다.
  • 3번 ‘20,45’는 이 문항의 조건에 맞지 않는다. 첫 문장 뒤 i=1, 전위 증가 뒤 i=2여서 x=5+15=20이다. 다음 전위 증가로 i=3에서 y=20, 뒤 문장에서 a[3]을 더한 뒤 i=4가 되어 y=40이다.
  • 4번 ‘25,45’는 이 문항의 조건에 맞지 않는다. 첫 문장 뒤 i=1, 전위 증가 뒤 i=2여서 x=5+15=20이다. 다음 전위 증가로 i=3에서 y=20, 뒤 문장에서 a[3]을 더한 뒤 i=4가 되어 y=40이다.

정답 판정: 정답 판정: 첫 문장 뒤 i=1, 전위 증가 뒤 i=2여서 x=5+15=20이다. 다음 전위 증가로 i=3에서 y=20, 뒤 문장에서 a[3]을 더한 뒤 i=4가 되어 y=40이다. 검증 기준: 각 문장 경계에서 전위·후위 증가의 순서를 추적해 계산한다. 원문 대조: 각 full expression 경계에서 전위·후위 증가 결과를 순서대로 추적한다.

독립 계산·실행 추적: i=0: x=a[0]=5 후 i=1. ++i로 i=2, x=20. 다시 ++i로 i=3, y=20. y+=a[3] 후 i=4이므로 y=40.

73. 다음 C 프로그램의 출력 문자는?
“`c
#include <stdio.h>
int main(void){ char c='0'+7; printf("%c",c); }
“`

  1. 0
  2. 7
  3. 55
  4. 오류
정답과 해설 보기

정답: 2

C 실행 문자 집합에서 숫자 문자는 연속으로 배치된다. '0'에 7을 더한 문자 값은 '7'이다.

선지별 해설

  • 1번 ‘0’는 이 문항의 조건에 맞지 않는다. C 실행 문자 집합에서 숫자 문자는 연속으로 배치된다. '0'에 7을 더한 문자 값은 '7'이다.
  • 2번은 정답 선지다. C 실행 문자 집합에서 숫자 문자는 연속으로 배치된다. '0'에 7을 더한 문자 값은 '7'이다.
  • 3번 ‘55’는 이 문항의 조건에 맞지 않는다. C 실행 문자 집합에서 숫자 문자는 연속으로 배치된다. '0'에 7을 더한 문자 값은 '7'이다.
  • 4번 ‘오류’는 이 문항의 조건에 맞지 않는다. C 실행 문자 집합에서 숫자 문자는 연속으로 배치된다. '0'에 7을 더한 문자 값은 '7'이다.

정답 판정: 정답 판정: C 실행 문자 집합에서 숫자 문자는 연속으로 배치된다. '0'에 7을 더한 문자 값은 '7'이다. 검증 기준: C 표준이 보장하는 숫자 문자 코드의 연속성을 적용한다. 원문 대조: 기본 실행 문자 집합의 숫자 0부터 9는 연속 증가 값으로 보장된다.

독립 계산·실행 추적: 표준이 숫자 문자의 연속성을 보장하므로 '0'+7은 문자 '7'. printf %c는 그 문자를 출력한다.

74. C의 비트 단위 논리 연산자가 아닌 것은?

  1. ^
  2. ?
  3. &
  4. ~
정답과 해설 보기

정답: 2

^, &, ~는 각각 비트 XOR, AND, NOT 연산자다. ?는 조건 연산자 ?:의 일부이며 비트 연산자가 아니다.

선지별 해설

  • 1번 ‘^’는 이 문항의 조건에 맞지 않는다. ^, &, ~는 각각 비트 XOR, AND, NOT 연산자다. ?는 조건 연산자 ?:의 일부이며 비트 연산자가 아니다.
  • 2번은 정답 선지다. ^, &, ~는 각각 비트 XOR, AND, NOT 연산자다. ?는 조건 연산자 ?:의 일부이며 비트 연산자가 아니다.
  • 3번 ‘&’는 이 문항의 조건에 맞지 않는다. ^, &, ~는 각각 비트 XOR, AND, NOT 연산자다. ?는 조건 연산자 ?:의 일부이며 비트 연산자가 아니다.
  • 4번 ‘~’는 이 문항의 조건에 맞지 않는다. ^, &, ~는 각각 비트 XOR, AND, NOT 연산자다. ?는 조건 연산자 ?:의 일부이며 비트 연산자가 아니다.

정답 판정: 정답 판정: ^, &, ~는 각각 비트 XOR, AND, NOT 연산자다. ?는 조건 연산자 ?:의 일부이며 비트 연산자가 아니다. 검증 기준: C 연산자 토큰과 비트 연산 분류를 적용한다. 원문 대조: ~, &, ^는 비트 연산이고 ?는 조건 연산자 ?:의 일부다.

75. 프레임 3개가 비어 있고 FIFO를 사용한다. 참조열 1,2,3,1,4,2,5의 페이지 부재 횟수는?

  1. 4회
  2. 5회
  3. 6회
  4. 7회
정답과 해설 보기

정답: 2

1, 2, 3을 처음 읽을 때 세 번 발생하고 1은 적중한다. 이어 4가 가장 오래된 1을, 5가 그다음 오래된 2를 교체하므로 두 번이 추가되어 총 5회다.

선지별 해설

  • 1번 ‘4회’는 이 문항의 조건에 맞지 않는다. 1, 2, 3을 처음 읽을 때 세 번 발생하고 1은 적중한다. 이어 4가 가장 오래된 1을, 5가 그다음 오래된 2를 교체하므로 두 번이 추가되어 총 5회다.
  • 2번은 정답 선지다. 1, 2, 3을 처음 읽을 때 세 번 발생하고 1은 적중한다. 이어 4가 가장 오래된 1을, 5가 그다음 오래된 2를 교체하므로 두 번이 추가되어 총 5회다.
  • 3번 ‘6회’는 이 문항의 조건에 맞지 않는다. 1, 2, 3을 처음 읽을 때 세 번 발생하고 1은 적중한다. 이어 4가 가장 오래된 1을, 5가 그다음 오래된 2를 교체하므로 두 번이 추가되어 총 5회다.
  • 4번 ‘7회’는 이 문항의 조건에 맞지 않는다. 1, 2, 3을 처음 읽을 때 세 번 발생하고 1은 적중한다. 이어 4가 가장 오래된 1을, 5가 그다음 오래된 2를 교체하므로 두 번이 추가되어 총 5회다.

정답 판정: 정답 판정: 1, 2, 3을 처음 읽을 때 세 번 발생하고 1은 적중한다. 이어 4가 가장 오래된 1을, 5가 그다음 오래된 2를 교체하므로 두 번이 추가되어 총 5회다. 검증 기준: FIFO 큐가 적중 시 재정렬되지 않는 규칙으로 참조열을 재계산한다. 원문 대조: FIFO에서는 적중으로 순서가 바뀌지 않으며 가장 먼저 적재된 페이지부터 교체한다.

독립 계산·실행 추적: 빈 프레임: 1(F),2(F),3(F),1(H),4(F·1교체),2(H),5(F·2교체)로 부재는 총 5회.

76. 소프트웨어 프레임워크에 대한 설명으로 옳은 것은?

  1. 반복 사용 가능한 기본 구조와 제어 흐름을 제공한다
  2. 정해진 구조 때문에 확장이 불가능하다
  3. 소프트웨어 아키텍처와 완전히 같은 말이다
  4. 모듈화를 사용할 수 없게 한다
정답과 해설 보기

정답: 1

프레임워크는 공통 구조와 확장 지점을 제공해 반복 구현을 줄인다. 애플리케이션은 규약에 맞춰 필요한 부분을 확장한다.

선지별 해설

  • 1번은 정답 선지다. 프레임워크는 공통 구조와 확장 지점을 제공해 반복 구현을 줄인다. 애플리케이션은 규약에 맞춰 필요한 부분을 확장한다.
  • 2번 ‘정해진 구조 때문에 확장이 불가능하다’는 이 문항의 조건에 맞지 않는다. 프레임워크는 공통 구조와 확장 지점을 제공해 반복 구현을 줄인다. 애플리케이션은 규약에 맞춰 필요한 부분을 확장한다.
  • 3번 ‘소프트웨어 아키텍처와 완전히 같은 말이다’는 이 문항의 조건에 맞지 않는다. 프레임워크는 공통 구조와 확장 지점을 제공해 반복 구현을 줄인다. 애플리케이션은 규약에 맞춰 필요한 부분을 확장한다.
  • 4번 ‘모듈화를 사용할 수 없게 한다’는 이 문항의 조건에 맞지 않는다. 프레임워크는 공통 구조와 확장 지점을 제공해 반복 구현을 줄인다. 애플리케이션은 규약에 맞춰 필요한 부분을 확장한다.

정답 판정: 정답 판정: 프레임워크는 공통 구조와 확장 지점을 제공해 반복 구현을 줄인다. 애플리케이션은 규약에 맞춰 필요한 부분을 확장한다. 검증 기준: 프레임워크의 재사용 구조와 inversion of control 성격을 적용한다. 원문 대조: 프레임워크는 재사용 기반 구조와 확장 API를 제공해 애플리케이션별 부분을 구현하게 한다.

77. Java에서 예외에 대한 설명으로 틀린 것은?

  1. 모든 문법 오류는 실행 중 예외 객체로만 처리된다
  2. 배열 범위를 넘으면 실행 중 예외가 발생할 수 있다
  3. 없는 파일을 열면 예외가 발생할 수 있다
  4. 예외는 정상 흐름과 별도로 처리할 수 있다
정답과 해설 보기

정답: 1

문법 오류는 일반적으로 컴파일 단계에서 거부되며 실행 중 예외와 구별된다. 배열 범위와 파일 입출력 문제는 실행 중 예외가 될 수 있다.

선지별 해설

  • 1번은 정답 선지다. 문법 오류는 일반적으로 컴파일 단계에서 거부되며 실행 중 예외와 구별된다. 배열 범위와 파일 입출력 문제는 실행 중 예외가 될 수 있다.
  • 2번 ‘배열 범위를 넘으면 실행 중 예외가 발생할 수 있다’는 이 문항의 조건에 맞지 않는다. 문법 오류는 일반적으로 컴파일 단계에서 거부되며 실행 중 예외와 구별된다. 배열 범위와 파일 입출력 문제는 실행 중 예외가 될 수 있다.
  • 3번 ‘없는 파일을 열면 예외가 발생할 수 있다’는 이 문항의 조건에 맞지 않는다. 문법 오류는 일반적으로 컴파일 단계에서 거부되며 실행 중 예외와 구별된다. 배열 범위와 파일 입출력 문제는 실행 중 예외가 될 수 있다.
  • 4번 ‘예외는 정상 흐름과 별도로 처리할 수 있다’는 이 문항의 조건에 맞지 않는다. 문법 오류는 일반적으로 컴파일 단계에서 거부되며 실행 중 예외와 구별된다. 배열 범위와 파일 입출력 문제는 실행 중 예외가 될 수 있다.

정답 판정: 정답 판정: 문법 오류는 일반적으로 컴파일 단계에서 거부되며 실행 중 예외와 구별된다. 배열 범위와 파일 입출력 문제는 실행 중 예외가 될 수 있다. 검증 기준: Java 컴파일 시간 오류와 런타임 예외를 구분한다. 원문 대조: 문법 오류는 컴파일 단계 진단이고 배열 범위 오류 등은 실행 시 예외다.

78. Python 조건문에서 앞선 if가 거짓일 때 다른 조건을 이어 검사하는 키워드는?

  1. either
  2. elif
  3. else if
  4. switch
정답과 해설 보기

정답: 2

Python은 else if 대신 elif를 사용해 추가 조건 분기를 연결한다.

선지별 해설

  • 1번 ‘either’는 이 문항의 조건에 맞지 않는다. Python은 else if 대신 elif를 사용해 추가 조건 분기를 연결한다.
  • 2번은 정답 선지다. Python은 else if 대신 elif를 사용해 추가 조건 분기를 연결한다.
  • 3번 ‘else if’는 이 문항의 조건에 맞지 않는다. Python은 else if 대신 elif를 사용해 추가 조건 분기를 연결한다.
  • 4번 ‘switch’는 이 문항의 조건에 맞지 않는다. Python은 else if 대신 elif를 사용해 추가 조건 분기를 연결한다.

정답 판정: 정답 판정: Python은 else if 대신 elif를 사용해 추가 조건 분기를 연결한다. 검증 기준: Python 복합문 if·elif·else 문법을 적용한다. 원문 대조: Python 문법은 이어지는 조건을 elif 절로 표현한다.

79. OSI 계층 중 종단 시스템 사이의 신뢰성 있는 전달, 흐름 제어, 다중화를 담당하는 계층은?

  1. 전송 계층
  2. 응용 계층
  3. 세션 계층
  4. 표현 계층
정답과 해설 보기

정답: 1

전송 계층은 종단 간 데이터 전달을 제공하며 프로토콜에 따라 오류 복구, 흐름 제어, 포트 다중화를 수행한다.

선지별 해설

  • 1번은 정답 선지다. 전송 계층은 종단 간 데이터 전달을 제공하며 프로토콜에 따라 오류 복구, 흐름 제어, 포트 다중화를 수행한다.
  • 2번 ‘응용 계층’는 이 문항의 조건에 맞지 않는다. 전송 계층은 종단 간 데이터 전달을 제공하며 프로토콜에 따라 오류 복구, 흐름 제어, 포트 다중화를 수행한다.
  • 3번 ‘세션 계층’는 이 문항의 조건에 맞지 않는다. 전송 계층은 종단 간 데이터 전달을 제공하며 프로토콜에 따라 오류 복구, 흐름 제어, 포트 다중화를 수행한다.
  • 4번 ‘표현 계층’는 이 문항의 조건에 맞지 않는다. 전송 계층은 종단 간 데이터 전달을 제공하며 프로토콜에 따라 오류 복구, 흐름 제어, 포트 다중화를 수행한다.

정답 판정: 정답 판정: 전송 계층은 종단 간 데이터 전달을 제공하며 프로토콜에 따라 오류 복구, 흐름 제어, 포트 다중화를 수행한다. 검증 기준: OSI 전송 계층의 end-to-end 책임을 구분한다. 원문 대조: 전송 계층은 종단 시스템 간 전송, 다중화 및 서비스 품질을 제공한다.

80. 다음 C 프로그램의 출력은?
“`c
#include <stdio.h>
struct S{int total; int v[6];};
int main(void){struct S s={0,{1,2,3,4,5,6}}; for(int i=0;i<6;i+=2)s.total+=s.v[i]*2; printf("%d",s.total);}
“`

  1. 9
  2. 12
  3. 18
  4. 24
정답과 해설 보기

정답: 3

인덱스 0, 2, 4의 값 1, 3, 5를 더해 9가 되고 각각 두 배를 누적하므로 결과는 18이다.

선지별 해설

  • 1번 ‘9’는 이 문항의 조건에 맞지 않는다. 인덱스 0, 2, 4의 값 1, 3, 5를 더해 9가 되고 각각 두 배를 누적하므로 결과는 18이다.
  • 2번 ‘12’는 이 문항의 조건에 맞지 않는다. 인덱스 0, 2, 4의 값 1, 3, 5를 더해 9가 되고 각각 두 배를 누적하므로 결과는 18이다.
  • 3번은 정답 선지다. 인덱스 0, 2, 4의 값 1, 3, 5를 더해 9가 되고 각각 두 배를 누적하므로 결과는 18이다.
  • 4번 ‘24’는 이 문항의 조건에 맞지 않는다. 인덱스 0, 2, 4의 값 1, 3, 5를 더해 9가 되고 각각 두 배를 누적하므로 결과는 18이다.

정답 판정: 정답 판정: 인덱스 0, 2, 4의 값 1, 3, 5를 더해 9가 되고 각각 두 배를 누적하므로 결과는 18이다. 검증 기준: 구조체 배열의 짝수 인덱스 접근과 누적식을 재계산한다. 원문 대조: 구조체 멤버 배열의 인덱스 0·2·4를 읽어 누적식을 계산한다.

독립 계산·실행 추적: i=0,2,4에서 1×2 + 3×2 + 5×2 = 2+6+10 = 18.

정보처리기사 필기 기출문제 · 정보시스템 구축관리

81. 암호화와 복호화에 같은 비밀키를 사용하는 알고리즘은?

  1. RSA
  2. ECC
  3. AES
  4. ElGamal
정답과 해설 보기

정답: 3

AES는 동일한 비밀키를 이용하는 대칭키 블록 암호다. RSA, ECC, ElGamal은 공개키 암호 계열이다.

선지별 해설

  • 1번 ‘RSA’는 이 문항의 조건에 맞지 않는다. AES는 동일한 비밀키를 이용하는 대칭키 블록 암호다. RSA, ECC, ElGamal은 공개키 암호 계열이다.
  • 2번 ‘ECC’는 이 문항의 조건에 맞지 않는다. AES는 동일한 비밀키를 이용하는 대칭키 블록 암호다. RSA, ECC, ElGamal은 공개키 암호 계열이다.
  • 3번은 정답 선지다. AES는 동일한 비밀키를 이용하는 대칭키 블록 암호다. RSA, ECC, ElGamal은 공개키 암호 계열이다.
  • 4번 ‘ElGamal’는 이 문항의 조건에 맞지 않는다. AES는 동일한 비밀키를 이용하는 대칭키 블록 암호다. RSA, ECC, ElGamal은 공개키 암호 계열이다.

정답 판정: 정답 판정: AES는 동일한 비밀키를 이용하는 대칭키 블록 암호다. RSA, ECC, ElGamal은 공개키 암호 계열이다. 검증 기준: FIPS 197의 AES 키 구조와 공개키 암호 계열을 구분한다. 원문 대조: AES는 같은 secret key를 사용하는 symmetric block cipher다.

82. 사용자 입력을 문자열 연결로 SQL에 넣는 Java 코드의 SQL 삽입 위험을 직접 줄이는 방법은?

  1. 출력 HTML만 이스케이프한다
  2. PreparedStatement의 바인딩 변수로 값을 전달한다
  3. 로그인마다 세션 ID만 바꾼다
  4. 전송 구간에 TLS만 적용한다
정답과 해설 보기

정답: 2

매개변수화 질의는 SQL 구조와 데이터 값을 분리해 입력이 명령으로 해석되는 것을 막는다. 출력 인코딩, 세션 교체, TLS는 이 취약점의 직접 대책이 아니다.

선지별 해설

  • 1번 ‘출력 HTML만 이스케이프한다’는 이 문항의 조건에 맞지 않는다. 매개변수화 질의는 SQL 구조와 데이터 값을 분리해 입력이 명령으로 해석되는 것을 막는다. 출력 인코딩, 세션 교체, TLS는 이 취약점의 직접 대책이 아니다.
  • 2번은 정답 선지다. 매개변수화 질의는 SQL 구조와 데이터 값을 분리해 입력이 명령으로 해석되는 것을 막는다. 출력 인코딩, 세션 교체, TLS는 이 취약점의 직접 대책이 아니다.
  • 3번 ‘로그인마다 세션 ID만 바꾼다’는 이 문항의 조건에 맞지 않는다. 매개변수화 질의는 SQL 구조와 데이터 값을 분리해 입력이 명령으로 해석되는 것을 막는다. 출력 인코딩, 세션 교체, TLS는 이 취약점의 직접 대책이 아니다.
  • 4번 ‘전송 구간에 TLS만 적용한다’는 이 문항의 조건에 맞지 않는다. 매개변수화 질의는 SQL 구조와 데이터 값을 분리해 입력이 명령으로 해석되는 것을 막는다. 출력 인코딩, 세션 교체, TLS는 이 취약점의 직접 대책이 아니다.

정답 판정: 정답 판정: 매개변수화 질의는 SQL 구조와 데이터 값을 분리해 입력이 명령으로 해석되는 것을 막는다. 출력 인코딩, 세션 교체, TLS는 이 취약점의 직접 대책이 아니다. 검증 기준: OWASP의 prepared statement와 parameterized query 권고를 적용한다. 원문 대조: 매개변수화 질의는 코드와 데이터를 분리해 SQL 삽입을 직접 차단한다.

83. 개별 급여를 그대로 제공하지 않고 부서별 평균 급여로 바꿔 분석 자료를 만드는 비식별 처리 방식은?

  1. 가명처리
  2. 총계처리
  3. 마스킹
  4. 난수화
정답과 해설 보기

정답: 2

총계처리는 개별 값을 합계나 평균 같은 집계값으로 대체해 개인 단위 정보의 노출을 줄인다.

선지별 해설

  • 1번 ‘가명처리’는 이 문항의 조건에 맞지 않는다. 총계처리는 개별 값을 합계나 평균 같은 집계값으로 대체해 개인 단위 정보의 노출을 줄인다.
  • 2번은 정답 선지다. 총계처리는 개별 값을 합계나 평균 같은 집계값으로 대체해 개인 단위 정보의 노출을 줄인다.
  • 3번 ‘마스킹’는 이 문항의 조건에 맞지 않는다. 총계처리는 개별 값을 합계나 평균 같은 집계값으로 대체해 개인 단위 정보의 노출을 줄인다.
  • 4번 ‘난수화’는 이 문항의 조건에 맞지 않는다. 총계처리는 개별 값을 합계나 평균 같은 집계값으로 대체해 개인 단위 정보의 노출을 줄인다.

정답 판정: 정답 판정: 총계처리는 개별 값을 합계나 평균 같은 집계값으로 대체해 개인 단위 정보의 노출을 줄인다. 검증 기준: 비식별 기법 중 aggregation의 집계 대체 특성을 적용한다. 원문 대조: 개별 값을 평균 같은 집계값으로 바꾸는 방식은 aggregation/총계처리다.

84. 개발 방법론 테일러링에 대한 설명으로 틀린 것은?

  1. 예상되는 변화는 배제하고 원래 절차를 그대로 따른다
  2. 프로젝트 규모와 위험에 맞춰 절차와 산출물을 조정한다
  3. 불필요한 활동은 근거를 남기고 축소할 수 있다
  4. 필요한 품질·통제 활동은 강화할 수 있다
정답과 해설 보기

정답: 1

테일러링은 프로젝트 특성에 맞게 방법론을 조정하는 활동이다. 변화를 배제하고 원형을 무조건 유지하는 것은 목적과 반대다.

선지별 해설

  • 1번은 정답 선지다. 테일러링은 프로젝트 특성에 맞게 방법론을 조정하는 활동이다. 변화를 배제하고 원형을 무조건 유지하는 것은 목적과 반대다.
  • 2번 ‘프로젝트 규모와 위험에 맞춰 절차와 산출물을 조정한다’는 이 문항의 조건에 맞지 않는다. 테일러링은 프로젝트 특성에 맞게 방법론을 조정하는 활동이다. 변화를 배제하고 원형을 무조건 유지하는 것은 목적과 반대다.
  • 3번 ‘불필요한 활동은 근거를 남기고 축소할 수 있다’는 이 문항의 조건에 맞지 않는다. 테일러링은 프로젝트 특성에 맞게 방법론을 조정하는 활동이다. 변화를 배제하고 원형을 무조건 유지하는 것은 목적과 반대다.
  • 4번 ‘필요한 품질·통제 활동은 강화할 수 있다’는 이 문항의 조건에 맞지 않는다. 테일러링은 프로젝트 특성에 맞게 방법론을 조정하는 활동이다. 변화를 배제하고 원형을 무조건 유지하는 것은 목적과 반대다.

정답 판정: 정답 판정: 테일러링은 프로젝트 특성에 맞게 방법론을 조정하는 활동이다. 변화를 배제하고 원형을 무조건 유지하는 것은 목적과 반대다. 검증 기준: 방법론 테일러링의 프로젝트 적합화 원칙을 적용한다. 원문 대조: 방법론은 프로젝트 범위·요구·위험에 맞게 조정해야 하므로 무조건 원형 유지가 틀리다.

85. 호스트로 들어오는 TCP 연결을 서비스·클라이언트 주소 규칙에 따라 허용하거나 거부하는 전통적 접근제어 도구는?

  1. TCP Wrapper
  2. Trace Checker
  3. Token Finder
  4. Change Detector
정답과 해설 보기

정답: 1

TCP Wrapper는 inetd 계열 서비스 앞에서 hosts.allow와 hosts.deny 같은 규칙을 이용해 접속을 통제해 왔다.

선지별 해설

  • 1번은 정답 선지다. TCP Wrapper는 inetd 계열 서비스 앞에서 hosts.allow와 hosts.deny 같은 규칙을 이용해 접속을 통제해 왔다.
  • 2번 ‘Trace Checker’는 이 문항의 조건에 맞지 않는다. TCP Wrapper는 inetd 계열 서비스 앞에서 hosts.allow와 hosts.deny 같은 규칙을 이용해 접속을 통제해 왔다.
  • 3번 ‘Token Finder’는 이 문항의 조건에 맞지 않는다. TCP Wrapper는 inetd 계열 서비스 앞에서 hosts.allow와 hosts.deny 같은 규칙을 이용해 접속을 통제해 왔다.
  • 4번 ‘Change Detector’는 이 문항의 조건에 맞지 않는다. TCP Wrapper는 inetd 계열 서비스 앞에서 hosts.allow와 hosts.deny 같은 규칙을 이용해 접속을 통제해 왔다.

정답 판정: 정답 판정: TCP Wrapper는 inetd 계열 서비스 앞에서 hosts.allow와 hosts.deny 같은 규칙을 이용해 접속을 통제해 왔다. 검증 기준: 호스트 기반 네트워크 서비스 접근통제 도구의 역할을 적용한다. 원문 대조: tcpd는 서비스와 클라이언트 주소 규칙으로 연결을 허용·거부하는 wrapper daemon이다.

86. 대량 데이터에서 변수 사이 관계와 반복 패턴을 찾아 분류·예측 등에 활용하는 분석 기술은?

  1. 데이터 마이닝
  2. WM-Bus
  3. 디지털 트윈
  4. Zigbee
정답과 해설 보기

정답: 1

데이터 마이닝은 많은 데이터에서 유용한 패턴과 관계를 발견하는 분석 과정이다. 나머지는 통신 또는 시스템 모델 관련 용어다.

선지별 해설

  • 1번은 정답 선지다. 데이터 마이닝은 많은 데이터에서 유용한 패턴과 관계를 발견하는 분석 과정이다. 나머지는 통신 또는 시스템 모델 관련 용어다.
  • 2번 ‘WM-Bus’는 이 문항의 조건에 맞지 않는다. 데이터 마이닝은 많은 데이터에서 유용한 패턴과 관계를 발견하는 분석 과정이다. 나머지는 통신 또는 시스템 모델 관련 용어다.
  • 3번 ‘디지털 트윈’는 이 문항의 조건에 맞지 않는다. 데이터 마이닝은 많은 데이터에서 유용한 패턴과 관계를 발견하는 분석 과정이다. 나머지는 통신 또는 시스템 모델 관련 용어다.
  • 4번 ‘Zigbee’는 이 문항의 조건에 맞지 않는다. 데이터 마이닝은 많은 데이터에서 유용한 패턴과 관계를 발견하는 분석 과정이다. 나머지는 통신 또는 시스템 모델 관련 용어다.

정답 판정: 정답 판정: 데이터 마이닝은 많은 데이터에서 유용한 패턴과 관계를 발견하는 분석 과정이다. 나머지는 통신 또는 시스템 모델 관련 용어다. 검증 기준: 데이터 마이닝의 패턴 발견 목적을 적용한다. 원문 대조: 대량 데이터의 관계·패턴 발견과 분류·예측 활용이 data mining이다.

87. 범용 서버 여러 대에 데이터를 분산 저장하고 병렬 처리하기 위한 오픈 소스 생태계는?

  1. Hadoop
  2. Beacon
  3. Foursquare
  4. Memristor
정답과 해설 보기

정답: 1

Apache Hadoop은 분산 파일 시스템과 분산 처리 구성요소를 제공해 대규모 데이터를 여러 노드에서 저장·처리한다.

선지별 해설

  • 1번은 정답 선지다. Apache Hadoop은 분산 파일 시스템과 분산 처리 구성요소를 제공해 대규모 데이터를 여러 노드에서 저장·처리한다.
  • 2번 ‘Beacon’는 이 문항의 조건에 맞지 않는다. Apache Hadoop은 분산 파일 시스템과 분산 처리 구성요소를 제공해 대규모 데이터를 여러 노드에서 저장·처리한다.
  • 3번 ‘Foursquare’는 이 문항의 조건에 맞지 않는다. Apache Hadoop은 분산 파일 시스템과 분산 처리 구성요소를 제공해 대규모 데이터를 여러 노드에서 저장·처리한다.
  • 4번 ‘Memristor’는 이 문항의 조건에 맞지 않는다. Apache Hadoop은 분산 파일 시스템과 분산 처리 구성요소를 제공해 대규모 데이터를 여러 노드에서 저장·처리한다.

정답 판정: 정답 판정: Apache Hadoop은 분산 파일 시스템과 분산 처리 구성요소를 제공해 대규모 데이터를 여러 노드에서 저장·처리한다. 검증 기준: Apache Hadoop 공식 문서의 분산 저장·처리 목적을 적용한다. 원문 대조: Hadoop은 범용 서버 클러스터에 분산 저장·병렬 처리 기능을 제공한다.

88. 여러 서버를 묶어 한 노드 장애 시 다른 노드가 서비스를 이어받게 하는 구성의 주목적은?

  1. 고가용성
  2. 단일 지점 연결
  3. 패킷 라우팅
  4. 악성코드 확산
정답과 해설 보기

정답: 1

고가용성 클러스터는 장애 감지와 서비스 전환으로 중단 시간을 줄인다. 성능 향상만이 아니라 서비스 연속성이 핵심이다.

선지별 해설

  • 1번은 정답 선지다. 고가용성 클러스터는 장애 감지와 서비스 전환으로 중단 시간을 줄인다. 성능 향상만이 아니라 서비스 연속성이 핵심이다.
  • 2번 ‘단일 지점 연결’는 이 문항의 조건에 맞지 않는다. 고가용성 클러스터는 장애 감지와 서비스 전환으로 중단 시간을 줄인다. 성능 향상만이 아니라 서비스 연속성이 핵심이다.
  • 3번 ‘패킷 라우팅’는 이 문항의 조건에 맞지 않는다. 고가용성 클러스터는 장애 감지와 서비스 전환으로 중단 시간을 줄인다. 성능 향상만이 아니라 서비스 연속성이 핵심이다.
  • 4번 ‘악성코드 확산’는 이 문항의 조건에 맞지 않는다. 고가용성 클러스터는 장애 감지와 서비스 전환으로 중단 시간을 줄인다. 성능 향상만이 아니라 서비스 연속성이 핵심이다.

정답 판정: 정답 판정: 고가용성 클러스터는 장애 감지와 서비스 전환으로 중단 시간을 줄인다. 성능 향상만이 아니라 서비스 연속성이 핵심이다. 검증 기준: availability와 failover의 관계를 적용한다. 원문 대조: 노드 장애 때 서비스를 전환해 중단을 줄이는 목적은 availability와 continuity다.

89. 파일을 암호화하거나 시스템을 잠근 뒤 복구 대가로 금전을 요구하는 악성코드는?

  1. 포맷 문자열
  2. 랜섬웨어
  3. 버퍼 오버플로
  4. 애드웨어
정답과 해설 보기

정답: 2

랜섬웨어는 데이터나 시스템의 사용을 막고 금전을 요구하는 악성코드 유형이다.

선지별 해설

  • 1번 ‘포맷 문자열’는 이 문항의 조건에 맞지 않는다. 랜섬웨어는 데이터나 시스템의 사용을 막고 금전을 요구하는 악성코드 유형이다.
  • 2번은 정답 선지다. 랜섬웨어는 데이터나 시스템의 사용을 막고 금전을 요구하는 악성코드 유형이다.
  • 3번 ‘버퍼 오버플로’는 이 문항의 조건에 맞지 않는다. 랜섬웨어는 데이터나 시스템의 사용을 막고 금전을 요구하는 악성코드 유형이다.
  • 4번 ‘애드웨어’는 이 문항의 조건에 맞지 않는다. 랜섬웨어는 데이터나 시스템의 사용을 막고 금전을 요구하는 악성코드 유형이다.

정답 판정: 정답 판정: 랜섬웨어는 데이터나 시스템의 사용을 막고 금전을 요구하는 악성코드 유형이다. 검증 기준: 사이버보안 용어집의 ransomware 정의를 적용한다. 원문 대조: 데이터 접근을 막고 대가를 요구하는 악성 소프트웨어가 ransomware다.

90. 정보보안의 CIA 3요소에 포함되지 않는 것은?

  1. 기밀성
  2. 무결성
  3. 가용성
  4. 휘발성
정답과 해설 보기

정답: 4

CIA는 Confidentiality, Integrity, Availability의 머리글자다. 휘발성은 이 세 보안 목표에 포함되지 않는다.

선지별 해설

  • 1번 ‘기밀성’는 이 문항의 조건에 맞지 않는다. CIA는 Confidentiality, Integrity, Availability의 머리글자다. 휘발성은 이 세 보안 목표에 포함되지 않는다.
  • 2번 ‘무결성’는 이 문항의 조건에 맞지 않는다. CIA는 Confidentiality, Integrity, Availability의 머리글자다. 휘발성은 이 세 보안 목표에 포함되지 않는다.
  • 3번 ‘가용성’는 이 문항의 조건에 맞지 않는다. CIA는 Confidentiality, Integrity, Availability의 머리글자다. 휘발성은 이 세 보안 목표에 포함되지 않는다.
  • 4번은 정답 선지다. CIA는 Confidentiality, Integrity, Availability의 머리글자다. 휘발성은 이 세 보안 목표에 포함되지 않는다.

정답 판정: 정답 판정: CIA는 Confidentiality, Integrity, Availability의 머리글자다. 휘발성은 이 세 보안 목표에 포함되지 않는다. 검증 기준: NIST 보안 목표의 기밀성·무결성·가용성 정의를 대조한다. 원문 대조: 보안 목표는 confidentiality, integrity, availability 세 가지이며 volatility는 없다.

91. 운영체제 보안 강화 방안으로 가장 부적절한 것은?

  1. 기본 관리자 계정 이름과 설정을 그대로 유지한다
  2. 반복 로그인 실패 시 잠금 정책을 둔다
  3. 불필요한 서비스를 중지한다
  4. 보안 업데이트를 검토해 적용한다
정답과 해설 보기

정답: 1

기본 관리자 계정을 그대로 노출하고 설정을 유지하면 공격자가 예측할 정보를 남긴다. 잠금, 서비스 최소화, 패치 관리는 일반적인 강화 조치다.

선지별 해설

  • 1번은 정답 선지다. 기본 관리자 계정을 그대로 노출하고 설정을 유지하면 공격자가 예측할 정보를 남긴다. 잠금, 서비스 최소화, 패치 관리는 일반적인 강화 조치다.
  • 2번 ‘반복 로그인 실패 시 잠금 정책을 둔다’는 이 문항의 조건에 맞지 않는다. 기본 관리자 계정을 그대로 노출하고 설정을 유지하면 공격자가 예측할 정보를 남긴다. 잠금, 서비스 최소화, 패치 관리는 일반적인 강화 조치다.
  • 3번 ‘불필요한 서비스를 중지한다’는 이 문항의 조건에 맞지 않는다. 기본 관리자 계정을 그대로 노출하고 설정을 유지하면 공격자가 예측할 정보를 남긴다. 잠금, 서비스 최소화, 패치 관리는 일반적인 강화 조치다.
  • 4번 ‘보안 업데이트를 검토해 적용한다’는 이 문항의 조건에 맞지 않는다. 기본 관리자 계정을 그대로 노출하고 설정을 유지하면 공격자가 예측할 정보를 남긴다. 잠금, 서비스 최소화, 패치 관리는 일반적인 강화 조치다.

정답 판정: 정답 판정: 기본 관리자 계정을 그대로 노출하고 설정을 유지하면 공격자가 예측할 정보를 남긴다. 잠금, 서비스 최소화, 패치 관리는 일반적인 강화 조치다. 검증 기준: 계정·서비스·패치 최소화에 기반한 시스템 강화 원칙을 적용한다. 원문 대조: 계정·서비스 최소화와 패치 적용이 강화 조치이므로 기본 관리자 설정 방치는 부적절하다.

92. 앞 암호문 블록을 블록 암호 입력으로 되먹이고 그 출력과 평문을 XOR해 암호문을 만드는 모드는?

  1. ECB
  2. CBC
  3. CFB
  4. OFB
정답과 해설 보기

정답: 3

CFB는 이전 암호문을 암호화한 출력과 현재 평문을 XOR한다. 블록 암호를 스트림처럼 사용할 수 있고 전체 블록 패딩이 필수는 아니다.

선지별 해설

  • 1번 ‘ECB’는 이 문항의 조건에 맞지 않는다. CFB는 이전 암호문을 암호화한 출력과 현재 평문을 XOR한다. 블록 암호를 스트림처럼 사용할 수 있고 전체 블록 패딩이 필수는 아니다.
  • 2번 ‘CBC’는 이 문항의 조건에 맞지 않는다. CFB는 이전 암호문을 암호화한 출력과 현재 평문을 XOR한다. 블록 암호를 스트림처럼 사용할 수 있고 전체 블록 패딩이 필수는 아니다.
  • 3번은 정답 선지다. CFB는 이전 암호문을 암호화한 출력과 현재 평문을 XOR한다. 블록 암호를 스트림처럼 사용할 수 있고 전체 블록 패딩이 필수는 아니다.
  • 4번 ‘OFB’는 이 문항의 조건에 맞지 않는다. CFB는 이전 암호문을 암호화한 출력과 현재 평문을 XOR한다. 블록 암호를 스트림처럼 사용할 수 있고 전체 블록 패딩이 필수는 아니다.

정답 판정: 정답 판정: CFB는 이전 암호문을 암호화한 출력과 현재 평문을 XOR한다. 블록 암호를 스트림처럼 사용할 수 있고 전체 블록 패딩이 필수는 아니다. 검증 기준: 블록 암호 운용 모드 CFB의 피드백 구조를 적용한다. 원문 대조: CFB는 이전 암호문을 암호화한 출력과 현재 평문을 XOR한다.

93. 승인되지 않은 방식으로 정보가 변경·삭제되지 않고 정확성과 완전성이 유지되는 성질은?

  1. 신뢰성
  2. 상호운용성
  3. 무결성
  4. 사용성
정답과 해설 보기

정답: 3

무결성은 정보가 부적절하게 변경되거나 파괴되지 않도록 정확성과 완전성을 보호하는 보안 목표다.

선지별 해설

  • 1번 ‘신뢰성’는 이 문항의 조건에 맞지 않는다. 무결성은 정보가 부적절하게 변경되거나 파괴되지 않도록 정확성과 완전성을 보호하는 보안 목표다.
  • 2번 ‘상호운용성’는 이 문항의 조건에 맞지 않는다. 무결성은 정보가 부적절하게 변경되거나 파괴되지 않도록 정확성과 완전성을 보호하는 보안 목표다.
  • 3번은 정답 선지다. 무결성은 정보가 부적절하게 변경되거나 파괴되지 않도록 정확성과 완전성을 보호하는 보안 목표다.
  • 4번 ‘사용성’는 이 문항의 조건에 맞지 않는다. 무결성은 정보가 부적절하게 변경되거나 파괴되지 않도록 정확성과 완전성을 보호하는 보안 목표다.

정답 판정: 정답 판정: 무결성은 정보가 부적절하게 변경되거나 파괴되지 않도록 정확성과 완전성을 보호하는 보안 목표다. 검증 기준: NIST의 integrity 정의를 적용한다. 원문 대조: 무결성은 부적절한 변경·파괴를 막고 정확성과 완전성을 보장하는 목표다.

94. 일반적인 위험관리 흐름으로 가장 자연스러운 것은?

  1. 분석·평가→계획→감시→식별
  2. 식별→분석·평가→대응 계획→감시·조치
  3. 계획→감시→식별→평가
  4. 감시→식별→계획→평가
정답과 해설 보기

정답: 2

먼저 위험을 식별하고 가능성과 영향을 분석·평가한 뒤 대응을 계획한다. 이후 지표와 대응 효과를 감시하며 필요한 조치를 수행한다.

선지별 해설

  • 1번 ‘분석·평가→계획→감시→식별’는 이 문항의 조건에 맞지 않는다. 먼저 위험을 식별하고 가능성과 영향을 분석·평가한 뒤 대응을 계획한다. 이후 지표와 대응 효과를 감시하며 필요한 조치를 수행한다.
  • 2번은 정답 선지다. 먼저 위험을 식별하고 가능성과 영향을 분석·평가한 뒤 대응을 계획한다. 이후 지표와 대응 효과를 감시하며 필요한 조치를 수행한다.
  • 3번 ‘계획→감시→식별→평가’는 이 문항의 조건에 맞지 않는다. 먼저 위험을 식별하고 가능성과 영향을 분석·평가한 뒤 대응을 계획한다. 이후 지표와 대응 효과를 감시하며 필요한 조치를 수행한다.
  • 4번 ‘감시→식별→계획→평가’는 이 문항의 조건에 맞지 않는다. 먼저 위험을 식별하고 가능성과 영향을 분석·평가한 뒤 대응을 계획한다. 이후 지표와 대응 효과를 감시하며 필요한 조치를 수행한다.

정답 판정: 정답 판정: 먼저 위험을 식별하고 가능성과 영향을 분석·평가한 뒤 대응을 계획한다. 이후 지표와 대응 효과를 감시하며 필요한 조치를 수행한다. 검증 기준: 위험 식별·평가·대응·모니터링의 선후 관계를 적용한다. 원문 대조: 위험을 식별·분석·평가하고 대응한 뒤 지속 감시하는 순서가 자연스럽다.

95. 작업 경로가 A-B-D=4+5+3일, A-C-D=6+2+3일, A-C-E=6+4일이다. 임계경로의 기간은?

  1. 10일
  2. 11일
  3. 12일
  4. 13일
정답과 해설 보기

정답: 3

각 경로 합은 12일, 11일, 10일이다. 가장 긴 A-B-D가 임계경로이며 전체 기간은 12일이다.

선지별 해설

  • 1번 ‘10일’는 이 문항의 조건에 맞지 않는다. 각 경로 합은 12일, 11일, 10일이다. 가장 긴 A-B-D가 임계경로이며 전체 기간은 12일이다.
  • 2번 ‘11일’는 이 문항의 조건에 맞지 않는다. 각 경로 합은 12일, 11일, 10일이다. 가장 긴 A-B-D가 임계경로이며 전체 기간은 12일이다.
  • 3번은 정답 선지다. 각 경로 합은 12일, 11일, 10일이다. 가장 긴 A-B-D가 임계경로이며 전체 기간은 12일이다.
  • 4번 ‘13일’는 이 문항의 조건에 맞지 않는다. 각 경로 합은 12일, 11일, 10일이다. 가장 긴 A-B-D가 임계경로이며 전체 기간은 12일이다.

정답 판정: 정답 판정: 각 경로 합은 12일, 11일, 10일이다. 가장 긴 A-B-D가 임계경로이며 전체 기간은 12일이다. 검증 기준: CPM에서 모든 시작-종료 경로의 기간을 합산해 최댓값을 선택한다. 원문 대조: 임계경로는 시작부터 종료까지 가장 긴 경로이므로 세 경로 합의 최댓값을 택한다.

독립 계산·실행 추적: A-B-D=4+5+3=12, A-C-D=6+2+3=11, A-C-E=6+4=10. 최장 경로는 12일.

96. 근거리 기기들이 제조사와 운영체제 차이를 넘어 서비스를 발견하고 통신하도록 만든 오픈 소스 프레임워크는?

  1. MEC
  2. AllJoyn
  3. NOMA
  4. NDN
정답과 해설 보기

정답: 2

AllJoyn은 근거리 기기와 애플리케이션 사이의 서비스 발견과 상호운용 통신을 지원하도록 공개된 프레임워크다.

선지별 해설

  • 1번 ‘MEC’는 이 문항의 조건에 맞지 않는다. AllJoyn은 근거리 기기와 애플리케이션 사이의 서비스 발견과 상호운용 통신을 지원하도록 공개된 프레임워크다.
  • 2번은 정답 선지다. AllJoyn은 근거리 기기와 애플리케이션 사이의 서비스 발견과 상호운용 통신을 지원하도록 공개된 프레임워크다.
  • 3번 ‘NOMA’는 이 문항의 조건에 맞지 않는다. AllJoyn은 근거리 기기와 애플리케이션 사이의 서비스 발견과 상호운용 통신을 지원하도록 공개된 프레임워크다.
  • 4번 ‘NDN’는 이 문항의 조건에 맞지 않는다. AllJoyn은 근거리 기기와 애플리케이션 사이의 서비스 발견과 상호운용 통신을 지원하도록 공개된 프레임워크다.

정답 판정: 정답 판정: AllJoyn은 근거리 기기와 애플리케이션 사이의 서비스 발견과 상호운용 통신을 지원하도록 공개된 프레임워크다. 검증 기준: AllJoyn 프로젝트의 장치 상호운용 목적을 적용한다. 원문 대조: AllJoyn은 근거리 장치가 플랫폼 차이를 넘어 서비스를 발견·통신하게 하는 오픈 소스 프레임워크다.

97. 서비스 자원이나 네트워크 연결을 고갈시키는 DoS 공격 기법이 아닌 것은?

  1. Land attack
  2. Teardrop
  3. Smurf
  4. Phishing
정답과 해설 보기

정답: 4

Land, Teardrop, Smurf는 패킷이나 트래픽을 악용한 서비스 거부 공격으로 분류된다. 피싱은 사용자를 속여 정보나 행위를 유도하는 사회공학 공격이다.

선지별 해설

  • 1번 ‘Land attack’는 이 문항의 조건에 맞지 않는다. Land, Teardrop, Smurf는 패킷이나 트래픽을 악용한 서비스 거부 공격으로 분류된다. 피싱은 사용자를 속여 정보나 행위를 유도하는 사회공학 공격이다.
  • 2번 ‘Teardrop’는 이 문항의 조건에 맞지 않는다. Land, Teardrop, Smurf는 패킷이나 트래픽을 악용한 서비스 거부 공격으로 분류된다. 피싱은 사용자를 속여 정보나 행위를 유도하는 사회공학 공격이다.
  • 3번 ‘Smurf’는 이 문항의 조건에 맞지 않는다. Land, Teardrop, Smurf는 패킷이나 트래픽을 악용한 서비스 거부 공격으로 분류된다. 피싱은 사용자를 속여 정보나 행위를 유도하는 사회공학 공격이다.
  • 4번은 정답 선지다. Land, Teardrop, Smurf는 패킷이나 트래픽을 악용한 서비스 거부 공격으로 분류된다. 피싱은 사용자를 속여 정보나 행위를 유도하는 사회공학 공격이다.

정답 판정: 정답 판정: Land, Teardrop, Smurf는 패킷이나 트래픽을 악용한 서비스 거부 공격으로 분류된다. 피싱은 사용자를 속여 정보나 행위를 유도하는 사회공학 공격이다. 검증 기준: DoS와 사회공학 공격의 목적·수단을 구분한다. 원문 대조: Land·Teardrop·Smurf는 서비스 자원 고갈·중단 수단이다.

98. 서버에 저장장치를 직접 연결하는 DAS에서 일반적으로 사용하는 저장장치 인터페이스가 아닌 것은?

  1. SATA
  2. SCSI
  3. NFS
  4. SAS
정답과 해설 보기

정답: 3

SATA, SCSI, SAS는 직접 연결 저장장치에 쓰이는 인터페이스 계열이다. NFS는 네트워크를 통해 파일을 공유하는 프로토콜이다.

선지별 해설

  • 1번 ‘SATA’는 이 문항의 조건에 맞지 않는다. SATA, SCSI, SAS는 직접 연결 저장장치에 쓰이는 인터페이스 계열이다. NFS는 네트워크를 통해 파일을 공유하는 프로토콜이다.
  • 2번 ‘SCSI’는 이 문항의 조건에 맞지 않는다. SATA, SCSI, SAS는 직접 연결 저장장치에 쓰이는 인터페이스 계열이다. NFS는 네트워크를 통해 파일을 공유하는 프로토콜이다.
  • 3번은 정답 선지다. SATA, SCSI, SAS는 직접 연결 저장장치에 쓰이는 인터페이스 계열이다. NFS는 네트워크를 통해 파일을 공유하는 프로토콜이다.
  • 4번 ‘SAS’는 이 문항의 조건에 맞지 않는다. SATA, SCSI, SAS는 직접 연결 저장장치에 쓰이는 인터페이스 계열이다. NFS는 네트워크를 통해 파일을 공유하는 프로토콜이다.

정답 판정: 정답 판정: SATA, SCSI, SAS는 직접 연결 저장장치에 쓰이는 인터페이스 계열이다. NFS는 네트워크를 통해 파일을 공유하는 프로토콜이다. 검증 기준: 직접 연결 저장장치 인터페이스와 네트워크 파일 시스템을 구분한다. 원문 대조: DAS는 장치를 컴퓨터에 직접 연결한다.

99. 공격 대상의 주소를 출발지로 위조한 ICMP 요청을 브로드캐스트망에 보내 다수 응답을 피해자에게 집중시키는 공격은?

  1. Teardrop
  2. Smishing
  3. Qshing
  4. Smurf
정답과 해설 보기

정답: 4

Smurf 공격은 ICMP 브로드캐스트와 출발지 주소 위조를 이용해 응답 트래픽을 피해자에게 증폭한다.

선지별 해설

  • 1번 ‘Teardrop’는 이 문항의 조건에 맞지 않는다. Smurf 공격은 ICMP 브로드캐스트와 출발지 주소 위조를 이용해 응답 트래픽을 피해자에게 증폭한다.
  • 2번 ‘Smishing’는 이 문항의 조건에 맞지 않는다. Smurf 공격은 ICMP 브로드캐스트와 출발지 주소 위조를 이용해 응답 트래픽을 피해자에게 증폭한다.
  • 3번 ‘Qshing’는 이 문항의 조건에 맞지 않는다. Smurf 공격은 ICMP 브로드캐스트와 출발지 주소 위조를 이용해 응답 트래픽을 피해자에게 증폭한다.
  • 4번은 정답 선지다. Smurf 공격은 ICMP 브로드캐스트와 출발지 주소 위조를 이용해 응답 트래픽을 피해자에게 증폭한다.

정답 판정: 정답 판정: Smurf 공격은 ICMP 브로드캐스트와 출발지 주소 위조를 이용해 응답 트래픽을 피해자에게 증폭한다. 검증 기준: ICMP 증폭형 Smurf 공격의 패킷 흐름을 적용한다. 원문 대조: 출발지를 피해자로 위조한 브로드캐스트 ICMP 요청으로 응답을 증폭하는 공격이 Smurf다.

100. Google Brain 팀에서 시작되어 공개된 기계학습용 오픈 소스 라이브러리는?

  1. Tajo
  2. One Seg
  3. Foursquare
  4. TensorFlow
정답과 해설 보기

정답: 4

TensorFlow는 Google Brain에서 시작된 오픈 소스 기계학습 플랫폼이다. 모델 정의, 학습, 배포를 위한 도구와 라이브러리를 제공한다.

선지별 해설

  • 1번 ‘Tajo’는 이 문항의 조건에 맞지 않는다. TensorFlow는 Google Brain에서 시작된 오픈 소스 기계학습 플랫폼이다. 모델 정의, 학습, 배포를 위한 도구와 라이브러리를 제공한다.
  • 2번 ‘One Seg’는 이 문항의 조건에 맞지 않는다. TensorFlow는 Google Brain에서 시작된 오픈 소스 기계학습 플랫폼이다. 모델 정의, 학습, 배포를 위한 도구와 라이브러리를 제공한다.
  • 3번 ‘Foursquare’는 이 문항의 조건에 맞지 않는다. TensorFlow는 Google Brain에서 시작된 오픈 소스 기계학습 플랫폼이다. 모델 정의, 학습, 배포를 위한 도구와 라이브러리를 제공한다.
  • 4번은 정답 선지다. TensorFlow는 Google Brain에서 시작된 오픈 소스 기계학습 플랫폼이다. 모델 정의, 학습, 배포를 위한 도구와 라이브러리를 제공한다.

정답 판정: 정답 판정: TensorFlow는 Google Brain에서 시작된 오픈 소스 기계학습 플랫폼이다. 모델 정의, 학습, 배포를 위한 도구와 라이브러리를 제공한다. 검증 기준: TensorFlow 공식 안내의 프로젝트 기원과 용도를 확인한다. 원문 대조: TensorFlow는 Google Brain에서 시작된 오픈 소스 머신러닝 플랫폼이다.

정보처리기사 필기 기출문제 학습 방법

먼저 PDF 문제지를 시간에 맞춰 푼 뒤, 이 글에서 오답의 정답·해설·근거를 확인하세요. 법규 문항은 근거 기준일 이후 개정 여부도 함께 확인하는 것이 안전합니다.

정보처리기사 과년도 전체 보기 · Q-Net 현행 출제기준 확인

자료 기준·검수 정보