본문 바로가기

카테고리 없음

[JavaScript]DOM, BOM이란?

오늘은 인프런 강의를 참고해 프론트엔드를 공부할 때 꼭 알아두면 좋은 기본 개념들을 정리해보려 합니다.
처음 배우는 분들도 이해하기 쉽게, 핵심 위주로 설명해볼게요.


DOM이란? (Document Object Model)

DOM은 웹 문서를 객체처럼 다룰 수 있게 만든 구조입니다.
HTML 문서는 브라우저가 읽을 수 있는 형태로 파싱되며, 이때 트리(Tree) 구조를 가지게 되는데 이 구조가 바로 DOM입니다.

  • DOM = HTML 문서를 트리 형태로 표현한 객체 모델
  • 자바스크립트는 이 DOM을 통해 HTML 요소를 추가, 수정, 삭제할 수 있습니다
  • DOM의 루트는 document이며, 이를 통해 웹페이지 내부로 접근합니다

예시

document.getElementById("title").innerText = "안녕하세요";

이런 코드가 가능한 이유는 DOM이 웹페이지를 객체로 표현해주기 때문입니다.


BOM이란? (Browser Object Model)

BOM은 브라우저 자체를 객체로 표현한 모델입니다.
DOM이 웹 문서 자체를 조작하는 것이라면, BOM은 브라우저를 제어하기 위한 API입니다.
자바스크립트는 BOM을 통해 브라우저 기능을 조작할 수 있습니다.

주요 BOM 객체

객체 설명
window 모든 객체가 소속된 최상위 객체. 브라우저 창 자체
document 현재 문서에 대한 정보와 구조를 가진 객체 (DOM 트리의 루트)
history 사용자가 방문한 페이지 기록 제어 가능
location 현재 문서의 URL 정보와 관련된 기능 제공
screen 사용자의 디스플레이 정보 제공 (해상도 등)
navigator 브라우저와 사용자 환경에 대한 정보 제공
 

navigator 객체 예시

navigator 객체는 사용자 브라우저 정보, 위치 정보 등을 제공하여
크로스 브라우징 대응이나 사용자 환경에 맞춘 처리가 가능합니다.

  • navigator.geolocation.getCurrentPosition() → 현재 위치 정보 가져오기
  • navigator.appName → 브라우저 이름
  • navigator.appVersion → 브라우저 버전 정보
  • navigator.userAgent → 서버 요청 시 사용되는 브라우저 정보 문자열

정리

  • DOM: 웹 페이지의 구조를 트리 형태로 표현한 것. 문서 조작에 사용됨
  • BOM: 브라우저 자체를 제어하기 위한 객체 집합. 자바스크립트가 브라우저 기능을 조작할 수 있게 해줌
  • 자바스크립트는 DOM과 BOM을 통해 웹페이지와 브라우저를 제어할 수 있음