포스트

모의고사 05회

Q. Digital Forensics(디지털 포렌식)의 개념에 대하여 서술하시오.

디지털 포렌식은 범죄 행위에 대한 사실을 사법기관에 제출하기 위해 디지털 증거자료를 획득, 분석, 보관, 제출, 기록하는 일련의 과정을 지칭하는 용어이다.

  • 디지털 포렌식의 원칙은 정당성, 재현성, 연계성, 신속성, 무결성이다.
  • 디지털 포렌식은 범죄 행위에 대한 사실을 사법기관에 제출하기 위해 디지털 증거자료를 획득, 분석, 보관, 제출, 기록하는 일련의 과정을 지칭하는 용어이다.

Q. 다음은 보안 관련 용어에 대한 설명이다. () 안에 공통으로 들어갈 용어를 쓰시오.

루트킷(Rootkit)

  • ()은/는 시스템 침입 후 침입 사실을 숨긴 채 차후의 침입을 위한 백도어, 트로이 목마 설치, 원격 접근, 내부사용 흔적 삭제, 관리자 권한 획득 등 주로 불법적인 해킹에 사용되는 기능을 제공하는 프로그램의 모음이다.
  • ()은/는 해커가 시스템의 민감한 정보를 수집하거나, 네트워크상의 다른 시스템을 공격 또는 추적회피를 위한 중간 지점으로 이용하더라도 로그를 지워버릴 수 있어 탐지하기 어려운 도구이다.
  • 루트킷과 크라임웨어는 해킹에 사용되는 공격용 도구로 개념을 구분할 수 있어야 한다.
    • 루트킷(Rootkit)
      • 시스템 침입 후 침입 사실을 숨긴 채 차후의 침입을 위한 백도어, 트로이 목마 설치, 원격 접근, 내부사용 흔적 삭제, 관리자 권한 획득 등 주로 불법적인 해킹에 사용되는 기능을 제공하는 프로그램의 모음
      • 해커가 시스템의 민감한 정보를 수집하거나, 네트워크상의 다른 시스템을 공격 또는 추적 회피를 위한 중간 지점으로 이용하더라도 로그를 지워버릴 수 있어 탐지하기 어려운 도구
    • 크라임웨어(Crimeware)
      • 온라인상에서 범죄와 같은 불법적인 행위를 수행하기 위해 제작된 컴퓨터 프로그램으로, 공격용 툴 킷으로 불림
      • 악성 코드로 구성된 프로그램이 사용자를 속여 PC에 설치되면 불법적으로 정보를 수집하거나 PC의 자원을 사용하여 원하는 대상을 공격하는 용도로 사용
      • 키로거, 스파이웨어, 브라우저 하이잭커 등이 속함

Q. 다음 () 안에 알맞은 용어를 쓰시오.

온프레미스(On-premise)

  • ()은/는 외부 인터넷망이 차단된 상태에서 인트라넷 망만을 활용하여 개발환경을 구축하는 방식이다.
  • 데이터와 정보의 외부 유출이 민감할 경우 해당 장비를 자체 구매하고 특정 공간에 개발환경을 구축하는 환경이다.
  • ()방식과 아마존, 구글, 마이크로소프트 등 클라우드 공급 서비스를 하는 회사들의 서비스를 임대하여 개발환경을 구축하는 방식을 혼용한 하이브리드 방식도 있다.
  • 개발환경 인프라 구성 방식은 다음과 같다.
    • 온프레미스(On-premise) 방식
      • 외부 인터넷망이 차단된 상태에서 인트라넷 망만을 활용하여 개발환경을 구축하는 방식
      • 데이터와 정보의 외부 유출이 민감할 경우 해당 장비를 자체 구매하고 특정 공간에 개발환경을 구축
    • 클라우드(Cloud) 방식
      • 아마존, 구글, 마이크로소프트 등 클라우드 공급 서비스를 하는 회사들의 서비스를 임대하여 개발환경을 구축하는 방식
      • 해당 장비를 초기에 구매하지 않기 때문에 개발환경 투자비용이 적고 구축 시간이 빠름
    • 하이브리드(Hybrid) 방식
      • 온프레미스와 클라우드 방식을 혼용하는 방식
  • 인트라넷(intranet)은 단체의 직원만 접근이 가능한 사설망이다. 인터넷 프로토콜을 쓰는 폐쇄적 근거리 통신망으로 간주된다. 인터넷을 조직 내 네트워크로 활용하는 것을 말한다. 인트라넷은 근거리 통신망(LAN)을 기반으로 데이터 저장장치인 서버를 연결하고 PC에 설치된 인터넷 검색 프로그램을 통해 업무를 처리할 수 있게 하는 것이다. 방화벽을 설치하여 외부로부터의 접근을 막거나 일부 제한하여 보안을 유지한다.

Q. 다음은 분석 자동화 도구에 대한 설명이다. () 안에 들어갈 분석 자동화 도구의 유형을 쓰시오.

하위 CASE(Lower CASE) 상위 CASE(Upper CASE)

  • ( ① )
    • 구문 중심 편집 및 정적∙동적 테스트 지원
    • 시스템 명세서 생성 및 소스 코드 생성 지원
  • ( ② )
    • 계획수립, 요구분석, 기본설계 단계를 다이어그램으로 표현
    • 모델들 사이의 모순 검사 및 모델의 오류 검증, 일관성 검증 지원
    • 자료 흐름도, 프로토타이핑 작성 지원 및 UI 설계 지원
  • 분석 자동화 도구인 CASE 도구(Computer Aided Software Engineering, 컴퓨터 지원 소프트웨어 공학)의 유형에는 상위 CASE(Upper CASE), 하위(Lower CASE)가 있다.
    • 상위 CASE(Upper CASE)
      • 계획수립, 요구분석, 기본설계 단계를 다이어그램으로 표현
      • 모델들 사이의 모순 검사 및 모델의 오류 검증, 일관성 검증 지원
      • 자료 흐름도, 프로토타이핑 작성 지원 및 UI 설계 지원
    • 하위 CASE(Lower CASE)
      • 구문 중심 편집 및 정적∙동적 테스트 지원
      • 시스템 명세서 생성 및 소스 코드 생성 지원

Q. ‘급여’ 테이블에서 부서의 급여합계가 6000 이상인 부서, 급여합계를 출력하는 SQL 문을 작성하시오.

1
2
3
4
SELECT 부서, SUM(급여) AS 급여합계
FROM 급여
GROUP BY 부서
HAVING SUM(급여) >= 6000;

[급여]

이름부서급여
이민아전산5000
오성진마케팅4900
김도훈경영전략6200
이영진경리8000
신민영회계3800
  • GROUP BY 구문은 실제 구체적 데이터 분석값을 보고자 하는 컬럼 단위를 선정할 때 사용되는 기준이 된다.
  • HAVING 구문은 WHERE 구문 내에는 사용할 수 없는 집계 함수의 구문을 적용하여 복수 행의 계산 결과를 조건별로 적용하는 데 사용된다.
  • 급여합계를 출력하기 위해서는 집계함수인 SUM을 사용한다. 다음 AS를 사용하여 명명한다.
  • 집계 함수의 종류는 아래와 같다.

    집계 함수내용
    COUNT복수 행의 줄 수를 반환하는 함수
    SUM복수 행의 해당 컬럼 간의 합계를 계산하는 함수
    AVG복수 행의 해당 컬럼 간의 평균을 계산하는 함수
    MAX복수 행의 해당 컬럼 중 최댓값을 계산하는 함수
    MIN복수 행의 해당 컬럼 중 최솟값을 계산하는 함수
    STDDEV복수 행의 해당 컬람 간의 표준편차를 계산하는 함수
    VARIANCE복수 행의 해당 컬럼 간의 분산을 계산하는 함수

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

4 3 56 65 78

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
public class Soojebi {
	public static void main(String[] args) {
		int[] a = {56, 4, 3, 65, 78};
		int temp;
		for(int i = 0; i < 1; i++) {
			for(int j = 0; j < a.length-i-1; j++) {
				if(a[j]>a[j+1]) {
					temp = a[j];
					a[j] = a[j+1];
					a[j+1] = temp;
				}
			}
		}
		for(int i = 0; i < a.length ; i++) {
			System.out.print(a[i] + "");
		}
	}
}
  • 정수형 배열 a에는 초기값으로 56, 4, 3, 65, 78이 저장되어 있다.
  • 정수형 변수 temp는 두 수의 교환을 위해 사용할 임시 저장 변수이다.
  • 바깥쪽 for 반복문에서 i는 0부터 1까지 1씩 중가하며 반복하고 안쪽 for 반복문에서 j는 0부터 a.length-i-1까지 1씩 증가하며 반복한다.
  • if 문에서 a[j]와 a[j+1]의 값을 비교하여 a[j]가 a[j+1]보다 큰 경우 두 수를 교환한다. 위 과정을 반복하며 정렬을 한다.

    ija[j]a[j+1]교환 발생교환 후 a
    00a[0]=56a[1]=4자리 교환, a[0]=4, a[1]=564 56 3 65 78
    01a[1]=56a[2]=3자리 교환, a[1]=3, a[2]=564 3 56 65 78
    02a[2]=56a[3]=65 4 3 56 65 78
    03a[3]=65a[4]=78 4 3 56 65 78
  • 자바에서 배열.length를 사용할 경우 배열의 개수가 반환된다. 문제에서는 배열의 개수가 {56, 4, 3, 65, 78}로 총 5개이므로 a.length는 5가 된다.

Q. 입력 데이터 검증 및 표현 취약점에 해당하며, 보안 공격 기법 중 사용자가 자신의 의지와는 무관하게 공격자가 의도한 행위를 특정 웹사이트에 요청하게 하는 공격 기법은 무엇인가?

사이트 간 요청 위조(CSRF; Cross-Site Request Forgery)

  • 입력 데이터 검증 및 표현에 대한 취약점은 아래와 같다.

    취약점설명
    XSS(Cross Site Scripting)검증되지 않은 외부 입력 데이터가 포함된 웹 페이지가 전송되는 경우, 사용자가 해당 웹 페이지를 열람함으로써 웹 페이지에 포함된 부적절한 스크립트가 실행되는 공격
    사이트 간 요청 위조(CSRF)사용자가 자신의 의지와는 무관하게 공격자가 의도한 행위를 특정 웹사이트에 요청하게 하는 공격
    SQL 삽입(SQL Injection)응용 프로그램의 보안 취약점을 이용해서 악의적인 SQL 구문을 삽입, 실행시켜서 데이터베이스(DB)의 접근을 통해 정보를 탈취하거나 조작 등의 행위를 하는 공격 기법

Q. IPv6(Internet Protocol version 6)의 개념을 약술하시오.

IPv6는 IPv4가 가지고 있는 주소 고갈, 보안성, 이동성 지원 등의 문제점을 해결하기 위해서 개발된 128bit 주소체계를 갖는 차세대 인터넷 프로토콜이다.

  • IPv6는 인터넷 프로토콜 스택 중 네트워크 계층의 프로토콜로서 버전 6인 인터넷 프로토콜로 제정된 차세대 인터넷 프로토콜이다.
  • IPv6의 특징은 아래와 같다.
    • IP 주소의 확장
      • IPv4의 기존 32비트 주소 공간에서 벗어나, IPv6는 128비트 주소 공간을 제공
    • 이동성
      • IPv6 호스트는 네트워크의 물리적 위치에 제한받지 않고 같은 주소를 유지하면서도 자유롭게 이동가능
    • 인증 및 보안 기능
      • 패킷 출처 인증과 데이터 무결성 및 비밀 보장 기능을 IP 프로토콜 체계에 반영
      • IPSec 기능 적용 및 IPv4보다 보안성 강화
    • 개선된 QoS 지원
      • 흐름 레이블(Flow Lable) 개념을 도입, 특정 트래픽은 별도의 특별한 처리(실시간 통신 등)를 통해 높은 품질의 서비스를 제공
    • Plug&Play 지원
      • IPv6 호스트는 IPv6 네트워크에 접속하는 순간 자동으로 네트워크 주소를 부여받음
      • 멀티미디어의 실시간처리가 가능
    • Ad-hoc 네트워크 지원
      • Ad-hoc 네트워크를 위한 자동 네트워킹 및 인터넷 연결 지원
      • 자동으로 네트워크 환경 구성이 가능
    • 단순 헤더 적용
      • IP 패킷의 처리를 신속하게 할 수 있도록 고정 크기의 단순 헤더를 사용하는 동시에, 확장 헤더를 통해 기능에 대한 확장 및 옵션 기능의 사용이 용이한 구조
    • 실시간 패킷 추적 가능
      • 흐름 레이블(Flow Lable)을 사용하여 패킷의 흐름을 실시간 제공
  • Ad-Hoc 네트워크
    • 고정된 유선망을 가지지 않고 이동 호스트(Mobile Host)로만 이루어져 통신되는 망이다. 따라서 유선망을 구성하기 어렵거나 망을 구성한 후 단기간 사용되는 경우에 적합하며 Ad-Hoc 네트워크에서는 호스트의 이동에 제약이 없고 유선망과 기지국(Base Station)이 필요 없으므로 빠른 망 구성과 저렴한 비용의 장점이 있다.
    • 핸드폰처럼 기지국과 단말이 통신하는 형태가 아니라, 각 단말끼리 연결이 되는 형태로 멀리 떨어져 있는 단말끼리는 중간에 있는 단말들이 중계기 역할을 해주어서 통신을 하게 된다. 통신 기기 간 특별한 무선 통신을 ‘Ad-hoc 네트워킹’이라고 부른다.
    • Ad-Hoc 네트워킹은 중앙 시스템의 도움 없이 언제, 어디서나 기기 간 통신을 가능하게 해준다. 핵심은 중앙 집중화된 관리가 지원되지 않는 환경에서 이동 호스트 간의 네트워크가 가능하다는 것이다. Ad hoc과 구분하여 기존의 네트워크를 Infrastructure 네트워크라고 하는데, 우리가 주로 사용하는 이동전화망이나 무선 LAN도 Infrastructure 네트워크라고 할 수 있다.

Q. 다음은 [부서] 테이블에 대한 스키마 명세이다. [부서] 테이블의 ‘부서번호’ 컬럼은 원래 기본 키가 아니었으나 기본 키로 변경하려고 한다. ‘부서번호’ 컬럼이 기본 키가 되도록 컬럼을 수정하시오.

1
2
-- ~~ALTER COLUMN 부서번호 TO PRIMARY KEY~~ 
ALTER TABLE 부서 MODIFY 부서번호 INTEGER PRIMARY KEY;

[부서]

속성명데이터 타입기타
부서번호INTEGERPRIMARY KEY
부서명VARCHAR(50) 
전화번호VARCHAR(11) 
  • ALTER TABLE 컬럼 수정은 다음과 같다.

    1
    
      ALTER TABLE 테이블명 MODIFY 컬럼명 데이터타입[제약조건];
    
    • 테이블에 필요한 컬럼을 수정하는 문법이다.
    • 테이블 생성을 위한 CREATE 문에 제약조건을 명시 후에 ALTER를 통해 테이블 제약조건의 변경이 가능하다.
  • 제약 조건은 다음과 같다.

    • RPIMARY KEY
      • 테이블의 기본 키를 정의
      • 유일하게 테이블의 각 행을 식별
    • FOREIGN KEY
      • 외래 키를 정의
      • 참조 대상을 테이블(컬럼명)로 명시
      • 열과 참조된 테이블의 열 사이의 외래 키 관계를 적용하고 설정
    • UNIQUE
      • 테이블 내에서 얻은 유일한 값을 갖도록 하는 제약조건
    • NOT NULL
      • 해당 컬럼은 NULL 값을 포함하지 않도록 하는 제약조건
    • CHECK
      • 개발자가 정의하는 제약조건
      • 참(TRUE)이어야 하는 조건을 지정
    • DEFAULT
      • 데이터를 INSERT 할 때 해당 컬럼의 값을 넣지 않는 경우 기본값으로 설정해주는 제약조건

Q. 다음은 C언어 코드이다. 1에서 6 사이에 숫자를 10번 임의로 생성한 값을 hist라는 배열에 저장하고, 1에서 6까지 몇 번 발생했는지 출력하는 코드를 ①, ② 밑줄 친 부분을 채워 완성하시오.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <stdio.h>
#include <stdlib.h>
#include <time.h>

void main() {
	int hist[6] = {0, };
	int n, i=0;
	srand(time(NULL));
	
	do{
		i++;
		n = rand()%6 +1;
		hist[  ] += 1;
	} while(i<10);

	for(i=0; i<6; i++)
		printf("h[%d] = %d\n", i,   );
}


Q. 데이터 전송을 위해 목적지까지 갈 수 있는 여러 경로 중 최적의 경로를 설정해주는 라우터 간의 상호 통신 규약을 무엇이라 하는가?

라우팅 프로토콜(Routing Protocol)

  • 라우팅 프로토콜의 구성은 아래와 같다.

    이미지

    • OSPF란 Open Shortest Path First의 준말로, 동적 라우팅 프로토콜로 대표적인 링크 상태 라우팅 프로토콜이다. 이것에서 링크 상태 프로토콜이란, 인터넷에서 연결된 링크의 상태를 감시하여 최적의 경로를 선택한다는 것이다.

Q. 회복 기법 중 장애 발생 시 검사점 이후에 처리된 트랜잭션에 대해서만 장애 발생 이전의 상태로 복원시키는 회복 기법은 무엇인지 쓰시오.

체크 포인트(검사점) 기법(Checkpoint Recovery)

  • 회복 기법 종류는 다음과 같다.[회로체그]
    • 로그 기반 회복 기법
      • 지연 갱신 회복 기법(Deferred Update)
        • 트랜잭션이 완료되기 전까지 데이터베이스에 기록하지 않는 기법
      • 즉각 갱신 회복 기법(Immediate Update)
        • 트랜잭션 수행 중 갱신 결과를 바로 DB에 반영하는 기법
    • 체크 포인트 회복 기법(Checkpoint Recovery)
      • 장애 발생 시 검사점 이후에 처리된 트랜잭션에 대해서만 장애 발생 이전의 상태로 복원시키는 회복 기법
    • 그림자 페이징 회복 기법(Shadow Paging Recovery)
      • 데이터베이스 트랜잭션 수행 시 복제본을 생성하여 데이터베이스 장애 시 이를 이용해 복구하는 기법

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

6

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <studio.h>
void main() {
	int i, j;
	int sum=0;
	int arr[3][3];
	
	for(i=0; i<3; i++) {
		for(j=0; j<3; j++) {
			arr[i][j] = i+j;
			if( i%2 == 0 ) {
				sum += arr[i][j]
			}
			else {
				sum -= arr[i][j];
			}
		}
	}
	printf("%d", sum);
}

Q. 서버 프로그램 구현을 위해 특정 타입의 데이터베이스에 추상 인터페이스를 제공하며, 세부내용 노출 없이 데이터 조작을 수행하는 객체는 무엇인가?

DAO(Data Access Object)

  • DAO, DTO, VO의 개념은 아래와 같다.

    개념설명
    DAO(Data Access Object)특정 타입의 데이터베이스에 추상 인터페이스를 제공하는 객체로 세부내용 노출 없이 데이터를 조작하는 객체
    VO(Value Object)간단한 엔터티를 의미하는 작은 객체 가변 클래스인 DTO와 달리 고정 클래스를 가지는 객체
    DTO(Data Transfer Object)프로세스 사이에서 데이터를 전송하는 객체로 데이터 저장, 회수 외에 다른 기능이 없는 객체

Q. TCL에서 트랜잭션을 메모리에 영구적으로 저장하는 명령어는 무엇인지 쓰시오.

COMMIT

  • 트랜잭션 제어언어는 TCL(Transaction Control Language)이라고 하며, 트랜잭션의 결과를 허용하거나 취소하는 목적으로 사용되는 언어를 지칭한다.[커롤체]

    명령어설명
    커밋(COMMIT)트랜잭션 확정 트랜잭션을 메모리에 영구적으로 저장하는 명령어
    롤백(ROLLBACK)트랜잭션 취소 트랜잭션 내역을 저장 무효화시키는 명령어
    체크 포인트(CHECKPOINT)저장 시기 설정 ROLLBACK을 위한 시점을 지정하기 위한 명령어

Q. 다음은 IoT 관련 프로토콜에 대한 설명이다. () 안에 들어갈 프로토콜을 쓰시오.

CoAP(Constranied Application Protocol)

  • ()은/는 M2M 노드들 사이에서 이벤트에 대한 송수신을 비동기적으로 전송하는 REST 기반의 프로토콜이다.
  • RFC 7252에 정의한 제약이 있는 장치들을 위한 특수한 인터넷 애플리케이션 프로토콜로 단순한 웹 연동을 위해 HTTP로 쉽게 변환되도록 설계되었으며, 멀티캐스트 지원과 같은 특수한 요건을 충족하면서도 부하가 낮고, 단순한 특징이 있다.
  • CoAP는 M2M 노드들 사이에서 이벤트에 대한 송수신을 비동기적으로 전송하는 REST 기반의 프로토콜이다. CoAP는 RFC 7252에 정의한 제약이 있는 장치들을 위한 특수한 인터넷 애플리케이션 프로토콜로 단순한 웹 연동을 위해 HTTP로 쉽게 변환되도록 설계되었으며, 멀티캐스트 지원과 같은 특수한 조건을 충족하면서도 부하가 낮고, 단순한 특징이 있다.
  • 컴퓨터 네트워크에서 멀티캐스트(multicast)란 한 번의 송신으로 메시지나 정보를 목표한 여러 컴퓨터에 동시에 전송하는 것을 말한다. 이 때 망 접속 형태가 요구할 경우에 한해, 자동으로 라우터와 같은 다른 네트워크 요소들에 메시지의 복사본이 생성된다.

Q. 다음은 메모리 단편화 해결 기법에 대한 설명이다. () 안에 들어갈 용어를 쓰시오.

버디 메모리 할당(Buddy Memory Allocation), 통합(Coalescing), 압축(Compaction)

  • 메모리 단편화에는 내부 단편화와 외부 단편화가 있다.
  • 그중 외부 단편화를 해결하기 위한 기법은 3가지가 있다.
  • ( ① )은/는 요청한 프로세스 크기에 가장 알맞은 크기를 할당하기 위해 메모리를 2의 n 제곱의 크기로 분할하여 메모리에 할당하는 기법이고, ( ② )은/는 인접한 단편화 영역을 찾아 하나로 ( ② )하는 기법이다.
  • 마지막으로 ( ③ )은/는 메모리의 모든 단편화 영역을 하나로 ( ③ )하는 기법이다.
  • 외부 단편화를 해결하기 위한 기법은 아래와 같이 3가지가 있다.
    • 버디 메모리 할당(Buddy Memory Allocation)
      • 요청한 프로세스 크기에 가장 알맞은 크기를 할당하기 위해 메모리를 2의 n 제곱의 크기로 분할하여 메모리를 할당하는 기법
    • 통합(Coalescing)
      • 인접한 단편화 영역을 찾아 하나로 통합하는 기법
    • 압축(Compaction)
      • 메모리의 모든 단편화 영역을 하나로 압축하는 기법

Q. 다음은 HIPO(Hierarchy Input Process Output) CHART의 종류이다. () 안에 들어갈 용어를 쓰시오.

가시적 도표(Visual Table of Contents), 총체적 도표(Overview Diagram), 세부적 도표(Detail Diagram)

  • ( ① ): 시스템의 전체적인 기능과 흐름을 보여주는 계층(Tree) 구조도
  • ( ② ): 프로그램을 구성하는 기능을 기술한 것으로 입력, 처리, 출력에 대한 전반적인 정보를 제공하는 도표
  • ( ③ ): ( ② )에 표시된 기능을 구성하는 기본 요소들을 상세히 기술하는 도표
  • HIPO 차트의 종류는 아래와 같다.

    종류설명
    가시적 도표(Visual Table of Contents)시스템의 전체적인 기능과 흐름을 보여주는 계층(Tree) 구조도
    총체적 도표(Overview Diagram)프로그램을 구성하는 기능을 기술한 것으로 입력, 처리, 출력에 대한 전반적인 정보를 제공하는 도표
    세부적 도표(Detail Diagram)총체적 도표에 표시된 기능을 구성하는 기본 요소들을 상세히 기술하는 도표

Q. 데이터베이스 무결성 중 외래 키가 참조하는 다른 개체의 기본 키에 해당하는 값이 기본 키 값이나 NULL이어야 한다는 무결성은 무엇인가?

참조 무결성

  • 데이터베이스 무결성의 종류는 아래와 같다.

    종류설명
    개체 무결성한 엔터티에서 같은 기본 키(PK)를 가질 수 없거나, 기본 키(PK)의 속성이 NULL을 허용할 수 없음
    참조 무결성외래 키가 참조하는 다른 개체의 기본 키에 해당하는 값이 기본 키 값이나 NULL이어야 함
    속성 무결성속성의 값은 기본값, NULL 여부, 도메인(데이터 타입, 길이)이 지정된 규칙을 준수해야 함
    사용자 무결성사용자의 의미적 요구사항을 준수해야 함
    키 무결성한 릴레이션에 같은 키값을 가진 튜플들을 허용할 수 없음

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

18

1
2
3
4
l = [2, 4, 6, 8]
l.append(10)
l.remove(2)
print(l[2]+l[3])
  • 변수 l에 2, 4, 6, 8을 리스트형으로 초기화한다.
  • l.append(10)에서 10을 리스트 끝에 추가한다. 리스트는 [2, 4, 6, 8, 10]과 같다.
  • l.remove(2)에서 2를 제거한다. 리스트는 [4, 6, 8, 10]과 같다.
  • l[2]는 8, l[3]은 10이므로 8+10인 18이 화면에 출력된다.

참고 자료


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