Don't think! Just do it!

종합 IT 기술 정체성 카오스 블로그! 이... 이곳은 어디지?

기타/사장님 Project

사장님 Project - Project 개요 및 구조

방피터 2015. 9. 24. 16:00

사장님 Project는 IoT와 Cloud를 결합한 IoT Cloud Service platform 입니다.

ㅎㅎ 거창해 보이지만 사실 서버와 클라이언트의 모음입니다. ^^;;;

사실 그렇게 어렵지도 않구요.(모르는 것들에 대한 궁금증을 배신하면 됩니다. ㅎㅎ)


사장님 Project를 함께 진행하고 나면 사장님이 될 수 있다는 뜻에서 사장님 Project라고 이름지은 것은 아닙니다.

다만 요세 트렌드를 따라보고 그에 대한 Idea를 더욱 구체화해보자는 의미에서 사장님 Project라고 이름 지었습니다.


다시 한번 말씀드리자면 사장님 Project는 IoT Cloud service platform을 구축하는 Project입니다. 단일 Job이 아니므로 생각보다 내용이 방대할 수 있어 큰 그림을 머리속에 박아두시는 것이 좋습니다. 언제나 말씀드리지만 처음에 컨셉을 잘못 잡으시면 목적이 뭐가 되었던 그 Project는 산으로 가게 되어 있습니다. ^^ 컨셉~컨셉~ 으하하하


사장님 프로젝트의 전체적인 컨셉은 아래 그림과 같습니다.


간단하게 설명드리자면 하나의 MQTT Broker Server, 그리고 하나의 Web server, Browser, 마지막으로 IoT Device로 구성됩니다.

1. MQTT Broker Server

2. Web Server

3. Browser

4. IoT Devices

이를 각각 간단하게 설명드리겠습니다.


1. MQTT Broker Server

 MQTT는 프로토콜의 이름 중 하나입니다. IBM에서 M2M 목적으로 제작되었고 주고 받는 데이터의 양이 작습니다. Facebook이 메신져에 적용하고 있습니다.(Facebook이 사용한다는 점에서 이 프로토콜을 사용해야 겠다고 결정했습니다. ㅎㅎ) MQTT는 Broker라고 불리우는 Server와 MQTT Client로 이루어져 있습니다. 왜 MQTT Server라고 부르지 않고 Broker라고 부를까요?

저도 많이 생각해 봤는데 정말 Broker의 역할만 하고 있기 때문이라고 생각합니다.

MQTT프로토콜의 데이터 교환은 Client들의 Publish(발행)와 Subcribe(구독)으로 이루어 집니다. 어떤 Client들은 Publish를 하고 어떤 Client는 Subscribe를 합니다. 혹은 둘다 하기도 합니다. 이 때 MQTT Broker의 역할은 Publish로 받은 명령을 Subscribe하고 있는 Client에게 전달해주는 역할만합니다. 그야말로 Broker일 뿐입니다.


어렵나요? TV 예약 시청이라고 생각하시면 편합니다. 여러분들이 무한도전을 보겠다고 예약을 해 놓으시면(Subscribe) 방송국에서는 일정 시간에 무한도전을 틀어주죠.(Publish) 그리고 여러분들은 무한도전을 시청하시면 되는 겁니다. 하하하 예가 더 어렵나요?


MQTT Broker도 많은 종류가 있습니다. 일단 유료는 제외하고 무료라도 제한이 있는 버전도 제외합니다. 그리고 유명한 것을 찾다보니 Mosquitto가 가장 적절하다고 판단했습니다. MQTT 표준도 거의 다 지원합니다.


http://mosquitto.org/


Linux 에서 동작하며 ubuntu에는 기본적으로 내장되어 있더라구요. 하지만 SSL등을 지원할 수 있게 하려면 다시 빌드해야 하므로 내장된 건 사용하지 말고 다운로드 받고 빌드해서 사용하셔야 합니다. ㅎㅎ 같이 천천히 해볼거니까 미리 걱정은 하지 맙시다.


2. Web Server

MQTT Broker만 있어도 통신이 가능한데 왜 Web Server가 필요하냐구요? 분명 이 프로젝트의 목적은 IoT Cloud service platform을 구축하는 것입니다. MQTT Message만 왔다갔다 하는 것은 그냥 MQTT일 뿐 Cloud Service라고 말할 수 없을 것 같죠? 데이터 시각화 도구(Visualizer)를 만들고 싶기 때문입니다. ㅎㅎ 데이터 시각화를 위해 다른 소프트웨어를 만드는 것보다 web을 사용하는 것이 더 낳은 방법이라고 판단했습니다. Web server는 Google app engine을 사용할 것이고 사용 언어는 go, java script, html 정도가 되겠습니다.


<요런거 만들고 싶습니다.>


3. Browser

PC던 휴대폰이던 걍 사용하시면 됩니다. 끗.


4. IoT Devices

IoT Devices는 임베디드 시스템이 되겠죠? 저는 위즈네트 직원이니까 WIZwiki-W7500 보드 사용할 거에요........ 직원이니까.. ㅠㅠ

WIZwiki-W7500은 mbed 환경에서 동작 가능합니다. mbed는 arm에서 지원하는 web compiler로 web 환경에서 빌드하고 바이너리 파일까지 추출할 수 있습니다. 이미 만들어 놓은 프로젝트 파일도 쉽게 import 할 수 있기 때문에 이 프로젝트에서도 mbed platform을 사용하도록 하겠습니다. mbed paho mqtt를 포팅하고 publish 할 수 있는 프로젝트도 이미 만들어 놓았습니다.


이제 어느 정도 윤곽이 잡히시나요? 차근 차근 따라오시면 스스로 어느 정도 완성된 IoT Cloud platform을 구성하실 수 있습니다.

Wiznet에서 진행하는 무료 강의를 오셔도 됩니다. (잘생긴 강사의 얼굴을 보실 수 있습니다.) 9월에는 실험적으로 진행했기 때문에 10월에는 강의가 없지만 11월부터는 새로 개설될 예정입니다.


블로깅도 순차적으로 진행할 예정이니 강의 때 하지 못했던 내용도 알 수 있을거에요.


그럼 다음 시간에 뵐게요~

- Dwarp -


반응형

'기타 > 사장님 Project' 카테고리의 다른 글

사장님 Project #1  (0) 2015.09.24