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, 일반 텍스트 메모 |
| 특징 | 깔끔하고 오류가 적음 | 윈도우 프로그램에서 한글 깨짐 방지 |
✔️ 결론: 무엇을 써야 할까?
- 개발자라면: 무조건 **UTF-8 (BOM 없음)**을 기본으로 사용하세요. VS Code 같은 에디터의 기본 설정입니다.
- 엑셀에서 CSV를 열어야 한다면: 한글이 깨질 경우 UTF-8 with BOM으로 저장해서 열면 해결됩니다.
반응형
'IT관련' 카테고리의 다른 글
| ⚡️ await은 왜 까다롭게 굴지 않을까? (0) | 2026.03.13 |
|---|---|
| GitHub에서 글 작성 시 사용하는 마크다운 정리 (0) | 2026.03.13 |
| 🚀 [Angular] 서버 사이드 렌더링(SSR)과 정적 사이트 생성(SSG) 완벽 정리 (0) | 2026.03.03 |
| 🚀 GitHub Issue 관리: Create Sub-issue vs Add Existing Issue (0) | 2026.02.24 |
| 시댄스 2.0(Seedance 2.0) 완전 정리 (0) | 2026.02.21 |