10. 하이퍼바이저를 사용하거나 게스트 운영체제도 설치하지 않고 서버 운영에 필요한 프로그램과 라이브러리만 이미지로 만들어 프로세스처럼 동작시키는 경량화된 가상화 방식이며 실행되는 이미지는 컨테이너라고 부르며, 가상화 레이어가 존재하지 않고 운영체제도 존재하지 않기 때문에 파일 시스템,네트워크 속도가 상당히 빠르다
class Static{
public int a=20;
static int b=0;
}
public class Main {
public static void main(String[] args) {
int a=10;
Static.b=a;
Static st=new Static();
System.out.println(Static.b++);
System.out.println(st.b);
System.out.println(a);
System.out.println(st.a);
}
}
#include <stdio.h>
int main(void) {
int input = 101110;
int di = 1;
int sum = 0;
while (input > 0) {
sum = sum + (input (가)(나) * di);
di = di * 2;
input = input / 10;
}
printf("%d", sum);
return 0;
}
대리자, 대변인의 의미를 갖고 있으며 어떤 객체를 사용하고자 할때, 객체를 직접적으로 참조하는 것이 아닌 해당 객체를 대항하는 객체를 통해 대상 객체에 접근하는 방식을 사용하면 해당 객체가 메모리에 존재하지 않아도 기본적인 정보를 참조하거나 설정할 수 있고, 실제 객체의 기능이 필요한 시점까지 객체의 생성을 미룰 수 있다.
abstract class Vehicle{
String name;
abstract public String getName(String val);
public String getName(){
return "Vehicle name:" + name;
}
}
class Car extends Vehicle{
private 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 Main {
public static void main(String[] args){
Vehicle obj = new Car("Spark");
System.out.print(obj.getName());
}
}
19. 설명에 해당하는 것을 기호로 찾아쓰시오. (22년 2회차 산업기사 문제와 거의 동일)
스키마는 데이터베이스의 구조와 제약 조건에 관한 전반적인 명세를 기술한 것이다. ( 가 ) : 사용자나 응용 프로그래머가 각 개인의 입장에서 필요로 하는 데이터베이스의 논리적 구조를 정의한 것이다. ( 나 ) : 데이터베이스의 전체적인 논리적 구조이며, 모든 응용 프로그램이나 사용자들이 필요로 하는 데이터를 종합한 조직 전체의 데이터베이스로, 하나만 존재한다. ( 다 ) : 물리적 저장장치의 입장에서 본 데이터베이스 구조로, 실제로 저장될 레코드의 형식, 저장 데이터 항목의 표현 방법, 내부 레코드의 물리적 순서 등을 나타낸다.
15. 14번에서 하나의 모듈을 테스트할 때 상위나 하위 모듈이 개발이 안된 경우도 있다. 이 때 상위나 하위 모듈이 개발될 때까지 기다릴 수 없으므로 가상의 상위나 하위 모듈을 만들어 사용해야 하는데 가상 상위 모듈을 (가)라 하고 가상 하위 모듈을 (나)라고 한다. (가), (나)에 해당하는 것을 쓰시오.
19. 하향식 통합 테스트에서는 아래 그림과 같을 때 맨 상위 모듈 A를 모듈 B와 통합하여 테스트하고 그 다음으로 모듈 C를 먼저 할지 E를 먼저할 지 결정해야 하는데 C를 먼저 선택하는 방식을 (가)이라 하고 모듈 E를 먼저 선택하는 방식을 (나)라 한다. (가), (나)에 들어갈 것을 쓰시오.
21년 3회차 이후에 나온적이 없는 유형이긴 하나 오랜만에 다시 출제될 수 도 있으므로 정리합니다
◈모듈 설계 요구 분석을 마치면 구조적 방법에서는 DFD, 정보공학 방법에서는 ERD, 객체지향 방법에서는 유스케이스 다이어그램이 산출되고 이런 다이어그램이 중심이 된 요구 명세서가 작성된다.
그러면 설계 단계에서는 맨 먼저 전체 구조를 파악하여 표현하는 상위 설계 또는 아키텍처 설계를 한 후 하위 설계로 모듈 설계를 한다.
▶모듈화 어떤 큰 문제를 그대로 놓고 해결하는 것은 매우 어려운 일이므로 일반적으로 큰 문제를 작은 단위로 쪼개어 그것을 하나씩 해결한다.
소프트웨어 개발에서도 소프트웨어의 성능을 향상시키거나 시스템의 수정 및 재사용, 유지 관리 등을 위해 시스템의 기능들을 모듈 단위로 분해하는데 이를 모듈화라고 한다.
▶모듈의 독립성 모듈이 다른 모듈과의 과도한 상호작용을 배제하고 하나의 기능만을 수행함으로써 이루어져야한다. 모듈 간에 연관성이 높으면 관련된 모듈을 사용하기 위해 많은 지식이 필요하고 종속적인 관계로 복잡하게 연결되어 유지보수가 매우 어려워지므로 모듈을 분할하여 설계할 때 모듈 간의 관련성이 적게 설계하여 모듈 변경 시 다른 모듈에 영향을 최소화하고 유지보수를 쉽게 할 수 있도록 해야한다.
이런 독립성을 측정하는 개념이 바로 응집도와 결합도인데 독립성을 높이려면 모듈의 결합도는 약하게, 응집도는 강하게, 모듈의 크기는 작게 만들어야 한다.
합도는 용돈을 주고받는 부모-자식 관계를 생각하면 쉽게 이해할 수 있다. 자식 입장에서는 용돈을 어디에 쓸 건지 꼬치꼬치 물어보는 부모(=결합도가 강함)보다 그냥 군말 없이 주는 부모(=결합도가 약함)가 좋을 것이다. 따라서 모듈에서 좋은 관계는 깊게 관여하지 않고 데이터(용돈)만 주고받는 관계이다
예상문제뿐 아니라 확실히 알고가야하는 개념을 확인하는 용으로 만든 문제도 같이 수록했습니다.
1. 다음은 DBMS의 등장배경으로 파일 시스템이 갖는 (가), (나) 문제점을 해결하기 위해 제안되었다. (가), (나)는 무엇인지 영어로 쓰시오.
(가) : 프로그램의 구조가 데이터의 구조에 영향을 받는 것을 의미하는데 데이터의 구조가 프로그램의 데이터 저장방식을 결정하고 반대로 프로그램의 데이터 저장방식에 따라 데이터의 저장방식이 바뀌는 것을 말한다. 데이터의 구조가 변경되면 프로그램까지 같이 바뀌는 비용이 들기 때문에 프로그램 가발과 유지보수가 어려워진다
(나) : 파일 시스템은 프로그램마다 (가) 등으로 인해 공유가 안되는 경우가 많아서 프로그램마다 같은 정보를 중복해서 저장하는 경우가 많다. 이는 저장공간의 낭비이기도 하지만 데이터를 관리하는 측면에서 같은 정보를 여러 곳에서 보관하면 수정 시에 모든 데이터를 수정해야 하는 문제가 발생한다.
개체 B가 독자적으로 존재할 수 없고 다른 개체 A의 존재 여부에 의존적이라면, 개체 B가 개체 A에 종속되어 있다고 한다. 이는 개체 A가 존재해야 B가 존재할 수 있고 A가 삭제되면 개체 B도 함께 삭제되어야 함을 의미한다. 이러한 종속을 특별히 (가)라 한다. 이때 다른 개체의 존재 여부에 의존적인 개체 B를 (나)라 하고 다른 개체의 존재 여부를 결정하는 개체 A를 (다)라 한다 이때 (나)를 구별하는 역할을 하는 속성을 (라)라고 한다.
11. 피터 첸(Peter Chen)이 1976년에 제안한 것으로 현실 세계를 개체(entity)와 개체 간의 관계(relationship)를 이용해 개념적 구조로 표현하는 방법을 E-R모델이라고 하며 E-R모델을 이용해 개념적 모델링하여 그림으로 표현한 것을 E-R 다이어그램이라고 한다. 다음은 E-R다이어그램에서 사용되는 기호이다. 해당하는 기호가 무엇을 의미하는지 쓰시오.
21. 데이터베이스를 잘못 설계하면 불필요한 데이터 중복이 발생하여 데이터의 삽입·수정·삭제 연산을 수행할 때 부작용들이 발생할 수 있다. 이러한 부작용을 이상(anomaly) 현상이라 한다. 이상 현상을 제거하면서 데이터 베이스를 올바르게 설계해 나가는 과정이 정규화이다. 이상 현상의 3가지 종류를 모두 말하고 그 이상현상이 뭔지 설명하시오.
삽입이상(Insertion Anomaly)-새 데이터를 삽입하기 위해 불필요한 데이터도 함께 삽입해야 하는 문제
갱신 이상(Update Anomaly)-중복 튜플 중 일부만 변경하여 데이터가 불일치하게 되는 모순의 문제
삭제 이상(Deletion Anomaly)-튜플을 삭제하면 꼭 필요한 데이터까지 함께 삭제되는 데이터 손실의 문제
22. 하나의 릴레이션을 구성하는 속성들의 부분집합을 X와 Y라 할 때, 어느 시점에서든 릴레이션 내의 모든 튜플 을 대상으로 한 X 값에 대한 Y 값이 항상 하나면 "X가 Y를 함수적으로 결정한다" 또는 "Y가 X에 함수적으로 종속되어 있다"고 한다. 함수 종속 관계는 X → Y로 표현하고 X를 (가), Y를 (나)라고 한다.
30. 데이터베이스를 모순이 없는 일관된 상태로 유지하기 위해 데이터베이스 관리 시스템은 회복 기능을 제공한다. 데이터베이스가 조직의 중요한 데이터를 저장하고 있는 만큼 데이터베이스 관리 시스템의 회복 기능은 매우 중요한 기능이다. 데이터베이스 회복의 핵심 원리는 데이터 중복이다. 데이터를 별도의 장소에 미리 복사해두고, 장애로 문제가 발생했을 때 복사본을 이용해 원래의 상태로 복원하는 것이다.
다음은 회복을 위해 복사본을 만드는 방법에 대한 설명이다. 해당하는 것을 쓰시오.
ㄱ : 데이터베이스 전체를 다른 저장 장치에 주기적으로 복사하는 방법
ㄴ : 데이터베이스에서 변경 연산인 실행될 때마다 데이터를 변경하기 이전 값과 변경한 이후의 값을 별도의 파일에 기록하는 방법
ㄱ : 업데이트 이전의 데이터베이스를 일정 크기의 페이지 단위로 구성하여 각 페 이지마다 복사본인 그림자 페이지를 별도 보관해 놓고, 실제 페이지를 대상 으로 업데이트 작업을 수행하다가 장애가 발생하여 트랜잭션 작업을 Rollback 시킬 때는 갱신 이후의 실제 페이지 부분을 그림자 페이지로 대체 하여 회복시키는 기법
ㄴ : 트랜랜잭션 실행 중 특정 단계에서 재실행할 수 있도록 업데이트 내용이나 시스템에 대한 상황 등에 관한 정보와 함께 검사점을 로그에 보관해 두고, 장애 발생시 트랜잭션 전체를 철회하지 않고 검사점부터 회복 작업을 수행하여 회 복 시간을 절약하도록 하는 기법
34. DBMS는 여러 사용자가 DB를 동시에 공유할 수 있도록 여러 개의 트랜잭션이 동시에 수행되는 병행 수행(Concurrency)을 지원한다. 그런데 병행 수행되는 트랜잭션들이 서로 다른 데이터를 사용하여 연산을 실행하는 경우에는 괜찮지만 동시에 같은 데이터에 접근하여 변경 연산을 실행하려고 하면 문제가 발생할 수 있다. 그러므로 병행 수행을 하더라도 각 트랜잭션이 다른 트랜잭션의 방해를 받지 않고 정확한 수행 결과를 얻을 수 있도록 제어해야 하는데 이것을 (가)라고 한다. (가)를 쓰시오.
37. 시스템 오류로 인한 데이터베이스 서비스 중단이나 물리적 손상 발생 시 이를 복구하기 위해 동일한 데이터베 이스를 복제하여 관리하는 것을 데이터베이스 이중화(Database Replication)이라고 한다. 다음 해당하는 설명이 데이터베이스 이중화의 어떤 기법인지 쓰시오.
ㄱ : 트랜잭션 수행 중 데이터 변경이 발생하면 이중화된 모든 데이터베이스에 즉시 전달하여 변경 내용이 즉시 적용되도록 하는 기법
ㄴ : 트랜잭션의 수행이 종료되면 변경 사실을 새로운 트랜잭션에 작성하여 각 데이터베이스에 전달되는 기법
5. 네트워크 이용자의 인증을 위해 전송 제어 프로토콜(TCP: Transmission Control Protocol)과 전송 계층 보안(TLS: Transport Layer Security)을 통해 레이디어스(RADIUS: Remote Authentication Dial In User Service) 데이터를 전송하기 위한 프로토콜
18. 초소형 정밀기계 기술이다. 21세기형 유망 산업으로 주목되며 자동차 에어백 가속도 센서, 실용화 의료기기, 정보기기 분야 개발을 활발하게 할 것이다. MEMS는 마이크로 시스템, 마이크로 머신, 마이크로 메카트로닉스 등의 동의어로 혼용되고 있으나, 번역하면 초소형 시스템이나 초소형 기계를 의미
30. 1990년대 David Clock이 처음 제안한 것으로 비정상적인 접근의 탐지를 위해 의도적으로 설치해 둔 시스템이고 침입자를 속여 실제 공격당하는 것처럼 보여줌으로써 크래커를 추적 및 공격기법의 정보를 수집하는 역할을 하며 쉽게 공격자에게 노출되어야 하며 쉽게 공격이 가능이 가능한 것처럼 취약해 보이는 시스템
고가용성 솔루션(HACMP:High Availability Cluster Multi Processing)
33. 네트워크를 제어부, 데이터 전달부로 분리하여 네트워크 관리자가 보다 효율적으로 네트워크를 제어, 관리할 수 있는 기술로 기존의 라우터, 스위치 등과 같이 하드웨어에 의존하는 네트워크 체계에서 안정성, 속도, 보안 등을 소프트웨어로 제어, 관리하기 위해 개발된 IT 기술
2. 특징이 다른 여러 호스트를 서로 연결해 통신하려면 연결 방식을 표준화해야 하는데 국제 표준화 단체인 ISO(International Standard Organization)에서는 OSI(Open System Interconnection) 7계층 모델을 제안하였다. 쉽게 말해 네트워크를 만들 때 이런 식으로 만들라고 하는 참고자료가 바로 OSI 7계층이다. 다음은 OSI7계층에 대한 설명이다. 해당하는 계층을 영어로 쓰시오.
ㄱ : 사용자가 OSI 환경에 접근할 수 있도록 서비스를 제공
ㄴ : 응용 계층으로부터 받은 데이터를 세션 계층에 보내기 전에 통신에 적당한 형태로 변환하고 세션 계층에서 받은 데이터는 응용 계층에 맞게 변환하는 기능(코드 변환, 데이터 암호화, 데이터 압축, 구문 검색)
ㄷ : 응용 계층으로부터 받은 데이터를 세션 계층에 보내기 전에 통신에 적당한 형태로 변환하고 세션 계층에서 받은 데이터는 응용 계층에 맞게 변환하는 기능(코드 변환, 데 이터 암호화, 데이터 압축, 구문 검색)
ㄹ : 논리적 안정과 균일한 데이터 전송 서비스를 제공함으로써 종단시스템 간에 투명한 데이터를 전송가능하게 함
ㅁ : 개방 시스템들 간의 네트워크 연결을 관리하는 기능과 데이터의 교환 및 중계 기능
ㅂ : 두 개의 인접한 개방 시스템들(직접 연결된)간에 신뢰성 있고 효율적인 정보 전송을 할 수 있도록 시스템 간 연결 설정 유지 및 종료를 담당(프레이밍, 흐름제어, 오류제어, 접근제어, 동기화)
ㅅ : 두 개의 인접한 개방 시스템들(직접 연결된)간에 신뢰성 있고 효율적인 정보 전송을 할 수 있도록 시스템 간 연결 설정 유지 및 종료를 담당(프레이밍, 흐름제어, 오류제어, 접근제어, 동기화)
3. OSI7계층에서 전송 데이터는 송신 호스트의 응용 계층에서 시작해 하위 계층으로 순차적으로 전달되어 최종적으로 물리 계층에서 수신 호스트에 전달되는데 데이터가 하위 계층으로 이동할 때는 각 계층의 프로토콜에서 정의한 헤더 정보가 추가되며(물리 계층 제외) 그렇게 각 계층에서 데이터를 전송할 때 필요한 정보(헤더)를 붙여 다음 계층에 보내는 과정을 (가)라고 하며 수신 호스트에서는 데이터를 상위 계층으로 순차적으로 이동시켜 응용 계층에 도착하게 되는데 상위 계층으로 이동하며 순차적으로 추가됐던 헤더 정보를 제거하고 해석하는데 이 과정을 (나)라고 한다.