IoT / 개발자

“세상을 프로그래밍하라” 사물 인터넷 시대의 필수 개발 기술 12가지

Peter Wayner | InfoWorld 2016.02.18


지그비(Zigbee)와 Z-웨이브(Z-Wave) 등
X10과 인스테온은 시작일 뿐이다. 기기에 신호를 전달하는 방식은 이 외에도 매우 다양하다. 전선을 통한 방식뿐 아니라 무선으로 전달하는 방식도 있다. 지그비와 Z-웨이브 모두 기기간 저전력, 무선 송신을 가능케 하는 커뮤니케이션 표준으로, 앞으로 기업이나 가정에서 많이 사용될 저전력 내장형 센서 및 프로세서에 매우 적합할 것이다.

예를 들어 최근 지그비는 수퍼마켓에서 온도 센서를 통해 농수산물 코너의 온도를 일정하게 유지해 과일이나 야채가 시드는 것을 방지하는 새로운 시도를 소개한 바 있다. 또한 Z-웨이브는 웹사이트를 통해 무선 버튼을 통해 가정에 ‘품격을 부여하는’ 기기들을 소개하고 있다. 이런 시스템을 통해 노인, 환자가 있는 가정에서도 유사시 손쉽게 지인이나 병원에 연락을 할 수 있다는 것이다. 이처럼 한 번에 몇 비트의 데이터만을 전송하면 되는 애플리케이션들이 수백 가지가 존재한다.

하지만 지그비나 Z-웨이브 외에도 팬스탬프(Panstamp), AMX, KNX, 루트론(Lutron) 등등 다양한 표준이 존재한다. 틈새 시장을 공략하는 것들도 있다. 예를 들어 AMX는 회의실에서 사용하는 시청각 기기를, 팬스탬프는 전세계 어디에서나 널리 이용되는 소형 무선 컨트롤러를 집중 공략하고 있다. 모두 저마다의 포맷을 사용하지만 약간의 부가적 프로그래밍이 가미된다면 상호작용도 가능할 지 모른다. 이처럼 다양하고 풍성한 표준들이 자웅을 겨루는 상황이 약간 혼란스럽게 느껴질 수도 있지만, 표준이 아예 없는 것보다는 훨씬 낫다.

XBMC, 프리박스(Freebox) 등의 프레임워크
소파에 하릴없이 누워 바보 상자를 뚫어져라 응시하는 사람이 사실은 세상을 바꾸고 있다고 말한다면 무리가 있겠지만, 디지털 이미지, 비디오, 그리고 오디오가 엔터테인먼트에 국한돼 있던 전통적 역할에서 탈피하고 있는 것만큼은 부인할 수 없는 사실이다. XBMC, 프리박스, 그리고 VLC 등 여러 프로토콜 및 프레임워크들은 원래 소파에서 일어나기를 거부하는 ‘카우치 포테이토(couch potato)’들의 코 앞에 영상을 대령하기 위해 제작된 것들이지만 그 외에도 가정이나 건물에서 다양한 쓰임새를 가지고 있다.

이들은 얼핏 보기엔 그저 디지털 콘텐츠 파일을 다루는, 세상의 변화에 큰 영향은 미치지 못하는 프로토콜처럼 보일 지도 모른다. 그러나 사람들의 일상에서 평면 디스플레이가 차지하는 비중이 커지는 만큼, 이 프로토콜 및 프레임워크들이 가져오는 변화와 영향력을 인정하지 않을 수 없다. 스크린 상의 이미지를 통해 쉴새없이 변화하는 타임 스퀘어의 건물들이 그 대표적인 사례다. 스크린이 늘어난다는 건 결국 디지털 콘텐츠의 활동 무대가 스마트폰에 국한되지 않고 더 넓어 진다는 의미다. 이제는 스크린이 건물의 외양을 결정하고, 공간 인테리어를 새롭게 탈바꿈하게 된 것이다.

포스트스크립트(PostScript)
데이터를 PDF 파일 형식으로 저장하거나 특정 페이지의 텍스트를 프린터로 전송하는 과정은 겉보기와는 달리 여러 복잡한 처리 과정을 필료로 한다. 포스트스크립트 파일이 포함하는 데이터는 그저 단순한 글자의 목록이 아니다. 이는 페이지 안에서 펜을 움직이고, 글자와 선, 숫자, 도형을 그릴 수 있도록 해주는 엄연한 프로그램이다. 포스트스크립트 언어의 기본 용도는 직선이나 베지에(Bézier) 곡선을 따라 펜을 움직이고, 그로써 생성된 도형들을 채워나가는데 있다. 포스트스크립트에서는 폰트 역시 그저 단순한 비트맵이 아닌, 서브픽셀 수준 정확도의 확장과 위치 조정을 지원하는 곡선의 집합으로 구성된다.

포스트스크립트가 개발된 것은 70년대로, 괄호 내에 저장이 이뤄지는 스택 기반 구문을 갖춘 형태로 선을 보였다. HP 계산기 사용법을 익혀본 이들이라면 포스트스크립트 역시 낯설지 않게 이용할 수 있을 것이다. 오랜 기간 동안 포스트스크립트는 그 완성도를 높여왔으며, 복잡한 프랙털(fractal)을 비롯한 여타 특수한 대상들, 그리고, 바이러스를 작성하는데 이용되어 왔다.

XML 변종들이 웹 상에서 널리 지원되고 있다는 특성으로 인해, 오늘날 포스트스크립트는 SVG 파일의 말미에 주로 이용되고 있다. 그러나 그 구조의 기저에는 많은 유사성이 있으며, 전환 과정 역시 충분히 직관적이다. PS투에딧(PSToEdit)과 같은 여러 패키지를 통해, 두 언어 모두는 레이저 컷팅기나 밀링 머신 등을 구동하는 코드로 전환할 수 있다.

OBD-II
가스 탱크와 피스톤 몇 개, 그리고 폭발력을 바퀴의 움직임으로 바꿔주는 크랭크축 몇 개로 자동차를 정의하던 시절은 끝났다. 오늘날의 자동차들은 전통적인 네 개의 바퀴 위에, 다수의 컴퓨터와 그것들을 연결하는 복잡한 네트워크를 갖춘 정교한 전자기기로 발전하고 있다. OBD-II 표준은 오직 인간만이 그런 스마트카와 소통하고 그것의 현재 상황을 확인할 수 있도록 하는 수단이다.

컴퓨터와 차량 사이를 오가는 코드 대다수는 순수한 정보 객체이다. 예를 들자면, 사용자가 포트로 전송한 몇 바이트의 명령이 차량 아랫부분의 스티어링 휠을 움직여 원하는 속력을 구현하는 것이다. 운행 속도뿐 아니라 RPM이나 엔진 효율, 그 밖의 다양한 기능들 역시 같은 방식으로 통제할 수 있다. OBD-II는 토크를 비롯한 많은 기본 앱으로 자동차의 상태를 추적하는 데에도 활용될 수 있다.

이런 앱은 현재는 아마추어 레이서들이나 얼리 어댑터를 중심으로 인기를 얻어가고 있으나, 향후 그 활용 범위는 더욱 확대될 것으로 기대되고 있다. 자동차를 컴퓨터와 연결할 수 있는 좋은 옵션 중 하나로는 아두이노OBD(ArduinoOBD)를 추천한다.

G
밀링 머신에 컴퓨터 수치 제어(Computer Numerical Control), 이른바 CNC 기술이 도입된 것은 1950년대의 일이다. 그리고 얼마지 않아 엔지니어들은 G라는 언어를 개발한다. G 언어는 절단용 도구들의 움직임을 제어하는 활동에 특화된 언어이다. 초반 G는 고체를 쌓아가는 방식이 아닌 원재료를 깎아 결과물을 제작한다는 점에서 반직관적이라는 지적을 받기도 했다. 하지만 최종 결과물을 구상하는 방식을 반대로 뒤집어본다면, 어떤 날카로운 회전체를 이용해 사용자가 원하는 것을 깎아낼 방법을 상상하는 것도 결코 어렵지는 않은 일이다.

코딩의 대다수는 좌표계를 선택하고 절단 공구를 특정 위치로 조정하는 활동에 적용된다. 직선이나 원 등 간단한 도형에서 중앙점을 계산해 표시하는 작업은 상대적으로 어렵지 않게 가능하지만, 그 밖의 복잡한 도형들의 경우에는 약간의 계획이 요구된다.

오랜 기간에 걸쳐 각각의 제조업체들이 나름의 개선을 진행하며 G는 처음의 모습에서 많은 부분이 변화한 상태다. 오늘날에는 로우 G 코드에 보다 현대적인 매크로, 객체 지향 계층을 추가해 기기로 전송하는 방식으로 활용되는 경우가 많다.

현재 G와 그 변형들이 두각을 나타내는 대표적인 분야로는 3D 프린터 산업을 꼽을 수 있다. 엄밀히 따지면 코드 자체는 정확히 동일한 것은 아니지만, 언어의 본질 자체는 G의 그것과 같다고 할 수 있다.

Sponsored

회사명 : 한국IDG | 제호: ITWorld | 주소 : 서울시 중구 세종대로 23, 4층 우)04512
| 등록번호 : 서울 아00743 등록발행일자 : 2009년 01월 19일

발행인 : 박형미 | 편집인 : 박재곤 | 청소년보호책임자 : 한정규
| 사업자 등록번호 : 214-87-22467 Tel : 02-558-6950

Copyright © 2024 International Data Group. All rights reserved.