Special
목적은 개발자 기반 확대
제어 프로그램 개발자의 기반을 넓힌다. 기업들이 JavaScript 대응에 적극성을 보이는 목적이다.
JavaScript를 기기의 애플리케이션 개발에 이용하고자 하는 움직임 자체는 예전부터 있다. 예를
들어 각종 정보 단말을 위한 소프트웨어 플랫폼인 ‘Firefox OS’나 ‘Tizen’은 HTML5로 만든 애플
리케이션 소프트웨어를 실행 가능하게 했다.
그 목적은 앱의 크로스플랫폼화에 있었다. 디스플레이를 갖춘 단말의 대부분이 네트워크 접속 기
능을 갖추고 있으니 웹 브라우저를 애플리케이션 소프트웨어의 실행 기판으로 삼고자 한 것이다.
JavaScript 대응은 디스플레이나 웹 브라우저를 가지지 않은 기기에서 하드웨어 제어에
JavaScript를 이용하고자 하는 것이다. 언어의 특성이나 이용 상황을 고려하면 JavaScript의 선
택은 필연이라 할 수 있다.
JavaScript, 개발의 편의성과 오픈성
이유는 크게 3가지다. (1)JavaScript는 개발하기 쉽고 오픈된 성격을 갖추고 있다는 것 (2)웹 서비
스 개발자를 중심으로 JavaScript에서의 개발의 경험을 가지는 소프트웨어 기술자가 많이 있다
는 것 (3)디스플레이를 갖추지 않은 기기에서도 웹 서비스와의 접속이 당연해지는 것이다.
JavaScript는 (1)에서 언급했듯이 엄격한 메모리 관리가 필요없고 프로그래밍이 비교적 편리하며
어떤 플랫폼에서도 이용할 수 있는 오픈성을 갖췄다. 반도체나 개발 키트의 공급자가 이용자 확대
를 고려했을 때 JavaScript는 최적의 언어였다.
임베드 소프트웨어 개발에서 폭넓게 사용되는 C/C++ 언어는 개발의 자유도가 높은 대신에 난
이도도 높다. 하드웨어 제어를 위한 방법도 배워야 한다. 하지만 단순히 프로그래밍이 간단하다고
해서 많은 개발자가 모이는 것도 아니다. 특정 하드웨어나 개발 툴에 의존하는 등 제약이 있다면
자산이나 경험의 활용이 어려워지기 때문이다.
(2)의 많은 개발자는 서버측 JavaScript 실행 환경인 Node.js와 밀접한 관련이 있다. 웹 서비스 개
발자는 Node.js의 탄생에 의해 유저가 웹 브라우저에서 실행하는 프로그램만이 아니라 서버측
프로그램도 JavaScript로 기술하게 되었다.
유저의 행동을 데이터화하고 어떤 형태로 분석하여 다음 프로그램으로 살린다. 웹 서비스 개발자
의 일은 그러한 작업의 반복이다. 웹 서비스 시대에 JavaScript에 대한 풍부한 경험을 가진 개발
자는 많다. 그런 개발자를 하드웨어 개발로 보냄으로써 새로운 용도를 찾아야 한다.
(3)의 웹 서비스와의 접속은 JavaScript의 언어적인 특성과 관련된다. 복잡한 시간 관리를 요구하
지 않고 비동기로 함수 호출을 표준으로 지원하는 JavaScript는, 백그라운드에서 웹 서비스에 접
속하는 것에 적합하다. 게다가 비동기 함수 호출은 이벤트 구동형의 하드웨어의 프로그래밍에도
유효하다. 웹 서비스로의 액세스와 하드웨어의 제어를 함께 하여 실행하는 것에 JavaScript는 매
우 적합한 언어라고 할 수 있다.
사람의 웹에서 사물의 웹으로
JavaScript로 프로그래밍이 가능하게 되어 웹 서비스 개발 경험을 가진 개발자가 하드웨어 개발
을 하기 시작한다. 이것이 웹 브라우저 중심의 시대에서 IoT 시대로의 이행을 뒷받침할 것이다.
웹 브라우저가 주역이었던 시대는 유저의 조작에 따라 표시를 바꾸거나 새로운 데이터를 취득하
거나 했다. 서버에 축적하는 것은 유저 화면 내의 행동 이력이었다. IoT 시대에는 유저의 화면 내에
서의 움직임뿐 아니라 현실 공간에서의 유저의 행동, 주변 환경의 정보 등을 취득하고 축적하게
된다. 다양한 정보에 기초해 보다 고도의 데이터 분석이 가능해진다. 그리고 웹 서비스측으로부터
하드웨어를 구동하는 형태로 주변 환경이나 유저에게 어떤 액션을 일으킬 수도 있다.
& Mobile rnd
52