같은 코드, 다른 기기에서의 뷰포트
HTML/CSS/JS가 웹 브라우저에서 동작할 때
내 PC와 연결된 디스플레이에서는 정상적인 비율로 나오는데
다른 기기와 연결된 디스플레이에서는
멋대로 비율이 바뀐다던가, 여백 공간이 남는 등의 현상이 발생하고는 한다.
대부분 내 PC와 그 다른 기기의 브라우저 환경이 다르기 때문에 발생한다.
1. 사용자 인터페이스가 다르다.
2. 웹 브라우저 소프트웨어가 다르다.
사용자 인터페이스 차이
예를 들어, PC와 셋톱박스(STB)를 각각 동일한 모니터에 연결한다 했을 때
다음과 같은 두 쌍의 인터페이스가 생성된다.
MONITOR-PC = 마우스, 키보드 (스크롤 등으로 무한히 확장 가능한 화면)
MONITOR-STB = 모니터, TV (고정된 화면)
사용자 인터페이스가 다르기 때문에
뷰포트 overflow 시,
pc 브라우저는 스크롤바, STB 브라우저는 ghost space를 패딩하여 보여준다.
웹 브라우저 소프트웨어 차이
때문에 셋톱박스에서 웹뷰어 프로그램을 사용하여 웹 페이지를 띄운다면그 웹뷰어 프로그램이 어떤 프로그램의 어떤 버전 기반인지 추적해야한다.
예를 들어, 어떤 A라는 STB의 웹뷰어 프로그램은
Android System WebView는 Google Chromium 기반이며
버전은 Chromium 95.0.4638.74 임을 기록해두는 것이 좋다.
폰트
또한, 폰트 사용에도 유의해야한다.
CDN 방식으로 네트워크를 타고 폰트를 다운로드 하는 프로그램이라면
네트워크 구성에 따라 CDN 주소가 막혀서
해당 기기의 기본 폰트가 나올 수도 있기 때문이다.
때문에 설정한 폰트가 제대로 렌더링 되는지
개발자 도구의 computed > rendered fonts에서 직접 확인해줘야한다.
스타일 시트에 폰트 이름이 나온다고 렌더링 되는 것이 아니다.
브라우저 자체 웹 폰트의 경우
클라이언트 프로그램에서 이미 폰트 파일을 가지고 있으므로
네트워크 트래픽이 발생하지 않는다.
서비스하고 있는 제품의 웹 서버에 폰트를 이미 다운로드 해 뒀다면
CSS에 명시된 @font-face 룰에 따라
웹 서버에서 폰트를 최초에 전송할 때 네트워크 트래픽이 발생하거나
최초에 다운로드 후, 브라우저 폴더에 캐싱한다.
Font CDN의 경우 무료인 경우가 많지만
따로 파일 스토리지 서비스를 이용하거나 유료 폰트를 사용한다면
마찬가지로 트래픽 + 구독료 비용이 발생한다.

댓글
댓글 쓰기