문제지 PDF · 웹 정답 해설

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

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

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

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

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

2024년 2회 범위의 후기복원 분류 대표 학습 세트입니다. CBT 원문이나 공식 정답표를 제공하는 자료가 아닙니다. 100문항의 해설을 기술 문서와 필요한 독립 계산으로 새로 편집 검토했으며, 질문·조건·보기를 바로잡은 문항은 학습용 개정문항으로 표시합니다.

정보처리기사 전체 자료 · 정보처리기사 CBT 학습실

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

1. 설계 검토 회의에서 다음 항목을 판단한다. 나선형(Spiral) 모델에 대한 기술로 틀린 설명은 어떤 용어인가?

  1. 개발 중 발생할 수 있는 위험을 최소화하는 것이 주 목적이며, 유지보수 단계가 필요 없다.
  2. 나선을 돌듯 반복하며 점진적으로 완성도를 높인다.
  3. 프로토타입을 개발 과정에 반영할 수 있다.
  4. 복잡한 대형 프로젝트에서 위험 분석에 기여한다.
정답과 해설 보기

정답: 1

정답은 ①이다. 나선형 모델은 반복마다 목표와 대안을 정하고 위험을 분석·해소한 뒤 제품을 개발·검증하고 다음 순환을 계획한다. 위험을 줄이기 위해 시제품을 만들거나 다른 개발 기법을 선택할 수 있다.

이 접근이 유지보수를 없애 주는 것은 아니다. 운영 중 요구 변경과 결함 수정이 발생하면 유지보수 활동이 필요하며, 나선형 접근을 개선 작업에도 적용할 수 있다. 위험 분석을 중시한다는 앞부분과 유지보수가 필요 없다는 뒷부분을 나누어 판단해야 한다.

선지별 해설

  • ① 정답. 위험을 다루지만 유지보수가 불필요해지는 것은 아니다.
  • ② 오답. 반복하면서 다음 수준의 제품으로 발전시키는 설명이다.
  • ③ 오답. 위험 해소를 위한 시제품을 활용할 수 있다.
  • ④ 오답. 복잡한 프로젝트의 위험을 체계적으로 분석할 수 있다.

편집 해설 근거: Barry W. Boehm, A Spiral Model of Software Development and Enhancement (1988), 논문 보존 사본 — Figure 2 및 development and enhancement의 순환 설명

2. 다음 모듈 연결 사례 중 일반적으로 결합도가 가장 낮은 것은?

[학습용 개정문항]

  1. 다른 모듈의 내부 데이터를 직접 수정한다.
  2. 여러 모듈이 공통 전역 데이터를 공유한다.
  3. 상대 모듈의 실행 분기를 선택하는 제어 플래그를 전달한다.
  4. 필요한 개별 데이터만 매개변수로 전달한다.
정답과 해설 보기

정답: 4

정답은 ④ 자료 결합이다. 필요한 개별 데이터만 매개변수로 전달하면 다른 모듈의 내부 구조나 전역 저장 영역을 알아야 할 필요가 줄어든다. 여기서 제시한 네 사례 중에서는 모듈 간 의존이 가장 약한 형태다.

다른 모듈의 내부를 직접 수정하는 내용 결합, 전역 영역을 공유하는 공통 결합, 상대의 처리 방식을 지시하는 제어 정보를 전달하는 제어 결합과 구별한다. 결합도를 낮추면 변경의 파급을 줄이기 쉽지만 성능과 인터페이스 요구도 함께 고려한다.

선지별 해설

  • ① 오답. 다른 모듈 내부에 의존하는 내용 결합이다.
  • ② 오답. 공통 전역 데이터의 변경이 여러 모듈에 영향을 준다.
  • ③ 오답. 상대 모듈의 처리 방식을 제어하는 정보에 의존한다.
  • ④ 정답. 필요한 데이터만 명시적으로 전달하는 자료 결합이다.

편집 해설 근거: IEEE Computer Society, SWEBOK Guide V4.0a — Software Design, Coupling and Cohesion

3. 설계 검토 회의에서 다음 항목을 판단한다. HIPO(Hierarchy Input Process Output) 차트에 대한 기술로 틀린 설명을 고르면?

  1. 가시적, 총체적, 세부적 도표로 나누어진다.
  2. 기능과 데이터의 관계를 계층 구조로 표현하여 한눈에 이해하기 쉽게 한다.
  3. 시스템의 기능을 여러 개의 고유 모듈로 분할하여 계층적으로 나타낸다.
  4. 상향식 소프트웨어 개발을 위한 문서화 도구이다.
정답과 해설 보기

정답: 4

정답은 ④이다. HIPO는 기능을 계층적으로 나누어 보여 주고 각 기능의 입력·처리·출력을 연결하는 문서화 기법이다. 상위 기능을 세부 기능으로 분해하는 하향식 설계와 이해를 지원하므로 상향식 개발을 위한 도구라는 설명은 적절하지 않다.

가시적 목차는 모듈의 계층을, 총괄 도표와 상세 도표는 서로 다른 세부 수준의 입력·처리·출력을 나타낸다. 계층 도표만으로 모든 처리 알고리즘을 설명하는 것은 아니므로 IPO 도표와 함께 읽어야 한다.

선지별 해설

  • ① 오답. 가시적 목차와 총괄·상세 IPO 도표를 사용한다.
  • ② 오답. 기능의 계층과 입력·처리·출력 관계를 이해하도록 돕는다.
  • ③ 오답. 기능을 모듈로 나누어 계층 구조를 나타낸다.
  • ④ 정답. HIPO의 대표적인 설계 방향은 하향식이다.

편집 해설 근거: IBM, Improved Programming Technologies—An Overview, GC20-1850-0 (1974), 보존 원문 — Hierarchy plus Input-Process-Output 및 Visual Table of Contents 설명

4. 정형 기술 검토(FTR)를 운영하는 방법으로 부적절한 것은?

[학습용 개정문항]

  1. 검토할 산출물에 맞는 체크리스트를 준비한다.
  2. 검토 범위와 의제를 명확히 정한다.
  3. 발견한 결함을 기록하지 않고 해결책 논의만 시간 제한 없이 계속한다.
  4. 사전 준비를 하고 발견 사항을 공유한다.
정답과 해설 보기

정답: 3

정답은 ③이다. 정형 검토는 정한 범위의 산출물에서 결함을 찾아 기록하고 후속 처리를 결정하는 활동이다. 사전 준비, 체크리스트, 명확한 의제와 시간 관리는 이 목표를 달성하기 위한 수단이다.

수정 방향에 관한 필요한 논의를 모두 금지하는 것은 아니다. 다만 회의 시간을 제한 없이 해결 작업에 쓰면서 발견한 결함조차 기록하지 않으면 검토와 후속 확인이 어려워진다. 검토 대상의 문제와 작성자 개인에 대한 평가도 구별해야 한다.

선지별 해설

  • ① 오답. 적절한 체크리스트는 일관된 검토를 돕는다.
  • ② 오답. 범위와 의제를 명확히 하면 검토에 집중할 수 있다.
  • ③ 정답. 결함 기록과 시간 관리 없이 해결 작업만 계속하는 것은 부적절하다.
  • ④ 오답. 사전 준비와 발견 사항 공유는 효과적인 검토에 필요하다.

편집 해설 근거: ISTQB CTFL 2018 Syllabus v3.1.1 (2021-07-01) — §3.2.1 Work Product Review Process; §3.2.5 Success Factors for Reviews

5. TCP 서버가 통신 끝점을 만들고 bind, listen, accept를 이용해 클라이언트 연결을 받도록 하는 네트워크 프로그래밍 인터페이스는?

[학습용 개정문항]

  1. API
  2. Socket
  3. Web Service
  4. DB Link
정답과 해설 보기

정답: 2

정답은 ② Socket이다. 일반적인 TCP 서버는 소켓을 만들고 로컬 주소와 포트에 바인딩한 뒤 연결 요청을 기다린다. 연결을 수락하면 해당 클라이언트와 데이터를 주고받을 연결 소켓을 얻는다.

소켓은 통신 끝점을 다루는 프로그래밍 인터페이스다. 포트 자체가 프로그램인 것은 아니며, socket 호출만으로 모든 서버 준비가 끝나는 것도 아니다. API는 인터페이스의 일반 명칭이고 웹 서비스나 DB Link는 더 구체적인 서비스·데이터베이스 연동 방식이다.

선지별 해설

  • ① 오답. API는 프로그램 인터페이스의 일반적인 범주다.
  • ② 정답. bind·listen·accept 등으로 TCP 통신 끝점을 다룬다.
  • ③ 오답. 웹을 통한 서비스 제공 방식이며 이 저수준 인터페이스의 이름은 아니다.
  • ④ 오답. 데이터베이스 간 연결 기능과 구별된다.

편집 해설 근거: Python 3.14, socket — Low-level networking interface — Example의 TCP server: socket, bind, listen, accept

6. 소프트웨어 형상 관리에 대한 설명으로 옳지 않은 것은?

[학습용 개정문항]

  1. 개발 생명주기 전반에서 선정한 형상 항목을 관리한다.
  2. 형상 관리를 위해 구성한 팀을 반드시 치프 프로그래머 팀이라고 부른다.
  3. 변경 사항을 체계적으로 추적하고 통제한다.
  4. 산출물의 무결성과 일관성 유지를 지원한다.
정답과 해설 보기

정답: 2

정답은 ②이다. 형상 관리는 관리할 항목을 식별하고 기준선을 설정하며 변경을 통제하고 상태와 일치 여부를 확인한다. 소스 코드뿐 아니라 요구사항·설계·시험 문서 등 선정한 산출물도 대상이 될 수 있다.

치프 프로그래머 팀은 개발 조직의 한 형태를 가리키며 형상 관리 조직의 고유 명칭이 아니다. 변경 통제 위원회 같은 역할을 둘 수 있지만 조직 구성은 프로젝트에 따라 달라진다. 모든 임시 파일을 같은 수준으로 통제해야 한다는 뜻도 아니다.

선지별 해설

  • ① 오답. 생명주기 전반에서 선정한 형상 항목을 관리한다.
  • ② 정답. 치프 프로그래머 팀은 형상 관리 팀의 정의가 아니다.
  • ③ 오답. 승인된 절차로 변경을 추적·통제한다.
  • ④ 오답. 산출물의 무결성과 일관성 유지를 지원한다.

편집 해설 근거: IEEE Computer Society, SWEBOK Guide V4.0a — Software Configuration Management, Identification; Change Control; Status Accounting; Auditing

7. 다음 중 소프트웨어 규모·노력·비용 추정에 활용하는 기법이나 모형과 목적이 다른 것은?

[학습용 개정문항]

  1. SWOT 분석 모델
  2. COCOMO 모델
  3. 기능 점수(Function Point) 모델
  4. Putnam 모델
정답과 해설 보기

정답: 1

정답은 ① SWOT 분석이다. SWOT는 강점·약점·기회·위협을 검토하는 전략 분석 틀로, 소프트웨어 규모나 개발 노력의 계산을 위한 추정 모형과 목적이 다르다.

COCOMO는 규모와 비용 요인 등을 이용해 노력을 추정하고 Putnam 모형은 규모·일정·노력의 관계를 다룬다. 기능 점수는 사용자가 인식하는 기능을 통해 규모를 측정하며 생산성 자료 등과 결합해 노력이나 비용 추정에 활용한다. 기능 점수 값 자체가 곧 화폐 단위 비용인 것은 아니다.

선지별 해설

  • ① 정답. 사업·조직의 전략적 상황을 분석하는 틀이다.
  • ② 오답. 규모와 비용 요인을 이용하는 소프트웨어 추정 모형이다.
  • ③ 오답. 기능 규모를 측정해 노력·비용 추정의 입력으로 활용한다.
  • ④ 오답. 소프트웨어 규모·일정·노력의 관계를 다루는 추정 모형이다.

편집 해설 근거: Barry W. Boehm, Software Engineering Economics (1984), 저자 논문 보존 사본 — Software cost-estimation techniques; COCOMO 및 Putnam 모델 논의; U.S. Small Business Administration, Why December is a Great Time to Review Your Business Plan (2016) — strengths, weaknesses, opportunities, threats 설명

8. 애자일 접근에 대한 설명으로 옳지 않은 것은?

[학습용 개정문항]

  1. 고객과의 소통과 협력을 중시한다.
  2. 계획을 따르기보다 변화에 대응하는 것을 더 중시한다.
  3. 짧은 주기로 결과를 제공하고 피드백을 반영한다.
  4. 초기에 모든 기능과 문서를 완벽히 확정해 이후 변경을 막는 것이 목표다.
정답과 해설 보기

정답: 4

정답은 ④이다. 애자일은 고객과 협력하면서 작동하는 소프트웨어를 자주 제공하고, 그 과정에서 배운 내용을 다음 개발에 반영한다. 변화에 대응하는 능력을 고정된 계획의 준수보다 더 중시한다.

따라서 개발 전에 모든 기능과 문서를 완벽히 확정해 이후 변경을 막는 것을 목표로 하지 않는다. 계획과 문서에도 가치가 있으며 필요한 만큼 작성하고 갱신한다. 짧은 주기라는 형식만 따르는 것보다 피드백을 실제 제품과 작업 방식의 개선에 연결하는 것이 중요하다.

선지별 해설

  • ① 오답. 고객과의 협력은 애자일 선언의 가치다.
  • ② 오답. 변화에 대한 대응을 계획 준수보다 더 중시한다.
  • ③ 오답. 짧은 제공 주기와 피드백 반영을 지향한다.
  • ④ 정답. 모든 요구를 처음에 고정하고 변경을 막는 것이 애자일의 목표는 아니다.

편집 해설 근거: Manifesto for Agile Software Development (2001) — 네 가지 가치와 문서·계획에도 가치가 있다는 마지막 문장

9. Scrum Guide 2020이 규정하는 한 스프린트의 고정된 기간은?

[학습용 개정문항]

  1. 한 달 이하
  2. 6~8주
  3. 8~12주
  4. 3개월 초과
정답과 해설 보기

정답: 1

정답은 ① 한 달 이하이다. Scrum Guide 2020은 스프린트를 한 달 이하의 고정된 길이로 설명한다. 한 스프린트가 끝나면 다음 스프린트가 시작되며, 그 안에서 목표를 향한 작업과 점검·적응이 이루어진다.

1주나 2주 스프린트도 이 상한에 들어간다. 따라서 특정 주 수만 유일한 올바른 주기라고 외우면 안 된다. 기간을 짧게 하면 학습과 피드백의 빈도를 높일 수 있지만 팀은 제품과 불확실성에 맞는 길이를 정하고 일관된 주기를 유지한다.

선지별 해설

  • ① 정답. 2020 Scrum Guide가 정한 상한은 한 달이다.
  • ② 오답. 6~8주는 한 달을 넘는다.
  • ③ 오답. 8~12주도 한 달을 넘는다.
  • ④ 오답. 3개월을 초과하는 기간은 이 상한을 벗어난다.

편집 해설 근거: Schwaber·Sutherland, The Scrum Guide (2020) — Scrum Events — The Sprint

10. 설계 검토 회의에서 다음 항목을 판단한다. 소프트웨어 공학의 이점과 관련성이 가장 낮은 방침을 고르면?

  1. 소프트웨어 품질과 생산성 향상에 기여한다.
  2. 반드시 비용을 증가시킨다.
  3. 개발에 필요한 비용과 기간 예측에 도움을 준다.
  4. 소프트웨어에 대한 체계적 비용 절감에 도움을 준다.
정답과 해설 보기

정답: 2

정답은 ②이다. 소프트웨어 공학은 개발과 유지보수에 체계적이고 규율 있는 접근을 적용해 품질과 생산성, 예측 가능성을 높이려는 분야다. 적절한 계획과 검증은 재작업과 운영 중 결함 비용을 줄이는 데 도움을 준다.

도구 도입이나 교육·검토에는 초기 비용이 들 수 있지만, 모든 프로젝트의 총비용이 반드시 증가한다는 결론은 나오지 않는다. 반대로 어떤 방법을 사용하기만 하면 비용이 무조건 줄어든다고 보장할 수도 없으며 상황에 맞게 효과를 평가해야 한다.

선지별 해설

  • ① 오답. 품질과 생산성 향상은 공학적 접근의 목적에 부합한다.
  • ② 정답. 총비용이 반드시 증가한다는 보편적 법칙은 없다.
  • ③ 오답. 체계적인 추정과 계획은 비용·기간 예측에 도움을 준다.
  • ④ 오답. 재작업 감소 등으로 비용 절감을 지원할 수 있다.

편집 해설 근거: IEEE Computer Society, SWEBOK Guide V4.0a — Software Engineering Economics; Software Engineering Management의 Estimation

11. 설계 검토 회의에서 다음 항목을 판단한다. XP(eXtreme Programming) 모델의 가치에 해당하지 않는 것은?

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

정답: 1

정답은 ① 복잡성이다. XP의 다섯 가치는 의사소통, 단순성, 피드백, 용기, 존중이다. 복잡성을 높이는 것 자체를 가치로 삼기보다는 현재 필요한 기능을 이해하기 쉬운 설계로 구현하고 피드백에 따라 개선한다.

단순성은 요구되는 동작을 생략하거나 품질을 낮추라는 뜻이 아니다. 필요한 해결책을 명확하게 만들고 불필요한 구조를 줄이라는 방향이다. 의사소통과 존중은 팀이 정보를 공유하고 서로의 기여를 인정하며 문제를 해결하도록 돕는다.

선지별 해설

  • ① 정답. 복잡성은 XP의 명명된 다섯 가치에 포함되지 않는다.
  • ② 오답. 의사소통은 요구와 작업 상태를 공유하는 가치다.
  • ③ 오답. 단순성은 불필요한 복잡성을 줄이는 가치다.
  • ④ 오답. 존중은 팀 구성원과 기여를 인정하는 가치다.

편집 해설 근거: Ron Jeffries, What is Extreme Programming? (2011) — 도입부의 simplicity, communication, feedback, courage, respect

12. CASE 도구에 대한 설명으로 옳지 않은 것은?

[학습용 개정문항]

  1. 요구 분석·설계·구현 등 도구가 지원하는 개발 활동을 자동화하거나 보조한다.
  2. 적절한 도구는 품질과 생산성 향상을 지원할 수 있다.
  3. 도입 조건에 따라 개발·유지보수 비용과 기간 절감에 기여할 수 있다.
  4. 모든 CASE 도구는 명령어 숙지가 필수이고 서로 항상 호환된다.
정답과 해설 보기

정답: 4

정답은 ④이다. CASE는 소프트웨어 공학 활동을 컴퓨터 도구로 지원하는 접근이다. 요구 분석·모델링·설계·코드 생성·검사 등 지원 범위는 도구마다 다르며 도구 하나가 모든 활동을 자동으로 해결하는 것은 아니다.

도입 효과는 프로젝트와 기능의 적합성, 교육, 연동 방식 등에 달려 있다. 명령어 숙지가 모든 CASE 도구의 필수 조건도 아니고 서로 다른 도구 간 호환성이 항상 보장되는 것도 아니다. 품질이나 비용 개선은 검토할 기대 효과이지 무조건 성립하는 결과가 아니다.

선지별 해설

  • ① 오답. CASE는 도구의 범위에 따라 개발 활동을 지원할 수 있다.
  • ② 오답. 자동화와 일관성 검사 등으로 품질·생산성 향상을 도울 수 있다.
  • ③ 오답. 적합하게 도입하면 비용·기간 절감에 기여할 수 있다.
  • ④ 정답. 모든 도구에 명령어 숙지가 필수이거나 상호 호환되는 것은 아니다.

편집 해설 근거: ISO/IEC 14102:2008, Guideline for the evaluation and selection of CASE tools, 공개 개요 — Abstract: evaluation and selection of CASE tools; IEEE Computer Society, SWEBOK Guide V4.0a — Software Engineering Models and Methods 및 Software Engineering Operations의 도구 지원

13. 요구공학의 주요 활동을 요구를 찾아내고 이해한 뒤 문서화하고 확인하는 기본 흐름으로 나열한 것은?

[학습용 개정문항]

  1. 요구사항 분석 → 요구사항 도출 → 요구사항 명세 → 요구사항 확인 및 검증
  2. 요구사항 명세 → 요구사항 분석 → 요구사항 도출 → 요구사항 확인 및 검증
  3. 요구사항 도출 → 요구사항 명세 → 요구사항 분석 → 요구사항 확인 및 검증
  4. 요구사항 도출 → 요구사항 분석 → 요구사항 명세 → 요구사항 확인 및 검증
정답과 해설 보기

정답: 4

정답은 ④ 도출 → 분석 → 명세 → 확인 및 검증이다. 먼저 이해관계자와 기존 자료에서 요구를 찾아내고, 충돌·우선순위·실현 가능성 등을 분석한다. 합의한 요구를 명세로 표현한 다음 실제 필요에 부합하고 일관되며 확인 가능한지 검토한다.

이는 각 활동의 논리적 관계를 설명하는 기본 흐름이다. 실제 프로젝트에서는 검토 중 빠진 요구가 발견되어 다시 도출하거나 분석하는 등 반복과 피드백이 발생한다. 네 활동을 한 번만 수행하는 고정된 일방통행 절차라는 뜻은 아니다.

선지별 해설

  • ① 오답. 제시된 기본 흐름에서는 도출한 요구를 분석한다.
  • ② 오답. 명세 작성에 앞서 도출과 분석이 필요하다.
  • ③ 오답. 분석한 결과를 명세에 반영하는 순서를 바꾸었다.
  • ④ 정답. 요구의 수집·이해·문서화·확인을 논리적으로 연결한다.

편집 해설 근거: IEEE Computer Society, SWEBOK Guide V4.0a — Software Requirements: Elicitation, Analysis, Specification, Validation

14. Cockburn의 유스케이스 역할 구분에서, 대상 시스템에 필요한 서비스를 제공하는 외부 시스템이나 조직을 가리키는 것은?

[학습용 개정문항]

  1. 시스템 행위
  2. 유스케이스
  3. 주 액터
  4. 부 액터(지원 액터)
정답과 해설 보기

정답: 4

정답은 ④ 부 액터, 즉 지원 액터이다. Cockburn의 유스케이스 설명에서 지원 액터는 설계 중인 시스템에 필요한 서비스를 제공하는 외부 행위자다. 결제 승인을 돌려주는 외부 결제 시스템처럼 사람 이외의 시스템도 이 역할을 맡을 수 있다.

주 액터는 시스템에 서비스를 요청하여 자신의 목표를 달성하려는 역할이다. 같은 외부 시스템도 유스케이스와 관점에 따라 역할이 달라질 수 있다. 유스케이스는 제공되는 행동을 기술한 것이며 액터 자체와 동일하지 않다.

선지별 해설

  • ① 오답. 시스템의 행동은 외부 서비스 제공자의 역할 명칭이 아니다.
  • ② 오답. 유스케이스는 목표에 관련된 행동을 기술한다.
  • ③ 오답. 주 액터는 자신의 목표를 위해 시스템의 서비스를 요청한다.
  • ④ 정답. 시스템에 서비스를 제공하는 외부 행위자다.

편집 해설 근거: Alistair Cockburn, Writing Effective Use Cases, pre-publication draft 3 (2000), 저자 원문 발췌 — §4.2 The primary actor; §4.3 Supporting actors, 인쇄 p.54

15. 자료 흐름도(DFD)의 구성 요소에 대한 설명으로 옳지 않은 것은?

[학습용 개정문항]

  1. 외부 개체는 시스템 밖에서 데이터를 보내거나 받는 주체다.
  2. 프로세스는 입력 데이터를 처리하거나 변환한다.
  3. 자료 흐름은 요소 사이에서 이동하는 데이터를 나타낸다.
  4. 자료 저장소는 시스템 밖에서 데이터를 보내는 사람이나 조직 자체를 나타낸다.
정답과 해설 보기

정답: 4

정답은 ④이다. 자료 저장소는 처리 과정에서 저장·조회하는 데이터를 나타낸다. 시스템 바깥에서 데이터를 보내거나 받는 주체는 외부 개체이므로 두 역할을 바꾸어 설명하면 안 된다.

프로세스는 입력 데이터를 처리해 출력으로 변환하며 자료 흐름은 데이터가 이동하는 경로를 나타낸다. DFD는 이런 요소의 관계를 표현하는 도구로, 프로그램 명령의 실행 순서를 모두 보여 주는 제어 흐름도와 다르다. 구체적인 도형 모양은 사용하는 DFD 표기법에 따라 달라질 수 있다.

선지별 해설

  • ① 오답. 외부 개체는 데이터의 외부 송신·수신 주체다.
  • ② 오답. 프로세스는 데이터의 변환과 처리를 나타낸다.
  • ③ 오답. 자료 흐름은 요소 사이의 데이터 이동을 나타낸다.
  • ④ 정답. 외부 주체는 자료 저장소가 아니라 외부 개체다.

편집 해설 근거: Microsoft, Threat Modeling for Drivers: Create a data flow diagram — Create a data flow diagram: External entity, Process, Data store, Data flow

16. 정형·비정형 요구사항 명세에 대한 설명으로 옳지 않은 것은?

[학습용 개정문항]

  1. 정형 명세는 수학적 구문과 의미를 활용한다.
  2. 정형 명세는 명시한 속성의 엄밀한 분석을 지원할 수 있다.
  3. 비정형 명세는 자연어 등 친숙한 표현을 사용할 수 있다.
  4. 비정형 명세는 자연어이므로 모호성이 없고 완전한 검증이 항상 가능하다.
정답과 해설 보기

정답: 4

정답은 ④이다. 자연어 기반의 비정형 명세는 이해관계자가 읽고 작성하기 쉽지만, 같은 문장이 서로 다르게 해석되거나 조건이 빠질 수 있다. 표현이 친숙하다는 이유만으로 모호성이 사라지거나 완전한 검증이 보장되지는 않는다.

정형 명세는 수학적 구문과 의미를 사용해 요구를 엄밀하게 표현하고 분석하는 데 도움을 준다. 그러나 정형 명세도 무엇을 모델링했는지와 가정이 올바른지 확인해야 하므로 도구 사용만으로 현실의 모든 요구 오류가 자동으로 사라지는 것은 아니다.

선지별 해설

  • ① 오답. 정형 명세는 수학적 의미를 가진 표현을 활용한다.
  • ② 오답. 일관성이나 명시한 속성의 분석을 지원할 수 있다.
  • ③ 오답. 자연어는 이해관계자에게 친숙한 표현 수단이다.
  • ④ 정답. 자연어의 친숙함이 무모호성과 완전 검증을 보장하지 않는다.

편집 해설 근거: IEEE Computer Society, SWEBOK Guide V4.0a — Software Requirements, Specification; Software Engineering Models and Methods, Formal Methods

17. 설계 검토 회의에서 다음 항목을 판단한다. 코드 인스펙션(Code Inspection)에 대한 기술로 틀린 설명을 고르면?

  1. 결함 분석에 검사 목록을 사용한다.
  2. 프로그램을 실행하여 검사하는 동적 테스트이다.
  3. 초기 개발 단계에 적용 가능하다.
  4. 프로그램을 실행하지 않고 소스코드를 분석한다.
정답과 해설 보기

정답: 2

정답은 ②이다. 코드 인스펙션은 코드를 실행하지 않고 사람이 체계적으로 읽어 결함을 찾는 정적 검토다. 검토 기준과 체크리스트를 준비하고 발견 사항을 기록하여 수정과 후속 확인에 연결할 수 있다.

프로그램을 실행하며 결과를 관찰하는 동적 테스트와는 수행 방식이 다르다. 실행 가능한 전체 시스템이 완성되기 전에도 작성된 코드를 검토할 수 있어 결함을 일찍 발견하는 데 도움이 된다. 정적 검토를 했다고 동적 테스트가 불필요해지는 것은 아니다.

선지별 해설

  • ① 오답. 체크리스트는 체계적인 결함 검토를 지원한다.
  • ② 정답. 실행을 전제로 하는 동적 테스트라는 설명이 잘못이다.
  • ③ 오답. 검토 가능한 코드가 있으면 전체 시스템 완성 전에도 수행할 수 있다.
  • ④ 오답. 실행 없이 소스코드를 살피는 정적 검토다.

편집 해설 근거: ISTQB CTFL 2018 Syllabus v3.1.1 (2021-07-01) — §3.1 Static Testing Basics; §3.2.3 Review Types, Inspection

18. 설계 검토 회의에서 다음 항목을 판단한다. UML에서 흐름도처럼 시스템이나 객체의 프로세스 및 로직의 처리 흐름을 순서에 따라 표현하는 다이어그램은?

  1. 활동 다이어그램
  2. 상태 다이어그램
  3. 유스케이스 다이어그램
  4. 클래스 다이어그램
정답과 해설 보기

정답: 1

정답은 ① 활동 다이어그램이다. 활동 다이어그램은 작업이나 행동의 흐름을 나타내며 순차 수행뿐 아니라 조건 분기, 병렬 수행과 합류도 표현할 수 있다. 처리 과정과 업무 흐름을 설명할 때 사용한다.

상태 다이어그램은 사건에 따른 상태 변화를 중심으로 표현하고, 유스케이스 다이어그램은 외부 액터와 사용 사례의 관계를 보여 준다. 클래스 다이어그램은 클래스와 관계의 정적 구조를 나타낸다. 무엇을 중심으로 표현하려는지에 따라 알맞은 도표를 선택한다.

선지별 해설

  • ① 정답. 활동과 제어·객체 흐름을 표현한다.
  • ② 오답. 상태와 사건에 따른 전이를 중심으로 표현한다.
  • ③ 오답. 액터와 시스템 사용 사례의 관계를 표현한다.
  • ④ 오답. 클래스와 관계의 정적인 구조를 표현한다.

편집 해설 근거: OMG UML 2.5.1 (2017) — Activities 및 Annex A diagram taxonomy

19. ISO/IEC 25010:2011의 사용성 하위 특성을 참고한 설명으로 옳지 않은 것은?

[학습용 개정문항]

  1. 학습성은 사용 방법을 배울 수 있는 정도와 관련된다.
  2. 조작성은 제품을 조작하고 제어하기 쉬운 정도와 관련된다.
  3. 사용자 오류 방지는 사용자의 실수로부터 보호하는 능력과 관련된다.
  4. 학습성은 요구사항 충족 여부와 결함 개수만으로 정의된다.
정답과 해설 보기

정답: 4

정답은 ④이다. 학습성은 정해진 사용자가 목적에 맞게 제품을 사용하는 방법을 배울 수 있는 정도와 관련된다. 요구를 빠짐없이 구현했는지나 오류가 없는지만으로 학습성을 판단하지 않는다.

새 사용자가 핵심 작업을 배우는 데 걸리는 시간과 필요한 도움 등을 살펴볼 수 있다. 사용자 오류 방지는 실수를 예방하고 잘못된 입력의 영향을 줄이는 관점이며 학습성과 구별되는 특성이다. 이처럼 사용성의 하위 관점은 서로 영향을 주더라도 의미가 같지는 않다.

선지별 해설

  • ① 오답. 사용 방법을 배우기 쉬운 정도가 학습성의 핵심이다.
  • ② 오답. 제품을 조작하고 제어하기 쉬운 정도는 조작성과 관련된다.
  • ③ 오답. 사용자의 실수로부터 보호하는 관점은 오류 방지와 관련된다.
  • ④ 정답. 요구 충족이나 결함 개수만으로 학습성을 정의할 수 없다.

편집 해설 근거: ISO/IEC 25010:2011, Software quality model (문항에 명시한 구판) — §4.2.4.2 Learnability; §4.2.4.3 Operability; §4.2.4.4 User error protection

20. 사용자 경험(UX)에 대한 설명으로 옳지 않은 것은?

[학습용 개정문항]

  1. 제품·서비스와 상호작용하며 얻는 경험을 폭넓게 다룬다.
  2. 기능 수행뿐 아니라 사용자가 느끼는 만족과 어려움도 고려한다.
  3. UI는 UX에 영향을 주는 접점의 중요한 부분이다.
  4. UX는 수치로 측정한 기능 성능만 의미하며 사용자의 인식과 감정은 제외한다.
정답과 해설 보기

정답: 4

정답은 ④이다. UX는 사용자와 제품·서비스의 상호작용에서 생기는 경험을 폭넓게 다룬다. 작업을 완료할 수 있는지뿐 아니라 사용 중 느끼는 어려움, 기대와 만족, 서비스 접점의 경험도 고려한다.

화면과 조작 요소를 다루는 UI는 이 경험에 영향을 주는 중요한 부분이다. UX를 이해할 때는 수행 시간이나 성공률 같은 수치와 사용자의 관찰·의견을 함께 활용할 수 있다. 수치만으로 감정과 인식까지 모두 대체할 수 있다는 주장은 적절하지 않다.

선지별 해설

  • ① 오답. 제품·서비스와의 상호작용 경험을 폭넓게 다룬다.
  • ② 오답. 기능 수행뿐 아니라 사용자가 느끼는 만족도 고려한다.
  • ③ 오답. UI는 경험에 영향을 주는 접점의 중요한 부분이다.
  • ④ 정답. UX를 수치만으로 한정하고 인식·감정을 배제할 수 없다.

편집 해설 근거: Don Norman·Jakob Nielsen, The Definition of User Experience (UX), Nielsen Norman Group — 본문의 UX 정의 및 UX와 UI의 구별

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

21. 테스트 오라클(Test Oracle)에 대한 설명으로 옳지 않은 것은?

[학습용 개정문항]

  1. 테스트의 기대 결과를 결정하는 근거다.
  2. 명세나 신뢰할 수 있는 참조 구현을 근거로 삼을 수 있다.
  3. 오라클만 있으면 모든 입력의 모든 결함이 자동으로 발견된다.
  4. 기대 결과와 실제 결과를 비교해 판정하는 데 도움을 준다.
정답과 해설 보기

정답: 3

정답은 ③이다. 테스트 오라클은 시험에서 기대 결과를 정하는 데 사용하는 근거다. 명세, 신뢰할 수 있는 참조 구현, 전문가의 지식 등을 활용해 실제 결과가 기대와 맞는지 판단한다.

오라클이 있다고 모든 입력을 시험하거나 모든 결함을 자동으로 발견하는 것은 아니다. 기대 결과 자체가 잘못되거나 충분하지 않을 수도 있으므로 오라클의 신뢰성과 적용 범위를 확인해야 한다. 시험의 실행 도구와 결과의 옳고 그름을 판단하는 근거는 서로 다른 역할이다.

선지별 해설

  • ① 오답. 기대 결과를 결정하는 기준이나 정보원이다.
  • ② 오답. 신뢰할 수 있는 명세나 참조 구현을 활용할 수 있다.
  • ③ 정답. 오라클의 존재가 모든 결함의 자동 발견을 보장하지 않는다.
  • ④ 오답. 기대와 실제 결과를 비교하는 판단을 지원한다.

편집 해설 근거: ISTQB, Standard Glossary Version 3.01, Foundation Level terms, 회원위원회 제공본 — test oracle 용어 정의; ISTQB CTFL 2018 Syllabus v3.1.1 (2021-07-01) — §1.3 Seven Testing Principles

22. ISTQB의 분류에서 블랙박스 테스트 기법에 대한 설명으로 옳지 않은 것은?

[학습용 개정문항]

  1. 동일하게 처리될 입력값을 동등 클래스로 나누어 시험한다.
  2. 내부 코드의 문장·분기·경로를 중심으로 시험을 설계한다.
  3. 입력 구간의 경계값을 중심으로 시험한다.
  4. 조건 조합과 결과를 결정 테이블로 나타내 시험한다.
정답과 해설 보기

정답: 2

정답은 ②이다. 블랙박스 기법은 요구사항과 명세 등 외부에서 관찰할 동작을 바탕으로 시험을 설계한다. 내부 코드의 문장·분기·경로 구조를 직접 기준으로 삼는 것은 화이트박스 기법이다.

동등 분할은 비슷하게 처리될 값을 묶고 대표값을 선택한다. 경계값 분석은 구간의 경계를, 결정 테이블은 조건 조합과 결과의 관계를 다룬다. 경험에 의한 오류 추정은 경험 기반 기법으로 따로 분류하므로 블랙박스 기법과 무조건 같은 범주로 보지 않는다.

선지별 해설

  • ① 오답. 동등 분할은 블랙박스 기법이다.
  • ② 정답. 내부 문장·분기 구조에 기초한 화이트박스 설명이다.
  • ③ 오답. 경계값 분석은 블랙박스 기법이다.
  • ④ 오답. 조건 조합과 결과를 표로 다루는 결정 테이블 기법이다.

편집 해설 근거: ISTQB CTFL 2018 Syllabus v3.1.1 (2021-07-01) — §4.1.1 Categories; §4.2 Black-box; §4.3 White-box; §4.4 Experience-based

23. 이진 탐색 트리에 4,2,6,1,3,5,7을 차례로 삽입한 뒤 중위 순회한 결과는?

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

정답: 1

정답은 ① 1-2-3-4-5-6-7이다. 먼저 4가 루트가 되고 2와 6이 각각 왼쪽과 오른쪽 자식이 된다. 이어서 1·3은 2의 양쪽 자식, 5·7은 6의 양쪽 자식으로 삽입된다.

중위 순회는 왼쪽 서브트리, 현재 노드, 오른쪽 서브트리 순서다. 왼쪽에서 1-2-3을 방문하고 루트 4를 방문한 뒤 오른쪽의 5-6-7을 방문한다. 서로 다른 키를 가진 이진 탐색 트리의 중위 순회가 키의 오름차순이라는 성질로도 결과를 확인할 수 있다.

선지별 해설

  • ① 정답. 왼쪽-루트-오른쪽 순서로 방문한 결과다.
  • ② 오답. 중위 순회에서는 루트 4보다 왼쪽 서브트리를 먼저 방문한다.
  • ③ 오답. 루트를 먼저 쓰는 것으로 중위 순서와 다르다.
  • ④ 오답. 3을 루트 뒤에 두며 오른쪽 서브트리의 순서도 맞지 않는다.

편집 해설 근거: NIST DADS — binary search tree — Definition; NIST DADS, inorder traversal — Definition

24. 개발·시험 담당자가 다음 사례를 검토한다. DRM(Digital Rights Management)에 대한 설명과 가장 적절한 것은 ?

  1. 완료된 제품 소프트웨어를 고객에게 전달하기 위한 형태로 묶는 방법이다.
  2. 개발 과정에서 발생하는 산출물의 변경과 흐름을 체계적으로 관리한다.
  3. 디지털 콘텐츠의 불법 복제와 유통을 방지하고 이용 권한을 제한하는 기술과 절차이다.
  4. 디지털 콘텐츠를 보호하기 위해 기존 운영체제에 보안 기능을 추가한 운영체제이다.
정답과 해설 보기

정답: 3

정답은 ③이다. DRM은 디지털 콘텐츠의 이용 조건을 관리하고 허가된 사용을 제어하는 기술과 절차다. 암호화된 콘텐츠와 이용 권한을 담은 라이선스 등을 통해 재생·복사 등 허용된 동작을 통제할 수 있다.

제품을 배포 가능한 형태로 묶는 일반적인 패키징이나 개발 산출물의 형상 관리와 목적이 다르다. 보안 운영체제는 자원과 접근을 보호하는 운영체제 차원의 기능이다. DRM도 우회나 유출을 완전히 없애는 절대적인 보장은 아니며 정책과 구현에 따라 보호 범위가 달라진다.

선지별 해설

  • ① 오답. 소프트웨어 배포를 위한 일반적인 패키징 설명이다.
  • ② 오답. 개발 산출물의 형상 관리 설명이다.
  • ③ 정답. 콘텐츠 이용 권한과 허가된 사용을 제어하는 기술·절차다.
  • ④ 오답. 운영체제 자체의 보호 기능을 강화한 경우와 구별된다.

편집 해설 근거: Microsoft PlayReady, Licensing FAQ, 아키텍처 역할 설명 — PlayReady ecosystem 및 licensing 역할; W3C Recommendation — ODRL Information Model 2.2 — Information Model: Policy, Permission, Prohibition, Duty

25. 각 단계에서 현재 가장 유리한 선택을 반복해 해를 구성하지만, 일반적으로 전체 최적해를 항상 보장하지는 않는 알고리즘 접근은?

[학습용 개정문항]

  1. 탐욕적 알고리즘
  2. 재귀적 알고리즘
  3. 퇴각 검색법
  4. 동적 계획법
정답과 해설 보기

정답: 1

정답은 ① 탐욕적 알고리즘이다. 탐욕법은 현재 단계에서 가장 유리한 선택을 하고 그 선택을 바탕으로 해를 구성한다. 이 국소적인 최선이 전체 문제의 최적해로 이어지는지는 문제의 구조에 달려 있다.

예를 들어 특정 조건의 최소 신장 트리에서는 탐욕 선택의 정당성을 보일 수 있지만, 임의의 문제에 그대로 적용해도 항상 최적이라는 보장은 없다. 재귀는 자기 호출 방식, 백트래킹은 후보를 되돌리며 탐색하는 방식, 동적 계획법은 부분 문제의 해를 저장·결합하는 방식이다.

선지별 해설

  • ① 정답. 단계마다 국소적으로 유리한 선택을 한다.
  • ② 오답. 자기 자신을 호출하는 구성 방식이다.
  • ③ 오답. 선택이 맞지 않으면 되돌아가 다른 후보를 탐색한다.
  • ④ 오답. 부분 문제의 해를 저장하고 결합한다.

편집 해설 근거: NIST DADS, greedy algorithm — Definition 및 Note

26. 이미 빌드된 배포 파일을 설치하는 일반 사용자용 제품 설치 매뉴얼에서, 설치 절차 안내 자체에 필수적인 항목으로 보기 가장 어려운 것은?

[학습용 개정문항]

  1. 소프트웨어 수정을 위한 소스코드
  2. 설치 이상 시 메시지 설명
  3. 제품 소프트웨어 개요
  4. 설치 관련 파일
정답과 해설 보기

정답: 1

정답은 ①이다. 이미 빌드된 제품을 설치하는 일반 사용자용 매뉴얼은 설치에 필요한 준비·파일·단계와 실패 시 확인 방법을 설명하는 문서다. 제품 개요는 설치 목적을, 오류 메시지 설명은 문제 해결을 돕는다.

프로그램을 수정하기 위한 전체 소스코드는 이 설치 절차 자체에 필수인 항목이 아니다. 소스 배포 제품이나 개발자용 빌드 안내에는 소스 관련 정보가 필요할 수 있으므로 모든 종류의 매뉴얼에서 소스가 배제된다는 뜻은 아니다. 문서의 대상 독자와 작업 목적을 기준으로 판단한다.

선지별 해설

  • ① 정답. 완성된 배포 파일 설치 절차에 수정용 전체 소스는 필수 항목이 아니다.
  • ② 오답. 설치 실패 메시지와 대응 방법은 사용자에게 필요하다.
  • ③ 오답. 제품 개요와 지원 환경은 설치 판단을 돕는다.
  • ④ 오답. 필요한 배포 파일과 준비 절차를 안내해야 한다.

편집 해설 근거: Google Developer Documentation Style Guide, Procedures (2026-10-05 확인) — Before you begin 및 절차 단계 작성 지침

27. 개발·시험 담당자가 다음 사례를 검토한다. 프로그램 내부 로직과 경로를 추적하며 논리 구조를 고려해 테스트하는 것은?

  1. 단위 테스트
  2. 블랙박스 테스트
  3. 화이트박스 테스트
  4. 인수 테스트
정답과 해설 보기

정답: 3

정답은 ③ 화이트박스 테스트이다. 내부 코드나 설계 구조를 바탕으로 시험 대상을 정하고 문장·분기 등의 실행 여부를 확인하는 접근이다. 내부 구조의 어떤 부분을 시험했는지를 커버리지로 표현할 수 있다.

단위 테스트와 인수 테스트는 시험의 수준이나 목적을 나타내는 분류다. 단위 테스트에서 화이트박스 기법을 활용할 수 있으므로 서로 배타적인 용어는 아니다. 블랙박스는 내부 구현보다 명세와 외부에서 관찰되는 동작을 바탕으로 시험을 설계한다.

선지별 해설

  • ① 오답. 개별 구성요소를 시험하는 수준이며 기법의 정의와 다르다.
  • ② 오답. 외부 동작·명세에 기반한 접근이다.
  • ③ 정답. 코드·설계의 내부 구조를 기준으로 시험한다.
  • ④ 오답. 사용 목적과 인수 기준의 충족 여부를 다루는 수준이다.

편집 해설 근거: ISTQB CTFL 2018 Syllabus v3.1.1 (2021-07-01) — §2.2 Test Levels; §4.3 White-box Test Techniques

28. 전형적인 V-모델에서 사용자 요구와 대응하며, 실제 사용 목적과 합의한 인수 기준을 충족하는지에 초점을 두는 테스트 수준은?

[학습용 개정문항]

  1. 단위 테스트
  2. 통합 테스트
  3. 시스템 테스트
  4. 인수 테스트
정답과 해설 보기

정답: 4

정답은 ④ 인수 테스트이다. 인수 테스트는 시스템이 사용자의 필요와 사업 목적, 합의된 인수 기준을 충족하는지 확인하는 데 초점을 둔다. 전형적인 V-모델에서는 요구사항 측면과 대응하는 높은 수준의 시험으로 설명한다.

단위 테스트는 개별 구성요소, 통합 테스트는 연결과 상호작용, 시스템 테스트는 통합된 시스템 전체를 다룬다. 실제 프로젝트에서는 시험 활동이 반복·중첩될 수 있으며 사용자 인수 외에도 운영 인수나 계약·규정에 따른 인수가 있으므로 항상 사용자가 마지막에 직접 수행한다고 단정하지 않는다.

선지별 해설

  • ① 오답. 개별 구성요소의 동작을 확인한다.
  • ② 오답. 구성요소나 시스템 사이의 연결과 상호작용을 확인한다.
  • ③ 오답. 전체 시스템의 요구 충족을 폭넓게 시험한다.
  • ④ 정답. 사용자의 필요와 사업 목적 및 인수 기준에 초점을 둔다.

편집 해설 근거: ISTQB CTFL 2018 Syllabus v3.1.1 (2021-07-01) — §2.1.1 Software Development and Software Testing; §2.2.4 Acceptance Testing

29. [39, 45, 26, 35, 54]를 오름차순 삽입 정렬한다. 첫 원소를 정렬 구간으로 보고 두 번째 원소를 삽입하는 첫 회전이 끝난 결과는?

[학습용 개정문항]

  1. [39, 45, 26, 35, 54]
  2. [39, 26, 45, 35, 54]
  3. [26, 35, 39, 45, 54]
  4. [26, 39, 45, 35, 54]
정답과 해설 보기

정답: 1

정답은 ① [39, 45, 26, 35, 54]이다. 오름차순 삽입 정렬은 처음 원소 하나를 정렬된 구간으로 보고 다음 원소를 그 구간의 알맞은 위치에 끼워 넣는다. 첫 회전의 대상은 두 번째 원소 45다.

45는 정렬 구간의 39보다 크므로 앞 원소를 뒤로 밀 필요가 없고 배열이 그대로 유지된다. 다음 회전에서 26을 처리하면 39와 45를 오른쪽으로 옮겨 [26,39,45,35,54]가 되지만, 문제는 그 이전인 첫 회전만 묻는다.

선지별 해설

  • ① 정답. 45가 39 뒤에 이미 올바르게 위치한다.
  • ② 오답. 첫 회전에서는 세 번째 원소 26을 삽입하지 않는다.
  • ③ 오답. 전체 정렬을 완료한 결과다.
  • ④ 오답. 26을 삽입하는 두 번째 회전 후 결과다.

편집 해설 근거: NIST DADS, insertion sort — Definition

30. 개발·시험 담당자가 다음 사례를 검토한다. 선형 자료 구조의 종류가 해당하지 않는 것을 고르면?

  1. 데크(Deque)
  2. 트리(Tree)
  3. 스택(Stack)
  4. 큐(Queue)
정답과 해설 보기

정답: 2

정답은 ② 트리이다. 트리는 부모와 자식 관계로 노드를 연결하는 계층 구조다. 한 노드에서 여러 자식으로 갈라질 수 있어 일반적으로 비선형 자료 구조로 분류한다.

스택은 후입선출, 큐는 선입선출 규칙으로 원소를 다루는 선형 구조다. 데크는 양 끝에서 삽입과 삭제를 할 수 있는 선형 구조다. 어떤 특정 트리가 우연히 한 줄로만 이어져 있더라도 트리라는 자료 구조의 일반적인 분류가 선형으로 바뀌는 것은 아니다.

선지별 해설

  • ① 오답. 데크는 양 끝에서 삽입·삭제하는 선형 구조다.
  • ② 정답. 부모·자식의 계층 관계를 갖는 비선형 구조다.
  • ③ 오답. 스택은 후입선출 규칙을 갖는 선형 구조다.
  • ④ 오답. 큐는 선입선출 규칙을 갖는 선형 구조다.

편집 해설 근거: NIST DADS, tree — Definition; NIST DADS — queue — Definition 및 관련 stack, deque 항목

31. 다음 중 주된 목적이 자동화 시험의 작성·실행 지원이 아니라 분산 버전 관리인 도구는?

[학습용 개정문항]

  1. Git
  2. JUnit
  3. STAF
  4. Selenium
정답과 해설 보기

정답: 1

정답은 ① Git이다. Git의 주된 역할은 파일 변경의 버전과 이력을 관리하는 것이다. 시험 스크립트를 저장하거나 자동화 파이프라인과 연결할 수는 있지만, 그 자체의 주 기능이 테스트 작성·실행 프레임워크인 것은 아니다.

JUnit은 JVM 환경의 시험 작성·실행을, STAF는 재사용 가능한 서비스 기반의 시험 자동화를 지원한다. Selenium은 브라우저 자동화를 제공한다. 이들 도구의 대상과 범위가 서로 다르므로 모두 동일한 종류의 인터페이스 시험만 수행한다고 이해하지 않는다.

선지별 해설

  • ① 정답. 변경 이력을 관리하는 분산 버전 관리 도구다.
  • ② 오답. JVM 기반 시험의 작성과 실행을 지원한다.
  • ③ 오답. 서비스 기반의 테스트 자동화 프레임워크다.
  • ④ 오답. 브라우저 자동화를 통해 웹 시험 등을 지원한다.

편집 해설 근거: Git 공식 프로젝트, About Git — About Git; JUnit 공식 프로젝트, About — About JUnit; STAF V3 User Guide, Version 3.4.26 (2016) — Introduction; Selenium 공식 문서, Overview — Overview

32. 개발·시험 담당자가 다음 사례를 검토한다. 하나의 리스트를 기준값(pivot)을 기준으로 나누고 정렬하는 정렬 알고리즘은?

  1. 삽입 정렬
  2. 버블 정렬
  3. 퀵 정렬
  4. 선택 정렬
정답과 해설 보기

정답: 3

정답은 ③ 퀵 정렬이다. 퀵 정렬은 피벗을 선택하고 그 값을 기준으로 원소들을 분할한 뒤 나뉜 부분을 다시 정렬한다. 분할이 충분히 작아질 때까지 같은 접근을 반복하는 분할 정복 알고리즘이다.

삽입 정렬은 다음 원소를 정렬된 부분에 끼워 넣고, 버블 정렬은 이웃 원소를 비교·교환하며, 선택 정렬은 남은 부분에서 최솟값 등을 골라 위치시킨다. 퀵 정렬은 일반적인 구현에서 평균적으로 빠르지만 피벗과 입력에 따라 불균형 분할이 계속되면 최악에는 제곱 시간까지 걸릴 수 있다.

선지별 해설

  • ① 오답. 정렬된 부분에 다음 원소를 삽입한다.
  • ② 오답. 인접한 원소의 비교·교환을 반복한다.
  • ③ 정답. 피벗을 기준으로 분할하고 부분 배열을 정렬한다.
  • ④ 오답. 남은 원소 중 최솟값 등을 선택해 위치시킨다.

편집 해설 근거: NIST DADS, quicksort — Definition 및 Note

33. 개발·시험 담당자가 다음 사례를 검토한다. 중위식 A*B+C-D를 후위식으로 올바르게 변환한 것은?

  1. AB*C+D
  2. ABC*+D-
  3. AB*+CD-
  4. AB*C+D-
정답과 해설 보기

정답: 4

정답은 ④ AB*C+D-이다. 곱셈이 덧셈·뺄셈보다 우선하므로 먼저 A*B를 묶고, 같은 우선순위인 +와 -는 왼쪽부터 계산한다. 전체 식의 구조는 ((A*B)+C)-D이다.

후위식에서는 각 연산자를 두 피연산자 뒤에 쓴다. A*B를 AB*로 바꾸고 C를 더하면 AB*C+, 마지막으로 D를 빼면 AB*C+D-가 된다. 스택으로 읽을 때도 A와 B를 곱한 값에 C를 더하고 마지막에 D를 빼는 순서가 유지되어야 한다.

선지별 해설

  • ① 오답. 마지막 뺄셈 연산자가 빠져 완결된 식이 아니다.
  • ② 오답. B*C를 먼저 계산하여 원래 식과 다르다.
  • ③ 오답. +를 처리할 때 피연산자가 부족한 잘못된 후위식이다.
  • ④ 정답. 곱셈, C의 덧셈, D의 뺄셈 순서를 보존한다.

편집 해설 근거: ISO/IEC JTC1/SC22/WG14, C11 committee draft N1570 (2011-04-12) — §6.5.5 Multiplicative operators; §6.5.6 Additive operators; GNU dc manual — reverse Polish notation — Reverse Polish notation 소개

34. ISO/IEC 9126-1:2001의 구판 품질 모델에서 기능성(Functionality)의 하위 분류에 해당하지 않는 것은?

[학습용 개정문항]

  1. 기능성 준수성
  2. 진단성
  3. 상호운용성
  4. 보안성
정답과 해설 보기

정답: 2

정답은 ② 진단성이다. ISO/IEC 9126-1:2001의 기능성 하위 특성은 적합성, 정확성, 상호운용성, 보안성, 기능성 준수성이다. 기능성은 정해진 조건에서 명시적·묵시적 필요를 충족하는 기능을 제공하는 능력을 다룬다.

진단성은 이 기능성 하위 목록의 이름이 아니다. 결함 원인이나 수정할 부분을 파악하는 능력은 같은 표준의 유지보수성 중 분석성과 관련된다. 이 문항은 구판의 분류를 묻는다. 후속 ISO/IEC 25010에서는 보안성과 호환성 등을 별도 특성으로 나누므로 서로 다른 판의 분류를 섞으면 안 된다.

선지별 해설

  • ① 오답. 기능성 관련 규정·관례 준수는 구판의 하위 특성이다.
  • ② 정답. 기능성의 다섯 하위 특성 명칭에 포함되지 않는다.
  • ③ 오답. 지정된 다른 시스템과 상호작용하는 능력이다.
  • ④ 오답. 이 구판에서는 기능성 아래 보안성을 분류한다.

편집 해설 근거: ISO/IEC 9126-1:2001, Product quality — Quality model, 표준 원문 미리보기(구판) — §6.1.1–6.1.5 Functionality; §6.5.1 Analysability; ISO/IEC 25010:2011, Software quality model (문항에 명시한 구판) — §4.2 Product quality model

35. TFVC에서 작업 공간의 대기 중인 변경을 팀의 코드베이스에 반영하는 작업의 이름은?

[학습용 개정문항]

  1. update
  2. check-out
  3. check-in
  4. branch
정답과 해설 보기

정답: 3

정답은 ③ check-in이다. TFVC에서 작업 공간의 대기 중인 변경을 팀의 코드베이스에 반영하는 작업을 체크인이라고 부른다. 변경을 설명하는 기록과 함께 변경 집합으로 저장할 수 있다.

파일을 가져와 작업하거나 최신 내용을 받는 작업과 서버에 변경을 반영하는 작업은 방향과 목적이 다르다. 다른 버전 관리 도구에서는 유사한 반영 작업에 commit이라는 용어를 쓰기도 하므로 둘을 아무 조건 없이 서로 다른 의미의 선택지로 두면 안 된다. 여기서는 TFVC의 용어를 기준으로 판단한다.

선지별 해설

  • ① 오답. 일반적으로 최신 버전을 작업 공간에 받는 방향의 작업을 가리킨다.
  • ② 오답. 파일을 작업 대상으로 가져오거나 편집 상태로 만드는 작업과 관련된다.
  • ③ 정답. TFVC의 대기 중인 변경을 코드베이스에 반영하는 작업이다.
  • ④ 오답. branch는 별도의 개발 흐름을 만드는 작업이다.

편집 해설 근거: Microsoft Learn, Develop code and manage pending changes — TFVC — Use the Pending Changes page; Next steps, check in and add changes

36. 다음 두 확인 관점과 용어를 올바르게 연결한 것은?
ㄱ: 산출물이 명시된 요구사항·규격을 충족하는지 확인
ㄴ: 산출물이 사용자의 필요와 의도된 사용 목적을 충족하는지 확인

[학습용 개정문항]

  1. ㄱ: Validation, ㄴ: Verification
  2. ㄱ: Verification, ㄴ: Validation
  3. ㄱ: Debugging, ㄴ: Test
  4. ㄱ: Test, ㄴ: Debugging
정답과 해설 보기

정답: 2

정답은 ② ㄱ Verification, ㄴ Validation이다. Verification은 산출물이 명시된 요구나 규격을 충족하는지 확인하는 관점이고, Validation은 사용자의 필요와 의도된 사용 목적을 충족하는지 확인하는 관점이다.

둘을 단순히 개발 과정만 검사하는 것과 최종 결과만 검사하는 것으로 나누면 부정확하다. 같은 산출물이나 시험도 목적에 따라 서로 다른 질문에 답할 수 있다. 디버깅은 결함의 원인을 찾아 수정하는 작업으로, 명시된 요구나 실제 사용 필요의 충족을 확인하는 이 두 개념과 구별된다.

선지별 해설

  • ① 오답. 두 용어의 확인 대상을 서로 바꾸었다.
  • ② 정답. 명시된 요구 충족은 Verification, 의도된 사용 충족은 Validation이다.
  • ③ 오답. 디버깅은 결함을 찾아 수정하는 작업이다.
  • ④ 오답. Test와 Debugging은 주어진 두 확인 관점의 대응이 아니다.

편집 해설 근거: ISTQB CTFL 2018 Syllabus v3.1.1 (2021-07-01) — §1.1 What is Testing? 및 §1.1.1 Typical Objectives of Testing

37. 개발·시험 담당자가 다음 사례를 검토한다. 제품 소프트웨어의 특정 특성을 파악하기 위한 목적 기반 테스트 유형에 해당하지 않는 것은?

  1. 강도 테스트
  2. 성능 테스트
  3. 블랙박스 테스트
  4. 회복 테스트
정답과 해설 보기

정답: 3

정답은 ③ 블랙박스 테스트이다. 블랙박스는 내부 구현 대신 외부 동작의 명세를 근거로 시험을 설계하는 접근이다. 어떤 품질 특성을 평가하는지보다 시험 사례를 어떤 근거로 도출하는지를 나타낸다.

강도 시험은 정상 범위를 넘는 부하 등에서의 동작을, 성능 시험은 시간과 처리량·자원 사용 등을, 회복 시험은 장애 이후 복구 능력을 살펴본다. 성능 시험을 블랙박스 방식으로 설계할 수도 있으므로 목적에 따른 유형과 설계 접근은 함께 적용될 수 있다.

선지별 해설

  • ① 오답. 높은 부하나 자원 부족 등의 조건에 대한 견고함을 평가한다.
  • ② 오답. 응답 시간·처리량 등 성능을 평가한다.
  • ③ 정답. 외부 명세 기반이라는 시험 설계 접근을 나타낸다.
  • ④ 오답. 장애 이후 복구 능력을 평가한다.

편집 해설 근거: ISTQB CTFL 2018 Syllabus v3.1.1 (2021-07-01) — §2.3 Test Types; §4.1 Categories of Test Techniques

38. 여러 지식 소스가 중앙의 공유 작업 공간에 부분 해를 기록하고, 제어 요소가 적용할 지식 소스를 조정하며 협력적으로 문제를 푸는 아키텍처 패턴은?

[학습용 개정문항]

  1. 블랙보드 패턴
  2. 클라이언트-서버 패턴
  3. MVC 패턴
  4. 미디에이터 패턴
정답과 해설 보기

정답: 1

정답은 ① 블랙보드 패턴이다. 여러 지식 소스가 공통 작업 공간인 블랙보드에 부분 해를 기록하고 다른 결과를 참고하면서 문제 해결을 진전시키는 구조다. 제어 요소는 현재 상태를 보고 어떤 지식 소스를 적용할지 조정한다.

미리 고정된 하나의 순차 처리 절차로 해결하기 어려운 문제에서 서로 다른 전문 지식을 협력시키는 데 활용할 수 있다. 중앙 저장소가 있다는 이유만으로 모두 블랙보드인 것은 아니며, 부분 해의 공유와 지식 소스의 협력이라는 구조를 함께 확인해야 한다.

선지별 해설

  • ① 정답. 공유된 부분 해에 여러 지식 소스가 협력하는 구조다.
  • ② 오답. 서비스 요청자와 제공자의 역할 분리가 중심이다.
  • ③ 오답. 모델·뷰·컨트롤러로 책임을 분리하는 구조다.
  • ④ 오답. 객체 사이의 상호작용을 중재 객체에 모으는 패턴이다.

편집 해설 근거: Corkill·Gallagher·Johnson, Achieving Flexibility, Efficiency, and Generality in Blackboard Architectures, AAAI-87 — §I Introduction; §II.A The Need for Blackboard Database Efficiency, pp.18–19

39. RFC 8259가 정의하며, 자바스크립트 문법에서 유래했지만 언어에 독립적인 텍스트 데이터 교환 형식은?

[학습용 개정문항]

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

정답: 3

정답은 ③ JSON이다. JSON은 자바스크립트의 객체 리터럴 문법에서 유래한 텍스트 기반 데이터 교환 형식이다. 객체는 문자열 이름과 값의 쌍으로 표현하며, 배열과 문자열·숫자·불리언·null도 값으로 사용할 수 있다.

자바스크립트 프로그램에서만 사용할 수 있는 형식은 아니며 다양한 언어에서 읽고 생성한다. JSON이 XML의 모든 용도를 대체해야 하는 것도 아니다. YAML 역시 별도의 데이터 표현 언어이지만 문항에 명시한 RFC 8259의 형식은 JSON이다.

선지별 해설

  • ① 오답. HTML은 웹 문서의 구조를 표현하는 마크업 언어다.
  • ② 오답. XML은 요소·속성 등으로 구조화된 문서를 표현한다.
  • ③ 정답. RFC 8259가 정의하는 JSON 데이터 교환 형식이다.
  • ④ 오답. YAML은 별도의 데이터 직렬화 언어다.

편집 해설 근거: IETF RFC 8259 — JSON — §1 Introduction; §3 Values; §4 Objects; §5 Arrays

40. 개발·시험 담당자가 다음 사례를 검토한다. NS(Nassi-Shneiderman) 차트에 대한 기술로 타당한 설명을 고르면?

  1. 데이터 개체와 개체 사이의 관계를 표현한 차트이다.
  2. 화살표와 GOTO문을 사용한다.
  3. 순차, 선택, 반복 제어구조를 명확히 표현한다.
  4. 임의 제어 이동이 많다.
정답과 해설 보기

정답: 3

정답은 ③이다. Nassi-Shneiderman 차트는 블록을 중첩해 순차·선택·반복 구조를 표현한다. 구조화 프로그래밍의 제어 구조가 그림의 포함 관계와 분할로 드러나도록 구성한다.

임의의 위치로 이동하는 GOTO나 여러 방향의 연결 화살표를 중심으로 표현하는 방식이 아니다. 데이터 개체와 그 관계를 나타내는 ER 다이어그램과도 목적이 다르다. 블록 구조를 따라 읽으면 각 조건과 반복의 범위를 파악할 수 있다는 점이 특징이다.

선지별 해설

  • ① 오답. 데이터 개체와 관계를 표현하는 ER 모델과 구별된다.
  • ② 오답. 임의 점프와 화살표를 중심으로 하는 표기법이 아니다.
  • ③ 정답. 구조화된 순차·선택·반복을 블록으로 표현한다.
  • ④ 오답. 임의 제어 이동을 줄이고 구조를 드러내려는 목적과 반대다.

편집 해설 근거: Nassi·Shneiderman, Flowchart techniques for structured programming (1973), 저자 제공 원문 — Flowchart techniques for structured programming, 블록 기반 제어 구조 도식

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

41. 데이터베이스 설계자가 다음 조건을 확인한다. 원천 데이터에서 데이터를 추출하고 분석 가능한 형태로 변환한 후 최종 시스템에 적재하는 데이터 처리 과정은?

  1. ERP
  2. ETL
  3. BI
  4. CRM
정답과 해설 보기

정답: 2

정답은 ② ETL이다. Extract는 원천에서 데이터를 추출하는 단계, Transform은 정제·변환해 대상에 맞는 형태를 만드는 단계, Load는 최종 저장 시스템에 적재하는 단계다. 서로 다른 형식의 자료를 분석에 사용할 수 있도록 통합할 때 활용한다.

ERP는 기업 자원 관리, CRM은 고객 관계 관리 시스템의 범주이며 BI는 데이터를 활용한 분석과 의사결정 지원을 가리킨다. ETL은 이런 시스템에서 활용할 수 있는 데이터 처리 과정이다. 먼저 적재한 뒤 변환하는 ELT와는 단계의 순서가 다르다.

선지별 해설

  • ① 오답. 기업 자원 관리 시스템을 가리킨다.
  • ② 정답. 추출·변환·적재라는 처리 과정이다.
  • ③ 오답. 분석과 의사결정 지원의 더 넓은 개념이다.
  • ④ 오답. 고객 관계 관리 시스템을 가리킨다.

편집 해설 근거: AWS, Data Warehousing on AWS — Data processing — Batch Processing: Extract Transform Load; Extract Load Transform

42. PostgreSQL 18의 일반적인 비물질화 뷰(View)에 대한 설명으로 옳지 않은 것은?

[학습용 개정문항]

  1. 뷰를 통해 다른 뷰를 정의할 수 없으며 반드시 기본 테이블만 참조해야 한다.
  2. 데이터 독립성과 보안성을 유지할 수 있다.
  3. 논리적 데이터 구조로 실제 데이터는 저장하지 않는다.
  4. 뷰의 정의는 시스템 카탈로그에 저장된다.
정답과 해설 보기

정답: 1

정답은 ①이다. 일반적인 비물질화 뷰는 조회식을 정의한 논리적인 관계다. PostgreSQL에서는 기본 테이블뿐 아니라 다른 뷰를 이용해 새 뷰를 만들 수 있으므로 반드시 기본 테이블만 참조해야 한다는 설명은 틀리다.

뷰의 정의는 시스템 카탈로그에 보관되지만 조회 결과 자체를 별도 데이터로 저장하는 것은 아니다. 물질화 뷰는 결과를 저장하는 다른 기능이다. 필요한 열과 행만 제공하는 뷰는 접근 제어를 설계하는 데 도움이 되지만 실제 보안은 권한과 뷰 설정을 함께 확인해야 한다.

선지별 해설

  • ① 정답. 다른 뷰를 참조하여 뷰를 정의할 수 있다.
  • ② 오답. 논리 구조의 추상화와 제한된 데이터 노출을 지원할 수 있다.
  • ③ 오답. 이 문항의 일반 뷰는 결과 데이터를 별도 저장하지 않는다.
  • ④ 오답. 조회식 등 뷰 정의를 카탈로그가 관리한다.

편집 해설 근거: PostgreSQL 18 — CREATE VIEW — Description 및 Parameters, query; PostgreSQL 18, Chapter 52 System Catalogs — 시스템 카탈로그 개요 및 pg_views

43. 데이터베이스 설계자가 다음 조건을 확인한다. 데이터 정의어(DDL)에 해당하지 않는 명령은?

  1. SELECT
  2. CREATE
  3. ALTER
  4. DROP
정답과 해설 보기

정답: 1

정답은 ① SELECT이다. SELECT는 데이터베이스에 저장된 자료에서 조건에 맞는 결과를 조회하는 문장이다. 스키마 객체의 구조를 생성·변경·삭제하는 데이터 정의어와 역할이 다르다.

CREATE는 객체를 만들고 ALTER는 기존 객체의 정의를 바꾸며 DROP은 객체를 제거한다. SELECT를 별도의 DQL로 부르기도 하고 넓은 DML 범주로 설명하기도 하지만, 이 분류 차이가 SELECT를 DDL로 바꾸는 것은 아니다. 객체 정의를 다루는지 조회 결과를 다루는지를 기준으로 구별한다.

선지별 해설

  • ① 정답. 자료를 조회하는 명령이며 DDL에 해당하지 않는다.
  • ② 오답. 스키마 객체를 생성하는 DDL 계열이다.
  • ③ 오답. 객체의 정의를 변경하는 DDL 계열이다.
  • ④ 오답. 객체를 제거하는 DDL 계열이다.

편집 해설 근거: PostgreSQL 18: Data Definition — Chapter 5 Data Definition; PostgreSQL 18 — SELECT — Description

44. 데이터베이스 설계자가 다음 조건을 확인한다. 릴레이션에서 차수(Degree)에 대한 기술로 타당한 설명을 고르면?

  1. 전체 튜플의 개수이다.
  2. 전체 속성의 개수이다.
  3. 도메인의 개수이다.
  4. Null 값의 개수이다.
정답과 해설 보기

정답: 2

정답은 ② 전체 속성의 개수이다. 릴레이션의 차수는 스키마를 구성하는 열, 즉 속성이 몇 개인지를 나타낸다. 예를 들어 학번·이름·학과라는 세 속성으로 구성되면 데이터 행이 몇 개이든 차수는 3이다.

튜플 수는 기수 또는 카디널리티라고 한다. 여러 속성이 같은 도메인을 사용할 수 있으므로 서로 다른 도메인의 수와 차수를 같다고 할 수 없다. NULL의 개수 역시 특정 데이터 내용에 관한 값이며 릴레이션 스키마의 차수를 정의하지 않는다.

선지별 해설

  • ① 오답. 튜플의 개수는 기수다.
  • ② 정답. 차수는 스키마의 속성 수다.
  • ③ 오답. 여러 속성이 같은 도메인을 쓸 수 있다.
  • ④ 오답. NULL 개수는 스키마의 속성 수와 무관하다.

편집 해설 근거: Ramakrishnan·Gehrke, Database Management Systems 3판, Relational Model — Relational Model, relation schema와 instance

45. 데이터베이스 설계자가 다음 조건을 확인한다. 관계 해석(Relational Calculus)에 대한 기술로 틀린 설명을 고르면?

  1. SQL은 관계 해석과 관계 대수를 기반으로 한다.
  2. 관계 대수와 관계 해석은 관계 DB 처리 능력을 표현한다.
  3. 관계 해석 연산자는 OR, AND, NOT 외에 PROJECT, SELECT 등이 있다.
  4. 원하는 정보가 무엇인지만 정의하는 비절차적 언어이다.
정답과 해설 보기

정답: 3

정답은 ③이다. SELECT와 PROJECT는 각각 행을 고르고 속성을 선택하는 관계 대수의 연산이다. 관계 해석은 조건을 만족하는 튜플이나 도메인 값을 논리식으로 기술하는 선언적인 표현 방식이다.

관계 해석에는 AND·OR·NOT 같은 논리 연결과 양화 개념을 사용한다. 안전한 관계 해석과 관계 대수는 같은 관계 질의를 표현할 수 있다는 연결이 있으며 SQL도 이론적 배경을 공유한다. 다만 실제 SQL에는 중복·NULL·집계 같은 추가 의미가 있어 수학적 집합 질의와 완전히 동일하다고 보지는 않는다.

선지별 해설

  • ① 오답. SQL의 이론적 배경에는 관계 대수와 관계 해석이 있다.
  • ② 오답. 관계 질의의 표현 능력을 설명하는 이론이며 안전한 관계 해석에서 동등성을 논의한다.
  • ③ 정답. SELECT와 PROJECT를 관계 해석의 논리 연산자처럼 나열했다.
  • ④ 오답. 원하는 결과가 만족해야 하는 조건을 기술한다.

편집 해설 근거: Ramakrishnan·Gehrke, Database Management Systems 3판, Relational Calculus — Relational Calculus, tuple/domain calculus 및 safe queries; Ramakrishnan·Gehrke, Database Management Systems 3판, Relational Algebra 저자 자료 — Selection and Projection

46. 데이터베이스 설계자가 다음 조건을 확인한다. 회원 테이블의 부서번호 필드가 부서 테이블을 참조하는 경우 해당 키는?

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

정답: 3

정답은 ③ 외래키이다. 회원 테이블의 부서번호가 부서 테이블의 식별 가능한 부서 값을 참조하도록 제약을 설정했다면, 회원 테이블에서 참조 역할을 하는 속성 집합이 외래키다. 참조 대상에 없는 값을 임의로 넣지 못하도록 관계의 일관성을 유지한다.

기본키는 해당 테이블의 행을 대표하여 식별하도록 선택한 키이며 후보키와 슈퍼키는 유일성 등의 성질에 관한 용어다. 외래키가 동시에 그 테이블의 키 일부가 될 수도 있으나 여기서 묻는 다른 테이블을 참조하는 역할의 이름은 외래키다.

선지별 해설

  • ① 오답. 행의 유일한 식별 성질을 나타내는 용어다.
  • ② 오답. 해당 테이블에서 대표로 선정한 식별 키다.
  • ③ 정답. 다른 테이블의 키 값을 참조하는 역할이다.
  • ④ 오답. 최소성을 갖춘 유일 식별 키를 뜻한다.

편집 해설 근거: PostgreSQL 18: Constraints — Foreign Keys

47. 비자명 함수 종속 X→A마다 X가 슈퍼키이거나 A가 적어도 하나의 후보키를 구성하는 속성이어야 한다는 조건으로 정의되는 정규형은?

[학습용 개정문항]

  1. 제4정규형(4NF)
  2. 제1정규형(1NF)
  3. 제3정규형(3NF)
  4. BCNF
정답과 해설 보기

정답: 3

정답은 ③ 제3정규형이다. 3NF는 성립하는 모든 비자명 함수 종속 X→A에 대해 X가 슈퍼키이거나 A가 적어도 하나의 후보키에 속하는 속성일 것을 요구한다. 선택한 기본키 하나만 살펴보는 정의가 아니라 모든 후보키와 함수 종속을 고려한다.

BCNF는 같은 비자명 종속에서 결정자 X가 반드시 슈퍼키여야 하므로 더 엄격하다. 1NF는 속성값의 원자성과 관련되고 4NF는 다치 종속을 추가로 다룬다. 비기본 속성의 부분·이행 종속 제거라는 설명은 이 정식 정의를 이해하기 위한 대표적인 경우다.

선지별 해설

  • ① 오답. 4NF는 비자명 다치 종속에 대한 조건을 다룬다.
  • ② 오답. 1NF의 원자값 조건만으로 이 함수 종속 규칙이 성립하지 않는다.
  • ③ 정답. 슈퍼키 또는 우변의 후보키 소속 속성이라는 조건이 3NF의 정의다.
  • ④ 오답. BCNF는 결정자가 슈퍼키여야 하며 우변의 예외를 두지 않는다.

편집 해설 근거: Silberschatz·Korth·Sudarshan, Database System Concepts 7판, Chapter 7 저자 자료 — Third Normal Form, BCNF와 비교하는 슬라이드

48. PostgreSQL 18에서 테이블의 SELECT 권한을 받은 사용자가 그 권한을 다른 사용자에게 다시 부여할 수 있게 하는 GRANT 옵션은?

[학습용 개정문항]

  1. ON UPDATE CASCADE
  2. WITH GRANT OPTION
  3. ON DELETE RESTRICT
  4. WITH ADMIN OPTION
정답과 해설 보기

정답: 2

정답은 ② WITH GRANT OPTION이다. 테이블의 SELECT 같은 객체 권한을 이 옵션과 함께 받으면 자신이 가진 해당 권한을 다른 사용자에게 다시 부여할 수 있다. 단순히 데이터를 조회할 수 있는 권한과 그 권한을 전달할 수 있는 권한을 구분한다.

부여 권한의 회수 시에는 REVOKE의 CASCADE를 통해 그 부여에 의존하는 권한도 회수할 수 있다. 다른 독립적인 경로로 받은 권한은 별도로 고려해야 한다. WITH ADMIN OPTION은 역할 멤버십의 관리와 관련되고 외래키의 ON UPDATE·ON DELETE 동작과도 목적이 다르다.

선지별 해설

  • ① 오답. 참조 키 갱신 시 외래키 값의 연쇄 갱신 옵션이다.
  • ② 정답. 객체 권한을 다른 사용자에게 다시 부여할 수 있게 한다.
  • ③ 오답. 참조 관계가 있는 행의 삭제 제한과 관련된다.
  • ④ 오답. 역할 멤버십을 관리하는 옵션과 구별된다.

편집 해설 근거: PostgreSQL 18, GRANT — Description: WITH GRANT OPTION; role membership의 ADMIN OPTION; PostgreSQL 18, REVOKE — CASCADE 및 dependent privileges

49. 모든 직원 중 영업 부서 평균 급여보다 급여가 높은 직원의 EmpID, Name, Dept, Salary를 조회하는 SQL은?

  1. SELECT EmpID,Name,Dept,Salary FROM Employees WHERE Dept='영업' AND Salary>(SELECT AVG(Salary) FROM Employees WHERE Dept='영업');
  2. SELECT EmpID,Name,Dept,Salary FROM Employees WHERE Salary>(SELECT AVG(Salary) FROM Employees WHERE Dept='영업');
  3. SELECT EmpID,Name,Dept,Salary FROM Employees WHERE Salary=(SELECT AVG(Salary) FROM Employees WHERE Dept='영업');
  4. SELECT EmpID,Name,Dept,Salary FROM Employees WHERE Dept='영업' OR Salary>(SELECT AVG(Salary) FROM Employees WHERE Dept='영업');
정답과 해설 보기

정답: 2

정답은 ②이다. 안쪽 조회에서 Dept가 영업인 직원들의 AVG(Salary)를 계산하고, 바깥 조회에서는 부서 제한 없이 모든 직원의 Salary를 그 값과 비교한다. 문제는 영업 직원만 고르라고 하지 않았으므로 바깥 WHERE에 부서 조건을 덧붙이면 범위가 좁아진다.

급여가 평균과 같으면 > 조건을 만족하지 않는다. AVG는 NULL 급여를 제외하며 영업 부서에 평균을 낼 유효한 급여가 없으면 결과는 NULL이다. 이때 Salary>NULL은 참이 아니므로 해당 조건으로 선택되는 행이 없다.

선지별 해설

  • ① 오답. 영업 부서 직원만 남겨 전체 직원이라는 요구를 만족하지 않는다.
  • ② 정답. 모든 직원의 급여를 영업 부서 평균과 비교한다.
  • ③ 오답. 평균보다 큰 급여가 아니라 같은 급여를 고른다.
  • ④ 오답. 영업 부서이면 평균 이하인 직원도 포함한다.

편집 해설 근거: PostgreSQL 18 — Aggregate Functions tutorial — AVG 및 입력이 없는 집계 결과; PostgreSQL 18 — SELECT — WHERE Clause

50. PostgreSQL 18의 시스템 카탈로그에 대한 설명으로 옳지 않은 것은?

[학습용 개정문항]

  1. 권한만 있으면 카탈로그를 직접 수정하는 것이 모든 상황에서 안전하고 권장된다.
  2. 카탈로그 정보를 SELECT로 조회할 수 있다.
  3. 데이터베이스 객체의 정의와 메타데이터를 관리한다.
  4. DBMS가 지원되는 객체 변경 명령에 맞추어 관리한다.
정답과 해설 보기

정답: 1

정답은 ①이다. PostgreSQL의 시스템 카탈로그는 테이블·열·자료형·권한 등 데이터베이스 객체의 메타데이터를 저장하는 영역이다. 일반 테이블처럼 SELECT로 조회할 수 있으며 DBMS가 객체 변경 명령에 맞춰 관리한다.

충분한 권한으로 일부 카탈로그를 직접 수정하는 것이 기술적으로 가능하더라도 그것이 안전하고 권장되는 일반 관리 방식은 아니다. 내부 일관성을 깨뜨릴 수 있으므로 지원되는 SQL 명령과 관리 절차를 사용해야 한다. 조회 가능성과 직접 변경의 안전성을 혼동하지 않는다.

선지별 해설

  • ① 정답. 직접 수정이 모든 상황에서 안전하다는 주장은 잘못이다.
  • ② 오답. 시스템 카탈로그의 정보를 SELECT로 조회할 수 있다.
  • ③ 오답. 객체의 정의와 메타데이터를 관리한다.
  • ④ 오답. DBMS가 객체 변경에 맞추어 관리한다.

편집 해설 근거: PostgreSQL 18, Chapter 52 System Catalogs — Chapter 52 introductory warning about modifying system catalogs

51. 데이터베이스 설계자가 다음 조건을 확인한다. 데이터 무결성(Data Integrity)에 대한 기술로 틀린 설명을 고르면?

  1. 성능 향상과 유연성 확보가 주목적이다.
  2. 데이터의 정확성과 일관성을 유지하는 것을 목적으로 한다.
  3. 데이터 변경 시 여러 제한을 두어 무결성을 보존한다.
  4. 개체, 참조, 사용자 정의 무결성 등이 있다.
정답과 해설 보기

정답: 1

정답은 ①이다. 데이터 무결성은 데이터가 정한 규칙을 지키며 정확하고 일관된 상태를 유지하도록 하는 성질이다. 입력·수정·삭제 과정에서 제약조건을 검사해 허용하지 않는 상태로 바뀌지 않게 한다.

기본키의 유일성과 NULL 제한, 외래키의 참조 관계, 업무 규칙을 표현한 CHECK 등이 그 수단이다. 이런 검사는 추가 비용이 들 수도 있으므로 성능 향상 자체가 주목적은 아니다. 유연성이나 처리 속도와 데이터가 올바른 상태인지의 문제를 구분해야 한다.

선지별 해설

  • ① 정답. 주목적은 성능·유연성이 아니라 데이터의 정확성과 일관성이다.
  • ② 오답. 무결성의 핵심 목적을 설명한다.
  • ③ 오답. 제약조건을 통해 허용되는 변경을 제한한다.
  • ④ 오답. 개체·참조 및 업무 규칙 등 여러 무결성 조건이 있다.

편집 해설 근거: PostgreSQL 18: Constraints — Constraints: Check, Not-Null, Primary Keys, Foreign Keys

52. 데이터베이스 설계자가 다음 조건을 확인한다. A 속성이 기본키이고 B 속성이 A 속성에 의해 결정된다면 함수 종속 관계를 올바르게 표현한 것은?

  1. A → B
  2. B → A
  3. A ← B
  4. A ↔ B
정답과 해설 보기

정답: 1

정답은 ① A→B이다. 함수 종속 A→B는 같은 A 값을 갖는 두 튜플이라면 B 값도 같아야 한다는 뜻이다. 왼쪽 A가 결정자이고 오른쪽 B가 그 값에 의해 결정되는 속성이다.

A가 기본키라면 한 행을 유일하게 식별하므로 그 행의 B도 결정한다. 그러나 B 값 하나가 여러 A에 나타날 수 있으므로 B→A까지 자동으로 성립하는 것은 아니다. 예를 들어 사원번호로 부서는 정해져도 같은 부서에 여러 사원번호가 있을 수 있다.

선지별 해설

  • ① 정답. 결정자 A에서 결정되는 속성 B로 화살표를 쓴다.
  • ② 오답. B가 A를 결정한다는 반대 방향이다.
  • ③ 오답. A←B 역시 B→A와 같은 뜻이다.
  • ④ 오답. 양방향 종속까지 주어지지 않았다.

편집 해설 근거: Ramakrishnan·Gehrke, Database Management Systems 3판, Chapter 19 저자 자료 — Functional Dependencies의 정의

53. PostgreSQL에서 부서별로 행을 묶어 집계하고 HAVING으로 그룹을 필터링하려 한다. 부서 값을 기준으로 그룹을 만드는 절은?

[학습용 개정문항]

  1. GROUP BY
  2. ORDER BY
  3. JOIN
  4. WHERE
정답과 해설 보기

정답: 1

정답은 ① GROUP BY이다. 부서 값별로 행을 묶어 집계하려면 GROUP BY에 부서 열을 지정한다. HAVING은 이렇게 생성한 그룹의 집계값 등에 조건을 적용하고 WHERE는 집계 전의 개별 행을 걸러 낸다.

HAVING을 쓰려면 문법상 언제나 GROUP BY가 있어야 하는 것은 아니다. PostgreSQL에서는 GROUP BY 없이 전체 입력을 하나의 그룹으로 보고 HAVING을 적용할 수 있다. 여기서는 부서마다 서로 다른 그룹을 만든다는 요구가 GROUP BY를 선택하는 직접적인 근거다.

선지별 해설

  • ① 정답. 기준 열의 값별로 행을 묶는다.
  • ② 오답. 결과 행의 정렬 순서를 정한다.
  • ③ 오답. 여러 테이블 등의 행을 연결하는 연산이다.
  • ④ 오답. 집계 전 개별 행에 조건을 적용한다.

편집 해설 근거: PostgreSQL 18 — SELECT — GROUP BY Clause; HAVING Clause

54. 다음 중 CREATE TABLE에서 열·테이블 제약을 선언하는 키워드가 아니라, 기존 테이블 정의를 변경하는 별도 명령 계열은?

[학습용 개정문항]

  1. FOREIGN KEY
  2. ALTER
  3. NOT NULL
  4. PRIMARY KEY
정답과 해설 보기

정답: 2

정답은 ② ALTER이다. CREATE TABLE에서는 열의 자료형과 NOT NULL 같은 열 제약, PRIMARY KEY와 FOREIGN KEY 같은 키 제약을 선언할 수 있다. 이들은 새 테이블의 구조와 허용될 데이터 규칙을 지정한다.

ALTER TABLE은 이미 존재하는 테이블의 정의를 바꾸는 별도의 명령이다. 따라서 CREATE TABLE 안에서 열이나 테이블의 제약을 지정하는 키워드라는 범위에는 맞지 않는다. 단순히 문자열이 문장 어디에 등장할 수 있는지가 아니라 각 SQL 구문의 역할을 비교해야 한다.

선지별 해설

  • ① 오답. 참조 관계를 지정하는 외래키 제약이다.
  • ② 정답. 기존 객체의 정의를 변경하는 별도 명령 계열이다.
  • ③ 오답. 열에 NULL을 허용하지 않는 제약이다.
  • ④ 오답. 테이블의 대표 식별 키를 선언하는 제약이다.

편집 해설 근거: PostgreSQL 18: Constraints — Constraints, CREATE TABLE 예제; PostgreSQL 18, ALTER TABLE — Description

55. 외래키에서 부모 행 삭제 시 참조하는 자식 행도 삭제하고, 부모 키 갱신 시 자식의 참조 값도 따라 갱신하도록 각 ON DELETE·ON UPDATE에 지정하는 동작은?

[학습용 개정문항]

  1. SET NULL
  2. RESTRICT
  3. NO ACTION
  4. CASCADE
정답과 해설 보기

정답: 4

정답은 ④ CASCADE이다. 외래키에서 ON DELETE CASCADE는 참조되는 부모 행을 삭제할 때 그 행을 참조하는 자식 행도 삭제한다. ON UPDATE CASCADE는 참조 대상 키 값이 바뀌면 자식의 참조 값도 함께 갱신한다.

SET NULL은 참조 열 값을 NULL로 바꾸는 다른 동작이다. RESTRICT와 NO ACTION은 참조 무결성 위반을 막는 방향이며 검사 시점 등의 차이가 있을 수 있다. CASCADE라고 해도 삭제와 갱신이 동일한 일을 하는 것은 아니므로 어떤 사건에 대한 옵션인지 함께 읽어야 한다.

선지별 해설

  • ① 오답. 자식 행 자체의 삭제가 아니라 참조 값을 NULL로 바꾼다.
  • ② 오답. 참조 관계에 위배되는 부모 변경을 제한한다.
  • ③ 오답. 제약 검사에서 위반 상태가 남지 못하게 한다.
  • ④ 정답. 삭제에는 자식 행 삭제, 키 갱신에는 참조 값 갱신을 연쇄 적용한다.

편집 해설 근거: PostgreSQL 18: Constraints — Foreign Keys, ON DELETE 및 ON UPDATE actions

56. 서버와 여러 저장장치를 Fibre Channel 등의 전용 저장 네트워크로 연결하고 서버에 블록 단위 접근을 제공하는 스토리지 구성은?

[학습용 개정문항]

  1. NAS
  2. SAN
  3. DAS
  4. KAS
정답과 해설 보기

정답: 2

정답은 ② SAN이다. SAN은 서버가 블록 단위로 저장장치에 접근할 수 있게 구성한 저장 전용 네트워크다. Fibre Channel은 SAN을 구성하는 대표 기술 중 하나이며 여러 서버와 저장 자원을 연결하여 관리할 수 있다.

NAS는 보통 NFS·SMB 같은 파일 접근을 제공하고 DAS는 호스트에 직접 부착된 저장 구조다. Fibre Channel을 쓴다는 사실만으로 언제나 SAN이라고 단정할 수는 없으므로 전용 네트워크와 블록 접근이라는 조건을 함께 확인한다. 성능과 가용성도 실제 장비·구성에 따라 달라진다.

선지별 해설

  • ① 오답. 일반적인 NAS는 파일 단위 접근을 제공한다.
  • ② 정답. 전용 저장 네트워크를 통한 블록 접근을 제공한다.
  • ③ 오답. 호스트에 직접 연결하는 저장 구조다.
  • ④ 오답. 제시한 저장 네트워크의 일반적인 분류 명칭이 아니다.

편집 해설 근거: IBM, What is a storage area network (SAN)? (2026-10-05 확인) — What is a storage area network?; SAN vs. NAS; IBM, Direct Attachment of Storwize and SAN Volume Controller Systems (2023-03-28) — Direct Attachment Definition

57. 데이터베이스 설계자가 다음 조건을 확인한다. 관계형 데이터베이스에서 두 릴레이션에 공통으로 존재하는 동일한 튜플만 추출하는 집합 연산자는?

  1. MINUS
  2. INTERSECT
  3. JOIN
  4. UNION
정답과 해설 보기

정답: 2

정답은 ② INTERSECT이다. 교집합은 양쪽 집합 모두에 존재하는 원소만 남기는 연산이다. 두 조회 결과에서 공통으로 존재하는 행을 구하는 SQL의 INTERSECT가 이에 대응한다. 기본 형태는 결과의 중복 행을 제거한다.

두 입력은 열 수가 같고 대응하는 열의 자료형이 호환되어야 한다. UNION은 어느 쪽에든 있는 행을 모으며 MINUS는 이를 지원하는 DBMS에서 왼쪽에만 있는 행을 남긴다. JOIN은 조건에 맞는 행들을 연결하는 연산으로 전체 행의 공통 부분을 구하는 교집합과 다르다.

선지별 해설

  • ① 오답. MINUS는 차집합이다.
  • ② 정답. 두 입력에 공통으로 존재하는 행을 남긴다.
  • ③ 오답. 조건에 따라 행들을 연결하는 조인이다.
  • ④ 오답. 어느 입력에든 존재하는 행을 모으는 합집합이다.

편집 해설 근거: PostgreSQL 18 — SELECT — The INTERSECT Clause; UNION and EXCEPT clauses; Ramakrishnan·Gehrke, Database Management Systems 3판, Relational Algebra 저자 자료 — Union, Intersection, Set-Difference, Join

58. SQL SELECT * FROM Books WHERE sales BETWEEN 200 AND 400 ORDER BY sales DESC;의 의미는?

  1. 판매량 200 이상 400 미만을 오름차순 조회
  2. 판매량 200 이상 400 이하를 내림차순 조회
  3. 판매량 200 초과 400 미만을 내림차순 조회
  4. 판매량 200 초과 400 미만을 오름차순 조회
정답과 해설 보기

정답: 2

정답은 ② 판매량 200 이상 400 이하를 내림차순 조회한다는 뜻이다. BETWEEN 200 AND 400은 양 끝값을 포함하므로 sales>=200 AND sales<=400과 같은 범위를 지정한다.

ORDER BY sales DESC는 선택된 행을 판매량이 큰 것부터 작은 것 순으로 정렬한다. 400과 200도 결과에 포함되고 199나 401은 제외된다. sales가 NULL인 행은 이 범위 조건이 참이 아니므로 선택되지 않는다. 판매량이 같은 행들 사이의 추가 순서는 이 SQL만으로 정해지지 않는다.

선지별 해설

  • ① 오답. 상한 400을 제외하지 않으며 정렬도 내림차순이다.
  • ② 정답. 양 끝값을 포함하고 큰 판매량부터 정렬한다.
  • ③ 오답. 200과 400도 범위에 포함된다.
  • ④ 오답. 양 끝값의 포함 여부와 정렬 방향이 모두 다르다.

편집 해설 근거: PostgreSQL 18, Comparison Functions and Operators — BETWEEN, ordinary comparison predicates; PostgreSQL 18 — SELECT — ORDER BY Clause

59. 데이터베이스 설계자가 다음 조건을 확인한다. 해시 함수의 종류에 해당하지 않는 것은?

  1. 숫자 분석법
  2. 제산법
  3. 폴딩법
  4. 선형 탐사법
정답과 해설 보기

정답: 4

정답은 ④ 선형 탐사법이다. 해시 함수는 키에서 해시 테이블의 위치를 계산하는 규칙이다. 제산법은 나머지를, 폴딩법은 나눈 키 부분의 결합을 활용하며 숫자 분석법은 키의 자릿값 분포 등을 고려해 위치를 계산한다.

선형 탐사는 계산된 위치에 이미 다른 항목이 있을 때 뒤의 슬롯을 차례로 살펴 빈 곳을 찾는 충돌 해결 방법이다. 해시 위치를 처음 계산하는 단계와 충돌 뒤 다른 저장 위치를 찾는 단계를 구별해야 한다. 해시 함수가 적절해도 충돌 가능성을 모두 없애는 것은 아니다.

선지별 해설

  • ① 오답. 키의 자릿값 특성을 이용한 주소 계산 방법이다.
  • ② 오답. 키를 테이블 크기 등의 값으로 나눈 나머지를 활용한다.
  • ③ 오답. 키를 나눈 부분들을 결합해 해시값을 계산한다.
  • ④ 정답. 이미 발생한 충돌을 연속 슬롯 탐색으로 해결한다.

편집 해설 근거: NIST DADS, hash function — Definition; NIST DADS, linear probing — Definition; Sartaj Sahni, Data Structures, Algorithms, & Applications in C++ (2004), Hash Functions — Folding; Digit Analysis

60. ISTQB 소프트웨어 테스트 용어에서 error의 의미로 가장 적절한 것은?

[학습용 개정문항]

  1. 잘못된 코드로 인해 포함되는 완전하지 못한 부분
  2. 결함의 원인이 되는 사람의 실수나 오해
  3. 완전하지 못한 부분에 의해 의도하지 않은 결과 발생
  4. 프로그램의 결함을 찾아 수정하는 작업
정답과 해설 보기

정답: 2

정답은 ② 사람의 실수나 오해이다. ISTQB 용어에서 error는 잘못된 결과를 낳는 사람의 행동을 뜻한다. 요구를 잘못 이해하거나 조건을 빠뜨리는 실수가 코드·문서의 defect, 즉 결함으로 이어질 수 있다.

그 결함이 실행 과정에서 드러나 의도한 기능을 수행하지 못하면 failure라고 한다. 모든 결함이 모든 실행에서 실패를 일으키는 것은 아니다. 디버깅은 이러한 결함의 원인을 찾아 수정하는 활동으로 사람의 오류 그 자체를 뜻하지 않는다.

선지별 해설

  • ① 오답. 산출물 안의 잘못된 부분은 결함(defect)에 해당한다.
  • ② 정답. 잘못된 결과를 낳는 사람의 실수나 오해다.
  • ③ 오답. 실행 시 기대와 다른 동작은 실패(failure)에 해당한다.
  • ④ 오답. 원인을 찾고 수정하는 것은 디버깅이다.

편집 해설 근거: ISTQB CTFL 2018 Syllabus v3.1.1 (2021-07-01) — §1.2.3 Errors, Defects and Failures; §1.1.2 Testing and Debugging

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

61. C11의 다음 연산자 중 우선순위가 가장 높은 것은?

[학습용 개정문항]

  1. 곱셈 * (a * b)
  2. 관계 비교 < (a < b)
  3. 논리 AND && (a && b)
  4. 단항 논리 부정 ! (!a)
정답과 해설 보기

정답: 4

정답은 ④ 단항 !이다. C11의 표현식 구문에서 단항 연산은 곱셈보다 강하게 결합하고, 곱셈은 관계 비교보다, 관계 비교는 논리 AND보다 강하게 결합한다. 주어진 네 연산의 우선순위는 !, *, <, && 순이다.

단항 +와 -도 산술 연산에 포함될 수 있으므로 산술·단항이라는 넓은 분류만 비교하면 범위가 겹친다. 따라서 구체적인 연산자를 기준으로 비교해야 한다. 우선순위는 식의 묶임을 정하며 피연산자의 실제 평가 순서를 모두 보장하는 규칙은 아니다.

선지별 해설

  • ① 오답. 곱셈은 단항 !보다 우선순위가 낮다.
  • ② 오답. 관계 비교는 단항·곱셈보다 뒤에 결합한다.
  • ③ 오답. 논리 AND는 제시한 연산 중 가장 낮은 우선순위다.
  • ④ 정답. 피연산자 하나에 적용하는 논리 부정이 가장 강하게 결합한다.

편집 해설 근거: ISO/IEC JTC1/SC22/WG14, C11 committee draft N1570 (2011-04-12) — §6.5.3 Unary; §6.5.5 Multiplicative; §6.5.8 Relational; §6.5.13 Logical AND

62. 프로그램과 운영환경을 분석하여 다음 물음에 답한다. 객체 지향 프로그래밍에서 객체 간 통신을 위해 서로 주고받는 인터페이스이자 객체들이 메서드를 수행하도록 하는 것은?

  1. 메시지
  2. 메소드
  3. 클래스
  4. 객체
정답과 해설 보기

정답: 1

정답은 ① 메시지이다. 객체지향에서 메시지는 다른 객체에 어떤 동작을 수행해 달라고 보내는 요청을 뜻한다. 언어에 따라 메서드 호출 등으로 표현하며 요청받은 객체의 동작을 실행하도록 한다.

메서드는 객체가 제공하는 동작의 구현이나 정의이고 클래스는 공통 상태와 행동을 정의하는 틀이다. 객체는 그 상태와 행동을 갖는 구체적인 개체다. 여기서 메시지는 객체 사이의 개념적 요청을 가리키며 반드시 네트워크 패킷이나 문자열을 전송한다는 뜻은 아니다.

선지별 해설

  • ① 정답. 다른 객체에 동작 수행을 요청하는 개념이다.
  • ② 오답. 요청에 따라 수행될 동작의 정의·구현이다.
  • ③ 오답. 공통 속성과 행동을 정의하는 틀이다.
  • ④ 오답. 상태와 행동을 갖는 구체적인 개체다.

편집 해설 근거: Oracle Java Tutorials (JDK 8), What Is an Object? — What Is an Object?, objects interact through methods

63. 일반적인 클래스 기반 객체지향의 클래스와 인스턴스 관계에 대한 설명으로 옳지 않은 것은?

[학습용 개정문항]

  1. 객체가 가지는 속성과 객체가 수행하는 메서드를 정의한다.
  2. 객체의 타입을 정의하고 구현하는 틀이다.
  3. 유사한 성격을 가진 객체들의 공통 특성을 추상화한 타입이다.
  4. 객체의 인스턴스이며 객체의 속성과 메서드를 가지고 있다.
정답과 해설 보기

정답: 4

정답은 ④이다. 일반적인 클래스 기반 객체지향 모델에서 클래스는 인스턴스의 공통 속성과 메서드를 정의하는 틀이다. 그 클래스를 바탕으로 생성한 구체적인 객체를 클래스의 인스턴스라고 하므로 보기의 설명은 관계를 뒤집었다.

예를 들어 Account 클래스가 잔액과 입출금 동작을 정의한다면 개별 계좌 객체는 각자의 잔액 상태를 가진다. Python 등에서는 클래스 자체도 언어 실행 모델의 객체로 다룰 수 있지만, 그것이 이 기본적인 클래스와 인스턴스의 정의를 뒤바꾸지는 않는다.

선지별 해설

  • ① 오답. 인스턴스의 공통 속성과 메서드를 정의한다.
  • ② 오답. 객체의 타입과 동작을 정의하는 틀이다.
  • ③ 오답. 유사한 객체의 공통 특성을 추상화한다.
  • ④ 정답. 구체적 객체가 클래스의 인스턴스이며 기본 관계를 뒤집었다.

편집 해설 근거: Python 3 공식 자습서, 9 Classes — §9.3 A First Look at Classes, Class Objects 및 Instance Objects

64. 럼바우의 OMT(Object Modeling Technique)에서 구분하는 세 기본 모델의 명칭에 포함되지 않는 것은?

[학습용 개정문항]

  1. 객체 모델링
  2. 동적 모델링
  3. 기능 모델링
  4. 성능 모델링
정답과 해설 보기

정답: 4

정답은 ④ 성능 모델링이다. 럼바우의 OMT가 구분하는 세 가지 기본 모델은 객체 모델, 동적 모델, 기능 모델이다. 각각 구조, 사건에 따른 변화, 데이터 변환이라는 서로 다른 관점에서 대상을 이해한다.

객체 모델은 정적인 구조를 나타내므로 정적이라는 말을 무조건 OMT와 무관하다고 하면 부정확하다. 다만 성능 모델링은 이 세 가지의 명칭에 포함되지 않는다. 실제 프로젝트에서 성능을 분석할 수 없다는 뜻이 아니라 OMT의 기본 모델 분류를 묻는 것이다.

선지별 해설

  • ① 오답. 객체와 관계의 구조를 다루는 기본 모델이다.
  • ② 오답. 사건과 상태 변화 등을 다루는 기본 모델이다.
  • ③ 오답. 데이터의 변환과 기능을 다루는 기본 모델이다.
  • ④ 정답. OMT의 명명된 세 기본 모델 중 하나는 아니다.

편집 해설 근거: Dov Dori, On Bridging the Analysis–Design and Structure–Behavior Grand Canyons with Object Paradigms (1996), 저자 제공 원문 — §2 OMT, object/dynamic/functional model 설명

65. 동일한 작업 범위를 보호할 때 잠금 단위를 행에서 테이블처럼 더 크게 하면 일반적으로 나타나는 절충 관계는?

[학습용 개정문항]

  1. 로크 수가 많아져 오버헤드가 증가한다.
  2. 병행성 수준이 낮아지고 오버헤드는 감소한다.
  3. 다수 트랜잭션 동시 수행에 적합하다.
  4. 병행성 수준이 높아지고 오버헤드가 증가한다.
정답과 해설 보기

정답: 2

정답은 ②이다. 같은 범위의 데이터를 보호할 때 행별로 많은 잠금을 거는 대신 테이블처럼 큰 단위를 잠그면 관리할 잠금 수를 줄일 수 있다. 따라서 잠금 관리의 메모리·처리 부담은 대체로 감소한다.

반면 실제로 건드리지 않는 행까지 같은 잠금 범위에 들어가 다른 트랜잭션이 기다릴 가능성이 커진다. 작은 단위 잠금은 더 세밀한 동시 처리를 허용하지만 관리 비용이 늘 수 있다. 이는 일반적인 절충 관계이며 실제 처리량은 접근 패턴과 잠금 모드에 따라 달라진다.

선지별 해설

  • ① 오답. 같은 작업 범위라면 큰 단위 잠금은 보통 잠금 수를 줄인다.
  • ② 정답. 관리 비용은 줄기 쉽지만 동시 접근 범위가 제한된다.
  • ③ 오답. 독립된 작은 영역을 동시에 쓰는 데는 더 세밀한 잠금이 유리할 수 있다.
  • ④ 오답. 동시성이 높아진다는 방향이 일반적인 절충 관계와 반대다.

편집 해설 근거: IBM Db2 11.5, Lock granularity — Lock granularity, row and table locks

66. GoF 디자인 패턴의 목적별 분류에서 생성 패턴에 해당하지 않는 것은?

[학습용 개정문항]

  1. Builder
  2. Decorator
  3. Factory Method
  4. Abstract Factory
정답과 해설 보기

정답: 2

정답은 ② Decorator이다. Decorator는 기존 객체를 감싸 같은 인터페이스를 유지하면서 추가 책임을 동적으로 부여하는 구조 패턴이다. 객체 생성 과정을 추상화하는 생성 패턴과 목적이 다르다.

Builder는 복잡한 객체의 구성 절차를 분리하고, Factory Method는 생성할 객체의 구체적인 선택을 하위 구현에 맡긴다. Abstract Factory는 관련된 객체군을 구체 클래스에 직접 의존하지 않고 생성하도록 한다. 패턴의 이름보다 해결하려는 설계 문제를 기준으로 분류하면 구별하기 쉽다.

선지별 해설

  • ① 오답. 복잡한 객체를 단계적으로 구성하는 생성 패턴이다.
  • ② 정답. 객체를 감싸 책임을 추가하는 구조 패턴이다.
  • ③ 오답. 객체 생성의 구체적 선택을 분리하는 생성 패턴이다.
  • ④ 오답. 관련 객체군을 생성하는 인터페이스를 제공하는 생성 패턴이다.

편집 해설 근거: Douglas C. Schmidt, Object-Oriented Patterns & Frameworks — GoF pattern classification 및 creational/structural patterns

67. 프로그램과 운영환경을 분석하여 다음 물음에 답한다. 가상기억장치 관리 기법 설명의 올바른 조합은? <보기> ㄱ: 프로그램/메모리를 동일한 크기의 페이지와 프레임으로 나누어 적재하는 기법 ㄴ: 프로그램/메모리를 다양한 크기의 논리적 세그먼트로 나누어 적재하는 기법

  1. ㄱ: 스와핑, ㄴ: 오버레이
  2. ㄱ: 페이징, ㄴ: 세그먼테이션
  3. ㄱ: 세그먼테이션, ㄴ: 페이징
  4. ㄱ: 오버레이, ㄴ: 스와핑
정답과 해설 보기

정답: 2

정답은 ② ㄱ 페이징, ㄴ 세그먼테이션이다. 페이징은 가상 주소 공간을 고정 크기의 페이지로 나누고 물리 메모리의 같은 크기 프레임에 대응시킨다. 세그먼테이션은 코드·데이터·스택 같은 논리적 부분을 가변 크기로 다룬다.

페이징에서는 마지막 페이지에 사용하지 않는 공간이 남아 내부 단편화가 발생할 수 있다. 기본적인 연속 배치 세그먼테이션에서는 가변 크기 빈 공간 사이에 외부 단편화가 생길 수 있다. 스와핑은 메모리와 보조 저장장치 사이의 이동 개념이며 이 두 분할 방식의 명칭을 대신하지 않는다.

선지별 해설

  • ① 오답. 고정·가변 논리 단위의 대응을 설명하지 못한다.
  • ② 정답. 고정 크기는 페이징, 가변 논리 단위는 세그먼테이션이다.
  • ③ 오답. 두 분할 방식의 설명이 뒤바뀌었다.
  • ④ 오답. 오버레이·스와핑은 제시한 두 주소 공간 분할의 이름이 아니다.

편집 해설 근거: Arpaci-Dusseau, OSTEP v1.10, 18 Paging: Introduction — Paging: Introduction, pages and page frames; Arpaci-Dusseau, OSTEP v1.10, 16 Segmentation — Segmentation, base/bounds pairs와 free-space 문제

68. SOLID 객체지향 설계 원칙에 대한 설명으로 옳지 않은 것은?

[학습용 개정문항]

  1. 관련 없는 책임도 가능한 많이 한 클래스에 모으면 응집도가 높아진다.
  2. 확장을 지원하면서 안정된 기존 코드를 변경으로부터 보호한다.
  3. 하위 타입은 상위 타입을 기대하는 사용자의 계약을 깨뜨리지 않아야 한다.
  4. 클라이언트가 사용하지 않는 인터페이스에 의존하지 않게 분리한다.
정답과 해설 보기

정답: 1

정답은 ①이다. 단일 책임 원칙은 서로 다른 이유로 변경되는 책임을 무분별하게 한 클래스에 모으지 않도록 한다. 관련 없는 책임을 많이 부여한다고 응집도가 높아지는 것은 아니며 오히려 변경의 영향이 얽히기 쉽다.

개방·폐쇄 원칙은 확장을 지원하면서 안정된 기존 코드를 보호하려는 방향이고, 리스코프 치환 원칙은 하위 타입을 상위 타입 대신 써도 기대되는 동작을 깨뜨리지 않도록 한다. 인터페이스 분리는 단순히 인터페이스 개수를 늘리는 것이 아니라 클라이언트가 불필요한 기능에 의존하지 않게 하는 원칙이다.

선지별 해설

  • ① 정답. 서로 무관한 책임을 모으는 것은 단일 책임·높은 응집의 방향과 반대다.
  • ② 오답. 확장에는 열리고 기존 코드는 변경으로부터 보호하려는 원칙이다.
  • ③ 오답. 하위 타입이 상위 타입의 사용 계약을 깨뜨리지 않아야 한다.
  • ④ 오답. 클라이언트에 필요한 인터페이스만 의존하게 하는 원칙이다.

편집 해설 근거: Robert C. Martin, Solid Relevance (2020-10-18) — SOLID의 SRP, OCP, LSP, ISP 설명

69. 프로그램과 운영환경을 분석하여 다음 물음에 답한다. UNIX/Linux 시스템에서 파일이나 디렉터리의 접근 권한을 변경하는 데 사용되는 명령어는?

  1. ls
  2. chmod
  3. mv
  4. cp
정답과 해설 보기

정답: 2

정답은 ② chmod이다. chmod는 파일이나 디렉터리의 모드 비트를 변경하는 명령이다. 소유자·그룹·기타 사용자의 읽기·쓰기·실행 허용 등을 기호식이나 숫자식으로 지정할 수 있다.

ls는 파일 목록과 속성을 보여 주고 mv는 이름 변경·이동, cp는 복사를 수행한다. 권한을 확인하는 것과 권한을 바꾸는 것은 다른 작업이다. chmod로 변경하려면 해당 파일의 소유자이거나 필요한 권한을 가져야 하며, 디렉터리의 실행 비트는 경로 탐색과 관련된다.

선지별 해설

  • ① 오답. 파일 목록과 속성 확인에 사용한다.
  • ② 정답. 파일·디렉터리의 권한 모드 비트를 바꾼다.
  • ③ 오답. 파일의 이동이나 이름 변경에 사용한다.
  • ④ 오답. 파일을 복사하는 명령이다.

편집 해설 근거: POSIX.1-2024 Issue 8, chmod utility — NAME; DESCRIPTION; Symbolic Mode 및 OPERANDS

70. UNIX의 구성 요소에 대한 설명으로 옳지 않은 것은?

[학습용 개정문항]

  1. 유틸리티는 편집·파일 처리 등의 기능을 제공한다.
  2. 파일과 디렉터리는 계층적으로 조직된다.
  3. 커널은 프로세스·메모리·입출력 장치 등의 핵심 자원을 관리한다.
  4. 셸은 커널을 대신해 물리 메모리 할당과 CPU 스케줄링을 직접 수행한다.
정답과 해설 보기

정답: 4

정답은 ④이다. 커널은 프로세스 실행, 메모리와 입출력 장치 등 핵심 자원을 관리한다. 셸은 사용자의 명령을 해석해 프로그램 실행과 입출력 연결 등을 요청하는 사용자 공간의 인터페이스다.

셸이 작업을 시작하거나 백그라운드 작업을 관리할 수는 있지만, 커널을 대신해 물리 메모리 할당이나 CPU 스케줄링의 핵심 기능을 직접 맡는 것은 아니다. 유틸리티는 편집·파일 처리 등의 기능을 제공하고 파일 시스템은 디렉터리를 통한 계층 구조를 제공한다.

선지별 해설

  • ① 오답. 유틸리티는 편집·파일 처리 등의 도구를 제공한다.
  • ② 오답. 파일과 디렉터리를 계층적으로 조직할 수 있다.
  • ③ 오답. 커널은 프로세스·메모리·입출력의 핵심 관리 주체다.
  • ④ 정답. 셸의 명령 해석·작업 제어를 커널의 자원 관리와 혼동했다.

편집 해설 근거: Ritchie·Thompson, The UNIX Time-Sharing System (1978 개정본) — The File System; Processes; The Shell; POSIX.1-2024 Issue 8, Shell Command Language — Shell Introduction; Command Search and Execution

71. HRN에서 A(실행15,대기18), B(실행12,대기24), C(실행25,대기20), D(실행4,대기10) 중 가장 먼저 선택되는 프로세스는?

  1. A
  2. B
  3. C
  4. D
정답과 해설 보기

정답: 4

정답은 ④ D이다. HRN 또는 HRRN은 대기 시간 W와 예상 서비스 시간 S를 이용해 응답 비율 (W+S)/S를 구하고 가장 큰 프로세스를 선택한다. 실행 시간 자체가 긴 순서나 대기 시간만 긴 순서로 고르는 방법이 아니다.

A는 (18+15)/15=2.2, B는 (24+12)/12=3, C는 (20+25)/25=1.8, D는 (10+4)/4=3.5다. 최댓값은 D의 3.5이므로 현재 제시된 대기 상태에서 D가 먼저 선택된다. 오래 기다리면 비율이 커지는 항이 있다는 점이 단순한 최단 작업 우선과 다르다.

선지별 해설

  • ① 오답. A의 비율은 2.2다.
  • ② 오답. B의 비율은 3으로 D보다 작다.
  • ③ 오답. C의 비율은 1.8이다.
  • ④ 정답. D의 비율 3.5가 가장 크다.

편집 해설 근거: Virginia Tech CS3204, Scheduling Analysis (2005) — Highest Response Ratio Next, response ratio 공식

72. 다음 C11 프로그램의 출력은?

#include <stdio.h>
int main(void) {
    printf("%d %d %d", 5 > 3, 4 == 4, 10 >> 3);
    return 0;
}

[학습용 개정문항]

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

정답: 2

정답은 ② 1 1 1이다. C에서 관계·동등 비교의 결과는 조건이 참이면 int 값 1, 거짓이면 0이다. 5>3과 4==4는 모두 참이므로 앞의 두 출력값은 1이다.

10의 이진 표현 1010을 오른쪽으로 세 자리 옮기면 1이 된다. 피연산자가 양의 int이고 이동 수가 허용 범위여서 이 연산의 결과가 정해진다. printf 서식 안의 공백이 각 값 사이에 한 칸씩 출력되므로 최종 문자열은 1 1 1이다.

선지별 해설

  • ① 오답. 5>3은 참이므로 첫 값은 1이다.
  • ② 정답. 두 비교가 모두 참이고 10>>3도 1이다.
  • ③ 오답. 4==4와 오른쪽 이동의 결과를 잘못 계산했다.
  • ④ 오답. 두 비교 결과 모두 1이어야 한다.

편집 해설 근거: ISO/IEC JTC1/SC22/WG14, C11 committee draft N1570 (2011-04-12) — §6.5.8 Relational; §6.5.9 Equality; §6.5.7 Bitwise shift; §7.21.6.1 fprintf

73. 다음 C11 프로그램의 출력은?

#include <stdio.h>
int main(void) {
    int sum = 0;
    for (int i = 1; i < 10; i += 2) {
        sum += i;
    }
    printf("%d", sum);
    return 0;
}

[학습용 개정문항]

  1. 25
  2. 55
  3. 50
  4. 30
정답과 해설 보기

정답: 1

정답은 ① 25이다. i는 1에서 시작하고 반복할 때마다 2씩 증가한다. i<10인 동안 실행하므로 더해지는 값은 1, 3, 5, 7, 9의 다섯 개다.

sum의 변화는 0→1→4→9→16→25이며 다음 i가 11이 되면 조건이 거짓이 되어 종료한다. 1부터 10까지의 모든 정수를 더하는 반복문이 아니고 10도 포함되지 않는다. 제시된 값은 int 범위 안에 있어 정수 오버플로 없이 결과를 계산할 수 있다.

선지별 해설

  • ① 정답. 1+3+5+7+9=25다.
  • ② 오답. 1부터 10까지 모두 더한 값이며 이 반복과 다르다.
  • ③ 오답. 실제로 더해지는 다섯 홀수의 합이 아니다.
  • ④ 오답. 종료 조건과 증가 간격에 맞는 합이 아니다.

편집 해설 근거: ISO/IEC JTC1/SC22/WG14, C11 committee draft N1570 (2011-04-12) — §6.8.5.3 The for statement; §6.5.16.2 Compound assignment

74. 다음 C11 프로그램의 출력은?

#include <stdio.h>
#include <stddef.h>
int main(void) {
    int a[5] = {4, 0, 0, 0, 0};
    int *p = a;
    ptrdiff_t result = (a + 4) - p + a[0];
    printf("%td", result);
    return 0;
}

[학습용 개정문항]

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

정답: 3

정답은 ③ 8이다. p는 배열의 첫 원소를 가리키고 a+4는 같은 배열의 다섯 번째 원소를 가리킨다. 같은 배열 안의 포인터 차이는 바이트 수가 아니라 원소 위치의 차이이므로 (a+4)-p는 4다.

여기에 a[0]의 값 4를 더하면 8이 된다. 배열 범위 안의 포인터끼리 뺀 것이므로 이 조건에서는 유효한 연산이다. 결과를 ptrdiff_t에 저장하고 %td로 출력한다. int가 몇 바이트인지는 원소 간 차이 4를 계산하는 답에 영향을 주지 않는다.

선지별 해설

  • ① 오답. 두 포인터가 같은 원소를 가리키지 않는다.
  • ② 오답. 포인터 차이만 계산하고 a[0]의 덧셈을 빠뜨렸다.
  • ③ 정답. 원소 위치 차이 4에 첫 원소 값 4를 더한다.
  • ④ 오답. 같은 배열 범위 안의 포인터 차이로 유효하다.

편집 해설 근거: ISO/IEC JTC1/SC22/WG14, C11 committee draft N1570 (2011-04-12) — §6.5.6 Additive operators, pointer subtraction; §7.21.6.1 t length modifier

75. 다음 Java 17 프로그램의 출력은?

public class Main {
    public static void main(String[] args) {
        try {
            System.out.print(5 / 5);
        } catch (Exception e) {
            System.out.print("err");
        } finally {
            System.out.print("Done");
        }
    }
}

[학습용 개정문항]

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

정답: 2

정답은 ② 1Done이다. 5/5는 0으로 나누는 연산이 아니므로 정상적으로 정수값 1을 계산한다. try 블록이 1을 출력하고 정상 종료하여 catch 블록의 err는 출력되지 않는다.

그 후 finally 블록이 실행되어 Done을 이어서 출력한다. 두 호출 모두 print를 사용하므로 사이에 공백이나 줄바꿈이 추가되지 않는다. 일반적인 정상 흐름과 예외 흐름에서 finally가 실행되지만 강제 프로세스 종료 같은 별도 상황까지 무조건 실행된다고 확대해서 외우지는 않는다.

선지별 해설

  • ① 오답. try에서 먼저 출력하는 1이 빠졌다.
  • ② 정답. try의 1 뒤에 finally의 Done이 붙는다.
  • ③ 오답. 제시된 try에서는 예외가 발생하지 않는다.
  • ④ 오답. 정상 흐름에서도 finally의 Done이 출력된다.

편집 해설 근거: Oracle Java SE 17 Language Specification, Chapter 14 Blocks and Statements — §14.20.2 Execution of try-finally and try-catch-finally; Oracle Java SE 17 Language Specification, Chapter 15 Expressions — §15.17.2 Division Operator

76. C11에서 다음 문장들은 각각 독립적으로 실행한다. <stdio.h>를 포함하고 외부 중단은 없다고 할 때, 반복 조건에 의해 스스로 종료하는 것은?

[학습용 개정문항]

  1. for (;;) { putchar('.'); }
  2. for (; 1;) { putchar('.'); }
  3. for (; 2;) { putchar('.'); }
  4. for (int i = 0; i < 10; i++) { putchar('.'); }
정답과 해설 보기

정답: 4

정답은 ④이다. 네 반복문에서 본문이 모두 putchar로 점 하나를 출력하며 break·return·프로세스 종료 같은 외부 중단이 없다고 가정한다. ④는 i=0부터 9까지 열 번 실행한 뒤 i가 10이 되면 조건이 거짓이 되어 종료한다.

①은 조건식을 생략했고, ②와 ③은 0이 아닌 상수 조건이므로 반복을 계속한다. C에서는 조건의 참을 반드시 숫자 1만으로 표현해야 하는 것이 아니다. ①~③에는 정수 변수를 계속 증가시키는 연산이 없으므로 signed 정수 오버플로를 고려할 필요가 없다.

선지별 해설

  • ① 오답. 생략한 반복 조건은 참인 것으로 취급된다.
  • ② 오답. 상수 1은 항상 참이다.
  • ③ 오답. 상수 2도 0이 아니므로 참이다.
  • ④ 정답. i가 0~9인 동안 열 번 실행하고 끝난다.

편집 해설 근거: ISO/IEC JTC1/SC22/WG14, C11 committee draft N1570 (2011-04-12) — §6.8.5 Iteration statements; §6.8.5.3 for, omitted expression

77. 다음 Java 17 프로그램의 출력은?

public class Main {
    public static void main(String[] args) {
        int[] arr = new int[4];
        for (int i = 0; i < arr.length; i++) {
            arr[i] = i;
        }
        for (int value : arr) {
            System.out.print(value);
        }
    }
}

[학습용 개정문항]

  1. 0000
  2. 0123
  3. 1234
  4. 3333
정답과 해설 보기

정답: 2

정답은 ② 0123이다. 길이가 4인 int 배열의 인덱스는 0, 1, 2, 3이다. 첫 반복에서 각 arr[i]에 i를 대입하므로 배열은 차례로 [0,1,2,3]이 된다.

두 번째 반복은 배열 원소를 앞에서부터 읽고 print로 출력한다. print는 각 숫자 뒤에 공백이나 줄바꿈을 자동으로 넣지 않으므로 네 숫자가 붙어 0123이 된다. 처음 생성할 때의 기본값 0과 첫 반복을 실행한 뒤의 배열 내용을 구별해야 한다.

선지별 해설

  • ① 오답. 대입하기 전 배열의 초기 상태를 출력한 경우와 혼동했다.
  • ② 정답. 인덱스 0~3을 저장한 뒤 그 순서로 출력한다.
  • ③ 오답. 인덱스는 1이 아니라 0부터 시작한다.
  • ④ 오답. 모든 원소에 마지막 i를 저장하는 코드가 아니다.

편집 해설 근거: Oracle Java SE 17 Language Specification, Chapter 14 Blocks and Statements — §14.14.1 Basic for; §14.14.2 Enhanced for; Oracle Java SE 17 API, java.io.PrintStream — print(int)

78. C11에서 int a = 4;로 초기화했다. 다음 중 a * 2와 결과가 같은 식은?

[학습용 개정문항]

  1. a + 4
  2. a / 2
  3. a >> 2
  4. a << 2
정답과 해설 보기

정답: 1

정답은 ① a+4이다. a가 4이므로 a*2는 8이고 a+4도 8이다. 나머지 식은 a/2=2, a>>2=1, a<<2=16이므로 같은 결과가 아니다.

이 비교는 C11의 int a=4라는 구체적인 값과 형식에서 이루어진다. 모든 a에 대해 a+4가 a*2와 같다는 항등식은 아니며 a가 4일 때만 여기서 일치한다. 또한 양수 4의 이동 결과는 int 범위 안이므로 음수의 이동이나 오버플로 문제와 구별할 수 있다.

선지별 해설

  • ① 정답. 4+4=8로 목표값과 같다.
  • ② 오답. 정수 나눗셈 4/2는 2다.
  • ③ 오답. 0100을 오른쪽 두 자리 옮기면 1이다.
  • ④ 오답. 4를 왼쪽 두 자리 옮기면 16이다.

편집 해설 근거: ISO/IEC JTC1/SC22/WG14, C11 committee draft N1570 (2011-04-12) — §6.5.5 Multiplicative; §6.5.6 Additive; §6.5.7 Bitwise shift

79. 다음 Python 3 코드의 빈칸에 들어갈 키워드는? score는 정수로 정의되어 있다.

if score >= 90:
    grade = "A"
____ score >= 80:
    grade = "B"
else:
    grade = "C"

[학습용 개정문항]

  1. elseif
  2. else if
  3. elif
  4. elif:
정답과 해설 보기

정답: 3

정답은 ③ elif이다. Python의 if 문은 조건을 위에서 아래로 검사하고 처음 참이 된 분기의 본문 하나를 실행한다. 첫 조건이 거짓이면 elif 뒤의 다른 조건을 이어 검사할 수 있다.

올바른 형태는 elif score >= 80:처럼 키워드, 조건, 콜론 순이다. elseif나 else if는 Python의 해당 키워드가 아니며 elif:처럼 키워드 바로 뒤에 콜론을 붙이면 필요한 조건이 빠진다. 모든 조건이 거짓인 나머지 경우에는 조건식 없는 else를 사용할 수 있다.

선지별 해설

  • ① 오답. elseif는 Python 키워드가 아니다.
  • ② 오답. Python은 이 분기에 두 단어 else if를 쓰지 않는다.
  • ③ 정답. 뒤에 조건식을 이어 쓰는 올바른 키워드다.
  • ④ 오답. 조건식 앞에 콜론을 붙이는 형태는 맞지 않는다.

편집 해설 근거: Python 3.14 Language Reference, 8.1 The if statement — The if statement

80. C11에서 short n = 3.654;를 실행하면 n에 3이 저장된다. 이때 소수 부분이 사라지는 이유는?

[학습용 개정문항]

  1. 문자형 데이터를 저장하는 데 사용되기 때문이다.
  2. 실수형 데이터를 저장할 수 없어 소수점 이하가 손실되기 때문이다.
  3. 메모리 공간이 너무 커서 저장하기 때문이다.
  4. short 타입과 실수형 데이터 간에는 연산자 우선순위가 동일하기 때문이다.
정답과 해설 보기

정답: 2

정답은 ②이다. C11에서 유한한 실수값을 정수형으로 변환하면 소수 부분을 버려 0 방향으로 절삭한다. 3.654의 정수 부분 3은 short가 표현할 수 있는 범위이므로 short n=3.654;의 n에는 3이 저장된다.

이는 메모리 크기가 너무 커서 생기는 문제나 연산자 우선순위 문제가 아니다. 정수형 자체가 소수 부분을 표현하지 못하기 때문에 정보가 사라지는 변환이다. 언어마다 암시적 변환 허용 여부가 다르며 Java의 같은 대입 구문과 혼동하지 않아야 한다.

선지별 해설

  • ① 오답. short는 문자 전용 형식이 아니라 정수형이다.
  • ② 정답. 실수의 소수 부분이 버려져 정수 3이 된다.
  • ③ 오답. 메모리 공간이 커서가 아니라 정수 변환의 의미 때문이다.
  • ④ 오답. 연산자 우선순위가 소수 부분의 보존을 결정하지 않는다.

편집 해설 근거: ISO/IEC JTC1/SC22/WG14, C11 committee draft N1570 (2011-04-12) — §6.3.1.4 Real floating and integer; §6.7.9 Initialization

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

81. TCP에 대한 설명으로 옳지 않은 것은?

[학습용 개정문항]

  1. 연결 지향의 신뢰성 있는 바이트 스트림 서비스를 제공한다.
  2. 응용 프로그램의 메시지 경계를 보존하는 독립 데이터그램 서비스를 제공한다.
  3. 체크섬·재전송·흐름 제어 등을 사용한다.
  4. 일반적인 연결 설정에는 3방향 핸드셰이크가 필요하다.
정답과 해설 보기

정답: 2

정답은 ②이다. TCP는 연결을 맺고 순서 있는 바이트 스트림을 전달하는 프로토콜이다. 응용 프로그램의 한 번의 쓰기 호출이 상대의 한 번의 읽기에 대응하도록 메시지 경계를 보존하지 않는다. 전송에 사용되는 TCP 단위는 세그먼트다.

순서 번호·확인 응답·재전송·체크섬·흐름 제어 등을 사용해 신뢰성 있는 전달을 지원한다. 이는 연결이나 장비가 영구적으로 실패해도 전송 성공을 무조건 보장한다는 뜻은 아니다. 일반적인 연결 설정에는 3방향 핸드셰이크의 왕복 통신이 필요하다.

선지별 해설

  • ① 오답. 연결 지향의 신뢰성 있는 바이트 스트림 서비스를 제공한다.
  • ② 정답. TCP는 응용 메시지의 경계를 데이터그램처럼 보존하지 않는다.
  • ③ 오답. 체크섬·재전송·흐름 제어 등의 기능을 제공한다.
  • ④ 오답. 일반적인 연결 설정에는 핸드셰이크 통신이 필요하다.

편집 해설 근거: IETF RFC 9293, Transmission Control Protocol (2022) — §2.2 Key TCP Concepts; §3.1 Header Format; §3.5 Establishing a Connection

82. 정보시스템 구축·보안 검토에서 다음 항목을 판단한다. 하둡(Hadoop)에 대한 기술로 타당한 설명을 고르면?

  1. 웹사이트를 빠르게 만드는 웹 기반 공격이다.
  2. 전기가 없는 상태에서 작동하는 저장장치이다.
  3. 구글에서 개발한 오픈 소스 프레임워크이다.
  4. 대용량 데이터를 효율적으로 처리할 수 있는 분산 컴퓨팅 플랫폼이다.
정답과 해설 보기

정답: 4

정답은 ④이다. Apache Hadoop은 여러 컴퓨터의 저장·계산 자원을 활용하여 큰 데이터 집합을 분산 저장하고 처리할 수 있도록 하는 프레임워크다. HDFS는 분산 파일 저장을, YARN은 자원 관리와 작업 실행을 지원한다.

MapReduce는 데이터를 나누어 처리하고 결과를 모으는 처리 모델과 실행 체계를 제공한다. Hadoop은 웹 공격이나 무전원 저장장치의 이름이 아니다. Google의 분산 처리 연구가 관련 아이디어에 영향을 주었더라도 Apache Hadoop을 Google이 개발한 제품이라고 설명하는 것은 맞지 않는다.

선지별 해설

  • ① 오답. 웹 공격 기법의 이름이 아니다.
  • ② 오답. 전원 없는 저장장치의 종류가 아니다.
  • ③ 오답. Google 제품이 아니라 Apache의 오픈소스 프로젝트다.
  • ④ 정답. 대규모 데이터의 분산 저장과 처리를 지원한다.

편집 해설 근거: Apache Hadoop, Project overview and Modules — Project overview; Modules, HDFS·YARN·MapReduce

83. 정보시스템 구축·보안 검토에서 다음 항목을 판단한다. 정보보안의 3요소(CIA)에 해당하지 않는 것은?

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

정답: 1

정답은 ① 인증이다. CIA는 Confidentiality, Integrity, Availability의 첫 글자로 각각 기밀성·무결성·가용성을 가리킨다. 기밀성은 허가되지 않은 공개 방지, 무결성은 부적절한 변경 방지, 가용성은 필요할 때 적시에 이용할 수 있는 성질이다.

인증은 사용자나 대상의 신원을 확인하는 기능으로 보안에서 매우 중요하지만 CIA 세 단어의 구성 요소는 아니다. 인증과 접근 통제는 기밀성이나 무결성을 지키는 수단이 될 수 있으므로 3요소에 없다는 이유로 중요하지 않다고 해석하면 안 된다.

선지별 해설

  • ① 정답. 신원 확인 기능이며 CIA의 세 항목 이름에는 없다.
  • ② 오답. Confidentiality에 해당한다.
  • ③ 오답. Integrity에 해당한다.
  • ④ 오답. Availability에 해당한다.

편집 해설 근거: NIST FIPS 199 — §2 Security Objectives: Confidentiality, Integrity, Availability; Peter Reiher, OSTEP v1.10, 54 Authentication — Authentication introductory definition

84. 정보시스템 구축·보안 검토에서 다음 항목을 판단한다. 암호 관련 용어와 의미가 바르게 연결되지 않은 것은?

  1. 평문: 암호화 대상 문장
  2. 암호문: 암호화 결과
  3. 암호화: 암호문을 평문으로 변환하는 과정
  4. 키: 암호화와 복호화에 필요한 매개변수
정답과 해설 보기

정답: 3

정답은 ③이다. 암호화는 평문 데이터를 키와 알고리즘을 사용해 암호문으로 바꾸는 과정이다. 암호문을 다시 평문으로 돌리는 역방향 과정은 복호화이므로 보기에서는 두 방향을 바꾸어 설명했다.

평문은 사람이 읽는 문장에 한정되지 않고 보호하려는 원래 데이터를 뜻한다. 키는 알고리즘의 동작을 정하는 매개변수이며 대칭키 방식과 공개키 방식에서 사용하는 키의 관계가 다르다. 암호화를 했다는 사실만으로 모든 무결성·인증 기능까지 자동으로 제공되는 것은 아니다.

선지별 해설

  • ① 오답. 평문은 암호화 전의 원래 데이터를 뜻한다.
  • ② 오답. 암호문은 암호화로 얻은 데이터다.
  • ③ 정답. 암호문에서 평문으로 되돌리는 과정은 복호화다.
  • ④ 오답. 키는 암호 연산의 결과를 정하는 매개변수다.

편집 해설 근거: NIST FIPS 197-upd1, Advanced Encryption Standard (2023) — §2.1 Terms and Acronyms; CIPHER 및 INVCIPHER

85. 정보시스템 구축·보안 검토에서 다음 항목을 판단한다. 하나의 메인 통신 회선에 다수의 단말기가 연결된 네트워크 구조는?

  1. 버스 토폴로지
  2. 링 토폴로지
  3. 메시 토폴로지
  4. 스타 토폴로지
정답과 해설 보기

정답: 1

정답은 ① 버스 토폴로지이다. 버스 구조는 하나의 공유 백본 통신 경로에 여러 장치를 연결한다. 각 장치가 중앙 장비와 별도의 선으로 연결되는 스타 구조와 연결 모양이 다르다.

링은 장치들이 고리 형태로 연결되고 메시는 장치 사이에 여러 경로를 둔다. 공유 회선 구조에서는 접근 방식과 회선 장애의 영향도 설계에 따라 고려해야 한다. 물리적인 케이블 배치와 실제 데이터가 흐르는 논리적 토폴로지는 다를 수 있으므로 무엇을 설명하는지 함께 확인한다.

선지별 해설

  • ① 정답. 여러 장치가 하나의 공통 백본 경로에 연결된다.
  • ② 오답. 고리 형태로 연결하는 구조다.
  • ③ 오답. 장치 사이에 여러 연결 경로를 두는 구조다.
  • ④ 오답. 중앙 장비를 중심으로 각 장치를 연결한다.

편집 해설 근거: IBM, What is network topology? — Types of network topologies: Bus, Ring, Mesh, Star

86. IP·TCP·Ethernet을 사용하는 통신을 OSI 계층에 대응시킨 설명으로 옳지 않은 것은?

[학습용 개정문항]

  1. 네트워크 계층의 IP: 패킷(데이터그램)
  2. 응용 계층: 비트
  3. 데이터 링크 계층의 Ethernet: 프레임
  4. 전송 계층의 TCP: 세그먼트
정답과 해설 보기

정답: 2

정답은 ②이다. 비트는 물리 계층에서 신호로 전달하는 기본 단위로 설명한다. 응용 계층의 데이터 단위를 비트라고 대응시키는 것은 계층별 캡슐화의 관점을 혼동한 것이다.

제시된 IP·TCP·Ethernet 조합에서는 IP 패킷 안에 TCP 세그먼트가 담기고 링크 구간에서 Ethernet 프레임으로 전달된다. 모든 전송 프로토콜의 단위를 무조건 세그먼트라고 부르는 것은 아니며 UDP는 데이터그램이라는 용어를 쓴다. 프로토콜을 지정한 보기의 대응을 기준으로 판단한다.

선지별 해설

  • ① 오답. IP의 네트워크 계층 단위는 패킷 또는 IP 데이터그램으로 설명한다.
  • ② 정답. 비트는 물리 계층 측면의 단위다.
  • ③ 오답. Ethernet 데이터 링크 계층의 단위는 프레임이다.
  • ④ 오답. TCP 전송 단위는 세그먼트다.

편집 해설 근거: ITU-T X.200 (07/1994), OSI Basic Reference Model — §7 Layers and services, physical layer; IETF RFC 9293, Transmission Control Protocol (2022) — §3.1 Header Format; IETF RFC 791 (1981), Internet Protocol — §3.1 Internet Header Format

87. 정보시스템 구축·보안 검토에서 다음 항목을 판단한다. 링크 상태(Link-State) 방식의 라우팅 프로토콜은?

  1. IGRP
  2. RIP
  3. OSPF
  4. EGP
정답과 해설 보기

정답: 3

정답은 ③ OSPF이다. OSPF는 라우터가 링크 상태 정보를 교환하여 네트워크 토폴로지에 관한 데이터베이스를 유지하고, 그 정보를 바탕으로 자신을 루트로 하는 최단 경로 트리를 계산하는 링크 상태 라우팅 프로토콜이다.

RIP와 IGRP는 거리 벡터 계열로 분류한다. EGP는 자율 시스템 사이의 도달성 정보를 교환하던 역사적인 프로토콜로, 이 문항의 링크 상태 내부 라우팅 방식과 다르다. 특정 목적지까지의 거리 정보만 이웃에게 받는 접근과 토폴로지 정보를 이용해 경로를 계산하는 접근을 구분한다.

선지별 해설

  • ① 오답. IGRP는 거리 벡터 계열이다.
  • ② 오답. RIP는 거리 벡터 프로토콜이다.
  • ③ 정답. 링크 상태 데이터베이스와 최단 경로 계산을 사용한다.
  • ④ 오답. 역사적인 외부 게이트웨이 프로토콜이며 OSPF식 링크 상태 IGP가 아니다.

편집 해설 근거: IETF RFC 2328, OSPF Version 2 (1998) — §1 Introduction; §2 The Topological Database; §16.1 Calculating the shortest-path tree; IETF RFC 2453, RIP Version 2 (1998) — §3.4 Distance Vector Algorithms

88. 192.168.64.0/22를 /27 FLSM 서브넷으로 나누어 서브넷마다 호스트 26대를 수용한다. 서브넷 0도 포함하고 네트워크 주소가 작은 순서로 셀 때, 다섯 번째 서브넷의 일반 호스트에 할당할 수 없는 주소는?

[학습용 개정문항]

  1. 192.168.64.130
  2. 192.168.64.145
  3. 192.168.64.158
  4. 192.168.64.159
정답과 해설 보기

정답: 4

정답은 ④ 192.168.64.159이다. /27은 호스트 비트가 5개여서 주소 블록 크기가 32이고, 일반적인 IPv4 서브넷에서는 네트워크·브로드캐스트를 제외한 30개를 호스트에 사용할 수 있다. 따라서 26대 수용 조건을 만족한다.

주소가 작은 순서로 서브넷 0도 포함하면 첫 다섯 네트워크 주소는 .0, .32, .64, .96, .128이다. 다섯 번째는 192.168.64.128/27이며 호스트 범위는 .129~.158, 브로드캐스트는 .159다. .130·.145·.158은 호스트 주소이고 .159는 아니다.

선지별 해설

  • ① 오답. .130은 다섯 번째 서브넷의 호스트 범위 안이다.
  • ② 오답. .145도 호스트 범위 안이다.
  • ③ 오답. .158은 마지막 사용 가능한 호스트 주소다.
  • ④ 정답. .159는 브로드캐스트 주소로 일반 호스트에 할당하지 않는다.

편집 해설 근거: IETF RFC 1878, Variable Length Subnet Table For IPv4 (1995) — Table 1 subnet masks, /27; subnetting convention; IETF RFC 1122 (1989), Requirements for Internet Hosts — §3.2.1.3 Addressing

89. 현실의 사물이나 시스템을 디지털로 표현하고 현실 데이터와 연결·동기화하여 상태 분석과 모의실험에 활용하는 개념은?

[학습용 개정문항]

  1. 인공지능
  2. 디지털 트윈
  3. 클라우드 컴퓨팅
  4. 빅데이터
정답과 해설 보기

정답: 2

정답은 ② 디지털 트윈이다. 디지털 트윈은 실제 대상이나 프로세스를 디지털로 표현하고, 정해진 수준과 주기로 현실의 데이터와 연결·동기화하여 상태를 이해하고 분석하는 개념이다. 이를 이용해 상태 감시나 여러 운영 상황의 모의실험을 지원할 수 있다.

현실 데이터를 반영하지 않는 정적인 3D 복사본만으로 모든 디지털 트윈을 설명할 수는 없다. 인공지능은 추론·학습, 클라우드는 컴퓨팅 자원의 제공 방식, 빅데이터는 대규모 데이터의 처리·분석과 관련되며 디지털 트윈을 구현하는 데 활용될 수 있는 별도 개념이다.

선지별 해설

  • ① 오답. 학습·추론 기술을 활용할 수 있지만 대상의 디지털 대응체 자체의 이름은 아니다.
  • ② 정답. 현실 대상과 데이터로 연결되는 디지털 표현이다.
  • ③ 오답. 컴퓨팅 자원을 제공하는 방식이다.
  • ④ 오답. 대규모 데이터의 처리·분석과 관련된 개념이다.

편집 해설 근거: Digital Twin Consortium, Digital Twin Consortium Defines Digital Twin (2020-12-03) — 디지털 트윈 정의 및 specified frequency and fidelity 설명

90. 정보시스템 구축·보안 검토에서 다음 항목을 판단한다. IoT 환경에서 저전력, 저대역폭 통신을 위해 설계된 Publish-Subscribe 기반 경량 프로토콜은?

  1. MQTT
  2. SMTP
  3. HTTP
  4. FTP
정답과 해설 보기

정답: 1

정답은 ① MQTT이다. MQTT는 발행자가 주제에 메시지를 발행하고 구독자가 해당 주제의 메시지를 받는 발행·구독 방식의 메시징 프로토콜이다. 서버 또는 브로커가 메시지를 구독 관계에 따라 전달한다.

작은 코드 크기와 제한된 통신 자원을 고려한 경량 설계여서 IoT에서 널리 활용한다. 프로토콜을 채택했다는 사실만으로 어떤 장치에서도 낮은 전력 소비나 모든 통신 성공이 보장되지는 않는다. SMTP는 전자우편, HTTP는 요청·응답 기반 웹 통신, FTP는 파일 전송의 대표 프로토콜이다.

선지별 해설

  • ① 정답. 경량의 발행·구독 메시징을 제공한다.
  • ② 오답. 주된 목적은 전자우편 전송이다.
  • ③ 오답. 웹 자원의 요청·응답 통신에 사용하는 프로토콜이다.
  • ④ 오답. 파일을 전송하는 프로토콜이다.

편집 해설 근거: OASIS, MQTT Version 5.0 Standard (2019) — Abstract; §1.2 Terminology, Client and Server

91. 다음 중 운영체제의 직접적인 보안 통제 기능으로 보기 가장 어려운 것은?

[학습용 개정문항]

  1. 일반적인 처리 성능 최적화
  2. 사용자 식별 및 인증
  3. 접근 통제
  4. 공유 메모리 등 자원 재할당 시 이전 사용자의 정보 노출 방지
정답과 해설 보기

정답: 1

정답은 ①이다. 보안 운영체제의 직접적인 보호 기능에는 사용자 식별·인증, 접근 권한의 통제, 공유 자원을 다른 사용자에게 재할당할 때 이전 사용자의 정보가 노출되지 않게 하는 기능 등이 있다.

성능 최적화는 일반적인 운영체제의 중요한 목표지만 그 자체가 이 목록의 직접적인 보안 통제는 아니다. 또한 자원 재사용 보호는 메모리를 다시 쓰지 못하게 한다는 뜻이 아니다. 재사용은 허용하면서 권한 없는 사용자가 앞선 사용자의 정보를 읽지 못하게 하는 것이 목적이다.

선지별 해설

  • ① 정답. 일반적인 성능 목표이며 이 조건의 직접적인 보안 통제와 구별된다.
  • ② 오답. 신원 확인은 보안 기능이다.
  • ③ 오답. 허용된 주체의 접근만 인정하는 보안 기능이다.
  • ④ 오답. 재할당된 자원으로 이전 사용자의 정보가 새는 것을 방지한다.

편집 해설 근거: NIST SP 800-53 Rev.5, Security and Privacy Controls (2020, 2020-12-10 정오표 포함본) — IA-2 Identification and Authentication; AC-3 Access Enforcement; SC-4 Information in Shared System Resources

92. 이미 일정이 지연된 소프트웨어 프로젝트에 인력을 추가하면 교육·조정 부담 등으로 일정이 더 늦어질 수 있다는 관찰은?

[학습용 개정문항]

  1. 레이리의 법칙
  2. 브룩스의 법칙
  3. 퍼트남의 법칙
  4. 파레토의 법칙
정답과 해설 보기

정답: 2

정답은 ② 브룩스의 법칙이다. 이미 일정이 지연된 소프트웨어 프로젝트에 사람을 더 투입하면 오히려 더 늦어질 수 있다는 관찰이다. 새 인력의 교육과 업무 인계에 기존 인력의 시간이 들고 팀 내 조정·의사소통 부담도 증가한다.

일을 나눌 수 있는 정도에도 한계가 있어 인원과 완료 시간이 단순한 반비례 관계가 아니다. 다만 어떤 상황에서도 인력 추가가 반드시 실패한다는 수학적 법칙은 아니다. 분리 가능한 업무, 숙련도, 투입 시점과 온보딩 비용을 함께 판단해야 한다.

선지별 해설

  • ① 오답. 레일리 곡선은 시간에 따른 인력·노력 분포 모델과 관련된다.
  • ② 정답. 지연된 프로젝트에 대한 인력 추가의 역효과를 지적한다.
  • ③ 오답. Putnam은 규모·일정·노력 관계의 추정 모형과 관련된다.
  • ④ 오답. 파레토 원리는 결과의 집중 현상을 설명한다.

편집 해설 근거: Frederick P. Brooks Jr., The Mythical Man-Month, Chapter 2 (Duke 강의용 발췌 사본) — Chapter 2, Brooks’s Law 및 repartitioning, training, intercommunication 논의

93. 고전 COCOMO(1981)의 개발 모드 중 하드웨어·소프트웨어·운영 절차의 제약이 강하고 엄격한 실시간 응답이나 장치 연동을 요구하는 환경에 해당하는 것은?

[학습용 개정문항]

  1. Semi-Detached
  2. Embedded
  3. Detailed
  4. Organic
정답과 해설 보기

정답: 2

정답은 ② Embedded 모드이다. 고전 COCOMO의 Embedded는 하드웨어·소프트웨어·운영 절차와 같은 외부 조건의 제약이 강한 환경을 나타낸다. 엄격한 실시간 응답이나 장치 연동 제약을 가진 시스템이 대표적인 예다.

Organic은 비교적 익숙하고 제약이 적은 환경, Semi-Detached는 그 중간 성격을 설명한다. 코드 줄 수만으로 모든 프로젝트의 모드를 자동 결정하지 않는다. Detailed는 고전 COCOMO 추정 모형의 상세 수준과 관련된 이름이며 세 개발 모드의 이름이 아니다.

선지별 해설

  • ① 오답. 제약과 경험 측면에서 중간적인 성격의 모드다.
  • ② 정답. 하드웨어·운영 조건 등 강한 제약에 내재된 개발 환경이다.
  • ③ 오답. 모형의 상세 수준과 관련되며 개발 모드가 아니다.
  • ④ 오답. 상대적으로 익숙하고 외부 제약이 적은 환경이다.

편집 해설 근거: Barry W. Boehm, Software Engineering Economics (1984), 저자 논문 보존 사본 — COCOMO development modes: Organic, Semidetached, Embedded

94. 타원곡선 이산대수 문제에 기반한 공개키 암호와 큰 합성수의 소인수분해 난해성에 기반한 공개키 암호를 순서대로 나열하면?

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

정답: 2

정답은 ② ECC, RSA이다. ECC는 타원곡선 군에서의 이산대수 문제를 이용하는 공개키 암호 기술의 계열이다. RSA는 두 큰 소수의 곱으로 만든 모듈러스를 사용하며, 소인수분해가 가능해지면 개인키 계산과 복호화의 안전성이 무너진다.

ECC는 특정 암호 하나의 이름이라기보다 키 교환·서명 등에 사용하는 기술군이고 RSA는 공개키 암호 시스템이다. DES와 AES는 대칭키 블록 암호다. RSA의 안전성이 모든 경우에 소인수분해와 완전히 동치로 증명되었다는 더 강한 주장까지 포함하는 것은 아니다.

선지별 해설

  • ① 오답. 두 기술의 순서를 반대로 썼다.
  • ② 정답. 타원곡선 이산대수는 ECC, 제시된 큰 정수 모듈러스는 RSA다.
  • ③ 오답. DES와 AES는 대칭키 블록 암호다.
  • ④ 오답. 두 항목 모두 공개키 암호의 해당 기반을 설명하지 않는다.

편집 해설 근거: IETF RFC 6090, Fundamental Elliptic Curve Cryptography Algorithms (2011) — §3.3.2 Security; §4 Elliptic Curve Diffie-Hellman; §7.2 KT-I; IETF RFC 8017, PKCS #1: RSA Cryptography Specifications Version 2.2 (2016) — §3 Key Types; §5 RSA Cryptographic Primitives; §7 Encryption Schemes

95. 지식·소유·생체라는 전통적인 사용자 인증 요소의 분류에 해당하지 않는 것은?

[학습용 개정문항]

  1. 역할에 따른 권한 부여
  2. 비밀번호 등 지식 요소
  3. 보안 토큰 등 소유 요소
  4. 지문 등 생체 요소
정답과 해설 보기

정답: 1

정답은 ① 역할에 따른 권한 부여이다. 전통적인 인증 요소는 알고 있는 것, 가지고 있는 것, 신체적 특징처럼 본인을 확인할 수 있는 근거로 구분한다. 비밀번호·보안 토큰·지문 등이 각각의 예다.

역할 기반 접근 통제는 사용자의 역할에 따라 허용할 작업을 정하는 인가 방식이다. 누구인지 확인하는 인증과 무엇을 할 수 있는지 정하는 인가를 구별해야 한다. 같은 종류의 비밀번호 두 개를 사용했다고 서로 다른 두 종류의 인증 요소가 되는 것도 아니다.

선지별 해설

  • ① 정답. 역할에 따른 권한 결정은 인증 요소가 아니라 인가와 관련된다.
  • ② 오답. 알고 있는 비밀번호 등은 지식 요소다.
  • ③ 오답. 보안 토큰 등 보유한 물건은 소유 요소다.
  • ④ 오답. 지문 등의 신체적 특징은 생체 요소다.

편집 해설 근거: Peter Reiher, OSTEP v1.10, 54 Authentication — Something you know, have, are의 인증 요소 설명; Peter Reiher, OSTEP v1.10, 55 Access Control — §55.6 Role-Based Access Control

96. 정보시스템 구축·보안 검토에서 다음 항목을 판단한다. IPv6에 대한 기술로 틀린 설명을 고르면?

  1. 128비트 주소 체계를 사용한다.
  2. 주소는 16진수와 콜론으로 표현한다.
  3. 유니캐스트, 애니캐스트, 브로드캐스트 전송 방식을 가진다.
  4. 주소 자동 설정 기능을 제공한다.
정답과 해설 보기

정답: 3

정답은 ③이다. IPv6 주소는 유니캐스트·애니캐스트·멀티캐스트로 분류하며 브로드캐스트 주소는 두지 않는다. IPv4의 브로드캐스트가 하던 기능은 IPv6에서 멀티캐스트 등을 활용해 수행한다.

IPv6는 128비트 주소를 사용하고 보통 16비트씩 나눈 16진수 그룹을 콜론으로 구분해 표기한다. 주소 자동 구성 기능도 지원하지만 구체적인 주소 생성·설정 방식은 환경과 프로토콜에 따라 다르다. 멀티캐스트와 네트워크의 모든 장치에 보내는 브로드캐스트를 같은 개념으로 외우면 안 된다.

선지별 해설

  • ① 오답. IPv6 주소 길이는 128비트다.
  • ② 오답. 16진수 그룹을 콜론으로 구분하는 표기를 사용한다.
  • ③ 정답. 브로드캐스트 대신 멀티캐스트가 주소 유형에 포함된다.
  • ④ 오답. IPv6에는 주소 자동 구성 방식이 있다.

편집 해설 근거: IETF RFC 4291, IP Version 6 Addressing Architecture (2006) — §2 IPv6 Addressing; §2.2 Text Representation of Addresses; IETF RFC 8200, Internet Protocol Version 6 Specification (2017) — §1 Introduction

97. 정보시스템 구축·보안 검토에서 다음 항목을 판단한다. DES의 블록 크기는 몇 bit인가?

  1. 64
  2. 112
  3. 60
  4. 128
정답과 해설 보기

정답: 1

정답은 ① 64비트이다. DES는 평문을 64비트 블록으로 처리하는 대칭키 블록 암호다. 한 블록의 길이는 키의 유효 보안 비트 수와 별개의 규격이므로 두 값을 혼동하면 안 된다.

DES 키는 표기상 64비트 중 8비트를 패리티에 사용하여 실제 암호 연산에 쓰는 키 비트는 56개다. AES의 블록 크기 128비트나 일부 Triple DES 구성의 키 길이와도 다르다. DES 표준은 철회된 역사 자료이며 이 문항의 규격 확인이 현재의 안전한 사용을 권장한다는 뜻은 아니다.

선지별 해설

  • ① 정답. DES가 한 번에 처리하는 블록은 64비트다.
  • ② 오답. DES의 블록 길이가 아니며 다중 DES 키 길이와 혼동하기 쉽다.
  • ③ 오답. DES의 블록 길이는 60비트가 아니다.
  • ④ 오답. AES의 블록 길이이며 DES와 다르다.

편집 해설 근거: NIST FIPS 46-3, Data Encryption Standard (1999), 2005년 철회된 역사 자료 — Data Encryption Algorithm — Introduction, p.8; Key usage의 parity bits; NIST FIPS 197-upd1, Advanced Encryption Standard (2023) — §3.1 Inputs and Outputs

98. 정보시스템 구축·보안 검토에서 다음 항목을 판단한다. 클린 코드(Clean Code)에 대한 기술로 틀린 설명을 고르면?

  1. 기능 구현을 위해 중복성을 많이 두는 것이 좋다.
  2. 중복성을 최소화하고 추상화를 적절히 적용해야 한다.
  3. 가독성이 높고 단순해야 한다.
  4. 기능 및 설계 이해가 쉬워 개발 속도에 도움이 된다.
정답과 해설 보기

정답: 1

정답은 ①이다. 클린 코드의 목적은 동작을 이해하고 안전하게 수정하기 쉬운 코드를 만드는 데 있다. 관련 없는 곳에 같은 구현을 무분별하게 복제하면 변경 시 여러 위치를 함께 수정해야 하고 일부를 빠뜨릴 가능성이 커진다.

명확한 이름, 읽기 쉬운 흐름, 적절한 추상화와 단순한 설계가 유지보수에 도움이 된다. 다만 모양이 비슷하다는 이유만으로 서로 다른 책임을 억지로 묶는 것도 좋은 추상화는 아니다. 중복을 줄이는 목적과 변경 이유를 함께 살피며 불필요한 복잡성을 피해야 한다.

선지별 해설

  • ① 정답. 목적 없이 중복을 늘리는 것은 변경과 이해를 어렵게 한다.
  • ② 오답. 적절한 추상화와 중복 감소는 유지보수를 돕는다.
  • ③ 오답. 가독성과 단순성은 이해와 검토에 도움이 된다.
  • ④ 오답. 의도와 구조를 쉽게 이해하면 변경·개발을 수월하게 할 수 있다.

편집 해설 근거: Google Engineering Practices, What to look for in a code review — What to look for in a code review: Design, Complexity, Naming, Comments

99. 기본적인 패킷 필터링 방화벽의 역할에 대한 설명으로 옳지 않은 것은?

[학습용 개정문항]

  1. 허용 목록과 차단 목록 형태의 정책을 적용할 수 있다.
  2. 정책상 필요한 통신은 허용하고 금지한 통신은 차단한다.
  3. 호스트 파일 내부의 바이러스와 웜을 찾아 감염된 파일을 치료하는 것이 기본 기능이다.
  4. 주소·포트·프로토콜 등 정책 기준으로 통신을 제어한다.
정답과 해설 보기

정답: 3

정답은 ③이다. 기본적인 패킷 필터링 방화벽은 출발지·목적지 주소와 포트, 프로토콜 등의 정보를 정책과 비교해 통신을 허용하거나 차단한다. 감염된 호스트 파일을 찾아 원래 상태로 치료하는 기능은 이런 필터링의 기본 기능과 다르다.

일부 보안 제품은 악성코드 탐지나 응용 검사 등 여러 기능을 통합하므로 제품 이름만 보고 어떤 검사도 못 한다고 단정할 수는 없다. 여기서는 기본 패킷 필터의 역할을 묻는다. 내부와 외부의 모든 통신을 끊는 것이 아니라 정한 정책에 맞게 필요한 통신을 제어한다.

선지별 해설

  • ① 오답. 허용·차단 규칙에 따라 통신을 제어할 수 있다.
  • ② 오답. 필요한 통신은 허용하고 금지한 통신을 차단한다.
  • ③ 정답. 호스트 파일 치료는 기본 패킷 필터의 기능이 아니다.
  • ④ 오답. 주소·포트·프로토콜 등 정책 기준으로 접근을 제어한다.

편집 해설 근거: NIST SP 800-41 Rev.1, Guidelines on Firewalls and Firewall Policy (2009) — §2.1.1 Packet Filtering; §4 Firewall Policy

100. 정보시스템 구축·보안 검토에서 다음 항목을 판단한다. 비밀키(대칭키) 암호화 방식에 해당하지 않는 것은?

  1. DES
  2. RSA
  3. SEED
  4. ARIA
정답과 해설 보기

정답: 2

정답은 ② RSA이다. RSA는 공개키와 개인키로 구성된 키 쌍을 사용하는 공개키 암호 시스템이다. DES·SEED·ARIA처럼 송수신자가 공유하는 비밀키를 기반으로 데이터를 처리하는 대칭키 블록 암호와 분류가 다르다.

DES의 블록은 64비트이고 SEED와 ARIA의 블록은 128비트다. 블록 크기가 다르더라도 이 세 알고리즘은 대칭키 범주에 속한다. RSA도 용도에 맞는 암호화·서명 방식과 패딩이 필요하므로 공개키라는 분류만으로 임의 사용의 안전성이 보장되지는 않는다.

선지별 해설

  • ① 오답. DES는 대칭키 블록 암호다.
  • ② 정답. RSA는 공개키·개인키 쌍을 사용하는 공개키 암호다.
  • ③ 오답. SEED는 128비트 블록의 대칭키 암호다.
  • ④ 오답. ARIA는 128비트 블록의 대칭키 암호다.

편집 해설 근거: IETF RFC 8017, PKCS #1: RSA Cryptography Specifications Version 2.2 (2016) — §3 Key Types; §7 Encryption Schemes; NIST FIPS 46-3, Data Encryption Standard (1999), 2005년 철회된 역사 자료 — Data Encryption Algorithm — Introduction; IETF RFC 4269, The SEED Encryption Algorithm (2005) — §1 Introduction; IETF RFC 5794, A Description of the ARIA Encryption Algorithm (2010) — §1 Introduction

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

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

정보처리기사 과년도 전체 보기

자료 기준·검수 정보