Offcanvas

IoT / 애플리케이션 / 오픈소스

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

2016.02.19 Peter Wayner  |  InfoWorld


STL
3D 객체를 설명하는 표준 포맷은 비유하자면 3D 프린팅 산업의 공통언어라 할 수 있다. 온라인 상점들은 STL 파일을 전송하는 방식으로 가상의 사물을 판매할 수 있다. 전송된 STL 파일은 3D 프린터를 통해 실물로 구현되며, 구매자가 나름의 편집을 거치는 것도 가능하다.

언어 자체는 꽤 기초적인 편이다. 파일은 삼각형의 모서리들을 통해 도형의 표면의 외부를 덮는 면을 형성하는 3차원 좌표 형태가 대부분으로, 포맷만 보면 더 복잡한 다각형들을 지원하는 것처럼 보이긴 하지만, 파일이 전통적으로 다루는 형태는 삼각형이다. 삼각형이 입체를 완전히 덮거나 표면의 모든 부분을 정의하는 것이 파일 포맷의 필수 사항은 아니지만, 3차원의 대상을 구성하기 위해선 위의 두 조건 요구된다.

STL 파일들은 점(point) 혹은 2진 버전의 ASCCI 표현을 포함하는 것이 가능하지만, 경제성의 이유로 2진 버전을 교환하는 경우가 대부분이다.

슬라이서(Slicer)
STL 파일은 3D 프린터를 구동할 충분한 정보를 포함하는 형식은 아니다. 다시 말해 STL의 삼각형들이 구현하는 형태를 실제 프린터의 헤드를 움직이고 압출기를 켜고 끄는 일련의 지침 목록으로 전환하는 무언가가 필요한 것이다. 3D 프린터는 일반적으로 G코드(GCode), 이른바 슬라이서(Slicer)를 이용한다. 이는 CNC 밀링 머신에 쓰이는 G코드와 유사하다.. 둘 사이의 가장 큰 차이점이라면 CNC 머신이 블록을 깎아 부품을 만드는 절삭식인 반면, 슬라이서는 부품을 아무것도 없는 처음 단계부터 만들어가는 적층식이라는 점이다. 그밖에 프린터 헤드를 조정하는 명령의 대부분은 유사하며, 다만 후자에는 압출기를 동작하는 기능이 추가적으로 존재한다는 점은 차이라 볼 수 있다.

시장에는 상용뿐 아니라 오픈소스 형태로도 여러 슬라이서 프로그램들이 선을 보이고 있다. 어떤 툴들은 정교한 IDE를 이용해 출력 전 편집을 지원하기도 한다. 대표적인 예로, 키슬라이더(KISSlider)는 무료 버전의 경우 싱글헤드 프린터에서만 동작이 가능하지만, 프로 버전을 구매하면 보다 정교한 멀티 헤드 기기들까지 매끄럽게 지원하고 있다.

파이썬(Python)
파이썬은 생물학 실험실이나 사회 과학 분야 등에서 가장 사랑 받는 언어이며, 라즈베리 파이 커뮤니티에서는 ‘공식 언어’로까지 불리고 있다. 물론 이 별명에는 과장된 측면도 분명 존재한다. 라즈베리 파이 보드들은 보통 리눅스로 곧바로 부팅되는 경우가 많으며, ARM(v6 혹은 7) 아키텍처로 바로 편집된 경우라면 대부분의 리눅스 코드 기반을 통해 보드를 구동하는 것이 가능하기 때문이다.

그럼에도 파이썬은 여전히 충분히 매력적인 언어다. 이는 깔끔한 구문을 갖춘 고급의 언어이며, 데이터를 돌려보는 것과 관련한 규정 역시 상당히 관대한 편이다. 프로그래머로써는 클로저(closure)와 같은 추상화에 지나치게 얽매이지 않아도 되며, 포인터와 관련한 복잡한 규정을 외울 필요도 없다는 점이 큰 장점으로 다가온다. 단순히 수를 처리하는 지침을 작성하고 그 값을 이용해 간단히 라즈베리 파이에 동작을 명령할 수 있다.

이러한 이유로 라즈베리 파이 커뮤니티는 파이썬을 기초부터 교육하는, 포괄적인 자료도 제공하고 있다.

프로세싱(Processing)
실물, 로봇 공학 산업은 아두이노(Arduino) 보드로 채워진 세상이다. 아두이노는 C, C++의 서브셋 언어에 기반을 두고 있다. 그러나 많은 프로그래머는 그보다 간결한 무언가를 원한다. 이것이 프로세싱(Processing)이라는 언어가 지지를 얻고 있는 이유다.

프로세싱은 자바의 간소화 버전으로 볼 수 있는 코드로, 자바의 많은 훌륭한 디테일들을 포기한 대신, 결과를 도출해내고 스위치를 동작하는데 도움을 주는 각종 표준 방법론들을 추가했다. 자바를 다뤄온 프로그래머들이라면 기존의 낡은 AWT 애플릿과 프레임의 기반 위에서 어떻게 프로세싱이 개발되었는지 자체에 놀라움을 금치 못할 것이다. 물론 이외의 많은 사용자들에겐 그저 루프를 작성하고 코드를 바꾸는 과정이 가장 큰 관심사일 것이다.

프로세싱 코드는 일반적으로 아두이노에 지시를 전달하는 컴퓨터인, 호스트 컴퓨터(이 과정을 위해선 퍼마타(Firmata)라는 로컬 해석 툴이 필요하다) 상에서 구동된다. 호스트 기기에서 개발이 진행되고, 실제 동작은 아두이노에서 구현되는 방식이다.

프로세싱은 모바일 앱 개발에도 이용되고 있으며, 웹 앱 분야의 근간을 이루는 역할을 하기도 했다. 자바스크립트로 작성된 프로세싱 버전을 통해 거둔 성과다. 칸 아카데미(Khan Academy)에서는 컴퓨터 프로그래밍 교육 도구로 이를 이용하고 있기도 하다.  editor@itworld.co.kr

CIO Korea 뉴스레터 및 IT 트랜드 보고서 무료 구독하기
추천 테크라이브러리

회사명:한국IDG 제호: CIO Korea 주소 : 서울시 중구 세종대로 23, 4층 우)04512
등록번호 : 서울 아01641 등록발행일자 : 2011년 05월 27일

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

Copyright © 2024 International Data Group. All rights reserved.