1๏ธโƒฃ RDS (Relational Database Service)๋ž€?

RDS๋Š” Amazon Web Services(AWS)์—์„œ ์ œ๊ณตํ•˜๋Š” ๊ด€๋ฆฌํ˜• ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์„œ๋น„์Šค์ž…๋‹ˆ๋‹ค. ์‚ฌ์šฉ์ž๊ฐ€ ์ง์ ‘ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ๊ด€๋ฆฌํ•˜์ง€ ์•Š์•„๋„ AWS๊ฐ€ ์ž๋™์œผ๋กœ ๋ฐฑ์—…, ๋ณต๊ตฌ, ์„ฑ๋Šฅ ์กฐ์ • ๋ฐ ์œ ์ง€ ๊ด€๋ฆฌ๋ฅผ ์ฒ˜๋ฆฌํ•ด์ค๋‹ˆ๋‹ค. ๋‹ค์–‘ํ•œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์—”์ง„์„ ์ง€์›ํ•˜๋ฉฐ, ๋Œ€ํ‘œ์ ์ธ ์—”์ง„์œผ๋กœ๋Š” ๋‹ค์Œ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

  • MySQL
  • PostgreSQL
  • MariaDB
  • Oracle
  • Microsoft SQL Server
  • Amazon Aurora

RDS๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ๋ฏธ๊ตญ ์˜์–ด(US)๋ฅผ ๊ธฐ์ค€์œผ๋กœ ์„ค์ •๋˜๋ฉฐ, ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ƒ์„ฑ ์‹œ ๊ธฐ๋ณธ Collation์€ en_US.UTF-8๋กœ ์„ค์ •๋ฉ๋‹ˆ๋‹ค.

 

2๏ธโƒฃ Character Set๊ณผ Collation์˜ ๋น„๊ต

Character Set๊ณผ Collation์€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ ๋ฌธ์ž๋ฅผ ์ €์žฅํ•˜๊ณ  ์ฒ˜๋ฆฌํ•˜๋Š” ๋ฐฉ์‹๊ณผ ๊ด€๋ จ๋ฉ๋‹ˆ๋‹ค. ๊ฐ ๊ฐœ๋…์˜ ์ฐจ์ด์ ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

 

๐Ÿ’กCharacter Set (๋ฌธ์ž ์ง‘ํ•ฉ)

Character Set์€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ ์ €์žฅํ•  ์ˆ˜ ์žˆ๋Š” ๋ฌธ์ž๋“ค์˜ ์ง‘ํ•ฉ์„ ์ •์˜ํ•˜๋ฉฐ, ๊ฐ ๋ฌธ์ž๋Š” ํŠน์ • ์ฝ”๋“œ ํฌ์ธํŠธ๋กœ ํ‘œํ˜„๋ฉ๋‹ˆ๋‹ค.  

Character Set ์„ค๋ช… ์‚ฌ์šฉ ์˜ˆ์‹œ
UTF-8 ์ „ ์„ธ๊ณ„ ๋Œ€๋ถ€๋ถ„์˜ ์–ธ์–ด๋ฅผ ์ง€์›ํ•˜๋Š” ์œ ๋‹ˆ์ฝ”๋“œ ๋ฌธ์ž ์ง‘ํ•ฉ ๋‹ค๊ตญ์–ด ์›น์‚ฌ์ดํŠธ, ๊ธ€๋กœ๋ฒŒ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜, ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์‹œ์Šคํ…œ์—์„œ ์‚ฌ์šฉ
Latin1 ์„œ์œ ๋Ÿฝ ์–ธ์–ด(์˜์–ด, ๋…์ผ์–ด, ํ”„๋ž‘์Šค์–ด ๋“ฑ)๋ฅผ ์œ„ํ•œ ๋ฌธ์ž ์ง‘ํ•ฉ ์ฃผ๋กœ ์„œ์œ ๋Ÿฝ ๊ตญ๊ฐ€๋“ค์˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์‹œ์Šคํ…œ์—์„œ ์‚ฌ์šฉ
EUC-KR ํ•œ๊ตญ์–ด ์ „์šฉ ๋ฌธ์ž ์ง‘ํ•ฉ ํ•œ๊ตญ์–ด ๋ฐ์ดํ„ฐ๋งŒ ์ฒ˜๋ฆฌํ•˜๋Š” ์‹œ์Šคํ…œ์— ์ฃผ๋กœ ์‚ฌ์šฉ

 

๐Ÿ’กCollation (์ •๋ ฌ ์ˆœ์„œ์™€ ๋น„๊ต ๊ทœ์น™)

Collation์€ Character Set์— ๊ธฐ๋ฐ˜ํ•œ ๋ฌธ์ž ์ •๋ ฌ ๋ฐ ๋น„๊ต ๊ทœ์น™์„ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค. ๊ฐ™์€ Character Set์„ ์‚ฌ์šฉํ•˜๋”๋ผ๋„ Collation์— ๋”ฐ๋ผ ๋ฐ์ดํ„ฐ์˜ ์ •๋ ฌ ์ˆœ์„œ์™€ ๋น„๊ต ๋ฐฉ์‹์ด ๋‹ฌ๋ผ์งˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • en_US.UTF-8 : ๋ฏธ๊ตญ ์˜์–ด ํ™˜๊ฒฝ์—์„œ UTF-8 ๋ฌธ์ž ์ง‘ํ•ฉ์„ ์‚ฌ์šฉํ•˜๋ฉฐ, ASCII ์ฝ”๋“œ ์ˆœ์„œ์— ๋”ฐ๋ผ ๋ฌธ์ž๋ฅผ ์ •๋ ฌํ•ฉ๋‹ˆ๋‹ค.
  • ko_KR.UTF-8 : ํ•œ๊ตญ์–ด ํ™˜๊ฒฝ์—์„œ๋Š” ํ•œ๊ธ€์„ ์ดˆ์„ฑ, ์ค‘์„ฑ, ์ข…์„ฑ ์ˆœ์œผ๋กœ ์ •๋ ฌํ•ฉ๋‹ˆ๋‹ค.

 

๐Ÿ’กCharacter Set๊ณผ Collation์˜ ์ฐจ์ด์ 

ํ•ญ๋ชฉ Character Set Collation
์ •์˜ ๋ฌธ์ž๋ฅผ ์ €์žฅํ•  ๋•Œ ์‚ฌ์šฉํ•˜๋Š” ๋ฌธ์ž๋“ค์˜ ์ง‘ํ•ฉ ๋ฌธ์ž๋ฅผ ์ •๋ ฌํ•˜๊ณ  ๋น„๊ตํ•˜๋Š” ๊ทœ์น™
์—ญํ•  ์–ด๋–ค ๋ฌธ์ž๊ฐ€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์ €์žฅ๋  ์ˆ˜ ์žˆ๋Š”์ง€ ์ •์˜ ๋ฌธ์ž๋ฅผ ์–ด๋–ป๊ฒŒ ์ •๋ ฌํ•˜๊ณ  ๋น„๊ตํ• ์ง€ ์ •์˜
์˜ˆ์‹œ UTF-8, Latin1, EUC-KR en_US.UTF-8, ko_KR.UTF-8
์–ธ์–ด ์ง€์› ๋‹ค๊ตญ์–ด(UTF-8), ์„œ์œ ๋Ÿฝ ์–ธ์–ด(Latin1), ํ•œ๊ตญ์–ด(EUC-KR) ์–ธ์–ด๋ณ„๋กœ ๋ฌธ์ž ์ •๋ ฌ ๋ฐ ๋Œ€์†Œ๋ฌธ์ž ๊ตฌ๋ถ„ ์—ฌ๋ถ€ ์„ค์ •

 

3๏ธโƒฃ RDS์—์„œ Collation๊ณผ Character Set ๋ณ€๊ฒฝํ•˜๊ธฐ

0

PostgreSQL์˜ Collation๊ณผ Character Set์€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ƒ์„ฑ ์‹œ์—๋งŒ ์„ค์ •ํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ์ด๋ฏธ ์ƒ์„ฑ๋œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ๋Š” ์ง์ ‘์ ์œผ๋กœ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ๊ธฐ๋ณธ ์„ค์ •์„ ๋ณ€๊ฒฝํ•˜๋ ค๋ฉด ๋‹ค์Œ ์ ˆ์ฐจ๋ฅผ ๋”ฐ๋ฆ…๋‹ˆ๋‹ค.

1. ์ƒˆ๋กœ์šด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ƒ์„ฑ

CREATE DATABASE new_database_name
WITH OWNER = your_owner_name
ENCODING = 'UTF8' -- Character Set ์„ค์ •
LC_COLLATE = 'ko_KR.utf8' -- Collation ์„ค์ • (ํ•œ๊ตญ์–ด ๊ธฐ์ค€)
LC_CTYPE = 'ko_KR.utf8'; -- Character Type ์„ค์ •

2. ๊ธฐ์กด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋คํ”„(๋ฐฑ์—…)

pg_dump -h your-rds-endpoint -U your-username -d your_database_name > backup.sql

3. ๋ฐฑ์—… ๋ฐ์ดํ„ฐ ๋ณต์›

psql -h your-rds-endpoint -U your-username -d new_database_name < backup.sql

4. ๊ธฐ์กด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์‚ญ์ œ

DROP DATABASE your_database_name;

4-2. ์—ฐ๊ฒฐ๋œ ์„ธ์…˜ ์ข…๋ฃŒ

SELECT pg_terminate_backend(pg_stat_activity.pid)
FROM pg_stat_activity
WHERE datname = 'your_database_name'
AND pid <> pg_backend_pid();

DROP DATABASE ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•  ๋•Œ, ํ•ด๋‹น ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์—ฐ๊ฒฐ๋œ ์„ธ์…˜์ด ์žˆ์œผ๋ฉด ์‚ญ์ œ๊ฐ€ ๋ถˆ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. ๊ธฐ์กด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์—ฐ๊ฒฐ๋œ ๋ชจ๋“  ์„ธ์…˜์„ ์ข…๋ฃŒํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

5. ์ƒˆ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ด๋ฆ„ ๋ณ€๊ฒฝ

ALTER DATABASE new_database_name RENAME TO your_database_name;
 
yewon31