IT관련

📑 UTF-8 with BOM 한눈에 이해하기

파란하늘999 2026. 3. 4. 09:43

1. BOM(Byte Order Mark)이란?

BOM은 문서 맨 앞에 눈에 보이지 않게 붙는 **'약속된 신호'**입니다. 텍스트 파일이 어떤 인코딩 방식으로 저장되었는지 프로그램에 알려주는 역할을 하죠.

  • 바이트 순서: EF BB BF (16진수)
  • 목적: "이 파일은 UTF-8로 작성되었습니다!"라고 선언하는 것.

2. 왜 사용하나요? (장점)

주로 윈도우(Windows) 환경에서의 호환성 때문입니다.

  • 메모장(Notepad)이나 엑셀(Excel) 같은 프로그램은 파일에 BOM이 없으면 한글이 포함된 문서를 'ANSI'나 다른 방식으로 오해해서 글자가 깨지게(뷃뙑뙗...) 표시할 때가 있습니다. 이때 BOM이 있으면 정확하게 UTF-8로 인식합니다.

⚠️ 주의해야 할 문제점 (단점)

가장 큰 문제는 웹 개발이나 프로그래밍 환경에서 발생합니다.

  • 불필요한 공백 발생: 웹 브라우저가 BOM을 실제 데이터(문자)로 인식해서 페이지 상단에 원치 않는 빈 줄이나 이상한 공백을 출력할 수 있습니다.
  • 스크립트 오류: PHP, Python 같은 언어에서 소스 코드 맨 앞에 BOM이 있으면 구문 오류(Syntax Error)를 일으키는 주범이 됩니다.
  • 유닉스/리눅스 환경: 이 환경에서는 보통 BOM이 없는(Without BOM) 방식을 표준으로 사용하므로 호환성 문제가 생길 수 있습니다.

💡 요약 및 권장 사항

구분 UTF-8 (No BOM / 일반) UTF-8 with BOM
표준성 웹 표준, 대부분의 프로그래밍 언어 윈도우 전용 프로그램 위주
추천 용도 HTML, CSS, JS, 소스 코드 엑셀용 CSV, 일반 텍스트 메모
특징 깔끔하고 오류가 적음 윈도우 프로그램에서 한글 깨짐 방지

✔️ 결론: 무엇을 써야 할까?

  1. 개발자라면: 무조건 **UTF-8 (BOM 없음)**을 기본으로 사용하세요. VS Code 같은 에디터의 기본 설정입니다.
  2. 엑셀에서 CSV를 열어야 한다면: 한글이 깨질 경우 UTF-8 with BOM으로 저장해서 열면 해결됩니다.
반응형