기출문제/정보처리기사

2020년 3회 정보처리기사 기출문제 11번

엉클지니 2025. 4. 8. 16:17

11. 다음 ( ) 안에 들어갈 내용으로 옳은 것은?

 협약(Contract)     프로토콜(Protocol)

패턴(Pattern)      관계(Relation)

 

 

 

문제 분석

이 문제는 컴포넌트 설계와 관련된 설계 원칙을 묻고 있습니다. 특히, ( )에 들어갈 내용으로 적합한 개념을 고르는 문제입니다. 문제에서는 컴포넌트 설계 시 해당 명세에서 다뤄야 할 조건들(선행조건, 결과조건, 불변조건)을 설명하고 있습니다. 이 조건들은 특정 설계 원칙에 맞추어 정의되어야 하므로, 이와 관련된 원칙을 찾는 것이 핵심입니다.

각 선택지 분석

  1. 협약 (Contract)
    협약설계 명세에서 조건들을 명확히 정의하는 방법입니다. 여기서 말하는 "선행조건", "결과조건", "불변조건"은 바로 계약(Contract) 기반 설계에서 사용되는 주요 개념입니다. 계약 기반 설계에서는 컴포넌트의 오퍼레이션이 어떻게 동작해야 하는지를 명확하게 정의합니다.
    → 이 설명은 협약(Contract)에 해당합니다.
  2. 프로토콜 (Protocol)
    프로토콜컴포넌트 간의 상호작용 규약을 정의합니다. 프로토콜은 데이터 전송 규약이나 통신 방법을 규정하는 데 사용되며, 주로 네트워크 통신이나 서비스 간의 상호작용에 관련된 규칙을 정의합니다. 따라서 문제에서 언급된 선행조건, 결과조건, 불변조건과는 다소 다릅니다.
    → 이 설명은 프로토콜에 해당하지 않습니다.
  3. 패턴 (Pattern)
    패턴은 소프트웨어 설계에서 반복적으로 발생하는 문제를 해결하는 일반적인 해결 방법을 의미합니다. 설계 패턴은 특정 문제를 해결하기 위한 구조적 또는 행위적 접근을 제공합니다. 그러나 문제에서 설명된 "조건들"과는 직접적인 관련이 없습니다.
    → 이 설명은 패턴에 해당하지 않습니다.
  4. 관계 (Relation)
    관계는 두 개 이상의 객체나 컴포넌트 간의 상호작용을 설명하는 개념입니다. 하지만 이 개념은 문제에서 설명하는 조건들(선행조건, 결과조건, 불변조건)과는 관련이 없습니다.
    → 이 설명은 관계에 해당하지 않습니다.

결론

문제에서 설명한 조건들(선행조건, 결과조건, 불변조건)은 **협약(Contract)**에 의해 정의되는 것입니다. 따라서 정답은 ❶번입니다.


예시

  • 협약(Contract) 설계 예시:
    • 선행조건: 함수 호출 전에 반드시 x 값이 양수여야 한다.
    • 결과조건: 함수 실행 후에는 y 값이 x보다 큰 값을 가져야 한다.
    • 불변조건: 함수 실행 중에는 값 z는 변경되지 않아야 한다.

이러한 조건들은 **계약(Contract)**에 의해 명확히 정의됩니다.


요약

  • **협약(Contract)**은 오퍼레이션이 실행되기 전후와 실행 중에 만족해야 하는 조건들을 명확히 정의하는 설계 원칙입니다.
  • 정답은 ❶번입니다.

표로 정리

선택지 설명 맞는 선택지 여부

❶ 협약 (Contract) 선행조건, 결과조건, 불변조건 등을 명확히 정의하는 설계 원칙 맞음
② 프로토콜 (Protocol) 컴포넌트 간의 상호작용 규약을 정의 틀림
③ 패턴 (Pattern) 반복적인 문제를 해결하는 일반적인 해결 방법 틀림
④ 관계 (Relation) 객체 간의 상호작용이나 연결 상태를 설명 틀림

🎯 정답: ❶ 협약(Contract)

 

반응형