๐ ์์นด ๋ฐ์ดํฐ ๊ทธ๋ฃน - ๋ฐ์ดํฐ ์์ง๋์ด๋ง ํ์ด ํ๋ ์ผ ๐ ์ด ์๋ฃ๋ฅผ ์ถ์ฒํ๋ ์ด์ - ๋ฐ์ดํฐ ์์ง๋์ด๋งํ์ด ํ๋ ์ผ์ ์ ์ ๋ฆฌํ ๊ธ์ ๋๋ค - ์ ์ ๋ฐ์ดํฐ ์์ง๋์ด๋ถ์ด ๋ฐ์ดํฐ ์์ง๋์ด๋ก ์๋ฉด
๐ ์์นด ๋ฐ์ดํฐ ๊ทธ๋ฃน - ๋ฐ์ดํฐ ์์ง๋์ด๋ง ํ์ด ํ๋ ์ผ ๐ ์ด ์๋ฃ๋ฅผ ์ถ์ฒํ๋ ์ด์ - ๋ฐ์ดํฐ ์์ง๋์ด๋งํ์ด ํ๋ ์ผ์ ์ ์ ๋ฆฌํ ๊ธ์ ๋๋ค - ์ ์ ๋ฐ์ดํฐ ์์ง๋์ด๋ถ์ด ๋ฐ์ดํฐ ์์ง๋์ด๋ก ์๋ฉด ์ข์ Tip์ ์ค๊ฐ ์ค๊ฐ ์์ฑํด์ฃผ์ จ์ต๋๋ค - ๋ฐ์ดํฐ ์์ง๋์ด๊ฐ ๋ค๋ฃจ๋ ๊ธฐ์ ์ ์ ์์ฑํด์คฌ์ต๋๋ค(Airflow ๋ฑ) ๐ ์ฝ์ผ๋ฉด ์ข์ ๋ถ - ๋ฐ์ดํฐ ์์ง๋์ด๊ฐ ์ด๋ค ์ผ์ ํ๋์ง ๊ถ๊ธํ์ ๋ถ - ๋ฐ์ดํฐ ์์ง๋์ด๋ฅผ ์ค๋นํ๊ณ ๊ณ์ ๋ถ - ๋ชจ๋น๋ฆฌํฐ ํ์ฌ์ ๋ฐ์ดํฐ ์์ง๋์ด๊ฐ ํ๋ ์ผ์ด ๊ถ๊ธํ์ ๋ถ ๐ ๋ด์ฉ ๋ฐ์ดํฐ ๊ทธ๋ฃน๊ณผ ๋ฐ์ดํฐ ์์ง๋์ด๋ง ํ ๋ฐ์ดํฐ ๊ทธ๋ฃน์ ๊ตฌ์ฑ - ๋ฐ์ดํฐ ๋ถ์ ํ - ๋น์ฆ๋์ค ๋ฐ์ดํฐ ํ - ๋ฐ์ดํฐ ์์ง๋์ด๋ง ํ - ๋ฐ์ดํฐ ์์ง๋์ด๋งํ์ ๊ธฐ๋ณธ ์ ๋ฌด : ๋ค๋ฅธ ํ์ ์ํ "์ง์" ๋ฐ์ดํฐ ์์ง๋์ด๋ง ํ ์ ๋ฌด 1) ์์ ๋ก์ด ํตํฉ ๋ฐ์ดํฐ ๋ถ์ ํ๊ฒฝ ๋ง๋ค๊ธฐ - ์๋น์ค ์ด์ DB๊ฐ ์๋ ๋ณ๋์ ์ ์ฅ์์ ๋ถ์ ํ๊ฒฝ์ด ํ์ํจ - ์ฌ๋ฌ ์ฅ์์ ์ ์ฅ๋ ๋ฐ์ดํฐ๋ฅผ ํ ๊ณณ์ผ๋ก ๋ชจ์์ผ ํจ - Google Cloud Platform์ BIgQuery๋ฅผ ๋ฐ์ดํฐ ์จ์ดํ์ฐ์ค๋ก ์ฌ์ฉํ๊ณ , Apache Airflow๋ฅผ Workflow ํด๋ก ์ฌ์ฉํจ - ๋ฐ์ดํฐ๋ฅผ ์ทจํฉํ ๋ ์๊ฐํด์ผ ํ๋ ์ - ใฑ. ๋ฐ์ดํฐ๊ฐ ์ด๋ค ํํ๊ณ , ์ด๋ป๊ฒ ๊ฐ์ ธ์ค๋๊ฒ ์ต์ ํ๋ ๋ฐฉ๋ฒ์ผ๊น? - ใด. ํ ๋ฒ์ ๊ฐ์ ธ์ค๋ ๋ฐ์ดํฐ ์์ด ๋ง์์ ์ฒ๋ฆฌ ์๋์ ๋ฉ๋ชจ๋ฆฌ์ ๋ฌธ์ ๊ฐ ์๋? ์๋ค๋ฉด ์ด๋ป๊ฒ ํ ๊น? - ใท. ๋ฐ์ดํฐ ์์ค๊ฐ ์๋น์ค DB์ธ ๊ฒฝ์ฐ ๋ถํ๋ฅผ ์ฃผ์ง ์์ผ๋ฉฐ ๋น ๋ฅด๊ฒ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์ค๋ ค๋ฉด ์ด๋ป๊ฒ ํ ๊น? - ใน. ์๋น์ค DB์ UPDATE, DELETE๊ฐ ์ํ๋์ด๋ ์ผ๊ด์ฑ ์๊ฒ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์ค๋ ค๋ฉด ์ด๋ป๊ฒ ํ ๊น? - ใ . ํ์ดํ๋ผ์ธ์ ์ฌ ์คํํด๋ ๋ฉฑ๋ฑํ๊ฒ ๋ฐ์ดํฐ๋ฅผ ์์งํ๋ ค๋ฉด ์ด๋ป๊ฒ ํ ๊น? - ๋ฐ์ดํฐ๋ฅผ ๋ณ๋๋ก ์ ์ ๋ฐ ์ง๊ณํด ๋ฐ์ดํฐ ๋งํธ๋ก ๋ง๋ฌ - ์์นด๋ SODA Store๋ผ๋ ๋ฐ์ดํฐ ๋งํธ๋ฅผ ๋ง๋ค์ด ์ด์ํ๊ณ ์์. ๊ธฐ์กด์ 500์ค์ ์ฟผ๋ฆฌ๋ก ์์ฑํด์ผ ํ๋ ๋ด์ฉ์ 10์ค ์ด๋ด๋ก ์ถ์ถํ ์ ์์ 2) ๋ฐ์ดํฐ ์งํ์ ๋ณด๊ณ ์ ๋ง๋ค๊ธฐ - ์ค์ ๋น์ฆ๋์ค ๋ชฉ์ ์ ๊ฐ์ง ๋ถ์ ์งํ์ ๋ณด๊ณ ์๋ฅผ ์์ฑ - ์งํ ๊ด๋ จ ๋ก์ง - ใฑ. ์ด๋ ์ ๋๋ก Task๋ฅผ ์ชผ๊ฐ์ผ ์ ์ง๋ณด์์ ์ฌ์ฌ์ฉ์ด ์ฌ์ธ๊น? - ใด. ์ฟผ๋ฆฌ๋ ์ด๋ป๊ฒ ๊ตฌ์กฐํํ๊ณ ์ต์ ํํด์ผ ์ฝ๊ธฐ๋ ์ข๊ณ ์ฑ๋ฅ๋ ์ข์๊น? - ใท. ์ด๋ ์๊ฐ๋์ ์ด๋ค ์์๋ก ์คํํด์ผ ์ฌ๋ฐ๋ฅด๊ฒ ํ์ดํ๋ผ์ธ์ด ๋์ํ ๊น? - ๊ตฌ๊ธ ์คํ๋ ๋์ํธ, ๊ตฌ๊ธ ๋ฐ์ดํฐ ์คํ๋์ค, ํ๋ธ๋ก๋ฅผ ์ฌ์ฉํ๊ณ ์์ต๋๋ค 3) ๋ฐ์ดํฐ ๊ธฐ๋ฐ์ ๋ฐฑ์๋ ์๋น์ค ๊ฐ๋ฐ ๋ฐ ์ด์ - ๋ถ์ ๋ฐ ๋ชจ๋ธ๋ง ๊ฒฐ๊ณผ๋ฅผ ์๋น์ค์ ๋ฐ์ํ๊ธฐ ์ํ ๋ฐฑ์๋ ์๋น์ค๋ ๋ฐ์ดํฐ ์์ง๋์ด๋งํ์ด ๋ด๋นํ๊ณ ์์ - ์ ์ง ๋ณด์๋ฅผ ์ํ ํด๋ฆฐ ์ฝ๋, ์ํคํ ์ฒ๋ CI/CD๋ฅผ ๊ณ ๋ฏผํ๋ฉฐ ๋ฐฑ์๋ ์๋น์ค๋ฅผ ๊ฐ๋ฐํจ - ํ์ด์ฌ ๋ชจ๋ ๊ฐ๋ฐ์ด๋ ๊ธฐ์ ๋ฌธํ ๋์ ์ ํ์ฐ๊ณ ์์ - CI/CD ํด์ BuddyWorks๋ฅผ ์ฌ์ฉํ๊ณ ์๋ฒ ํ๋ ์์ํฌ๋ Flask, RPC ํต์ ์ gRPC๋ฅผ ์ฌ์ฉํจ 4) ๋ฐ์ดํฐ ๊ทธ๋ฃน์ ์ธํ๋ผ/๋ฆฌ์์ค ๊ด๋ฆฌ - GCP๋ฅผ ์ฌ์ฉํ๊ณ ์์ - Google Compute Engine, BigQuery, ใท์ดํฐ ์ ํฉ์ฑ ๊ฒ์ฌ, ๋คํธ์ํฌ ๋ฐฉํ๋ฒฝ ๋ฑ - GKE(Google Kubernetes Engine) ๋ฐ์ดํฐ ์์ง๋์ด๋งํ ์ ๋ฌด ์ด ์ ๋ฆฌ - ์ ์ฌ ์ง์์ ์ํ ํตํฉ ๋ฐ์ดํฐ ์ ์ฅ์ ๋ง๋ จ - ๋ค์ํ ๋ฐ์ดํฐ ์์ค์ ํตํฉ ๋ฐ์ดํฐ ์ ์ฅ์๋ก ์ด๋ํ๋ ํ์ดํ๋ผ์ธ ์ค๊ณ - ์ข ๋ ํธ๋ฆฌํ ๋ถ์์ ์ํ ๋ฐ์ดํฐ ๋งํธ ๊ตฌ์ถ - ํ ๋ถ์๋ฅผ ์ํ ์งํ, ์๊ฐํ ๋ฐ ๋ณด๊ณ ์ ๊ฐ๋ฐ - ๋ณด๊ณ ์์ ๋ฐ์ดํฐ๊ฐ ์ง์์ ์ผ๋ก ์ ๋ฐ์ดํธ๋๋ ํ์ดํ๋ผ์ธ ์ค๊ณ - ์ ๋ฌด ๊ท์น ํ์, ์งํ ๋ฐ ๋ฐ์ดํฐ ๊ฒ์ฆ - ๋ฐ์ดํฐ ๊ธฐ๋ฐ์ ๋ฐฑ์๋ ์๋น์ค ๊ฐ๋ฐ ๋ฐ ์ด์ - ๋ฐ์ดํฐ ๊ทธ๋ฃน ๋ด ์คํผ๋ ์ด์ , ๋จธ์ ๋ฌ๋์ ์๋นํ๋ ๋ฐฑ์๋ ์๋น์ค ๊ฐ๋ฐ - ์ง์์ ์ด๊ณ ์ ์ง๋ณด์๊ฐ ์ฌ์ด ๊ฐ๋ฐ ๋ฐฉ๋ฒ๋ก ์ฐ๊ตฌ ๋ฐ ์ ์ฉ - ์ด์์ ์ฐจ์ง์ด ์๋๋ก ๋ก๊ทธ, ๋ฆฌ์์ค ๋ชจ๋ํฐ๋ง - ๋ฐ์ดํฐ ๊ทธ๋ฃน ์ธํ๋ผ ๋ฐ ๋ฆฌ์์ค ๊ด๋ฆฌ - GCP ์๋น์ค ์ด์ ๋ฐ ๊ด๋ฆฌ - ๋ฆฌ์์ค, ๋คํธ์ํฌ, ๋น ์ฟผ๋ฆฌ ์ฌ์ฉ๋ ๋ชจ๋ํฐ๋ง - GKE์ ์ฌ๋ผ๊ฐ๋ helm chart ๋ฐ ๋ฆฌ์์ค ๊ด๋ฆฌ - ๊ฐ๋ฐ ํ๊ฒฝ๊ณผ ๋ฐฐํฌ ํ์ดํ๋ผ์ธ(CI/CD) ๊ด๋ฆฌ ์์ผ๋ก ๋ชฉํ์ ํ ์ผ๋ค - GKE ํ๊ฒฝ๊ณผ Airflow on GKE - ํ๋ค ๋ฐ์ดํฐ ์์ง๋์ด๋ง - ์ค์๊ฐ ์คํธ๋ฆฌ๋ฐ ๋ฐ์ดํฐ