피드로 돌아가기
Dev.toFrontend
원문 읽기
QuerySelector 제거 및 DOM Tree 직접 참조 기반의 객체 매핑 구조 설계
Why I have ditched the QuerySelector
AI 요약
Context
기존 document.querySelector() 사용 시 발생하는 성능 저하 및 런타임 오버헤드에 따른 한계 직면. DOM 탐색 비용을 최소화하고 Javascript OOP 패턴에 최적화된 요소 참조 방식의 필요성 대두.
Technical Solution
document.body를 Root로 설정하여 DOM Tree의 계층 구조를 직접 추적하는 참조 체계 구축firstElementChild,children등 내장 속성을 활용하여 Selector 엔진의 파싱 과정을 생략한 직접 접근 방식 채택Map()기반의createObjects함수를 통해 DOM 요소를 명명된 객체로 캡슐화하여 전역 관리getDomObjects와getDomObjectsExtended로 구분하여 정적 요소와 동적/지연 생성 요소를 단계적으로 바인딩하는 파이프라인 설계- 의존성 주입(Dependency Injection) 패턴을 적용하여 생성된 DOM 객체 묶음을 하위 모듈 및 클래스에 전달하는 구조 구현
실천 포인트
- DOM 접근 빈도가 높은 복잡한 UI에서 CSS Selector 파싱 비용 제거 검토 - DOM 요소의 인덱스 기반 접근 시 `children.length` 확인을 통한 런타임 에러 방지 로직 적용 - 전역 DOM 참조 객체를 생성하여 개별 컴포넌트에 주입하는 단일 진입점(Single Entry Point) 설계 고려