본문으로 건너뛰기

V8 릴리즈 v7.7

· 약 3분
Mathias Bynens ([@mathias](https://twitter.com/mathias)), 릴리즈 노트의 게으른 작성자

6주마다 우리는 릴리즈 프로세스의 일환으로 새 V8 브랜치를 생성합니다. 각 버전은 Chrome 베타 마일스톤 직전에 V8의 Git 마스터에서 브랜치됩니다. 오늘 우리는 최신 브랜치인 V8 버전 7.7을 발표하게 되어 기쁩니다. 이 버전은 수 주 후에 Chrome 77 안정 버전과 함께 릴리즈될 때까지 베타 상태에 있습니다. V8 v7.7은 개발자에게 유용한 다양한 기능으로 가득 차 있습니다. 이 글은 릴리즈를 앞두고 주요 기능의 미리보기를 제공합니다.

Emscripten과 LLVM WebAssembly 백엔드

· 약 10분
Alon Zakai

WebAssembly는 일반적으로 소스 언어에서 컴파일되며, 이는 개발자가 WebAssembly를 사용하기 위해 도구가 필요함을 의미합니다. 그렇기 때문에 V8 팀은 LLVM, Emscripten, Binaryen, WABT와 같은 관련 오픈 소스 프로젝트에서 작업하고 있습니다. 이 게시물은 Emscripten과 LLVM에서 우리가 수행해 온 작업을 설명하며, 곧 Emscripten이 기본적으로 LLVM WebAssembly 백엔드로 전환할 수 있게 될 것입니다. 많은 테스트를 거쳐 문제를 보고해주세요!

2019년 JavaScript 비용

· 약 11분
Addy Osmani ([@addyosmani](https://twitter.com/addyosmani)), JavaScript 정리자, Mathias Bynens ([@mathias](https://twitter.com/mathias)), 메인 스레드 해방자
노트

참고: 기사를 읽는 것보다 프레젠테이션을 보는 것을 선호한다면, 아래 영상을 즐겨보세요! 그렇지 않다면, 영상을 건너뛰고 읽어주세요.

“JavaScript 비용” - Addy Osmani가 #PerfMatters Conference 2019에서 발표.

V8 릴리즈 v7.6

· 약 5분
Adam Klein

매 6주마다 릴리즈 프로세스의 일환으로 V8의 새로운 브랜치를 생성합니다. 각 버전은 Chrome Beta 마일스톤 직전에 V8의 Git 마스터에서 분기됩니다. 오늘 우리는 최신 브랜치인 V8 버전 7.6을 발표하게 되어 기쁩니다. 이는 몇 주 후 Chrome 76 Stable과의 협업 릴리즈까지 베타 단계에 있습니다. V8 v7.6은 다양한 개발자 중심의 기능을 제공합니다. 출시를 기대하며 몇 가지 주요 사항을 미리 살펴봅니다.

WebAssembly 개발자를 위한 코드 캐싱

· 약 8분
[Bill Budge](https://twitter.com/billb), 캐싱에 'Ca-ching!'을 더하다

개발자들 사이에는 가장 빠른 코드는 실행되지 않는 코드라는 말이 있습니다. 마찬가지로, 가장 빠른 컴파일 코드도 컴파일되지 않아야 합니다. WebAssembly 코드 캐싱은 Chrome과 V8에 새롭게 도입된 최적화 기술로, 컴파일러가 생성한 네이티브 코드를 캐싱하여 코드 컴파일을 피하려고 합니다. 우리는 JavaScript 코드 캐싱에 관해 이미 글을 작성했으며, 이 최적화를 활용하기 위한 모범 사례에 대해 논의한 바 있습니다. 이번 블로그 글에서는 Chrome의 WebAssembly 코드 캐싱 운영 방식과 이를 통해 대형 WebAssembly 모듈을 사용하는 애플리케이션의 로딩 속도를 높이는 방법에 대해 설명합니다.

V8 릴리스 v7.5

· 약 4분
Dan Elphick, 더 이상 사용되지 않는 기능의 악몽

매 6주마다 우리는 릴리스 과정의 일환으로 V8의 새로운 브랜치를 만듭니다. 각 버전은 Chrome Beta 이정표 직전에 V8의 Git master로부터 분기됩니다. 오늘 우리는 최신 브랜치인 V8 버전 7.5를 발표하게 되어 기쁩니다. 이 버전은 몇 주 후 Chrome 75 안정 버전과 함께 출시될 때까지 베타 단계에 있습니다. V8 v7.5는 개발자가 사용할 수 있는 여러 가지 유용한 기능으로 가득합니다. 이 게시물에서는 출시를 기대하며 몇 가지 주요 기능을 미리 살펴봅니다.

더 빠르고 기능이 풍부한 국제화 API

· 약 5분
[சத்யா குணசேகரன் (Sathya Gunasekaran)](https://twitter.com/_gsathya)

ECMAScript 국제화 API 명세 (ECMA-402, 또는 Intl)는 날짜 형식 지정, 숫자 형식 지정, 복수형 선택 및 정렬과 같은 주요 지역별 기능을 제공합니다. Chrome V8과 Google 국제화 팀은 V8의 ECMA-402 구현에 기능을 추가하고 기술적 부채를 정리하며 성능과 다른 브라우저와의 상호 운용성을 개선하기 위해 협력하고 있습니다.

스펙터의 1년: V8 관점

· 약 8분
벤 L. 티처와 야로슬라프 세브치크

2018년 1월 3일, 구글 프로젝트 제로와 다른 연구 팀은 스펙터멜트다운으로 불리는 새로운 종류의 취약성을 처음 공개했습니다. 이는 추론 실행(speculative execution)을 수행하는 CPU에 영향을 미칩니다. CPU의 추론 실행 메커니즘을 사용하여 공격자는 메모리에서 승인되지 않은 데이터를 읽는 것을 방지하는 코드의 암묵적 및 명시적 안전 검사들을 임시적으로 우회할 수 있습니다. 프로세서 추론은 구조적 레벨에서 보이지 않는 미세 구조적 세부사항으로 설계되었지만, 정교하게 만들어진 프로그램은 추론 중에 승인되지 않은 정보를 읽고 프로그램 분절의 실행 시간을 포함한 부작용 채널을 통해 이를 공개할 수 있습니다.

번개처럼 빠른 파싱, 2부: 지연 파싱

· 약 12분
툰 베르와스트 ([@tverwaes](https://twitter.com/tverwaes))와 마르야 횔타 ([@marjakh](https://twitter.com/marjakh)), 더 얇은 파서

이 시리즈는 V8이 자바스크립트를 가능하게 가장 빠르게 파싱하는 방법을 설명합니다. 첫 번째 글에서는 V8의 스캐너가 빠르게 작동하도록 만든 방법을 설명했습니다.

파싱은 소스 코드를 중간 표현으로 변환하여 컴파일러(V8의 경우는 바이트코드 컴파일러 Ignition)가 사용할 수 있도록 만드는 단계입니다. 파싱과 컴파일링은 웹 페이지 시작의 중요한 경로에서 발생하며, 브라우저에 전달된 모든 함수가 시작 시 즉시 필요한 것은 아닙니다. 개발자는 비동기 및 지연 스크립트를 사용하여 그러한 코드를 지연시킬 수 있지만, 항상 그것이 가능한 것은 아닙니다. 또한 많은 웹 페이지는 특정 기능에서만 사용되는 코드를 전달하며, 사용자가 페이지를 한 번 실행하는 동안 전혀 접근하지 않을 수 있습니다.

JavaScript 개발자를 위한 코드 캐싱

· 약 12분
[Leszek Swirski](https://twitter.com/leszekswirski), 캐시 스매셔

코드 캐싱(바이트코드 캐싱이라고도 함)은 브라우저에서 중요한 최적화 기술입니다. 이것은 파싱 + 컴파일 결과를 캐싱하여 자주 접속하는 웹사이트의 시작 시간을 줄입니다. 대부분의 인기 브라우저에서 어떤 형태로든 코드 캐싱을 구현하고 있으며, Chrome도 예외는 아닙니다. 실제로 우리는 Chrome과 V8이 컴파일된 코드를 어떻게 캐싱하는지에 대해 작성하고, 개선하며, 설명한 바 있습니다.