정처기 실기) 2020년 3회 기출문제

정우시·2022년 6월 27일
1

3. 정처기 실기

목록 보기
4/8
post-thumbnail

01. 형상 통제에 대해 간략히 설명하시오.

  • 형상관리 절차

    • 형상 식별 → 형상 통제 → 형상 감사 → 형상 기록
  • 형상 통제는 변경 사항이 요청 들어오면 위원회(CCB)에서 검토하고 승인해서 현재 베이스에서 반영하는 것

👉 소프트웨어 형상 변경 요청을 검토하고 승인하여 현재의 베이스라인에 반영될 수 있도록 통제하는 것이다.


02. EAI 유형에는 메세지 버스(Message bus), 하이브리드(Hybrid), (1.), (2.) 4가지가 있다.

  • 포인트 투 포인트(Point-to-point): 중간에 미들웨어를 두지 않고 각 애플리케이션 간 직접 연결을 한다.
  • 허브 앤 스포크(Hub & Spoke): 단일 접점이 허브 시스템을 통해 데이터를 전송하는 중앙 집중적 방식이다.
  • Message Bus(ESB 방식): 애플리케이션 사이 미들웨어(버스)를 두어 처리를 한다.
  • Hybrid: 허브 앤 스포크와 메세지 버스 방식을 합친 것으로 유연한 통합 작업이 가능하다.

👉 1. 포인트 투 포인트(Point-to-point)
👉 2. 허브 앤 스포크(Hub & Spoke)


03. UI(User Interface) 설계 원칙 중 직관성에 대해 간략히 서술하시오.

※ UI의 설계 원칙

설계 원칙설명
직관성누구나 쉽게 이해하고 사용할 수 있어야 한다.
유효성사용자의 목적을 정확하게 달성하여야 한다.
학습성누구나 쉽게 배우고 익힐 수 있어야 한다.
유연성사용자의 요구사항을 최대한 수용하며, 오류를 최소화하여야 한다.

👉 사용자가 기능을 쉽게 파악할 수 있도록 해야 한다.


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

※ 코드 커버리지(Code Coverage)

  • 구문 커버리지
    • 코드 구조 내의 모든 구문에 대해 한 번 이상 수행하는 테스트 커버리지
  • 조건 커버리지
    • 결정 포인트(If문) 내의 모든 개별 조건식에 대해 수행하는 테스트 커버리지
  • 결정 커버리지
    • 결정 포인트 내의 모든 분기문에 대해 수행하는 테스트 커버리지를 말한다.
  • 조건/결정 커버리지
    • 결정포인트T/F, 개별조건식T/F를 가져야 한다.
  • 변경/조건 커버리지
    • 모든 결정 포인트 내의 개별 조건식은 적어도 한 번 T,F를 가져야 한다.
  • 다중 조건 커버리지
    • 결정 포인트 내 모든 개별 조건식의 가능한 조합을 100% 보장해야 한다.

👉 1 → 2 → 3 → 4 → 5 → 6 →1 또는 1 → 2 → 4 → 5 → 6 →7 또는 1 → 2 → 3 → 4 → 5 → 6 → 7 또는 1 → 2 → 4 → 5 → 6 → 1


05. 소프트웨어 테스트 기법 중 소프트웨어의 기능이 완전히 작동하는 것을 입증하는 테스트로, 동치분할/경곗값 분석을 이용하여 테스트 하는 기법을 쓰시오.

※블랙박스 테스트

  • 동등 분할 기법

    • 입력 자료에 초점을 맞춰 테스트 케이스를 만들어 검사하는 방법
  • 경곗값 분석

    • 입력 조건의 경곗값을 테스트 케이스로 선정하는 방법
  • 원인-효과 그래프 검사

    • 입력 데이터 간의 관계와 출력에 영향을 미치는 상황을 체계적으로 분석한 다음 효용성이 높은 테스트 케이스를 선정하여 검사하는 기법
  • 오류 예측 검사

    • 과거의 경험이나 테스터의 감각으로 테스트하는 기법
  • 비교 검사

    • 여러 버전의 프로그램에 동일한 테스트 자료를 제공하여 동일한 결과가 출력되는지 테스트하는 기법

👉 블랙박스 테스트


06. <학생> 테이블에 '주소'컬럼을 추가하는 SQL문을 완성하는 빈 칸 1~2에 알맞은 예약어를 쓰시오.

(1) TABLE 학생 (2) 주소 VARCHAR(20);

※ALTER

  • 속성 추가
    • ALTER TABLE [테이블이름] ADD [속성명][데이터타입];
  • 속성 변경
    • ALTER TABLE [테이블이름] MODIFY [속성명][데이터타입];
  • 속성 삭제
    • ALTER TABLE [테이블이름] DROP [속성명];

👉 1. ALTER, 2. ADD


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

조건
1. 대소문자를 구분하지 않는다.
2. WHERE 구분을 사용하지 않는다.
3. GROUP BY, HAVING 구문을 반드시 사용한다.
4. 세미콜론(;)은 생략 가능하다.
5. 별칭(AS)을 사용해야 한다.

[성적]

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

[결과]

과목이름최소점수최대점수
컴퓨터과학8595
👇
SELECT 과목이름, MIN(점수) AS 최소점수, MAX(점수) AS 최대점수 
FROM 성적 
GROUP BY 과목이름 
HAVING AVG(점수) >= 90;
SELECT 구조

---

SELECT
*(다 가져올거야!) 
또는 a,a,a(특정한 값을 가져올거야!)
FROM Table 이름 ← 여기까지 기본값
WHERE
AND / OR ← 조건 구문
GROUP BY(어떤 속성을 기준으로 묶는 거) 과목~
HAVING ← GROUP BY의 조건
ORDER BY 컬럼 ASC 또는 DESC ← 정렬

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

학생

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

09. 데이터베이스 스키마(Schema)에 대해 간략히 서술하시오.

※ 데이터베이스 스키마

  • 데이터베이스의 전체적인 구조와 제약조건을 말한다.
  • 논리적 독립성: 개념스키마 또는 내부스키마가 바뀌어도 외부스키마에는 영향을 안준다.
  • 물리적 독립성: 내부스키마가 바뀌어도 개념스키마 또는 외부스키마에는 영향을 안준다.
외부스키마 외부스키마 외부스키마
............↖↑↗..........논리적 독립성		
          개념스키마
............↕............물리적 독립성
         내부스키마

👉 데이터베이스의 전체적인 구조와 제약조건에 대한 명세를 기술하고 정의한 것이다.


10. 다음에서 설명하는 관계 대수 연산의 기호를 쓰시오.

릴레이션 A에서 릴레이션 B의 모든 조건을 만족하는 튜플을 제외한 후 프로젝션하는 연산자이다.

관계대수 연산자

  • 순수 관계 연산자
연산자기호
SELECTδ(시그마)
PROJECTπ(파이)
JOIN⋈(보타이)
DIVISION÷(나누기)
  • 일반 집합 연산자
연산자기호
합집합
교집합
차집합-
교차곱×

👉 ÷


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

  • 라우터는 최적의 경로를 파악하는 것을 말한다.
  • IGP (Interior Gateway Protocol)
    • AS(Autonomous System) 내부 라우터 간
    • RIP(거리 즉 홉스만 본다), OSPF(전체적인 상태를 본다)
  • EGP (Exterior Gateway Protocol)
    • AS(Autonomous System) 외부 라우터 상호간
    • BGP

👉 OSPF


12. 인터넷 프로토콜의 비신뢰적인 특성을 보완하기 위한 프로토콜로 IP 패킷 전송 중 에러 발생 시 에러 발생 원인을 알려주거나 네트워크 상태를 진단해주는 기능을 제공하는 프로토콜을 무엇이라고 하는지 영문 약어로 쓰시오.

OSI 7 참조 모델

OSI 7 계층 참조 모델TCP / IP 4 계층프로토콜장비
응용 계층응용 계층TCP와 연관된 프로토콜: telnet, FTP, HTTP, POP, SMTP / UDP와 연관된 프로토콜: DHCP, SNMP, DNS
표현 계층응용 계층TCP와 연관된 프로토콜: telnet, FTP, HTTP, POP, SMTP / UDP와 연관된 프로토콜: DHCP, SNMP, DNS
세션 계층응용 계층TCP와 연관된 프로토콜: telnet, FTP, HTTP, POP, SMTP / UDP와 연관된 프로토콜: DHCP, SNMP, DNS
전송 계층전송 계층TCP, UDP
네트워크 계층인터넷 계층IP, ICMP, ARP, RARP라우터
데이터링크 계층링크 계층브리지
물리 계층링크 계층허브, 리피터
  • 응용, 표현, 세션 계층에서 데이터가 만들어져서 전송 계층에서 데이터가 헤더를 붙여서 세그먼트를 만드는 것이고 세그먼트를 네트워크 계층으로 내려서 헤더를 붙이면 패킷이 되고 패킷을 데이터링크 계층으로 내려서 헤더를 붙여서 프레임을 만들어준다. 그리고 이것을 쫙 전송한다.

👉 ICMP


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

  • 카멜 표기법: 첫 단어 시작만 소문자, 각 단어의 첫글자는 대문자
  • 파스칼 표기법: 여러 단어가 이어지면 각 단어의 첫 글자는 대문자로 지정
  • 스네이크 표기법: 여러 단어가 이어지면 단어 사이에 언더 바를 넣는 표기법
    👉 헝가리안 표기법: 식별자 표기 시, 접두어에 자료형을 붙이는 표기법

14. 리팩토링(Refactoring)의 목적에 대해 간략히 설명하시오

👉 결과의 변경 없이 코드의 구조를 재조정한다.

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

  • 프로토콜
    • 서로 다른 시스템이나 기기들 간의 데이터 교환을 원활히 하기 위한 표준된 통신규약이다.
  • 프로토콜 기능
    • 데이터 처리 기능 / 제어 기능 / 관리 기능

👉 프로토콜


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

#include <stdio.h>
	void main(){
    	int i=0, c=0;
        while (i<10){
        i++;
        c*=1;				// c가 0이기 때문에 곱해도 0만 나옴
        }
        printf("%d",c);		// 최종적으로 0을 출력 
   }

👉 0


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

#include <studio.h>
int r1(){
	return 4;
}
int r10(){
	return (30+r1());	// 34
}
int r100(){
	return (200+r10());	//	234
}
int main(){
	printf("%d\n", r100()); // 234
}

👉 234


18. 다음은 자바 코드이다. 출력 결과를 쓰시오.

public class good {
	public static void main(String[] args){
    int i=0;
    int sum=0;
    while (i<10){	
    	i++;
        if(i%2 ==1)
        	continue;	// 1, 3, 5, 7, 9는 막혀서 돌아감
        sum += i;		// 2, 4, 6, 8, 10 다 더함
     }
     System.out.println(sum);
   }
}

👉 30


19. 다음은 자바 코드이다. 출력 결과를 쓰시오.

abstract class Vehicle{
   String name;
   abstract public String getName(String val);
    
   public String getName(){ 					// 부모도 스파크 들어감
      return "Vehicle name : " + name;
   }
}

class Car extends Vehicle{
   String name;
   public Car(String val){
      name = super.name = val;
   }
   public String getName(String val){ 			// 스파크 들어감 
      return "Car name : " + val;
   }
   public String getName(byte val[]){
      return "Car name : " + val;
   }
}

public class Test{
   public static void main(String[] args){
      Vehicle obj = new Car("Spark");
      System.out.printf(obj.getName());		// 인자 없는 메서드 출력
   }
} 

👉 Vehicle name : Spark


20. C++에서 생성자(Constructor)에 대해 간략히 설명하시오.

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

profile
프론트엔드 공부하고 있는 정우시입니다.

0개의 댓글