์ปดํจํฐ๋ 0๊ณผ 1๋ก ์๋ฅผ ๋ํ๋ด๋ ์ด์ง๋ฒ์ผ๋ก ์๋ํฉ๋๋ค. ๊ทธ ๊ฒฐ๊ณผ ์ฌ์ฉ์๊ฐ ์ ๋ ฅํ ๋ฌธ์, ์ซ์, ๊ณต๋ฐฑ๊ณผ ๊ฐ์ ๋ชจ๋ ๋ฌธ์๋ ์ด์ง์๋ก ์ ์ฅ์ด ๋ฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ปดํจํฐ ๋ด์์ ์ฌ์ฉํ ์ ์๋ ๋ชจ๋ ๋ฌธ์๋ฅผ ๋ฌธ์ ์งํฉ(Character Set)์ด๋ผ๊ณ ํฉ๋๋ค.
์ด๋ฌํ ๋ฌธ์๋ฅผ ์ปดํจํฐ๊ฐ ์ฝ์ ์ ์๊ฒ ์ฝ๋ํํ๋ ๊ณผ์ ์ ๋ฌธ์ ์ธ์ฝ๋ฉ(Character Encoding)์ด๋ผ๊ณ ๋ถ๋ฆ ๋๋ค. ๋ํ์ ์ผ๋ก ASCII, UNICODE๊ฐ ์์ต๋๋ค.
์ฐ๋ฆฌ๋๋ผ์์ ์ผ๋ฐ์ ์ผ๋ก ์ฌ์ฉ๋๋ ๋ํ์ ์ธ ๋ฌธ์ ์ธ์ฝ๋ฉ ๋ฐฉ์์ผ๋ก UTF-8๊ณผ EUC-KR์ด ์์ต๋๋ค. ๊ทธ๋์ ์ด ๋ ์ค ์ฐจ์ด์ ์ด ๋ฌด์์ธ์ง ๊ทธ๋ฆฌ๊ณ ์ด๋ค ๋ฐฉ์์ ์ฌ์ฉํ ์ง ๊ณ ๋ฏผํ๊ฒ ๋ ๊ฒ ์ ๋๋ค.
MySQL์์ Character Set์ ์กฐํํด๋ณด๋ฉด utf8๊ณผ utf8mb4๋ฅผ ๋ฐ๊ฒฌํ๊ฒ ๋ ๊ฒ์ ๋๋ค. ๋ ๋ค ๋๊ฐ์ UTF-8 UNICODE์ธ๋ฐ๋ค๊ฐ ๊ทธ๋ฅ utf8๋ก ์ฌ์ฉํด๋ ์๊ด์ ์์ง๋ง ๋ชจ๋ฐ์ผ ์ฌ์ฉ์ผ๋ก ์ด๋ชจ์ง ์ฌ์ฉ๋๋ ๋ง์ด ๋๋ฉด์ utf8mb4๋ก ๋ง์ด ๊ถ์ฅํ๋ค๊ณ ํฉ๋๋ค.
ํ์ง๋ง ์ฐ๋ฆฌ๊ฐ ์๊ณ ์๋ UTF-8์ 4byte๊น์ง ์ฌ์ฉ์ด ๊ฐ๋ฅํ๊ณ ์ด๋ชจ์ง๋ ์ฌ์ฉ ๊ฐ๋ฅํ๋ฐ ์ MySQL์์๋ utf8mb4๋ก ์ฌ์ฉํด์ผํ๋์ง ๊ทธ ์ด์ ๋ ์๋์ ๊ฐ์ต๋๋ค.
๐คท Collation
์ค์ ๋ Charset์ผ๋ก ์ ์ฅ๋ ๋ฐ์ดํฐ ๋ฌธ์์ด์
๋น๊ตํ๊ณ ์ ๋ ฌ ๋ฐฉ๋ฒ์ ์ ์ํ๋ ๊ท์น ์งํฉ
MySQL 8.0์์๋ ๊ธฐ๋ณธ์ ์ผ๋ก utf8mb4๋ก ์ค์ ์ด ๋์ด์์ต๋๋ค.
SHOW VARIABLES LIKE 'character_set%';
ํ์ง๋ง ์์ ๊ฐ์ ๋ช
๋ น์ด๋ฅผ ์คํํด๋ณด๋ฉด Client์ Connection์ euckr๋ก ์ค์ ์ด ๋์ด์์ผ๋ ์ด ๋๊ฐ๋ฅผ utf8mb4๋ก ๋ฐ๊ฟ๋ณด๋๋ก ํ๊ฒ ์ต๋๋ค.
my.ini ํ์ผ์ด ์กด์ฌํ๋ ๊ฒฝ๋ก๋ฅผ ๋ณต์ฌํด์ค ํ ํด๋น ๊ฒฝ๋ก๋ก ๋ค์ด๊ฐ์ค๋๋ค.
์๋์ฐ ๊ฒ์ ์์ [์๋น์ค] โ MYSQL80 [์ฐํด๋ฆญ] โ [์์ฑ]
my.ini ํ์ผ ์ ์ฅ์ ์ํด ๋ค์๊ณผ ๊ฐ์ด ์ค์ ์ ํด์ค๋๋ค.
my.ini [์ฐํด๋ฆญ] โ ์์ฑ โ [๋ณด์] โ [ํธ์ง] โ Users [์ ํ] โ ์ฌ์ฉ ๊ถํ ํ์ฉ
my.ini ํ์ผ์ ์ด์ด์ค ํ, ๋งจ ์๋์ ๋ค์๊ณผ ๊ฐ์ด ์ถ๊ฐ๋ฅผ ํด์ค๋๋ค.
[client]
default-character-set = utf8mb4
[mysql]
default-character-set = utf8mb4
[mysqld]
character-set-client-handshake = FALSE
character-set-server = utf8mb4
collation-server = utf8mb4_0900_ai_ci
ํธ์ง ํ, [์๋น์ค]์์ MySQL ์๋ฒ๋ฅผ ๋ค์ ์์ํด์ค ํ
MySQL์์ Charset์ด utf8mb4๋ก ๋ณ๊ฒฝ๋ ๊ฑธ ํ์ธํ ์ ์์ต๋๋ค.
[์๋น์ค] โ MYSQL80 [๋ค์ ์์]
Fundamentals of data representation
Beginners Guide to Data and Character Encoding
What is the difference between EUC and UTF (especially EUC-KR and UTF-8)?
What is UTF-8 Encoding? A Guide for Non-Programmers
EUC-KR vs UTF-8 ๋ฌธ์์
์ ํ ๊ฐ์ด๋
MySQL utf8 vs utf8mb4 โ Whatโs the difference between utf8 and utf8mb4?
10.14 Adding a Collation to a Character Set
10.3.2 Server Character Set and Collation