프론트엔드 뉴스레터
#21
이번 이슈 한눈에
- Node.js 22·24·26, 원격 코드 실행으로 이어질 수 있는 Brotli 취약점 수정
- WCAG 3 초안, 표준 준수와 추가 접근성 성과 보고를 분리
- ThinkRail, 에이전트 실행 전후의 실제 파일 변경을 모아 검토
- Owner, 캐시·hydration 구조를 바꿔 메뉴 페이지 LCP 개선
- 01
nodejs.org
Node.js 22·24·26, Brotli 메모리 손상 취약점을 고쳤어요
원문 읽기 ↗Node.js가 10월 21일 공개한 보안 업데이트에서 Brotli decoder의 high 등급 취약점을 수정했어요. 22.x·24.x·26.x에서 애플리케이션이 공격자가 제공한 Brotli 데이터를
node:zlib로 압축 해제하면, 잘못된 입력이 내부 버퍼를 넘어서 기록될 수 있습니다. 프로세스 메모리가 손상돼 충돌이나 메모리 유출, 원격 코드 실행으로 이어질 수 있어요.각 계열의 수정 버전은 22.23.4·24.22.1·26.12.1입니다. 해당 계열을 사용한다면 보안 수정이 포함된 버전으로 업데이트해야 해요.
- 02
tetralogical.com
WCAG 3 초안, 필수 요구사항과 추가 접근성 성과를 나눠요
원문 읽기 ↗WCAG 3 초안은 모든 core requirement를 충족하면 표준을 준수한 것으로 보고, 추가 요구사항과 조직의 접근성 개선 절차는 별도로 보고하는 모델을 제안해요. 사용자 테스트나 직원 교육처럼 조직이 실제로 수행하는 활동도 문서화해 평가에 반영하려는 겁니다.
Léonie Watson은 10월 15일 해설에서 WCAG AA 통과가 접근성 개선의 종착점처럼 굳어진 문제를 짚었어요. 새 모델은 필수 기준을 충족한 뒤의 개선도 드러내려 합니다.
- 아직 Working Draft 단계입니다. Bronze·Silver·Gold 등의 보고 방식도 논의 중이며, 확정된 새 준수 기준으로 적용하는 단계는 아니에요.
- 03
news.hada.io
ThinkRail 0.2.0, 에이전트가 실제로 바꾼 파일을 실행별로 보여줘요
원문 읽기 ↗ThinkRail 0.2.0은 에이전트 실행 전후의 worktree를 비교해, 그 실행에서 달라진 파일을 하나의 diff 화면으로 보여줘요. 에이전트의 도구 호출 기록에 의존하지 않아 shell 명령이나 formatter가 바꾼 내용도 포함합니다.
전체 브랜치 diff에서는 변경 덩어리별로 유지·되돌리기를 선택하거나 에이전트에 질문할 수 있어요. 검토한 부분을 에이전트가 다시 수정하면 검토 표시도 해제됩니다.
- JetBrains의 Apache-2.0 프로젝트로, 작업마다
git worktree를 분리하고 코드 옆의SPEC.md를 에이전트가 읽고 갱신해 세션 사이에 프로젝트 지식을 유지해요. - 실행 한 번의 diff 화면은 읽기 전용이며, 변경 유지·되돌리기는 전체 브랜치 diff에서 수행합니다.
- JetBrains의 Apache-2.0 프로젝트로, 작업마다
- 04
building.owner.com
Owner, React hydration과 HTML 캐시 구조를 바꿔 메뉴 LCP를 줄였어요
원문 읽기 ↗Owner가 1만 곳 이상의 식당 사이트를 Next.js에서 Astro로 옮긴 과정을 공개했어요. 기존 구조는 배포할 때 캐시가 비워지고, 페이지에 필요하지 않은 지점·메뉴 데이터까지 불러와 응답이 늦어졌습니다.
새 구조는 HTML을 edge와 R2에 보관하고, 식당 정보가 바뀌면 해당 페이지를 background에서 갱신해요. 주문 화면에는 React island를 남겨 필요한 부분만 hydration하도록 바꾸는 등 여러 개선을 적용한 뒤, 실사용자 측정 기준 메뉴 페이지 p75 LCP가 5.4초에서 0.7초로 줄었습니다.
- 전환은 2026년 1월 전체 트래픽에 적용됐고, 이번 글은 10월 13일 공개한 사례 설명입니다.
- 로그인·결제·주문 상태처럼 사용자별로 달라지는 페이지는 공유 HTML 캐시에서 제외했어요.