์ด ๋ฌธ์„œ์˜ ์›๋ณธ์€ ์™ธ๋ถ€ ์œ„ํ‚ค์—์„œ ๊ฐ€์ ธ์™”์Šต๋‹ˆ๋‹ค.
1. ๊ฐœ์š”2. ์ƒ์„ธ3. Browser Object Model4. Bill Of Material

1. ๊ฐœ์š”[ํŽธ์ง‘]

U+FEFF.[1] ์œ ๋‹ˆ์ฝ”๋“œ ๋ฌธ์ž์˜ ํ•˜๋‚˜.

์ด๋ฆ„์€ ZERO WIDTH NO-BREAK SPACE์ด๋‚˜, ์‹ค์ œ๋กœ๋Š” ๊ณต๋ฐฑ์˜ ์ผ์ข…์œผ๋กœ ์“ฐ์ด์ง€๋Š” ์•Š๊ณ  ๋ฐ”์ดํŠธ ์ˆœ์„œ ๋งˆํฌ(byte order mark, BOM)๋กœ ์“ฐ์ธ๋‹ค. zero width non-breaking space์˜ ์—ญํ• ์€ U+2060 WORD JOINER๊ฐ€ ๋Œ€์‹ ํ•œ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์•„๋ž ๋ฌธ์ž์šฉ ๋ธ”๋Ÿญ์ธ Arabic Presentation Forms-B์— ๋ผ์–ด ์žˆ๋‹ค.

2. ์ƒ์„ธ[ํŽธ์ง‘]

์ด ๋ฌธ์ž๋Š” UTF-16์œผ๋กœ ๋œ ํŒŒ์ผ์˜ ์—”๋””์–ธ[2]์ด ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ํŒ๋‹จ๋  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๊ธฐ ์œ„ํ•ด์„œ ํŒŒ์ผ์˜ ๋งจ ์•ž์— ์‚ฝ์ž…๋œ๋‹ค. UTF-16์˜ ์ฒ˜๋ฆฌ ๋ฐฉ์‹์—๋Š” ๋น… ์—”๋””์–ธ๊ณผ ๋ฆฌํ‹€ ์—”๋””์–ธ์ด ์žˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ๊ฐ€(U+AC00)์€ ๋น… ์—”๋””์–ธ์—์„œ๋Š” AC 00์œผ๋กœ ์ €์žฅ๋˜๊ณ  ๋ฆฌํ‹€ ์—”๋””์–ธ์—์„œ๋Š” 00 AC๋กœ ์ €์žฅ๋œ๋‹ค.[3] ์ด AC 00์ด๋‚˜ 00 AC๋ผ๋Š” ๋ฐ”์ดํŠธ๋งŒ์œผ๋กœ๋Š” ํ”„๋กœ๊ทธ๋žจ์ด ์—”๋””์–ธ์„ ํŒ๋‹จํ•  ์ˆ˜ ์—†๊ธฐ์—, ํŒŒ์ผ์˜ ๋งจ ์•ž์— ์ด ๋ฌธ์ž๋ฅผ ์‚ฝ์ž…ํ•ด์„œ ํ”„๋กœ๊ทธ๋žจ์ด ์—”๋””์–ธ์„ ํŒ๋‹จํ•  ์ˆ˜ ์žˆ๋„๋ก ๋„์™€์ค€๋‹ค. ์ฆ‰ ์ด ๋ฌธ์ž๊ฐ€ ํŒŒ์ผ์˜ ๋งจ ์•ž์— ์‚ฝ์ž…๋  ๊ฒฝ์šฐ, ํ”„๋กœ๊ทธ๋žจ์ด ํŒŒ์ผ์„ ์ฝ์–ด๋“ค์˜€์„ ๋•Œ ์ฒซ ๋‘ ๋ฐ”์ดํŠธ๊ฐ€ FE FF์ด๋ฉด ๋น… ์—”๋””์–ธ, FF FE์ด๋ฉด ๋ฆฌํ‹€ ์—”๋””์–ธ์ž„์„ ๋ฐ”๋กœ ํŒ๋‹จํ•  ์ˆ˜ ์žˆ๊ณ , ํŒŒ์ผ์„ ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์—ด ์ˆ˜ ์žˆ๋‹ค.
  • FF FE 00 AC โ†’ (U+FEFF) U+AC00 โ†’ ๊ฐ€
  • FE FF 00 AC โ†’ (U+FEFF) U+00AC โ†’ ยฌ[4]
  • FF FE AC 00 โ†’ (U+FEFF) U+00AC โ†’ ยฌ
  • FE FF AC 00 โ†’ (U+FEFF) U+AC00 โ†’ ๊ฐ€

UTF-8์˜ ๊ฒฝ์šฐ ์ด๋Ÿฐ ์—”๋””์–ธ ๋ฌธ์ œ๊ฐ€ ์—†๋Š”๋ฐ๋„ ์ผ๋ถ€ ํ…์ŠคํŠธ ์—๋””ํ„ฐ๋Š” ๊ฐ•์ œ๋กœ ์ด ๋ฌธ์ž๋ฅผ ์‚ฝ์ž…ํ•ด์„œ ๋ฌธ์ œ๋ฅผ ์ผ์œผํ‚ค๊ธฐ๋„ ํ•œ๋‹ค. ๋‹ค๋งŒ ์œ ๋‹ˆ์ฝ”๋“œ ๋ณด๊ธ‰์œจ์ด ๋А๋ฆฌ๋‹ค๋ณด๋‹ˆ ์ผ๋ฐ˜ ์œ ์ €๋ฅผ ๋Œ€์ƒ์œผ๋กœ ํ•˜๋Š” ํ…์ŠคํŠธ ์—๋””ํ„ฐ๋“ค์˜ ๊ฒฝ์šฐ BOM์ด ์—†์œผ๋ฉด ์ผ๋‹จ ์™„์„ฑํ˜•(๋ฐ ๊ฐ ์–ธ์–ด๋ณ„ ์ฝ”๋“œํŽ˜์ด์ง€)์œผ๋กœ ์ฝ๊ณ ๋ณด๋Š” ์‹์œผ๋กœ ์ฒ˜๋ฆฌํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ์ƒ๋‹น์ˆ˜. ๊ทธ๋Ÿฌ๋‹ค๋ณด๋‹ˆ UTF-8 ๋ฌธ์„œ์—๋„ BOM์„ ๋„ฃ์–ด๋‘๋Š”๊ฒŒ ํŽธํ•œ ๊ฒŒ ์‚ฌ์‹ค์ด๋‹ค. ์‚ฌ์‹ค ์œ ๋‹ˆ์ฝ”๋“œ ์ฒ˜๋ฆฌ์— ์ œ๋Œ€๋กœ ์‹ ๊ฒฝ์“ฐ์ง€ ์•Š๋Š” ์—๋””ํ„ฐ ์ œ์ž‘์ž๋“ค์ด ๋ฌธ์ œ๊ธด ํ•˜์ง€๋งŒ. UTF-8์—์„œ BOM์€ EF BB BF์™€ ๊ฐ™์ด ํ‘œ๊ธฐ๋œ๋‹ค.

๊ทธ๋Ÿฐ๋ฐ ์ด๊ฒŒ ์œ ๋‹‰์Šค ์ชฝ๊นŒ์ง€ ํฌํ•จํ•œ๋‹ค๋ฉด ์–˜๊ธฐ๊ฐ€ ๋‹ฌ๋ผ์ง„๋‹ค. PHP์˜ ๊ฒฝ์šฐ ์ฝ์–ด๋“ค์ด๋Š” ๋‚ด์šฉ์ด PHP ์†Œ์Šค๋กœ ๋˜์–ด ์žˆ์œผ๋ฉด PHP๋กœ ์‹คํ–‰ํ•˜๊ธฐ ์‹œ์ž‘ํ•˜๊ณ , ์ผ๋ฐ˜ ํ…์ŠคํŠธ๋กœ ๋˜์–ด ์žˆ์œผ๋ฉด ํ…์ŠคํŠธ๋กœ ์ฝ์–ด๋“ค์ด๊ธฐ ์‹œ์ž‘ํ•˜๋Š”๋ฐ PHP๋Š” BOM์„ ์ธ์‹ํ•˜์ง€ ๋ชปํ•œ๋‹ค. ๊ทธ๋ž˜์„œ ์ผ๋ฐ˜ ํ…์ŠคํŠธ๋กœ ์•Œ๊ณ  ๋ณด๋ƒˆ๋Š”๋ฐ PHP๊ฐ€ ์‹œ์ž‘๋˜๋‹ˆ ์˜ค์ž‘๋™์„ ์ผ์œผํ‚ค๋Š” ๊ฒƒ. ์ด์™ธ์— ์ฝ˜์†”์—์„œ ํ…์ŠคํŠธ ํŒŒ์ผ ํ•ฉ์น˜๋Š” ๋ฐ๋„ ์• ๋กœ์‚ฌํ•ญ์ด ์ƒ๊ธธ ์ˆ˜ ์žˆ๋Š” ๋“ฑ, ๊ฐœ๋ฐœ์ž ์ž…์žฅ์—์„œ๋Š” BOM์„ ์ž๋™์œผ๋กœ ๋„ฃ์–ด์ฃผ๋Š” ํ”„๋กœ๊ทธ๋žจ์ด ์˜คํžˆ๋ ค ์š•๋จน๋Š”๋‹ค. ์ด๋Ÿฐ ๊ฒฝ์šฐ ์ €์žฅ ์‹œ BOM์„ ์ถ”๊ฐ€ํ• ์ง€ ๋ง์ง€ ์„ ํƒํ•  ์ˆ˜ ์žˆ๋Š” ์—๋””ํ„ฐ ๋˜๋Š” IDE๋กœ ๋ฌธ์„œ๋ฅผ ์ €์žฅํ•ด์•ผ ํ•œ๋‹ค. Notepad++, IntelliJ IDEA, Visual Studio Code, EditPlus ๋“ฑ์˜ ๊ฐœ๋ฐœ ํˆด์€ UTF-8์— BOM์„ ์ถ”๊ฐ€ํ• ์ง€ ์—ฌ๋ถ€๋ฅผ ์„ ํƒํ•  ์ˆ˜ ์žˆ๋‹ค.

๋Œ€ํ‘œ์ ์œผ๋กœ BOM์„ ์ž๋™ ์‚ฝ์ž…ํ•˜๋Š” ํ…์ŠคํŠธ ์—๋””ํ„ฐ๊ฐ€ Microsoft Windows์˜ ๋ณด์กฐ ํ”„๋กœ๊ทธ๋žจ์ธ ๋ฉ”๋ชจ์žฅ์ด๋‹ค. Windows ์ชฝ ์—๋””ํ„ฐ ํ”„๋กœ๊ทธ๋žจ๋“ค์€ BOM์ด ์—†์œผ๋ฉด UTF-8์ด๋ผ๋Š” ๊ฒƒ์„ ์ธ์‹ํ•˜์ง€ ๋ชปํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ์ข…์ข… ๋ฐœ์ƒํ•œ๋‹ค. ๋‹ค๋งŒ Windows 10 19H1 ๋นŒ๋“œ์—์„œ ๊ธฐ๋ณธ ์ธ์ฝ”๋”ฉ์ด ๊ธฐ์กด์˜ ANSI(=MBCS)์—์„œ BOM ์—†๋Š” UTF-8์œผ๋กœ ๋ฐ”๋€Œ์—ˆ์œผ๋ฉฐ, ์ €์žฅ ์‹œ์— BOM์„ ๋ถ™์ผ์ง€ ์„ ํƒํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋ฐ”๋€Œ์—ˆ๋‹ค. ๋น„์ฃผ์–ผ ์ŠคํŠœ๋””์˜ค์—์„œ๋Š” ์†Œ์Šค ํŒŒ์ผ์˜ ์ธ์ฝ”๋”ฉ์„ UTF-8 BOM์œผ๋กœ ์„ค์ •ํ•˜๋ฉด ํ•œ๊ธ€์ด ์ •์ƒ ์ถœ๋ ฅ๋˜์ง€๋งŒ, UTF-8์œผ๋กœ ์„ค์ •ํ•˜๋ฉด ํŒŒ์ผ์„ ANSI๋กœ ์ธ์‹ํ•ด ์—๋””ํ„ฐ์™€ ์ฝ˜์†”์—์„œ ํ•œ๊ธ€์ด ์ „๋ถ€ ๊นจ์ง„ ์ฑ„๋กœ ๋‚˜์˜จ๋‹ค. ์œˆ๋„์šฐ์—์„œ ํ•œ๊ธ€์„ ์ถœ๋ ฅ์‹œํ‚ค๊ธฐ ์œ„ํ•ด UTF-8์— BOM์„ ๋ถ™์—ฌ ์ €์žฅํ•œ ํŒŒ์ผ์˜ ๊ฒฝ์šฐ, ์œ ๋‹‰์Šค ๊ณ„ํ†ต ์ปดํŒŒ์ผ๋Ÿฌ(GCC, LLVM/Clang ๋“ฑ)์™€ ๊ณต์œ ํ•ด์„œ ์‚ฌ์šฉํ•˜๋ฉด BOM์˜ ์กด์žฌ๋กœ ์ธํ•˜์—ฌ ์˜ค์ž‘๋™์„ ์ผ์œผํ‚ฌ ์ˆ˜๋„ ์žˆ๋‹ค.

U+FFFE์—๋Š” ๋ฌธ์ž๊ฐ€ ๋ฐฐ๋‹น๋˜์–ด ์žˆ์ง€ ์•Š๊ณ  ์•ž์œผ๋กœ๋„ ๋ฐฐ๋‹น๋  ์ผ์ด ์—†๊ธฐ ๋•Œ๋ฌธ์— U+FFFE๊ฐ€ ์‹ค์ œ๋กœ ์“ฐ์ผ ์ผ์€ ์—†๊ณ , ๋”ฐ๋ผ์„œ U+FEFF๊ฐ€ U+FFFE์™€ ํ˜ผ๋™๋  ์—ฌ์ง€๋Š” ์—†๋‹ค.

3. Browser Object Model[ํŽธ์ง‘]

์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์—์„œ ๋ธŒ๋ผ์šฐ์ € ๊ด€๋ จ ๊ธฐ๋Šฅ์„ ์กฐ์ž‘ํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋งŒ๋“  ๊ฐ์ฒด ๋ชจ๋ธ. window๋ผ๋Š” ๊ฐ์ฒด๋กœ ์ ‘๊ทผํ•˜์—ฌ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.


4. Bill Of Material[ํŽธ์ง‘]

๊ตฌ๋งคํ•ด์•ผ๋  ๋ถ€ํ’ˆ๋“ฑ์„ ํ•˜๋‚˜๋กœ ๋ชจ์•„๋†“์€ ์ฃผ๋ฌธ ๋ช…์„ธ์„œ.

์ฃผ๋กœ ์ „์ž์ชฝ์—์„œ ์“ฐ์ด๋Š” ๋ง์ด๋ฉฐ ์ œํ’ˆ์„ ์ œ์ž‘ํ• ๋•Œ ์ด์— ํ•„์š”ํ•œ ๋ถ€์†ํ’ˆ๋“ฑ์˜ ๋ฐ์ดํ„ฐ๋ฅผ ํ•˜๋‚˜์˜ ํŒŒ์ผ๋กœ ๋ชจ์•„์„œ ๋งŒ๋“ค์–ด๋†“์€๊ฒƒ์„ BOM์ด๋ผ๊ณ  ํ•œ๋‹ค. ํšŒ๋กœ ์„ค๊ณ„ ๋‹จ๊ณ„์—์„œ ๋ถ€ํ’ˆ์„ ์ง€์ •ํ•ด ๋†“์œผ๋ฉด ECAD์ชฝ์—์„œ BOM์— ํ•„์š”ํ•œ ๋ถ€ํ’ˆ์˜ ์ด๋ฆ„์„ ๊ธฐ๋กํ•ด ๋†“์œผ๋ฉฐ ํ›„์— ์ด BOM์„ ๋“ค๊ณ  ๋ถ€ํ’ˆ์‚ฌ์ดํŠธ์— ๊ฐ€์„œ ์ฃผ๋ฌธ๊ฐ€๋Šฅํ•œ ๋ถ€ํ’ˆ์ด ์žˆ๋‚˜ ํ™•์ธํ›„ ์ตœ์ข…์ฃผ๋ฌธ์„ ํ•˜๊ฒŒ๋œ๋‹ค.
[1] ์ธ์ฝ”๋”ฉ ๋ฐฉ์‹์— ๋”ฐ๋ผ์„œ FF FE๋กœ ํ‘œ๊ธฐํ•˜๊ธฐ๋„ ํ•˜๋‚˜, ์‹ค์ œ๋กœ ํ•ด์„ํ•  ๋•Œ์—๋Š” U+FEFF๋กœ ์ฝํžŒ๋‹ค. ๋”ฐ๋ผ์„œ U+FFFE๋ผ๋Š” ๋ฌธ์ž๋Š” ์กด์žฌํ•˜์ง€ ์•Š๋Š”๋‹ค.
[2] ํ”„๋กœ๊ทธ๋ž˜๋ฐ์—์„œ ๋ฉ”๋ชจ๋ฆฌ ๋“ฑ์˜ 1์ฐจ์› ๊ณต๊ฐ„์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์–ด๋–ป๊ฒŒ ๋ฐฐ์—ดํ•˜๋Š”์ง€์˜ ๋ฐฉ์‹. ๊ฑธ๋ฆฌ๋ฒ„ ์—ฌํ–‰๊ธฐ์˜ ์†Œ์ธ๊ตญ์—์„œ "๊ณ„๋ž€๋ฅผ ์–ด๋А ์ชฝ์œผ๋กœ ๊นจ๋จน๋Š”๊ฐ€?" ๋ผ๋Š” ๋…ผ์Ÿ์œผ๋กœ ์ „์Ÿ๊นŒ์ง€ ๋ฒŒ์ด๊ฒŒ ๋œ ๊ฒƒ์—์„œ ๋ช…์นญ์ด ์œ ๋ž˜๋˜์—ˆ๋‹ค.
[3] ์ด๋ ‡๊ฒŒ ๋ฐฉ์‹์ด ๋‚˜๋‰˜๋Š” ๊ฒƒ์€ ๋‘ ๋ฐฉ์‹ ๋‹ค ๋‚˜๋ฆ„์˜ ์žฅ์ ์ด ์žˆ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. ํ•œ๊ตญ์–ด ์œ„ํ‚ค๋ฐฑ๊ณผ์˜ ์—”๋””์–ธ ๋ฌธ์„œ ์ฐธ๊ณ .
[4] not sign. ๋ช…์ œ์—์„œ ๋ถ€์ •์„ ๋‚˜ํƒ€๋‚ด๋Š” ๊ธฐํ˜ธ์ด๋‹ค. ํ‚ค๋ณด๋“œ๋กœ ์ž…๋ ฅํ•  ์ˆ˜ ์—†๋Š” ๊ธฐํ˜ธ์ด๊ธฐ ๋•Œ๋ฌธ์— ๋ณดํ†ต ๋ฌผ๊ฒฐ ๊ธฐํ˜ธ(~) ํ˜น์€ ๋А๋‚Œํ‘œ(!)๋ฅผ ๋Œ€์‹  ์‚ฌ์šฉํ•œ๋‹ค.