클라우드 컴퓨팅은 인터넷("클라우드")을 통해 서버, 저장소, 데이터베이스, 네트워킹, 소프트웨어, 분석 등의 컴퓨팅 서비스를 제공하는 것이다. 이러한 컴퓨팅 서비스를 제공하는 회사를 클라우드 공급자라고 하며, 사용자는 특정한 서비스(새로운 앱 및 서비스 만들기, 데이터 저장, 백업 및 복구, 웹 사이트 및 블로그 호스트, 오디오 및 비디오 스트리밍, 주문형 소프트웨어 제공, 데이터의 패턴을 분석하여 예측)를 이용한 만큼 만 비용을 지불하면 되는 방식이다. 클라우드 컴퓨팅은 기업에서 IT 리소스에 대해 생각하는 전통적인 방식에서 큰 변화를 이룬 것이다.
클라우드 컴퓨팅은 인터넷("클라우드")을 통해 서버, 저장소, 데이터베이스, 네트워킹, 소프트웨어, 분석 등의 컴퓨팅 서비스를 제공하는 것이다. 이러한 컴퓨팅 서비스를 제공하는 회사를 클라우드 공급자라고 하며, 사용자는 특정한 서비스(새로운 앱 및 서비스 만들기, 데이터 저장, 백업 및 복구, 웹 사이트 및 블로그 호스트, 오디오 및 비디오 스트리밍, 주문형 소프트웨어 제공, 데이터의 패턴을 분석하여 예측)를 이용한 만큼 만 비용을 지불하면 되는 방식이다. 클라우드 컴퓨팅은 기업에서 IT 리소스에 대해 생각하는 전통적인 방식에서 큰 변화를 이룬 것이다.
1. 1
2017 Final-term Examination (100)
Architecting Smart Devices
Date: 2017-12-14
1. Android에서 SensorManager를 통해 sensor 정보를 받을 때 event listener를 사용하
는 이유를 논리적으로 설명하시오. (20)
- Sensor 정보는 거의 연속적으로 계속 수신되기 때문에, broadcast receiver가 아닌
event listener가 적절하다.
- Sensor 정보는 범용 정보가 아니고 특별한 app만 필요로 하기 때문에, 전체 app에 공
지하는 broadcast receiver 방식은 맞지 않다. 따라서 특별한 message에 특화된 event
listener가 적절하다.
2. Hard RTOS가 사용되어야 하는 응용을 하나만 예로 들고, 구체적인 이유를 설명하라.
(20)
- Hard RTOS는 기준으로 잡은 연산 실행 시간을 넘어가면 정상 결과라 할지라도 모두
error로 간주한다. 이런 특정으로 인해 주어진 시간에 정확한 연산이 필요한 응용에 사
용된다.
- 원자력 발전소 제어기: 원자력 발전소의 sensor 정보는 지연되어서는 안되는 민감한
정보이므로 이를 처리하는 제어기의 OS는 RTOS로 설계한다. 제어기 RTOS는 주어진 시
간 안에 sensor 결과를 얻지 못하면 error로 간주하고 system 경보를 발생시킨다.
- 미사일 발사 장치: 미사일은 주어진 시간안에 정해진 절차를 거쳐 발사되므로 RTOS를
사용해야 한다. 만약 주어진 시간에 정보 처리를 못하여 발사 진행을 못한다면 폭발 부
담으로 인해 system을 정지시키고 경보를 발생시킨다.
3. Bluetooth를 “ad hoc piconet”으로 표현하기도 한다. 이를 구체적으로 설명하라. (20)
- Bluetooth는 network 구성을 미리 정하지 않고, 상황에 맞추어 network 구성을 변경
할 수 있다. 따라서 Bluetooth network은 “ad hoc”이란 특성을 가진다. 여기서 “ad hoc”
은 즉흥적이란 뜻이다.
- Bluetooth network은 최대 8개 device만으로 구성되어야 하므로 network의 크기가 크
2. 2
지 않다. Network 분야에서는 매우 작은 network을 말할 때 piconet이란 용어를 사용하
므로 Bluetooth network은 piconet의 일종이다.
4. 다음을 Android code로 구현하라. Code는 짧을수록 가산점. (40)
Service를 상속받아 만든 class PhoneStateService를 실행. Context는 MainActivity.this
로 가정. (10)
Intent intent = new Intent(MainActivity.this, PhoneStateService.class);
MainActivity.this.startService(intent);
BluetoothAdapter를 생성하고, Bluetooth가 주변 검색(discovery) 중이라면 검색을 중
지한 후 검색을 실행. 검색 중이 아니면 바로 검색을 실행. (15)
BluetoothAdapter bthAdapter = BluetoothAdpater.getDefaultAdapter();
if (bthAdapter.isDiscovering()) bthAdapter.cancelDiscovery();
bthAdapter.startDiscovery();
GPS를 이용한 위치 정보를 얻기 위해 LocationManager에 Event Listener를 등록.
Context는 MainActivity.this, Event Listener는 MyLocationListener로 가정, 나머지 필요
한 parameter는 임의로 설정. (15)
LocationManager locationManager =
MainActivity.this.getSystemService(Context.LOCATION_SERVICE);
MyLocationListener myLocationListener = new MyLocationListener();
long minTime = 1000;
float minDistance = 0;
locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, minTime,
minDistance, myLocationListener);