Studying/정보처리기사

[정보처리기사 실기]_2020년 3회

mh030128 2024. 10. 5. 16:57

1. 리팩토링의 목적에 대해 서술.

 

: 코드의 외부 행위는 바꾸지 않고 내부 구조 개선시켜 소프트웨어를 보다 이해하기 쉽고, 수정하기 쉽도록 만드는 것.

[리팩토링 목적]

 

① 유지보수성 향상 : 복잡한 코드의 단순화, 소스의 가독성 향상.

② 유연한 시스템 : 소프트웨어 요구사항 변경에 유연한 대응.

③ 생산성 향상 : 정제 및 최적화된 소스의 재사용.

④ 품질 향상 ; 소프트웨어 오류발견이 용이하여 품질 향상.


 

3. 대표적인 내부 라이팅 프로토콜로 다익스트라 알고리즘을 이용한 대규모 네트워크에 적합한 링크 상태 라우팅 프로토콜로도 불리는 라우팅 프로토콜은?

 

: OSPF (Open Shortest Path First)

 

[라우팅]

 

① IGP (Interior Gateway Protocol) : 하나의 동일 그룹 내 라우팅 정보교환

   ⑴ RIP (Routing Information Protocol)

        : 거리 벡터 라우팅 프로토콜. 최대 15홉 지원. 최단 경로 탐색으로 Bellman-Ford 알고리즘 사용. 소규모 네트워크 환경 적합

   ⑵ : OSPF (Open Shortest Path First Protocol)

        : RIP 단점 개선 목적. 대규모 네트워크에 널리 사용. 실시간 노드 간 거리, 링크 상태 반영. 다익스트라 알고리즘 사용.

② EGP (Exterior Gateway Protocol) : 서로 다른 그룹 간 라우팅 정보를 교환하는 프로토콜

   ⑴ BGP (Border Gateway Protocol) : 대규모 네트워크 적합. Path Vector 기반 라우팅. 다양한 경로 속성 고려한 최적 경로 설정


 

4. 형상 통제를 설명.

 

: 형상 항목의 버전 관리를 위해서 변경 여부와 변경 활동을 통제


 

5. 심리학자 톰 마릴은 컴퓨터가 메시지를 전달하고, 메시지가 제대로 도착했는지 확인하며, 도착하지 않았을 경우 메시지를 재전송하는 일련의 방법을 '기술적 은어'를 뜻하는 (      )이라는 용어로 정의했다. (      ) 안에 들어갈 용어를 쓰시오.

 

: 프로토콜

 

프로토콜은 서로 다른 시스템이나 기기들 간의 데이터 교환을 원활히 하기 위한 표준화된 통신규약.


 

6. TCP/IP에서 오류가 발생하면 (       ) 메시지를 보내서 오류가 발생했음을 알린다. (      ) 안에 들어갈 용어를 쓰시오.

 

: ICMP


 

7. 다음 아래 제어 흐름 그래프가 분기 커버리지를 만족하기 위한 테스팅 순서 작성.

 

: 1234561, 124567 또는  1234567, 124561

① 첫 번째 분기문과 두 번째 분기문이 둘 다 참일 경우 : 1234561

② 첫 번째 분기문과 두 번째 분기문이 둘 다 거짓일 경우 : 124567

③ 첫 번째 분기문이 참이고, 두 번째 분기문이 거짓일 경우 : 1234567

④ 첫 번째 분기문이 거짓이고, 두 번째 분기문은 참일 경우 : 124561

[화이트박스 테스트]

 - 모듈 안의 내용(작동) 직접 볼 수 있으며, 내부의 논리적인 모든 경로를 테스트.

 - 소스 코드의 모든 문장을 한 번 이상 수행, 논리적 경로 점검(선택, 반복수행).

 - 테스트 데이터 선택하기 위해 검증 기준 커버리지 정함.

 

 ▶ 검증 기준

  ① 구문 커버리지(Statement Coverage = 문장 커버리지) : 프로그램 내 모든 명령문을 적어도 한 번 수행.

  ② 결정(분기) 커버리지(Branch Coverage) : 프로그램 내 전체 결정문이 적어도 한 번은 참, 거짓 결과 수행.

  ③ 조건 커버리지(Condition Coverage) : 결정 명령문 내의 각 개별 조건식이 적어도 한 번은 참, 거짓 결과 수행.

  ④ 조건/결정 커버리지(Condition/Decision) : 전체 조건식뿐만 아니라 개별 조건식도 참 한 번 이상, 거짓 한 번 이상 결과 수행

  ⑤ 변경 조건/결정 커버리지(MC/DC)

     - Modified Condition / Decision Coverage로 각 개별 조건식이 독립적으로 전체 조건식 결과에 영향.

  ⑥ 다중 조건 커버리지(Multiple Condition)

     - 결정 포인트 내 모든 개별 조건식의 모든 가능한 논리적 조합을 고려하여 100% 커버리지 보장.

 

 ▶ 종류

   ① 기초 경로 검사

     - 대표적 화이트박스 테스트 기법(동적 테스트).

     - 테스트 케이스 설계자가 절차적 설계의 논리적 복잡성을 측정할 수 있게 해주는 테스트 기법.

     - 측정 결과는 실행 경로의 기초를 정의하는 지침으로 사용.

   ② 제어 구조 검사

     - 조건 검사 : 프로그램 모듈 내 논리적 조건 테스트

     - 루프 검사 : 프로그램 반복(Loop) 구조 테스트

     - 자료 흐름 검사 : 변수의 정의와 변수 사용의 위치 테스트


 

8.다음 조건을 만족하면서 과목별 점수의 평균이 90 이상인 과목이름, 최소점수, 최대점수를 구하는 SQL문을 작성.

- 대소문자를 구분하지 않는다.

- WHERE 구문을 사용하지 않는다.

- GROUP BY, HAVING 구문을 반드시 사용한다.

- 세미콜론(;)은 생략 가능하다.

- 별칭(AS)을 사용해야 한다.

 

[성적]

과목코드 과목이름 학점 점수
1000 컴퓨터과학 A+ 95
2000 운영체제 B+ 85
3000 컴퓨터과학 B+ 85
4000 운영체제 B 80

[결과]

과목이름 최소점수 최대점수
컴퓨터과학 85 95

 

SELECT 과목이름, MIN(점수) AS 최소점수, MAX(점수) AS 최대점수 FROM 성적 GROUP BY 과목이름 HAVING AVG(점수) >= 90;


 

9. 학생 테이블에서 이름이 민수인 튜플을 삭제하는 SQL문을 작성.

 

[학생]

학번 이름 점수 과목이름
1000 김정미 90 알고리즘
2000 강은미 95 데이터베이스
3000 홍길동 90 전산수학
4000 민수 95 운영체제

 

: DELETE FROM 학생 WHERE 이름 = '민수';

DELETE FROM 테이블명 WHERE 조건;

 

WHERE 조건이 없으면 모든 레코드 삭제.


 

10. 릴레이션 A, B가 있을 때 릴레이션 B 조건에 맞는 것들만 릴레이션 A에서 튜플을 꺼내 프로젝션하는 관계 대수의 기호는 무엇인가?

 

; ÷

 

[관계대수 : 원하는 정보의 검색 과정을 정의하는 절차적 언어.]

 

① 순수관계 연산자

σ Select (선택) 조건을 만족하는 튜플들의 부분 집합(수평 연산).
π Project(추출) 속성들의 부분, 집합, 중복 제거(수직 연산).
▷◁ Join조인) 두 개의 릴레이션을 하나로 합쳐 새로운 릴레이션 형성.
÷ Division (나누기) A의 속성이 B의 속성 값을 모두 가진 튜플에서(A ⊃ B) B가 가진 속성을 제외한 나머지 속성들만 추출

 - 세타조인 : 두 릴레이션 속성 값을 비교 후 조건을 만족하는 튜플만 반환.

 - 동등조인 : 조건이 정확하게 '=' 등호로 일치하는 결과를 반환.

 - 자연 조인 : 동등 조인의 결과에서 ㅈ우복된 속성을 제거한 결과를 반환

 

② 일반 집합 연산자

Union(합집합) 두 릴레이션의 합 추출, 중복은 제거.
Intersection(교집합) 두 릴레이션의 중복되는 값만 추출.
Difference(차집합) A 릴레이션에서 B 릴레이션 간 중복되지 않는 값을 추출.
X Cartesian Product (교차곱) 두 릴레이션의 가능한 모든 튜플의 집합 → 속성, 컬럼끼리 더하기 / 튜플끼리는 곱하기.

 

[관계해석 : 원하는 정보가 무엇이라는 것만 정의하는 비절차적 언어.]

 

논리연산자 OR 원자식 간 "또는" 관계로 연결.
AND 원자식 간 "그리고" 관계로 연결.
NOT 원자식에 대한 부정
전량자 전칭 전량자 모든 가능한 튜플 "For All"
존재 전량자 어떤 튜플 하나라도 존재 "There Exists"

 

11. 다음 중 헝가리안 표기법(Jungarian Case)에 대해서 서술.

 

: 프로그래밍 언어에서 변수 및 함수의 인자 이름 앞에 데이터 타입(자료형)을 명시.


 

12. 테스트의 종류 중 동치분할 테스트, 경곗값 분석 테스트 등의 종류가 있는 테스트 기법을 작성.

 

: 블랙 박스 테스트 (명세 기반 테스트)

 

[블랙 박스 테스트] (동경결상 유분페원비오)

 

 - 모듈 내부의 내용은 알 수 없음.

 - 소프트웨어 인터페이스에서 실시되는 테스트.

 - SW 각 기능이 완전히 작동되는 것을 입증하는 테스트로 '기능 테스트'라고 함.

 

  ▶ 종류

   ① 동치 분할 검사(Equivalence Partition) = 동등분할 테스트 = 균등분할 테스트 = 동치클래스 분해 테스트

     - 프로그램 입력 조건에 타당한 입력 자료와 타당하지 않은 입력 자료의 개수를 균등하게 진행.

   ② 경곗값 분석(Boundary Value) = 한계값 테스트

     - 입력 조건의 경곗값을 테스트 케이스로 선정 (ex. 범위 구간의 양 끝 ; ~이상, 이하, 초과, 미만)

   ③ 결정 테이블 테스트(Decision Table Testing)

     - 요구사항의 논리와 발생 조건을 테이블 형태로 나열하여, 조건과 행위를 모두 조합하여 테스트하는 기법.

   ④ 상태 전이 테스트(State Transition Testing)

     - 테스트 대상, 시스템이나 객체의 상태를 구분하고, 이벤트에 의해 어느 한 상태에서 다른 상태로 전이되는 경우의 수를 수행하는 기법.

   ⑤ 유스케이스 테스트(Use Case Testing)

     - 시스템이 실제 사용되는 유스케이스로 모델링 되어있을 때 프로세스 흐름을 기반으로 테스트 케이스를 명세화하여 수행하는 테스트기법.

   ⑥ 분류 트리 테스트(Classification Tree Method Testing)

     - SW의 일부 또는 전체를 트리 구조로 분석 및 표현하여 테스트 케이스를 설계하여 테스트하는 기법.

   ⑦ 페어와이즈 테스트(Pairwise Testing)

     - 테스트 데이터 값에 간에 최소한 한 번씩을 조합하는 방식.

       이는 커버해야 할 기능적 범위를 모든 조합에 비해 상대적으로 적은 양의 테스트 세트를 구성하기 위한 테스트 기법.

   ⑧ 원인-효과 그래프 검사(Cause-Effect Graphing)

     - 입력 데이터 간의 관계와 출력에 영향을 미치는 상황을 체계적으로 분석 후 효용성이 높은 테스트 케이스 선정.

   ⑨ 비교검사(comparison Testing)

     - 여러 버전의 프로그램에 동일한 결과가 출력되는지 확인.

   ⑩ 오류 예측 검사(Error Guessing)

     - 과거의 경험이나 확인자의 감각으로 테스트 진행.

     - 개발자가 범할 수 있는 실수를 추정하고 이에 따른 결함이 검출되도록 테스트 케이스를 설계하여 테스트하는 기법.

 


 

14. DB 스키마에 대해 서술.

 

: 데이터베이스의 구조, 제약조건 등의 정보를 담고 있는 기본적인 구조.

[DDL 대상 (도스테뷰인)]

 

 ① 도메인(Domain)

     - 하나의 속성이 가질 수 있는 원자값들의 집합.

     - 속성의 데이터 타입과 크기, 제약조건 등의 정보.

 ② 스키마

   ⑴ 외부스키마(External Schema)

      - 사용자나 개발자의 관점에서 필요로 하는 데이터베이스의 논리적 구조.

      - 사용자 뷰를 나타냄.

      - 서브 스키마로 불림.

   ⑵ 개념스키마(Conceptual Schema)

      - 데이터베이스의 전체적인 논리적 구조.

      - 전체적인 뷰를 나타냄.

      - 개체 간의 관계, 제약조건, 접근 권한, 무결성, 보안에 대해 정의.

   ⑶ 내부스키마(Internal Schema) 

     - 물리적 저장장치의 관점에서 보는 데이터베이스 구조.

     - 실제로 데이터베이스에 저장될 레코드의 형식을 정의하고 저장 데이터 항목의 표현 방법, 내부 레코드의 물리적 순서 등을 표현.

 ③ 테이블(Table) : 데이터 저장 공간.

 ④ 뷰(View) : 하나 이상의 물리 테이블에서 유도되는 가상의 테이블.

 ⑤ 인덱스(Index) : 검색을 빠르게 하기 위한 데이터 구조.


 

16. UI 설계 중 직관성에 대해 작성.

 

: 누구나 쉽게 이해하고, 사용할 수 있는 것.

 

https://mh030128.tistory.com/24

 

[정보처리기사 실기]_2020년 2회

1. 정보시스템 운영 중 서버가 다운되거나 자연재해나 시스템 장애 등의 이유로 고객에게 서비스가 불가능한 경우가 종종 발생한다. 이와 같은 상황에서 비상사태 또는 업무중단 시점부터 업무

mh030128.tistory.com

20년 2회_16번 문제


 

18. EAI 유형에는 메시지 버스(Message Bus), 하이브리드(Hybrid), (    ①    ), (    ②    ) 4가지가 있다.

 

① 포인트 투 포인트(Point to Point)

② 허브 앤 스포트(Hub&Spoke)

 

[EAI 구축 유형 (포허메하)]

 

① 포인트 투 포인트(Point to Point) : 가장 기초적인 애플리케이션 통합방법으로 1 : 1 단순 통합 방법.

② 허브 앤 스포크(Hub&Spoke)

     - 단일한 접점의 허브 시스템을 통하여 데이터를 전송하는 중앙 집중식 방법.

     - 허브 장애 시 전체 장애 발생.

③ 메시지버스(Message Bus)

     - 애플리케이션 사이 미들웨어(버스)를 두어 연계하는 미들웨어 통합 방식.

     - 뛰어난 확장성과 대용량 데이터 처리 가능.

④ 하이브리드(Hybrid) : 그룹 내부는 허브 앤 스포크 방식을 사용하고, 그룹 간에는 메시지 버스 방식 사용하는 통합 방식.


 

19. C++ 생성자란 무엇인가?

 

: 객체 생성 시 자동으로 호출되는 메서드로 멤버를 초기화하는 목적.


 

20. 학생 테이블에 주소 속성을 추가하는 SQL 문을 작성.

(   ①   ) TABLE 학생 (   ②   ) 주소 VARCHAR(20);

 

① ALTER

② ADD

 

[ALTER 테이블 관련 문법]

 

① 컬럼 추가 : ALTER TABLE 테이블명 ADD 컬럼명 데이터타입[제약조건];

② 컬럼 수정 : ALTER TABLE 테이블명 MODIFY 컬럼명, 데이터타입[제약조건];

③ 컬럼 삭제 : ALTER TABLE 테이블명 DROP 컬럼명;