HTML5 문서의 유니코드 BOM 문자란?
BOM(Byte Order Mark, 바이트 순서 표시)은 데이터 스트림의 맨 앞에 위치하는 U+FEFF 문자 코드를 의미합니다. 이 문자는 주로 인코딩 정보가 명시되지 않은 일반 텍스트 파일에서 바이트 순서와 인코딩 형식을 식별하는 서명(signature) 역할을 수행합니다.
윈도우 프로그램과 UTF-8 BOM
윈도우 메모장(Notepad)을 포함한 많은 윈도우 프로그램들은 문서를 UTF-8로 저장할 때 자동으로 파일 시작 부분에 0xEF 0xBB 0xBF라는 세 개의 바이트를 추가합니다.
이 세 바이트는 유니코드 BOM을 UTF-8 방식으로 인코딩한 것으로, 흔히 'UTF-8 BOM'이라고 불립니다. 다만 흥미로운 점은, UTF-8에서는 바이트 순서가 고정되어 있기 때문에 이 표시가 실제 바이트 순서와는 무관하다는 것입니다. 즉, 단순히 '이 파일이 UTF-8로 인코딩되어 있다'는 신호로 사용될 뿐입니다.
HTML5 문서에서 BOM 활용하기
HTML5 문서에서는 파일의 가장 앞부분에 유니코드 BOM 문자를 배치할 수 있습니다. 이렇게 하면 해당 문자가 파일에 사용된 문자 인코딩의 서명 역할을 하여, 브라우저나 파서가 문서의 인코딩을 더욱 정확하게 판단하는 데 도움을 줍니다.
참고로 HTML5에서는 BOM 대신 <meta charset="UTF-8"> 태그를 문서 상단에 선언하는 방법으로도 인코딩을 지정할 수 있으며, 두 방식 중 하나만 사용해도 충분합니다.