[정보처리기사 실기]_2020년 3회
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 컬럼명;