포스트

모의고사 15회

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

5 Force

마이클 포터의 ()분석은 사업경쟁요인 분석을 통하여 경쟁의 강도를 알아내고 수익성을 추출할 때 유용하게 사용된다. () 분석은 소비자의 구매력, 생산자의 굽매력, 대체품에 대한 위험, 진입장벽이라는 요인을 통해 어떤 잠재적 경쟁자가 있는지에 대한 경쟁력분석 도구이다.

  • IT 업무 프로세스 관련 용어 중 5 Force, 6시그마(Six Sigma)는 다음과 같다.
    • 5 Force
      • 사업경쟁요인 분석을 통하여 경쟁의 강도를 알아내고 수익성을 추출할 때 유용하게 사용되는 도구로 마이클 포터에 의해 처음 소개됨
      • 소비자 구매력, 생산자 구매력, 대체품에 대한 위험, 진입장벽(잠재적 진입자의 위험), 기존 기업 간의 경쟁이라는 요인을 통해 어떤 잠재적 경쟁자가 있는지에 대한 경쟁력 분석 도구임

      이미지

    • 6시그마(Six Sigma)
      • 모든 프로세스에 적용할 수 있는 전방위 경영혁신 운동으로 미국에서 새롭게 각광받던 품질관리법으로 경영성과 평균 및 산포(분산)를 동시에 개선하는 방법
      • 모토로라에 근무하던 마이클 해리에 의해 1687년 창안됨

Q. 건물에 IT 기술을 활용하여 전기, 공조, 방범, 방재 같은 여러 건축설비를 관리하는 시스템으로 건물에서 사용하는 여러 가지 설비를 IT 기술을 활용하여 관리하고 건물의 에너지 절감, 인건비 절약은 물론 건물의 수명 연장도 가능하게 하는 시스템은 무엇인가?

건물에너지관리시스템(BEMS; Building Energy Management System)

  • BEMS란 건물 운영의 에너지 효율화 및 온실가스 배출량 감축을 위한 건물에너지관리시스템(BEMS; Building Energy Management System)이다.
  • BEMS는 건물에 IT 기술을 활용하여 전기, 공조, 방범, 방재 같은 여러 건축설비를 관리하는 시스템으로 건물에서 사용하는 여러 가지 설비를 IT 기술을 활용하여 관리하고 건물의 에너지 절감, 인건비 절약은 물론 건물의 수명 연장도 가능하게 한다.

Q. ( ① )은/는 다중프로세싱 환경에서 두 개 이상의 프로세스가 특정 자원 할당을 무한정 대기하는 상태로 프로세스가 자원을 배타적으로 점유하여 다른 프로세스가 그 자원을 사용할 수 없는 상태인 ( ② )와/과 한 프로세스가 자원을 점유하고 있으면서 또 다른 자원을 요청하여 대기하고 있는 상태인 ( ③ )이/가 있다. () 안에 들어갈 용어를 쓰시오.

교착상태(Deadlock), 상호배제(Mutual Exclusion), 점유와 대기(Hold & Wait)

  • 프로세스의 교착상태 관련 용어는 다음과 같다.
    • 교착상태(Deadlock)
      • 다중프로세싱 환경에서 두 개 이상의 프로세스가 특정 자원 할당을 무한정 대기하는 상태
    • 상호배제(Mutual Exclusion)
      • 프로세스가 자원을 배타적으로 점유하여 다른 프로세스가 그 자원을 사용할 수 없는 상태
    • 점유와 대기(Hold & Wait)
      • 한 프로세스가 자원을 점유하고 있으면서 또 다른 자원을 요청하여 대기하고 있는 상태

Q. 원거리 통신망(WAN; Wide Area Network)는 넓은 지리적 거리∙장소를 넘나드는 네트워크이다. () 안에 들어갈 원거리 통신망 연결 기술에 대해 쓰시오.

전용 회선 방식(Dedicated Line), 회선 교환 방식(Circuit Switching), 패킷 교환 방식(Packet Switching)

  • ( ① )은/는 통신 사업자가 사전에 계약을 체결한 송신자와 수신자끼리만 데이터를 교환하는 방식으로 점대점 프로토콜(PPP), HDLC 프로토콜이 쓰인다.
  • ( ② )은/는 물리적 전용선을 활용하여 데이터 전달 경로가 정해진 후 동일 경로로만 전달되는 방식으로 데이터를 동시에 전송할 수 있는 양을 의미하는 대역폭이 고정되고 안정적인 전송룔을 확보할 수 있고, ISDN 프로토콜이 쓰인다.
  • ( ③ )은/는 전체 메시지를 각 노드가 수용할 수 있는 크기(패킷)로 잘라서 보내는 방식으로 X.25, 프레임 릴레이 프로토콜이 쓰인다.
  • 원거리 통신망 연결 기술은 다음과 같다.
    • 전용 회선 방식(Dedicated Line)
      • 전용 회선 방식은 통신 사업자가 사전에 계약을 체결한 송신자와 수신자끼리만 데이터를 교환하는 방식으로 점대점 프로토콜(PPP), HDLC 프로토콜이 쓰임
    • 회선 교환 방식(전기의 회로, Circuit Switching)
      • 물리적 전용선을 활용하여 데어터 전달 경로가 정해진 후 동일 경로로만 전달되는 방식으로 데이터를동시에 전송할 수 있는 양을 의미하는 대역폭이 고정되고 안정적인 전송률을 확보할 수 있고, ISDN 프로토콜이 쓰임
    • 패킷 교환 방식(Packet Switching)
      • 전체 메시지를 각 노드가 수용할 수 잇는 크기(패킷)로 잘라서 보내는 방식으로 X.25, 프레임 릴레이 프로토콜이 쓰임
  • ISDN(종합 정보 통신망, Integrated Service Digital Network)
    • 모든 정보를 디지털 신호로 만들어 하나의 네트워크를 통하여 문자, 그림, 음성, 화상, 비디오, 팩시밀리, 전신 등과 같은 모든 종류의 서비스를 제공하는 통신망이다.
    • ISDN에 들어가는 수준의 인터페이스는 기본 속도 인터페이스(BRI: Basic Rate Interface)이며 128 킬로비트의 서비스를 표준 전화 구리선을 통해 전달한다.
    • 종합 정보 통신망은 기존의 공중전화망 인프라에서 고속의 디지털 통신을 하기 위한 통신 규약이다. 기존에 깔아 둔 구리선 기반의 전화 인프라, 즉 두 가닥의 구리선으로 최대 128kbps라는 통신 속도를 낼 수 있는 규약으로, 기껏해야 56kbps(7KB/s)가 고작인 모뎀을 대체하는 고속 규격이다.

Q. 학생 테이블에 데이터 타입이 VARCHAR(11)이면서 UNIQUE 제약조건이 추가된 ‘전화번호’라는 컬럼을 추가하는 쿼리를 작성하시오.

1
ALTER TABLE 학생 ADD 전화번호 VARCHAR(11) UNIQUE;

[학생]

속성명데이터 타입
학번INTEGER
성명VARCHAR(10)
과목명VARCHAR(20)
  • ALTER TABLE은 테이블을 수정하는 명령이다.
  • ALTER TABLE에서 컬럼을 추가하기 위해서는 ADD라는 키워드를 쓰고 문법은 다음과 같다.

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

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

Animal50

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
abstract class Animal {
	abstract void getAge();
	void show() {
		System.out.print("Animal");
	}
}
class Dog extends Animal {
	void getAge() {
		System.out.print("50");
	}
}
public class Soojebi {
	public static void main(String[] args) {
		Dog d = new Dog();
		d.show();
		d.getAge();
	}
}
  • Animal 클래스와 Dog 클래스는 상속 관계이다.
  • Animal 클래스는 추상 클래스로 추상 메서드인 getAge는 선언만 하고 실제 구현은 Dog 클래스의 getAge에서 한다. show 메서드는 화면에 “Animal”를 출력한다.
  • Dog 클래스에는 getAge 메서드를 구현하며 “50”을 화면에 출력한다.
  • main 메서드에서 Dog 클래스의 객체 d를 선언하고 Dog() 생성자 메서드를 호출하여 객체를 생성한다. d.show()를 호출하여 “Animal”을 화면에 출력하고 d.getAge()를 호출하여 “50”을 화면에 출력한다.

Q. 소프트웨어 개발 보안 용어 중 위협이 발생하기 위한 사전 조건으로 시스템의 정보 보증을 낮추는 데 사용되는 약점은 무엇이라 하는가?

취약점(Vulnerability)

  • 소프트웨어 개발 보안의 주요 용어는 다음과 같다. [자위취위]
    • 자산(Assets)
      • 조직의 데이터 또는 조직의 소유자가 가치를 부여한 대상
      • 예: 서버의 하드웨어, 기업의 중요 데이터
    • 위협(Threat)
      • 조직이나 기업의 자산에 악영향을 끼칠 수 있는 사건이나 행위
      • 예: 해킹, 삭제, 자산의 불법적인 유출, 위/변조, 파손
    • 취약점(Vulnerability)
      • 위협이 발생하기 위한 사전 조건으로 시스템의 정보 보증을 낮추는 데 사용되는 약점
      • 예: 평문 전송, 입력값 미검증, 비밀번호를 공유
    • 위험(Risk)
      • 위협이 취약점을 이용하여 조직의 자산 손실 피해를 가져올 가능성

Q. 다음이 설명하는 애플리케이션 공격 기법을 쓰시오.

Slowloris(Slow HTTP Header DoS)

HTTP GET 메서드를 사용하여 헤더의 최종 끝을 알리는 개행 문자열인 \r\n\r\n(Hex: 0d 0a 0d 0a)을 전송하지 않고, \r\n(Hex: 0d 0a)만 전송하여 대상 웹 서버와 연결 상태를 장시간 지속시키고 연결 자원을 모두 소진시키는 서비스 거부 공격

  • 애플리케이션 공격 기법의 유형은 다음과 같다.
    • HTTP GET 플러딩(Flooding)
      • HTTP 캐시 옵션을 조작하여 캐싱 서버가 아닌 웹 서버가 직접 처리하도록 유도, 웹 서버 자원을 소진시키는 서비스 공격 거부
    • Slowloris(Slow HTTP Header DoS)
      • HTTP GET 메서드를 사용하여 헤더의 최종 끝을 알리는 개행 문자인 \r\n\r\m(Hex: 0d 0a 0d 0a)을 전송하지 않고, \r\n(Hex: 0d 0a)만 전송하여 대상 웹 서버와 연결 상태를 장시간 지속시키고 연결 자원을 모두 소진시키는 서비스 거부 공격
    • RUDY(Slow HTTP POST DoS)
      • 요펑 헤더의 Content-length를 비정상적으로 크게 설정하여 메시지 바디 부분을 매우 소량으로 보내 계속 연결 상태를 유지시키는 공격
    • Slow Read Attack
      • TCP 윈도 크기와 데이터 처리율을 감소시킨 상태에서 (Zero Window Packet) 다수 HTTP 패킷을 지속적으로 전송하여 대상 웹 서버의 연결 상태가 장시간 지속, 연결 자원을 소진시키는 서비스 거부 공격
    • Hulk DoS
      • 공격자가 공격 대상 웹사이트 웹 페이지 주소(URL)를 지속적으로 변경하면서 다량으로 GET 요청을 발생시키는 서비스 거부 공격
    • Hash DoS
      • 조작된 많은 수의 파라미터를 POST 방식으로 웹 서버로 전달하여 다수의 해시 충돌(Collision)을 발생시켜서 자원을 소모시키는 서비스 거부 공격

Q. 다음은 애플리케이션 성능 측정 지표에 대한 설명이다. () 안에 들어갈 용어를 쓰시오.

경과 시간(Turnaround Time)

()은/는 애플리케이션에 사용자 요구를 입력한 시점부터 트랜잭션을 처리 후 그 결과의 출력이 완료할 때까지 걸리는 시간이다.

  • 애플리케이션 성능 측정 지표는 다음과 같다. [처응경자]
    • 처리량(Throughput, 스루풋)
      • 애플리케이션이 주어진 시간에 처리할 수 있는 트랜잭션의 수
      • 웹 애플리케이션의 경우 시간당 페이지 수로 표현
    • 응답 시간(Response Time)
      • 사용자의 입력이 끝난 후, 애플리케이션의 응답 출력이 개시될 때까지의 시간
      • 애플리케이션의 경우 메뉴 클릭 시 해당 메뉴가 나타나기까지 걸리는 시간
    • 경과 시간(Turnaround Time)
      • 애플리케이션에 사용자가 요구를 입력한 시점부터 트랜잭션을 처리 후 그 결과의 출력이 완료할 때까지 걸리는 시간
    • 자원 사용률(Resource Usage)
      • 애플리케이션이 트랜잭션을 처리하는 동안 사용하는 CPU 사용량, 메모리 사용량, 네트워크 사용량

Q. 다음은 [점수] 테이블이다. 학년별 점수의 평균, 반별 점수의 평균을 구하기 위한 쿼리를 작성하시오.

1
2
3
SELECT 학년, , AVG(점수) AS 점수
FROM 점수
GROUP BY GROUPING SETS(학년, );

[점수]

학년이름점수
11태종90
11정종70
12태조80
12세종100
21문종70
22단종80
22세조60

[결과]

학년점수
 176.666667
 280
1 85
2 70
  • 집계 대상 컬럼들에 대한 개별 집계를구할 수 있으며, ROLLUP이나 CUBE와는 달리 컬럼 간 순서와 무관한 결과를 얻을 수 있는 그룹 함수이다.
  • GROUPING SETS를 이용해 다양한 소계 집합을 만들 수 있다.
  • ORDER BY를 사용하여 집계 대상 그룹과의 표시 순서를 조정하여 체계적으로 보여줄 수 있다.
  • GROUPING SETS 함수 문법은 다음과 같다.

    1
    2
    3
    4
    5
    6
    
      SELECT 컬럼1, 컬럼2, ..., 집계 함수
      FROM 테이블명
      [WHERE ...]
      GROUP BY [컬럼 ...] GROUPING SETS(컬럼명a, ...)
      [HAVING ...]
      [ORDER BY ...]
    
    • 개별 집계를 구할 수 있으며, ROLLUP 계층 구조와 달리 평등한 관계라 순서에 상관없이 동일한 결과

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

-2

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

print(count)
  • count는 0, num은 10으로 초기화한다.
  • for 반복문에서는 a는 1부터 num+1까지 반복을 수행한다.
  • 만약 num이 a와 같으면 count와 1을 더한 결과를 count에 대입한다.
  • 만약 num이 a로 나눈 나머지가 0과 같으면 count와 1을 뺀 결과를 count에 대입한다.
  • print 함수를 이용하여 count 값을 화면에 출력한다.

Q. 웹 서비스명, 제공 위치, 메시지 포맷, 프로토콜 정보 등 웹서비스에 대한 상세 정보가 기술된 XML 형식으로 구현되어 있는 언어는 무엇인가?

WSDL(Web Services Description Language)

  • WSDL의 개념도는 다음과 같다.

이미지

  • WSDL(Web Services Description Language)
    • WSDL은 네트워크 연결된 XML 기반 서비스를 설명하는 표준 스펙이다. 기본 런타임 구현과 상관없이 시스템에 대한 기본 요청 형식을 설명하는 간단한 방법을 서비스 제공자에게 제공한다.
    • WSDL은 문서 지향 또는 프로시저 지향 정보를 포함하는 메시지에서 작동될 일련의 endpoints 세트로 네트워크 서비스를 설명하는 XML 형식을 정의한다. 오퍼레이션 및 메시지는 먼저 추상적으로 설명된 다음 구체적 네트워크 프로토콜 및 메시지 형식에 바인드되어 엔드포인트를 정의한다. 관련된 구체적 엔드포인트는 추상 엔드포인트(서비스)로 결합된다. 통신에 사용되는 메시지 형식 또는 네트워크 프로토콜과 상관없이 엔드포인트 및 해당 메시지에 대한 설명이 가능하도록 WSDL을 확장할 수 있다. 즉, 인터페이스는 XML 스키마를 사용하여 추상적으로 정의된 다음 프로토콜에 적합한 구체적 표시에 바인드된다.
    • WSDL을 통해 서비스 제공자는 다음의 웹 서비스 특성을 지정할 수 있다.
      • 웹 서비스 이름 및 주소 지정 정보
      • 웹 서비스의 공용 오퍼레이션에 액세스할 때 사용되는 프로토콜 및 인코딩 유형
      • 웹 서비스 인터페이스를 구성하는 오퍼레이션, 매개변수 및 데이터 유형과 같은 유형 정보
    • WSDL 문서를 사용하여 개발자는 애플리케이션을 인터넷에 네트워크 액세스 가능 서비스로 공개한다. UDDI 및 WSIL을 통해 다른 애플리케이션에서 WSDL 문서를 발견하고 이와 바인드하여 트랜잭션을 실행하거나 다른 비즈니스 프로세스를 수행할 수 있다.
    • WSDL 문서는 네트워크 엔드포인트 또는 포트 콜렉션으로 서비스를 정의한다. WSDL에서 엔드포인트 및 메시지의 추상 정의는 구체적 네트워크 배치 또는 데이터 형식 바인딩과 구분된다. 이렇게 하면 추상 정의, 즉 교환 중인 데이터의 추상 설명인 메시지 및 오퍼레이션의 추상 콜렉션인 포트 유형을 재사용할 수 있다.

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

ParentParent

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
class Parent {
	String name="Parent";
	public Parent() {
		System.out.print(this.name);
	}
}
class Child extends Parent {
	public Child(String name) {
		System.out.print(this.name);
	}
}
public class Soojebi {
	public static void main(String[] args) {
		child c = new Child("Soojebi");
	}
}
  • Child 클래스의 생성자인 Child 생성자에서 파라미터로 “Soojebi”를 전달한다.
  • Parent 클래스는 Child 클래스의 부모 클래스이고 name 멤버변수에는 “Parent”로 값이 초기화되어 있다.
  • Partent 클래스와 Child 클래스는 상속 관계에 있으므로 부모 클래스인 Parent 클래스의 생성자 메서드인 Parent가 호출되고 화면에 “Parent”를 출력한다.
  • Parent 생성자 호출이 되고 난 이후 자식 클래스인 Child 클래스가 호출되어 화면에는 this.name인 “Parent”를 출력한다.

Q. 주요 연계 기술 중 하나로 사용되는 API(Application Programming Interface)에 대해 약술하시오.

API는 응용 프로그램에서 사용할 수 있도록, 운영체제나 프로그래밍 언어가 제공하는 기능을 제어할 수 있게 만든 인터페이스이다.

  • API는 특정 사이트에서 데이터를 공유할 경우, 데이터를 요청하고 제공받는 것에 대한 규격을 정해놓은 인터페이스라고도 할 수 있다.

Q. [결과] 테이블처럼 되도록 [학생] 데이터의 내용을 삭제하는 SQL 문을 작성하시오.

1
DELETE FROM 학생 WHERE 수강과목 = '유체역학';

[학생]

학번이름성별수강과목
100김성민알고리즘
200이준호알고리즘
300김민영유체역학
400안정신유체역학
500신영훈유체역학

[결과]

학번이름성별수강과목
100김성민알고리즘
200이준호알고리즘
  • DELETE는 데이터의 내용을 삭제할 때 사용하는 명령어다.

    1
    
      DELETE FROM 테이블명 WHERE 조건;
    
    • 모든 레코드를 삭제할 때는 WHERE절 없이 DELETE를 사용
    • 레코드를 삭제해도 테이블 구조는 남아 있어서 디스크에서 테이블을 완전히 삭제하는 DROP 명령과는 다름

Q. 국제 표준화 기구인 ISO(International Standardization Organization)에서 개발한 컴퓨터 네트워크 프로토콜 디자인과 통신을 계층으로 나누어 설명한 개방형 시스템 상호 연결 모델은 무엇인가?

OSI(Open System Interconnection) 7계층

  • 국제 표준화 기구인 ISO(International Standardization Organization)에서 개발한 컴퓨터 네트워크 프로토콜 디자인과 통신을 계층으로 나누어서 설명한 개방형 시스템 상호 연결 모델은 OSI 7계층이다.

Q. 성능 테스트 유형 중 ( ① )은/는 시스템에 부하를 계속 증가시키면서 시스템의 임계점을 찾는 테스트이고, ( ② )은/는 시스템 처리능력 이상의 부하, 즉 임계점 이상의 부하를 가하며 비정상적인 상황에서 시스템의 동작 상태를 확인하는 테스트이다. 또한 ( ③ )은/는 짧은 시간에 사용자가 몰릴 때 시스템의 반응 측정 테스트이다. () 안에 들어갈 테스트 유형을 쓰시오.

부하 테스트(Load Testing), 강도 테스트(Stress Testing), 스파이크 테스트(Spike Testing)

  • 성능 테스트 유형은 다음과 같다.

    유형설명
    부하 테스트(짐, Load Testing)시스템에 부하를 계속 증가시키면서 시스템의 임계점 (The Critical Point)을 찾는 테스트
    강도 테스트(Stress Testing)시스템 처리능력 이상의 부하, 즉 임계점 이상의 부하를 가하여 비정상적인 상황에서 시스템의 동작 상태를 확인하는 테스트
    스파이크 테스트(Spike Testing)짧은 시간에 사용자가 몰릴 때 시스템의 반응을 측정하는 테스트
    내구성 테스트(Endurance Testing)오랜 시간 동안 시스템에 높은 부하를 가하여 시스템의 반응을 측정하는 테스트

Q. 다음은 소프트웨어 아키텍처 프레임워크 구성요소에 대한 설명이다. () 안에 들어갈 용어를 쓰시오.

관심사(Concerns), 관점(Viewpoint)

소프트웨어 아키텍처 프레임워크 구성요소 중 ( ① )은/는 시스템에 대해 이해관계자들이 서로 다른 의견과 목표이고, ( ② )은/는 이해관계자들이 서로 다른 역할이나 책임으로 시스템이나 산출물들에 대해서 보고 싶은 시점이다.

  • 소프트웨어 아키텍처 프레임워크 구성요소는 다음과 같다.
    • 아키텍처 명세서(Architectural Description)
      • 아키텍처를 기록하기 위한 산출물들
      • 이해관계자들의 시스템에 대한 관심을 관점에 맞추어 작성한 뷰로 표현
      • 개별 뷰, 뷰 개괄 문서, 인터페이스 명세 등이 있음
    • 이해관계자(Stakeholder)
      • 시스템 개발에 관련된 모든 사람과 조직
      • 최종 사용자, 고객, 개발자, 프로젝트 관리자, 유지보수자, 마케팅 담당자 등을 포함
    • 관심사(Concerns)
      • 시스템에 대해 이해관계자들의 서로 다른 의견과 목표
        • 사용자 입장: 기본적 기능, 신뢰성, 보안, 사용성 등의 품질
        • 유지보수자 입장: 유지보수의 용이성
        • 개발자: 적은 비용과 인력으로 개발
    • 관점(Viewpoint)
      • 개별 뷰를 개발할 때 토대가 되는 패턴이나 양식
      • 이해관계자들이 서로 다른 역할이나 책임으로 시스템이나 산출물들에 대해 보고 싶은 관점
    • 뷰(View)
      • 서로 관련 있는 관심사들의 집합이라는 관점에서 전체 시스템을 표현
      • 시스템에 대한 아키텍처 설명에는 하나 이상의 뷰로 구성
    • 근거(Rationale)
      • 아키테처 결정 근거
      • 회의 결과, 보고 결과
    • 목표(Mission)
      • 환경 안에서 한 명 이상의 이해관계자들이 의도하는 시스템의 목적, 사용, 운영 방법
    • 환경(Environment)
      • 시스템에 영향을 주는 요인으로 개발, 운영 등의 외부 요인 등으로 시스템에 영향을 주는 요인
    • 시스템(System)
      • 각 애플리케이션, 서브 시스템, 시스템의 집합, 제품군 등의 구현체
  • “Stake는 비즈니스나 기술, 사회적 목표 달성을 위한 사업(또는 프로젝트)에서의 이익(interest) 또는 몫(share)으로 설명할 수 있다.”

Q. ( ① )은/는 관계형 데이터 모델에서 데이터의 중복성을 제거하여 ( ② )을/를 방지하고, 데이터의 일관성과 정확성을 유지하기 위해 무손실 분해하는 과정이고, ( ② )은/는 데이터의 중복성으로 인해 릴레이션을 조작할 때 발생하는 비합리적 현상이다. () 안에 들어갈 용어를 쓰시오.

정규화(Normalization), 이상 현상(Anomaly)

  • 정규화와 이상 현상은 다음과 같다.

    용어설명
    정규화(Normalization)관계형 데이터 모델에서 데이터의 중복성을 제거하여 이상 현상을 방지하고, 데이터의 일관성과 정확성을유지하기 위해 무손실 분해하는 과정
    이상 현상(Anomaly)데이터의 중복성으로 인해 릴레이션을 조작할 때 발생하는 비합리적 현상

Q. 다음은 C언어 코드이다. 밑줄친 곳에 들어갈 가장 적합한 답을 쓰시오.

ch==’0’

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <stdio.h>
void main() {
	char ch, str[] = "12345000"
	int i, j;
	
	for(i=0; i<8; i++) {
		ch = str[i];
		if(  )
			break;
	}
	
	for(j=0; j<i; j++) {
		i--;
		ch = str[j];
		str[j] = str[i];
		str[i] = ch;
	}
	
	**print("%s", str);**
}

[출력결과]

1
54321000
  • 문자(char) 타입 변수 ch를 선언한다.
  • 문자열 타입 배열 변수 str을 선언하고 “12345000”으로 초기화한다.
  • 정수형 변수 i, j를 선언한다.
  • for 반복문에서 i는 0부터 8보다 작을 때까지 i 값을 1씩 증가시키며 str[i] 값을 ch에 대입한다.

    i01234567
    str12345000
          break  
  • for 반복문이 종료되고 i 값은 5가 된다.
  • for 반복문은 j 값이 0부터 i보다 작을 때까지 반복을 수행한다.
  • str[j] 값을 ch에 대입하고 str[i] 값을 str[j]에 대입하고 ch 값을 str[i]에 대입하여 두 값을 교환(swap)한다. i 값을 1 감소시킨다.

    j01234
    i432  
    str[j]str[0]=1str[1]=2str[3]=3  
    srt[i]str[4]=5str[3]=4str[2]=3  
    str523410005432100054321000  
  • 화면에 str 배열의 값인 “54321000”을 출력한다.


참고 자료


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