본문으로 건너뛰기

V8 릴리스 v8.5

· 약 4분
Zeynep Cankara, 일부 Maps 트랙킹

6주마다 우리는 릴리스 프로세스의 일부로 V8의 새 브랜치를 만듭니다. 각 버전은 Chrome Beta 마일스톤 직전에 V8의 Git 마스터에서 분기됩니다. 오늘 우리는 V8 버전 8.5라는 새로운 브랜치를 발표하게 되어 기쁩니다. 이 버전은 몇 주 후 Chrome 85 Stable과 함께 출시될 때까지 베타 상태에 있습니다. V8 v8.5는 다양한 개발자 중심의 재미있는 기능으로 가득 찹니다. 출시를 앞두고 이 게시물에서는 일부 주요 기능에 대한 미리보기를 제공합니다.

V8 릴리즈 v8.4

· 약 4분
Camillo Bruni, 신선한 불값을 즐기는 중

6주마다 우리는 릴리즈 프로세스의 일환으로 V8의 새로운 브랜치를 만듭니다. 각 버전은 Chrome 베타 마일스톤 직전에 V8의 Git 마스터에서 분기됩니다. 오늘 우리는 새 브랜치, V8 버전 8.4를 발표하게 되어 기쁩니다. 이 버전은 몇 주 후 Chrome 84 정식 버전 출시와 함께 출시될 때까지 베타 상태에 있습니다. V8 v8.4는 개발자를 위한 여러 가지 좋은 기능들로 가득합니다. 이 게시물은 출시를 앞둔 주요 하이라이트들을 미리 보여줍니다.

C++를 위한 고성능 가비지 컬렉션

· 약 8분
Anton Bikineev, Omer Katz ([@omerktz](https://twitter.com/omerktz)), 그리고 Michael Lippautz ([@mlippautz](https://twitter.com/mlippautz)), C++ 메모리 전문가

과거에는 이미 여러 번 게시물에 JavaScript의 가비지 컬렉션, 문서 객체 모델(DOM), 그리고 이것이 V8에서 구현되고 최적화되는 방식에 대해 작성한 적이 있습니다. 하지만 Chromium의 모든 요소가 JavaScript로 작성된 것은 아닙니다. 대부분의 브라우저와 V8이 내장된 Blink 렌더링 엔진은 C++로 작성되었습니다. JavaScript는 DOM과 상호 작용할 수 있으며, 이는 이후 렌더링 파이프라인에 의해 처리됩니다.

웹어셈블리에서 최대 4GB 메모리

· 약 6분
안드레아스 하스, 야콥 쿠머로우, 알론 자카이

소개

크롬과 엠스크립텐에서 최근 작업 덕분에, 이제 웹어셈블리 애플리케이션에서 최대 4GB의 메모리를 사용할 수 있습니다. 이전에는 2GB로 제한되었습니다. 왜 처음부터 제한이 있었는지 의아할 수 있습니다 - 예를 들어, 512MB 또는 1GB 메모리를 사용하는 데는 아무 작업이 필요하지 않았기 때문입니다! 하지만 브라우저와 툴체인에 있어서 2GB에서 4GB로의 도약에는 특별한 일이 발생한다고 밝혀졌습니다. 이 글에서는 그 내용을 설명하겠습니다.

V8 릴리스 v8.3

· 약 3분
[Victor Gomes](https://twitter.com/VictorBFG), 집에서 안전하게 작업 중

6주마다 우리는 릴리스 프로세스의 일환으로 V8의 새로운 브랜치를 만듭니다. 각 버전은 Chrome Beta 마일스톤 직전의 V8의 Git 마스터에서 브랜치됩니다. 오늘은 최신 브랜치인 V8 버전 8.3을 발표하게 되어 기쁩니다. 이 버전은 몇 주 후 Chrome 83 안정 버전과의 조정에 따라 정식 릴리스되기 전까지 베타 상태에 있습니다. V8 v8.3에는 개발자 중심의 다양한 기능이 추가되었습니다. 이 게시물에서는 릴리스를 앞두고 몇 가지 주요 내용을 미리 살펴봅니다.

그 `.wasm` 안에 무엇이 있을까? 소개: `wasm-decompile`

· 약 6분
Wouter van Oortmerssen ([@wvo](https://twitter.com/wvo))

우리는 .wasm 파일을 생성하거나 조작하는 컴파일러 및 기타 도구의 수가 점점 늘어나고 있으며, 때로는 그 안을 살펴보고 싶을 때가 있습니다. 아마도 당신은 그런 도구의 개발자이거나, 더 직접적으로는 Wasm을 대상으로 삼는 프로그래머로서 생성된 코드가 어떤 모습인지 성능이나 기타 이유로 궁금할 수 있습니다.

ECMAScript 사양 이해하기, Part 3

· 약 10분
[Marja Hölttä](https://twitter.com/marjakh), 추측적 사양 관찰자

모든 에피소드 보기

이번 에피소드에서는 ECMAScript 언어와 그 문법 정의에 대해 더 깊이 들어가 보겠습니다. 만약 문맥 자유 문법(context-free grammar)에 익숙하지 않다면, 사양이 언어를 정의하기 위해 문맥 자유 문법을 사용하기 때문에 기본을 확인할 좋은 기회입니다. 더 쉬운 입문서를 원한다면 "Crafting Interpreters"의 문맥 자유 문법에 관한 챕터를 확인하거나, 더 수학적인 정의를 원한다면 위키피디아 페이지를 참고하세요.

V8에서의 포인터 압축

· 약 18분
Igor Sheludko와 Santiago Aboy Solanes, *포인터 압축 전문가들*

메모리와 성능 사이에는 항상 끊임없는 싸움이 있습니다. 사용자로서 우리는 빠르면서도 가능한 적은 메모리를 소비하기를 원합니다. 불행히도 일반적으로 성능을 향상시키면 메모리 소비가 증가하고 (그 반대도 마찬가지입니다).

ECMAScript 사양 이해하기, 파트 2

· 약 9분
[Marja Hölttä](https://twitter.com/marjakh), 추측적 사양 관찰자

우리는 사양 읽기 기술을 더 연습해볼 것입니다. 이전 에피소드를 아직 보지 않았다면, 지금 확인해보세요!

모든 에피소드

파트 2 준비되었나요?

사양을 익히는 재미있는 방법은 우리가 알고 있는 JavaScript 기능에서 시작해 그것이 어떻게 명시되어 있는지 알아보는 것입니다.

경고! 이 에피소드에는 2020년 2월 기준 ECMAScript 사양에서 복사된 알고리즘이 포함되어 있습니다. 결국 오래되었을 것입니다.

우리는 속성이 프로토타입 체인에서 검색된다는 것을 알고 있습니다: 객체가 우리가 읽으려는 속성을 가지지 않는 경우, 우리는 프로토타입 체인 위로 올라가 그것을 찾거나 (더 이상 프로토타입을 가지지 않는 객체를 찾을 때까지) 찾습니다.

예를 들어:

const o1 = { foo: 99 };
const o2 = {};
Object.setPrototypeOf(o2, o1);
o2.foo;
// → 99

프로토타입 걷기는 어디에 정의되나요?

이 행동이 어디에 정의되어 있는지 알아봅시다. 좋은 출발점은 객체 내부 메서드의 목록입니다.

[[GetOwnProperty]][[Get]]이 모두 있지만, 우리는 자신 속성에만 제한되지 않는 버전을 찾고 있기 때문에 [[Get]]을 선택합니다.

불행히도, 속성 설명자 사양 타입에도 [[Get]]이라는 필드가 있으므로, 사양에서 [[Get]]을 탐색할 때 두 개의 독립적인 사용을 신중히 구분해야 합니다.