웹 개발자라면 보통 FFI나 serialport 등에 대해서 다룰 일이 많지 않거나, 다룰 일이 없는 경우가 대부분이지 않을까.
그렇지만 하드웨어와 관련된 작업을 한다면, 수단과 방법을 가리지 않고 하드웨어와 연결하고 요청/응답을 어떻게든 구현해야겠지. 보통 제조사에서 제공하는 SDK에는 JavaScript가 없다고 봐야 한다. 만약 있더라도 jQuery나 OCX를 이용해서 예제를 보여주는 경우만 있다. 일반적으로 Web + Hardware라고 하면 Webcam을 이용한 프로젝트 등으로 접하는 경우가 많고, 산업 장비나 모듈 등을 붙이는 경우는 특수한 경우 이외에는 생각하지 않는다.
과제는 던져지고, Electron에 현실 세계의 하드웨어를 붙이기 위해서 serialport나, ffi, 그 외 native modules를 쓰다보면 node-gyp, windows build tools와 많이 부딪히고 절망하고 싸우고 포기하다가 다시 돌아와서 사투를 벌이게 된다. build도 잘 안되고, packaging한 뒤 install하면 또 에러가 뜨면서 개발자 머릿 속을 뒤집어 놓는다.
Electron project의 bundler 설정이 문제가 되거나, node.js 버전에 영향을 받거나 (그래서 nvm이 없으면 시체가 된다) 또는 architecture에 따라서 될 때도 있고 안될 때도 있는 슈뢰딩거의 하드웨어 붙이기.
그나마 제조사에서 TCP/IP 프로토콜을 사용하는 서버나 에이전트를 제공한다면 마음의 짐이 많이 덜어질 것이다. 그런데 아무것도 없고, 내게 주어진 것이 PDF 문서와 DLL만 있다면 어떻게 할 것인가? 하드웨어를 직접 제어한다고?
그래도 문서에 연결 방식과 세부 사항이 잘 나와 있으면 어찌저찌해서 하드웨어를 깨울 순 있다. 일어나서 3V/9V/12V/24V 먹고 일해야지. 그것 조차 없으면 DLL로 직접 하드웨어를 건드릴 수 밖에. 웹 개발자에게 하드웨어를 끼얹으면... 쉽진 않지만 뭔가 현실에서 일이 벌어질 수 있고, 호기심이 가득한 초기라면 가슴이 웅장해질 수도 있겠다.
'Cross Platform > Electron' 카테고리의 다른 글
[Electron] windows build tools와 node-gyp (0) | 2023.07.12 |
---|---|
[Electron] 도입 회고 (0) | 2023.07.11 |