MS가 지난 8월10일부터 ‘윈도우10 IoT 코어’를 배포하기 시작했다. 라즈베리파이와 같은 싱글보드컴퓨터에서도 윈도우10을 활용할 수 있도록 돕는 제품이다. 윈도우10 IoT 코어에는 스마트폰부터 데스크톱, 기업용 장비에 이르기까지 하나의 개발 방법론으로 윈도우10 응용프로그램(앱)을 다룰 수 있도록 하겠다는 MS의 통합 전략이 담겨 있다.

윈도우10 IoT 코어와 라즈베리파이2를 이용해 무엇을 만들 수 있을까. 한국MS의 도움을 받아 윈도우10 IoT 코어를 활용해 간단한 장비를 만들어봤다. 과거에는 개발에 필요한 덕목으로 고도의 프로그래밍 능력이 요구됐다면, 지금은 아이디어와 상상력이 더 중요하다. 윈도우10 IoT와 같이 코딩을 취미로 삼을 수 있도록 돕는 쉬운 개발 도구가 등장한 덕분이다.

wi10_5_800
▲ wi10_5_800

개발 문턱 낮추는 ‘윈도우10 IoT 코어’

목표: LED를 켜고, 끌 수 있는 버튼 UI 앱 구현

다양한 싱글보드컴퓨터의 등장은 개발자의 상상력을 자극한다. 라즈베리파이 시리즈가 많이 쓰인다. 인텔에서도 갈릴레오 보드를 만들어 개발자에게 공급하고 있다. 퀄컴에서는 드래곤보드를 소개하기도 했다. 쉽고, 값싸게 구할 수 있는 보드 중에서는 ‘아두이노’만한 게 없다. 윈도우10 IoT 코어는 라즈베리파이2와 갈릴레오, 미노우보드 등과 함께 활용할 수 있다.

이번에 윈도우10 IoT 개발을 체험하며 선택한 보드는 라즈베리파이2다. 비디오 출력을 지원한다는 점이 라즈베리파이2가 가진 특징 중 하나다. 라즈베리파이2에 HDMI 케이블만 연결하면, 모니터를 통해 화면을 출력할 수 있다. 만들고자 하는 앱 UI를 화면을 통해 직접 확인할 수 있어 좀 더 수월하게 개발을 진행할 수 있다.

윈도우10 IoT 코어는 라즈베리파이2를 활용한 개발 환경을 좀 더 쉽게 바꿀 것으로 기대된다. 많은 개발자가 이미 잘 알고 있는 C#이나 자바 등 기존의 언어로 라즈베리파이에서 활용할 수 있는 앱을 구현할 수 있는 덕분이다.

김영욱 한국MS 에반젤리스트는 “윈도우10 IoT 코어가 개발 난이도를 낮춘 덕분에 C#이나 자바 등 기존 언어를 알고 있는 개발자라면, 더 쉽게 제대로 된 작품을 만들 수 있다”라고 설명했다.

윈도우10 IoT 코어는 무료다. 일반 사용자나 개발자, 상업적인 용도로 활용하려는 이들 모두 무료로 내려받아 쓸 수 있다. 윈도우10 IoT 개발자 홈페이지를 참고하면, 윈도우10 IoT 코어 이미지파일을 내려받을 수 있다. 싱글보드 등 윈도우10 IoT 코어와 함께 활용할 수 있는 하드웨어도 구입할 수 있으니 참고하도록 하자.

▲  준비물: '라즈베리파이2'와 마이크로SD 카드, SD카드 커넥터
▲ 준비물: '라즈베리파이2'와 마이크로SD 카드, SD카드 커넥터

▲  '라즈베리파이2'에는 키보드나 마우스를 직접 연결할 수 있다.
▲ '라즈베리파이2'에는 키보드나 마우스를 직접 연결할 수 있다.

마이크로SD 카드에 윈도우10 IoT 코어 설치하기

준비물: 윈도우10 IoT 코어, 윈도우10 PC, 마이크로SD카드(8GB 이상) 및 SD카드 커넥터

마이크로SD 카드에 윈도우10 IoT 코어를 설치하는 것이 가장 먼저 해야 할 일이다. 하드디스크에 윈도우를 설치하는 것과 비슷한 과정이다. 마이크로SD 카드를 쓰는 까닭은 라즈베리파이2가 마이크로SD카드 슬롯을 지원하기 때문이다. 마이크로SD 카드를 지원하지 않는 PC에 연결해야 하므로 SD카드 커넥터도 필수다.

윈도우10 PC를 켜고, 마이크로 USB 케이블로 라즈베리파이2에 전원을 공급하면, 하드웨어 준비는 끝이다. 윈도우 개발자 센터에서 내려받은 ‘윈도우10 IoT 코어 라즈베리파이2(IoT Core RPi.iso)’ 이미지를 더블클릭해 내용물을 살펴보면, ‘Windows_10_IoT_Core_RPi2.msi’를 확인할 수 있다. 윈도우10 IoT 코어를 마이크로SD 카드에 설치하기 위한 도구다.

윈도우10 PC에 마이크로SD 카드를 끼우고, ‘IoT코어이미지헬퍼(IoTCoreImageHelper.exe)’를 실행하도록 하자. IoT코어이미지헬퍼가 자동으로 마이크로SD 카드를 인식한다. 마이크로SD 카드에 설치할 윈도우10 IoT 코어 이미지파일을 선택하면, 설치가 시작된다. 설치가 끝나면, 라즈베리파이2 앱 개발을 위한 준비가 완료된다.

▲  마이크로SD 카드에 윈도우10 IoT 코어를 설치하는 과정
▲ 마이크로SD 카드에 윈도우10 IoT 코어를 설치하는 과정

▲  윈도우10 IoT 코어가 설치된 마이크로SD 카드를 라즈베리파이2에 연결하면, 외부 모니터를 통해 부팅 모습을 확인할 수 있다.
▲ 윈도우10 IoT 코어가 설치된 마이크로SD 카드를 라즈베리파이2에 연결하면, 외부 모니터를 통해 부팅 모습을 확인할 수 있다.

라즈베리파이2와 윈도우10 PC 연결하기

준비물: 라즈베리파이2, 이더넷 케이블, HDMI 케이블

첫 번째 단계에서 윈도우10 IoT 코어 설치를 마친 마이크로SD 카드는 라즈베리파이2에 있는 마이크로SD 카드 슬롯에 끼우면 된다. 라즈베리파이2에 전원을 연결해 라즈베리파이2로 윈도우10 IoT 코어를 부팅할 수 있다. 이 때 라즈베리파이2에 HDMI 케이블을 이용해 외부 모니터를 연결하면, 보드의 상태를 알려주는 기본 앱아 자동으로 실행된다. 라즈베리파이2가 기본으로 지원하는 USB 포트에 마우스나 키보드를 연결하면 더 쉽게 라즈베리파이2를 다룰 수 있어 좋다.

▲  라즈베리파이2의 상태는 윈도우10 PC에서 웹브라우저를 통해서도 확인할 수 있다.
▲ 라즈베리파이2의 상태는 윈도우10 PC에서 웹브라우저를 통해서도 확인할 수 있다.

비주얼스튜디오 2015를 통한 앱 개발과 배포

준비물: 비주얼스튜디오 2015, 빵판, 빵판 케이블, LED

MS의 비주얼스튜디오 2015는 라즈베리파이2와 같은 싱글보드컴퓨터와 윈도우10 스마트폰, 데스크톱용 앱에 이르기까지 앱 개발을 통합해 지원한다. 앱 하나만 만들어도 다양한 플랫폼에 배포할 수 있다는 뜻이다. 라즈베리파이2에 앱을 배포하려면, 비주얼스튜디오 2015에서 ‘새로만들기’ 메뉴를 통해 ‘프로젝트’ → 유니버셜 → ‘비어 있는 유니버셜’ 항목을 차례로 선택하면 된다. 여기서 개발한 유니버셜 앱은 스마트폰이나 데스크톱 등 다양한 윈도우10 환경에서 똑같이 실행할 수 있다.

코딩 과정은 평소 C#을 활용하는 것과 똑같다. 코딩 지식이 전혀 없는 이들도 윈도우 개발자 센터에서 라즈베리파이2와 윈도우10 IoT 코어를 활용할 수 있는 다양한 예제를 지원하니 마음껏 내려받아 라즈베리파이2에 적용해볼 수 있다. 비주얼스튜디오 2015로 완성한 앱을 라즈베리파이2로 배포하면 된다. 배포할 때는 ‘x86’이 아니라 ‘ARM’을 선택해야 한다.

▲  비주얼스튜디오 2015는 유니버셜 앱 개발을 지원한다.
▲ 비주얼스튜디오 2015는 유니버셜 앱 개발을 지원한다.

▲  비주얼스튜디오 2015로 완성한 앱을 라즈베리파이2로 배포하려면 ARM → 원격컴퓨터 항목을 선택하면 된다.
▲ 비주얼스튜디오 2015로 완성한 앱을 라즈베리파이2로 배포하려면 ARM → 원격컴퓨터 항목을 선택하면 된다.

▲  라즈베리파이2에 시험적으로 'Hello World'를 띄운 모습
▲ 라즈베리파이2에 시험적으로 'Hello World'를 띄운 모습

▲  라즈베리파이2에 단추 UI를 구현해 LED 램프를 켠 모습
▲ 라즈베리파이2에 단추 UI를 구현해 LED 램프를 켠 모습

▲  김영욱 한국MS 에반젤리스트
▲ 김영욱 한국MS 에반젤리스트

윈도우10 IoT 코어가 이끄는 '보편적 개발'

[rel]윈도우10 IoT 코어는 개발자들이 그동안 쌓아온 개발 지식을 다양한 영역에 활용할 수 있도록 돕는다. 싱글보드컴퓨터와 스마트폰에 어울리는 앱을 따로 만드는 것이 아니라 동일한 도구과 언어를 활용해 접근할 수 있다. 더이상 다양한 디바이스에 어떻게 대응할지 고민하지 않아도 된다. 개발자는 무엇을 만들 것인가에 집중하면 된다.

윈도우10 IoT 코어가 갖는 의미는 다름아닌 보편적 개발이다. 일반 사용자는 IoT 개발에 쉽게 접근할 수 있도록 하고, 개발자는 좀 더 쉽게 IoT를 실제 업무나 개발에 활용할 수 있도록 이끈다.

김영욱 에반젤리스트는 “개발자는 앱 개발 방법론 하나만 배워도 여로 곳에서 활용할 수 있게 됐고, 개발자가 아닌 이들도 취미로 개발에 접근할 수 있게 됐다”라며 “무엇을 만들것인가를 생각하면, 정형화된 방법을 이용해 쉽게 개발을 진행할 수 있다”라고 설명했다.

저작권자 © 블로터 무단전재 및 재배포 금지