자바스크립트와 DOM (Head First HTML5 Programming Chapter 2 요약)
자바스크립트를 이용하여 보다 인터랙티브한 페이지(앱)을 개발할 수 있다. 이때 자바스크립트는 DOM(Document Object Model)을 통해 문서에 있는 각 앨리먼트(element)와 그 내용(content)에 접근하게 되며 새로운 내용(앨리먼트)을 현재의 페이지에 추가할 수 도 있다. 따라서 HTML5를 이용해 웹 웹(Web App)을 개발하거나 사용자 반응을 이끌어내야 하는 다이내믹한 페이지를 개발해야 한다면 무엇보다 이러한 자바스크립트를 충분히 활용할 수 있는 지식과 그 기반이 되는 DOM에 대한 이해가 필수적이다.
핵심은 자바스크립트
자바스크립트로 작성한 코드를 활용해 유저의 액션에 반응하는 인터랙티브한 페이지를 만들 수 있다. (사실 하나의 페이지라기 보다는 이제는 하나의 어플리케이션 단위로 취급해야 하지 않을까 싶다.) 즉, 페이지의 내용을 동적으로 갱신하거나 그 내용을 변경하고 다른 웹서비스와의 메시지 커뮤니케이션을 통해 외부의 데이터를 주고받음으로써 HTML 이라고 하는 정적인 문서의 기존 개념수준을 웹 앱과 같은 어플리케이션 수준까지 확대, 구현할 수 있게 되었다. 그것의 핵심(도구)은 자바스크립트라는 것.
자바스크립트의 동작방식 - 자바스크립트는 DOM으로 말한다.
개발자가 HTML 문서 (대개는 자바스크립트 코드가 함께 포함된)를 작성하여 브라우저로 띄우게 되면 브라우저는 해당 문서를 파싱하여 그 문서의 구조와 내용를 객체화한 DOM이라는 트리구조 표현모델로 만드는데 자바스크립트는 바로 이 DOM을 제어할 수 있기 때문에 (현재의 많은 웹사이트에서 보여지는 것과 같이) 다양한 제어와 풍부한 표현이 가능해진다.
즉, 개발자는 DOM을 이용해 HTML 문서에 있는 마크업과 인터랙티브한 상호작용을 할 수 있다라고 정리할 수 있겠다. 그리고 플리커나 구글과 같은 각 서비스 업체에서 제공하고 있는 수많은 API를 통해 이것이 가능하며 앞으로 이러한 지원은 더욱더 확대될 것이 자명하다.
쉬운 것부터 접근하자. 기본적으로 HTML 마크업으로 작성한 문서의 앨리먼트 Id와 getElementById() 메소드 및 앨리먼트의 innerHTML 속성만으로도 쉽게 해당 앨리먼트의 내용을 바꿀 수 있다. (하지만 여러분이 웹앱을 개밸하는 개발자가 된다면 오리지날(?) 자바스크립보다는 jQuery를 사용할 확률이 클 것이다.)
다만 브라우저는 해당 페이지를 모두 읽어들이고 나서야 해당 문서에 대한 DOM을 생성하므로 DOM 관련 코드를 실행하는 자바스크립트의 실행시점에 유의해야 한다. 때문에 DOM을 조작하는 코드는 대개 window.onload 이벤트의 핸들러로 등록한다.
<script>
function init() {
// DOM manipulating code
}
window.onload = init;</script>
만일 jQuery로 작성한 코드라면 아래와 같이 되겠다.
<script>
$(document).ready(function(){
// DOM manipulating code
});
</script>
언어로서의 자바스크립트 - C나 Java와 대동소이
'웹/모바일 개발 > HTML5' 카테고리의 다른 글
[HTML5] 함수(Function)와 객체(Object)에 대한 이해 (0) | 2012.06.29 |
---|---|
[HTML5] HTML5와 함께 점점 그 역할비중이 커지고 있는 자바스크립트 (0) | 2012.06.26 |
[프로그래밍 도서] Head First HTML5 Programming (0) | 2012.06.19 |
[프로그래밍 도서] HTML5를 공부하기 위해 고른 책, HTML5 첫걸음 (0) | 2012.03.25 |
|