Ver3.0 ๐ฏ ์ ๋ชจ๋ ๋ฐ์ดํฐ๊ฐ ๋น ๋ฐ์ดํฐ ์ฒ๋ฆฌ์ ์ ํฉํ์ง ์์๊น?

๐ฏ ์ ๋ชจ๋ ๋ฐ์ดํฐ๊ฐ ๋น ๋ฐ์ดํฐ ์ฒ๋ฆฌ์ ์ ํฉํ์ง ์์๊น?
๋ฐ์ดํฐ์ ํฌ๊ธฐ๋ง ๋ณด๊ณ ํ๋จํ๋ฉด ํฐ์ฝ๋ค์น๋ค! ๋น ๋ฐ์ดํฐ ์ฒ๋ฆฌ์ ์ง์ค ํํค์น๊ธฐ ๐
๐ค ๋น ๋ฐ์ดํฐ ์ฒ๋ฆฌ, ๋ง๋ฅ์ด ์๋๋ค!
์์ฆ '๋น
๋ฐ์ดํฐ'๋ผ๋ ๋ง์ ๋ค์ผ๋ฉด ๋ญ๊ฐ ์์ฒญ๋๊ฒ ๋๋จํ ๊ธฐ์ ์ฒ๋ผ ๋๊ปด์ง์ง ์์? ๋ง์น ๋ชจ๋ ๋ฐ์ดํฐ๋ฅผ ๋น
๋ฐ์ดํฐ ์์คํ
์ ๋ฃ๊ธฐ๋ง ํ๋ฉด ๋ง๋ฒ์ฒ๋ผ ํด๊ฒฐ๋ ๊ฒ ๊ฐ์ ์ฐฉ๊ฐ ๋ง์ด์ผ. ๐
ํ์ง๋ง ํ์ค์ ๊ทธ๋ ๊ฒ ํธ๋ฝํธ๋ฝํ์ง ์์. ๋น
๋ฐ์ดํฐ ์ฒ๋ฆฌ ์์คํ
์ ๋ถ๋ช
๊ฐ๋ ฅํ ๋๊ตฌ์ง๋ง, ๋ชจ๋ ๋ฐ์ดํฐ์ ์ ํฉํ ๋ง๋ฅ ํด๊ฒฐ์ฑ
์ ์๋์ผ. ์คํ๋ ค ์๋ชป ์ฌ์ฉํ๋ฉด ๋น์ฉ๋ง ๋ญ๋นํ๊ณ ์ฑ๋ฅ๋ ๋จ์ด์ง๋ ์ต์
์ ์ํฉ์ด ๋ฐ์ํ ์ ์์ง.
์ด ๊ธ์์๋ ์ ๋ชจ๋ ๋ฐ์ดํฐ๊ฐ ๋น
๋ฐ์ดํฐ ์ฒ๋ฆฌ์ ์ ํฉํ์ง ์์์ง, ๊ทธ๋ฆฌ๊ณ ์ด๋ค ๊ฒฝ์ฐ์ ๋น
๋ฐ์ดํฐ ์์คํ
์ ํผํด์ผ ํ๋์ง ์น๊ตฌ์ฒ๋ผ ํธํ๊ฒ ์ด์ผ๊ธฐํด๋ณผ๊ฒ! ๐
๐ก ํต์ฌ ํฌ์ธํธ ๋น ๋ฐ์ดํฐ ์ฒ๋ฆฌ ์์คํ ์ ๋์ฉ๋, ๋ถ์ฐ ์ฒ๋ฆฌ, ๋ฐฐ์น ์์ ์ ์ต์ ํ๋์ด ์์ด. ํ์ง๋ง ์ค์๊ฐ ์๋ต, ์๋ ํธ๋์ญ์ , ๋ณต์กํ ๊ด๊ณํ ๋ฐ์ดํฐ์๋ ์คํ๋ ค ๋นํจ์จ์ ์ผ ์ ์๋ค๋ ์ ์ ๊ธฐ์ตํด์ผ ํด!
๐ ๋น ๋ฐ์ดํฐ ์ฒ๋ฆฌ ์์คํ ์ ๋ณธ์ง ์ดํดํ๊ธฐ
๋จผ์ ๋น
๋ฐ์ดํฐ ์ฒ๋ฆฌ ์์คํ
์ด ๋ญ์ง๋ถํฐ ์ ๋๋ก ์์์ผ ํด. Hadoop, Spark ๊ฐ์ ์์คํ
๋ค์ ๊ธฐ๋ณธ์ ์ผ๋ก ๋ถ์ฐ ์ปดํจํ
์ํคํ
์ฒ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์ค๊ณ๋์์ด.
์ฝ๊ฒ ๋งํ๋ฉด, ์์ฒญ๋๊ฒ ํฐ ๋ฐ์ดํฐ๋ฅผ ์ฌ๋ฌ ์ปดํจํฐ์ ๋๋ ์ ์ ์ฅํ๊ณ , ๋์์ ์ฒ๋ฆฌํ๋ ๋ฐฉ์์ด์ผ. ๋ง์น ํฐ ํผ์๋ฅผ ํผ์ ๋จน๋ ๊ฒ ์๋๋ผ ์น๊ตฌ๋ค๊ณผ ๋๋ ๋จน๋ ๊ฒ์ฒ๋ผ ๋ง์ด์ง! ๐
์ด๋ฐ ์์คํ
์ ํต์ฌ ํน์ง์ ๋ค์๊ณผ ๊ฐ์:
๐ง ๋น
๋ฐ์ดํฐ ์์คํ
์ ํต์ฌ ํน์ง
1. ์ํ์ ํ์ฅ์ฑ (Horizontal Scalability)
์๋ฒ๋ฅผ ๋ ์ถ๊ฐํด์ ์ฒ๋ฆฌ ๋ฅ๋ ฅ์ ๋๋ฆด ์ ์์ด. ํ ๋์ ์ํผ์ปดํจํฐ๋ณด๋ค ์ฌ๋ฌ ๋์ ์ผ๋ฐ ์ปดํจํฐ๊ฐ ๋ ํจ์จ์ ์ด์ผ.
2. ๋ฐฐ์น ์ฒ๋ฆฌ ์ค์ฌ (Batch Processing)
๋ฐ์ดํฐ๋ฅผ ๋ชจ์์ ํ๊บผ๋ฒ์ ์ฒ๋ฆฌํ๋ ๋ฐฉ์์ด ๊ธฐ๋ณธ์ด์ผ. ์ค์๊ฐ๋ณด๋ค๋ ๋๋ ์ฒ๋ฆฌ์ ์ต์ ํ๋์ด ์์ง.
3. ๋ด๊ฒฐํจ์ฑ (Fault Tolerance)
์ผ๋ถ ์๋ฒ๊ฐ ๊ณ ์ฅ๋๋ ์์คํ
์ ์ฒด๋ ๊ณ์ ์๋ํด. ๋ฐ์ดํฐ๋ฅผ ์ฌ๋ฌ ๊ณณ์ ๋ณต์ ํด๋๊ธฐ ๋๋ฌธ์ด์ผ.
4. ๋ฐ์ดํฐ ์ง์ญ์ฑ (Data Locality)
๋ฐ์ดํฐ๊ฐ ์๋ ๊ณณ์์ ๊ณ์ฐ์ ์ํํด์ ๋คํธ์ํฌ ๋น์ฉ์ ์ค์ฌ. ๋ฐ์ดํฐ๋ฅผ ์ฎ๊ธฐ๋ ๊ฒ๋ณด๋ค ์ฝ๋๋ฅผ ์ฎ๊ธฐ๋ ๊ฒ ํจ์ฌ ๋น ๋ฅด๊ฑฐ๋ !
์ด๋ฐ ํน์ง๋ค์ด ๋ฐ๋ก ๋น ๋ฐ์ดํฐ ์์คํ ์ ๊ฐ์ ์ด์ ๋์์ ํ๊ณ๋ฅผ ๋ง๋ค์ด๋ด๋ ์์๋ค์ด์ผ. ์ด์ ๋ณธ๊ฒฉ์ ์ผ๋ก ์ด๋ค ๋ฐ์ดํฐ๊ฐ ๋น ๋ฐ์ดํฐ ์ฒ๋ฆฌ์ ์ ํฉํ์ง ์์์ง ์ดํด๋ณด์! ๐
โก 1. ์ค์๊ฐ ์๋ต์ด ํ์ํ ๋ฐ์ดํฐ
์ฒซ ๋ฒ์งธ๋ก, ์ค์๊ฐ ์๋ต์ด ์ค์ํ ๋ฐ์ดํฐ๋ ๋น
๋ฐ์ดํฐ ์ฒ๋ฆฌ ์์คํ
๊ณผ ๊ถํฉ์ด ์ ๋ง์.
์๋ฅผ ๋ค์ด๋ณผ๊ฒ. ๋ค๊ฐ ์จ๋ผ์ธ ์ผํ๋ชฐ์์ ๋ฌผ๊ฑด์ ์ฃผ๋ฌธํ๊ณ ๊ฒฐ์ ๋ฒํผ์ ๋๋ ๋ค๊ณ ์์ํด๋ด. ์ด๋ ์์คํ
์ ๋ช ์ด ์์ ์ฌ๊ณ ํ์ธ, ๊ฒฐ์ ์ฒ๋ฆฌ, ์ฃผ๋ฌธ ํ์ ์ ์๋ฃํด์ผ ํด. ๋ง์ฝ ์ด ๊ณผ์ ์ด ๋ช ๋ถ์ฉ ๊ฑธ๋ฆฐ๋ค๋ฉด? ๊ณ ๊ฐ์ ์ด๋ฏธ ์ฐฝ์ ๋ซ๊ณ ๋ค๋ฅธ ์ผํ๋ชฐ๋ก ๊ฐ๋ฒ๋ ธ์ ๊ฑฐ์ผ! ๐โโ๏ธ๐จ
๋น
๋ฐ์ดํฐ ์์คํ
์ ๊ธฐ๋ณธ์ ์ผ๋ก ์ฒ๋ฆฌ๋(Throughput)์ ์ต์ ํํ๋๋ก ์ค๊ณ๋์์ด. ์ฆ, ํ ๋ฒ์ ๋ง์ ์์ ๋ฐ์ดํฐ๋ฅผ ์ฒ๋ฆฌํ๋ ๋ฐ๋ ํ์ํ์ง๋ง, ๊ฐ๋ณ ์์ฒญ์ ๋ํ ์๋ต ์๊ฐ(Latency)์ ์๋์ ์ผ๋ก ๋๋ฆด ์๋ฐ์ ์์ง.
โ ๏ธ ์ค์๊ฐ ์ฒ๋ฆฌ๊ฐ ํ์ํ ๊ฒฝ์ฐ์ ์์
โข ๊ธ์ต ๊ฑฐ๋: ์ฃผ์ ๋งค๋งค, ์นด๋ ๊ฒฐ์ ์น์ธ (๋ฐ๋ฆฌ์ด ๋จ์ ์๋ต ํ์)
โข ์จ๋ผ์ธ ๊ฒ์: ํ๋ ์ด์ด ์ก์
์ ๋ํ ์ฆ๊ฐ์ ์ธ ๋ฐ์
โข IoT ์ผ์ ๋ฐ์ดํฐ: ์์จ์ฃผํ์ฐจ์ ์ฅ์ ๋ฌผ ๊ฐ์ง ๊ฐ์ ์ค์๊ฐ ์์ฌ๊ฒฐ์
โข ์น ์๋น์ค API: ์ฌ์ฉ์ ๋ก๊ทธ์ธ, ๊ฒ์ ์ฟผ๋ฆฌ ๋ฑ
โข ์ฑํ
์ ํ๋ฆฌ์ผ์ด์
: ๋ฉ์์ง ์ ์ก ๋ฐ ์์
์ด๋ฐ ๊ฒฝ์ฐ์๋ ์ ํต์ ์ธ RDBMS๋ ์ธ๋ฉ๋ชจ๋ฆฌ ๋ฐ์ดํฐ๋ฒ ์ด์ค(Redis, Memcached), ๋๋ ์ค์๊ฐ ์คํธ๋ฆฌ๋ฐ ํ๋ซํผ(Kafka Streams, Flink)์ด ํจ์ฌ ์ ํฉํด!
Hadoop์ MapReduce๋ ์์
์ ์์ํ๋ ๋ฐ๋ง ์์ญ ์ด๊ฐ ๊ฑธ๋ฆด ์ ์์ด. ์๋ํ๋ฉด ์์
์ค์ผ์ค๋ง, ๋ฐ์ดํฐ ๋ถ์ฐ, ํ์คํฌ ํ ๋น ๋ฑ์ ์ค๋ฒํค๋๊ฐ ์๊ธฐ ๋๋ฌธ์ด์ง. Spark๊ฐ ์ข ๋ ๋น ๋ฅด๊ธด ํ์ง๋ง, ๊ทธ๋๋ ๋ฐ๋ฆฌ์ด ๋จ์์ ์๋ต์ด ํ์ํ ๊ฒฝ์ฐ์๋ ๋ถ์ ํฉํด.
์ฌ๋ฅ๋ท ๊ฐ์ ํ๋ซํผ์์๋ ์ฌ์ฉ์๊ฐ ํ๋กํ์ ์กฐํํ๊ฑฐ๋ ๋ฉ์์ง๋ฅผ ๋ณด๋ผ ๋๋ ์ฆ๊ฐ์ ์ธ ์๋ต์ด ํ์ํ์์? ์ด๋ฐ ํธ๋์ญ์
๋ฐ์ดํฐ๋ ๋น
๋ฐ์ดํฐ ์์คํ
๋ณด๋ค๋ ์ ํต์ ์ธ ๋ฐ์ดํฐ๋ฒ ์ด์ค๊ฐ ํจ์ฌ ํจ์จ์ ์ด์ผ! ๐ฌ
๐ข 2. ์๋์ ํธ๋์ญ์ ๋ฐ์ดํฐ
๋ ๋ฒ์งธ๋ ๋ฐ์ดํฐ ์์ด ์ ์ ๊ฒฝ์ฐ์ผ. ์ด๊ฑด ์ข ์์ด๋ฌ๋ํ๊ฒ ๋ค๋ฆด ์ ์์ด. "๋น
๋ฐ์ดํฐ ์์คํ
์ธ๋ฐ ๋ฐ์ดํฐ๊ฐ ์ ์ผ๋ฉด ์ ๋๋ค๊ณ ?" ๋ง์, ์ ํํ ๊ทธ๊ฑฐ์ผ! ๐
๋น
๋ฐ์ดํฐ ์์คํ
์ ๋์ฉ๋ ๋ฐ์ดํฐ๋ฅผ ์ฒ๋ฆฌํ๊ธฐ ์ํด ๋ณต์กํ ์ธํ๋ผ๋ฅผ ๊ตฌ์ถํด. ์ฌ๋ฌ ๋์ ์๋ฒ, ๋ถ์ฐ ํ์ผ ์์คํ
, ํด๋ฌ์คํฐ ๊ด๋ฆฌ ๋๊ตฌ ๋ฑ๋ฑ... ์ด ๋ชจ๋ ๊ฒ ์ค๋ฒํค๋(Overhead)๋ฅผ ๋ฐ์์์ผ.
์์ ๋ฐ์ดํฐ๋ฅผ ์ฒ๋ฆฌํ๋ ๋ฐ ์ด๋ฐ ๋ณต์กํ ์์คํ
์ ์ฌ์ฉํ๋ ๊ฑด ๋ง์น ๋๋ค ์ํผ์ ๊ฐ๋ ๋ฐ ํฌ๋ฆฌ์ฝฅํฐ๋ฅผ ํ๋ ๊ฒ๊ณผ ๊ฐ์. ์์ ๋นํจ์จ์ ์ด์ง! ๐
| ๋ฐ์ดํฐ ๊ท๋ชจ | ์ ํฉํ ์์คํ | ์ด์ |
|---|---|---|
| ์ GB ์ดํ | ๋จ์ผ ์๋ฒ RDBMS | ์ค์ ๊ฐ๋จ, ๋น ๋ฅธ ์๋ต, ๋ฎ์ ๋น์ฉ |
| ์์ญ GB ~ ์๋ฐฑ GB | ๊ณ ์ฑ๋ฅ RDBMS ๋๋ NoSQL | ์ ์ ํ ์ธ๋ฑ์ฑ์ผ๋ก ์ถฉ๋ถํ ์ฒ๋ฆฌ ๊ฐ๋ฅ |
| ์ TB ์ด์ | ๋น ๋ฐ์ดํฐ ์์คํ ๊ณ ๋ ค | ๋ถ์ฐ ์ฒ๋ฆฌ์ ์ด์ ์ด ์ค๋ฒํค๋๋ฅผ ์์ |
| ์์ญ PB ์ด์ | ๋น ๋ฐ์ดํฐ ์์คํ ํ์ | ๋จ์ผ ์์คํ ์ผ๋ก๋ ์ฒ๋ฆฌ ๋ถ๊ฐ๋ฅ |
์ค์ ๋ก ๋ง์ ๊ธฐ์
๋ค์ด ์ด ํจ์ ์ ๋น ์ ธ. "์ฐ๋ฆฌ๋ ๋น
๋ฐ์ดํฐ ํด์ผ ํด!"๋ผ๋ ์ ํ์ ํฉ์ธ๋ ค์ ์ค์ ๋ก๋ ๋ช GB๋ฐ์ ์ ๋๋ ๋ฐ์ดํฐ๋ฅผ Hadoop ํด๋ฌ์คํฐ์ ์ฌ๋ ค๋๋ ๊ฑฐ์ง. ๊ฒฐ๊ณผ๋? ๐ธ
โข ๋์ ์ธํ๋ผ ๋น์ฉ (์๋ฒ, ์คํ ๋ฆฌ์ง, ๋คํธ์ํฌ)
โข ๋ณต์กํ ์ด์ ๋ฐ ์ ์ง๋ณด์
โข ์คํ๋ ค ๋๋ฆฐ ์ฒ๋ฆฌ ์๋
โข ๊ฐ๋ฐ ๋ฐ ๋ฐฐํฌ์ ๋ณต์ก์ฑ ์ฆ๊ฐ
๋ฐ์ดํฐ๊ฐ ์ ๋ง ํฌ์ง ์๋ค๋ฉด, PostgreSQL์ด๋ MySQL ๊ฐ์ ์ ํต์ ์ธ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ก๋ ์ถฉ๋ถํ ๋น ๋ฅด๊ณ ํจ์จ์ ์ผ๋ก ์ฒ๋ฆฌํ ์ ์์ด. ๊ฒ๋ค๊ฐ SQL ์ฟผ๋ฆฌ๋ ํจ์ฌ ๊ฐ๋จํ๊ณ ์ง๊ด์ ์ด์ง! ๐
๐ 3. ๋ณต์กํ ๊ด๊ณํ ๋ฐ์ดํฐ์ ํธ๋์ญ์
์ธ ๋ฒ์งธ๋ ๋ณต์กํ ๊ด๊ณ๋ฅผ ๊ฐ์ง ๋ฐ์ดํฐ์ผ. ํนํ ACID ์์ฑ(์์์ฑ, ์ผ๊ด์ฑ, ๊ณ ๋ฆฝ์ฑ, ์ง์์ฑ)์ด ์ค์ํ ํธ๋์ญ์
๋ฐ์ดํฐ๋ ๋น
๋ฐ์ดํฐ ์์คํ
๊ณผ ๋ง์ง ์์.
์๋ฅผ ๋ค์ด, ์ํ ์์คํ
์ ์๊ฐํด๋ด. A ๊ณ์ข์์ B ๊ณ์ข๋ก ๋์ ์ด์ฒดํ ๋๋ ๋ค์ ์์
๋ค์ด ์์์ ์ผ๋ก(atomically) ์ผ์ด๋์ผ ํด:
1. A ๊ณ์ข์์ ๊ธ์ก ์ฐจ๊ฐ
2. B ๊ณ์ข์ ๊ธ์ก ์ถ๊ฐ
3. ๊ฑฐ๋ ๋ด์ญ ๊ธฐ๋ก
์ด ์ค ํ๋๋ผ๋ ์คํจํ๋ฉด ์ ์ฒด๊ฐ ๋กค๋ฐฑ๋์ด์ผ ํ์ง. ๋ง์ฝ A ๊ณ์ข์์๋ ๋์ด ๋น ์ ธ๋๊ฐ๋๋ฐ B ๊ณ์ข์๋ ๋ค์ด๊ฐ์ง ์์๋ค๋ฉด? ํฐ์ผ๋๋ ๊ฑฐ์ผ! ๐ฑ
๐ฏ ACID vs BASE
์ ํต์ RDBMS (ACID)
โข Atomicity (์์์ฑ): ๋ชจ๋ ์ฑ๊ณต ๋๋ ๋ชจ๋ ์คํจ
โข Consistency (์ผ๊ด์ฑ): ๋ฐ์ดํฐ ๋ฌด๊ฒฐ์ฑ ๋ณด์ฅ
โข Isolation (๊ณ ๋ฆฝ์ฑ): ๋์ ํธ๋์ญ์
๊ฐ ๊ฐ์ญ ์์
โข Durability (์ง์์ฑ): ์ปค๋ฐ๋ ๋ฐ์ดํฐ๋ ์๊ตฌ ๋ณด์กด
๋น
๋ฐ์ดํฐ ์์คํ
(BASE)
โข Basically Available (๊ธฐ๋ณธ์ ๊ฐ์ฉ์ฑ): ํญ์ ์๋ต์ ํจ
โข Soft state (์ ์ฐํ ์ํ): ์ผ์์ ๋ถ์ผ์น ํ์ฉ
โข Eventually consistent (์ต์ข
์ผ๊ด์ฑ): ์๊ฐ์ด ์ง๋๋ฉด ์ผ๊ด์ฑ ๋ฌ์ฑ
๋น
๋ฐ์ดํฐ ์์คํ
์ ๋ถ์ฐ ํ๊ฒฝ์์ ์ฑ๋ฅ๊ณผ ํ์ฅ์ฑ์ ์ํด ACID๋ฅผ ํฌ์ํ๊ณ BASE ๋ชจ๋ธ์ ์ฑํํ์ด. ๊ทธ๋์ ๊ฐํ ์ผ๊ด์ฑ์ด ํ์ํ ๋ฐ์ดํฐ์๋ ๋ถ์ ํฉํ์ง!
๋ํ ๋ณต์กํ JOIN ์ฐ์ฐ์ด ๋ง์ด ํ์ํ ๊ฒฝ์ฐ๋ ๋ฌธ์ ์ผ. ๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ ์ฌ๋ฌ ํ
์ด๋ธ์ ํจ์จ์ ์ผ๋ก ์กฐ์ธํ๋๋ก ์ต์ ํ๋์ด ์์ง๋ง, Hadoop์ด๋ Spark์์๋ ์กฐ์ธ ์ฐ์ฐ์ด ๋งค์ฐ ๋น์ธ.
์๋ํ๋ฉด ๋ฐ์ดํฐ๊ฐ ์ฌ๋ฌ ๋
ธ๋์ ๋ถ์ฐ๋์ด ์์ด์, ์กฐ์ธ์ ํ๋ ค๋ฉด ๋คํธ์ํฌ๋ฅผ ํตํด ๋ฐ์ดํฐ๋ฅผ ์ด๋์์ผ์ผ ํ๊ฑฐ๋ . ์ด๋ฅผ shuffle์ด๋ผ๊ณ ํ๋๋ฐ, ์ด ๊ณผ์ ์์ ์์ฒญ๋ ๋คํธ์ํฌ ํธ๋ํฝ๊ณผ ์๊ฐ์ด ์์๋ผ. ๐
ํนํ ๋ค์๊ณผ ๊ฐ์ ๊ฒฝ์ฐ์๋ ์ ํต์ ์ธ RDBMS๊ฐ ํจ์ฌ ์ ํฉํด:
โข ๋ณต์กํ ๋ค์ค ํ
์ด๋ธ ์กฐ์ธ์ด ๋น๋ฒํ ๊ฒฝ์ฐ
โข ์ธ๋ ํค ์ ์ฝ์กฐ๊ฑด์ด ์ค์ํ ๊ฒฝ์ฐ
โข ํธ๋์ญ์
๋กค๋ฐฑ์ด ํ์ํ ๊ฒฝ์ฐ
โข ๋ฐ์ดํฐ ์ ํฉ์ฑ์ด ๋น์ฆ๋์ค ํฌ๋ฆฌํฐ์ปฌํ ๊ฒฝ์ฐ
๐จ 4. ๊ณ ๋๋ก ๊ตฌ์กฐํ๋์ง ์์ ์๋ ๋ฐ์ดํฐ
๋ค ๋ฒ์งธ๋ ์ข ์ญ์ค์ ์ธ๋ฐ, ๋น์ ํ ๋ฐ์ดํฐ์ด๋ฉด์ ๋์์ ์์ด ์ ์ ๊ฒฝ์ฐ์ผ.
"์ด? ๋น
๋ฐ์ดํฐ ์์คํ
์ด ๋น์ ํ ๋ฐ์ดํฐ ์ฒ๋ฆฌ์ ๊ฐํ๋ค๋ฉฐ?" ๋ง์, ๊ทธ๊ฑด ๋ง๋ ๋ง์ด์ผ. ํ์ง๋ง ์ฌ๊ธฐ์ ์ค์ํ ๊ฑด ๋ฐ์ดํฐ์ ์์ด์ผ! ๐
๋น์ ํ ๋ฐ์ดํฐ(ํ
์คํธ, ์ด๋ฏธ์ง, ๋น๋์ค ๋ฑ)๋ฅผ ๋น
๋ฐ์ดํฐ ์์คํ
์ผ๋ก ์ฒ๋ฆฌํ๋ ๊ฒ ์ ๋ฆฌํ ๊ฑด, ๊ทธ ๋ฐ์ดํฐ๊ฐ ์์ฒญ๋๊ฒ ๋ง์ ๋์ผ. ์๋ฅผ ๋ค์ด ์ ํ๋ธ์ฒ๋ผ ๋งค์ผ ์๋ฐฑ๋ง ๊ฐ์ ๋น๋์ค๊ฐ ์
๋ก๋๋๋ ๊ฒฝ์ฐ ๋ง์ด์ง.
ํ์ง๋ง ์๊ท๋ชจ ๋ธ๋ก๊ทธ์ ๊ฒ์๊ธ ๋ช ๋ฐฑ ๊ฐ๋, ์์ ์ผํ๋ชฐ์ ์ํ ์ด๋ฏธ์ง ๋ช ์ฒ ๊ฐ๋ฅผ ์ฒ๋ฆฌํ๋ ๋ฐ Hadoop์ ์ด๋ค? ๊ทธ๊ฑด ์์ ์ค๋ฒํฌ์ด์ผ! ๐จ
๐ก ๋น์ ํ ๋ฐ์ดํฐ ์ฒ๋ฆฌ ๊ฐ์ด๋
์๋ ๋น์ ํ ๋ฐ์ดํฐ (~ ์๋ฐฑ GB)
โ ํ์ผ ์์คํ
+ ์ ํต์ ์ ํ๋ฆฌ์ผ์ด์
์๋ฒ
โ MongoDB, Elasticsearch ๊ฐ์ NoSQL
โ ํด๋ผ์ฐ๋ ์คํ ๋ฆฌ์ง (S3, Azure Blob) + ์๋ฒ๋ฆฌ์ค ํจ์
๋๋ ๋น์ ํ ๋ฐ์ดํฐ (์ TB ์ด์)
โ HDFS + MapReduce/Spark
โ ๋ฐ์ดํฐ ๋ ์ดํฌ ์ํคํ
์ฒ
โ ๋ถ์ฐ ์ฒ๋ฆฌ ํ์ดํ๋ผ์ธ
ํต์ฌ์ ๋ฐ์ดํฐ ์๊ณผ ์ฒ๋ฆฌ ๋ณต์ก๋์ ๊ท ํ์ ๋ง์ถ๋ ๊ฑฐ์ผ!
๋ํ ๋น์ ํ ๋ฐ์ดํฐ๋ผ๋ ๊ตฌ์กฐํ ์์
์ด ํ์ํ ๊ฒฝ์ฐ๊ฐ ๋ง์. ์๋ฅผ ๋ค์ด ์์ฐ์ด ์ฒ๋ฆฌ(NLP)๋ฅผ ํ๋ ค๋ฉด ํ
์คํธ๋ฅผ ํ ํฐํํ๊ณ , ์ ๊ทํํ๊ณ , ๋ฒกํฐํํ๋ ๋ฑ์ ์ ์ฒ๋ฆฌ๊ฐ ํ์ํ์ง.
์ด๋ฐ ์ ์ฒ๋ฆฌ ์์
์ด ๋ฐ์ดํฐ ์์ ๋นํด ๋ณต์กํ๋ค๋ฉด, ๋น
๋ฐ์ดํฐ ์์คํ
์ ๋ถ์ฐ ์ฒ๋ฆฌ ์ค๋ฒํค๋๊ฐ ์คํ๋ ค ๋ณ๋ชฉ์ด ๋ ์ ์์ด. ์ฐจ๋ผ๋ฆฌ ๊ฐ๋ ฅํ ๋จ์ผ ์๋ฒ์์ Python์ด๋ R๋ก ์ฒ๋ฆฌํ๋ ๊ฒ ๋ ๋น ๋ฅผ ์ ์์ง! ๐
โฑ๏ธ 5. ์ง์ฐ ์๊ฐ์ด ์ค์ํ ์คํธ๋ฆฌ๋ฐ ๋ฐ์ดํฐ
๋ค์ฏ ๋ฒ์งธ๋ ๋ฎ์ ์ง์ฐ ์๊ฐ(Low Latency)์ด ํ์์ ์ธ ์คํธ๋ฆฌ๋ฐ ๋ฐ์ดํฐ์ผ.
"์ ๊น, Spark Streaming์ด๋ Flink ๊ฐ์ ๊ฒ ์์์?" ๋ง์, ๋น
๋ฐ์ดํฐ ์ํ๊ณ์๋ ์คํธ๋ฆฌ๋ฐ ์ฒ๋ฆฌ ๋๊ตฌ๋ค์ด ์์ด. ํ์ง๋ง ์ฌ๊ธฐ์ ๋งํ๋ ๊ฑด ๋ง์ดํฌ๋ก์ด~๋ฐ๋ฆฌ์ด ๋จ์์ ์ด์ ์ง์ฐ์ด ํ์ํ ๊ฒฝ์ฐ์ผ. โก
์๋ฅผ ๋ค์ด๋ณผ๊ฒ:
๊ณ ๋น๋ ๊ฑฐ๋(HFT, High-Frequency Trading)
์ฃผ์ ์์ฅ์์ ๋ง์ดํฌ๋ก์ด ๋จ์๋ก ๊ฑฐ๋๊ฐ ์ด๋ฃจ์ด์ ธ. ์ด๋ฐ ํ๊ฒฝ์์๋ Spark Streaming์ ์๋ฐฑ ๋ฐ๋ฆฌ์ด ์ง์ฐ๋ ๋๋ฌด ๋๋ ค. ์ ์ฉ ์ธ๋ฉ๋ชจ๋ฆฌ ์์คํ
์ด๋ FPGA ๊ธฐ๋ฐ ํ๋์จ์ด ๊ฐ์์ด ํ์ํ์ง.
์ค์๊ฐ ๊ด๊ณ ์
์ฐฐ(RTB, Real-Time Bidding)
์นํ์ด์ง๊ฐ ๋ก๋ฉ๋ ๋ ๊ด๊ณ ๊ณต๊ฐ์ ๋ํ ์
์ฐฐ์ด 100๋ฐ๋ฆฌ์ด ์์ ์๋ฃ๋์ด์ผ ํด. ์ด๊ฒ๋ ์ ํต์ ์ธ ๋น
๋ฐ์ดํฐ ๋ฐฐ์น ์ฒ๋ฆฌ๋ก๋ ๋ถ๊ฐ๋ฅํด.
์จ๋ผ์ธ ๊ฒ์ ์๋ฒ
ํ๋ ์ด์ด์ ์
๋ ฅ์ ๋ํ ๋ฐ์์ด 50๋ฐ๋ฆฌ์ด ์ด์ ์ง์ฐ๋๋ฉด ๊ฒ์ ๊ฒฝํ์ด ํฌ๊ฒ ๋๋น ์ ธ. ์ด๋ฐ ๊ฒฝ์ฐ๋ ์ธ๋ฉ๋ชจ๋ฆฌ ๋ฐ์ดํฐ ๊ทธ๋ฆฌ๋๋ ์ ์ฉ ๊ฒ์ ์๋ฒ ์ํคํ
์ฒ๊ฐ ํ์ํด. ๐ฎ
โ ๏ธ ์คํธ๋ฆฌ๋ฐ ์ฒ๋ฆฌ ์์คํ
์ ํ ๊ฐ์ด๋
์ด์ ์ง์ฐ (< 10ms)
โ ์ธ๋ฉ๋ชจ๋ฆฌ ๋ฐ์ดํฐ๋ฒ ์ด์ค (Redis, Hazelcast)
โ ๋ฉ์์ง ํ (RabbitMQ, ZeroMQ)
โ ์ ์ฉ ํ๋์จ์ด ์๋ฃจ์
์ ์ง์ฐ (10ms ~ 1์ด)
โ Apache Kafka + Kafka Streams
โ Apache Flink
โ ์ด๋ฒคํธ ๊ธฐ๋ฐ ์ํคํ
์ฒ
์ค์ค์๊ฐ (1์ด ~ ์๋ถ)
โ Spark Streaming
โ Storm
โ ๋ง์ดํฌ๋ก๋ฐฐ์น ์ฒ๋ฆฌ
๋ฐฐ์น ์ฒ๋ฆฌ (์๋ถ ์ด์)
โ Hadoop MapReduce
โ Spark Batch
โ ์ ํต์ ๋น
๋ฐ์ดํฐ ์ฒ๋ฆฌ
๋ํ ์คํธ๋ฆฌ๋ฐ ๋ฐ์ดํฐ๋ผ๋ ์ํ ๊ด๋ฆฌ(Stateful Processing)๊ฐ ๋ณต์กํ ๊ฒฝ์ฐ ๋ฌธ์ ๊ฐ ๋ ์ ์์ด. ์๋ฅผ ๋ค์ด ์ฌ์ฉ์ ์ธ์
์ ์ถ์ ํ๊ฑฐ๋, ๋ณต์กํ ์ด๋ฒคํธ ํจํด์ ํ์งํ๋ ๊ฒฝ์ฐ ๋ง์ด์ผ.
๋น
๋ฐ์ดํฐ ์คํธ๋ฆฌ๋ฐ ์์คํ
์ ๋ถ์ฐ ํ๊ฒฝ์์ ์ํ๋ฅผ ๊ด๋ฆฌํ๋ ๊ฒ ๋ณต์กํ๊ณ ์ค๋ฒํค๋๊ฐ ํฌ๊ฑฐ๋ . ์ํ๊ฐ ๊ฐ๋จํ๊ฑฐ๋ ์๋ค๋ฉด ๊ด์ฐฎ์ง๋ง, ๋ณต์กํ ์ํ ๊ด๋ฆฌ๊ฐ ํ์ํ๋ค๋ฉด ์ ํต์ ์ธ ์ ํ๋ฆฌ์ผ์ด์
์๋ฒ๊ฐ ๋ ํจ์จ์ ์ผ ์ ์์ด! ๐
๐ 6. ๋์ ๋ณด์๊ณผ ๊ท์ ์ค์๊ฐ ํ์ํ ๋ฐ์ดํฐ
์ฌ์ฏ ๋ฒ์งธ๋ ์๊ฒฉํ ๋ณด์ ์๊ตฌ์ฌํญ๊ณผ ๊ท์ ์ค์๊ฐ ํ์ํ ๋ฐ์ดํฐ์ผ.
์๋ฃ ๋ฐ์ดํฐ(HIPAA), ๊ธ์ต ๋ฐ์ดํฐ(PCI-DSS), ๊ฐ์ธ์ ๋ณด(GDPR) ๊ฐ์ ๋ฏผ๊ฐํ ๋ฐ์ดํฐ๋ ํน๋ณํ ๋ณด์ ์กฐ์น๊ฐ ํ์ํด. ๋น
๋ฐ์ดํฐ ์์คํ
๋ ๋ณด์ ๊ธฐ๋ฅ์ด ์์ง๋ง, ๋ถ์ฐ ํ๊ฒฝ์ ํน์ฑ์ ๋ณด์ ๊ด๋ฆฌ๊ฐ ๋ ๋ณต์กํด์ ธ. ๐
์๊ฐํด๋ด. ๋ฐ์ดํฐ๊ฐ ์์ญ, ์๋ฐฑ ๋์ ์๋ฒ์ ๋ถ์ฐ๋์ด ์๋ค๋ฉด:
โข ๊ฐ ๋
ธ๋๋ง๋ค ์ํธํ ์ค์ ํ์
โข ๋คํธ์ํฌ ํต์ ๊ตฌ๊ฐ๋ง๋ค ๋ณด์ ์ ์ฉ
โข ์ ๊ทผ ์ ์ด ์ ์ฑ
์ด ๋ณต์กํด์ง
โข ๊ฐ์ฌ ๋ก๊ทธ ๊ด๋ฆฌ๊ฐ ์ด๋ ค์์ง
โข ๋ฐ์ดํฐ ์ญ์ ์์ฒญ(Right to be Forgotten) ์ฒ๋ฆฌ๊ฐ ๋ณต์กํจ
ํนํ GDPR ๊ฐ์ ๊ท์ ์์๋ ๊ฐ์ธ์ด ์์ ์ ๋ฐ์ดํฐ ์ญ์ ๋ฅผ ์์ฒญํ๋ฉด ์์ ํ ์ญ์ ํด์ผ ํด. ํ์ง๋ง ๋น
๋ฐ์ดํฐ ์์คํ
์์๋ ๋ฐ์ดํฐ๊ฐ ์ฌ๋ฌ ๋
ธ๋์ ๋ณต์ ๋์ด ์๊ณ , ๋ฐฑ์
๋ ์ฌ๋ฌ ๊ณณ์ ์์ด์ ์์ ํ ์ญ์ ๊ฐ ๋งค์ฐ ์ด๋ ค์. ๐ฐ
๐ก๏ธ ๋ณด์ ๊ด์ ์์์ ์์คํ
๋น๊ต
์ ํต์ ์ค์์ง์คํ ์์คํ
โ
๋จ์ผ ์ง์ ์์ ๋ณด์ ๊ด๋ฆฌ
โ
์ ๊ทผ ์ ์ด๊ฐ ๋ช
ํํ๊ณ ๊ฐ๋จ
โ
๊ฐ์ฌ ๋ก๊ทธ ์ถ์ ์ด ์ฉ์ด
โ
๋ฐ์ดํฐ ์ญ์ ๊ฐ ํ์คํจ
โ
๊ท์ ์ค์ ์ฆ๋ช
์ด ์ฌ์
๋ถ์ฐ ๋น
๋ฐ์ดํฐ ์์คํ
โ ์ฌ๋ฌ ๋
ธ๋์ ๋ณด์ ์ ์ฑ
์ ์ฉ ํ์
โ ๋คํธ์ํฌ ๋ณด์ ๋ณต์ก๋ ์ฆ๊ฐ
โ ๋ฐ์ดํฐ ์ถ์ ์ด ์ด๋ ค์
โ ์์ ํ ์ญ์ ๋ณด์ฅ์ด ์ด๋ ค์
โ ๊ท์ ์ค์ ์
์ฆ์ด ๋ณต์กํจ
๋ฌผ๋ก ๋น
๋ฐ์ดํฐ ์์คํ
๋ ๋ณด์ ๊ธฐ๋ฅ์ด ๋ฐ์ ํ๊ณ ์์ง๋ง, ๋ฏผ๊ฐํ ๋ฐ์ดํฐ๋ผ๋ฉด ์ ์คํ๊ฒ ๊ณ ๋ คํด์ผ ํด!
๋ํ ๋ฐ์ดํฐ ์ฃผ๊ถ(Data Sovereignty) ๋ฌธ์ ๋ ์์ด. ์ด๋ค ๊ตญ๊ฐ๋ค์ ์๊ตญ๋ฏผ์ ๋ฐ์ดํฐ๊ฐ ๊ตญ๊ฒฝ์ ๋์ด์๋ ์ ๋๋ค๊ณ ๊ท์ ํ๊ฑฐ๋ . ๋ถ์ฐ ์์คํ
์์๋ ๋ฐ์ดํฐ๊ฐ ์ด๋ ๋
ธ๋์ ์ ์ฅ๋๋์ง ์ ํํ ์ ์ดํ๊ธฐ ์ด๋ ค์ธ ์ ์์ด.
์ฌ๋ฅ๋ท ๊ฐ์ ํ๋ซํผ์์๋ ์ฌ์ฉ์์ ๊ฐ์ธ์ ๋ณด๋ ๊ฒฐ์ ์ ๋ณด๋ ์๊ฒฉํ๊ฒ ๊ด๋ฆฌํด์ผ ํ์์? ์ด๋ฐ ๋ฐ์ดํฐ๋ ๋น
๋ฐ์ดํฐ ์์คํ
๋ณด๋ค๋ ๋ณด์์ด ๊ฐํ๋ ์ ํต์ ์ธ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ ์ฅํ๋ ๊ฒ ๋ ์์ ํ๊ณ ๊ด๋ฆฌํ๊ธฐ ์ฌ์! ๐
๐ฐ 7. ๋น์ฉ ๋๋น ํจ์จ์ด ์ค์ํ ๊ฒฝ์ฐ
์ผ๊ณฑ ๋ฒ์งธ๋ ํ์ค์ ์ธ ๋ฌธ์ , ๋ฐ๋ก ๋น์ฉ์ด์ผ! ๐ธ
๋น
๋ฐ์ดํฐ ์ธํ๋ผ๋ฅผ ๊ตฌ์ถํ๊ณ ์ด์ํ๋ ๊ฑด ์ ๋ง ๋น์ธ. ๋จ์ํ ์๋ฒ ๋น์ฉ๋ง์ด ์๋๋ผ, ์ ์ฒด์ ์ธ TCO(Total Cost of Ownership)๋ฅผ ๊ณ ๋ คํด์ผ ํด:
1. ์ธํ๋ผ ๋น์ฉ
โข ์ฌ๋ฌ ๋์ ์๋ฒ (์ต์ 3๋ ์ด์, ๋ณดํต ์์ญ ๋)
โข ๊ณ ์ฑ๋ฅ ๋คํธ์ํฌ ์ฅ๋น
โข ๋์ฉ๋ ์คํ ๋ฆฌ์ง
โข ์ ๋ ฅ ๋ฐ ๋๊ฐ ์์คํ
2. ์ํํธ์จ์ด ๋ผ์ด์ ์ค
โข ์์ฉ Hadoop ๋ฐฐํฌํ (Cloudera, Hortonworks ๋ฑ)
โข ๊ด๋ฆฌ ๋๊ตฌ ๋ฐ ๋ชจ๋ํฐ๋ง ์๋ฃจ์
โข ๋ณด์ ๋ฐ ๊ฑฐ๋ฒ๋์ค ๋๊ตฌ
3. ์ธ๋ ฅ ๋น์ฉ
โข ๋น
๋ฐ์ดํฐ ์์ง๋์ด (๊ณ ๊ธ ์ธ๋ ฅ, ์ฐ๋ด ๋์)
โข ์์คํ
๊ด๋ฆฌ์
โข ๋ฐ์ดํฐ ๊ณผํ์
โข DevOps ์์ง๋์ด
4. ์ด์ ๋น์ฉ
โข ์ง์์ ์ธ ์ ์ง๋ณด์
โข ์
๊ทธ๋ ์ด๋ ๋ฐ ํจ์น
โข ์ฅ์ ๋์
โข ๊ต์ก ๋ฐ ํธ๋ ์ด๋
๐ก ๋น์ฉ ๋น๊ต ์์
์๋๋ฆฌ์ค: 500GB ๋ฐ์ดํฐ ์ฒ๋ฆฌ
์ ํต์ ๋ฐฉ์
โข ๊ณ ์ฑ๋ฅ ์๋ฒ 1๋: ์ $200
โข PostgreSQL (๋ฌด๋ฃ)
โข ๊ฐ๋ฐ์ 1๋ช
(๊ธฐ์กด ์ธ๋ ฅ ํ์ฉ)
โข ์ด ๋น์ฉ: ์ $200 + ์ธ๊ฑด๋น
๋น
๋ฐ์ดํฐ ๋ฐฉ์
โข Hadoop ํด๋ฌ์คํฐ 5๋: ์ $1,000
โข ์์ฉ ๋ฐฐํฌํ ๋ผ์ด์ ์ค: ์ $500
โข ๋น
๋ฐ์ดํฐ ์์ง๋์ด 1๋ช
(์ ๊ท ์ฑ์ฉ): ์ $8,000
โข ๊ด๋ฆฌ ๋๊ตฌ: ์ $300
โข ์ด ๋น์ฉ: ์ $9,800
์ฝ 50๋ฐฐ์ ๋น์ฉ ์ฐจ์ด! ๋ฐ์ดํฐ๊ฐ ์ ๋ง ํฌ์ง ์๋ค๋ฉด ๋น
๋ฐ์ดํฐ ์์คํ
์ ๊ณผ๋ํ ํฌ์์ผ.
ํด๋ผ์ฐ๋๋ฅผ ์ฌ์ฉํ๋ค๊ณ ํด๋ ๋ง์ฐฌ๊ฐ์ง์ผ. AWS EMR, Azure HDInsight, Google Dataproc ๊ฐ์ ๊ด๋ฆฌํ ์๋น์ค๋ฅผ ์ฐ๋ฉด ์ธํ๋ผ ๊ด๋ฆฌ๋ ์ฌ์์ง์ง๋ง, ๋น์ฉ์ ์ฌ์ ํ ๋์.
ํนํ ํด๋ฌ์คํฐ๋ฅผ 24/7 ๊ฐ๋ํด์ผ ํ๋ค๋ฉด ๋น์ฉ์ด ๊ธฐํ๊ธ์์ ์ผ๋ก ์ฆ๊ฐํด. ๋ฐ๋ฉด ์ ํต์ ์ธ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ ๋จ์ผ ์ธ์คํด์ค๋ก๋ ์ถฉ๋ถํ๊ณ , ํ์์ ๋ฐ๋ผ ์ค์ผ์ผ์
ํ๋ฉด ๋๋๊น ๋น์ฉ ๊ด๋ฆฌ๊ฐ ํจ์ฌ ์ฝ์ง! ๐
์คํํธ์
์ด๋ ์ค์๊ธฐ์
์ด๋ผ๋ฉด ๋์ฑ ์ ์คํด์ผ ํด. ์ ํ๋ ์์ฐ์ผ๋ก ์ต๋์ ํจ๊ณผ๋ฅผ ๋ด์ผ ํ๋๋ฐ, ๋ถํ์ํ ๋น
๋ฐ์ดํฐ ์ธํ๋ผ์ ๋์ ์์๋ถ๋ ๊ฑด ํ๋ช
ํ์ง ๋ชปํ ์ ํ์ด์ผ. ๐ก
๐ 8. ์์ฃผ ๋ณ๊ฒฝ๋๋ ๋ฐ์ดํฐ์ ์ ๋ฐ์ดํธ
์ฌ๋ ๋ฒ์งธ๋ ๋น๋ฒํ ์
๋ฐ์ดํธ๊ฐ ํ์ํ ๋ฐ์ดํฐ์ผ.
๋น
๋ฐ์ดํฐ ์์คํ
, ํนํ Hadoop HDFS๋ ๊ธฐ๋ณธ์ ์ผ๋ก "Write Once, Read Many" ํจ๋ฌ๋ค์์ผ๋ก ์ค๊ณ๋์์ด. ์ฆ, ํ ๋ฒ ์ฐ๊ณ ์ฌ๋ฌ ๋ฒ ์ฝ๋ ์ฉ๋์ ์ต์ ํ๋์ด ์์ง.
HDFS์์๋ ํ์ผ์ ์์ ํ๋ ๊ฒ ๋งค์ฐ ๋นํจ์จ์ ์ด์ผ. ์ค์ ๋ก๋ ๊ธฐ์กด ํ์ผ์ ์ญ์ ํ๊ณ ์๋ก ์ฐ๋ ๋ฐฉ์์ผ๋ก ๋์ํ๊ฑฐ๋ . ์์ ๋ณ๊ฒฝ ํ๋ ๋๋ฌธ์ ์ ์ฒด ํ์ผ์ ๋ค์ ์จ์ผ ํ๋ค๋, ์์ ๋นํจ์จ์ ์ด์ง? ๐
์๋ฅผ ๋ค์ด๋ณผ๊ฒ:
โ ๏ธ ์
๋ฐ์ดํธ๊ฐ ๋น๋ฒํ ๋ฐ์ดํฐ์ ์์
โ ๋น
๋ฐ์ดํฐ ์์คํ
์ ๋ถ์ ํฉ
โข ์ฌ๊ณ ๊ด๋ฆฌ ์์คํ
: ์ฃผ๋ฌธ์ด ๋ค์ด์ฌ ๋๋ง๋ค ์ฌ๊ณ ์๋ ์
๋ฐ์ดํธ
โข ์ฌ์ฉ์ ํ๋กํ: ์ฌ์ฉ์๊ฐ ์ ๋ณด๋ฅผ ์์ ํ ๋๋ง๋ค ๋ณ๊ฒฝ
โข ๊ฒ์ํ ๋๊ธ: ๋๊ธ ์ถ๊ฐ, ์์ , ์ญ์ ๊ฐ ๋น๋ฒํจ
โข ์ค์๊ฐ ๋์๋ณด๋: ์ด ๋จ์๋ก ๋ฉํธ๋ฆญ์ด ์
๋ฐ์ดํธ๋จ
โข ์จ๋ผ์ธ ๊ฒ์ ์ํ: ํ๋ ์ด์ด ์์น, ์ ์ ๋ฑ์ด ๊ณ์ ๋ณ๊ฒฝ๋จ
โ
๋น
๋ฐ์ดํฐ ์์คํ
์ ์ ํฉ
โข ๋ก๊ทธ ๋ฐ์ดํฐ: ์ถ๊ฐ๋ง ๋๊ณ ์์ ๋์ง ์์
โข ์ผ์ ๋ฐ์ดํฐ: ์๊ณ์ด๋ก ๊ณ์ ์์ด๊ธฐ๋ง ํจ
โข ์์นด์ด๋ธ ๋ฐ์ดํฐ: ๊ณผ๊ฑฐ ๋ฐ์ดํฐ๋ก ๋ณ๊ฒฝ ๋ถํ์
โข ๋ถ์์ฉ ์ค๋
์ท: ํน์ ์์ ์ ๋ฐ์ดํฐ ๋ณต์ฌ๋ณธ
๋ฌผ๋ก ์ต๊ทผ์๋ Apache Hudi, Delta Lake, Apache Iceberg ๊ฐ์ ๊ธฐ์ ๋ค์ด ๋์์ ๋น
๋ฐ์ดํฐ ํ๊ฒฝ์์๋ ์
๋ฐ์ดํธ๋ฅผ ์ง์ํ๊ธด ํด. ํ์ง๋ง ์ฌ์ ํ ์ ํต์ ์ธ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์
๋ฐ์ดํธ ์ฑ๋ฅ์๋ ๋ฏธ์น์ง ๋ชปํด.
ํนํ ํธ๋์ญ์
์ฒ๋ฆฌ(OLTP) ์ํฌ๋ก๋์์๋ ์ด๋น ์์ฒ, ์๋ง ๊ฑด์ ์
๋ฐ์ดํธ๊ฐ ๋ฐ์ํ ์ ์์ด. ์ด๋ฐ ๊ฒฝ์ฐ MySQL, PostgreSQL, Oracle ๊ฐ์ RDBMS๊ฐ ํจ์ฌ ํจ์จ์ ์ด์ผ.
๋ํ DELETE ์ฐ์ฐ๋ ๋ฌธ์ ์ผ. GDPR ๊ฐ์ ๊ท์ ๋ก ์ฌ์ฉ์๊ฐ ๋ฐ์ดํฐ ์ญ์ ๋ฅผ ์์ฒญํ๋ฉด ์ฆ์ ์ญ์ ํด์ผ ํ๋๋ฐ, ๋น
๋ฐ์ดํฐ ์์คํ
์์๋ ์ด๊ฒ ์ฝ์ง ์์. ๋ฐ์ดํฐ๊ฐ ์ฌ๋ฌ ํ์ผ์ ๋ถ์ฐ๋์ด ์๊ณ , ์์ถ๋์ด ์๊ณ , ๋ณต์ ๋์ด ์์ด์ ์์ ํ ์ญ์ ๊ฐ ๋ณต์กํ๊ฑฐ๋ . ๐๏ธ
๐ฏ 9. ํ๋กํ ํ์ดํ๊ณผ ๋น ๋ฅธ ๊ฐ๋ฐ์ด ํ์ํ ๊ฒฝ์ฐ
์ํ ๋ฒ์งธ๋ ๋น ๋ฅธ ๊ฐ๋ฐ๊ณผ ํ๋กํ ํ์ดํ์ด ์ค์ํ ๊ฒฝ์ฐ์ผ.
์คํํธ์
์ด๋ ์๋ก์ด ํ๋ก์ ํธ๋ฅผ ์์ํ ๋๋ ๋น ๋ฅด๊ฒ MVP(Minimum Viable Product)๋ฅผ ๋ง๋ค์ด์ ์์ฅ ๋ฐ์์ ํ์ธํด์ผ ํ์์? ์ด๋ด ๋ ๋น
๋ฐ์ดํฐ ์ธํ๋ผ๋ฅผ ๊ตฌ์ถํ๋ ๊ฑด ์ ๋ง ๋นํจ์จ์ ์ด์ผ. โฐ
๋น
๋ฐ์ดํฐ ์์คํ
์ ์ ๋๋ก ๊ตฌ์ถํ๋ ค๋ฉด:
1. ์ธํ๋ผ ์ค์ (1-2์ฃผ)
โข ํด๋ฌ์คํฐ ๊ตฌ์ฑ
โข ๋คํธ์ํฌ ์ค์
โข ๋ณด์ ๊ตฌ์ฑ
โข ๋ชจ๋ํฐ๋ง ์ค์
2. ๋ฐ์ดํฐ ํ์ดํ๋ผ์ธ ๊ตฌ์ถ (2-4์ฃผ)
โข ๋ฐ์ดํฐ ์์ง (Flume, Kafka)
โข ๋ฐ์ดํฐ ์ ์ฅ (HDFS)
โข ๋ฐ์ดํฐ ์ฒ๋ฆฌ (MapReduce, Spark)
โข ๋ฐ์ดํฐ ์กฐํ (Hive, Impala)
3. ๊ฐ๋ฐ ๋ฐ ํ
์คํธ (4-8์ฃผ)
โข ๋ถ์ฐ ์ฒ๋ฆฌ ๋ก์ง ๊ฐ๋ฐ
โข ๋๋ฒ๊น
(๋ถ์ฐ ํ๊ฒฝ์์ ์ด๋ ค์)
โข ์ฑ๋ฅ ํ๋
โข ํตํฉ ํ
์คํธ
์ด ์์ ์๊ฐ: ์ต์ 2-3๊ฐ์! ๐ฑ
๐ก ๋น ๋ฅธ ํ๋กํ ํ์ดํ์ ์ํ ๋์
์ ํต์ ์คํ์ผ๋ก ์์ํ๊ธฐ
โข PostgreSQL + Python/Node.js: 1-2์ฃผ๋ฉด ์ถฉ๋ถ
โข MongoDB + Express: NoSQL์ด ํ์ํ๋ฉด ์ด๊ฒ๋ ๋น ๋ฆ
โข SQLite + Flask: ์ ๋ง ๊ฐ๋จํ ํ๋กํ ํ์
์ ๋ฉฐ์น ์ด๋ฉด OK
์ฅ์
โ
๋น ๋ฅธ ๊ฐ๋ฐ ์๋
โ
๋ฎ์ ํ์ต ๊ณก์
โ
ํ๋ถํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๋๊ตฌ
โ
์ฌ์ด ๋๋ฒ๊น
โ
์ ๋ ดํ ๋น์ฉ
๋์ค์ ํ์ํ๋ฉด ๋ง์ด๊ทธ๋ ์ด์
๋ฐ์ดํฐ๊ฐ ์ ๋ง ์ปค์ง๊ณ , ์ฒ๋ฆฌ๋์ด ์ฆ๊ฐํ๋ฉด ๊ทธ๋ ๋น
๋ฐ์ดํฐ ์์คํ
์ผ๋ก ์ ํํด๋ ๋ฆ์ง ์์!
๋ํ ๋น
๋ฐ์ดํฐ ๊ฐ๋ฐ์ ํ์ต ๊ณก์ ์ด ๊ฐํ๋ผ. Hadoop ์ํ๊ณ๋ ๋ณต์กํ๊ณ , Spark ํ๋ก๊ทธ๋๋ฐ๋ ์ผ๋ฐ ์ ํ๋ฆฌ์ผ์ด์
๊ฐ๋ฐ๊ณผ๋ ๋ค๋ฅธ ํจ๋ฌ๋ค์์ด์ผ.
๋ฐ๋ฉด PostgreSQL + Python ๊ฐ์ ์ ํต์ ์ธ ์คํ์ ๋๋ถ๋ถ์ ๊ฐ๋ฐ์๊ฐ ์ด๋ฏธ ์๊ณ ์์ด. ์๋ก์ด ํ์์ด ํฉ๋ฅํด๋ ๋น ๋ฅด๊ฒ ์ ์ํ ์ ์์ง. ์ด๊ฒ ๋ฐ๋ก ๊ฐ๋ฐ ์์ฐ์ฑ์ ์ฐจ์ด์ผ! ๐
์ฌ๋ฅ๋ท ๊ฐ์ ํ๋ซํผ๋ ์ฒ์๋ถํฐ ๋น
๋ฐ์ดํฐ ์์คํ
์ผ๋ก ์์ํ์๊น? ์๋ง ์๋ ๊ฑฐ์ผ. ์ฒ์์๋ ๊ฐ๋จํ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ก ์์ํด์, ์ฌ์ฉ์๊ฐ ๋์ด๋๊ณ ๋ฐ์ดํฐ๊ฐ ์์ด๋ฉด์ ์ ์ง์ ์ผ๋ก ํ์ฅํ์ ๊ฑฐ์ผ. ์ด๊ฒ ๋ฐ๋ก ํ๋ช
ํ ์ ๊ทผ ๋ฐฉ์์ด์ง! ๐ก
๐ 10. ๋ณต์กํ ์ฟผ๋ฆฌ์ ์ ๋ํน ๋ถ์
๋ง์ง๋ง์ผ๋ก, ๋ณต์กํ ์ ๋ํน ์ฟผ๋ฆฌ๊ฐ ์์ฃผ ํ์ํ ๊ฒฝ์ฐ์ผ.
"์ ๋ํน(Ad-hoc) ์ฟผ๋ฆฌ"๋ ๋ฏธ๋ฆฌ ์ ์๋์ง ์์, ์ฆ์์์ ๋ง๋๋ ์ฟผ๋ฆฌ๋ฅผ ๋งํด. ๋ฐ์ดํฐ ๋ถ์๊ฐ๋ ๋น์ฆ๋์ค ์ฌ์ฉ์๊ฐ "์ด๋ฒ ๋ฌ ์์ธ ์ง์ญ 30๋ ๋จ์ฑ ๊ณ ๊ฐ์ ํ๊ท ๊ตฌ๋งค์ก์?"๊ฐ์ ์ง๋ฌธ์ ๋์ง๋ฉด, ๊ทธ๋๊ทธ๋ ์ฟผ๋ฆฌ๋ฅผ ์์ฑํด์ ๋ต์ ์ฐพ์์ผ ํ์ง.
์ ํต์ ์ธ SQL ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ ์ด๋ฐ ์ฉ๋์ ์ ๋ง ๊ฐ๋ ฅํด:
โข SQL์ ํํ๋ ฅ: ๋ณต์กํ ์กฐ๊ฑด๋ ๊ฐ๊ฒฐํ๊ฒ ํํ
โข ์ตํฐ๋ง์ด์ : ์ฟผ๋ฆฌ๋ฅผ ์๋์ผ๋ก ์ต์ ํ
โข ์ธ๋ฑ์ค: ๋ค์ํ ์กฐ๊ฑด์ ๋ํ ๋น ๋ฅธ ๊ฒ์
โข ๋ทฐ(View): ๋ณต์กํ ์ฟผ๋ฆฌ๋ฅผ ์ฌ์ฌ์ฉ ๊ฐ๋ฅ
โข BI ๋๊ตฌ ์ฐ๋: Tableau, Power BI ๋ฑ๊ณผ ์ฝ๊ฒ ์ฐ๊ฒฐ
๐ ์ฟผ๋ฆฌ ๋ณต์ก๋ ๋น๊ต
SQL (PostgreSQL)
SELECT
region,
age_group,
AVG(purchase_amount) as avg_purchase
FROM customers c
JOIN orders o ON c.id = o.customer_id
WHERE c.gender = 'M'
AND c.age BETWEEN 30 AND 39
AND o.order_date >= '2024-01-01'
GROUP BY region, age_group
HAVING COUNT(*) > 10
ORDER BY avg_purchase DESC;
๊ฐ๊ฒฐํ๊ณ ์ฝ๊ธฐ ์ฝ์ง? ๐Spark (PySpark)
from pyspark.sql import functions as F
result = (customers
.join(orders, customers.id == orders.customer_id)
.filter((customers.gender == 'M') &
(customers.age >= 30) &
(customers.age <= 39) &
(orders.order_date >= '2024-01-01'))
.groupBy('region', 'age_group')
.agg(F.avg('purchase_amount').alias('avg_purchase'),
F.count('*').alias('cnt'))
.filter(F.col('cnt') > 10)
.orderBy(F.desc('avg_purchase')))
๋ ์ฅํฉํ๊ณ ๋ณต์กํด. ๊ฒ๋ค๊ฐ ์คํ ์๊ฐ๋ ๋ ์ค๋ ๊ฑธ๋ ค! โฑ๏ธ
๋น
๋ฐ์ดํฐ ์์คํ
์์๋ Hive๋ Impala ๊ฐ์ SQL-on-Hadoop ๋๊ตฌ๋ค์ด ์๊ธด ํด. ํ์ง๋ง ์ฌ์ ํ ์ ํต์ ์ธ RDBMS์ ์ฟผ๋ฆฌ ์ฑ๋ฅ๊ณผ ์ต์ ํ ๋ฅ๋ ฅ์๋ ๋ฏธ์น์ง ๋ชปํด.
ํนํ ์ธํฐ๋ํฐ๋ธ ๋ถ์์ด ์ค์ํ ๊ฒฝ์ฐ ๋ฌธ์ ๊ฐ ๋ผ. ๋ฐ์ดํฐ ๋ถ์๊ฐ๊ฐ ์ฟผ๋ฆฌ๋ฅผ ์คํํ๊ณ ๊ฒฐ๊ณผ๋ฅผ ๋ณด๊ณ , ๋ค์ ์ฟผ๋ฆฌ๋ฅผ ์์ ํ๊ณ ... ์ด๋ฐ ๋ฐ๋ณต ์์
์ ํ ๋ ๊ฐ ์ฟผ๋ฆฌ๊ฐ ์ ๋ถ์ฉ ๊ฑธ๋ฆฐ๋ค๋ฉด? ์์ฐ์ฑ์ด ํฌ๊ฒ ๋จ์ด์ง์ง. ๐
์ต๊ทผ์๋ Presto, Druid, ClickHouse ๊ฐ์ OLAP(Online Analytical Processing) ์ ์ฉ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ค์ด ๋์์ ๋์ฉ๋ ๋ฐ์ดํฐ์ ๋ํ ๋น ๋ฅธ ๋ถ์ ์ฟผ๋ฆฌ๋ฅผ ์ง์ํด. ์ด๋ฐ ์์คํ
๋ค์ด ์ ํต์ ์ธ ๋น
๋ฐ์ดํฐ ๋ฐฐ์น ์ฒ๋ฆฌ๋ณด๋ค ์ ๋ํน ๋ถ์์๋ ํจ์ฌ ์ ํฉํ ์ ์์ด! ๐ฏ
๐จ ๊ทธ๋ ๋ค๋ฉด ์ธ์ ๋น ๋ฐ์ดํฐ ์์คํ ์ ์จ์ผ ํ ๊น?
์ง๊ธ๊น์ง ๋น
๋ฐ์ดํฐ ์์คํ
์ ์ ํฉํ์ง ์์ ๊ฒฝ์ฐ๋ค์ ์ดํด๋ดค์ด. ๊ทธ๋ผ ๋ฐ๋๋ก ์ธ์ ๋น
๋ฐ์ดํฐ ์์คํ
์ ์จ์ผ ํ ๊น? ๐ค
์ ๋ต์ ๊ฐ๋จํด. ๋ค์ ์กฐ๊ฑด๋ค์ด ์ถฉ์กฑ๋ ๋์ผ:
โ
๋น
๋ฐ์ดํฐ ์์คํ
์ด ์ง์ง ํ์ํ ๊ฒฝ์ฐ
1. ๋ฐ์ดํฐ ๋ณผ๋ฅจ์ด ์ ๋ง ํฌ๋ค
โข ์ ํ
๋ผ๋ฐ์ดํธ ์ด์์ ๋ฐ์ดํฐ
โข ๋จ์ผ ์๋ฒ๋ก๋ ์ ์ฅ/์ฒ๋ฆฌ ๋ถ๊ฐ๋ฅ
โข ๊ณ์ํด์ ๋น ๋ฅด๊ฒ ์ฆ๊ฐํ๋ ๋ฐ์ดํฐ
2. ๋ฐฐ์น ์ฒ๋ฆฌ๊ฐ ์ฃผ๋ ์ํฌ๋ก๋
โข ์ค์๊ฐ ์๋ต์ด ํ์ ์์
โข ๋๋ ๋ฐ์ดํฐ๋ฅผ ์ฃผ๊ธฐ์ ์ผ๋ก ์ฒ๋ฆฌ
โข ๋ณต์กํ ๋ถ์ ๋ฐ ์ง๊ณ ์์
3. ๋ณ๋ ฌ ์ฒ๋ฆฌ๊ฐ ๊ฐ๋ฅํ ์์
โข ๋ฐ์ดํฐ๋ฅผ ๋
๋ฆฝ์ ์ผ๋ก ๋ถํ ๊ฐ๋ฅ
โข ๊ฐ ํํฐ์
์ ๋
๋ฆฝ์ ์ผ๋ก ์ฒ๋ฆฌ
โข ๊ฒฐ๊ณผ๋ฅผ ํฉ์น๋ ๊ฒ์ด ๊ฐ๋จํจ
4. ๋น์ ํ ๋ฐ์ดํฐ๊ฐ ๋ง๋ค
โข ๋ก๊ทธ ํ์ผ, ํ
์คํธ, ์ด๋ฏธ์ง, ๋น๋์ค
โข ์คํค๋ง๊ฐ ์ ๋์ ์ด๊ฑฐ๋ ์์
โข ๋ค์ํ ์์ค์์ ์์ง
5. ๋จธ์ ๋ฌ๋/AI ์ํฌ๋ก๋
โข ๋๊ท๋ชจ ํ์ต ๋ฐ์ดํฐ์
โข ๋ถ์ฐ ํ์ต์ด ํ์ํ ๋ชจ๋ธ
โข ํผ์ฒ ์์ง๋์ด๋ง ํ์ดํ๋ผ์ธ
6. ๋ฐ์ดํฐ ๋ ์ดํฌ ๊ตฌ์ถ
โข ๋ค์ํ ๋ฐ์ดํฐ๋ฅผ ํ ๊ณณ์ ์ ์ฅ
โข ๋์ค์ ํ์ฉํ ๋ฐ์ดํฐ ๋ณด๊ด
โข ์ฅ๊ธฐ ์์นด์ด๋น
๋ํ์ ์ธ ์ฌ๋ก๋ฅผ ๋ค์ด๋ณผ๊ฒ:
๐ฌ Netflix
์์ต ๋ช
์ ์ฌ์ฉ์ ์์ฒญ ๋ก๊ทธ๋ฅผ ๋ถ์ํด์ ์ถ์ฒ ์๊ณ ๋ฆฌ์ฆ์ ๊ฐ์ ํด. ํ๋ฃจ์ ํํ๋ฐ์ดํธ๊ธ ๋ฐ์ดํฐ๊ฐ ์์ฑ๋๋๊น ๋น
๋ฐ์ดํฐ ์์คํ
์ด ํ์์ผ!
๐ Amazon
์ ์ธ๊ณ ์์ต ๊ฐ์ ์ํ, ์์ญ์ต ๊ฑด์ ๊ฑฐ๋ ๋ฐ์ดํฐ๋ฅผ ๋ถ์ํด์ ์ฌ๊ณ ๊ด๋ฆฌ, ๊ฐ๊ฒฉ ์ต์ ํ, ์ถ์ฒ ์์คํ
์ ์ด์ํด. ์ด๊ฒ๋ ๋น
๋ฐ์ดํฐ ์์ด๋ ๋ถ๊ฐ๋ฅํ์ง.
๐ Uber
์ค์๊ฐ ์์น ๋ฐ์ดํฐ, ๊ฒฝ๋ก ๋ฐ์ดํฐ, ์์ ์์ธก ๋ฑ ์์ฒญ๋ ์์ ์ง๋ฆฌ ๋ฐ์ดํฐ๋ฅผ ์ฒ๋ฆฌํด. ๋ถ์ฐ ์ฒ๋ฆฌ๊ฐ ํ์์ ์ด์ผ.
๐ฌ CERN (์ ๋ฝ์
์๋ฌผ๋ฆฌ์ฐ๊ตฌ์)
๋ํ ๊ฐ์
์ ์ถฉ๋๊ธฐ(LHC)์์ ์ด๋น ํํ๋ฐ์ดํธ๊ธ ๋ฐ์ดํฐ๊ฐ ์์ฑ๋ผ. ์ด๋ฐ ๊ณผํ ์ฐ๊ตฌ ๋ฐ์ดํฐ๋ ๋น
๋ฐ์ดํฐ ์์คํ
์์ด๋ ๋ถ์ ์์ฒด๊ฐ ๋ถ๊ฐ๋ฅํด! ๐ฌ
๐ ๏ธ ํ๋ช ํ ๋ฐ์ดํฐ ์ํคํ ์ฒ ์ค๊ณํ๊ธฐ
๊ทธ๋ ๋ค๋ฉด ์ค๋ฌด์์๋ ์ด๋ป๊ฒ ์ ๊ทผํด์ผ ํ ๊น? ํ์ด๋ธ๋ฆฌ๋ ์ํคํ
์ฒ๊ฐ ๋ต์ผ ์ ์์ด! ๐๏ธ
๋ชจ๋ ๋ฐ์ดํฐ๋ฅผ ํ๋์ ์์คํ
์ ๋ฃ์ผ๋ ค๊ณ ํ์ง ๋ง๊ณ , ๋ฐ์ดํฐ์ ํน์ฑ๊ณผ ์ฉ๋์ ๋ฐ๋ผ ์ ์ ํ ์์คํ
์ ์ ํํ๋ ๊ฑฐ์ผ. ์ด๋ฅผ ํด๋ฆฌ๊ธ๋ ํผ์์คํด์ค(Polyglot Persistence)๋ผ๊ณ ํด.
๐ฏ ๋ ์ด์ด๋ณ ์์คํ
์ ํ ์์
์ด์ ๋ ์ด์ด (Operational Layer)
โข ์ฌ์ฉ์ ๋ฐ์ดํฐ, ํธ๋์ญ์
: PostgreSQL, MySQL
โข ์ธ์
๊ด๋ฆฌ, ์บ์ฑ: Redis, Memcached
โข ์ค์๊ฐ ๋ฉ์์ง: Kafka, RabbitMQ
โข ๊ฒ์ ๊ธฐ๋ฅ: Elasticsearch
๋ถ์ ๋ ์ด์ด (Analytical Layer)
โข ๋ฐ์ดํฐ ์จ์ดํ์ฐ์ค: Snowflake, BigQuery, Redshift
โข OLAP ํ๋ธ: ClickHouse, Druid
โข ๋ฐฐ์น ์ฒ๋ฆฌ: Spark, Hadoop
โข ์คํธ๋ฆผ ์ฒ๋ฆฌ: Flink, Kafka Streams
์์นด์ด๋ธ ๋ ์ด์ด (Archive Layer)
โข ์ฅ๊ธฐ ๋ณด๊ด: S3, Azure Blob, HDFS
โข ์ฝ๋ ์คํ ๋ฆฌ์ง: Glacier, Archive Storage
๊ฐ ๋ ์ด์ด๋ ์๋ก ๋ค๋ฅธ ์๊ตฌ์ฌํญ์ ๊ฐ์ง๊ณ ์์ด. ํ๋์ ์์คํ
์ผ๋ก ๋ชจ๋ ๊ฑธ ํด๊ฒฐํ๋ ค๊ณ ํ์ง ๋ง!
์๋ฅผ ๋ค์ด, ์ด์ปค๋จธ์ค ํ๋ซํผ์ ์ค๊ณํ๋ค๋ฉด:
1. ์ค์๊ฐ ํธ๋์ญ์
์ฃผ๋ฌธ, ๊ฒฐ์ , ์ฌ๊ณ ๊ด๋ฆฌ โ PostgreSQL
๋น ๋ฅธ ์๋ต๊ณผ ACID ๋ณด์ฅ์ด ํ์ํ๋๊น!
2. ์ฌ์ฉ์ ์ธ์
๋ก๊ทธ์ธ ์ํ, ์ฅ๋ฐ๊ตฌ๋ โ Redis
์ด๊ณ ์ ์ฝ๊ธฐ/์ฐ๊ธฐ๊ฐ ํ์ํ๋๊น!
3. ์ํ ๊ฒ์
์ ๋ฌธ ๊ฒ์, ํํฐ๋ง โ Elasticsearch
๋ณต์กํ ๊ฒ์ ์ฟผ๋ฆฌ๋ฅผ ๋น ๋ฅด๊ฒ ์ฒ๋ฆฌํด์ผ ํ๋๊น!
4. ๋ก๊ทธ ๋ถ์
ํด๋ฆญ์คํธ๋ฆผ, ์ฌ์ฉ์ ํ๋ โ Kafka + Spark
๋๋์ ๋ก๊ทธ ๋ฐ์ดํฐ๋ฅผ ๋ฐฐ์น๋ก ๋ถ์ํ๋๊น!
5. ์ถ์ฒ ์์คํ
๋จธ์ ๋ฌ๋ ๋ชจ๋ธ ํ์ต โ Spark MLlib
๋๊ท๋ชจ ๋ฐ์ดํฐ๋ก ๋ชจ๋ธ์ ํ์ตํด์ผ ํ๋๊น!
6. ๋น์ฆ๋์ค ๋ฆฌํฌํ
๋งค์ถ ๋ถ์, ๋์๋ณด๋ โ Redshift + Tableau
๋ณต์กํ ์ง๊ณ ์ฟผ๋ฆฌ๋ฅผ ๋น ๋ฅด๊ฒ ์คํํด์ผ ํ๋๊น! ๐
๐ก ์์คํ
์ ํ ์ฒดํฌ๋ฆฌ์คํธ
๋ฐ์ดํฐ ์์คํ
์ ์ ํํ ๋ ๋ค์ ์ง๋ฌธ๋ค์ ์ค์ค๋ก์๊ฒ ๋์ ธ๋ด:
โ
๋ฐ์ดํฐ ๋ณผ๋ฅจ์ด ์ผ๋ง๋ ๋๋? (ํ์ฌ + ์์ ์ฆ๊ฐ์จ)
โ
์๋ต ์๊ฐ ์๊ตฌ์ฌํญ์? (๋ฐ๋ฆฌ์ด? ์ด? ๋ถ?)
โ
์ฝ๊ธฐ์ ์ฐ๊ธฐ ๋น์จ์? (์ฝ๊ธฐ ์์ฃผ? ์ฐ๊ธฐ ์์ฃผ?)
โ
๋ฐ์ดํฐ ์ผ๊ด์ฑ์ด ์ผ๋ง๋ ์ค์ํ๊ฐ?
โ
์ฟผ๋ฆฌ ํจํด์? (๋จ์ ์กฐํ? ๋ณต์กํ ์ง๊ณ?)
โ
์
๋ฐ์ดํธ๊ฐ ์ผ๋ง๋ ๋น๋ฒํ๊ฐ?
โ
์์ฐ๊ณผ ์ธ๋ ฅ์ ์ถฉ๋ถํ๊ฐ?
โ
๊ธฐ์กด ํ์ ๊ธฐ์ ์คํ์?
์ด ์ง๋ฌธ๋ค์ ๋ํ ๋ต์ด ๋ช
ํํด์ง๋ฉด, ์ด๋ค ์์คํ
์ด ์ ํฉํ์ง ์์ฐ์ค๋ฝ๊ฒ ๋ณด์ผ ๊ฑฐ์ผ!
๐ ์ค์ ์กฐ์ธ: ์๊ฒ ์์ํด์ ํฌ๊ฒ ํค์ฐ๊ธฐ
๋ง์ง๋ง์ผ๋ก ์ค์ ์กฐ์ธ์ ํด์ค๊ฒ. "์๊ฒ ์์ํด์ ํ์ํ ๋ ํ์ฅํ๋ผ"๋ ์์น์ ๊ธฐ์ตํด! ๐ฑ
๋ง์ ๊ธฐ์
๋ค์ด "์ฐ๋ฆฌ๋ ๋น
๋ฐ์ดํฐ ํด์ผ ํด!"๋ผ๋ ์ ํ์ ํฉ์ธ๋ ค์ ์ฒ์๋ถํฐ ๊ณผ๋ํ ์ธํ๋ผ๋ฅผ ๊ตฌ์ถํด. ํ์ง๋ง ๋๋ถ๋ถ์ ๊ฒฝ์ฐ ๊ทธ๋ด ํ์๊ฐ ์์ด.
๋จ๊ณ๋ณ ์ ๊ทผ๋ฒ:
๐ ๋ฐ์ดํฐ ์์คํ
์งํ ๋ก๋๋งต
Stage 1: ์์ ๋จ๊ณ (~ 100GB)
โข ๋จ์ผ PostgreSQL/MySQL ์๋ฒ
โข ๊ฐ๋จํ ๋ฐฑ์
์ ๋ต
โข ๊ธฐ๋ณธ์ ์ธ ๋ชจ๋ํฐ๋ง
โข ๋น์ฉ: ์ $100-500
โข ํ: ๋ฐฑ์๋ ๊ฐ๋ฐ์ 1-2๋ช
Stage 2: ์ฑ์ฅ ๋จ๊ณ (100GB ~ 1TB)
โข ์ฝ๊ธฐ ๋ณต์ ๋ณธ ์ถ๊ฐ (Read Replica)
โข ์บ์ฑ ๋ ์ด์ด ๋์
(Redis)
โข ๊ฒ์ ์์ง ์ถ๊ฐ (Elasticsearch)
โข ๋น์ฉ: ์ $1,000-5,000
โข ํ: + DBA ๋๋ DevOps 1๋ช
Stage 3: ํ์ฅ ๋จ๊ณ (1TB ~ 10TB)
โข ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ค๋ฉ ๋๋ ํํฐ์
๋
โข ๋ฐ์ดํฐ ์จ์ดํ์ฐ์ค ๋์
(Redshift, BigQuery)
โข ๋ฉ์์ง ํ ๋์
(Kafka)
โข ๋น์ฉ: ์ $5,000-20,000
โข ํ: + ๋ฐ์ดํฐ ์์ง๋์ด 1-2๋ช
Stage 4: ๋น
๋ฐ์ดํฐ ๋จ๊ณ (10TB+)
โข Hadoop/Spark ํด๋ฌ์คํฐ ๊ตฌ์ถ
โข ๋ฐ์ดํฐ ๋ ์ดํฌ ์ํคํ
์ฒ
โข ์ค์๊ฐ ์คํธ๋ฆฌ๋ฐ ํ์ดํ๋ผ์ธ
โข ๋น์ฉ: ์ $20,000+
โข ํ: ์ ๋ด ๋น
๋ฐ์ดํฐ ํ (5-10๋ช
)
ํต์ฌ: ๊ฐ ๋จ๊ณ๋ฅผ ๊ฑด๋๋ฐ์ง ๋ง๊ณ ์์ฐจ์ ์ผ๋ก!
Instagram์ ์ด๊ธฐ์ PostgreSQL ํ๋๋ก ์์ํ์ด. ์ฌ์ฉ์๊ฐ ์๋ฐฑ๋ง ๋ช
์ด ๋ ๋๊น์ง๋ ๋จ์ผ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ก ์ด์ํ์ง. ํ์ํ ๋๋ง๋ค ์ ์ง์ ์ผ๋ก ํ์ฅํ๊ณ , ๊ทธ๊ฒ ์คํ๋ ค ๋ ํจ์จ์ ์ด์์ด! ๐ธ
Twitter๋ ์ฒ์์๋ MySQL๋ก ์์ํ์ด. ๋์ค์ ์ฌ์ฉ์๊ฐ ํญ๋ฐ์ ์ผ๋ก ์ฆ๊ฐํ๋ฉด์ Hadoop์ ๋์
ํ์ง๋ง, ๊ทธ๊ฑด ์ ๋ง ํ์ํด์ง ์์ ์ด์์ด. ๐ฆ
์ฌ๋ฅ๋ท ๊ฐ์ ํ๋ซํผ๋ ๋ง์ฐฌ๊ฐ์ง์ผ. ์ฒ์๋ถํฐ ๋ณต์กํ ๋น
๋ฐ์ดํฐ ์ธํ๋ผ๋ฅผ ๊ตฌ์ถํ ํ์๋ ์์ด. ์ฌ์ฉ์๊ฐ ๋์ด๋๊ณ , ๋ฐ์ดํฐ๊ฐ ์์ด๊ณ , ๋ถ์ ์๊ตฌ์ฌํญ์ด ๋ณต์กํด์ง๋ฉด ๊ทธ๋ ๋จ๊ณ์ ์ผ๋ก ํ์ฅํ๋ฉด ๋ผ! ๐ช
๐ ๊ฒฐ๋ก : ์ ์ฌ์ ์์ ๊ธฐ์ ์ ํ
์, ์ด์ ์ ๋ฆฌํด๋ณด์! ์ฐ๋ฆฌ๊ฐ ๋ฐฐ์ด ํต์ฌ ๋ด์ฉ์ ๋ญ๊น? ๐ค
๋น
๋ฐ์ดํฐ ์์คํ
์ ๊ฐ๋ ฅํ์ง๋ง ๋ง๋ฅ์ด ์๋๋ค! ๋ชจ๋ ๋ฐ์ดํฐ๊ฐ ๋น
๋ฐ์ดํฐ ์ฒ๋ฆฌ์ ์ ํฉํ ๊ฑด ์๋์ผ. ์คํ๋ ค ๋ง์ ๊ฒฝ์ฐ์ ์ ํต์ ์ธ ๋ฐ์ดํฐ๋ฒ ์ด์ค๊ฐ ๋ ํจ์จ์ ์ด๊ณ , ๋น ๋ฅด๊ณ , ์ ๋ ดํด.
๋ค์๊ณผ ๊ฐ์ ๊ฒฝ์ฐ์๋ ๋น
๋ฐ์ดํฐ ์์คํ
์ ํผํ๋ ๊ฒ ์ข์:
1๏ธโฃ ์ค์๊ฐ ์๋ต์ด ํ์ํ ํธ๋์ญ์
๋ฐ์ดํฐ
2๏ธโฃ ์๋์ ๋ฐ์ดํฐ (์๋ฐฑ GB ์ดํ)
3๏ธโฃ ๋ณต์กํ ๊ด๊ณํ ๋ฐ์ดํฐ์ ACID ํธ๋์ญ์
4๏ธโฃ ๋น์ ํ์ด์ง๋ง ์๋์ธ ๋ฐ์ดํฐ
5๏ธโฃ ์ด์ ์ง์ฐ ์คํธ๋ฆฌ๋ฐ ๋ฐ์ดํฐ
6๏ธโฃ ๋์ ๋ณด์๊ณผ ๊ท์ ์ค์๊ฐ ํ์ํ ๋ฐ์ดํฐ
7๏ธโฃ ๋น์ฉ ํจ์จ์ด ์ค์ํ ๊ฒฝ์ฐ
8๏ธโฃ ๋น๋ฒํ ์
๋ฐ์ดํธ๊ฐ ํ์ํ ๋ฐ์ดํฐ
9๏ธโฃ ๋น ๋ฅธ ํ๋กํ ํ์ดํ์ด ํ์ํ ๊ฒฝ์ฐ
๐ ๋ณต์กํ ์ ๋ํน ์ฟผ๋ฆฌ๊ฐ ๋ง์ ๊ฒฝ์ฐ
๐ฏ ํต์ฌ ์์น
"Right Tool for the Right Job"
์ ์ ํ ์ผ์ ์ ์ ํ ๋๊ตฌ๋ฅผ ์ฌ์ฉํ๋ผ!
โข ๋ฐ์ดํฐ์ ํน์ฑ์ ์ดํดํ๋ผ
โข ๋น์ฆ๋์ค ์๊ตฌ์ฌํญ์ ๋ช
ํํ ํ๋ผ
โข ํ์ฌ์ ๋ฏธ๋์ ๊ท๋ชจ๋ฅผ ์์ธกํ๋ผ
โข ํ์ ์ญ๋์ ๊ณ ๋ คํ๋ผ
โข ๋น์ฉ ๋๋น ํจ๊ณผ๋ฅผ ๊ณ์ฐํ๋ผ
โข ์๊ฒ ์์ํด์ ์ ์ง์ ์ผ๋ก ํ์ฅํ๋ผ
๊ธฐ์ ์ ๋ชฉ์ ์ด ์๋๋ผ ์๋จ์ด๋ค! ๋น
๋ฐ์ดํฐ๊ฐ ๋ฉ์ ธ ๋ณด์ธ๋ค๊ณ ๋ฌด์กฐ๊ฑด ์ฐ๋ ๊ฒ ์๋๋ผ, ์ ๋ง ํ์ํ ๋ ์ฌ์ฉํ๋ ๊ฒ ํ๋ช
ํ ์์ง๋์ด์ ์์ธ์ผ! ๐ง
์ ๋ณด ์ง๋ฅ๊ณตํ์ ๊ณต๋ถํ๋ ์ฌ๋์ผ๋ก์, ๋ค์ํ ๋ฐ์ดํฐ ์์คํ
์ ํน์ฑ๊ณผ ์ฅ๋จ์ ์ ์ดํดํ๋ ๊ฑด ์ ๋ง ์ค์ํด. ๋จ์ํ "๋น
๋ฐ์ดํฐ๋ ๋์ฉ๋ ๋ฐ์ดํฐ๋ฅผ ์ฒ๋ฆฌํ๋ค"๋ ํผ์์ ์ธ ์ดํด๋ฅผ ๋์ด์, ์ธ์ , ์, ์ด๋ป๊ฒ ์ฌ์ฉํด์ผ ํ๋์ง ๊น์ด ์ดํดํด์ผ ํด.
์์ผ๋ก ๋ฐ์ดํฐ ์์คํ
์ ์ ํํ ๋, ์ด ๊ธ์์ ๋ฐฐ์ด ๋ด์ฉ๋ค์ ๋ ์ฌ๋ ค๋ด. "์ด ๋ฐ์ดํฐ๋ ์ ๋ง ๋น
๋ฐ์ดํฐ ์์คํ
์ด ํ์ํ ๊น?" ํ๊ณ ์ค์ค๋ก์๊ฒ ๋ฌผ์ด๋ณด๋ ๊ฑฐ์ผ. ๊ทธ๋ฌ๋ฉด ๋ ํ๋ช
ํ ๊ฒฐ์ ์ ๋ด๋ฆด ์ ์์ ๊ฑฐ์ผ! ๐ก
๊ธฐ์ตํด, ์ต๊ณ ์ ์ํคํ
์ฒ๋ ๊ฐ์ฅ ๋ณต์กํ ๊ฒ ์๋๋ผ ๊ฐ์ฅ ์ ์ ํ ๊ฒ์ด์ผ. ๋๋ก๋ ๋จ์ํจ์ด ์ต๊ณ ์ ํด๊ฒฐ์ฑ
์ด ๋ ์ ์์ด! ๐
๐ ๋ ๊ณต๋ถํ๊ณ ์ถ๋ค๋ฉด?
์ด ์ฃผ์ ์ ๋ํด ๋ ๊น์ด ๊ณต๋ถํ๊ณ ์ถ๋ค๋ฉด, ๋ค์ ๋ฆฌ์์ค๋ค์ ์ถ์ฒํด:
๐ ์ฑ
โข "Designing Data-Intensive Applications" by Martin Kleppmann
โข "Database Internals" by Alex Petrov
โข "The Data Warehouse Toolkit" by Ralph Kimball
๐ ์จ๋ผ์ธ ๊ฐ์
โข Coursera: "Big Data Specialization"
โข Udacity: "Data Engineering Nanodegree"
โข edX: "Data Science and Engineering with Spark"
๐ ์ปค๋ฎค๋ํฐ
โข Stack Overflow์ ๋ฐ์ดํฐ๋ฒ ์ด์ค ํ๊ทธ
โข Reddit์ r/dataengineering
โข ๊ฐ์ข
๊ธฐ์ ๋ธ๋ก๊ทธ (Netflix Tech Blog, Uber Engineering ๋ฑ)
๊ทธ๋ฆฌ๊ณ ์ฌ๋ฅ๋ท์์๋ ๋ฐ์ดํฐ ์์ง๋์ด๋ง์ด๋ ๋น
๋ฐ์ดํฐ ๊ด๋ จ ๋ฉํ ๋ฅผ ์ฐพ์๋ณผ ์ ์์ด! ์ค๋ฌด ๊ฒฝํ์ด ์๋ ์ ๋ฌธ๊ฐ์๊ฒ ์ง์ ๋ฐฐ์ฐ๋ ๊ฒ๋ ์ข์ ๋ฐฉ๋ฒ์ด์ง. ๐ฏ
๐ ์ถํํด! ์ด์ ๋น์ ์ ๋น
๋ฐ์ดํฐ ์์คํ
์ ํ๊ณ๋ฅผ ์ดํดํ๋ ํ๋ช
ํ ์์ง๋์ด์ผ!
๊ธฐ์ ์ ๊ณ์ ๋ฐ์ ํ๊ณ ์์ด. ์ค๋ ๋ฐฐ์ด ๋ด์ฉ๋ ๋ช ๋
ํ์๋ ๋ฌ๋ผ์ง ์ ์์ง.
ํ์ง๋ง "์ ์ฌ์ ์์ ์ ์ ํ ๊ธฐ์ ์ ์ ํํ๋ค"๋ ์์น์ ๋ณํ์ง ์์ ๊ฑฐ์ผ.
๊ณ์ ๋ฐฐ์ฐ๊ณ , ์คํํ๊ณ , ๊ฒฝํ์ ์์๊ฐ๋ฉด์ ๋ ๋์ ์์ง๋์ด๋ก ์ฑ์ฅํ๊ธธ ๋ฐ๋ผ! ๐ชโจ
๊ด๋ จ ํค์๋
๋๊ธ ์์ฑ
์ด ๊ธ์ ๋ํ ์ฌ๋ฌ๋ถ์ ์๊ฐ์ ๋ค๋ ค์ฃผ์ธ์
๋ก๊ทธ์ธ์ด ํ์ํฉ๋๋ค
๋๊ธ์ ์์ฑํ๋ ค๋ฉด ๋จผ์ ๋ก๊ทธ์ธํด์ฃผ์ธ์.
๋๊ธ 0
์ง์์ธ์ ์ฒ - ์ง์ ์ฌ์ฐ๊ถ ๋ณดํธ ๊ณ ์ง
์ง์ ์ฌ์ฐ๊ถ ๋ณดํธ ๊ณ ์ง
- ์ ์๊ถ ๋ฐ ์์ ๊ถ: ๋ณธ ์ปจํ ์ธ ๋ ์ฌ๋ฅ๋ท์ ๋ ์ AI ๊ธฐ์ ๋ก ์์ฑ๋์์ผ๋ฉฐ, ๋ํ๋ฏผ๊ตญ ์ ์๊ถ๋ฒ ๋ฐ ๊ตญ์ ์ ์๊ถ ํ์ฝ์ ์ํด ๋ณดํธ๋ฉ๋๋ค.
- AI ์์ฑ ์ปจํ ์ธ ์ ๋ฒ์ ์ง์: ๋ณธ AI ์์ฑ ์ปจํ ์ธ ๋ ์ฌ๋ฅ๋ท์ ์ง์ ์ฐฝ์๋ฌผ๋ก ์ธ์ ๋๋ฉฐ, ๊ด๋ จ ๋ฒ๊ท์ ๋ฐ๋ผ ์ ์๊ถ ๋ณดํธ๋ฅผ ๋ฐ์ต๋๋ค.
- ์ฌ์ฉ ์ ํ: ์ฌ๋ฅ๋ท์ ๋ช ์์ ์๋ฉด ๋์ ์์ด ๋ณธ ์ปจํ ์ธ ๋ฅผ ๋ณต์ , ์์ , ๋ฐฐํฌ, ๋๋ ์์ ์ ์ผ๋ก ํ์ฉํ๋ ํ์๋ ์๊ฒฉํ ๊ธ์ง๋ฉ๋๋ค.
- ๋ฐ์ดํฐ ์์ง ๊ธ์ง: ๋ณธ ์ปจํ ์ธ ์ ๋ํ ๋ฌด๋จ ์คํฌ๋ํ, ํฌ๋กค๋ง, ๋ฐ ์๋ํ๋ ๋ฐ์ดํฐ ์์ง์ ๋ฒ์ ์ ์ฌ์ ๋์์ด ๋ฉ๋๋ค.
- AI ํ์ต ์ ํ: ์ฌ๋ฅ๋ท์ AI ์์ฑ ์ปจํ ์ธ ๋ฅผ ํ AI ๋ชจ๋ธ ํ์ต์ ๋ฌด๋จ ์ฌ์ฉํ๋ ํ์๋ ๊ธ์ง๋๋ฉฐ, ์ด๋ ์ง์ ์ฌ์ฐ๊ถ ์นจํด๋ก ๊ฐ์ฃผ๋ฉ๋๋ค.
์์ง ๋๊ธ์ด ์์ต๋๋ค.