BOM(Browser Object Model)은 브라우저와 관련된 객체의 모델을 의미합니다. DOM(Document Object Model)이 문서의 구조와 내용을 다루는 것에 비해, BOM은 브라우저 창이나 탭, URL, 쿠키 등 브라우저의 다른 부분들을 제어하는 데 사용됩니다. BOM에 대한 설명이 누락된 이유는, 웹 페이지의 렌더링 과정에 초점을 맞춘 설명에서 BOM의 역할이 직접적으로 언급되지 않았기 때문일 수 있습니다.
window: 브라우저의 창을 대표하는 객체로, 전역 변수와 함수에 접근할 수 있게 합니다.
navigator: 사용자의 브라우저와 운영 체제에 대한 정보를 제공합니다.
screen: 사용자의 화면 해상도와 색상 정보를 제공합니다.
location: 현재 창의 URL을 나타내며, URL을 변경하거나 조회하는 데 사용됩니다.
history: 브라우저 세션의 히스토리를 제어할 수 있게 해주는 객체입니다.
BOM(Browser Object Model)의 정의와 역할: BOM은 브라우저의 창(window) 및 창에 대한 다양한 기능을 제공하는 객체 모델입니다. 예를 들어, window.location을 통해 현재 페이지의 URL을 조회하거나 변경할 수 있고, window.localStorage와 window.sessionStorage를 통해 웹 스토리지 기능을 사용할 수 있습니다. 또한, window.history 객체를 사용하여 브라우저의 히스토리에 접근하거나 제어할 수 있습니다.
BOM과 DOM의 차이: DOM은 문서의 구조와 내용에 초점을 맞춘 반면, BOM은 브라우저 창이나 탭과 같은 브라우저의 외부 환경을 제어하는 데 사용됩니다. BOM을 통해 개발자는 브라우저의 기능을 프로그래밍적으로 조작할 수 있으며, 사용자의 브라우징 경험을 개선하기 위한 다양한 작업을 수행할 수 있습니다.
BOM의 중요성: BOM은 웹 애플리케이션의 사용성과 상호작용성을 높이는 데 중요한 역할을 합니다. 예를 들어, 팝업 광고를 차단하거나, 사용자의 화면 해상도에 따라 최적의 레이아웃을 제공하는 등의 기능을 구현할 때 BOM이 사용됩니다.