Distributed Web Worker 개발 중 Promise 및 이벤트 처리 이슈
Source
Google Keep/Distributed webworker 개발 중 이슈.md
Summary
분산 웹 워커 개발 중 RPC 호출과 비동기 작업 처리 간의 Promise 해결(resolve) 방식을 논의한 내용입니다. Customer의 요청이 Middleware를 거쳐 Worker에서 비동기적으로 처리될 때, Worker Pool의 _next() 재귀 호출 방식과 달리 이벤트 모델을 적용하기 위해 연구했습니다. 핵심 발견 사항으로는 Promise의 resolve 함수를 외부에서 호출하거나, Promise 내부에 이벤트 리스너를 등록하여 resolve를 호출하는 것이 가능하다는 점입니다. 또한 RxJS Observable을 활용한 객체 이벤트화 가능성을 제시했습니다.
Key Points
RPC 호출 시 Customer -> Middleware -> Worker 간의 비동기 흐름에서 결과 반환(Promise resolve) 방식이 핵심 이슈임
기존 Worker Pool의 _next() 재귀 호출 방식 대신 이벤트 기반 모델 구현을 시도함
Promise의 resolve 함수를 외부에서 호출하거나, 내부 이벤트 리스너를 통해 호출하는 것이 기술적으로 가능함
RxJS Observable을 사용하여 객체 이벤트를 처리하는 방안을 고려 중임
JavaScript 기반 분산 컴퓨팅 고려사항
JavaScript Promises: 개념, 용어 및 표준화
Web Workers: JavaScript 멀티스레딩
Web Workers API 개요 및 기본 사용법
비동기적 JavaScript
Distributed Electronic Rights in JavaScript
Adaptive Speculative Processing of Out-of-Order Event Streams
MCEP: 이동성 기반 복합 이벤트 처리 시스템
Web Push Notifications for a Simple Login System
디자이너에게 부탁하기: 문제 정의 vs 해결책 제시
Spark Streaming 기반 유실 없는 스트림 처리 인프라 구축
jQuery 이벤트 핸들링: .on() 사용 권장
AJAX 기본 원리 및 XMLHttpRequest 구현
JavaScript this 키워드 동작 원리
ffmpeg + ffserver 오토믹싱 스트리밍 개발 기록
오류 허용 멀티미디어 스트림 처리: 시스템 스택 상단의 가능성
자바스크립트 기반 콘텐츠 숨김의 접근성 처리
스트림 처리 최적화 카탈로그 (A catalog of stream processing optimizations)
Puppeteer를 활용한 로컬 개발 서버 대체 방안 (web.dev 사례)
자바스크립트에서의 Continuation-passing style (CPS) 소개
MillWheel: 인터넷 규모 내결함성 스트림 처리
적응형 스트리밍 표현의 최적 선택
곽철용 짤 생성기 개발 후기 (Vue + HTML Canvas)
Web Animations API: element.animate() (Chrome 36)
자바스크립트 동작 원리: 엔진, 런타임, 호출 스택
8bit.js: Web Audio API 기반 8비트 사운드 라이브러리
requestAnimationFrame 사용법
The Web Ahead: Jen Simmons 인터뷰 요약
종성 분리 알고리즘
The “When Can I Use” Web Widget
Objective-C 함수 포인터와 코드 블럭
자바스크립트 디자인 패턴 - 프록시(Proxy)
크롬 컨퍼런스 핵심 요약 (Web Components, DevTools, Chrome Apps)
ML 기반 번들링: JavaScript 툴링의 미래
CSS 최신 동향 파악을 위한 Adobe Web Platform 블로그
자바스크립트 객체 더하기 연산의 타입 변환 규칙
자바스크립트 메모리 관리 및 4가지 흔한 메모리 누수 대처법
자바스크립트 배열 메소드 5가지 (indexOf, filter, forEach, map, reduce)
Web Framework Benchmark Inspired
31 CSS Web Design Galleries You’ll Love
Web Fundamentals 및 Web Starter Kit 리소스
Yeoman: 도구를 활용한 더 나은 웹 개발
자바스크립트 프로토타입(Prototype) 개념 정리
Gittip-links Chrome Extension 개발 기록
Freemarker 템플릿 상속을 통한 레이아웃 관리
텍스트 교체하기: 5가지 방법 (Swapping Out Text, Five Different Ways)
Google, Web Components 를 웹 개발의 미래로 제시 (2013)
Simple Ajax 예제
HTML에서 Javascript와 CSS 기반으로 애니메이션을 구현하는 방법
북마클릿(Bookmarklet) 정의
List.js: HTML 리스트의 검색, 정렬, 필터링을 위한 경량 JavaScript 라이브러리
JavaScript 성능 향상을 위한 Thread-level Speculation (TLS)
HTML is the Web ~ Pete Lambert
Design Patterns in JavaScript (tcorral)
Git remote-tracking branch 개념 및 동작 원리
이펙티브 자바스크립트 소개
Web Speech API 소개 및 구현 가이드
웹의 병목 현상: JavaScript
JSWhiz: JavaScript 메모리 누수 정적 분석 도구
JavaScript 의 현대적 활용 분야 (2019)
배경이 함께 슬라이드하는 웹 슬라이더 구현
자바스크립트 아키텍처 v0.4
CSS :scope 가상 클래스의 용도 및 동작 방식
웹의 불안전한 JavaScript 사용 관행에 대한 측정 연구
Web Audio API의 Android Chrome Beta 지원 (2013)
게임 개발팀 A의 정기 회의 매뉴얼
5 jQuery Notification Plugins
Hiding Native HTML5 Video Controls in Full-Screen Mode
웹 증강을 위한 엔드유저 언어: 생산자와 소비자 모두를 위한 접근
VueJS 프로젝트에 Prettier + ES6 Lint 적용
Requirify: 브라우저 콘솔에서 동적 라이브러리 로딩
CSS를 이용한 클라이언트 측 전체 텍스트 검색
Chrome DevTools 모바일 스크린캐스트 및 에뮬레이션
실시간 웹 협업도구 만들기 (홍영택)
JavaScript 과잉 조직화 (Over-Organizing) 의 적절성
풀스택 JavaScript 프레임워크 학습 조언 (Quora)
HTTP 클라이언트 라이브러리의 리다이렉트 지원 방식 제안
C++ Coroutine 의 개념 및 구현 특성
Prototype용 선택 상자 플러그인
웹 컴포넌트(1): Keep calm and usetheplatform
HTTP Archive: jQuery 호스팅 및 버전 분산 분석 (2013)
HTML5 Web App Client-Side Storage 옵션 및 팁
자바스크립트 메모리 누수 4가지 형태 (외부 링크)
JavaScript 엔진의 동작 원리 (V8 기준)
JavaScript 패키지 매니저의 간략한 역사 (npm, Yarn, pnpm)
브라우저 개발자 도구의 25 가지 비법 (2011)
PC 게임 실행 가능 여부 확인 방법
The Once And Future Web Platform
Reducing Web Latency: the Virtue of Gentle Aggression
대시보드 장착 Nexus 7 및 KITT 테마 커스텀 런처
하드웨어 패러다임 특집 에디토리얼
Cost-Sensitive Decision Tree Induction Algorithms Survey
2017 년 JavaScript 테스트 개요 (Powtoon Engineering)
브라우저 동작의 이해 - 리플로우와 리페인트 및 그 최적화
Efficient Stream Provenance via Operator Instrumentation