포스트

모의고사 17회

Q. 사용자의 직접적인 관리 없이 컴퓨터 시스템 리소스를 필요 시 바로 제공하는 기술로, 정보를 자신의 컴퓨터가 아닌 연결된 다른 컴퓨터로 처리하는 기술을 무엇이라 하는가?

클라우드 컴퓨팅(Cloud Computing)

  • 클라우드 컴퓨팅 유형은 다음과 같다.
    • 인프라형 서비스(IaaS; Infrastructure as a Service)
      • 서버, 스토리지 같은 시스템 자원을 클라우드로 제공하는 서비스
      • 컴퓨팅 자원에 운영체제나 애플리케이션 등의 소프트웨어 탑재 및 실행
      • 하위의 클라우드 인프라를 제어하거나 관리하지 않지만 스토리지, 애플리케이션에 대해서는 제어권을 가짐
      • 서버, 스토리지, 네트워크 같은 물리 환경을 서비스로 제공 받음
      • IaaS의 제공업체는 서버, 하드, 드라이브, 네트워킹, 가상화 및 스토리지를 관리하며 고객은 OS, 미들웨어, 애플리케이션 및 데이터와 같은 자원들을 관리함
      • IaaS는 기존의 데이터 센터에서 제공받던 물리적인 자산을 완벽하게 가상화하여 제공하기 때문에 서버 사양의 변경 등 물리적 자산의 변경이 필요한 경우 기존의 방식에 비해 훨씬 빠른 대응이 가능함
      • AWS(Amazon Web Services), Microsoft Azure, DigitalOcean, Google Compute Engine(GCE)
    • 플랫폼형 서비스(PaaS; Platform as a Sevice)
      • 인프라를 생성, 관리하는 복잡함 없이 애플리케이션을 개발, 실행, 관리할 수 있게 하는 플랫폼을 제공하는 서비스
      • SaaS의 개념을 개발 플랫폼에도 확장한 방식으로 개발을 위한 플랫폼을 구축할 필요 없이, 필요한 개발 요소를 웹에서 빌려 쓸 수 있게 하는 모델
      • OS, 애플리케이션과 애플리케이션 호스팅 환경 구성의 제어권을 가짐
      • 주로 응용 프로그램을 개발 할 때 필요한 플랫폼을 제공, 개발사는 미들웨어를 설치하지 않고도 PaaS에서 제공하는 API를 사용하여 소프트웨어를 개발할 수 있음
      • 런타임, 미들웨어, 운영체제, 가상화, 서버, 스토리지 및 네트워킹을 가상화하여 제공하고 관리
      • 개발자가 개발에 필요한 플랫폼을 구축하거나 유지 관리 하지 않고도 애플리케이션을 개발, 실행 및 관리할 수 있는 플랫폼을 제공함
      • PaaS를 통해 고객은 애플리케이션 자체에 집중할 수 있으며, 고객은 애플리케이션과 데이터만 제공하고 관리함
      • PaaS 공급자가 제공하는 개발 도구는 고객의 요구에 따라 맞춤화 됨
      • AWS Elastic Beanstalk, Windows Azure, Heroku, Google App Engine
    • 소프트웨어형 서비스(SaaS; Software as a Service)
      • 소프트웨어 및 관련 데이터는 중앙에 호스팅되고 사용자는 웹 브라우저 등의 클라이언트를 통해 접속하여 소프트웨어를 서비스 형태로 이용하는 서비스
      • 주문형 소프트웨어라고도 함
      • 사용자에게 제공되는 소프트웨어를 가상화하여 서비스로 제공
      • 애플리케이션, 데이터, 런타임, 미들웨어, 운영체제, 가상화, 서버, 스토리지, 네트워크를 가상화하여 제공하고 관리함
      • 애플리케이션을 가상화하여 제공하기 때문에 개별 컴퓨터에 응용 프로그램을 다운로드하고 설치할 필요가 없음
      • SaaS 제공자는 데이터, 미들웨어, 서버 및 스토리지와 같은 모든 잠재적인 기술적 문제를 관리하기 때문에 고객은 유지 보수 및 지원을 간소화 하면서 비지니스에 집중할 수 있음
      • WhaTap IT Monitoring, Google Apps, Dropbox, Salesforce

이미지

  • 호스팅(Hosting)이란 서버 컴퓨터의 전체 또는 일정 공간을 이용할 수 있도록 임대해 주는 서비스를 말한다. 사용자가 직접 서버를 구입하고 운영할 필요 없이 호스팅 업체가 미리 준비해 놓은 서버를 빌려 사용하는 형식이다. 호스팅 서비스에는 웹 호스팅과 서버 호스팅, 메일 호스팅 등 다양한 종류가 있다.

Q. 다음은 객체지향의 주요 개념에 대한 설명이다. () 안에 공통으로 들어갈 올바른 용어를 쓰시오.

클래스(Class)

  • ()은/는 특정 객체를 생성하기 위해 변수와 메서드를 정의하는 일종의 틀이다.
  • ()은/는 객체를 정의하기 위한 상태(멤버 변수)아 메서드(함수)로 구성된다.
  • 클래스는 변수와 메서드(함수) 형태로 구성되어 있다.
  • 클래스에서 변수는 변수 선언과 동일하고, 메서드는 사용자 정의함수와 문법이 동일하다. 파이썬은 별도로 변수 선언을 하지 않기 때문에 메서드 형태로 구성되어 있다.
    • C++ 클래스 정의
    1
    2
    3
    4
    5
    6
    7
    8
    9
    
      class 클래스명 {
      	private:
      		변수_타입 변수명;
      	public:
      		반환_데이터_타입 메서드명(데이터_타입 변수명, ...) {
      			명령어;
      			return;
      		}
      };
    
    • 자바 클래스 정의
    1
    2
    3
    4
    5
    6
    7
    
      public class 클래스명 {
      	private 변수_타입 변수명;
      	public 반환_데이터_타입 메서드명(테이터_타입 변수명, ...) {
      		명령어;
      		return 반환값;
      	}
      }
    
    • 파이썬 클래스 정의
    1
    2
    3
    4
    
      	class 클래스명:
      	def 메서드명(self, 변수명, ...):
      		명령어
      		return 반환값
    

Q. 현실 세계에 대한 가상화 기술은 4차 산업혁명 시대의 핵심 기술로 기존 ICT 시장을 크게 변화시키고, 신규 시장을 창출할 수 있는 기술이다. 유형으로는 크게 세 가지가 있는데, 먼저 ( ① )은/는 컴퓨터 등을 사용한 인공적인 기술로 만들어낸 실제와 유사하지만 실제가 아닌 어떤 특정한 환경이나 상황 혹은 그 기술 자체를 의미한다. 또한 ( ② )은/는 실제로 존재하는 환경에 가상의 사물이나 정보를 합성하여 마치 원래의 환경에 존재하는 사물처럼 보이도록 하는 컴퓨터 그래픽 기술이다. 마지막으로 ( ③ )은/는 실세계의 물리적 환경과 가상환경을 혼합한 경험을 제공하는 하이브리드 현실이다. () 안에 들어갈 용어를 쓰시오.

가상 현실(VR; Virtual Reality), 증강 현실(AR; Augmented Reality), 혼합 현실(MR; Mixed Reality)

  • VR, AR, MR 기술은 다음과 같다.

    구분설명
    가상 현실(VR, Virtual Reality)컴퓨터 등을 사용한 인공적인 기술로 만들어낸 실제와 유사하지만, 실제가 아닌 어떤 특정한 환경이나 상황 혹은 그 기술 자체를 의미
    증강 현실(AR, Augumented Reality)가상 현실(VR)의 한 분야로 실제로 존재하는 환경에 가상의 사물이나 정보를 합성하여 마치 원래의 환경에 존재하는 사물처럼 보이도록 하는 컴퓨터 그래픽 기술
    혼합 현실(MR, Mixed Reality)실세계의 물리적 환경과 가상환경을 혼합한 경험을 제공하는 하이브리드 현실
  • ICT는 IT(Information Technology)에 ‘통신(Communication)’이 더해진 개념이다. 쉽게 말하면 기존의 IT가 정보 전반을 다루는 기술이라면 ICT는 스마트폰, 모바일 디바이스, 원격제어 등 IT 기술에 커뮤니케이션이 강조된 것이다.
  • 증강현실(더 늘려 굳세게 하는 것, augmented reality, AR)은 가상현실(VR)의 한 분야로 실제로 존재하는 환경에 가상의 사물이나 정보를 합성하여 마치 원래의 환경에 존재하는 사물처럼 보이도록 하는 컴퓨터 그래픽 기법이다. 사용자가 보고 있는 실사 영상에 3차원 가상영상을 겹침(overlap)으로써 현실환경과 가상화면과의 구분이 모호해지도록 한다는 뜻이다. 완전한 가상세계를 전제로 하는 가상현실(VR)과는 달리 현실(Reality)을 기반으로 정보를 증강(Augmented)을 제공하는 기술로, 가상의 대상을 결합시켜 현실의 효과를 더욱 증가시키는 것이다. 즉, 가상 현실(VR)에 현실 세계의 실제 모습이 추가된 것이다.
  • 확장현실(extended reality, XR)은 증강 현실(AR), 가상 현실(VR) 및 혼합 현실(MR)을 가리키는 포괄적인 용어다. 이 기술은 물리적 세계와 상호 작용할 수 있는 “디지털 트윈 세계”를 결합하거나 미러링하기 위한 것이다.

이미지


Q. 전송 계층의 프로토콜 중 ( ① )은/는 전송 계층에 위치하면서 근거리 통신망이나 인트라넷, 인터넷에 연결된 컴퓨터에서 실행되는 프로그램 간에 일련의 옥텟을 안정적으로, 순서대로, 에러 없이 교환할 수 있게 해주는 프로토콜이고, ( ② )은/는 비연결성이고, 신뢰성이 없으며, 순서화되지 않은 데이터 그램 서비스를 제공하는 전송 계층(4계층)의 통신 프로토콜이다. () 안에 들어갈 프로토콜을 쓰시오.

TCP(Transmission Control Protocol), UDP(User Datagram Protocol)

  • 전송 계층은 상위 계층들이 데이터 전달의 유효성이나 효율성을 생각하지 않도록 해주면서 종단 간의 사용자들에게 신뢰성 있는 데이터를 전달하는 계층이다.
  • 전송 계층의 프로토콜은 다음과 같다.

    프로토콜설명
    TCP(Transmission Control Protocol)전송 계층에 위치하면서 근거리 통신망이나 인트라넷, 인터넷에 연결된 컴퓨터에서 실행되는 프로그램 간에 일련된 옥텟을 안정적으로, 순서대로, 에러 없이 교환할 수 있게 해주는 프로토콜
    UDP(User Datagram Protocol)비연결성이고, 신뢰성이 없으며, 순서화되지 않은 데이터그램 서비스를 제공하는 전송 계층(4계층)의 통신 프로토콜

Q. 다음은 [점수] 테이블에 대해 SQL을 수행한 결과를 쓰시오.

40, 20, 40

[점수]

이름프로그래밍통신소프트웨어공학
두음쌤40NULL90
지기쌤NULL300
수제비쌤NULL1030
보안쌤NULLNULLNULL

[쿼리]

1
2
SELECT AVG(프로그래밍) AS 프로그래밍, AVG(통신) AS 통신, AVG(소프트웨어공학) AS 소프트웨어공학
FROM 점수;

[결과]

프로그래밍통신소프트웨어공학
  • 집계 함수는 NULL인 값은 제외하고 계산한다.
  • 집계 함수의 종류는 다음과 같다.

    집계 함수내용
    COUNT복수 행의 줄 수
    SUM복수 행의 해당 컬럼 간의 합계
    AVG복수 행의 해당 컬럼 간의 평균
    MAX복수 행의 해당 컬럼 중 최댓값
    MIN복수 행의 해당 컬럼 중 최솟값
    STDDEW복수 행의 해당 컬럼 간의 표준편차
    VARIANCE복수 행의 해당 컬럼 간의 분산

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

105432

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
public class Soojebi {
	public static int[] arr(int[] a) {
		int i, j;
		int sw, temp;
		int n = 5;
		
		if(a[0] == 0 || a[0] < 1)
			return a;
			
		for(i=0; i<n-1; i++) {
			sw = i;
			for(j=i+1; j<n; j++) {
				if(a[j] > a[sw])
					sw = j;
			}
			temp = a[i];
			a[i] = a[sw];
			a[sw] = temp;
		}
		return a;
	}
	
	public static void main(String[] args) {
		int i;
		int[] n = {4,3,5,2,10};
		arr(n);
		for(i=0; i<5; i++)
			Sytem.out.print(n[i]);
	}
}

Q. 다음이 설명하는 클라우드 컴퓨팅 유형은 무엇인가?

공용 클라우드(Public Cloud)

  • 클라우드 서비스 제공 업체에서 다중 사용자를 위한 컴퓨팅 자원 서비스를 제공하는 클라우드
  • 일정한 비용을 지불하고 하드웨어, 소프트웨어 등을 사용
  • 확장성, 유연성 등이 뛰어남
  • 클라우드 컴퓨팅 분류는 다음과 같다. [사공하]
    • 사설 클라우드(Private Cloud)
      • 기업 또는 조직 내부에서 보유하고 있는 컴퓨팅 자원(IDC(Internet Data Center), 서버 등)을 사용하여 내부에 구축되어 운영되는 클라우드
      • 자체 컴퓨팅 자원으로 모든 하드웨어, 소프트웨어, 데이터를 수용
      • 직접적인 통제가 가능하며 보안성을 높일 수 있음
    • 공용 클라우드(Public Cloud)
      • 클라우드 서비스 제공 업체에서 다중 사용자를 위한 컴퓨팅 자원 서비스를 제공하는 클라우드
      • 일정한 비용을 지급하고 하드웨어, 소프트웨어 등을 사용
      • 확장성, 유연성 등이 뛰어남
    • 하이브리드 클라우드(Hybrid Cloud)
      • 기업 또는 조직 내부 자원을 이용한 사설 클라우드와 공용 클라우드 모두 사용하는 클라우드
      • 사설 클라우드의 약점인 구축 비용 문제와 공용 클라우드의 약점인 보안성 확보 문제를 해결
      • 사용 업무의 중요도, 보안성 확보의 중요도 등에 따라 이용 형태 변경 가능

Q. 규모가 크고 복잡한 TCP/IP 네트워크에서 RIP의 단점을 개선하기 위해 자신을 기준으로 링크 상태(Link-State) 알고리즘을 적용하여 최단 경로를 찾는 라우팅 프로토콜은 무엇인가?

OSPF(Open Shortest Path First)

  • OSPF의 특징은 다음과 같다.
    • 다익스트라 알고리즘 사용
      • 다익스트라(Dijkstra) 알고리즘 사용하는 내부 라우팅 프로토콜
      • 링크 상태 라우팅 기반 메트릭(Metric) 정보를 한 지역(Area) 내 모든 라우터에 변경이 발생했을 때 보내(Flooding)고 라우팅 테이블을 구성∙계산
    • 라우팅 메트릭 지정
      • 최소 지연, 최대 처리량 등 관리자가 라우팅 메트릭 지정
    • AS 분할 사용
      • 자치 시스템을 지역(Area)로 나누어 라우팅을 효과적으로 관리
    • 홉 카운트 무제한
      • 홉 카운트에 제한이 없다.

Q. 업무의 상황에 따라 달라질 이력 데이터는 발생하는 유형에 따라 크게 ()이력, 발생 이력, 진행 이력 등의 3가지 형태로 나누어진다. () 안에 알맞은 용어를 쓰시오.

변경

  • 이력 데이터의 종류에는 변경 이력, 발생 이력, 진행 이력 3개로 구성되어 있다.

    종류설명
    변경 이력거래에 대한 변경 등에서 발생하는 이력
    발생 이력정기적으로 발생하는 데이터
    진행 이력어떤 데이터가 현재까지 계속 진행하고 있는 데이터

Q. 다음은 파이썬 코드이다. 출력 결과를 쓰시오.

36

1
2
3
4
5
6
7
8
9
10
11
12
a = list()
for i in range(0, 10):
	a.append(i)

for i in range(2, 5):
	a.remove(i)

sum=0
for i in range(len(a)):
	sum += a[i]

print(sum)
  • a=list()에서 리스트를 생성한다.
  • 첫 번째 for 반복문에서 i 값이 0부터 10보다 작을 때까지 1씩 증가시키며 i 값을 a 리스트에 추가(append)한다.
  • for 반복문이 종료되고 a 리스트에는 다음과 같이 데이터가 들어있다.

    [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

  • 두 번째 for 반복문에서 i 값이 2부터 5보다 작을 때까지 1씩 증가시키며 i 값 인덱스에 해당하는 원소를 제거(remove)한다.

    i0123456789
    aa[0]=0a[1]=1a[2]=2a[3]=3a[4]=4a[5]=5a[6]=6a[7]=7a[8]=8a[9]=9
    삭제 여부  삭제함삭제함삭제함     
  • 두 번째 for 반복문이 종료되고 a 리스트에는 다음과 같이 데이터가 들어있다.

    [0, 1, 5, 6, 7, 8, 9]

  • sum은 a 리스트 원소들의 합을 계산하기 위해 0으로 초기화 한다.
  • 마지막 for 반복문은 i 값이 len(a)까지 반복을 수행한다. len(a)은 리스트 요소의 개수를 구하는 함수로 리스트에는 [0, 1, 5, 6, 7, 8, 9]가 들어있으므로 7이 된다. 즉, 모든 원소의 합인 0 + 1 + 5 + 6 + 7 + 8 + 9를 계산하여 sum에 대입한다. print(sum)에서 화면에 sum 값 36을 출력한다.

Q. 과도한 GET 메시지를 이용하여 웹 서버의 과부하를 유발시키는 공격으로 HTTP 캐시 옵션을 조작하여 캐싱 서버가 아닌 웹 서버가 직접 처리하도록 유도, 웹 서버 자원을 소진시키는 서비스 거부 공격 기법은 무엇인가?

HTTP GET 플러딩(Flooding) 공격

  • HTTP GET 플러딩 공격은 HTTP 캐시 옵션을 조작하여 캐싱 서버가 아닌 웹 서버가 직접 처리하도록 유도하여 웹 서버 자원을 소진시키는 서비스 거부 공격이다.

    이미지


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

2

1
2
3
4
5
6
7
8
9
10
11
12
13
14
public class Soojebi {
	public static void main(String args[]) {
		int[] a = {1, 1, 2, 1, 2, 3, 1, 2, 3, 4};
		itn b = 0;
		
		for(int i=0; i<a.length; i++) {
			if(a[i] == 3) {
				b++;
			}
		}

	System.out.println(b);
	}
}
  • 정수형 1차원 배열 a를 선언하고 1, 1, 2, 1, 2, 3, 1, 2, 3, 4로 초기화
  • 정수형 변수 b를 선언하고 0으로 초기화
  • 정수형 변수 i를 0부터 a.length만큼 i를 1씩 증가시키면서 반복을 수행
  • 만약 a[i]가 3과 같으면 b를 1 증가시킴

| i | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | | — | — | — | — | — | — | — | — | — | — | — | | a[i] | 1 | 1 | 2 | 1 | 2 | 3 | 1 | 2 | 3 | 4 | | b | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 2 | 2 |

  • for 문이 종료되고 b 값인 2가 화면에 출력된다.

Q. 결함(Defect)의 원인이 되는 것으로, 일반적으로 사람(소프트웨어 개발자, 분석가 등)에 의해 생성된 실수를 무엇이라 하는가?

에러(Error)/오류

  • 소프트웨어 결함의 종류는 다음과 같다.
    • 에러/오류
      • 에러는 결함의 원인이 되는 것으로, 일반적으로 사람(소프트웨어 개발자, 분석가 등)에 의해 생성된실수
    • 결함/결점/버그
      • 에러 또는 오류가 원인이 되어 소프트웨어 제품에 포함되어 있는 결함
      • 이를 제거하지 않으면 소프트웨어 제품이 실패하거나 문제가 발생
    • 실패/문제
      • 소프트웨어 제품에 포함된 결함이 실행될 때 발생되는 현상

Q. 콘텐츠에 대한 유출방지 솔루션 중 하나인 DLP(Data Loss Prevention)

DLP는 조직 내부의 중요 자료가 외부로 빠져나가는 것을 탐지하고 차단하는 솔루션이다.

  • 주요 콘텐츠 유출방지 솔루션은 다음과 같다.
    • 보안 USB
      • 정보 유출방지 등의 보안 기능을 갖춘 USB 메모리
      • 사용자 식별/인증, 데이터 암∙복호화, 임의복제 방지, 분실 시 데이터 삭제 기능
    • 데이터 유출방지(DLP; Data Loss Prevention)
      • 조직 내부의 중요 자료가 외부로 빠져나가는 것을 탐지하고 차단하는 솔루션
      • 정보 유출방지를 위해 정보의 흐름에 대한 모니터링과 실시간 차단 기능을 제공
    • 디지털 저작권 관리(DRM; Digital Right Management)
      • 디지털 콘텐츠에 대한 권리정보를 지정하고 암호화 기술을 이용하여 허가된 사용자의 허가된 권한 범위 내에서 콘텐츠의 이용이 가능하도록 통제하는 기술 및 시스템
      • MP3, E-Book과 같은 디지털 저작물에 대한 보호와 관리를 위한 솔루션
      • 파일 자체에 암호를 걸어 권한 없는 사용자는 사용하지 못함
      • 문서 보안 솔루션으로도 사용할 수 있고 문서를 저장할 때 암호화하여 저장하여 권한이 없는 사용자가 문서를 읽지 못하도록 함

Q. 다음은 [학생] 테이블이다. 3학년이 아닌 학생의 학번을 출력하는 쿼리를 작성하시오.

1
2
3
SELECT 학번
FROM 학생
WHERE 학년 != 3;
1
2
3
SELECT 학번
FROM 학생
WHERE 학년 <> 3;

[학생]

학번이름학년
202101윤봉길1
202102안중근3
202103이순신2
202104홍범도3
202105김좌진4
202106유관순3
202107이봉창2

[결과]

학년
202101
202103
202105
202107
  • WHERE절에서 값이 다른 경우를 조회하기 위해서 <>, != 연산자를 사용한다.
  • WHERE절에서 비교 연산자는 다음과 같다.

    연산자설명
    =값이 같은 경우 조회
    <>, !=값이 다른 경우 조회
    <, <=, >, >=비교 연산에 해당하는 데이터 조회

Q. 다음은 메모리 배치 기법에 대한 설명이다. () 안에 들어갈 기법을 쓰시오.

최초 적합(First Fit), 최적 적합(Best Fit), 최악 적합(Wort Fit)

  • ( ① ): 프로세스가 적재될 수 있는 가용 공간 중에서 첫 번째 부할에 할당하는 방식
  • ( ② ): 가용 공간 중에서 가장 크기가 비슷한 공간을 선택하여 프로세스를 적재하는 방식
  • ( ③ ): 프로세스의 가용 공간 중에서 가장 큰 공간에 할당하는 방식
  • 메모리 배치 기법의 유형은 다음과 같다.

    기법설명
    최초 적합(First Fit)프로세스가 적재될 수 있는 가용 공간 중에서 첫 번째 분할에 할당하는 방식
    최적 적합(Best Fit)가용 공간 중에서 가장 크기가 비슷한 공간을 선택하여 프로세스를 적재하는 방식
    최악 적합(Worst Fit)프로세스의 가용 공간 중에서 가장 큰 공간에 할당하는 방식

Q. 다음은 소프트웨어 개발 관련 용어에 대한 설명이다. () 안에 들어갈 용어를 쓰시오.

런타임(Runtime), 라이브러리(Library)

  • 파일 과정을 마친 프로그램은 사용자에 의해 실행되어지며, 이러한 응용프로그램이 동작되는 시점을 ( ① )(이)라고 부른다.
  • ( ② )은/는 소프트웨어 개발 시 공통으로 사용될 수 있는 특정한 기능을 모듈화한 기법이다.
  • 런타임과 라이브러리 개념은 다음과 같다.
    • 런타임(Runtime)
      • 파일 과정을 마친 프로그램은 사용자에 의해 실행되며, 이러한 응용 프로그램이 동작하는 시점
    • 라이브러리(Library)
      • 소프트웨어 개발 시 공통으로 사용될 수 있는 특정한 기능을 모듈화한 기법
      • 유형에는 표준 라이브러리와 런타임 라이브러리가 있다.
  • 라이브러리
    • API를 기반으로 대상 환경(플랫폼: LinuxmacOSWindows)에서 바로 실행될 수 있도록 모듈화된 프로그램 모음이다. 라이브러리는 혼자서 동작하는 완전한 프로그램이 아닌, 특정한 부분 기능만을 수행하도록 제작된, 컴파일되어 기계어의 형태로 (또는 대상 플랫폼에 따라서는 바이트코드로) 존재하는 프로그램이다. 이 자체로는 사용자가 직접 일반적인 조작으로 실행할 수 없으며, 해당 라이브러리의 기능을 직접 호출하는 프로그램을 실행하거나, 사용자가 해당 라이브러리의 기능을 실행하는 API를 사용하는 프로그램을 직접 개발하면 실행할 수 있다.
    • 표준 라이브러리: 특정 언어의 개발 환경에 기본적으로 포함된 것들은 대부분 표준 라이브러리라고 불린다. 기본적인 기능 수행과 더불어 디버깅, 성능측정 등을 위한 별도의 API가 존재한다.
    • 런타임 라이브러리: 프로그램이 실제 환경에서 실행되기 위해 필요한 모듈들이다. 대부분 위의 표준 라이브러리에서 기능 수행에 필요한 것들만 제공되거나, 스크립트의 실행기 등을 말한다.

Q. 다음은 키의 종류에 대한 설명이다. () 안에 들어갈 키를 쓰시오.

대체 키(Alternate Key), 슈퍼 키(Super Key)

  • ( ① ): 후보 키 중에서 기본 키로 선택되지 않은 키
  • ( ② ): 릴레이션을 구성하는 모든 튜플에 대해 유일성은 만족하지만, 최소성은 만족하지 못하는 키
  • 키의 종류는 다음과 같다.
    • 기본 키(Primary Key)
      • 테이블의 각 튜플을 고유하게 식별하는 컬럼
    • 대체 키(Alternate Key)
      • 후보 키 중에서 기본 키로 선택되지 않은 키
    • 후보 키(Candidate Key)
      • 테이블에서 각 튜플들을 구별하는데 기준이 되는 컬럼
      • 기본 키와 대체 키를 합친 키(기본 키 ⊆ 후보 키, 대체 키 ⊆ 후보 키)
    • 슈퍼 키(Super Key)
      • 릴레이션을 구성하는 모든 튜플에 대해 유일성은 만족하지만, 최소성은 만족하지 못하는 키
    • 외래 키(Foreign Key)
      • 테이블 간 참조 데이터 무결성을 위한 제약 조건
      • 한 릴레이션의 컬럼이 다른 릴레이션의 기본 키로 이용되는 키

Q. 다음은 UI 구성요소에 대한 설명이다. () 안에 들어갈 구성요소를 쓰시오.

Check Box, Radio Button

Combo Box이미 지정된 목록 상자에 내용을 표시하여 선택할 수 있고, 새로운 내용도 입력할 수 있는 상자
List Box이미 지정된 목록 상자에 내용을 표시하여 선택할 수 있고, 새로운 내용은 입력할 수 없는 상자
( ① )여러 개의 선택 상황에서 1개 이상의 값을 선택할 수 있는 버튼
( ② )여러 항목 중 하나만 선택할 수 있는 버튼
  • UI 구성요소에는 Input Box, Combo Box, List Box, Check Box, Radio Button 등이 있다.

    구성요소설명
    Input Box사용자가 텍스트 데이터를 입력, 수정할 수 있는 상자
    Combo Box이미 지정된 목록 상자에 내용을 표시하여 선택할 수 있고, 새로운 내용도 입력할 수 있는 상자
    List Box이미 지정된 목록 상자에 내용을 표시하여 선택할 수 있고, 새로운 내용은 입력할 수 없는 상자
    Check Box여러 개의 선택 상황에서 1개 이상의 값을 선택할 수 있는 버튼
    Radio Button여러 항목 중 하나만 선택할 수 있는 버튼

Q. 다음은 파이썬 코드이다. 출력 결과를 쓰시오.

19

1
2
3
4
5
6
7
8
9
10
i=0
num=10
sum=0
for i in range(1, num+1):
	if i % 4 == 0:
		sum+=i
	elif i % 7 == 0:
		sum+=i

print(sum)
  • 3의 배수와 5의 배수의 합을 구하는 프로그램이다.
  • i, sum은 0, num은 10으로 초기화한다.
  • for 반복문은 1부터 10까지 1씩 증가하며 반복한다.
  • if 문에서 i 값을 4로 나눈 나머지가 0과 같을 때 sum 변수에 더한다.
  • elif 문에서 i 값을 7로 나눈 나머지가 0과 같을 때 sum 변수에 더한다.
  • for 반복문이 종료되고 sum 변숫값을 화면에 출력한다.
i배수sum
1  
2  
3  
44의 배수4
5  
6  
77의 배수11
84의 배수19
9  
10  


참고 자료


이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.