Dog나 Cow나 다 연결되는 사물인터넷

음... 오늘은 말이야. 횽아가 블로깅 시작한 기념으로 재미난 거 하나 적어볼게.
사물인터넷이라고 들어봤지?
Dog나 Cow나 인터넷에 연결된다는 사물인터넷시대가 온다는데..


(으음. 정말?)
사물인터넷이 뭐나하면, 전문용어로 IoT, 즉 Internet of Things
말 그대로 각종 사물들이 인터넷으로 연결된거야 ^^a


자전거, 전구, TV, 라디오, 자동차, 신발, 등등..
얘네들을 왜 인터넷에 연결 시키려고 하는걸까?


뭔가 그냥 단순하게 쓸 수 있는 것들이 복잡해지는 느낌인데..


음...
그건 LG,삼성이 더 많은 돈을 벌 수 있기 때문이야...


뷁!! 미안. 농담이야 ㅎㅎㅎ


이렇게 각종 사물이 인터넷에 연결되어 있으면
얘네들끼리 지금 상황이 어떻게 굴러가지는지
서로 얘기할 수 있게 되는거지. 
예를들어 거실에 사람이 들어오면
모션 센서가 동작해서 자동으로 불을 켜주는 거야.


혹은, 환기가 잘 안되어서 실내 산소농도가 낮아지면 산
소농도 측정 센서가 이 상황을 인터넷으로 서버에 올리고, 
그럼 전등이 이걸 인터넷으로 받아서
실내 조명을 붉은 색으로 바꿔버릴 수도 있지.
그럼 지금까지 이 좋은걸 왜 안한거야?
 인터넷에 연결되려면 얘네들도 컴퓨터를 하나씩 가지고 있어야 하는데...



이런 컴퓨터를 신발이나 전구에 가져다 붙일 순 없잖아..^^
 

짜잔! 그래서 이런 컴퓨터가 나왔어. Intel Edison이라는 녀석인데, 
손가락 한 마디만한 크기에 컴퓨터의 핵심적인 기능이 다 들어가있다구~ 
무선랜에 블루투스도 포함이야~!


사실 이런 소형 컴퓨터를 만들 수 있는 부품은 예전에도 있었어. 
이건 ATMEGA128이라는 칩인데 오천원정도 하는 이 녀석도 
컴퓨터가 가져야 하는 기본적인건 다 가지고 있지. 
아참. 네트워크 접속기능은 없어. 그래서 다른 칩이 필요하긴 하지만 ㅋㅋ


그래서 저걸 네트워크 접속 되게 하려면
네트워크 접속 기능을 가진 칩이랑 연결시켜줘야해.
이런 전자부품 연결하는걸 납땜질로 한다는 것 정도는 알고 있겠지? ㅎㅎ
하지만 저 촘촘한 핀 하나하나 납땜질 하는 게 보통일이 아니야. ㅠㅠ

그래서 저런 부품이 있어도 많은 사람들이 
머릿속에만 가지고 있는 아이디어를 실현하기가 쉽지 않았어. 
(예쁜여자그림 넣었으니 좀 길게 써도 읽어주겠지?)


그런데 요새 나온 Intel Edison은 50불정도 라즈베리파이2는 35불이야. 
땜질 못해도 인터넷에 접속할 수 있는 컴퓨터를 
4만원, 5만원돈으로 입수할 수 있다는것이지. 
음... 이런 값싼 컴퓨터들 때문에 사물인터넷이 뜨는 게 확실하냐구?
 

으음 그건 나도 몰라 ㅡㅡ;
대신 내가 알고있는건...


앞으로 수많은 사물들이 인터넷에 연결되면서
엄청난 양의 시계열 데이터를 쏟아낼것이라는 점...
후훗.. 시계열 데이터가 뭐냐구??


앞에서 얘기한 산소 농도를 측정하는 센서는 주기적으로 산소 농도를 측정해서
그걸 인터넷을 통해 서버(여러 사물들이 연결되는 컴퓨터)로 보내게 되겠지?  
11시 10분에는 70%, 11시 11분에는 65%, 11시 12분에는 60% 뭐 이런 식이지..


자.. 그럼 생각해볼까?
전 세계의 온갖 사물이 연결되는 것으로도 부족해서
얘네들이 매 분마다 (초 마다가 될 수도 ㅎㄷㄷ) 데이터를 쏟아낸다고 생각해봐. 
그 양이 어마어마하겠지? ㅎㅎㅎㅎ
 

그래서 기존과는 다른 방법으로 데이터를 처리해야 하는거라고
일전에 스티브 잡스 아저씨도 이야기를 하셨지.. (믿거나 말거나 ㅎㅎㅎ)

첫 번째 방법으로는
데이터를 컬럼 기준으로 저장하는거야. (컬럼기반 데이터베이스)
왼쪽이 기존 방식이고, 오른 쪽이 새로운 방식이라고 생각하면 돼.
주황색으로 표시된 부분을 읽어야 하는 경우,
왼쪽은 큰 회색 박스 네 개를 읽어야 하고,
오른 쪽은 박스 하나만 읽으면 되지. 

이 뿐이 아니야. 
오른쪽처럼 저장하면,
비슷한 종류의 데이터끼리 묶어서 저장하기 때문에, 
컴퓨터는 데이터를 더 작은 크기로 압축할 수가 있고, 
같은 시간에 더 많은 데이터를 처리하게 되는거야.


두 번째 방법으로는
데이터를 여러 컴퓨터에 나눠서 저장하는거야(분산처리). 
그럼 한 컴퓨터가 많은 데이터를 다 저장하고 처리하는 것이 아니고, 
여러 컴퓨터가 데이터를 나눠서 처리할 수 있어. 
모내기할 때 한 사람이 하는 것보다 
여러 사람이 함께 하면 더 금방 끝나는 것과 같은 이치지.^^
 

어때? 사물인터넷, 시계열데이터, 분산처리, 컬럼기반 데이터베이스... 별거 아니지?

 

횽아가 넘 쉬운 것만 얘기한거 같아서 컴퓨터과학 전공자 기준으로 한 번 얘기해볼께. 
그렇다고 넘 겁먹지는 마. 알고보면 딱히 별거 없다는 사실 ㅎㅎ
앞으로는 수 많은 양의 정리되지 않은 데이터에서 정보를 검색해내는 
정보검색(Information Retrieval)이 더 중요해질꺼야.


그리고 방대한 양의 데이터를 짧은 시간 안에 요약할 수 있는 데이터베이스, 
즉 컬럼기반 데이터베이스가 각광받게 될꺼야. 분산처리도 포함..^^


음... 그런데 우리 집에 보니 이런 장비가 놀고 있더라고. 24포트 스위칭 허브인데,,, 
쉽게 말해 24대의 컴퓨터를 인터넷에 연결되게 해주는 그런 장비야.
그래... 일반 가정집에 이런게 있진 않아. 
우리 집이 일반 가정집은 아니란 뜻이기도 하지. ㅋㅋㅋㅋㅋ 
아무튼 이걸 보고 덕질 본능이 발동했어. 
그만 여기에 연결된 24대의 라즈베리파이2가 떠올라버린거야. ㅠㅠ

 

음 그래서 질러버렸어... ㅎㅎㅎ
덕질본능을 충분히 만족시킬 수 있을 만큼의 수량으로 라즈베리파이2 주문.. ㅎㅎ
댓수가 많다 보니 한 개에 1000원짜리 USB케이블 댓수대로 구입하니 몇만원이 훌쩍.. ㅠㅠ


비록 4~5만원짜리 라즈베리파이 수십대이지만, 
개념적으로는 Google의 초기 서버 클러스터와 별반 다르지 않아 ㅡㅡ; 
어쩌면 그 때보다 더 빠를지도 몰라. 
(당시 구글은 하드디스크지만, 라즈베리파이2 에는 SD카드 장착 ㅋㅋ)

 

음.. 끝이 나가오니... 어려운 말 조금만 쓸께.ㅎㅎ 
지금 그러니까 횽아는 라즈베리파이2 클러스터(컴퓨터 여러 개 묶어서 하나 처럼 쓰는걸 클러스터라고 해.)에서
Java가상머신 + Scala + Akka Cluster를 구축해서
그 위에 Actor모델로 분산환경에서 동작하는 Column기반 데이터베이스를 만들고,
다시 그 위에서 동작하는 검색엔진을 만드는 덕질에 대한 기대감으로 가득차있어.


DBMS는 쫌 알지만(^^) 검색 엔진은 잘 모르는 부분이라
친구가 추천한 책도 주문했어. 
그리고 이 책들이 책장에서 읽히지 않은채 썩고있는--; 
다른 책들로부터 멀리 떨어뜨려놓고 있기도 해 ㅡㅡ;
오늘의 포스팅은 여기까지...

라즈베리파이2가 오는대로 덕질의 과정을 포스팅해주겠어 ㅎㅎ
자 그럼 아래 사진 보고 각자 뭘 해야 할지 생각해보도록 해...
내가 직접 대놓고 얘긴 못하는 스타일이라 ㅋㅋㅋㅋㅋㅋㅋㅋㅋ

김강모

- 분산환경에서 컬럼기반 저장시스템과 검색엔진을 개발하고 있다.
- 개발이 필요한 스타트업에 기술멘토링을 하고 있다.
- 고려대 컴퓨터학과 졸업 후, 알티베이스, 중국 마이크로소프트, 한국거래소, Korbit에서 근무하였다.

 * 링크드인: https://www.linkedin.com/in/kangmo
 * 블로그: http://x100.io