개발 · 프로그래밍

/

프론트엔드

빠르게 알아보는 Javascript V8엔진

JavaScript엔진인 V8에 대해 이해할 수 있습니다! 좀 더 효율적인 코드작성법에 대한 힌트를 얻을 수 있습니다.

(5.0) 수강평 4개

수강생 80명

Thumbnail

초급자를 위해 준비한
[프로그래밍 언어] 강의입니다.

이런 걸
배워요!

  • V8 엔진 동작방식과 역사

  • JavaScript 코드 실행흐름

  • 인라이닝, 히든 클래스, 인라인 캐싱 등 최적화 기법

  • 코드 작성 시 최적화 팁

V8 엔진의 동작방식을 이해하고,

함께 성장하는 프론트엔드 개발자가 되어요!


웹 개발자라면 자주 접하는 Chrome 브라우저와 Node.js 에서 사용되는

Google이 개발한 JavaScript 엔진입니다.


이런 분들에게 도움이 되요 🤓

🤔: 더 좋은 JavaScript 개발자가 되고싶은데...

🤗: JavaScript 문법은 알지만 더 좋은 개발자로 거듭나기 위해선, JavaScript 엔진의 작동원리를 어느정도는 알고 있어야합니다.

내 코드가 어떻게 실행되고 최적화되는지 이해하지 못하고 작성한 것과 이해하고 작성하는 것에는 큰 차이가 발생할 수 있습니다.

🤔: 그래서 엔진이 왜 중요한가요?

🤗: 엔진이 없다면 JavaScript 언어는 의미가 없습니다. 개발자가 작성한 코드를 컴퓨터가 이해할 수 없어지기 때문이죠. 물론, 엔진 내부까지 알 필요는 없지만, 동작방식을 이해하고 있으면 더 좋은 코드를 작성할 수 있는 밑바탕이 되리라 확신합니다.

이런 내용을 배워요 🤩

섹션 0. 들어가기에 앞서...

이 강의를 통해 얻을점은 무엇(What)이 있을지? 왜(Why) 알아야 하는지? 함께 알아봐요!

섹션 1. JavaScript V8엔진

JIT 컴파일러, 인터프리터, 정적 컴파일러에 대해 살펴보며 V8 엔진의 동작방식을 함께 알아봐요!
또한, V8 엔진이 등장하게 된 배경과 역사에 대해 습득하고 다른 JavaScript 엔진인 SpiderMonkey와 JavaScriptCore(JSC)의 컴파일러 파이프라인을 비교해봐요!

section1.001

섹션 2. V8 엔진의 최적화 전략 - 인라이닝 (Inlining)

인라이닝 최적화란 어떤 건지 알아봐요!
또한, 인라이닝 최적화를 통해 어떤 이점이 있을지도 생각해봐요!

section2.001

섹션 3. V8 엔진의 최적화 전략 - 히든 클래스 (Hidden Class)

JavaScript Object를 ECMAScript Spec상에서 정의한  형태를 알아보고 객체 내 속성에 대한 접근 방식을 알아봐요!
그리고 왜 히든 클래스라는 개념이 생기게 되었는지, 또 어떤 형태를 가지고 있는지 보고 Transition Chains을 구성하는 순서를 하나씩 같이 살펴봐요!

section3.001

섹션 4. V8 엔진의 최적화 전략 - 인라인 캐싱 (Inline Caches, ICs)

섹션 3에서 히든 클래스에 대해 학습했습니다! 이를 활용하여 최적화하는 인라인 캐싱 동작방식에 대해 알아봐요!

인라인 캐싱이 관리하는 상태(Transition Mark)는 어떤 것이 있는지 알아보며 인라인 캐싱의 이점을 얻기 위해선 무엇을 주의해야하는지 정리해보는 시간을 가져요!

section4.001

섹션 5. 히든 클래스(Hidden Class) 조금 더 살펴보기

예제코드를 보며 두 객체가 동일한 히든 클래스를 공유하는지 맞춰보는 OX 퀴즈 시간을 가집니다!
총 6개의 퀴즈를 준비해보았는데요. 화면을 잠시 멈추며 정답을 생각해주며 진행해주세요!
그리고 Node.js로 V8엔진의 내장함수를 사용하여 동일한 히든클래스인지 직접 비교해보는 시간도 가지겠습니다!

section5.001

섹션 6. 마치며...

배웠던 개념들을 바탕으로 코드 작성시 최적화 팁 3가지에 대해 알아보며 강의를 마무리 하겠습니다!

강의를 완주하셨습니다! 정말 수고하셨습니다. 🎉

이런 분들께
추천드려요!

학습 대상은
누구일까요?

  • V8 엔진 동작방식이 궁금했던 분들

  • JavaScript 코드 실행 흐름을 알고싶으신 분들

  • 내 코드가 어떻게 최적화되는지 궁금했던 분들

  • 엔진관점의 시야를 갖추고 싶으신 분들

선수 지식,
필요할까요?

  • JavaScript 기본 지식

안녕하세요.

여러 기술과 성능 최적화에 관심이 많은 프론트엔드 개발자입니다.

 

📧: official.hajeonghun@gmail.com

커리큘럼

전체

20개 ∙ (1시간 34분)

수업 자료

가 제공되는 강의입니다.

강의 게시일: 
마지막 업데이트일: 

수강평

아직 충분한 평가를 받지 못한 강의입니다.
모두에게 도움이 되는 수강평의 주인공이 되어주세요!