1. 2018 클라우드 서비스 중간 고사(100)
Cloud Service
Date: 2018-04-24
1. Cloud computing과 grid computing의 차이점을 설명하시오. (20)
둘 다 distributed computing 범주에 들어가지만 지향점이 서로 다르다. Grid
computing은 원격 자원(remote resources)에 접근해 효율적으로 사용하는 부
분에 최적화되어 있다. 하지만 cloud computing은 원격 자원을 잘 구성하여
사용자에게 통합된 하나의 service로 제공함을 목적으로 한다.
2. 병렬 처리 기법 중에서 OpenMP와 MPI의 장단점을 서로 비교하시오. (10)
장점 단점
OpenMP 1) 단일 node에 있는 CPU
core를 이용하므로 빠른 병렬
화가 가능하다.
2) 자신의 node 상황만 신경
쓰면 되므로, 병렬화 개발이
쉽다.
1) CPU core 수에 한계가 있
기 때문에 병렬화를 많이 하
지 못한다.
2) 부족한 memory를 여러
thread가 나누어 써야 하므로,
memory 동기화 문제가 생긴
다.
MPI 1) 단일 node의 CPU와
memory 한계를 넘어서는 매
우 많은 core와 memory를 가
질 수 있다.
2) Distributed computing에
최적화되어 있다.
1) Node가 통신으로 연결되어
있기 때문에 실행 속도는 통
신 속도의 영향을 많이 받는
다.
2) 병렬 처리와 통신 처리를
동시에 해야 하므로, 병렬화
개발이 어렵다.
3. 요즘 개발되는 web service는 cloud computing을 주로 사용하는 이유를 4
2. 가지 이상 제시하시오. (20)
1) 초기 server 구축 비용을 현저히 낮출 수 있다.
2) 사용자가 service를 사용한 만큼만 비용을 지불할 수 있어 경제적이다.
3) Service 수요를 예측하지 못할 경우는 적은 용량으로 시작할 수 있고, 수
용에 따라 탄력적으로 용량을 조정할 수 있다.
4) 언제 어디서든, 권한을 가진 누구나 service에 접근할 수 있다.
5) 전문 업체가 제공하기 때문에 web service 구축이 매우 쉬워진다.
6) Web service 현황을 쉽게 monitoring할 수 있다.
7) Server 유지 보수에 들어가는 비용을 줄일 수 있다.
4. Cloud 요구 사항 중에서 service life cycle management 규격을 설명하시
오. (10)
사용자 요구에 따라 언제든 cloud service를 시작할 수 있고 끝낼 수 있어야
한다. 이를 실행하려면 모든 cloud service 관리가 자동화되어야 한다.
5. 배열을 입력받아 합과 평균을 구하는 code를 Node.js로 작성하려 한다.
Module 지원이 되도록 sum.js와 main.js를 완성하시오. (40)
sum.js에 2가지 기능 작성
- 합과 평균 구하는 함수
- 배열의 크기를 얻는 property: array.length
function sum(ar) {
let ans = 0;
for (i in ar) ans += ar[i];
return ans;
}
function avg(ar) {
return sum(ar) / ar.length;
}
3. exports.sum = sum;
exports.avg = avg;
main.js 작성
- 배열은 1에서 1,000까지 숫자 1,000개 생성
- 배열 끝에 원소를 추가하는 method: array.push()
- sum.js를 이용해 합과 평균 계산 결과를 함수 console.log()로 표시
const sum = require('./sum');
let ar = [];
for (let i = 1; i <= 1000; i++) ar.push(i);
console.log(sum.sum(ar));
console.log(sum.avg(ar));