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 (인터넷 제어 메시지 프로토콜) |
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) |
조건/결정 커버리지 (Condition/Decision Coverage) |
완전 조건식 + 개별 조건식 모두 진정한 한 번, 거짓 한 번의 결과가되도록 실행 ex) 각 개별 조건식 (a> b) 및 (c) |
변경 조건/결정 커버리지 (Modified Condition/Decision Coverage) |
개별 조건식이 다른 개별 조건식의 영향을받지 않고 전체 조건식에 독립적으로 영향주는 ex) a> b와 c |
다조건 커버리지 (Multiple Coverage) |
결정 조건 내 모든 개별 조건식의 모든 가능한 조합100% 보장 ex) a> b, c |
기본 루트 커버리지 (Base Path Coverage) |
실행 가능 모든 경로 테스트 * 맥케이브의 복잡성 : 트렁크 – 노드 수 + 2 |
제어 흐름 테스트 (Control 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로 주어진 속성의 값에서만 구성된 두 개의 돌려주기 |
조인 | ▷◁ | R▷◁S | 공통 속성사용하여 관계 R과 S의 튜플 연결가 작성한 2플을 리턴합니다. |
디비전(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. 데이터베이스의 스키마에 대해 간략하게 설명합니다.
데이터베이스 구조, 제약 조건 등의 정보를 포함한 기본 구조
데이터베이스의 전체적인 구조와 제약의 사양으로서 내부 스키마와 개념 스키마, 외부 스키마로 나눌 수 있다.
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): 누구나 쉽게 이해하고 사용하기 쉬워야 합니다.
⦁ 유효성: 정확하고 완전하게 사용자의 목표를 달성할 수 있도록 제작한다.
⦁ 학습성(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) |
단일 접점 허브 시스템을 통해 데이터를 전송하는 중앙 집중식 허브 장애시 전체 장애 발생 |
메시지 버스 (메시지 버스) |
애플리케이션 간 미들웨어(버스)를 연계시키는 미들웨어 통합 방식 뛰어난 확장성과 대용량 데이터 처리 가능 |
하이브리드 (Hybrid) |
그룹 내는 허브 & 스포크, 그룹간은 메시지 버스 방식 |
19. C ++에서 생성자는 무엇입니까?
해당 클래스의 객체가 생성될 때 자동으로 호출되는 특수한 유형의 메서드
20. 학생 테이블에 주소 속성을 추가하는 SQL 문을 작성하려고합니다.
빈 공간을 채우십시오.
( A ) TABLE 학생 ( B ) 주소 VARCHAR(20);
A. ALTER
B. ADD
https://chobopark./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