Javascript
-
WASM에 대하여
2024.11.08 1WebAssembly(WASM)은 웹 브라우저에서 실행 가능한 바이트코드 웹 표준이다.이번 글은 WASM의 사용 방안, JS와의 성능 차이 등을 정리해 보았다. [주의]본문은 JS, WASM의 정의 및 생태계를 대략적으로 파악하고 있음을 전제로 한다.배경 설명은 다 자르고, 실리적이고 기술적인 내용만 있음을 알린다. WASM의 대표적 특징연산 집약적인 작업 용도이다바이트코드로 사전 컴파일하여, 클라이언트(브라우저)의 컴파일 과정이 필요 없다 JS-WASM 간의 소통JS 내에서의 WASM 함수 호출 방식은 같다.여기서 함수의 인자는 참조가 될 수는 없고, 값 복사를 통해서 전해진다.기본적으로 WASM 인스턴스에 사용될 메모리는 JS에서 ArrayBuffer를 통해 구현된다.물론 이를 수동으로 할 필요는 없.. -
'빌더 패턴' 대신 '옵션 객체 패턴'으로
2024.10.21이번 글에서는 빌더 패턴의 의의를 고찰하면서, 이의 대안인 옵션 객체 패턴 이용을 고려해볼 것이다.우선 빌더 패턴이란 무엇일까? 빌더 패턴 (리팩토링 구루, TTUMZZI님)복잡한 객체를 생성할 때, 생성자 함수에 여러 인자를 넣을 시의 난해함, 유지보수의 어려움을 보완한 생성 패턴.객체의 속성(property)을 선택적으로 설정하는 Builder 클래스가 필요하게 된다. 빌더 패턴의 특징을 코드 예시와 함께 확인해보자.const house = new House("My House", 4, 3, false, null, null); 위의 코드를 확인해보면, 정확히 무엇을 의미하는지도 불확실한 여러 인자들이 생성자에 있음을 확인할 수 있다.또 인자들 중에 선택적인 인자는 null로 넣고 있는 모습이다.위와 같.. -
Object, Map, WeakMap 적절히 쓰기
2024.10.18ObjectJS의 객체 형식으로, 키-값 쌍 형식의 데이터를 표현할 수 있다.JS에서 대부분의 내장 객체와 자료구조들은 Object의 인스턴스라고 할 수 있다. (심지어 Array마저도 내부적으론 Object를 상속받았다) Map마찬가지로 키-값 쌍의 데이터를 표현하며, ES6 표준으로 추가되었다. WeakMap키의 타입을 Object로만 설정 가능하고, 키를 순회하거나 검색할 수 없는 자료구조. ES6에 마찬가지로 추가되었다.Property를 컴파일 시점에 알 수 없는 경우JS의 Object는 '히든 클래스' 기법을 통해 동일한 Property 형태를 가진 Object들에 대한 접근을 최적화한다.(게으른 개발자님, Namu CHO님)이는 곧 Object가 키-값이 계속해서 바뀌는 상황에는 최적화되어 있..