๋ฌธ์์ด
๋ฌธ์์ด์ 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, psd | svg, ai |
์น์์์ ์ฌ์ฉ์ฑ | jpg, gif, png ๋ฑ์ด ๋๋ฆฌ ์ฐ์ | svg ํฌ๋งท์ ํ๋์ ๋ธ๋ผ์ฐ์ ์์ ๋๋ถ๋ถ ์ง์ |
Uploaded by N2T