프론트엔드 뉴스레터
#14
이번 이슈 한눈에
- Chrome 158부터 브라우저 내 XSLT 변환 지원 종료 예정
- Vercel 운영 환경에서 호스트 메모리 유출 재현, 완화 조치 적용
- DeepSeek Search·Fetch API 공개, 성공 요청 1,000건당 각각 0.75달러
- CSS 변수로 아이콘을 고르고 글자색에 맞춰 표시하는 구현
- 01
news.hada.io
Chrome이 XML을 화면으로 바꾸는 XSLT 지원을 종료해요
원문 읽기 ↗사이트맵이나 RSS를 브라우저에서 열면 XML 데이터가 표처럼 정리되어 보이기도 해요. 이런 화면은 브라우저가 XSLT라는 기술로 XML을 HTML 같은 형태로 바꿔 만든 것일 수 있습니다.
2026년 11월 17일 출시 예정인 Chrome 158부터는 XML에 연결한 XSLT 스타일시트와 JavaScript의
XSLTProcessor를 통한 변환을 지원하지 않아요. 이 변환에 의존하던 화면이나 애플리케이션 기능은 작동을 멈출 수 있습니다. 사이트맵과 RSS의 XML 데이터 자체는 유지되며, XML을 가져와 읽는 검색 크롤링에도 변화가 없어요.- 기업 정책이나 오리진 트라이얼로 사용을 연장할 수 있지만, 이 유예도 2027년 8월 17일 출시 예정인 Chrome 176에서 끝나요.
- 02
news.hada.io
Vercel Sandbox에서 확인된 서버 메모리 유출 취약점
원문 읽기 ↗가상 머신은 한 서버 안에서 별도의 컴퓨터처럼 운영체제와 코드를 실행하는 공간이에요. Vercel Sandbox 보안 조사에서는 가상 머신이 보낸 네트워크 패킷으로, 가상 머신을 실행하는 서버인 호스트의 메모리를 읽을 수 있는 Linux 취약점이 발견됐어요. 호스트가 패킷의 오류 검사 정보를 제대로 검증하지 않은 것이 원인입니다.
메모리 유출은 Vercel 운영 환경에서도 재현됐어요. Vercel은 완화 조치를 적용했으며, 고객 파일·비밀 정보·애플리케이션 데이터에 접근했다는 보고는 없었다고 밝혔습니다.
- 호스트 충돌과 관리자 권한으로 코드를 실행하는 공격은 연구자 소유의 KVM·Firecracker 환경에서 입증됐어요. Vercel 운영 환경에서도 확인된 결과는 아닙니다.
- 03
news.hada.io
DeepSeek가 웹 검색과 페이지 본문 가져오기 API를 공개했어요
원문 읽기 ↗DeepSeek가 2026년 10월 17일 웹 검색용 Search API와 페이지 본문을 가져오는 Fetch API를 공개했어요. Search는 검색어에 맞는 웹페이지 정보를 구조화된 결과로 돌려주고, Fetch는 한 페이지의 본문을 Markdown으로 반환합니다. 두 API를 직접 호출할 때의 요금은 각각 성공 요청 1,000건당 0.75달러예요.
DeepSeek Harness·Claude Code·Codex 같은 코딩 도구에서 DeepSeek API에 작업을 요청하면, 그 요청을 처리하는 DeepSeek 서버가 검색이나 페이지 본문을 가져오기 위해 Search·Fetch를 호출할 수도 있어요. 이런 서버 측 호출은 이 이슈의 발행 시점에는 무료이며, 2026년 11월 1일 베이징 시간 00시부터 건별 과금될 예정입니다.
- HTTP 200 응답과 실제 결과가 모두 있어야 과금돼요. Search는 비어 있지 않은 검색 결과를, Fetch는 페이지 본문을 반환해야 하며, 실패 요청·빈 검색 결과·타임아웃에는 요금이 붙지 않습니다.
- 04
lea.verou.me
CSS로 아이콘을 고르고 글자색으로 칠하기
원문 읽기 ↗Lea Verou가 요소마다 SVG 마크업을 넣는 대신, CSS 변수에 아이콘 이미지를 지정해 글자 앞뒤에 표시하는 구현을 공개했어요. CSS로 글자 앞뒤에 가상 요소를 만들고,
mask로 아이콘 모양만 보이게 합니다. 여기에 요소의 글자색을 뜻하는currentColor로 색을 채우면 아이콘도 글자와 같은 색이 돼요.HTML을 바꾸지 않고도 선택자나 미디어 쿼리에서 아이콘과 색상을 바꿀 수 있어요.
- Safari에는 스타일 조건 갱신과 속성 상속에 관한 버그가 있어, 원문 구현을 쓰려면 우회 처리도 필요해요.
- 텍스트 없이 아이콘만 있는 버튼에는
aria-label등으로 접근 가능한 이름을 따로 제공해야 해요.