[AWS RDS] ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ตฌ์ถํ๊ณ ํ์์กด/์ธ์ฝ๋ฉ ์ค์ ํ๊ธฐ
๋ฐฑ์๋ ํ๋ก์ ํธ๋ฅผ ์งํํ๋ค ๋ณด๋ฉด ์ผ๋ฐ์ ์ผ๋ก ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์๋ฒ์ ์ฌ๋ฆฌ๊ณ ์์ ์ ํ๊ฒ ๋๋ค. ํผ์ ์์ ํ ๋๋ ๋ก์ปฌ์์ ํ ์คํธํด๋ ๋์ง๋ง ํ์ ์ ํ ๋์๋ ๊ฐ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ๊ณต์ ํ๊ธฐ ์ํด ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์๋ฒ์ ์ฌ๋ ค์ผ ํ๋ค.
1. AWS์ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ตฌ์ถํ๊ธฐ
์ฐ์ AWS RDS๋ฅผ ์ด์ฉํด ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์๋ฒ์ ์ฌ๋ ค๋ณด๋๋ก ํ์. ์ ์ผ ๋จผ์ ์๋ aws์ฌ์ดํธ์ ๋ก๊ทธ์ธ์ ํด์ผํ๋ค.
๊ทธ๋ฆฌ๊ณ ์ผ์ชฝ ์์์ ์๋น์ค ๋ฒํผ์ ๋๋ฅด๊ณ ๋ฐ์ดํฐ๋ฒ ์ด์ค RDS๋ฅผ ์ ํํ๋ค.
๊ทธ๋ฆฌ๊ณ ๋ค์ด๊ฐ ํ์ด์ง์์ ์๋์ ๊ฐ์ด ๋ฐ์ดํฐ๋ฒ ์ด์ค ์์ฑ ๋ฒํผ์ ๋๋ฌ์ค๋ค. ์๋ db์ธ์คํด์ค๊ฐ ์ด๋์ ์์๋๋์ง๋ ์๋ ค์ฃผ๋๋ฐ ๊ฑฐ์ฃผ ์ง์ญ์ด ๋ค๋ฅด๊ฒ ๋์ด์์ผ๋ฉด ์๋ต์ด ์ค๋๊ฑธ๋ฆด ์ ์๋ค. ์๋ชป๋์ด์๋ค๋ฉด ์ค๋ฅธ์ชฝ ์๋จ ์ง์ญ์ ๊ฑฐ์ฃผ ์ง์ญ๊ณผ ๊ฐ์ฅ ๊ฐ๊น์ด ๊ณณ์ผ๋ก ๋ฐ๊ฟ์ฃผ๋๋ก ํ์.
๋๋ MySQL์ ์ฌ์ฉํ ๊ฒ์ด๊ธฐ ๋๋ฌธ์ ์์ง ์ต์ ์ MySQL, ์๋์ ์ MySQL Community๋ก ์ค์ ์ ํด ์ฃผ์๋ค. ๊ทธ๋ฆฌ๊ณ ํ ํ๋ฆฟ์ ํ๋ฆฌํฐ์ด๋ก ์ค์ ํ์๋ค.
๊ทธ๋ฆฌ๊ณ ๋ฐ๋ก ์๋ ์ค์ ์์ ๋ง์คํฐ ์ฌ์ฉ์ ์ด๋ฆ๊ณผ ๋ง์คํฐ ์ํธ๋ฅผ ์ง์ ํด์ฃผ์ด์ผ ํ๋ค. ์ด ์ ๋ณด๋ ์ดํ DataGrip์ผ๋ก MySQL์ ์ ์ํ ๋ ๊ผญ ํ์ํ๋ ์ ๋ฉ๋ชจํด๋์ด์ผ ํ๋ค.
๋ค๋ฅธ ์ค์ ์ ๋ฑํ ๊ฑด๋๋ฆฌ์ง ์์๋ ๋๋ค. ์ญ ๋ด๋ ค์ ์๋ฃํ๋ฉด ๋ฐ์ดํฐ๋ฒ ์ด์ค๊ฐ ์๋ฒ์ ์ฌ๋ผ๊ฐ๊ฒ ๋๋ค.
2. ํ๋ผ๋ฏธํฐ ๊ทธ๋ฃน ์์ฑ ๋ฐ ์ค์
์ด๋ ๊ฒ ์๋ฃํด๋ ๋์ง๋ง ์ดํ DB์์ TIMESTAMPํ์ ์ ์ฌ์ฉํ๊ฑฐ๋ ์๊ฐ ๊ด๋ จ ๋ฉ์๋๋ฅผ ์ฌ์ฉํ ๋ ์๊ฐ๋๋ฅผ ์์ ์ ์ฌ๋ ๊ณณ์ ํ์์ผ๋ก ๋ง์ถฐ์ฃผ๊ธฐ ์ํด Timezone์ ์ค์ ํด์ฃผ์ด์ผ ํ๋ค. ๋ ํ๊ธ์ ์ฌ์ฉํ๊ธฐ ์ํด์๋ ์ธ์ฝ๋ฉ ํ์ ์ค์ ๋ ํด์ค์ผ ํ๋ค. ํ๋ผ๋ฏธํฐ ๊ทธ๋ฃน์ ๋ง๋ค์ด ์ค์ ๋ค์ ์ง์ ํ ๋ค ํด๋น ํ๋ผ๋ฏธํฐ ๊ทธ๋ฃน์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ง์ ํ ๊ฒ์ด๋ค. ์ฐ์ ์ ๋จ๊ณ๊น์ง ์ ๋ฐ๋ผ์๋ค๋ฉด ์๋์ ๊ฐ์ ํ๋ฉด์ด ๋ณด์ผ ๊ฒ์ด๋ค. ์ผ์ชฝ์ ํ๋ผ๋ฏธํฐ ๊ทธ๋ฃน์ ํด๋ฆญํ๋๋ก ํ์.
๊ทธ๋ฆฌ๊ณ ์ฐ์ธก ์๋จ ํ๋ผ๋ฏธํฐ ๊ทธ๋ฃน ์์ฑ ๋ฒํผ์ ๋๋ฌ์ฃผ์.
์ด๋ฆ๊ณผ ์ค๋ช ์ ์ ๋นํ ์ ํด์ ์ ๋ ฅํด์ฃผ๋ฉด ๋๋ค. ๋จ ํ๋ผ๋ฏธํฐ ๊ทธ๋ฃน ํจ๋ฐ๋ฆฌ๋ mysql8.0์ผ๋ก ์ง์ ํด์ฃผ์ด์ผ ํ๋ค. ๋ค๋ฅธ๊ฑธ๋ก ์ง์ ํ๋ฉด ์ดํ ์ค์ ํ๊ณ ์ ํ๋ ํ๋ผ๋ฏธํฐ๊ฐ ์์ ์ ์๋ค.
๊ทธ๋ฆฌ๊ณ ํ๋ผ๋ฏธํฐ ๋ชฉ๋ก์์ ๋ฐฉ๊ธ ์์ฑํ param ํ๋ผ๋ฏธํฐ ๊ทธ๋ฃน์ผ๋ก ๋ค์ด๊ฐ๋๋ก ํ์.
์ฐ๋ฆฌ๋ ์ด ํ๋ผ๋ฏธํฐ ๊ทธ๋ฃน์ ํ์์กด ์ค์ ๊ณผ ์ธ์ฝ๋ฉ ์ค์ ์ ํด ์ฃผ์ด์ผ ํ๋ค. ๋จผ์ ํ์์กด ์ค์ ๋ถํฐ ํด์ฃผ๋๋ก ํ์. ์ ๊ฒ์์ฐฝ์ zone์ด๋ผ๊ณ ์ ๋ ฅํ๊ณ ํ๋ผ๋ฏธํฐ ํธ์ง์ ํด๋ฆญํด์ค๋ค.
ํ๋ผ๋ฏธํฐ ํธ์ง์ ๋๋ฅด๋ฉด time_zone ๊ฐ์ Asia/Seoul๋ก ์ง์ ํ ์ ์๋ค. ์ง์ ํ ๋ค ์ฐ์ธก ์๋จ ๋ณ๊ฒฝ์ฌํญ ์ ์ฅ ๋ฒํผ์ ๋๋ฌ์ฃผ์.
์ด์ ์ธ์ฝ๋ฉ ์ค์ ์ ํด์ค ๊ฒ์ด๋ค. ์๊น์ ๊ฐ์ด ๊ฒ์์ฐฝ์ char์ด๋ผ๊ณ ์ ๋ ฅํ๋ฉด ๋ง์ ๋ชฉ๋ก์ด ๋จ๋๋ฐ ๋ฐ๊ฟ ์ ์๋ ๊ฒ๋ค์ ๋ชจ๋ UTF-8๋ก ๋ณ๊ฒฝํด์ฃผ๋ฉด ๋๋ค.
3. ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ํ๋ผ๋ฏธํฐ ๊ทธ๋ฃน ์ ์ฉ
์ด์ ๋ง์ง๋ง์ผ๋ก ์ฌํ๊น์ง ์ค์ ํ ํ๋ผ๋ฏธํฐ ๊ทธ๋ฃน์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ ์ฉ๋ง ํ๋ฉด ๋์ด๋ค. ๋ค์ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ก ๋์์ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์ ํํ๊ณ ์ฐ์ธก ์๋จ ์์ ๋ฒํผ์ ๋๋ฌ์ฃผ์.
์ญ ๋ด๋ฆฌ๋ฉด ์ถ๊ฐ๊ตฌ์ฑ ๋ถ๋ถ์ DBํ๋ผ๋ฏธํฐ ๊ทธ๋ฃน์ ์ง์ ํ๋ ๊ณณ์ด ์๋ค. ์๊น ๋ง๋ param ํ๋ผ๋ฏธํฐ ๊ทธ๋ฃน์ผ๋ก ๋ฐ๊ฟ์ฃผ์.
๊ทธ๋ฆฌ๊ณ ๋งจ ์๋ ๊ณ์ ๋ฒํผ์ ๋๋ฅด๋ฉด ์์ ๋ ๋ถ๋ถ์ ์์ฝํด์ ๋ณด์ฌ์ค๋ค. param ์ผ๋ก ๋ฐ๋๊ฒ์ ํ์ธํ๊ณ DB ์ธ์คํด์ค ์์ ๋ฒํผ์ ๋๋ฌ์ ์์ ์ ์๋ฃํ์. ๊ทธ๋ฆฌ๊ณ ๋๋ ์์ ์ฌํญ์ด ์ฆ์ ์ ์ฉ ๋๋๋ก ์ค์ ์ ๋ฐ๊ฟ์ ์ ์ฉํ๋ค.
์ด์ ๋ฐ๊พผ ์ค์ ์ ์ ์ฉํ๊ธฐ ์ํด ์๋ฒ๋ฅผ ์ฌ๋ถํ ํด์ฃผ๋ฉด ๋๋ค.
์ฌ๊ธฐ๊น์ง ํ๋ค๋ฉด RDS๊ตฌ์ถ ๋ฐ ํ์์กด/์ธ์ฝ๋ฉ ์ค์ ์ด ์๋ฃ๋ ๊ฒ์ด๋ค.