https://chobopark.tistory.com/194
1. 리팩토링의 목적에 대해 서술하시오.
결과의 변경 없이 코드의 구조를 재조정.
복잡한 코드의 단순화, 소스의 가독성을 통해 유지보수성 향상, 유연한 시스템, 생산성 향상, 품질 향상 등...
2. 다음은 C언어 소스 코드이다. 출력 결과를 쓰시오.
#include <stdio.h>
void main(){
int i=0, c=0;
while (i<10){
i++;
c*=i;
}
printf("%d",c);
}
0
3. 다음 설명에 해당하는 라우팅 프로토콜은 무엇인가?
- 최단 경로 탐색에 다익스트라 알고리즘기반 방식 사용.
- 최적 경로 선택을 위해 흡수, 대역폭, 지연시간 등을 고려.
- 링크상태 변화시에만 라우팅정보 전송.
OSPF (Open Shortest Path First protocol)
* 라우터 : 데이터 전송의 최적 경로를 탐색.
* 라우팅 영역에 따른 분류
- IGP (Interior Gateway Protocol) : AS(Autonomous System) 내부 라우터 간
> RIP (Routing Information Protocol) : 15홉까지만 이동가능, 거리벡터 알고리즘
> OSPF (Open Shortest Path First protocol) : 링크상태 프로토콜
> IGRP
- EGP (Exterior Gateway Protocol) : AS(Autonomous System) 외부 라우터 상호간
> BGP
4. 형상 통제를 설명하시오.
소프트웨어 형상 변경 요청을 검토하고 승인하여 현재의 기준선(Base Line)에 반영될 수 있도록 통제.
=> CCB (Change Control Board) : 위의 역할을 담당
* 형상 관리 (SCM : Software Configuration Management)
* 형상 관리 기능
- 형상 식별 _ 형상 관리 대상에 이름/관리번호를 부여하고, 계층 구조로 구분하여 수정/추적이 용이하도록 하는 작업
- 버전 제어 _ (유지보수과정) 생성된 다른 버전의 형상 항목을 관리
- 형상 통제 (변경 관리)
- 형상 감사 _ 기준선의 무결성을 평가 및 승인
- 형상 기록 (상태 보고)
5. 심리학자 톰 마릴은 컴퓨터가 메세지를 전달하고, 메세지가 제대로 도착했는지 확인하며, 도착하지 않았을 경우 메세지를 재전송하는 일련의 방법을 '기술적 은어'를 뜻하는 ( )이라는 용어로 정의했다. 괄호 ( ) 안에 들어갈 용어를 쓰시오.
=> 메시지의 흐름제어, 오류제어
프로토콜
* 프로토콜의 3요소
구문, 의미, 타이밍
6. 인터넷 프로토콜의 비신뢰적인 특성을 보완하기 위한 프로토콜로 IP 패킷 전송 중 에러 발생 시 에러 발생 원인을 알려주거나 네트워크 상태를 진단해주는 기능을 제공하는 프로토콜을 무엇이라고 하는지 영문 약어로 쓰시오.
ICMP
* ICMP (Internet Control Message Protocol) 인터넷 제어 메시지 프로토콜
* SMURFING 스머핑
IP나 ICMP의 특성을 악용하여 엄청난 양의 데이터를 한 사이트에 집중적으로 보내 네트워크를 불능 상태로 만드는 공격 방법
7. 다음 아래 제어 흐름 그래프가 분기 커버리지를 만족하기 위한 테스팅 순서를 쓰시오.
Branch Coverage ( = Decision Coverage)
1234567 or 124567
* 코드 커버리지 (Code Coverage) => 화이트박스 테스트 검증 기준
- 구문 커버리지 : 코드 구조 내의 모든 구문에 대해 한 번 이상 수행하는 테스트 커버리지
- 조건 커버리지 : 결정 포인트 내의 모든 개별 조건식에 대해 수행하는 테스트 커버리지
- 결정 커버리지 : 결정 포인트 내의 모든 분기문에 대해 수행하는 테스트 커버리지 (TRUE, FALSE인 경우 각각)
- 조건/결정 커버리지 : 결정포인트 T/F, 개별조건식 T/F를 가져야 한다.
- 변경/조건 커버리지 : 모든 결정 포인트 내의 개별 조건식은 적어도 한 번 T, F를 가져야 한다.
- 다중 조건 커버리지 : 결정 포인트 내 모든 개별 조건식의 가능한 조합을 100% 보장해야 한다.
if ( 조건1 & 조건2 & 조건3 ) => 결정포인트
각각이 개별 조건식
8. 다음 조건을 만족하면서, 과목별 점수의 평균이 90이상인 과목이름, 최소점수, 최대점수를 구하는 SQL문을 작성하시오.
- 대소문자를 구분하지 않는다.
- WHERE 구분을 사용하지 않는다.
- GROUP BY, HAVING구문을 반드시 사용한다.
- 세미콜론(;)은 생략 가능하다.
- 별칭(AS)을 사용해야 한다.
[성적]
과목코드 | 과목이름 | 학점 | 점수 |
1000 | 컴퓨터과학 | A+ | 95 |
2000 | 운영체제 | B+ | 85 |
1000 | 컴퓨터과학 | B+ | 85 |
2000 | 운영체제 | B | 80 |
[결과]
과목이름 | 최소점수 | 최대점수 |
컴퓨터과학 | 85 | 95 |
SELECT
과목이름,
MIN(점수) AS 최소점수,
MAX(점수) AS 최대점수
FROM 성적
GROUP BY 과목이름
HAVING AVG(점수) >= 90
SUM : 합계
COUNT : 갯수
9. 학생 테이블에서 이름이 '민수'인 튜플을 삭제하는 SQL문을 작성하시오
[학생]
학번 | 이름 | 점수 | 과목이름 |
1000 | 김정미 | 90 | 알고리즘 |
2000 | 강은미 | 95 | 데이터베이스 |
3000 | 홍길동 | 90 | 전산수학 |
4000 | 민수 | 95 | 운영체제 |
DELETE FROM 학생
WHERE 이름 = '민수';
* 문자열은 작은따옴표 사용 (숫자는 상관없음)
10. 릴레이션 A, B가 있을 때 릴레이션 B 조건에 맞는 것들만 릴레이션 A에서 튜플을 꺼내 프로젝션하는 관계 대수의 기호는 무엇인가?
DIVISION (÷)
* 관계대수 연산자
- 순수 관계 연산자 : SELECT( σ ), PROJECT( π ), JOIN( ⋈ ), DIVISION( ÷ )
- 일반 집합 연산자 : 합집합(∪), 교집합(∩), 차집합(-), 카티션 프로덕트(×)
* 셀렉트 (SELECT, σ)
릴레이션에서 조건을 만족하는 수평적 부분 집합(튜플)을 구하기 위한 연산.
=> 학생테이블에서 학년이 1인 튜플 추.
*프로젝트 (PROJECT, π)
릴레이션에서 수직적 부분 집합(속성의 값)을 구하는 연산. 원하는 속성을 추출하기 위한 연산.
=> 학생테이블에서 학번과 이름 추출.
*조인 (JOIN, ⋈ )
두 테이블로부터 조건에 맞는 관련된 튜플들을 하나의 튜플로 결합하여 하나의 테이블로 만드는 연산.
=> 학생테이블과 성적테이블을 결합. 학번이 조건.
* 디비전 (DIVISION, ÷)
A, B 두 테이블에 대해 'A DIVISION B'는 B테이블의 조건을 만족하는 튜플들을 테이블 A에서 추출하는 연산.
11. 다음 중 헝가리안 표기법(Hungarian Case)에 대해서 서술하시오.
프로그래밍 언어에서 변수 및 함수의 인자 이름 앞에 데이터 타입을 명시하는 코딩 규칙.
12. 소프트웨어 테스트 기법 중 소프트웨어의 기능이 완전히 작동하는 것을 입증하는 테스트로, 동치분할/경계값 분석을 이용하여 테스트하는 기법을 쓰시오.
블랙박스 테스트
* 화이트박스 테스트 (White Box Test) _ 소스코드
모듈의 원시 코드를 오픈, 논리적인 모든 경로를 테스트.
- 기초 경로 검사 (Base Path Testing)
- 제어 구조 검사 (Control Structure Testing)
> 조건 검사 (Condition Testing) : 모듈 내 논리적 조건을 테스트
> 루프 검사 (Loop Testing) : 반복 구조에 초점을 맞춘 테스트
> 데이터 흐름 검사 (Data Flow Testing) : 변수의 정의와 변수 사용의 위치에 초점을 맞춘 테스트
* 블랙박스 테스트 (Black Box Test) _ 입출력값
소프트웨어의 각 기능이 완전히 작동되는 것을 입증하는 테스트 (기능 테스트)
- 동등 분할 기법 : 입력 자료에 초점을 맞춰 테스트 케이스를 만들어 검사하는 방법
- 경계값 분석 : 입력 조건의 경계값을 테스트 케이스로 선정하는 방법
- 원인-효과 그래프 검사 : 입력 데이터 간의 관계와 출력에 영향을 미치는 상황을 체계적으로 분석한 다음
효용성이 높은 테스트 케이스를 선정하여 검사하는 기법.
- 오류 예측 검사 : 과거의 경험이나 테스터의 감각으로 테스트하는 기법.
- 비교 검사 : 여러 버전의 프로그램에 동일한 테스트 자료를 제공하여 동일한 결과가 출력되는지 테스트하는 기법.
13. 다음은 C언어 소스 코드이다. 출력 결과를 쓰시오.
#include <studio.h>
int r1(){
return 4;
}
int r10(){
return (30+r1());
}
int r100(){
return (200+r10());
}
int main(){
printf("%d\n", r100());
return 0;
}
234
14. DB스키마에 대해서 서술하시오.
데이터베이스 스키마(Schema) _ 개념스키마
=> 데이터베이스의 전체적인 구조와 제약조건에 대한 명세를 기술하고 정의한 것이다.
* 외부스키마 (view, 보여지는 부분)
================================= 논리적 독립성
* 개념스키마 (전체적인 구조 & 제약조건)
================================= 물리적 독립성
* 내부스키마 (물리적 저장장치)
15. 다음은 자바 코드이다. 출력 결과를 쓰시오.
abstract class vehicle{
private String name;
abstract public String getName(String val);
public String getName(){
return "vehicle name:" + name;
}
public void setName(String val){
name = val;
}
}
class Car extends Vehicle{
public Car(String val){
setName(val);
}
public String getName(String val){ // 오버로딩
return "Car name : " + val;
}
public String getName(byte val[]){ // 오버로딩
return "Car name : " + val;
}
}
public class good {
public Static void main(String[] args){
Vehicle obj = new Car("Spark");
System.out.print(obj.getName());
}
}
Vehicle name : Spark
Vehicle : 부모클래스 // Car : 자식클래스
Vehicle obj = new Car("Spark"); 객체 생성.
자식 클래스의 Car 생성자에 따라 setName() 메소드 호출 => 부모클래스의 name = "Spark"로 지정됨.
main에서 Vehicle obj = new Car("Spark"); 이렇게 객체를 생성했기 때문에
부모클래스에 있는 메소드만 사용할 수 있음 (자식인 Car 내부의 getName은 사용불가***)
16. UI 설계 원칙 중 직관성에 대해서 쓰시오.
누구나 쉽게 이해하고 사용할 수 있어야 한다.
사용자가 기능을 쉽게 파악할 수 있도록 해야 한다.
* UI (User Interface) 사용자 인터페이스
- CLI (Command Line Interface)
- GUI (Graphical User Interface)
- NUI (Natural User Interface)
- VUI (Voice User Interface)
- OUI (Organic User Interface)
* 사용자 인터페이스의 기본 원칙
- 직관성
- 유효성
- 학습성
- 유연성
* UI 설계 도구
- 와이어프레임 (Wireframe)
- 목업 (Mockup)
- 스토리보드 (Story Board)
- 프로토타입 (Prototype)
- 유스케이스 (Use Case)
17. 다음은 자바 코드이다. 출력 결과를 쓰시오.
public class good {
public static void main(String[] args){
int i=0;
int sum=0;
while (i<10){
i++;
if(i%2 ==1)
continue;
sum += i;
}
System.out.println(sum);
}
}
30
18. EAI 유형에는 메세지 버스(Message bus), 하이브리드(Hybrid), ( 1. ), ( 2. ) 4가지가 있다.
1. Point-to-Point
2. Hub & Spoke
* EAI (Enterprise Application Integration)
* EAI 구축유형
- Point-to-Point
- Hub & Spoke
- Message Bus (ESB 방식)
- Hybrid _ Hub & Spoke + Message Bus
19. C++에서 생성자란 무엇인지 쓰시오.
생성자 (Constructor)
객체 생성 시 자동으로 호출되는 메서드로 멤버를 초기화하는 목적으로 주로 사용된다.
20. 학생 테이블에 주소 속성을 추가하는 SQL문을 작성하시오.
( 1. ) TABLE 학생 ( 2. ) 주소 VARCHAR(20);
ALTER TABLE 학생 ADD 주소 VARCHAR(20);
* ALTER
- 속성 추가
ALTER TABLE 테이블이름 ADD 속성명 데이터타입;
- 속성 변경
ALTER TABLE 테이블이름 MODIFY 속성명 데이터타입;
- 속성 삭제
ALTER TABLE 테이블이름 DROP 속성명;
https://www.youtube.com/watch?v=eBu65lFAyjo
'정보처리기사 > 실기기출' 카테고리의 다른 글
[정처기실기] 2021년 3회 (0) | 2024.03.11 |
---|---|
[정처기실기] 2021년 2회 (0) | 2024.02.22 |
[정처기실기] 2021년 1회 (0) | 2024.02.09 |
[정처기실기] 2020년 2회 (0) | 2024.02.08 |
[정처기실기] 2020년 4회 (0) | 2024.02.03 |