JS frameworks, React/Vue/Svelte, and runtime updates Compiled for immediate developer deployment.
calendar_todaysummarizeWeek 24-2026
article
WWDC26 소식: Safari 27 Beta의 WebKit
TAG: 브라우저
Safari 27 베타가 58개의 신기능과 525개의 버그 수정을 포함해 출시되었습니다 — 역대 Safari 릴리즈 중 가장 많은 수정 건수입니다. 주요 추가 사항으로는 appearance: base-select와 ::picker-icon, ::checkmark 등 새 pseudo-element를 활용한 customizable select, overflow-anchor를 통한 scroll anchoring, 그리고 동기 방식으로 보이는 Wasm 코드가 JavaScript Promise에서 중단될 수 있는 WebAssembly JSPI가 포함됩니다. JavaScript 섹션에서는 top-level await 정확성을 위해 ESM 로더를 C++로 완전 재작성했으며, test262 및 Web Platform Tests를 통해 검증되었습니다. CSS에는 :heading pseudo-class, revert-rule 키워드, box sizing용 stretch 키워드, transform 인식 anchor positioning이 추가되었습니다. ReadableStream API는 for await...of를 이용한 async 반복, ReadableStream.from() 정적 메서드, postMessage()를 통한 컨텍스트 간 전송을 지원합니다.
VoidZero가 2026년 5월 공식적으로 Cloudflare에 합류했으며, Vite, Vitest, Rolldown, Oxc는 Evan You의 리더십 아래 오픈소스, MIT 라이선스, 벤더 중립적 상태를 유지합니다. 가장 큰 기술적 이정표는 Vite 8을 구동하는 Rust 기반 번들러 Rolldown 1.0의 출시로, API 및 빌드 결과물 안정성, Rollup 플러그인 호환성, Rollup 대비 10-30배 빠른 빌드 속도(esbuild와 동등)를 제공합니다. Ramp, Beehiiv, Mercedes-Benz.io 등 초기 도입 기업들은 최대 64%의 빌드 시간 단축을 보고했습니다. Oxfmt는 25% 속도 향상과 Svelte 파일 포맷 지원을 추가했고, Oxlint는 LLM 가드레일용 에이전트 출력 모드를 도입했습니다. Vite+는 staged publishing, VS Code 통합, 낡은 Vite import 방지 내장 규칙을 추가했습니다.
실제 I/O를 수행하지 않는 함수에 async를 추가하면 반환 타입이 값에서 Promise로 바뀌어 모든 호출자, 테스트, 합성 유틸리티에 전파됩니다 — 이른바 함수 색칠 문제(function coloring problem)입니다. Matt Smith는 성능 오버헤드가 거의 진짜 문제가 아니라고 주장합니다. 비용은 인지적인 것입니다. 불필요한 async는 실제 I/O 경계가 어디에 있는지를 흐리게 하여, 스트리밍 SSR, React Server Components, 엣지 런타임, Suspense 렌더링으로 이미 포화된 현대 시스템에서 async 함수 시그니처를 오해의 소지가 있는 신호로 만듭니다. 그의 경험칙: async는 투기적인 미래 요구 사항이 아니라 실제 async 경계를 나타내야 합니다. 왜냐하면 이 키워드는 구현뿐 아니라 주변 코드 전체의 형태를 바꾸기 때문입니다.
Angular의 Resource API는 idle, loading, reloading, resolved, local, error 등 모든 상태 전환을 이전 값과 함께 캡처하는 ResourceSnapshot<T> 타입의 snapshot 속성을 노출합니다. Fanis Prodromou의 이 글은 snapshot을 linkedSignal 및 resourceFromSnapshots와 결합하여 fetch 중 resource.value가 null로 초기화될 때 발생하는 skeleton-loader 깜박임 없이 이전 데이터를 유지하는 방법을 보여줍니다. 에러 상태의 경우 내장 ResourceSnapshot 타입은 status: 'error'와 value를 함께 사용할 수 없어 프레임워크가 ResourceValueError를 발생시키므로, 이전 값을 저장하고 hasError signal을 노출하는 keepValueOnError 플래그를 갖춘 커스텀 resilientResource 함수를 소개합니다. 동일한 함수가 핸들러 파이프라인을 통해 두 가지 동작을 함께 구성합니다.
ESLint v10.5.0은 다섯 가지 핵심 규칙에 걸쳐 진단 개선 사항을 제공합니다. max-lines-per-function, max-nested-callbacks, max-statements 규칙은 이제 전체 함수 본문 대신 함수 헤더만 강조 표시하여 에디터에서의 시각적 노이즈를 줄입니다. max-depth와 no-with 규칙은 문제가 되는 키워드만 강조합니다. 또한 max-nested-callbacks의 스택 추적 수정과 max-depth의 else-if 체인 처리 수정으로 기존 코드베이스에서 새로운 린팅 오류가 발생할 수 있습니다. 문서 업데이트는 Node.js ICU 전제 조건과 parserOptions가 languageOptions보다 우선하는 규칙을 명확히 합니다.
TanStack Table V9는 전역 declaration merging을 대체하는 새로운 TFeatures 제네릭 기반의 모듈식 per-table 기능 시스템을 도입했습니다. 알파 버전은 table-core에서 TypeScript 인스턴시에이션이 123만 건에 달해 — V8의 기준치 78k 대비 14.7배 — 에디터 지연이 눈에 띄었습니다. beta.12에서는 266k까지 줄여(78.3% 감소) 모든 패키지에서 62-86%의 인스턴시에이션 감소를 달성했습니다. 주요 기법으로는 14개 분기의 UnionToIntersection조건부를 명명된 ExtractFeatureMapTypes 인터페이스로 대체, Table_Internal 재작성으로 내부 호출 시 feature-conditional 확장 방지, 166개 타입 파라미터에 in out 불변성 어노테이션 추가로 빠른 분산 기반 비교 활성화, 그리고 생성 헬퍼에 명시적 타입 인수 전달로 고비용 타입 추론 우회가 있습니다.
Kyle(Web Dev Simplified)이 최근 출시되었거나 출시 임박한 JavaScript 기능 11가지를 소개합니다. 모든 브라우저에서 동작하는 9가지 기능은 다음과 같습니다: Set 메서드(union, intersection, difference, symmetricDifference, isSubsetOf), iterator helpers(모든 이터레이터에서 map, filter, take, toArray), 동기/비동기 에러를 통합 처리하는 Promise.try, type: 'json'을 사용하는 import attributes, 사용자 입력 패턴을 안전하게 만드는 RegExp.escape, 비동기 이터러블을 위한 Array.fromAsync, 크로스-영역 검사를 위한 Error.isError, Map.prototype.getOrInsert와 getOrInsertComputed, 부동소수점 정밀도를 위한 Math.sumPrecise. Safari에서 아직 지원되지 않는 두 가지 보너스 기능: Symbol.dispose와 함께 using 키워드를 통한 명시적 리소스 관리, 그리고 시간대, 기간, 형식화 지원을 갖춘 완전한 Date 대체제인 Temporal API.
Safari 27 베타가 58개의 신기능과 525개의 버그 수정을 포함해 출시되었습니다 — 역대 Safari 릴리즈 중 가장 많은 수정 건수입니다. 주요 추가 사항으로는 appearance: base-select와 ::picker-icon, ::checkmark 등 새 pseudo-element를 활용한 customizable select, overflow-anchor를 통한 scroll anchoring, 그리고 동기 방식으로 보이는 Wasm 코드가 JavaScript Promise에서 중단될 수 있는 WebAssembly JSPI가 포함됩니다. JavaScript 섹션에서는 top-level await 정확성을 위해 ESM 로더를 C++로 완전 재작성했으며, test262 및 Web Platform Tests를 통해 검증되었습니다. CSS에는 :heading pseudo-class, revert-rule 키워드, box sizing용 stretch 키워드, transform 인식 anchor positioning이 추가되었습니다. ReadableStream API는 for await...of를 이용한 async 반복, ReadableStream.from() 정적 메서드, postMessage()를 통한 컨텍스트 간 전송을 지원합니다.
Kyle(Web Dev Simplified)이 최근 출시되었거나 출시 임박한 JavaScript 기능 11가지를 소개합니다. 모든 브라우저에서 동작하는 9가지 기능은 다음과 같습니다: Set 메서드(union, intersection, difference, symmetricDifference, isSubsetOf), iterator helpers(모든 이터레이터에서 map, filter, take, toArray), 동기/비동기 에러를 통합 처리하는 Promise.try, type: 'json'을 사용하는 import attributes, 사용자 입력 패턴을 안전하게 만드는 RegExp.escape, 비동기 이터러블을 위한 Array.fromAsync, 크로스-영역 검사를 위한 Error.isError, Map.prototype.getOrInsert와 getOrInsertComputed, 부동소수점 정밀도를 위한 Math.sumPrecise. Safari에서 아직 지원되지 않는 두 가지 보너스 기능: Symbol.dispose와 함께 using 키워드를 통한 명시적 리소스 관리, 그리고 시간대, 기간, 형식화 지원을 갖춘 완전한 Date 대체제인 Temporal API.
VoidZero가 2026년 5월 공식적으로 Cloudflare에 합류했으며, Vite, Vitest, Rolldown, Oxc는 Evan You의 리더십 아래 오픈소스, MIT 라이선스, 벤더 중립적 상태를 유지합니다. 가장 큰 기술적 이정표는 Vite 8을 구동하는 Rust 기반 번들러 Rolldown 1.0의 출시로, API 및 빌드 결과물 안정성, Rollup 플러그인 호환성, Rollup 대비 10-30배 빠른 빌드 속도(esbuild와 동등)를 제공합니다. Ramp, Beehiiv, Mercedes-Benz.io 등 초기 도입 기업들은 최대 64%의 빌드 시간 단축을 보고했습니다. Oxfmt는 25% 속도 향상과 Svelte 파일 포맷 지원을 추가했고, Oxlint는 LLM 가드레일용 에이전트 출력 모드를 도입했습니다. Vite+는 staged publishing, VS Code 통합, 낡은 Vite import 방지 내장 규칙을 추가했습니다.
실제 I/O를 수행하지 않는 함수에 async를 추가하면 반환 타입이 값에서 Promise로 바뀌어 모든 호출자, 테스트, 합성 유틸리티에 전파됩니다 — 이른바 함수 색칠 문제(function coloring problem)입니다. Matt Smith는 성능 오버헤드가 거의 진짜 문제가 아니라고 주장합니다. 비용은 인지적인 것입니다. 불필요한 async는 실제 I/O 경계가 어디에 있는지를 흐리게 하여, 스트리밍 SSR, React Server Components, 엣지 런타임, Suspense 렌더링으로 이미 포화된 현대 시스템에서 async 함수 시그니처를 오해의 소지가 있는 신호로 만듭니다. 그의 경험칙: async는 투기적인 미래 요구 사항이 아니라 실제 async 경계를 나타내야 합니다. 왜냐하면 이 키워드는 구현뿐 아니라 주변 코드 전체의 형태를 바꾸기 때문입니다.
Angular의 Resource API는 idle, loading, reloading, resolved, local, error 등 모든 상태 전환을 이전 값과 함께 캡처하는 ResourceSnapshot<T> 타입의 snapshot 속성을 노출합니다. Fanis Prodromou의 이 글은 snapshot을 linkedSignal 및 resourceFromSnapshots와 결합하여 fetch 중 resource.value가 null로 초기화될 때 발생하는 skeleton-loader 깜박임 없이 이전 데이터를 유지하는 방법을 보여줍니다. 에러 상태의 경우 내장 ResourceSnapshot 타입은 status: 'error'와 value를 함께 사용할 수 없어 프레임워크가 ResourceValueError를 발생시키므로, 이전 값을 저장하고 hasError signal을 노출하는 keepValueOnError 플래그를 갖춘 커스텀 resilientResource 함수를 소개합니다. 동일한 함수가 핸들러 파이프라인을 통해 두 가지 동작을 함께 구성합니다.
ESLint v10.5.0은 다섯 가지 핵심 규칙에 걸쳐 진단 개선 사항을 제공합니다. max-lines-per-function, max-nested-callbacks, max-statements 규칙은 이제 전체 함수 본문 대신 함수 헤더만 강조 표시하여 에디터에서의 시각적 노이즈를 줄입니다. max-depth와 no-with 규칙은 문제가 되는 키워드만 강조합니다. 또한 max-nested-callbacks의 스택 추적 수정과 max-depth의 else-if 체인 처리 수정으로 기존 코드베이스에서 새로운 린팅 오류가 발생할 수 있습니다. 문서 업데이트는 Node.js ICU 전제 조건과 parserOptions가 languageOptions보다 우선하는 규칙을 명확히 합니다.
TanStack Table V9는 전역 declaration merging을 대체하는 새로운 TFeatures 제네릭 기반의 모듈식 per-table 기능 시스템을 도입했습니다. 알파 버전은 table-core에서 TypeScript 인스턴시에이션이 123만 건에 달해 — V8의 기준치 78k 대비 14.7배 — 에디터 지연이 눈에 띄었습니다. beta.12에서는 266k까지 줄여(78.3% 감소) 모든 패키지에서 62-86%의 인스턴시에이션 감소를 달성했습니다. 주요 기법으로는 14개 분기의 UnionToIntersection조건부를 명명된 ExtractFeatureMapTypes 인터페이스로 대체, Table_Internal 재작성으로 내부 호출 시 feature-conditional 확장 방지, 166개 타입 파라미터에 in out 불변성 어노테이션 추가로 빠른 분산 기반 비교 활성화, 그리고 생성 헬퍼에 명시적 타입 인수 전달로 고비용 타입 추론 우회가 있습니다.
이번 주 JavaScript 소식은 두 가지 중요한 플랫폼 이벤트가 주목을 받았습니다. WWDC26에서 공개된 Safari 27 Beta는 58개의 신기능과 역대 최다인 525개의 버그 수정을 탑재했으며, 올바른 top-level await를 위한 ESM 로더의 C++ 완전 재작성, WebAssembly JavaScript Promise Integration(JSPI), for await...of를 이용한 async 반복 및 postMessage()를 통한 컨텍스트 간 전송을 지원하는 개선된 ReadableStream API가 포함되어 있습니다. 한편 VoidZero는 공식적으로 Cloudflare에 합류하면서도 Vite, Vitest, Rolldown, Oxc의 오픈소스 상태를 유지했으며, 핵심 이정표는 Rollup 대비 10~30배 빠른 빌드를 제공하는 Rust 기반 번들러 Rolldown 1.0으로, Ramp와 Mercedes-Benz.io 등 초기 도입 기업들의 빌드 시간을 최대 64%까지 단축하고 있습니다.
라이브러리 및 도구 분야에서는 TanStack Table V9가 심층적인 TypeScript 성능 최적화를 선보였습니다. TFeatures 제네릭 도입, UnionToIntersection조건부를 ExtractFeatureMapTypes 인터페이스로 대체, in/out 분산 어노테이션 추가를 통해 인스턴시에이션을 123만 건에서 266k로 78.3% 줄였습니다. ESLint v10.5.0은 max-lines-per-function 등의 규칙이 함수 전체 본문 대신 헤더만 강조하는 진단 개선을 제공했습니다. Angular의 Resource API snapshot 속성도 심층적으로 탐구되어, linkedSignal과 커스텀 resilientResource 함수를 통해 데이터 fetching 중 skeleton-loader 깜박임을 방지하는 방법이 소개되었습니다.
보다 넓은 생태계 관점에서는 Set 메서드(union, intersection, difference), iterator helpers, Promise.try, RegExp.escape, Array.fromAsync, Error.isError, Map.prototype.getOrInsert, Math.sumPrecise 등 지금 당장 사용 가능한 11가지 크로스 브라우저 JavaScript 기능이 소개되었습니다. Safari에서 아직 지원되지 않는 using 키워드와 Symbol.dispose를 활용한 명시적 리소스 관리 및 Temporal API가 추가로 다루어졌으며, 불필요한 async 키워드 사용이 전체 호출 체인에 Promise 반환 타입을 전파시켜 숨겨진 인지적 비용을 초래한다는 모범 사례 관련 내용도 논의되었습니다.
Key Takeaways
Vite 8을 구동하는 Rust 번들러 Rolldown 1.0이 프로덕션 준비 완료 상태로, Rollup 플러그인 완전 호환과 함께 10~30배 빌드 속도 향상을 제공합니다 — 초기 도입 기업들은 최대 64%의 빌드 시간 단축을 보고하고 있습니다.
Safari 27 Beta의 ESM 로더 재작성과 WebAssembly JSPI는 이번 주 가장 중요한 브라우저 수준 JavaScript 발전이지만, Set 메서드·Promise.try·Temporal 등 11가지 크로스 브라우저 기능은 오늘부터 모든 주요 엔진에서 바로 사용할 수 있습니다.
TanStack Table V9는 분산 어노테이션과 명명된 인터페이스를 통해 TypeScript 인스턴시에이션을 78% 줄였으며, 이는 대규모 제네릭 라이브러리 성능 최적화의 교과서적 사례입니다.