๐ฌ ์์ ์นด์นด์ค๋ฑ ํฌ๋ MySQL์ด๋ผ๋ ์คํ์์ค DB๋ฅผ ์ํ์ ์ฃผ์ ์์คํ ์ ์ ์ฉํด์ IT์ ๊ณ์์ ํ์ ๊ฐ ๋ ๋ฐ ์๋ค. ๋๋ถ๋ถ์ ์์ค์ํ์ ‘์ค๋ผํด DB’๋ผ๋ ์ ํ์ ์ด์ฉํด์ ๋ฐ์ดํฐ, ์ฆ ๊ณ ๊ฐ์ ๋์ ๊ด๋ฆฌํ๋๋ฐ ์ด๋ ์์ ์ฑ๊ณผ ์ฑ๋ฅ ๋ฉด์์ ์ด๋ฏธ ๊ฒ์ฆ๋ ์ ํ์ด๊ธฐ ๋๋ฌธ์ด๋ค. ๊ทธ๋ฌ๋ ํ ๊ฐ์ง ๋จ์ ์ ๋ง์ ๋์ด ํ์ํ๋ค๋ ๊ฒ์ด๋ค.
๋น์ธ๊ธด ํ์ง๋ง ์์ ์ฑ์ ์ํด ์์ค์ํ๋ค์ด ์ค๋ผํด DB๋ฅผ ์ฌ์ฉํ๋ ๊ฒ๊ณผ ๋ฌ๋ฆฌ ์นด์นด์ค๋ฑ ํฌ๋ ์คํ์์ค์ธ MySQL ์ค์ฌ์ผ๋ก ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์ค๊ณํ๋ค. ๊ฐ์ฅ ํฐ ์ด์ ๋ ๋น์ฉ์ ๊ฐ์ผ ๊ฒ์ด์ง๋ง, ๊ณ ๊ฐ์ ์ค๋ผํด DB์ ๋ค์ด๊ฐ๋ ๋น์ฉ์ ์ ๊ฐํ๋ฉด ๊ณ ๊ฐ์๊ฒ ๋ ๋ง์ ์ด์ต์ ์ ๊ณตํ๊ฑฐ๋ ๋ค๋ฅธ ํ์ ์ ํฌ์ํ ์๋ ์๋ค. ๊ทธ๋ ๋ค๋ฉด ์นด์นด์ค๋ฑ ํฌ๋ ์ด๋ป๊ฒ MySQL์ ํตํด ๊ณ ๊ฐ ๋ฐ์ดํฐ๋ฅผ ์งํฌ ์ ์๋ ๊ฒ์ผ๊น?
๐๊ธ์ต ๋ฐ์ดํฐ ๋ถ์ฐ ์ฒ๋ฆฌ
์ผ๋ฐ์ ์ผ๋ก ์ํ์ ์ค์ ๋ฐ์ดํฐ๋ฅผ ์์งํด ์๋ก์ด ์๋น์ค, ๊ฐ์ธํ๋ ์ฝํ ์ธ ๋ฅผ ๊ธฐํํ๊ณ ์ฌ๋ฌ ๋ฐ์ดํฐ๋ฅผ ๋ฐํ์ผ๋ก ๊ณ ๊ฐ ๋ง์ถคํ ์๋น์ค๋ฅผ ์ถ์ํ๋๋ฐ, ์ด๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค๊ฐ ์ด๋ฅผ ๋ฐ์ณ์ค์ผ ํ๋ค. ๊ทธ๋ฌ๋ ์ค์ ์ง์ค์ ์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ์ฒ๋ฆฌํ๋ ์ธํ๋ผ๋ ์ํ์ด ํด ์๋ฐ์ ์์ด ๋ฐ์ดํฐ ๋ถ์ฐ ์ฒ๋ฆฌ๊ฐ ํ์ํ ๊ฒ์ด๋ค. ์ด์ ๋ ๊ฐ์ง ๋ฐฉ๋ฒ์ด ์๋ค.
โ ์ฟผ๋ฆฌ๋ก ์กฐํํด์ ๊ทธ ์กฐํ ๊ฒฐ๊ณผ๋ฅผ ์ฃผ๊ธฐ์ ์ผ๋ก ํผ๊ฐ๋ SQL ๋ฐ์ดํฐ ๋ฐฉ์
โก CDC(์ฒด์ธ์ง ๋ฐ์ดํฐ ์บก์ฒ)๋ก ๋ฐ์ดํฐ ๋ณ๊ฒฝ๋ถ๋ง ํผ๊ฐ๋ ๋ฐฉ์
๋ ๋ฐฉ์ ๋ชจ๋ ์ฅ๋จ์ ์ด ์กด์ฌํ๋ค. SQL๋ก ํผ๊ฐ ๊ฒฝ์ฐ ์ฟผ๋ฆฌ๋ก ์์ ๋กญ๊ฒ ์ ์ดํด์ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ๊ฐ ์ ์๊ธฐ์ ๊ตฌ์กฐ๊ฐ ๊ฐ๊ฒฐํด์ง๊ณ , ๊ฐ๋ฐ ๋ ๋ฒจ์์ ์ฝ๊ฒ ์ ๊ทผํ ์ ์๋ค. ๋จ, ์ง์ฐ๋ ์ปค๋ฐ์ ๋ฐ๋ผ ๋๋ฝ๋ ๋ฐ์ดํฐ๊ฐ ๋ฐ์ํ ์ ์๋ค. ์ ๋ขฐ๋ฅผ ๋ฐํ์ผ๋ก ํ๋ ๊ธ์ต ์๋น์ค์ ๋์ ํ๊ธฐ์ ๋จ์ ์ด ํฌ๋ค.
CDC๋ก ๋ณ๊ฒฝ๋ถ๋ง ํผ๊ฐ๋ ๋ฐฉ์์ ์๋์ ์ผ๋ก ๋ถํ๊ฐ ์ ๊ณ , ๋๋ฝ ์์ด ์ค์๊ฐ ์ ์ก์ด ๋ณด์ฅ๋๋ค. ๊ทธ๋ฌ๋ ๋จ์ํ CDC๋ง์ผ๋ก๋ ์ํ๋ ํํ๋ก ๋ค์ํ ๋ฐ์ดํฐ๋ฅผ ๊ฐ๊ณตํ ์ ์๋ค๋ ํ๊ณ๊ฐ ์กด์ฌํ๋ค. ์ด์ฒ๋ผ ๋ ๊ฐ์ง ๋ฐฉ์ ๋ชจ๋ ํ๊ณ๊ฐ ๋ถ๋ช ํ๊ธฐ ๋๋ฌธ์ ์นด์นด์ค๋ฑ ํฌ๋ ์๋ก์ด ๋ฐฉ์์ ์ฐพ์๋๋ค. ๋ฐ๋ก '์ธ๋๋ผ๋งจ' ํ๋ก์ ํธ์ด๋ค.
๐์นด์นด์ค๋ฑ ํฌ์ '์ธ๋๋ผ๋งจ' ํ๋ก์ ํธ
์นด์นด์ค๋ฑ ํฌ๋ ์ฌ์ฉ์๊ฐ ๋ง์ ๋จ์ ํ ์ํ์ ๋์ด์ ์์ ์๋น์ค๋ผ๊ณ ๋ถ๋ฆด ์ ๋๋ก ๊ธ์ต ๋ฐ์ดํฐ ์์ด ์์ฒญ๋๋ค. ๊ธ๊ฒฉํ ๊ณ ๊ฐ ์ฆ๊ฐ์ ํญ๋ฐ์ ์ธ ํธ๋ํฝ ์ฑ์ฅ์๋ ๋ถ๊ตฌํ๊ณ ์ฅ์ ์์ด ์๋น์ค๋ฅผ ์ด์ด๊ฐ ์ ์์๋ ์ด์ ๋ ๋ฐ๋ก '์ธ๋๋ผ๋งจ'์ด๋ค. ์ด๋ MySQL์ ํธ๋์ญ์ ๋ก๊ทธ์ธ ๋ฐ์ด๋๋ฆฌ ๋ก๊ทธ๋ฅผ ํ์ฉํด ์ํ ์๋น์ค ๋ฐ์ดํฐ๋ฅผ ๋ค๋ฅธ ์ค๋ฉ DB์ ํจ์จ์ ์ผ๋ก ๋ถ์ฐ ์ ์ฅํ๋ ๋ฐฉ์์ด๋ค.
ํ๋ก์ ํธ ‘์ธ๋๋ผ๋งจ’์ ๋ง์น ํ๋ฅด๋ ๋ฐ์ดํฐ์ ๋นจ๋๋ฅผ ๊ฝ์ ์ํ๋ ํํ๋ก ์ ์ํ๊ณ ์ ํํ๊ฒ ๋ฐ์ดํฐ๋ฅผ ์ฌ๊ตฌ์ฑํ๋ ์ญํ ์ ์ํํ๋ค. CDC ๋ฐ์ดํฐ๋ฅผ MySQL๋ก ์ฎ๊ธฐ๊ณ , MySQL ๋ฐ์ดํฐ ์ ์ ์ด ๋๋ฉด ์ฌ๊ธฐ์ ๋ฐ์ํ๋ ๋ณ๊ฒฝ ์ด๋ ฅ ๋ฐ์ด๋๋ฆฌ ๋ก๊ทธ๋ฅผ ๊ฐ์งํด ์ธ๋๋ผ๋งจ์ด ๋ถ์ฐ ์ฌ๋ฐฐ์นํ๋ค. ์์ค์์ ๋ฐ์ํ ๋ฐ์ด๋๋ฆฌ ๋ก๊ทธ๋ฅผ 1์ฐจ์ ์ผ๋ก ํ์ฑํด์ ํ์คํฌ์์ปค๋ก ์ฎ๊ธฐ๊ณ ์ถ๊ฐ๋ก ์ฐ์ฐํ ์ ์๋ ๋งค์๋๋ฅผ ์์ฑํด ์ฒ๋ฆฌํ๋ค.
๊ด๊ณ์๋ ๋ฐ์ดํฐ๋ฅผ ์ฝ๊ณ ์ ํํ๊ณ ๋น ๋ฅด๊ฒ ๋ถ์ฐ ์ฒ๋ฆฌํ๊ธฐ ์ํ ์ฉ๋์ด๋ฉฐ, ์์ ๋กญ๊ฒ ์ปค์คํฐ๋ง์ด์ง ํ ์ ์๋๋ก ๋ง๋ค์๋ค๊ณ ์ค๋ช ํ๋ค.
ํด๋น ๋ด์ฉ์ ์๋ ํฌ์คํธ๋ฅผ ์์ฝํ ํ, ์กฐ์ฌํ ๋ด์ฉ์ ์ถ๊ฐํด ์์ฑํ์ต๋๋ค
์๋ฌธ ์ถ์ฒ
www.bloter.net/archives/351562