클라우드 컴퓨팅은 인터넷("클라우드")을 통해 서버, 저장소, 데이터베이스, 네트워킹, 소프트웨어, 분석 등의 컴퓨팅 서비스를 제공하는 것이다. 이러한 컴퓨팅 서비스를 제공하는 회사를 클라우드 공급자라고 하며, 사용자는 특정한 서비스(새로운 앱 및 서비스 만들기, 데이터 저장, 백업 및 복구, 웹 사이트 및 블로그 호스트, 오디오 및 비디오 스트리밍, 주문형 소프트웨어 제공, 데이터의 패턴을 분석하여 예측)를 이용한 만큼 만 비용을 지불하면 되는 방식이다. 클라우드 컴퓨팅은 기업에서 IT 리소스에 대해 생각하는 전통적인 방식에서 큰 변화를 이룬 것이다.
1. 1
사물인터넷(Internet of Things) 서비스와 클라우드
클라우드란?
클라우드 컴퓨팅은 인터넷("클라우드")을 통해 서버, 저장소, 데이터베이스, 네트워킹, 소프트웨어,
분석 등의 컴퓨팅 서비스를 제공하는 것이다. 이러한 컴퓨팅 서비스를 제공하는 회사를 클라우드
공급자라고 하며, 사용자는 특정한 서비스(새로운 앱 및 서비스 만들기, 데이터 저장, 백업 및 복
구, 웹 사이트 및 블로그 호스트, 오디오 및 비디오 스트리밍, 주문형 소프트웨어 제공, 데이터의
패턴을 분석하여 예측)를 이용한 만큼 만 비용을 지불하면 되는 방식이다. 클라우드 컴퓨팅은 기
업에서 IT 리소스에 대해 생각하는 전통적인 방식에서 큰 변화를 이룬 것이다.
클라우드 컴퓨팅 서비스의 장점
쿠팡을 비롯한 많은 IT 기업들이 회사 IT 인프라를 클라우드로 이전하고 있다. 잘 정립된 클라우
드 컴퓨팅 전략으로 새 시스템을 신속하게 적용하고, 혁신적인 디지털 변혁 전략을 가속화 한 좋
은 사례는 많다. 클라우드를 추진하는 의도와 상관 없이, 미흡한 계획과 확실한 정보에 근거를 두
지 않은 전략은 기업에 바람직하지 않은 결과를 초래할 수 있다. 아이러니하게도, 클라우드 모델
은 그 특성상 클라우드가 특정 워크로드와 사용 사례에 적합한지 주의를 기울여 판단하지 않을
때 가장 큰 피해를 초래한다. 요기서는 클라우드 서비스를 이용하는 것은 어떤 면에서 좋은지 살
펴보자.
1. 비용
클라우드 컴퓨팅을 사용하면 하드웨어 및 소프트웨어를 구입하고 온사이트 데이터 센터를 설정
및 실행(서버 랙, 전원 및 냉각에 사용되는 상시 전기, 인프라를 관리하는 IT 전문가)하는 자본 지
출이 없어집니다. 비용이 빠르게 절감됩니다.
2. 속도
대부분의 클라우드 컴퓨팅 서비스는 주문형 셀프 서비스로 제공되므로 많은 양의 컴퓨팅 리소스
도 일반적으로 몇 번의 마우스 클릭으로 몇 분 만에 프로비전될 수 있어 기업에 많은 유연성이
제공되며 기업은 용량 계획 부담을 덜 수 있습니다.
3. 뛰어난 확장성
클라우드 컴퓨팅 서비스의 이점으로는 탄력적으로 확장하는 기능이 있습니다. 클라우드 용어에서
이는 바로 필요한 때에 적절한 지리적 위치에서 대략적인 컴퓨팅 성능, 저장소, 대역폭 등 적절한
양의 IT 리소스를 제공하는 것을 의미합니다.
4. 생산성
2. 2
일반적으로 온사이트 데이터 센터에는 하드웨어 설치, 소프트웨어 패치 및 기타 시간이 오래 걸
리는 IT 관리 작업 등 많은 "래킹과 스태킹(racking and stacking)"이 필요합니다. 클라우드 컴퓨팅
을 사용하면 이러한 작업의 상당수가 불필요해지므로 IT 팀은 더 중요한 비즈니스 목표를 달성하
는 데 시간을 투자할 수 있습니다.
5. Performance
최대 규모의 클라우드 컴퓨팅 서비스가 최신 세대의 빠르고 효율적인 컴퓨팅 하드웨어로 정기적
으로 업그레이드되는 보안 데이터 센터의 전 세계 네트워크에서 실행됩니다. 따라서 응용 프로그
램의 네트워크 대기 시간이 줄어들고 더 큰 규모의 경제를 이룰 수 있는 등 단일 회사 데이터 센
터와 비교해 몇 가지 이점이 제공됩니다.
6. 안정성
클라우드 컴퓨팅을 사용하면 클라우드 공급자 네트워크의 여러 중복 사이트에 데이터를 미러할
수 있으므로 데이터 백업, 재해 복구 및 비즈니스 연속성을 더 쉽게 수행할 수 있으며 비용도 덜
듭니다.
클라우드 서비스
기업들은 클라우드를 이용해 인프라와 플랫폼을 구축하는데 들어가는 비용과 시간을 줄이면서 사
물들 사이의 네트워크를 빠르게 구축할 수 있다. 역시 클라우드에서 제공되는 빅데이터 분석을
통해 네트워크에서 수집한 정보를 분석하고 이 정보를 가지고 이전에는 제공할 수 없었던 서비스
를 고객에게 전달 할 수 있다. 결국 클라우드는 IoT 성장에 가속도를 더하게 될 것이다. 스마트
IoT 시스템(라즈베리파이 Gateway)에서 클라우드를 이용하는 방법은 여러 가지가 있다. 서비스 제
공업체도 많이 있지만 여기서는 KT IoT Makers 를 이용하는 방법을 실제로 Weather Station과 연
결하여 서비스를 제공하는 방법을 설명한다. (참고 http://iotmakers.olleh.com/)
olleh GiGA IoTMakers 이란?
IoTMakers는 IoT Player들이 쉽게 IoT생태계에 참여할 수 있도록 지원하는 KT의 개방형 IoT 플랫
폼이라고 말할 수 있다. IoTMakers를 통해서 손쉽게 IoT 디바이스를 연결하여 테스트 할 수 있고,
수집된 데이터를 관리할 수 있고, 제공되는 OPEN API를 통하여 IoT 서비스를 만들 수 있도록 구
성하였다.
IoTMakers 제공 기능
표준 통신 프로토콜 지원 - KT 표준 I/F, 국제 표준 프로토콜 및 SDK의 제공으로 다양한 디바
이스와 센서의 손쉬운 연동을 지원.
가상 디바이스 시뮬레이션 - 실제 디바이스가 없는 경우에도 가상의 데이터를 발생시켜 디바
3. 3
이스 연결 정보 수집을 테스트할 수 있도록 가상 디바이스 시뮬레이터를 제공.
디바이스 복제 - 디바이스 복제 기능을 통해 동일한 디바이스의 다건 등록이 쉽게 가능.
디바이스 관리 - 자신이 등록한 디바이스와 태그 스트림을 관리하고 디바이스로부터 수집된
데이터를 로그형식, 차트형식으로 디스플레이.
GUI 기반 이벤트 및 워크플로우 설정 - GUI 기반의 에디터를 통해 이벤트와 워크플로우를 쉽
게 설정.
대시보드를 통한 모니터링 - 나의 대시보드를 통해 디바이스로부터 수집되는 실시간 데이터를
모니터링.
공개 디바이스 - 공개 디바이스를 통해 타 이용자가 등록한 디바이스로부터 수집되는 태그 스
트림 데이터, 이벤트 정보들을 이용하여 나만의 IoT 서비스를 제작.
Open API - IoTMakers가 제공하는 OPEN API를 직접 테스트해보고 사용하여 다양한 IoT 서비스
를 개발 가능.
APP SDK 제공 - IoTMakers가 제공하는 iOS SDK, Android SDK, Web SDK를 통해 사용자의 필요
에 맞는 앱 제작 가능.
공개 앱 - 공개 앱을 통해 타 이용자의 IoT idea를 경험할 수 있도록 공유 가능.
IoTMakers 개발 절차는 아래와 같다. 이러한 절차를 단계적으로 간략하게 설명한다.
4. 4
1. 디바이스 등록
사용자가 클라우드 서비스를 이용할 대상을 등록하는 단계이다. 디바이스와 센서들을 등록한다.
디바이스 정보는 디바이스명, 아이디, 패스워드를 사용자가 지정하고, Gateway가 사용하는 프로토
콜을 지정하면 된다. 아래는 디바이스의 등록 정보를 보여준다.
2. 디바이스 연결
디바이스 등록을 완료하였으면 실제 디바이스를 연결해볼 수 있다. 디바이스 연결은 디바이스 등
록의 기본정보에서 입력한 프로토콜 유형에 따라 제공되는 Device SDK를 사용해서 연결기능을 추
가한다. 국제 표준 프로토콜 사용 시 해당 프로토콜 연동 규격서를 참고하여 IoTMakers에 디바이
스를 연동할수 있다. (oneM2M (http://onem2m.org) (가이드라인 문서 참고))
3. 이벤트 등록
디바이스를 연결하여 수집되는 데이터를 확인하였다면 수집되는 데이터에 이벤트 발생조건을 정
의하여 나만의 이벤트를 등록할 수 있다. 이벤트는 태그스트림이라는 제어와 센서데이터가 가능
한 명령 모음이라고 보면된다. 태그스트림에서 수집되는 데이터가 사전에 설정한 이벤트 발생조
건을 충적할 때 발생하므로 사용자는 센서데이터 모니터링과 여러 액츄에이터를 이벤트에 따라
제어가 가능하다.
4. 대쉬보드 만들기
대시보드란 사용자가 등록한 디바이스로부터 수집되는 실시간 데이터를 하나의 화면에서 모니터
링 할 수 있는 위젯 모음이다. 사용자가 자신의 목적에 맞추어 자유롭게 설정할 수 있다. 아래는
여러개의 Weather Station으로부터 획득한 데이터를 보여주는 대쉬보드이다. 과천동, 문원동, 별양
5. 5
동에 설치된 Weather Station의 데이터를 보여준다. 대쉬보드에 사용되는 위젯은 센섣게이터의 모
니터링, 액츄에이터의 제어, 디바이스 등록 위치, 디바이스 현황, 실시간 센서 데이터 스트림, 실시
간 이동체 위치까지 모든 정보들을 나타내는 위젯을 제공한다.
이단계까지 부가기능으로 하나의 디바이스를 등록하고 복제하여 사용할 수 있으며, 실제 디바이
스가 없는 경우에도 디바이스 연결 정보수집을 볼 수 있도록 가상 디바이스 시뮬레이터 기능을
제공한다.
5. Application 개발
개발자는 IoTMakers에서 제공하는 다양한 Open API를 이용하여 원하는 정보(디바이스, 태그스트
립, 이벤트, 공개디바이스)를 제공받을 수 있으며 이를 활용하여 IoT 서비스를 만들 수 있다. 쉽게
말해서 API를 사용한다는 것은 내부 동작에는 신경 쓰지 않고 함수 호출과 넘겨주는 데이터에만
신경을 쓰겠다는 것이다. 개발자는 Open API 를 검색하여 Request Parameter 값을 넣어 테스트
하고 JAVASCRIPT, Ajax 언어를 이용하여 원하는 브라우저에서 사용하면 된다. 아래는 RESTful 방
식으로 구현한 요청과 데이터 반환의 형식을 보여준다.
URL구조 (RESTful 방식)
http(s)://iotmakers.olleh.com:443/api/{version}/{Resource Category}/{Resource}/{Path
Variable}/…?{Query String}
6. 6
리턴 값 구조 예제
{
"responseCode": "OK",
"message": "",
"data": {
"total": 29,
"page": 1,
"rowNum": 10,
"rows": [
{
"apiSeq": 60,
"apiGrpCd": "0000001",
"apiGrpNm": "Device",
"funcNm": "디바이스 연결 상태 조회",
"rqtUriVal": "http://112.175.172.16:8280/api/v1/device/{deviceId}/status",
"rqtTypeCd": "0000002",
"rqtTypeNm": "GET",
"apiDesc": "디바이스 연결 상태 조회"
}, 이하생략
이제 실제로 API를 호출하여 웹 어플리케이션 개발에 활용하는 방법을 살펴보자. 웹 어플리
케이션에서 많이 사용하는 AJAX 기반 Javascript Library를 통하여 OPEN API를 호출하는 예
제이다. IoTMakers의 API를 호출하기 위해서는 Access Token을 이용하여 인증과 권한을 획득
하고 IoTMakers에 인증하기 위해서는 App ID와 Secret이 필요하며 이는 IoTMakers 내 IoT
개발> 앱 등록 메뉴를 통해 얻을 수 있다. 코드는 생력한다.
7. 7
6. 앱 SDK 제공 기능
모바일 SDK는 IoTMakers와 3rd Party 개발사의 모바일 어플리케이션 연동을 손쉽게 개발 할 수
있는 방법을 제공한다. 제공되는 기능으로는 로그인, 사용자 정보설정, 디바이스 조회, 각종 로그
및 제어등이 있다. 개발환경을 알아보면 아래와 같다.
- AndroidStudio
- I 14 : Android 4.0 이상
- GA_IoT_sdk
Android Studio 개발환경에서 프로젝트를 생성하고 개발하는 과정은 다음 페이지를 참고한다.
(http://iotmakers.olleh.com/openp/index.html#/guideAppSdk) . 아이폰 개발자를 위해 IOS SDK 를
제공한다.
7. Weather Station 개발과정
가장 먼저 아래사이트로 들어가 “C SDK로 라즈베리파이 연결하기” 를 이용해 IoTMakers를 통하
여 LED on/off 제어, 온도/터치 센서 모니터링하는 방법을 적용한다.
사용자는 목표로 하는 데이터, 제어부품을 연결하고 WiringPi Library 설치하여 GPIO(General
8. 8
Purpose Input Output) 설정을 한다. 디바이스 등록을 할 때 디바이스명, 디바이스 아이디, 패스워
드, 프로토콜을 지정하여야 한다. 센서태그 등록은 모니터링 센서와 제어 액츄에이터를 등록하는
것이다. 이후 C SDK(TCP) 다운로드 및 Library build를 수행한다. IoTMakers를 통해서 센서 태그 정
보 수집하기 위한 소스코드를 작성한다. 소스코드는 SDK내에 있는 샘플코드를 활용한다
- 파일 위치 : /home/pi/Downloads/CSDK/test/main.c
기존 샘플코드는 IoTMakers 플랫폼에 접속 후에 1초 간격으로 태그스트림 데이터를 전송하는 예
제이며, IoTMakers와 연동하여 데이터를 송신하고 제어데이터를 수신하여 디바이스에 전달하는
코드를 작성하게 된다. 코드 파일의 위치는 pi@raspberrypi:~/ktiot/test $ 이며 main.c 의 코드를
수정해서 연동하면 센서 데이터를 모니터링 하고, LED와 같은 액츄에이터 제어가 웹을 통해 가능
하게 된다.
아래에 완성된 웨더스테이션 외부 내부 이미지와 IoT makers 연동 화면을 보여준다.
-20180116. 김봉조 수석-