Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- device in use
- vercel git lfs
- rolldown
- camera permission
- 이미지 데이터 타입
- react-native
- silent printing
- Each child in a list should have a unique "key" prop.
- 티스토리 성능
- augmentedDevice
- Recoil
- custom printing
- npm package
- Failed to compiled
- Can't resolve
- adb connect
- github pdf
- react-native-dotenv
- adb pair
- ELECTRON
- github 100mb
- html
- nextjs
- Git
- github lfs
- animation
- camera access
- dvh
- ffi-napi
- electron-packager
Archives
- Today
- Total
Bleeding edge
Electron으로 윈도우 앱을 만들면서 알게된 5가지 본문
최근에 데스크탑 어플리케이션을 만들면서 새로 알게된 것이 있다.
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에서 접근한다면 공유되지 않은 라이브러리라고 심판을 받을 수 있다.
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