네이버처럼 최소 폭이 큰 화면은 패널을 열면 오른쪽이 잘렸다. 창을 넓히라고만 하면 작은 노트북에서 코드와 결과를 같이 보기 어렵다. 북극성에서는 실제 남은 웹 폭에 맞추되 문서와 초안은 그대로 두는 방식을 택했다. 배율 숫자 하나 뒤에 폭의 학습과 탭 수명, 입력 좌표가 함께 있었다.
창 전체가 아니라 실제 웹 자리를 잰다
현재 계산은 WebContentsView의 실제 width를 쓴다. 코드와 오른쪽 패널, 분할 탭이 차지한 뒤의 공간이다. 자연 폭과의 비율을 1% 단위로 내림하고 최대 100%, 최소 25%로 제한한다. 창 전체가 넓다는 이유로 가운데 웹 영역도 넓다고 가정하지 않는다.
25% 제한 때문에 매우 넓은 표나 캔버스를 아주 좁게 나누면 가로 스크롤이 남을 수 있다. 모바일 CSS로 다시 만드는 기능도 아니다. 반응형 페이지가 스스로 맞으면 그 배치를 유지한다. 모든 페이지를 무조건 작게 만들면 읽기 편하려고 추가한 기능이 오히려 글씨를 줄인다. 실제 넘침이 있을 때 맞추는 목적과 한계를 함께 정했다.
코드와 구현 살펴보기
읽은 원래 비율 계산
return Math.max(0.25, Math.min(1, Math.floor((viewWidth / naturalWidth) * 100) / 100));축소 뒤 달라진 너비를 새 원래 폭으로 믿지 않는다
축소하면 CSS viewport가 커져 반응형 wrapper가 다시 늘어날 수 있다. 그때 매번 현재 scrollWidth만 원래 폭으로 쓰면 창을 늘려도 계속 작아지거나 배율이 흔들린다. PageWidthFit은 실제 넘침에서 학습한 폭을 기억하고 새 문서에서 초기화한다.
현재 ChatGPT 측정에는 화면 밖 portal과 숨긴 영역이 반응형 문서를 거짓으로 넓히지 않도록 고정된 구조 검사가 있다. 다른 사이트에는 기존 scrollWidth 측정을 유지한다. 이 사이트별 보완을 모든 숨은 요소를 완벽히 판별하는 일반 CSS 분석기로 소개하지 않는다. 읽은 geometry가 어떤 구조를 포함하는지에 따라 같은 공식도 다른 결과를 낸다는 점이 중요했다.
늦게 돌아온 측정은 현재 탭에 바로 붙이지 않는다
측정 전에 URL·documentEpoch·실제 View 폭을 잡고 격리 world의 고정 함수로 숫자와 현재 주소를 읽는다. 돌아온 뒤 주소·세대·폭과 대상의 상태가 달라졌다면 그 측정을 버린다. 창을 조절하는 중 늦은 답이 새 배치에 예전 배율을 적용하지 않게 한 것이다.
busy일 때 추가 요청은 again으로 남기고 마지막에 다시 schedule한다. 타이머는 짧은 간격으로 모으지만 페이지를 100%로 시험 확대했다가 매번 줄이지 않는다. DOM을 고쳐서 줄바꿈을 강제하거나 reload하는 방식도 쓰지 않는다. 측정값이 숫자인지, 폭이 유효한 범위인지도 검사한다. 이상한 geometry를 받은 순간의 실패가 새 배율로 굳어지지 않게 한 것이다. 크기 조절이 원고 입력과 별개로 남도록 문서 수명을 건드리는 변경을 줄였다.
사용자가 고른 배율은 자동 맞춤보다 우선한다
직접 확대를 선택하면 해당 탭은 수동 모드가 되고 재시작 뒤에도 배율과 모드를 복원한다. 같은 origin의 두 탭도 배율을 분리한다. 하나는 고정 폭 원고 화면이고 다른 하나는 반응형 참고 화면일 수 있기 때문이다. 자동 맞춤으로 돌아오는 버튼도 별도로 있다.
기존 e2e는 초안값·포커스·timeOrigin을 전후 비교하고 축소 뒤 브로커의 실제 클릭도 확인한다. 화면만 잘 들어오는지 보는 시험과 다르다. 배율이 바뀐 뒤 좌표와 입력이 맞아야 자동화가 같은 대상을 누른다. 이 시험은 소유 fixture와 과거 실사이트 범위를 나눠 기록했으며 모든 편집기 호환성을 보장하는 결과로 확대하지 않는다.
넓게 보이는 것과 계속 쓸 수 있는 것을 같이 확인한다
과거 네이버 검수는 좁은 창에서 35%로 맞고 다시 넓히면 100%로 복원되는 것을 확인했다. 같은 문서와 로그인을 유지한 근거도 남겼다. 현재 코드의 사이트별 보완과 당시 실측은 다른 시점의 근거이며 이번 집필에서 새 실사이트 시험을 돌린 것은 아니다.
아래는 읽은 원래 비율 함수의 핵심이다. 공유 보존 모듈은 별도로 합성 지문만 비교하고 원고를 읽거나 배율을 바꾸지 않는다. 화면 오른쪽 끝이 보이는지, 작성하던 사람이 같은 자리에서 계속 입력할 수 있는지 함께 확인해야 한다. 레이아웃 편의가 문서의 연속성과 수동 선택을 해치지 않아야 작업실의 기능이 된다. 다른 화면에 적용할 때도 배율 숫자보다 입력과 관찰의 전후 조건을 먼저 정의해야 한다.