본문 바로가기
카테고리 없음

[정보처리기사] 2022년04월24일 기출문제 오답 1회

by 위시우 2024. 8. 1.


11. 객체에 대한 설명으로 틀린 것은?
     
     1. 객체는 상태, 동작, 고유 식별자를 가진 모든 것이라 할 수 있다.
     2. 객체는 공통 속성을 공유하는 클래스들의 집합이다.
     3. 객체는 필요한 자료 구조와 이에 수행되는 함수들을 가진 하나의 독립된 존재이다.
     4. 객체의 상태는 속성값에 의해 정의된다.

 

내가 선택한 오답 [4] 

- 객체의 상태는 속성값에 의해 정의되는게 맞다. 

 

정답[2]

- 클래스는 공통 속성을 공유하는 객체들의 집합이기 때문이다. 


15. GoF(Gang of Four) 디자인 패턴을 생성, 구조, 행동 패턴의 세 그룹으로 분류할 때, 구조 패턴이 아닌 것은?
     
     1. Adapter 패턴
     2. Bridge 패턴
     3. Builder 패턴
     4. Proxy 패턴

 

내가 선택한 오답 [4] Proxy 패턴은 구조 패턴 중 하나다. 

정답 [3] Builder 패턴은 생성패턴 중 하나다

 

생성 패턴 : 객체 인스턴스를 생성하는 패턴

- 싱글턴 

- 추상 팩토리

- 팩토리 메소드

- 빌더

- 프로토 타입

 

행동 패턴: 클래스와 객체들이 상호작용하는 방법과 역할을 분담하는 방법을 다루는 패턴

- 템플릿 메소드

- 싱글턴

- 반복자

- 옵저버

- 상태

- 전략

- 비지터

- 중재자

- 인터프리터

- 메멘토

 

구조 패턴: 클래스와 객체를 더 큰 구조로 만들 수 있게 구성을 사용하는 것 

- 데코레이터

- 프록시

- 컴포지트

- 퍼사드

- 브리지

- 플라이웨이트

- 어댑터

출처: https://m.hanbit.co.kr/channel/category/category_view.html?cms_code=CMS8616098823

 

 

20. 소프트웨어 아키텍처 모델 중 MVC(Model-View-Controller)와 관련한 설명으로 틀린 것은?
     
     1. MVC 모델은 사용자 인터페이스를 담당하는 계층의 응집도를 높일 수 있고, 여러 개의 다른 UI를 만들어 그 사이에 결합도를 낮출 수 있다.
     2. 모델(Model)은 뷰(View)와 제어(Controller) 사이에서 전달자 역할을 하며, 뷰마다 모델 서브시스템이 각각 하나씩 연결된다.
     3. 뷰(View)는 모델(Model)에 있는 데이터를 사용자 인터페이스에 보이는 역할을 담당한다.
     4. 제어(Controller)는 모델(Model)에 명령을 보냄으로써 모델의 상태를 변경할 수 있다.

 

정답 [2] 

- 한 개의 모델에 대해 여러 개의 뷰를 만들 수 있다. 

내가 선택한 오답[1] 

- 응집도와 결합도의 의미를 헷갈렸음 

- 제어(controller)는 뷰(view)와 모델(model)사이에서 전달자 역할을 수행한다. (출처 : [해설작성자 : comcbt.com 이용자])

 


22. 다음과 같이 레코드가 구성되어 있을 때, 이진 검색 방법으로 14를 찾을 경우 비교되는 횟수는?

     1. 2
     2. 3
     3. 4
     4. 5

 

내가 선택한 오답 [3] 

정답 [2]

 

이진 탐색 동작 방식
  1. 배열의 중간 값을 찾음
  2. 중간 값과 검색 값을 비교
  2-1. 중간 값이 검색 값과 같으면 끝.
  2-2. 중간 값보다 검색 값이 크다면 오른쪽 구간을 탐색
  2-3. 중간 값보다 검색 값이 작다면 왼쪽 구간을 탐색
  3.값을 찾거나 간격이 비었을 때까지 반복

인덱스를 기준으로 본다. 

low : 0
high : 14
middle : (0 + 14 / 2) → 7
arr[middle] : arr[7] → 8
8 < 14 : low 변경

low : middle + 1 → 8
high : 14
middle : (8 + 14) / 2 → 11
arr[middle] : arr[11] → 12
12 < 14 : low 변경

low : middle + 1 → 12
high : 14
middle : (12 + 14) / 2 → 13
arr[middle] : arr[13] → 14
14 == 14
[해설작성자 : 닥터컴 송박사]

 


23. 소프트웨어 공학에서 워크스루(Walkthrough)에 대한 설명으로 틀린 것은?
     
     1. 사용사례를 확장하여 명세하거나 설계 다이어그램, 원시코드, 테스트 케이스 등에 적용할 수 있다.
     2. 복잡한 알고리즘 또는 반복, 실시간 동작, 병행 처리와 같은 기능이나 동작을 이해하려고 할 때 유용하다.
     3. 인스펙션(Inspection)과 동일한 의미를 가진다.
     4. 단순한 테스트 케이스를 이용하여 프로덕트를 수작업으로 수행해 보는 것이다.

 

정답[3] 

- 인스펙션: 요구사항 명세서 작성자 제외 다른 검토 담당자들이 요구사항 명세서를 확인하면서 결함을 발견

- 워크스루: 요구사항 명세서 작성자를 포함하여 사전 검토한 후에 짧은 검토 회의를 통해 결함을 발견

 

 


32. 버블 정렬을 이용하여 다음 자료를 오름차순으로 정렬할 경우 PASS 1의 결과는?


     1. 6, 9, 7, 3, 5
     2. 3, 9, 6, 7, 5
     3. 3, 6, 7, 9, 5
     4. 6, 7, 3, 5, 9

 

내가 선택한 오답 [1] 

- PASS 1 의 의미를 몰랐음. 

- PASS 1 첫 버블 정렬이 끝난상태

 

정답 [4]

버블 정렬 : index = 0 부터 시작해서 오른쪽 값과 비교 후 정렬

 

9, 6, 7, 3, 5

6, 9, 7, 3, 5

6, 7, 9, 3, 5

6, 7, 3, 9, 5

6, 7, 3, 5, 9

 


35. 단위 테스트(Unit Test)와 관련한 설명으로 틀린 것은?
     
     1. 구현 단계에서 각 모듈의 개발을 완료한 후 개발자가 명세서의 내용대로 정확히 구현되었는지 테스트한다.
     2. 모듈 내부의 구조를 구체적으로 볼 수 있는 구조적 테스트를 주로 시행한다.
     3. 필요 데이터를 인자를 통해 넘겨주고, 테스트 완료 후 그 결과값을 받는 역할을 하는 가상의 모듈을 테스트 스텁(Stub)이라고 한다.
     4. 테스트할 모듈을 호출하는 모듈도 있고, 테스트할 모듈이 호출하는 모듈도 있다.

 

내가 선택한 오답 [1]

구현 단계에서 각 모듈의 개발을 완료한 후 개발자가 명세서의 내용대로 구현되었는지 테스트하는게 맞다. 

모듈별보다 더 작은 단위로 테스트 한다고 생각했다. 

정답 [3] 

테스트 드라이버 : 필요 데이터를 인자를 통해 넘겨주고, 테스트 완료 후 그 결과값을 받는 역할을 하는 가상의 모듈

테스트 스텁 : 인자를 통해 받은 값을 가지고 수행한 후 그 결과를 테스트할 모듈에 넘겨주는 역할

                     dummy객체가 마치 실제로 동작하는 것 처럼 보이도록 만들어놓은 것

 


41. 다음 조건을 모두 만족하는 정규형은?

 


     1. BCNF
     2. 제1정규형
     3. 제2정규형
     4. 제3정규형

 

정답 [1] BCNF

정규형의 단계가 높아질 수록 하위 조건을 만족한다. 

 

더보기

1. 제 1 정규화 : 모든 컬럼 값이 원자값을 가지도록 테이블 구조화

원자값이란 속성 값이 더 이상 논리적으로 분해될 수 없는 값이다. 

릴레이션의 모든 열과 행의 위치에서 있는 데이터 값은 단 하나의 값만 가질 수 있음 

하나의 속성에 있는 도메인이 {1학년, 2학년} 과 같이 다중값을 가질 수 없다. 

 

학번 이름 전공 성적1 성적2
1 김철수 컴퓨터공학과 100 90
2 박영희 전자공학과 60 80
3 이승호 경제학과 50 70
학번 이름 전공 성적1
1 김철수 컴퓨터공학과 100
1 김철수 컴퓨터공학과 90
2 박영희 전자공학과 60
2 박영희 전자공학과 80
3 이승호 경제학과 50
3 이승호 경제학과 70

 

2. 제 2 정규화 : 테이블에 존재하는 모든 컬럼이 기본키에 대해 완전 함수적 종속 관계를 가지도록 테이블 분리

완전 함수적 종속 관계 : 종속자가 기본키에만 종속되는 경우, 기본키가 여러 칼럼으로 구성되어있는 경우 모든 속성으로 구성된 부분집합에 종속되는 경우다. 

기본키를 구성하는 특정 칼럼에만 종속될 경우, 완전 함수적 종속관계가 아니다. 

 

주문번호 상품번호 상품명 고객명 수량
1001 1 노트북 김철수 2
1001 2 마우스 김철수 1
1002 3 키보드 박영희 3
1003 2 마우스 이승호 2

주문번호 -> 고객명 (부분 함수적 종속 관계)

상품번호 -> 상품명 (부분 함수적 종속 관계)

주문번호, 상품번호 -> 수량 (완전 함수적 종속 관계)

 

완전 함수적 종속관계로 정규화하면 다음과 같다. 

 

주문번호 상품번호 수량
1001 1 2
1001 2 1
1002 3 3
1003 2 2

 

상품번호 상품명
1 노트북
2 마우스
3 키보드

 

주문번호 고객명
1001 김철수
1002 박영희
1003 이승호
 

 

3. 제 3 정규화 : 모든 비기본키 칼럼이 기본키에만 의존하고, 다른 비기본키 칼럼에는 의존하지 않도록 보장하는 것입니다.

  

이행적 함수 종속 관계란 X, Y, Z 라는 속성이 있을때, X-> Y -> Z 의 관계로 

X 를 알고 있을때, Y를 알수 있고, Y와 Z가 종속관계로 Y를 알면, Z 를 알 수 있는 관계다.  

 

1) key 가 아닌 컬럼은 key 에 완전히 종속되어야 한다. 

2) 모든 non-key 칼럼은 key 에만 종속되어야 한다. 

학번 이름 메일 대학 전공
101 Tom tom@naver.com 이과대학 생물학과
102 Dan Dan@naver.com IT대학 컴퓨터과
103 Jin jin@google.com 정경대학 경제학과

릴레이션에서 전공은 비기본키 칼럼인 대학에 종속되어있다.

학번 -> 전공 -> 대학 (이행적 함수 종속 관계)

 

 

전공 대학
생물학과 이과대학
컴퓨터과 IT대학
경제학과 정경대학
정치학과 정경대학
[출처] https://mr-dan.tistory.com/10

 

4. 보이스-코드 정규화 : 모든 결정자가 후보키가 되도록 테이블을 분리한다. 

후보 키

각 데이터를 유일하게 식별할 수 있는 "최소한의" 속성 집합

 

Trivial FD 란 Y가 X 의 부분 집합인 경우를 말한다. {A, B} -> {B} 와 같이 당연한 경우를 말한다. 

고로 모든 결정자가 후보키 인 경우 BCNF 를 말한다.

 

제3정규형
학번 과목 교수
1234 데이터베이스 김용주
1234 자료구조 이우정
5678 프로그래밍 박정미
3457 자료구조 고현주
3654 데이터베이스 김용주

학번, 과목 -> 교수

교수 -> 과목

학번, 과목

교수 ->  과목

 

5. 제 4 정규화 : 다중값 종속 관계가 있는 컬럼을 분리

1. BCNF를 만족해야 한다.2. 다치 종속(Multi-valued Dependency)이 없어야 한다.

다치 종속이란

1. A->B 일 때 하나의 A값에 여러 개의 B값이 존재하면 다치 종속성을 가진다고 하고 A↠B라고 표시한다

2. 최소 3개의 칼럼이 존재한다.

3. R(A, B, C)가 있을 때 A와 B 사이에 다치 종속성이 있을 때 B와 C가 독립적이다.

 

학생ID 과목 클럽
1001 수학 축구부
1001 과학 축구부
1001 수학 독서부
1002 영어 음악부
1002 역사 음악부
1003 과학 미술부
1003 과학 축구부


출처: https://code-lab1.tistory.com/270 [코드 연구소:티스토리]

6. 제 5 정규화 : 조인을 통해 유도 가능한 데이터 분리

 

댓글