3-4. 객체 탐색과 연결 준비 다듬기 2026-03-18

JSON 문자열로는 보이지 않던 객체

rc.5까지는 콘솔 인자를 깊게 읽을 때 JSON.stringify에 의존했다. 순환 참조가 있거나 함수·Symbol·Promise처럼 JSON에 담기 어려운 값이 있으면 디버깅에 필요한 정보가 사라졌다.

3월 18일에는 CDP의 Runtime.getProperties로 속성을 탐색하도록 바꿨다. 순환 참조는 [Circular]로 표시하고, Map·Set·RegExp·Date·Error 같은 객체 종류를 구분한다. 탐색량을 제한하기 위해 속성 수 상한을 두었고, 후속 수정에서 최대 탐색 깊이를 3에서 5로 늘리며 CDP 호출 횟수 테스트를 추가했다. 객체 탐색 변경, 깊이와 호출 수 검증

연결과 에뮬레이션의 책임 나누기

Electron 연결 코드는 타입·CDP 통신·앱 탐색·실행·연결 풀로 나눴다. 타임아웃과 포트 상수를 모으고, 콘솔과 네트워크가 중복 구현하던 내비게이션별 저장소를 공유하게 했다. CDP 연결은 풀에서 재사용하며 유휴 연결은 정리한다.

스텁으로 남아 있던 에뮬레이션도 다크·라이트 모드, CPU 제한, 위치, 네트워크 조건, UA, 뷰포트, 시간대와 로케일을 설정하는 경로로 연결했다. 옵션 검증은 소켓 연결 전에 수행하도록 옮겼고, 중복 코드 정리와 포맷팅을 함께 반영했다. 구조 분리와 에뮬레이션, 후속 정리, 포맷팅

rc.6과 그 뒤의 포트 탐색 개선

객체 탐색 개선을 담은 v0.1.0-rc.6은 3월 18일 공개됐다. 그 뒤 같은 날 main에 병합한 #23은 포트 탐색과 CDP 초기화를 개선한다.

6개 포트를 하나씩 확인하던 요청을 병렬로 보내고, 1초 동안 탐색 결과를 재사용해 같은 타깃을 찾을 때 중복 탐색을 줄였다. Console, Page, Log, Runtime 활성화도 병렬로 처리한다. 커밋에 적힌 12초에서 2초라는 차이는 포트별 타임아웃을 순차로 기다리던 최악 조건의 계산이며, 모든 앱의 실측 시작 시간이 그만큼 줄었다는 뜻은 아니다. 병렬 탐색·캐시 변경

2026-09-26 확인 기준 최신 공개 GitHub 릴리즈와 npm 배포 버전은 rc.6이다. 포트 탐색 개선은 rc.6 공개 이후의 main 변경으로 구분한다.