리팩토링의 목적에 대한 설명을 작성하시오.
가독성 향상, 유지보수 편리
- 소프트웨어를 보다 이해하기 쉽고, 수정하기 쉽도록 개선함
- 결과의 변경없이 코드의 구조를 재조정하는 것으로 가독성을 높이고, 유지보수를 쉽게하기 위한 목적
- 코드의 외부 행위는 바꾸지 않고 내부 구조를 개선시켜 소프트웨어를 보다 이해하기 쉽고, 수정하기 쉽도록 만드는 것
다음의 출력 결과를 쓰시오.
#include <stdio.h>
void main() {
int c=0;
int i=0;
while(i<10) {
i++;
c *= i;
}
printf("%d", c);
}
답: 0
c=c*i → c=(0*1) (c*2) (c*3) (c*4) (c*5) (c*6) (c*7) (c*8) (c*9) (c*10)
다음 학생 테이블에서 이름이 민수인 튜플을 삭제하도록 결과를 작성하시오.
- 테이블명: 학생
- 필드명: 이름
답: DELETE FROM 학생 WHERE 이름 = '민수'
DELETE FROM 테이블명
WHERE 조건절;
Internet Control Message Protocol(ICMP)
TCP/IP에서 신뢰성없는 IP를 대신하여 송신측으로 네트워크의 IP 상태 및 에러 메시지를 전달해주는 프로토콜을 (ICMP)이라 한다.
다음의 출력 결과를 쓰시오.
public class Test{
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.print(sum);
}
}
답: 30
sum 0(초기값) + 2 + 4 + 6 + 8 + 10 = 30 (짝수만 더하기)
심리학자 톰 마릴은 컴퓨터가 메시지를 전달하고 메시지가 제대로 도착했는지 확인하며 도착하지 않았을 경우 메시지를 재전송하는 일련의 방법을 '기술적 은어'를 뜻하는 ( )이라는 용어로 정의하였다. ( )안에 들어갈 용어는?
프로토콜
기술적 은어 = 프로토콜
다음 아래 제어 흐름 그래프가 분기 커버리지를 만족하기 위한 테스팅 순서를 쓰시오.
1234561, 124567 또는 1234567, 124561
분기 커버리지는 모든 분기에 대해서, 최소 한 번씩 True와 False 양쪽을 다 수행해야 합니다.
다음 조건을 만족하면서, 과목별 점수의 평균이 90이 상인 과목이름, 최소점수, 최대점수를 구하는 SQL문을 작성하시오
SELECT 과목이름, MIN(점수) AS 최소점수, MAX(점수) AS 최대점수 FROM 성적 GROUP BY 과목이름 HAVING AVG(점수) >= 90;
학생 테이블에서 이름이 민수인 튜플을 삭제하는 SQL문을 작성하시오
DELETE FROM 학생 WHERE 이름 = '민수';
릴레이션 A, B가 있을 때 릴레이션 B 조건에 맞는 것들만 릴레이션 A에서 튜플을 꺼내 프로젝션하는 관계대수의 기호는 무엇인가?
÷
순수관계연산자는 셀렉트(σ) / 프로젝트(π) / 조인(⋈) / 디비전(÷) 이 있습니다.
셀렉트 : 릴레이션에 존재하는 튜플들 중에서 특정 조건을 만족하는 튜플들의 부분집합을 구하여 새로운 릴레이션을 만듭니다.
프로젝트 : 주어진 릴레이션에서 속성 리스트에 제시된 속성 값만을 추출하여 새로운 릴레이션을 만듭니다.
(단 연산 결과에 중복이 발생하면 중복이 제거됩니다.)
조인 : 공통 속성을 중심으로 2개의 릴레이션을 하나로 합쳐서 새로운 릴레이션을 만듭니다.
다음 중 헝가리안 표기법(Hungarian Notation)에 대해서 서술하시오.
식별자 표기 시 접두어에 자료형을 붙이는 표기법
헝데표를 아세요~~? (헝가리안표기법은 데이터타입을붙이는 표기법이다)
[예시]
정수 변수: intAge, nCount, iIndex
문자열 변수: strName, szMessage, sLastName
실수 변수: dblPrice, fValue, dTotalAmount
불리언 변수: bEnabled, blVisible, fIsReady
테스트의 종류 중, 동치 분할 테스트, 경계값 분석 테스트 등의 종류가 있는 테스트 기법을 쓰시오.
블랙박스 테스트 (명세 기반 테스트)
✨#동경원오비
다음은 C언어 소스 코드이다. 출력 결과를 쓰시오.
#include <studio.h>
int r1(){
return 4;
}
int r10(){
return (30+r1());
}
int r100(){
return (200+r10());
}
int main(){
printf("%dn", r100());
return 0;
}
답: 234
r1 = 4
r10 = (30+4) = 34
r100 = (200+34) = 234
234
데이터베이스에서 스키마(Schema)에 대해 간략히 설명하시오.
데이터베이스의 전체적인 구조와 제약조건에 대한 명세로, 내부 스키마와 개념 스키마, 외부 스키마로 나뉜다.
✨구제명: 구조, 제약조건, 명세
다음은 자바(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
해석 : obj.getName()가 파라미터가 한 개인게 Car에 없어서 vheicle의 getName()의 실행
1.Vehicle obj = new Car("Spark");
Car 클래스 호출 (Vehicle을 확장하고 있는 클래스)
2.Car extend Vehicle
public Car(String val){ setName(val); }
Car 클래스 안에 Car 메소드에 val(=Spark)값이 들어감
setName은 부모 클래스인 Vehicle 클래스에 있는 메소드인데 extends Vehicle 때문에 Car 클래스에서 부모 클래스의 메소드를 그대로 쓸 수 있음
3. Vehicle
3-1. public void setName(String val){ name = val; }
2번에서 setName(val) 호출할 때 Vehicle의 setName 수행되면서 Vehicle 에서만 쓸 수 있는 private String 객체인 name 값에 val(=Spark)가 담겨짐
private String name (name = Spark)
여기까지가 Vehicle obj = new Car("Spark"); 실행했을 때의 결과임
4. System.out.println(obj.getName());
obj는 Car 클래스이다
Car 클래스 내에는 getName() 이라는, ()를 매개변수로 받는 메소드는 없고, 부모 클래스에 해당 메소드가 존재하므로, “부모 클래스(Vehicle)”에 있는 getName()이 실행된다.
4-1. public String getName(){ return "vehicle name:" + name; }
name : 위에 3-1에서 private String name에 Spark가 들어가 있다
==> 반환값은 “vehicle name:” + name(=Spark);가 된다
5. 결과
System.out.print(obj.getName());
vehicle name:Spark
UI 설계 원칙 중 직관성에 대해 설명하시오.
누구나 쉽게 이해하고, 쉽게 사용할 수 있어야 한다는 원칙
UI 설계 원칙(직유학유)
⦁ 직관성(Intuitiveness) : 누구나 쉽게 이해하고, 쉽게 사용할 수 있어야 한다.
⦁ 유효성(Efficiency) : 정확하고 완벽하게 사용자의 목표가 달성 될 수 있도록 제작한다.
⦁ 학습성(Learnability) : 모두가 쉽게 배우고 사용할 수 있어야 한다.
⦁ 유연성(Flexibility) : 사용자의 인터랙션을 최대한 포용하고, 실수를 방지할 수 있도록 제작
대표적인 내부 라우팅 프로토콜로 다익스트라 알고리즘을 이용한 대규모 네트워크에 적합한 링크 상태 라우팅 프로토콜로 불리는 것은?
OSPF(Open Shortest Path First)
RIP - 벨만 포드 OSPF - 다익스트라
EAI 유형에는 메세지 버스(Message bus) 유형, 하이브리드(Hybrid) 유형, ( A ) 유형, ( B ) 유형이 있다. 괄호안에 들어갈 말을 적으시오.
A. 포인트 투 포인트(Point-to-point)
B. 허브 앤 스포크(Hub & Spoke)
포인트 투 포인트
허브앤 스포크
메세지 버스
하이브리드
포허메하 : EAI 종류
C++에서 생성자란 무엇인지 쓰시오.
해당 클래스의 객체가 생성될 때 자동으로 호출되는 특수한 종류의 메서드
생성자는 객체가 생성될 때 자동으로 호출
소멸자는 객체의 수명이 끝나면 호출
학생 테이블에 주소 속성을 추가하는 SQL문을 작성하려고 한다. 빈 칸을 채우시오.
( A ) TABLE 학생 ( B ) 주소 VARCHAR(20);
A. ALTER
B. ADD
CREATE AlTER DROP
SELECT INSERT UPDATE DELETE
COMMIT ROLLBACK GRANT REVOKE