Post

웹 브라우저

웹 브라우저

개요

웹 브라우저는 가상 머신이자 인터프리터로, 애플리케이션으로 볼 수도 있고, 프로그래밍을 할 수 있는 하나의 컴퓨터로 볼 수도 있다. 이러한 웹 브라우저에 어떤 기능이 있고 어떻게 동작하는지에 대해 살펴보자

마크업 언어

  • 대표적으로 HTML이 있다.
  • 본문과 구분할 수 있는 마크를 추가할 수 있는 시스템이다.
  • 일부 문자에 특별한 기능을 부여한다.
  • 과거에는 troff라는 마크업 언어가 존재했다.
  • IBM이 만든 GML, SGML 같은 마크업 언어도 있다.
  • SGML보다 좀 더 실용적인 마크업 언어로 XML이 있다.

URL

  • 일정한 구조를 따르는 텍스트 문자열이다.
  • 스킴, 호스트, 경로로 나뉘어진다.
    • https://, www.naver.com, /news/abcd
  • 스킴은 통신 메커니즘을 표시하고, 호스트는 통신하려는 서버를 나타내며, 경로는 리소스의 위치를 의미한다.

HTML 문서

  • 하이퍼텍스트는 다른 대상에 대한 링크가 포함된 텍스트다.
  • 부등호는 마크업 엘리먼트를 열고 닫는 특수한 기능을 갖는다.
  • 만약 부등호 같은 특수한 기능을 문자열 그자체로 표현하고 싶다면 엔티티 참조를 사용해야 한다.
  • 태그에는 이름과 값 쌍을 갖는 속성이 포함될 수도 있다.

DOM: 문서 객체 모델

  • 브라우저는 문서를 DOM에 따라 처리한다.
  • 트리 구조다. (html(head, body(div, div, …)))
  • 브라우저는 이러한 문서 트리로 깊이 우선 순회를 통해 트리를 해석한다.
  • 방문 순서는 HTML을 작성한 순서를 따라간다.

CSS

  • 초기 웹 페이지는 브라우저가 HTML을 어떻게 표시할지 스스로 알아내는 방식이었다.
  • 화면의 시각적 효과가 중요해지면서 효율적으로 관리하기 위해 CSS가 등장했다.
  • 엘리먼트는 트리 구조(자식들은 이중 연결 리스트)고 어트리뷰트는 단일 연결 리스트 구조다.
  • CSS는 셀렉터를 사용해 DOM의 엘리먼트 위치를 지정한다.
  • 즉, 선택된 엘리먼트와 애트리뷰트를 연결해준다.
  • 셀렉터 { 프로퍼티:값 } 형식이다.

XML 등의 마크업 언어

  • XML도 HTML과 마찬가지로 엘리먼트를 열면 반드시 닫아줘야 한다.
  • HTML은 웹 페이지를 위해 만들어진 것이라면, XML은 더 범용적인 용도의 언어다.
  • HTML과 다르게 XML 태그는 미리 정해진 의미가 없다.
  • 사용자가 원하는 대로 의미를 부여할 수 있다.
  • 하지만 누구나 원하는 대로 마크업 언어를 만들 수 있어 충돌이 발생할 수도 있다.
  • 엘리먼트 태그 앞에 접두사를 붙여 엘리먼트가 어느 종류의 XML에 속하는지 구분할 수 있게 해주는 이름 공간 방법이 있다.
  • DTD(문서 타입 정의)는 마크업 언어 문법에 맞는 엘리먼트에 대해 정의할 수 있다.
  • XPath는 XML 문서에 대한 셀렉터를 제공한다.

자바스크립트

  • 정적인 웹 페이지를 동적으로 다루기 위해 등장한 언어다.
  • DOM을 변경하고 직접 웹 서버와 통신할 수 있어졌다.
  • AJAX를 사용해 서버와 비동기 상호작용을 할 수 있다.

jQuery

  • DOM 함수는 동작이 브라우저마다 다르고, 사용하기가 불편하다.
  • 이러한 차이를 해결하기 위해 등장한 라이브러리다.
  • 셀렉터와 액션을 조합해서 사용한다.

SVG

  • 크기 변경이 가능한 백터 그래픽스다.
  • 마크업 언어다.

HTML5

  • HTML의 최신 구현이다.
  • 다양한 시맨틱 엘리먼트가 추가됐다.
  • 캔버스가 추가됐다.
  • 오디오와 비디오 엘리먼트도 추가됐다.

JSON

  • 자바스크립트 객체를 사람이 읽기 쉬운 방식으로 표현하는 표기법이다.
This post is licensed under CC BY 4.0 by the author.