BOM과 DOM의 차이

BOM과 DOM은 모두 웹 브라우저 환경에서 사용되는 객체 모델로, 각각 브라우저와 문서의 요소에 접근하고 조작하는 데 사용된다. 그러나 두 객체 모델은 다른 목적과 영역에서 사용된다.

BOM (Browser Object Model):

  • 브라우저 환경에서 브라우저 창(window)과 관련된 객체들을 포함하는 객체 모델
  • 웹 페이지가 아니라 브라우저 자체를 다루는 데 사용
  • BOM을 통해 브라우저 창의 속성, 메서드, 이벤트 등에 접근하고 조작

주요 객체와 기능

  • window: 브라우저 창을 나타내며, 전역 객체로서 많은 프로퍼티와 메서드를 제공
  • navigator: 브라우저와 사용자의 시스템 정보에 접근할 수 있는 객체
  • location: 현재 웹 페이지의 URL을 다루고 조작하는 데 사용
  • history: 브라우저의 세션 히스토리를 조작하는 데 사용
  • screen: 사용자의 화면 정보와 해상도에 접근할 수 있는 객체

DOM (Document Object Model):

  • 웹 문서의 요소(element)들을 계층 구조로 나타내며, 이를 프로그래밍적으로 조작할 수 있는 인터페이스를 제공하는 객체 모델
  • HTML 또는 XML 문서의 요소와 속성을 JavaScript 객체로 표현하여 조작

주요 특징

  • 웹 문서의 각 요소는 DOM 노드로 표현
  • HTML 문서의 각 태그는 DOM 요소 노드로 매핑
  • 계층 구조로 되어 있어 부모-자식 관계로 구성
  • JavaScript를 사용하여 웹 페이지의 콘텐츠를 동적으로 변경 가능
  • 이벤트 처리와 상호작용을 위한 메서드와 이벤트 핸들링을 제공

비교

  • BOM은 브라우저 창과 관련된 객체와 동작을 다루는 데 사용되고, DOM은 문서의 요소와 콘텐츠를 다루는 데 사용
  • BOM은 브라우저 환경과 사용자 정보에 관련한 기능을 제공하며, DOM은 문서의 구조와 내용을 조작하는 데 집중
  • BOM은 브라우저마다 지원하는 기능이 다르며, DOM은 표준화된 인터페이스로 웹 표준을 준수
  • BOM은 window 객체를 중심으로 동작하고, DOM은 HTML 요소를 다루는 데 집중