Fork me on GitHub

2023-02-20: Sandpack 2.0, Safari 16.4 Beta, React 다큐멘터리

Translator: rewrite0w0(Oh TaeJun) Edit on GitHub See Revisions

JSer.info #632 - 브라우저에서 코드 편집과 프리뷰가 가능한 Sandpack 2.0가 출시되었습니다.

Sandpack 2.0에는, Node.js 코드를 브라우저에서 실행할 수 있는 Nodebox 기능이 추가되었습니다.
지난주, API로 이용가능했던 WebContainers와 구조는 닮았습니다.

Sandpack에는, 완벽한 Node.js 에뮬레이터라기보다, Node.js로 작성된 도구나, 애플리케이션 실행을 목적으로 하고 있습니다.
또한, SharedArrayBuffer 등 cross origin isolation한 환경에서 밖에 사용할 수 없던 API를 피함으로, 다양한 곳에서 동작할 수 있습니다.

한 편 WebContainers는, SharedArrayBuffer가 필요하므로, COOP/COEP 헤더를 설정한 페이지가 필요로합니다.


Safari 16.4 Beta가 출시되었습니다.

Safari 16.4 Beta에서, 주요한 변경만 나열해도, 상당할 정도의 기능 추가가 포함되어있습니다.

  • CSS Typed Object Model API 지원, Constructable Stylesheets 지원
  • Declarative Shadow DOM, EmentInternals, Imperative Slot API 지원
  • RegExp lookbehind assertions, import.meta.resolve, Atomics.waitAsync, Import Maps 지원
  • iframe loading=lazy, Clear-Site-Data HTTP 헤더 지원
  • AudioSession Web API 서브셋 지원, Web Codecs API 일부를 지원
  • WebAssembly SIMD, OffscreenCanvas(2D만), Compression Streams API 지원
  • Fetch Metadata Request Headers, Scroll to Text Fragment 지원
  • Screen Orientation API, Screen Wake Lock API, UserActivation API 지원
  • 홈 화면에서 추가한 Web 애플리케이션 한정 푸쉬 알림, Badge APIを지원
  • Web Inspector 개선, WebDriver에서 Shadow Roots 지원, Cookie의 SameSite 속성 지원
  • Lockdown 모드에서 캐시 API 무효화 등

홈 화면에서 추가한 Web 애플리케이션 한정 푸쉬 알림, Badge API 등 흔히 말하는 PWA에 대해, 다음 글에 해설되어 있습니다.


React.js 다큐멘터리가 공개되었습니다.

Facebook에서 React 탄생에서 현재까지를 돌아보는 형식으로, React 역사를 소개하고 있습니다.
또한, React 유저 시점에서 쓴 글도 공개되었습니다.


To support JSer.info


헤드라인


Firefox 110.0, See All New Features, Updates and Fixes

www.mozilla.org/en-US/firefox/110.0/releasenotes/

Firefox ReleaseNote

Firefox 110 출시.
Container Queries 지원, Error stack 프로퍼티가 serialize(직렬화)된 경우에 포함되도록 변경.
ReadableStream가 Async Iterable로 이용할 수 있도록 등


Announcing Sandpack 2.0 and a Node.js runtime for any browser

codesandbox.io/blog/announcing-sandpack-2

JavaScript node.js browser ReleaseNote

Sandpack 2.0 출시.
브라우저에서 Node.js 코드를 실행할 수 있는 Nodebox 추가.
WebContainers와 차이로, Nodebox는 샘플코드 실행이 목적이므로, 완전한 Node.js 에뮬레이터가 아닌 점. 한편으로 SharedArrayBuffer를 사용하지 않으므로 다양한 환경에서 동작하는 점 등이 있다.


Release v0.200.0 · facebook/flow

github.com/facebook/flow/releases/tag/v0.200.0

flowtype ReleaseNote

Flow v0.200.0 출시.
generics-escape 문제 개선, 엄격하게 자료형 체크, 수치와 날짜 비교를 허용하지 않도록 등.
flow autofixmissing-local-annot를 추가 등


Release v9.5.0 · npm/cli

github.com/npm/cli/releases/tag/v9.5.0

npm ReleaseNote

npm v9.5.0 출시.
npm publish --provenance 지원. 현시점에는 GitHub Actions에서만 한정적 지원하며, OIDC를 사용해서 CI로 publish 지원하기 위한 구조.


Thursday February 16 2023 Security Releases | Node.js

nodejs.org/en/blog/vulnerability/february-2023-security-releases/

node.js security news

Node.js 보안 업데이트.
Node.js v18.14.1 (LTS)/v19.6.1 (Current)/v16.19.1 (LTS)/v14.21.3 (LTS)가 각각 출시되었다.


Release v3.0.0 · honojs/hono

github.com/honojs/hono/releases/tag/v3.0.0

JavaScript server library ReleaseNote

Hono 3.0.0 출시.
reqRequest 오브젝트 확장한 HonoRequest 오브젝트로 변경, StaticRouter 폐지, Validator 변경.
zod와 조합해서 router에서 리스폰스 자료형 정의를 작성할 수 있는 jsonT와 이를 이용하는 클라이언트 hono/client 추가.
wintercg의 Runtime Keys의 이름을 반환하는 runtime() 추가 등


Release v5.0.0-alpha.0 · chaijs/chai

github.com/chaijs/chai/releases/tag/v5.0.0-alpha.0

JavaScript testing library ReleaseNote

chai v5.0.0-alpha.0 출시.
Pure ESM 패키지 변경.
Node.js 16 미만 지원 종료, IE 지원 종료 등


Safari 16.4 Beta Release Notes | Apple Developer Documentation

developer.apple.com/documentation/safari-release-notes/safari-16_4-release-notes

safari ReleaseNote

Safari 16.4 Beta 출시.

  • CSS Typed Object Model API 지원, Constructable Stylesheets 지원
  • Declarative Shadow DOM, EmentInternals, Imperative Slot API 지원
  • RegExp lookbehind assertions, import.meta.resolve, Atomics.waitAsync, Import Maps 지원
  • iframe loading=lazy, Clear-Site-Data HTTP 헤더 지원
  • AudioSession Web API 서브셋 지원, Web Codecs API 일부를 지원
  • WebAssembly SIMD, OffscreenCanvas(2D만), Compression Streams API 지원
  • Fetch Metadata Request Headers, Scroll to Text Fragment 지원
  • Screen Orientation API, Screen Wake Lock API, UserActivation API 지원
  • 홈 화면에서 추가한 Web 애플리케이션 한정 푸쉬 알림, Badge APIを지원
  • Web Inspector 개선, WebDriver에서 Shadow Roots 지원, Cookie의 SameSite 속성 지원
  • Lockdown 모드에서 캐시 API 무효화 등

읽을거리


State of React Native 2022

results.stateofreactnative.com/

React Native Survey

React Native 개발자 앙케이트 State of React Native 2022 결과가 공개되었다.


My talk on CSS runtime performance | Read the Tea Leaves

nolanlawson.com/2023/01/17/my-talk-on-css-runtime-performance/

CSS performance article video

CSS의 Runtime Performance에 대한 영상.
CSS Selector 동작과 비용, 레이아웃 퍼포먼스와 CSS Containment, 디버그 방법에 대하여


How to Inspect Interactions in the Browser

www.builder.io/blog/inspect-interactions-in-the-browser

Chrome debug article

Chrome DevTools의 Emulate a focused page를 사용해 Hover나 Focus 중에 나오는 요소를 Inspect하는 방법에 대하여


Popover API - JavaScript없이, HTML만으로 팝오버 UI

zenn.dev/yusukehirao/articles/popover-api-and-attributes

HTML accessibility article

HTML의 popover 속성에 대하여.


Try out CSS Nesting today | WebKit

webkit.org/blog/13813/try-css-nesting-today-in-safari-technology-preview/

CSS article

CSS Nesting를 Safari Technology Preview에서 이용할 수 있게되어, 사용 방법에 대한 소개 글


슬라이드, 영상


React.js: The Documentary - YouTube

www.youtube.com/watch?v=8pDqJVdNa44

React video

React 다큐멘터리.
Facebook에서 React 탄생, Bolt.js 선택, 오픈소스 공개와 최초의 실패, 설계 원칙, 외부에서 Contributor 채용, React팀에 대하여


소프트웨어, 도구, 라이브러리


codesandbox/nodebox-runtime: The open source version of the nodebox repository, a Node.js runtime for the browser

github.com/codesandbox/nodebox-runtime

node.js browser JavaScript library

Node.js 코드를 브라우저에서 동작시키기 위해 Node.js 호환 런타임을 구현한 라이브러리.


Pull Request to this article
JSer.info Slackに参加する