Front End/Web

๋ฌธ์ž์—ด๊ณผ ๊ทธ๋ž˜ํ”ฝ

๐Ÿ–ฅ๏ธ

๋ฌธ์ž์—ด

๋ฌธ์ž์—ด์€ 2010๋…„ ์ดํ›„ ์œ ๋‹ˆ์ฝ”๋“œ๋ผ ๋ถˆ๋ฆฌ๋Š” ์ธ์ฝ”๋”ฉ ๋ฐฉ์‹์œผ๋กœ ํ†ต์ผ๋˜์—ˆ๋‹ค. ๊ณผ๊ฑฐ์—๋Š” ์˜์–ด ์•ŒํŒŒ๋ฒณ ํ•˜๋‚˜๊ฐ€ 1byte๋ฅผ ์ฐจ์ง€ํ•˜๊ธฐ๋„ ํ–ˆ์œผ๋‚˜, ํ˜„์žฌ๋Š” ๋‹ค์–‘ํ•œ ์–ธ์–ด๊ฐ€ ์ปดํ“จํ„ฐ ํ™˜๊ฒฝ์—์„œ ์‚ฌ์šฉ๋˜๊ณ  ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์œ ๋‹ˆ์ฝ”๋“œ๋ฅผ ์‚ฌ์šฉํ•ด ํ…์ŠคํŠธ๋ฅผ ์ €์žฅํ•˜๊ณ  ์žˆ๋‹ค.

์œ ๋‹ˆ์ฝ”๋“œ

์œ ๋‹ˆ์ฝ”๋“œ(Unicode)๋Š” ์œ ๋‹ˆ์ฝ”๋“œ ํ˜‘ํšŒ(Unicode Consortium)๊ฐ€ ์ œ์ •ํ•˜๋Š” ์ „ ์„ธ๊ณ„์˜ ๋ชจ๋“  ๋ฌธ์ž๋ฅผ ์ปดํ“จํ„ฐ์—์„œ ์ผ๊ด€๋˜๊ฒŒ ํ‘œํ˜„ํ•˜๊ณ  ๋‹ค๋ฃฐ ์ˆ˜ ์žˆ๋„๋ก ์„ค๊ณ„๋œ ์‚ฐ์—… ํ‘œ์ค€์ด๋‹ค. ์ด ํ‘œ์ค€์—๋Š” ISO 10646 ๋ฌธ์ž ์ง‘ํ•ฉ, ๋ฌธ์ž ์ธ์ฝ”๋”ฉ, ๋ฌธ์ž ์ •๋ณด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค, ๋ฌธ์ž๋ฅผ ๋‹ค๋ฃจ๊ธฐ ์œ„ํ•œ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋“ฑ์„ ํฌํ•จํ•˜๊ณ  ์žˆ๋‹ค.

์œ ๋‹ˆ์ฝ”๋“œ ํƒ„์ƒ ์ด์ „์—๋Š” ๊ฐ™์€ ํ•œ๊ธ€์ด ์ ์ธ ํ…์ŠคํŠธ ํŒŒ์ผ์ด๋ผ๋„ ํ‘œํ˜„ํ•˜๋Š” ๋ฐฉ๋ฒ•์ด ์ œ๊ฐ๊ฐ์ด์—ˆ๋‹ค. ์–ด๋–ค ํŒŒ์ผ์ด ์ง€์›ํ•˜์ง€ ์•Š๋Š” ๋‹ค๋ฅธ ์ธ์ฝ”๋”ฉ ํ˜•์‹์œผ๋กœ ์ €์žฅ๋˜์–ด ์žˆ๋Š” ๊ฒฝ์šฐ์—๋Š” ํŒŒ์ผ์„ ์ œ๋Œ€๋กœ ๋ถˆ๋Ÿฌ์˜ฌ ์ˆ˜ ์—†์—ˆ๋‹ค. ๊ธฐ๋ณธ์ ์œผ๋กœ ์œ ๋‹ˆ์ฝ”๋“œ์˜ ๋ชฉ์ ์€ ํ˜„์กดํ•˜๋Š” ๋ฌธ์ž ์ธ์ฝ”๋”ฉ ๋ฐฉ๋ฒ•์„ ๋ชจ๋‘ ์œ ๋‹ˆ์ฝ”๋“œ๋กœ ๊ต์ฒดํ•˜๋Š” ๊ฒƒ์ด๋‹ค.

์ธ์ฝ”๋”ฉ(๋ถ€ํ˜ธํ™”)?

์–ด๋–ค ๋ฌธ์ž๋‚˜ ๊ธฐํ˜ธ๋ฅผ ์ปดํ“จํ„ฐ๊ฐ€ ์ด์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์‹ ํ˜ธ๋กœ ๋งŒ๋“œ๋Š” ๊ฒƒ์ด๋‹ค. ์ด ์‹ ํ˜ธ๋ฅผ ์ž…๋ ฅํ•˜๋Š” ์ธ์ฝ”๋”ฉ๊ณผ ๋ฌธ์ž๋ฅผ ํ•ด๋…ํ•˜๋Š” ๋””์ฝ”๋”ฉ์„ ์œ„ํ•ด์„œ๋Š” ๋ฏธ๋ฆฌ ์ •ํ•ด์ง„ ๊ธฐ์ค€์„ ๋ฐ”ํƒ•์œผ๋กœ ์ž…๋ ฅ๊ณผ ํ•ด๋…์ด ์ฒ˜๋ฆฌ๋˜์–ด์•ผ ํ•œ๋‹ค. ์ด๋Ÿฐ ์ธ์ฝ”๋”ฉ๊ณผ ๋””์ฝ”๋”ฉ์˜ ๊ธฐ์ค€์„ ๋ฌธ์ž์—ด ์„ธํŠธ ๋˜๋Š” ๋ฌธ์ž์…‹(charset)์ด๋ผ ํ•œ๋‹ค. ์ด ๋ฌธ์ž์…‹์˜ ๊ตญ์ œ ํ‘œ์ค€์ด ์œ ๋‹ˆ์ฝ”๋“œ์ด๋‹ค.

ASCII ๋ฌธ์ž?

์˜๋ฌธ ์•ŒํŒŒ๋ฒณ์„ ์‚ฌ์šฉํ•˜๋Š” ๋Œ€ํ‘œ์ ์ธ ๋ฌธ์ž ์ธ์ฝ”๋”ฉ์œผ๋กœ ๋ชจ๋“  ์˜์–ด ์•ŒํŒŒ๋ฒณ์„ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ๋‹ค. 52๊ฐœ์˜ ์˜๋ฌธ ์•ŒํŒŒ๋ฒณ ๋Œ€์†Œ๋ฌธ์ž์™€ 10๊ฐœ์˜ ์ˆซ์ž, 32๊ฐœ์˜ ํŠน์ˆ˜๋ฌธ์ž, ํ•˜๋‚˜์˜ ๊ณต๋ฐฑ ๋ฌธ์ž๋ฅผ ํฌํ•จํ•œ๋‹ค. ์œ ๋‹ˆ์ฝ”๋“œ๋Š” ASCII๋ฅผ ํ™•์žฅํ•œ ํ˜•ํƒœ์ด๋‹ค.

UTF-8 vs. UTF-16

UTF-8๊ณผ UTF-16์€ ์ธ์ฝ”๋”ฉ ๋ฐฉ์‹์˜ ์ฐจ์ด๋ฅผ ์˜๋ฏธํ•œ๋‹ค. UTF-8์€ Universal Coded Character Set + Transformation Format โ€“ 8-bit์˜ ์•ฝ์ž๋กœ, UTF- ๋’ค์— ๋“ฑ์žฅํ•˜๋Š” ์ˆซ์ž๋Š” bit์ด๋‹ค.

UTF-8์˜ ํŠน์ง•

  • ๊ฐ€๋ณ€ ๊ธธ์ด ์ธ์ฝ”๋”ฉ

    UTF-8์€ ์œ ๋‹ˆ์ฝ”๋“œ ํ•œ ๋ฌธ์ž๋ฅผ ๋‚˜ํƒ€๋‚ด๊ธฐ ์œ„ํ•ด 1byte(=8 bits)์—์„œ 4bytes๊นŒ์ง€ ์‚ฌ์šฉํ•œ๋‹ค. ๋ฌธ์ž์—ด์— ๋”ฐ๋ผ ๊ฐ€๋ณ€ ๊ธธ์ด๋ฅผ ๊ฐ€์ง€๋Š” ์ธ์ฝ”๋”ฉ ๋ฐฉ์‹์ด๋ฉฐ, ๋„คํŠธ์›Œํฌ๋ฅผ ํ†ตํ•ด ์ „์†ก๋˜๋Š” ํ…์ŠคํŠธ๋Š” ์ฃผ๋กœ UTF-8๋กœ ์ธ์ฝ”๋”ฉ ๋œ๋‹ค. ์‚ฌ์šฉ๋œ ๋ฌธ์ž์— ๋”ฐ๋ผ ๋” ์ž‘์€ ํฌ๊ธฐ์˜ ๋ฌธ์ž์—ด์„ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. ์ผ๋ฐ˜์ ์œผ๋กœ ASCII ์ฝ”๋“œ์˜ ๊ฒฝ์šฐ 1 byte, ์˜์–ด ์™ธ ๊ธ€์ž๋Š” 2~3bytes, ์ด๋ชจ์ง€์™€ ๊ฐ™์€ ๋ณด์กฐ ๊ธ€์ž๋Š” 4bytes๋ฅผ ์ฐจ์ง€ํ•œ๋‹ค.

    // ํ•œ๊ธ€์€ ์ดˆ์„ฑ, ์ค‘์„ฑ, ์ข…์„ฑ์œผ๋กœ ๋‚˜๋‰˜์–ด์ ธ ์ด 3bytes๋ฅผ ์ฐจ์ง€ํ•œ๋‹ค.
    encoder.encode('์ฝ”') // Uint8Array(3) [236, 189, 148]
    
    (236).toString(2) // "11101100" -> 8bits = 1byte
    (189).toString(2) // "10111101" -> 8bits = 1byte
    (148).toString(2) // "10010100" -> 8bits = 1byte
    
    // ์˜๋ฌธ๊ฐ™์€ ASCII ์ฝ”๋“œ๋Š” 1byte๋ฅผ ์ฐจ์ง€ํ•œ๋‹ค.
    encoder.encode('b') // Uint8Array [98]
    (98).toString(2) // "1100010" -> 8bits = 1byte
  • ๋ฐ”์ดํŠธ ์ˆœ์„œ๊ฐ€ ๊ณ ์ •๋จ

    UTF-16์— ๋น„ํ•ด ๋ฐ”์ดํŠธ ์ˆœ์„œ๋ฅผ ๋”ฐ์ง€์ง€ ์•Š๊ณ  ์ˆœ์„œ๊ฐ€ ์ •ํ•ด์ ธ ์žˆ๋‹ค.

UTF-16์˜ ํŠน์ง•

  • ์ฝ”๋“œ ๊ทธ๋Œ€๋กœ ๋ฐ”์ดํŠธ๋กœ ํ‘œํ˜„ ๊ฐ€๋Šฅ, ๋ฐ”์ดํŠธ ์ˆœ์„œ๊ฐ€ ๋‹ค์–‘ํ•จ

    UTF-16์€ ์œ ๋‹ˆ์ฝ”๋“œ ์ฝ”๋“œ ๋Œ€๋ถ€๋ถ„(U+0000๋ถ€ํ„ฐ U+FFFF; BMP) ์„ 16 bits๋กœ ํ‘œํ˜„ํ•œ๋‹ค. ๋Œ€๋ถ€๋ถ„์— ์†ํ•˜์ง€ ์•Š๋Š” ๊ธฐํƒ€ ๋ฌธ์ž๋Š” 32bits์œผ๋กœ ํ‘œํ˜„ํ•˜๊ธฐ ๋•Œ๋ฌธ์— UTF-16๋„ ์ผ์ข…์˜ ๊ฐ€๋ณ€ ๊ธธ์ด๋ผ ํ•  ์ˆ˜ ์žˆ์œผ๋‚˜, ๋Œ€๋ถ€๋ถ„์€ 2bytes๋กœ ํ‘œํ˜„ํ•œ๋‹ค.

    U+ABCD๋ผ๋Š” 16์ง„์ˆ˜๋ฅผ ์žˆ๋Š” ๊ทธ๋Œ€๋กœ ์ด์ง„๋ฒ•์œผ๋กœ ๋ณ€ํ™˜ํ•˜๋ฉด 1010-1011-1100-1101์ด๋‹ค. ์ด ์ด์ง„๋ฒ•์œผ๋กœ ํ‘œํ˜„๋œ ๋ฌธ์ž๋ฅผ 16bits(2bytes)๋กœ ๊ทธ๋Œ€๋กœ ์‚ฌ์šฉํ•˜๋ฉฐ, ๋ฐ”์ดํŠธ ์ˆœ์„œ(์—”๋””์–ธ)์— ๋”ฐ๋ผ UTF-16์˜ ์ข…๋ฅ˜๋„ ๋‹ฌ๋ผ์ง„๋‹ค. UTF-16์—์„œ ํ•œ๊ธ€์€ 2bytes๋ฅผ ์ฐจ์ง€ํ•œ๋‹ค.

๊ทธ๋ž˜ํ”ฝ

๋””์ง€ํ„ธ ์ด๋ฏธ์ง€๋Š” ์‚ฌ์ง„์ด๋‚˜ ๊ทธ๋ฆผ์„ ๋””์ง€ํ„ธ ํ˜•ํƒœ๋กœ ๋ณ€ํ™˜ํ•œ ๊ฒƒ์„ ์˜๋ฏธํ•œ๋‹ค. ๋””์ง€ํ„ธ ์ด๋ฏธ์ง€๋Š” ๋น„ํŠธ๋งต(Bitmap)๊ณผ ๋ฒกํ„ฐ(Vector) ๋‘ ์ข…๋ฅ˜๋กœ ๋‚˜๋‰˜๋Š”๋ฐ, ์„œ๋กœ ์ƒ๋ฐ˜๋œ ๋ฐฉ์‹์œผ๋กœ ์ด๋ฏธ์ง€๋ฅผ ํ‘œํ˜„ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋น„ํŠธ๋งต๊ณผ ๋ฒกํ„ฐ๋Š” ํฐ ์ฐจ์ด์ ์ด ์žˆ๋‹ค.

๋น„ํŠธ๋งต(Bitmap)

์›น ์ƒ์—์„œ ๊ฐ€์žฅ ๋งŽ์ด ์“ฐ์ด๋Š” ์ด๋ฏธ์ง€ ํŒŒ์ผ ํฌ๋งท ํ˜•์‹์ด๋ฉฐ, ์ผ๋ฐ˜์ ์œผ๋กœ๋Š” ๋ž˜์Šคํ„ฐ ๊ทธ๋ž˜ํ”ฝ(์  ๋ฐฉ์‹)์ด๋ผ๊ณ  ๋ถ€๋ฅด๊ธฐ๋„ ํ•œ๋‹ค. ์ด๋ฏธ์ง€์˜ ๊ฐ ์ ๋“ค์„ ๊ฒฉ์žํ˜•์˜ ํ”ฝ์…€ ๋‹จ์œ„๋กœ ๊ตฌ์„ฑ๋˜๋ฉฐ, ํ•œ ์ง€์—ญ์„ ์ฐจ์ง€ํ•˜๋Š” ์…€์€ ์œ„์น˜์— ๋”ฐ๋ผ ๋‹ค๋ฅธ ๊ฐ’์„ ๊ฐ–๋Š”๋‹ค.

  • ํ™•๋Œ€๋ฅผ ํ•˜๋ฉด ๊ณ„๋‹จํ˜„์ƒ ๋˜๋Š” ๊นจ์ง ํ˜„์ƒ์ด ๋ฐœ์ƒํ•˜๋ฉฐ ๊ฒฝ๊ณ„๊ฐ€ ๋šœ๋ ทํ•˜์ง€ ์•Š๋‹ค.
  • ํ”ฝ์…€ ๋‹จ์œ„๋กœ ์ด๋ฏธ์ง€๋ฅผ ํ‘œํ˜„ํ•˜๋Š” ๋ฐฉ์‹์ด๋ผ ์ปดํ“จํ„ฐ์—๊ฒŒ ๋ถ€๋‹ด์„ ๋œ ์ฃผ๋Š” ๊ตฌ์กฐ์ด๋‹ค.
  • ํ”ฝ์…€ ํ•˜๋‚˜ ๋‹น ๋ชจ๋‘ ์ƒ‰์ƒ๊ฐ’์„ ๊ฐ€์ง€๊ณ  ์žˆ์–ด ์ด๋ฏธ์ง€์˜ ์‚ฌ์ด์ฆˆ๊ฐ€ ์ปค์งˆ์ˆ˜๋ก ์šฉ๋Ÿ‰ ๋˜ํ•œ ๋ฌด๊ฑฐ์›Œ์ง„๋‹ค.

๋ฒกํ„ฐ(Vector)

๊ฒฉ์ž ๋ฐฉ์‹์˜ ๋น„ํŠธ๋งต๊ณผ ๋‹ฌ๋ฆฌ ์ ๊ณผ ์ ์„ ์—ฐ๊ฒฐํ•ด ์„ ์„ ํ‘œํ˜„ํ•˜๊ณ  ์„ ๊ณผ ์„ ์„ ์—ฐ๊ฒฐํ•ด ๋ฉด์„ ํ‘œํ˜„ํ•˜๋Š” ์‹์˜ ์ˆ˜ํ•™์  ์›๋ฆฌ๋กœ ์ด๋ฏธ์ง€๋ฅผ ํ‘œํ˜„ํ•œ๋‹ค.

  • ์ˆ˜ํ•™์  ์—ฐ์‚ฐ์ด ํ•„์š”ํ•ด ์ปดํ“จํ„ฐ์—๊ฒŒ ๋ถ€๋‹ด์„ ์ฃผ๋Š” ๊ตฌ์กฐ์ด๋‹ค.
  • ์ผ๋ฐ˜์ ์œผ๋กœ ์‚ฌ์ง„๋ณด๋‹ค๋Š” ๋„ํ˜•, ๊ธ€์ž ๋“ฑ์„ ๊ทธ๋ฆฌ๋Š” ์ž‘์—…์— ์‚ฌ์šฉ๋œ๋‹ค.
  • ์‚ฌ์ด์ฆˆ๋ฅผ ํ‚ค์›Œ๋„ ์šฉ๋Ÿ‰์—๋Š” ๋ณ€ํ™”๊ฐ€ ์—†๋‹ค.

๋น„ํŠธ๋งต(๋ž˜์Šคํ„ฐ) vs. ๋ฒกํ„ฐ

๋น„ํŠธ๋งต(๋ž˜์Šคํ„ฐ)๋ฒกํ„ฐ
๊ธฐ๋ฐ˜ ๊ธฐ์ˆ ํ”ฝ์…€ ๊ธฐ๋ฐ˜์ˆ˜ํ•™์ ์œผ๋กœ ๊ณ„์‚ฐ๋œ Shape ๊ธฐ๋ฐ˜
ํŠน์ง•์‚ฌ์ง„๊ณผ ๊ฐ™์ด ์ƒ‰์ƒ์˜ ์กฐํ•ฉ์ด ๋‹ค์–‘ํ•œ ์ด๋ฏธ์ง€์— ์ ํ•ฉ๋กœ๊ณ , ์ผ๋Ÿฌ์ŠคํŠธ์™€ ๊ฐ™์ด ์ œํ’ˆ์— ์ ์šฉ๋˜๋Š” ์ด๋ฏธ์ง€์— ์ ํ•ฉ
ํ™•๋Œ€ํ™•๋Œ€์— ์ ํ•ฉํ•˜์ง€ ์•Š์Œ, ๋ณด๋‹ค ํฐ ์‚ฌ์ด์ฆˆ์˜ ์ด๋ฏธ์ง€๊ฐ€ ํ•„์š”ํ•  ๋•Œ ์‚ฌ์šฉํ•˜๋ ค๋Š” ํฌ๊ธฐ ์ด์ƒ์œผ๋กœ ์ƒ์„ฑํ•˜๊ฑฐ๋‚˜ ์Šค์บ”ํ•ด์•ผ ํ•จํ’ˆ์งˆ ์ €ํ•˜ ์—†์ด ๋ชจ๋“  ํฌ๊ธฐ๋กœ ํ™•๋Œ€ ๊ฐ€๋Šฅํ•˜๋ฉฐ, ํ•ด์ƒ๋„์˜ ์˜ํ–ฅ์„ ๋ฐ›์ง€ ์•Š์Œ
ํฌ๊ธฐ์— ๋”ฐ๋ฅธ ํŒŒ์ผ ์šฉ๋Ÿ‰(file size)ํฐ ํฌ๊ธฐ์˜ ์ด๋ฏธ์ง€๋Š”, ํฐ ํŒŒ์ผ ์‚ฌ์ด์ฆˆ๋ฅผ ๊ฐ€์งํฐ ํฌ๊ธฐ์˜ ๋ฒกํ„ฐ ๊ทธ๋ž˜ํ”ฝ์€ ์ž‘์€ ํŒŒ์ผ ์‚ฌ์ด์ฆˆ๋ฅผ ์œ ์ง€ํ•  ์ˆ˜ ์žˆ์Œ
์ƒํ˜ธ ๋ณ€ํ™˜์ด๋ฏธ์ง€์˜ ๋ณต์žก๋„์— ๋”ฐ๋ผ ๋ฒกํ„ฐ๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ๊ฒƒ์— ์˜ค๋žœ ์‹œ๊ฐ„์ด ๊ฑธ๋ฆผ์‰ฝ๊ฒŒ ๋ž˜์Šคํ„ฐ ์ด๋ฏธ์ง€๋กœ ๋ณ€ํ™˜ ๊ฐ€๋Šฅ
๋Œ€ํ‘œ์ ์ธ ํŒŒ์ผ ํฌ๋งทjpg, gif, png, bmp, psdsvg, ai
์›น์—์„œ์˜ ์‚ฌ์šฉ์„ฑjpg, gif, png ๋“ฑ์ด ๋„๋ฆฌ ์“ฐ์ž„svg ํฌ๋งท์€ ํ˜„๋Œ€์˜ ๋ธŒ๋ผ์šฐ์ €์—์„œ ๋Œ€๋ถ€๋ถ„ ์ง€์›


Uploaded by N2T