본문 바로가기
  • 문과생의 백엔드 개발자 성장기
|Developer_Study/정보처리기사

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

by 케리's 2023. 3. 21.

1. 리팩토링의 목적에 대한 설명을 작성하시오.

더보기

- 소프트웨어를 보다 이해하기 쉽고, 수정하기 쉽도록 개선함
- 결과의 변경없이 코드의 구조를 재조정하는 것으로 가독성을 높이고, 유지보수를 쉽게하기 위한 목적
- 코드의 외부 행위는 바꾸지 않고 내부 구조를 개선시켜 소프트웨어를 보다 이해하기 쉽고, 수정하기 쉽도록 만드는 것

 

 

 

 

2. 다음은 C언어 소스코드이다. 출력 결과를 쓰시오.

#include <stdio.h>
void main() {
    int c=0;
    int i=0;
        while(i<10) {
    	i++;
        c *= i;
    }
    printf("%d", c);
}
더보기

0


C = 0이기 때문에 어떤 수를 곱해도 0이된다.

 

 

 

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

 

더보기

OSPF


라우팅 프로토콜

구분 종류 설명
내부
라우팅 프로토콜
(IGP; Interior Gateway Protocol)
RIP
(Routing Infomaiton Protocol)
AS(자율시스템) 내에서 사용하는 거리벡터 알고리즘에 기초하여 개발된 내부라우팅 프로토콜
최초의 라우팅 프로토콜, 벨만-포드알고리즘, 15홉제한 
인접한 라우터와 경로 정보를 주기적으로 교환
OSPF
(Open Shortest Path First)
RIP의 단점 개선, 최단 경로를 찾는 프로토콜,
링크상태 알고리즘 (다익스트라 알고리즘), 홉 제한 없음
최단 경로 우선 알고리즘을 사용하여 최적의 경로 결정
IGRP
(Interior Gateway Routing Protocol)
거리벡터방식의 내부라우팅 프로토콜, RIP보다  확장성 좋고 여러개 경로를 지원 (시스코사 장비에서만 사용)
EIGRP
(Enhanced IGRP)
IGRP 기능 향상시킨 라우팅 프로토콜, 거리벡터방식 + 링크상태방식을 결합한 하이브리드 프로토콜 (시스코사 사유프로토콜 - 일부 기능은 개방형)
외부
라우팅 프로토콜
(EGP; Exterior Gateway Protocol)
BGP
(Border Gate Way Protocol)
AS 상호간에 경로를 교환하기 위한 라우팅 프로토콜, 거리벡터알고리즘
BGP는 TCP 포트 179번을 통해 유니캐스트를 이용하여 라우팅 정보를 전송

 

 

 

 

 

4. 형상 통제를 설명하시오.

더보기

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


형상관리 절차 - 식통감기

절차 설명
형상 식별 형상관리 대상을 정의 및 식별하는 활동
추적성 부여를 위해 ID, 관리번호 부여
변경 관련 이슈 발생시 ID와 관리번호 이용 추적
형상 통제 형상 항목의 버전 관리를 위한 형상통제 위원회 운영
변경 요구관리, 변경 제어 형상 관리 등 통제지원
베이스라인에 대한 관리 및 형상 통제 수행 가능
형상 감사 소프트웨어 베이스라인의 무결성 평가
베이스라인 변경시 요구사항과 일치 여부 검토
형상 기록 소프트웨어 형상 및 변경 관리에 대한 각종 수행결과를 기록
형상결과보고서 작성

 

 

 

 

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

더보기

프로토콜


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

  • 네트워크 프로토콜 (Network Protocol) : 컴퓨터나 원거리 통신 장비 사이에서 메시지를 주고받는 양식과 규칙 체계

 

 

 

 

6. TCP/IP에서 신뢰성없는 IP를 대신하여 송신측으로 네트워크의 IP 상태 및 에러 메시지를 전달해주는 프로토콜을 ( )이라 한다.

더보기

ICMP


네트워크 계층 프로토콜

구분 설명
IP
(Internet Protocol)
송 수신간의 패킷단위로 데이터를 교환하는 네트워크에서 정보를 주고받는데 사용
ARP
(Adress Resolution Protocol)
IP 네트워크상에서 IP주소를 MAC 주소로(물리주소)로 변환하는 프로토콜
RARP
(Reverse Address Resolution Protocol)
서버로부터 IP 주소를 요청하기 위해 사용하는 프로토콜
즉, MAC주소를 IP주소로 변환하는 프로토콜
ICMP
(Internet Control Message Protocol)
IP 패킷을 처리할때 발생되는 문제를 알려주는 프로토콜
메세지 형식은 8바이트의 헤더와 가변 길이의 데이터 영역으로 분리되어 있다.
IGMP
(Internet Group Management Protocol)
호스트 컴퓨터와 인접 라우터가 멀티캐스트 그룹멤버십을 구성하는데 사용하는 통신 프로토콜
여러 장치가 하나의 IP주소를 공유하여 동일한 데이터를 수신할 수 있도록 하는 프로토콜 
라우팅 프로토콜
(Routing Protocol)
데이터 전송을 위해 최적의 경로를 설정해주는 라우터간의 상호 통신 프로토콜 

 

 

 

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

 

 

 

더보기

1234567, 124561 또는 1234561, 124567


결정 커버리지를 의미한다.

  • 화이트박스테스트 (구조 기반 테스트) - 구결조 조변다 기제데

원시 코드의 논리적인 모든 경로를 테스트하여 테스트 케이스를 설계하는 방법

구문 (문장) 커버리지
(Statement Coverage)
프로그램 내의 모든 명령문을 적어도 한 번 수행
ex) a=1; b=2; c=a+b; d=c*2; 이렇게 구문 4개 모두 실행
결정 (분기) 커버리지
(Decision/Branch Coverage)
결정 포인트 내의 전체 조건식이 적어도 한 번은 참과 거짓의 결과를 수행
ex) 모든 결정문 (if-else) 가 참과 거짓을 각각 한번씩 수행 
조건 커버리지
(Condition Coverage)
결정 포인트 내의 각 개별조건식이 적어도 한번은 참과 거짓의 결과가 되도록 수행
ex) 각 개별조건식 (a>b)와 (c<d) 가 각각 참일때와 거짓일때 한번씩 실행
조건/결정 커버리지
(Condition/Decision Coverage)
전체 조건식 + 개별 조건식 모두 참 한번, 거짓 한번 결과가 되도록 수행
ex) 각 개별조건식 (a>b)와 (c<d)가 각각 참, 거짓일때 수행하고 if(a>b && c<d)도 한번씩 실행
변경 조건/결정 커버리지 
(Modified Condition/Decision Coverage)
개별 조건식이 다른 개별 조건식에 영향을 받지 않고 전체 조건식에 독립적으로 영향을 주도록 함
ex) a>b와 c<d가 각각 전체 조건식의 결과에 영향을 줄 수 있는 값들로 테스트
다중 조건 커버리지
(Multiple Coverage)
결정 조건 내 모든 개별 조건식의 모든 가능한 조합을 100%보장
ex) a>b, c<d 각각 참또는 거짓인경우 수가 4가지 있으므로 4가지 경우 모두 테스트
기본 경로 커버리지
(Base Path Coverage)
수행 가능한 모든 경로를 테스트
* 맥케이브 복잡도 : 간선수 - 노드수 +2
제어 흐름 테스트
(Control flow)
프로그램 제어 구조를 그래프 형태로 나타내어 내부 로직 테스트
데이터 흐름 테스트
(Data flow)
제어 흐름 테스트에 데이터 사용 현황 추가

 

 

 

 

 

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;

 

 

 

 

 

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

[학생]

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

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

 

 

 

 

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

 

더보기

÷


(1) 일반 집합 연산자 : 합교차카

수학의 집합 개념을 릴레이션에 적용한 연산자

연산자 기호 표현 설명
합집합 (Union) R ∪ S 릴레이션 R과 S의 합집합을 반환
교집합 (Intersection) R ∩ S 레이션 R과 S의 교집합을 반환
차집합 (Difference) R ㅡ S 릴레이션 R과 S의 차집합을 반환
카티션프로덕트
(CARTESIAN Product)
× R × S R과 S에 속한 모든 튜플을 연결해 만들어진 새로운 튜플로 릴레이션 구성

 

(2) 순수 관계 연산자 : 셀프조디

관계 데이터베이스에 적용할 수 있도록 특별히 개발한 관계 연산자

연산자 기호 표현 설명
셀렉트 (Select) σ R σ S 릴레이션 R에서 조건을 만족하는 투플들을 반환
프로젝트 (Project) π R π S 릴레이션 R에서 주어진 속성들의 값으로만 구성된 투플들을 반환
조인 (Join) ▷◁ R ▷◁ S 공통 속성을 이용해 릴레이션 R과 S들의 튜플들을 연결하여 만든 투플을 반환
디비전 (Divison) ÷ R ÷ S 릴레이션 S의 모든 투플 관련이 있는 릴레이션 R의 튜플들을 반환

 

 

 

 

 

11. 다음 중 헝가리안 표기법(Hungarian Notation)에 대해서 서술하시오.

더보기

식별자 표기 시 접두어에 자료형을 붙이는 표기법



식별자 표기법 :

카멜 표기법 - 식별자 표기 시에 여러 단어가 이어지면 첫 단어 시작만 소문자로 표시하고, 각 단어의 첫 글자는 대문자로 지정하는 표기법 (ex : goodMan)

파스칼 표기법 - 식별자 표기 시에 여러 단어가 이어지면 각 단어의 첫 글자는 대문자로 지정하는 표기법

(ex : GoodMan)

스네이크 표기법 - 식별자 표기 시에 여러 단어가 이어지면 단어 사이에 언더 바를 넣는 표기법 (ex : good_man)

헝가리안 표기법 - 식별자 표기 시, 접두어에 자료형을 붙이는 표기법

(ex : szGoodMan (sz는 String Zero로 약자로 문자열이 없다는 표기입니다.)

 

 

 

 

12. 테스트의 종류 중, 동치 분할 테스트, 경계값 분석 테스트 등의 종류가 있는 테스트 기법을 쓰시오.

더보기

블랙박스 테스트


  • 블랙박스테스트 (명세 기반 검사) - 동결 결상 유분 폐원비

사용자의 요구사항 명세를 보면서 수행하는 테스트

동등 분할 테스트
(Equivalence Partitioning)
입력 데이터 영역의 유사한 도메인별로 유효값/무효값을 그룹핑하여 대표값 테스트를 케이스를 도출하여 테스트 하는 기법
경곗값 분석 테스트
(Boundary Value Analysis)
최소값 바로 위, 최대 치 바로 아래 등 입력값의 극한 한계를 테스트하는 기법
결정 테이블 테스트
(Decision Table)
요구사항의 논리와 발생 조건을 테이블 형태로 나열하여 조건과 행위를 모두 조합하여 테스트
상태 전이 테스트
(State Transition)
이벤트에 의해 어느 한 상태에서 다른 상태로 전이되는 경우의 수를 수행하는 테스트
유스케이스 테스트
(Use Case)
프로세스 흐름을 기반으로 테스트케이스를 명세화하여 수행하는 테스트
분류 트리 테스트
(Classification Tree)
SW의 일부 또는 전체를 트리구조로 분석 및 표현하여 테스트케이스 설계해 테스트
페어와이즈 테스트
(Pairwise)
테스트 데이터 값들간에 최소한 한 번씩 조합하는 방식
원인-결과 그래프 테스트
(Cause-Effect Graphing)
그래프를 활용해 입력 데이터 간의 관계 및 출력에 미치는 영향을 분석
비교테스트
(Comparision)
여러 프로그램에 같은 입력 값을 넣어 비교해 테스트

 

 

 

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. 데이터베이스에서 스키마(Schema)에 대해 간략히 설명하시오.

더보기

데이터베이스의 구조, 제약조건 등의 정보를 담고 있는 기본적인 구조
데이터베이스의 전체적인 구조와 제약조건에 대한 명세로, 내부 스키마와 개념 스키마, 외부 스키마로 나뉜다.

 

 

 

15. 다음은 자바(Java) 코드이다. 출력 결과를 쓰시오.

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


Car Class에 super가 없기 때문에 무조건 부모의 default 생성자를 탄다. 

 

 

 

 

16. UI 설계 원칙 중 직관성에 대해 설명하시오.

더보기

누구나 쉽게 이해하고, 쉽게 사용할 수 있어야 한다는 원칙


UI 설계 원칙(직유학유)

⦁  직관성(Intuitiveness) : 누구나 쉽게 이해하고, 쉽게 사용할 수 있어야 한다.
⦁  유효성(Efficiency) : 정확하고 완벽하게 사용자의 목표가 달성 될 수 있도록 제작한다.
⦁  학습성(Learnability) : 모두가 쉽게 배우고 사용할 수 있어야 한다.
⦁  유연성(Flexibility) : 사용자의 인터랙션을 최대한 포용하고, 실수를 방지할 수 있도록 제작

 

 

 

 

17. 다음은 자바(Java) 코드이다. 출력 결과를 쓰시오.

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


2+4+6+8+10=30

 

 

 

 

18. EAI 유형에는 메세지 버스(Message bus) 유형, 하이브리드(Hybrid) 유형, ( A ) 유형, ( B ) 유형이 있다. 괄호안에 들어갈 말을 적으시오.

 

더보기

A. 포인트 투 포인트(Point-to-point)
B. 허브 앤 스포크(Hub & Spoke)


EAI 구축유형 - 포허메하

구성요소 설명
포인트 투 포인트
(Point to Point)
가장 기초적인 애플리케이션 통합방법 1:1단순 통합
솔루션을 구매하지않고 개발자간의 커뮤티케이션을 통해 통합 가능
허브 앤 스포크
(Hub & Spork)
단일한 접점의 허브시스템을 통하여 데이터를 전송하는 중앙 집중 방식
허브 장애시 전체 장애 발생
메시지 버스
(Message Bus)
애플리케이션 사이 미들웨어(버스)를 두어 연계하는 미들웨어 통합방식
뛰어난 확장성과 대용량 데이터 처리가능
하이브리드
(Hybrid)
그룹내는 허브앤스포크, 그룹 간에는 메시지 버스 방식

 

 

 

19. C++에서 생성자란 무엇인지 쓰시오.

더보기

해당 클래스의 객체가 생성될 때 자동으로 호출되는 특수한 종류의 메서드

 

 

 

 

20. 학생 테이블에 주소 속성을 추가하는 SQL문을 작성하려고 한다. 빈 칸을 채우시오.

(    A    ) TABLE 학생   (   B   ) 주소 VARCHAR(20);
더보기

A. ALTER
B. ADD

 

 

 

 

https://chobopark.tistory.com/194
https://q.fran.kr/%EC%8B%9C%ED%97%98/%EC%A0%95%EB%B3%B4%EC%B2%98%EB%A6%AC%EA%B8%B0%EC%82%AC%20%EC%8B%A4%EA%B8%B0/2020%EB%85%84%203%ED%9A%8C

댓글