Bleeding edge

Electron으로 윈도우 앱을 만들면서 알게된 5가지 본문

카테고리 없음

Electron으로 윈도우 앱을 만들면서 알게된 5가지

codevil 2024. 1. 2. 22:59

최근에 데스크탑 어플리케이션을 만들면서 새로 알게된 것이 있다.

1. Serial port 연결은 브라우저에서도 가능하다

nodejs에서는 serialport 라이브러리를 이용할 수 있다는 것은 알고 있었지만, 브라우저에서 이렇게 다른 시리얼 포트로 연결하는 기능이 있는 줄은 몰랐다.

const port = await navigator.serial.requestPort();
await port.open({ baudRate: 9600 });


const reader = port.readable.getReader();
const readReader = await reader.read();

if (readReader.done) reader.releaseLock();

const writer = port.writable.getWriter();
await writer.write(new Uint8Array([0x01, 0x02, ...]));
writer.releaseLock();

 

2. DLL파일이란?

윈도우로 뭔가를 설치하다보면 자주 보던 파일인데 뭐하는 파일일까..? 했었는데 이번에 카드 단말기 연결을 하면서 알게되었다. DLL은 Dynamic Link Library를 의미하며 사용할 수 있는 코드 및 데이터의 집합을 포함하는 파일이다. 아마 dll파일을 decode를 해보면 encode 되어있던 파일들을 볼 수 있을 것이다.

 

3. DLL은 윈도우 전용이다.

DLL은 ffi-napi나 koffi와 같은 라이브러리를 이용하여 Node.js에서 쉽게 이용할 수 있다.(사용방법도 크게 다르지 않다) 다만 DLL은 마이크로소프트 윈도우에서 구현된 동적라이브러리로 윈도우 전용이다.(맥에도 dylib과 같은 비슷한 종류의 확장자가 존재하긴 한다) 

 

4. DLL에는 32-bit, 64-bit가 존재한다

종종 웹사이트에서 프로그램을 설치하다보면 32-bit인지 64-bit인지 확인하고 설치하는 경우가 있다. DLL 역시 마찬가지로 DLL을 확인하고 사용해야한다. 만일 32-bit DLL인데 64-bit에서 접근한다면 공유되지 않은 라이브러리라고 심판을 받을 수 있다. 

32-bit야 64-bit야!

DLL의 아키텍쳐 확인하는 방법 예시 1)

 

확장자 exe, dll 파일의 비트(32bit, 64bit)확인하는 방법

예를들어 가끔 exe파일이나 dll 파일을 로드할 경우가 생기는데, 32bit 같은 경우는 모든 프로세서에서 사용이 가능하지만 64bit는 64bit의 프로세서가 필요하다. 일단 기존 파일의 속성을 확인 tcnative

docu94.tistory.com

 

 

5. NVM으로 Node에서 실행되는 아키텍쳐를 변경할 수 있다

NVM으로 노드 버전만 바꾸어서 몰랐는데, NVM에는 아키텍쳐를 변경하는 기능도 있었다. NVM으로 아키텍쳐를 바꾸는 방법은 다음과 같다.

5-1) 노드버전 확인하기

node --version//v20.8.0

 

5-2) 사용하려는 노드 아키텍쳐 설치

예시는 v20.8.0의 32-bit 아키텍쳐이다.

nvm install v20.8.0 32

 

5-3) 노드 아키텍쳐 적용

nvm use v20.8.0 32