본문 바로가기

Dev/javascript11

ECMAScript 2024 : ES2024 - 주요 추가 기능 2025년도 벌써 2개월이 다 지나갔는데 왜 2024년도에 발표된 ES2024에 대해서 포스팅을 하냐고? 현재 가장 최신 자바스크립트 버전은 ES2024이기 때문이다.주요 추가 기능은 아래와 같다. 1. Object.groupBy / Map.groupBy컬렉션(ex: 배열)의 각 요소를 특정 기준에 따라 그룹화할 수 있도록 한다. Object.groupBy:배열을 순회하며, 제공된 콜백 함수의 반환값(그룹 키)에 따라 요소들을 일반 객체의 프로퍼티로 그룹화한다.const data = [ { year: "2024", id: 0 }, { year: "2023", id: 1 }, { year: "2024", id: 2 },];const grouped = Object.groupBy(data, (el) =>.. 2025. 2. 22.
V8! V8! Witeness me! Witness You! Witnessed! - 2 블로그를 해 보겠다고 시작한게 2년전이네... ㅋㅋㅋ 온갖 핑계로 아무것도 안하다가 이제 다시 시작한다. 진짜 야무지게 해야지~ 햇수로 3년전 글에 이은 V8의 작동 방식에 대해 설명한다. V8 엔진은 구글이 개발한 오픈 소스 자바스크립트 엔진으로, 웹 브라우저와 Node.js 등에서 자바스크립트 코드를 빠르고 효율적으로 실행하기 위해 설계 되었다. 그래서 그 동작 방식은 아래와 같다. 1. 파싱 및 AST 생성소스 코드 분석:자바스크립트 소스 코드를 읽어 들여 먼저 렉서(lexer)에 의해 토큰(token)으로 분해된다. 추상 구문 트리 (AST, Abstract Syntax Tree) 생성:토큰들을 기반으로 파서가 소스 코드의 문법적 구조를 나타내는 트리( AST )를 생성한다. 2. 바이트코드 생성.. 2025. 2. 21.
Generator Function - 제너레이터 함수 제너레이터 함수는 자바스크립에서 순회 가능한(iterable) 객체를 생성하거나, 함수의 실행을 중간에 일시 중단(pause)하고 다시 재개(resume)할 수 있도록 해주는 특별한 함수다. 제너레이터 함수는 일반 함수와 다르게 실행 흐름을 제어할 수 있는 강력한 기능을 제공한다. 1. 제너레이터 함수의 정의와 문법제너레이터 함수는 함수 선언문 앞에 *를 붙여 정의하며, 함수 내에서 yield  키워드를 사용하여 값을 반환한다.function* myGenerator() { yield 1; yield 2; yield 3;} 2. yield 키워드와 실행 흐름 제어yield의 역할:yield는 함수의 실행을 일시 중단하고, 호출자에게 특정 값을 반환하는 역할을 한다. 제너레이터 함수는 yield에서 멈.. 2025. 2. 21.
V8! V8! Witeness me! Witness You! Witnessed! - 1 개봉 당시 꽤나 임팩트 있었던 영화 "매드맥스:분노의 도로"에서는 "워보이"라는 극 중 사이비 종교 집단이 있다. 이들은 그들의 교주인 "임모탄 조"를 추앙하며 자동차의 8기통 엔진(V8)을 숭배한다. 8기통 엔진! (V8 Engine) 보통 V8이라고 하면 사람마다 차이가 있겠으나, 보통의 소프트웨어 개발자라면 Google Chrome이나 NodeJS에서 사용되는 V8을 상상할 것이고, 일반적인 사람들이라면 자동차의 엔진을 생각할 것이다. 8기통 엔진은 실린더가 8개인 엔진이고, V8이면 이 실린더가 V자 형태로 양쪽으로 늘어져 있는 형상의 엔진을 말한다. 이전(?) 음... 뭐랄까 오일파동(1,2차... 아 옛날 사람 같네...) 이전까지는 종종 이 V8 엔진을 장착한 차량들이 있었고 그런 차량들은 .. 2022. 11. 10.
?. optional chaining ?.옵셔널 채이닝... 얼마전에 프로젝트를 진행하면서 기존 소스 분석 중에 옵셔널 체이닝을 처음 조우했다.summary.certification = d1?.analysis?.static?.certification?.valid;요런 식인데... 그래도 이 바닥에서 대략 20년이 넘게 굴렀다고, 대략 "음... 삼항연산 하듯이 해서 객체 체인의 참조가 유효한지에 대해 판단하는건가보구만..."  정도로 생각하고 있었더랬다... 얼추 비슷하다 그러다가 json 핸들링 할 일이 많은 프로젝트를 진행 중이었는데... 저 옵셔널 채이닝을 사용하지 않다보니... 개발부 본부장이 "js 전문이라면서 어떻게 이런 것도 모르냐"며 꼽을 주더라고... 하~ XX 할많하않~ 사실 ECMA는 19년도까지만 보고 이 후에는 잘 찾.. 2022. 11. 7.