시작하면서
해당 글은 메타 코드 M에서 지원하는 정처기 필기 장학생에 합격하여 글을 작성하게 되었습니다.
메타 코드 해당 강의 보러 가기
참고 사항
- 플랫폼 => 이 뜻은 참고할 주제라는 뜻입니다.
- 이렇게 형관펜이 되어 있는 곳은 시험에 나오거나, 강조하고 싶은 부분이 있을 때 표시할 것입니다.
해당 문제는 메타코드 M의 강의 기출 문제 관련 참고집입니다.
1. UML 다이어그램에서 순차 다이어그램에 대한 설명으로 틀린 것은?
UML 다이어그램이란?
- 주로 객체 지향 소프투웨어 개발 시 산출물을 명세화, 시각화하기 위한 표준화된 모델링 언어
- 사물 / 관계 / 다이어그램으로 구성
시퀀스 다이어그램(Sequence, 순차)
- 시스템의 동적 측면을 모델링하며, 객체 간의 상호 작용을 시간 순서에 따라 시각적으로 보여줌
- 시간의 흐름에 따라 객체들이 주고 받는 메시지의 전달 과정을 강조
2. 요구사항 분석에서 비기능적 요구 사항에 해당하는 것은?
- 비 기능적 요구사항과 기능적 요구 사항
- 기능적 요구사항은 시스템이 (무엇을?) 해야 하는지 초점
- 비기능적 요구사항은 시스템이 (어떻게) 해야 하는지 초점
3. GoF(Gang of Four) 디자인 패턴 중 싱글톤(singleton) 패턴에 대한 설명으로 옳은 것은?
- GOF : 디자인 패턴을 생성, 구조, 행위의 3가지 구분과 23개의 패턴으로 구분
- 생성패턴 : 객체를 어떻게 생성하고 초기화할지에 대한 패턴
- Factory method : 객체를 생성하기 위한 인터페이스를 정의하여 어떤 클래스가 인스턴스화 될 것인지, 서브 클래스가 결정하도록 하는 것
- Prototype 패턴 : prototype 을 먼저 생성하고 인스턴스를 복제하고 사용하는 구조
- singleton 패턴
- 한 클래스에 한 객체만 존재하도록 제한
- 생성된 객체를 어디에서든지 참조할 수 있도록 함.
- Builder 패턴 : 객체의 생성과 표현을 분리한다.
- 구조 패턴 : 클래스와 객체를 더 큰 구조로 조합하는 방법에 대한 패턴
- adapter : 기존 클래스를 새로운 인터페이스에 맞게 변환한다.
- 행위 패턴 : 객체 간의 상호 작용과 책임 분배에 대한 패턴
- Strategy 패턴
- 다양한 알고리즘을 캡슐화하여 알고리즘 대체가 가능하도록 한 행위 패턴
- Mediator 패턴
- 객체 간의 통제와 지시의 역할을 하는 중재자를 두어 객체 지향의 목표를 달성하도록 함.
- iterator 패턴: 객체 집합을 순회하는 방법을 제공함.
4. 애자일(Agile) 소프트웨어 개발 방법론의 가치 중 옳지 않은 것은?
- Agile 방법론
- 고객의 요구사항 변화에 빠르게 적응하고, 개발 과정에서 지속적으로 개선해 나가는 것
- 특징
- 프로젝트의 요구사항을 모듈 중심이 아닌 기능 중심으로 개발
- 핵심 가치 4가지
- 개인과 상호작용
- 작동하는 소프트웨어
- 고객과의 협력이 우선
- 계획에 따르는 것보다는 변화에 대응하는 것이 우선
5. UML의 관계 중 일반화 관계에 대한 설명으로 가장 적절한 것은?
- 연관(Association) : 서로 어떤 방식으로 연결되어 있는지를 표현함.
- 일반화(Generalization) : 상위 개념과 하위 개념 간의 관계(과일 → 사과)
- 하위 클래스가 상위 클래스의 속성과 기능을 물려받는 관계
- 의존(Dependency) : 한 요소가 다른 요소에게 종속적일 때의 관계(주문과 결제)
: 한 요소의 변화가 다른 요소에게도 영향을 줌
- 실체화(Realization) : 추상화된 개념과 실제로 이를 구현하는 개념 사이의 관계
- 포함 (Composition)
- 전체와 부분 간의 강한 관계(집과 방)
- 전체 객체가 사라지면 부분 객체도 사라짐.
- 집합(Aggregation)
- 전체와 부분 간의 느슨한 관계(도서관과 책)
- 전체 객체와 부분 객체가 독립적으로 존재할 수 있음.
8. 럼바우(Rumbaugh) 객체지향 분석 기법의 모델링 종류가 아닌 것은?
- 럼바우(Rumbaugh) 방법론
- 객체 모델 → 동적 모델 → 기능 모델로 나누어 순서대로 분석을 수행하는 방법
- Object : 객체 / Dynamic : 동적 / Function : 기능
- 객체 모델 : 시스템에 필요한 객체를 찾아내어 속성과 관계를 규정하여 다이어그램으로 표시
- 동적 모델 : 상태 다이어그램, 사건 흐름 다이어그램 등을 통해 객체 간의 상호작용을 시간 순으로 표현
- 기능 모델 : 시스템의 기능을 자료 흐름도(DFD)를 통해 표현
9. 객체지향 설계 원칙(SOLID) 중 개방-페쇄 원칙(Open-Closed Principle)에 대한 설명으로 옳은 것은?
- 객체 지향 설계의 원칙(SOLID)
- 객체 지향 설계를 위한 5가지 원칙으로, 유지보수성과 확장성에 도움을 줌
- 단일 책임의 원칙
- 하나의 클래스는 하나의 책임만, 즉 하나의 기능이나 역할만 담당해야 함.
- 개방-폐쇄의 원칙 (Open-closed Principle)
- 클래스는 확장에 대해 열려 있어야 하며, 변경에 대해 닫혀있어야 함.
- 즉 새로운 기능을 추가할 때는 기존 코드를 수정하지 말아야 함.
10. 유스케이스 다이어그램에 관련된 내용으로 틀린 것은?
- 시스템과 상호작용하는 외부시스템은 액터가 될 수 있다.
- 액터가 인식할 수 없는 시스템 내부의 기능을 하나의 유스케이스로 파악해서는 안된다.
- 하나의 액터는 여러 유스케이스와 연결될 수 있다.
15. GoF 디자인 패턴의 구조 패턴에 해당하지 않는 것 은?
- 구조 패턴
- 클래스와 객체를 더 큰 구조로 조합하는 방법에 대한 패턴
- Adapter, Bridge, Proxy, Decorator, Facade, Flyweight, Composite
- 생성 패턴
- 객체를 어떻게 생성하고 초기화할지에 대한 패턴
- Builder, Singleton, Prototype, Abstract Factory, Factory Method
16. 모듈의 응집도(Cohesion) 유형 중 가장 낮은 것은?

18. 객체 지향 설계의 SOLID 원칙 중 인터페이스 분리 원칙(ISP)에 대한 설명으로 옳은 것은 ?
- 인터페이스 분리의 원칙(Interface Segregation Principle)
- 클라이언트는 자신이 사용하지 않는 메소드에 의존하지 않아야 함.
19. DFD의 구성요소가 아닌 것은?
- DFD : 시간의 흐름을 명확히 표현할 수 없음.(논리적 흐름 위주)
- DFD(Data Flow Diagram)의 구성 요소
- 처리기
- 데이터 흐름
- 데이터 저장소
- 단말(Terminator)
23. 애자일 개발 방법론의 스크럼(Scrum)에서 사용되는 용어와 설명이 잘못 연결된 것은?

25. 사용자 인터페이스의 기본 원칙 중 누구나 쉽게 이해하고 사용할 수 있어야 한다는 원칙은?
- 직관성 : 누구나 쉽게 이해하고 사용할 수 있어야 함.
- 유효성 : 정확하고 완벽하게 사용자의 목표가 달성되어야 함.
- 학습성 : 모두가 쉽게 배우고 사용할 수 있게 제작되어야 함.
- 유용성 : 사용자의 실수를 방지할 수 있게 제작되어야 함.
26. 다음 중 모듈의 결합도(Coupling)가 가장 높은 것은?

29. CASE(Computer-Aided Software Engineering)에 대한 설명으로 알맞은 것은?
- CASE(Computer-Aided Software Engineering)
- 소프트웨어 생명주기의 전 단계를 연결해주고 자동화하는 소프트웨어 도구
- SW, HW, Database, 테스트 등을 통합하여 소프트웨어를 개발하는 환경을 조성
- 개발 과정의 속도를 향상시키며, 소프트웨어 부품의 재사용을 가능하게 함.
- CASE의 기능
- 그래픽 지원
- 소프트웨어 생명주기 전 단계의 연결
- 다양한 소프트웨어 개발 모형 지원
- 표준화된 개발환경 구축 및 문서 자동화 기능
32. XP(eXtreme Programming)의 5가지 가치가 아닌 것은?
- XP(eXtreme Programming)
- 소프트웨어 품질을 높이고, 개발 팀이 변화에 빠르게 대응할 수 있도록 하는 데 중점을 둔 방법론
- 기술적인 실천과 지속적인 코드 개선 등 실용성에 중점을 둔 방법론
- XP의 5가지 가치 : 용기, 단순성, 의사소통, 피드백, 존중
33. 다음 중 자료 사전에서 자료의 선택을 의미하는 것은?

34. 코드화 대상 항목의 무게, 면적 등 물리적 수치를 이용해 만든 코드는?
- 코드 설계: 데이터의 분류나 사물의 표현을 위해 코드를 설계하는 것
- 코드의 기능: 간소화, 표준화, 분류, 식별, 배열, 연상, 암호화, 오류 검출 등
- 코드 설계의 종류
- 연상 코드 : 약호를 통해 코드만 보도고 대상을 연상할 수 있도록 만든 코드
- 블록 코드 : 공통성이 있는 것끼리 블록으로 구분하고, 각 블록 내에서 일련 번호를 부여하는 코드
- 순차 코드 : 기준에 따라 순서대로 일련번호를 부여하는 코드
- 표의 숫자 코드 : 코드화 대상 항목의 무게, 면적 등 물리적 수치를 이용해 만든 코드
36. 미들웨어 솔루션의 유형에 포함되지 않는 것은?
- WAS : 웹 애플리케이션을 실행하기 위한 소프투웨어 환경을 제공
- TP Monitor : 트랜잭션이 올바르게 처리되고 있는지 데이터를 감시하고 제어하는 미들웨어
- RPC (Remote Procedure Call) : 응용 프로그램의 프로시저를 사용하여 원격 프로시저를 로컬 프로시저처럼 호출하는 방식의 미들웨어
- 메시지 지향 미들웨어(MOM : Message Oriented Middleware)
- 객체 기반 미들웨어(ORB : Object Request Brokes)
- CORBA 표준 스펙을 구현한 객체 지향 미들웨어
- HIPO(Hierarchy Input Process Output)
- 하향식 소프트웨어 개발을 위한 문서화 도구
- 보기 쉽고 이해하기 쉬움
- 기능과 자료의 의존 관계를 동시에 표현할 수 있음
- 가시적 도표, 총체적 도표, 세부적 도표의 세 종류
40. 요구사항 명세서를 미리 배포하여 사전 검토한 후 짧은 검토 회의를 통해 오류를 조기에 검출하는 데 목적을 두는 방법은?
- 워크 스루 : 요구사항 명세서를 미리 배포하여 사전 검토한 후 짧은 검토 회의를 통해 오류를 조기에 검출하는 데 목적을 두는 방법
- 동료 검토 : 요구사항 명세서 작성자가 요구사항 명세서를 설명하고 이해관계자들이 설명을 들으면서 결함을 발견
- 인스펙션 : 소프트웨어 요구, 설계, 원시 코드 등의 저작자 외의 다른 전문가나 팀이 검사하여 오류를 찾아내는 검토 방법
41. 객체 지향 기법에서 클래스들 간의 공통된 특성을 추출하여 상위 클래스를 만드는 기법으로, ‘is-a’ 관계로 설명되는 관계성을 나타내는 기법은?
- 연관화 : 객체 간의 일반적인 관계 (is-member-of)
- 분류화 : 객체를 공통된 특성에 따라 그룹화 (is-instance-of)
- 집단화 : 전체와 부분의 관계로, 부분은 독립적으로 존재 가능(is-a-part-of)
- 일반화 : 여러 클래스의 공통된 특성을 추출하여 상위 클래스를 만드는 것(is-a)
- 개와 고양이의 특성을 조합해 동물 클래스를 만듦.
- 특수화 : 상위 클래스를 기반으로 더 구체적이고 특수한 하위 클래스를 만드는 것 (is-a)
- 동물 클래스를 특수화하여 개와 고양이 클래스를 만듦.
42. 소프트웨어 설계에서 자주 발생하는 문제에 대한 일반적이고 반복적인 해결 방법
- 디자인 패턴 : 소프트웨어 설계에서 자주 발생하는 문제에 대한 일반적이고 반복적인 해결 방법
50. 통신을 위한 프로그램을 생성해 포트를 할당하고, 클라이언트의 통신 요청 시 클라이언트와 연결하는 송수신 연계 기술

