dev-weekly 2025-02-01


Node

My failed attempt to shrink all npm packages by 5%

  • npm 패키지는 gzip tarball 이기 때문에, Zopfli 로 압축하여 용량 줄이기
  • Zopfli를 사용하면 용량은 줄어들지만 압축해제가 약30배 느려짐. 본인의 라이브러리인 helmet에 적용하고 이후 npm에 제안, RFC 작성, 회의, 포기하기 까지의 과정

Troubles with multipart form data and fetch in Node.js

  • nodejs에서 fetch(undici)로 multipart form data를 전송할 때 이슈
  • multipart/form-data 스펙인 RFC 7578에 명시되어 있지는 않음. 그러나 저자가 사용한 Langflow API는 CRLF(\r\n)로 끝나야하고 그렇지 않으면 에러. curl과 같은 라이브러리들도 CRLF를 추가해줌.
  • undici V7.1.0 에서 업데이트되어 CRLF가 포함되게 됨.

The modern way to write JavaScript servers

  • nodejs의 기본 예제를 보면 createServer, listen 을 사용하는데 이는 소켓 바인딩이 필요.
  • 이제는 nodejs에서 fetch 사용이 가능하고, 이는 소켓 바인딩 없이 테스트 가능.

Javascript

A WebAssembly compiler that fits in a tweet

  • JS로 만든 192바이트 WASM 컴파일러.

    let c=(b,l)=>WebAssembly.instantiate(new Int8Array(
    [,97,115,109,1,,,,1,5,1,96,,1,127,3,2,1,,7,4,1,,,,10,
    l=(b=b.split` `.flatMap(t=>t>-1?[65,t]:107+'-*/'.indexOf(t)))
    .length+4,1,l-2,,...b,11]))

Squish - Batch Browser-based Image Compression

  • WASM을 활용한 브라우저 기반 이미지 압축 도구

Umbrella: CRA breaks with React 19, and CRA needs deprecation notices

  • CRA는 React 최신 버전이 설치되고 의존성인 @testing-library/react@13.0 는 peer dependency가 React18 로 되어 있음. 이로 인해 CRA가 깨지는 이슈 제기
  • CRA 에서 React 19 지원하도록 할 예정.

ETC

Things people get wrong about Electron

  • 일렉트론의 핵심은 웹 앱을 작성하려는 모든 네이티브 코드와 페어링 가능하다는 점. 1password는 대부분의 코드가 Rust로 작성됨
  • 모든 네이티브 앱이 웹 앱 보다 낫다고 하지만 시장은 그러한 정서를 반영하지 않음. 나사의 미션 컨트롤은 웹 기술로 작성됐고 블룸버그 터미널, 맥도날드 키오스크, spaceX의 Dragon 2 space capsule은 크로미움 사용.
  • OS Webview가 더 성능이 좋다는 주장은 내장 웹뷰가 크롬보다 성능이 더 좋다는것을 증명한 데이터를 본적이 없음.. 슬랙은 MacGap에서 시작했으나 일렉트론으로 변경.
  • 번들 크기 - 더 작은 것이 좋긴 하지만 소비자는 신경쓰지 않음
  • 일렉트론은 누군가와 경쟁하기 위해 존재하는 것이 아니라, 부족한 부분을 채우는 무료 오픈소스 커뮤니티의 노력

Considerations for making a tree view component accessible

  • github tree view의 접근성 작업
  • 보이스오버, 키보드 제어 등

Release