CS ์ ๋ฆฌ
๋น ๋ฐ์ดํฐ
๋น ๋ฐ์ดํฐ
๊ธฐ์กด DB ๊ด๋ฆฌ๋๊ตฌ์ ์์ง,์ ์ฅ,๊ด๋ฆฌ,๋ถ์ ์ญ๋์ ๋์ด์๋ ๋ฐ์ดํฐ
ํน์ง - 3V (ํฌ๊ธฐ,๋ค์์ฑ,์๋) , 5V(๊ฐ์น,์ ํ์ฑ)
์ ํ - ๋ฐ์ดํฐ๋ฒ ์ด์ค,CSV,์์
๋ฐ์ ํ - XML,HTML,JSON
๋น์ ํ - ๋์์,์ฌ์ง,์ค๋์ค
๋น ๋ฐ์ดํฐ ์ฒ๋ฆฌ๋จ๊ณ
์์ง > ์ ์ > ์ ์ฌ > ๋ถ์ > ์๊ฐํ
Hadoop ๋ฑ์ฅ ๋ฐฐ๊ฒฝ ๋ฐ ํ์์ฑ
์น ๋ก๊ทธ๋ฑ์ ๋น์ ํ ๋ฐ์ดํฐ๋ฅผ RDBMS์ ์ ์ฅํ๊ธฐ์๋ ๋ฐ์ดํฐ์ ํฌ๊ธฐ๊ฐ ๋๋ฌด ํฌ๊ณ ๋น์ฉ๋ ๋ถ๋ด์ด์๋ค. ํ๋ก์ x86 ๋ฆฌ๋ ์ค ์๋ฒ๋ผ๋ฉด ์ด๋ค ์์ค์ ์ฅ๋น๋ ์๊ด ์๊ณ ๋ฐ์ดํฐ ์ฉ๋์ด ์ปค์ง๋ฉด ๋ ธ๋ ํ์ฅ(scale-out)์ด ๊ฐ๋ฅ, ๋ถ์ฐ ์ ์ฅ ๋ฐ ์ฒ๋ฆฌ๋ก ์ฑ๋ฅ๋ ํฅ์
Avro
- Avro๋ JSON ํ์์ผ๋ก ์คํค๋ง๋ฅผ ์ ์ํ๊ณ , ๋ฐ์ดํฐ๋ ๋ฐ์ด๋๋ฆฌ ํํ๋ก ์ง๋ ฌํ๋ฉ๋๋ค.
- ์คํค๋ง๊ฐ ๋ฐ์ดํฐ์ ํจ๊ป ์ ์ฅ๋๊ธฐ ๋๋ฌธ์, ํ์ผ์ ์คํค๋ง๋ฅผ ์ฝ์ผ๋ฉด์ ๋ฐ์ดํฐ๋ฅผ ํด์ํ ์ ์์ต๋๋ค. ์ด๋ ์คํค๋ง ์งํ(๋ณ๊ฒฝ)๋ฅผ ์ฉ์ดํ๊ฒ ํฉ๋๋ค.
- Avro๋ ๋ฐ์ดํฐ ์ง๋ ฌํ์ ์ฃผ๋ก ์ฌ์ฉ๋๋ฉฐ, ํนํ Kafka์ ๊ฐ์ ๋ฉ์์ง ์์คํ ์์ ๋๋ฆฌ ์ฌ์ฉ๋ฉ๋๋ค.
Parquet
- Parquet๋ ์ด ๊ธฐ๋ฐ(columnar)์ ํ์ผ ํฌ๋งท์ผ๋ก, ์ด ๋ฐ์ดํฐ๋ฅผ ํจ๊ป ๊ทธ๋ฃนํํ์ฌ ์ ์ฅํฉ๋๋ค.
- ์ด ๊ธฐ๋ฐ ์ ์ฅ ๋ฐฉ์์ ํน์ ์ด์ ๋ํ ์ง์๊ฐ ๋น๋ฒํ๊ฑฐ๋, ๋์ฉ๋ ๋ฐ์ดํฐ์ ์ง๊ณ๊ฐ ํ์ํ ๋ ๋์ ์ฑ๋ฅ์ ์ ๊ณตํฉ๋๋ค. ๋ํ, ๊ณ ๋์ ๋ฐ์ดํฐ ์์ถ๊ณผ ํจ์จ์ ์ธ ์ธ์ฝ๋ฉ์ ์ง์ํฉ๋๋ค.
- ๋ถ์ ์ฟผ๋ฆฌ์ ์ต์ ํ๋์ด ์์ผ๋ฉฐ, Apache Spark, Apache Impala์ ๊ฐ์ ์ฌ๋ฌ ๋ฐ์ดํฐ ์ฒ๋ฆฌ ํ๋ซํผ๊ณผ์ ํธํ์ฑ์ด ๋ฐ์ด๋ฉ๋๋ค.
ORC(Optimized Row Columnar)
- ORC๋ Parquet์ ๋ง์ฐฌ๊ฐ์ง๋ก ์ด ๊ธฐ๋ฐ์ ํ์ผ ํฌ๋งท์ ๋๋ค.
- ORC๋ ํจ์จ์ ์ธ ์์ถ๊ณผ ์ธ์ฝ๋ฉ์ ์ ๊ณตํ๋ฉฐ, ํนํ Hive์์ ์ฌ์ฉ๋ ๋ ์ฑ๋ฅ ์ต์ ํ๊ฐ ์ ๋์ด ์์ต๋๋ค. ์คํธ๋ผ์ดํ์ ์ธ๋ฑ์ค๋ฅผ ์ฌ์ฉํ์ฌ ๋๊ท๋ชจ ๋ฐ์ดํฐ ์งํฉ์ ๋ํ ๋น ๋ฅธ ์ฝ๊ธฐ, ์ฐ๊ธฐ, ์ฒ๋ฆฌ๋ฅผ ์ง์ํฉ๋๋ค.
HDFS ํ์ผ ์ฝ๊ธฐ
- ํด๋ผ์ด์ธํธ๊ฐ DistributedFileSystem ๊ฐ์ฒด์ open() ๋ฉ์๋ ํธ์ถ๋ก HDFS ํ์ผ ์ฝ๊ธฐ ์์ฒญ
- DistributedFileSystem์ RPC๋ก ๋ค์๋ ธ๋์ ์ฐ๊ฒฐํ๊ณ open ๋์์ด ๋๋ ํ์ผ์ ๋ฉํ๋ฐ์ดํฐ๋ฅผ ์กฐํ
- ๋ค์๋ ธ๋์ ํ์ผ์ด ๋ณด๊ด๋ ๋ธ๋ก ์์น ์์ฒญ
- ๋ค์๋ ธ๋๋ ๋ธ๋ก์ ๊ฐ์ง๊ณ ์๋ ๋ฐ์ดํฐ๋ ธ๋๋ค์ ์ฃผ์ ๋ฆฌํด
- ๋ฐ์ดํฐ๋
ธ๋ ์ฃผ์ ์ ๋ณด๋ก read() ๋ฉ์๋๋ฅผ ํธ์ถํ๊ณ ๋์ ํ์ผ์ ์ฒซ ๋ฒ์งธ ๋ธ๋ก์ด ์๋ ๋ฐ์ดํฐ๋
ธ๋์ ์ฐ๊ฒฐ
- read ๊ณผ์ ์ end of block์ ๋๋ฌํ ๋๊น์ง ๋ฐ๋ณต
- read ๊ณผ์ ์ด ๋๋๋ฉด ํด๋ผ์ด์ธํธ๋ close() ๋ก ๋ชจ๋ ์ฐ๊ฒฐ๊ณผ ์คํธ๋ฆผ์ ๋ซ๊ณ ์ข ๋ฃ
HDFS ํ์ผ ์ฐ๊ธฐ
- ํด๋ผ์ด์ธํธ๊ฐ create() ๋ฉ์๋ ํธ์ถ๋ก HDFS ํ์ผ ์ฐ๊ธฐ ์์ฒญ
- ๋ค์๋
ธ๋๋ ํ์ผ ์์ฑ ์์ฒญ์ ๋ํ verification์ ์งํ
(verification: ํ์ผ ์กด์ฌ ์ฌ๋ถ, ํด๋น ๊ฒฝ๋ก ๊ถํ ๋ฑ์ ํ์ธ) - ๋ค์๋ ธ๋์ ํ์ผ ์ ๋ณด๋ฅผ ์ ์กํ๊ณ , ํ์ผ์ ๋ธ๋ก์ ์จ์ผํ ๋ฐ์ดํฐ๋ ธ๋ ๋ชฉ๋ก ์์ฒญ
- ๋ค์๋
ธ๋๋ ํ์ผ ์์ฑ ์์ฒญ์ ๋ํ verification์ ์งํ
- ๋ค์๋ ธ๋๊ฐ ํ์ผ์ ์ ์ฅํ ๋ชฉ๋ก ๋ฐํ
- ๋ฐ์ดํฐ๋ฅผ write ํ๊ธฐ ์ํ packet์ ๋ง๋ค๊ณ ํด๋น packet์ DataQueue์ ๋ค์ด๊ฐ
- ๋ฐ์ดํฐ ๋
ธ๋์ ํ์ผ ์ฐ๊ธฐ ์์ฒญ
- ๋ฐ์ดํฐ ๋ ธ๋๊ฐ ๋ณต์ ๊ฐ ์งํ
- ํด๋ผ์ด์ธํธ์ write ์์ ์ด ๋๋๋ฉด close() ๋ฉ์๋๊ฐ ํธ์ถ
- ๋ง์ง๋ง ack๊ฐ ๋์ฐฉํ๋ฉด ํด๋ผ์ด์ธํธ๋ ๋ค์๋ ธ๋์ write ์์ ์ด ์๋ฃํ์์ ์๋ฆผ
YARN Application ๋์ ๋ฐฉ์
- ํด๋ผ์ด์ธํธ๊ฐ ๋ฆฌ์์ค ๋งค๋์ ์ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ ์ถ
- ๋ฆฌ์์ค ๋งค๋์ ๋ ๋
ธ๋ ๋งค๋์ ์๊ฒ ์ ํ๋ฆฌ์ผ์ด์
๋ง์คํฐ ์คํ์ ์์ฒญ
- ์ ํ๋ฆฌ์ผ์ด์ ๋ง์คํฐ๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ฆฌ์์ค ์์ฒญ, ํ์คํฌ ๊ด๋ฆฌ, ์ํ ๋ชจ๋ํฐ๋ง ๋ฐ ๋ณด๊ณ ์์ ๋ค์ ์ํ
- ์ ํ๋ฆฌ์ผ์ด์ ๋ง์คํฐ๋ ์์ ์คํ์ ์ํ ์์์ ๋ฆฌ์์ค ๋งค๋์ ์ ์์ฒญ
- ์์์ ํ ๋น ๋ฐ์์ ๊ฐ ๋
ธ๋์ ์ปจํ
์ด๋๋ฅผ ์คํํ๊ณ , ์ค์ ์์
์ ์งํ
- ์ปจํ ์ด๋๋ ์ค์ ์์ ์ด ์คํ๋๋ ๋จ์
- ์ปจํ ์ด๋์์ ์์ ์ด ์ข ๋ฃ๋๋ฉด ๊ฒฐ๊ณผ๋ฅผ ์ ํ๋ฆฌ์ผ์ด์ ๋ง์คํฐ์๊ฒ ์๋ฆฌ๊ณ , ์ ํ๋ฆฌ์ผ์ด์ ๋ง์คํฐ๋ ๋ชจ๋ ์์ ์ด ์ข ๋ฃ๋๋ฉด ๋ฆฌ์์ค๋งค๋์ ์ ์๋ฆฌ๊ณ ์์์ ํด์
๋งต๋ฆฌ๋์ค
๋งต๋ฆฌ๋์ค(MapReduce)๋ ๋๊ท๋ชจ ๋ฐ์ดํฐ ์ธํธ๋ฅผ ์ฒ๋ฆฌํ๊ณ ์์ฑํ๋ ๋ฐ ์ฌ์ฉ๋๋ ํ๋ ์์ํฌ์ ๋๋ค. Google์ ์ํด ์ฒ์ ์๊ฐ๋์์ผ๋ฉฐ, ๋์ค์ Apache Hadoop๊ณผ ๊ฐ์ ์์คํ ์์ ๋๋ฆฌ ์ฑํ๋์์ต๋๋ค. ๋งต๋ฆฌ๋์ค๋ ํฌ๊ฒ ๋ ๋จ๊ณ, ์ฆ '๋งต(Map)' ๋จ๊ณ์ '๋ฆฌ๋์ค(Reduce)' ๋จ๊ณ๋ก ๊ตฌ์ฑ๋ฉ๋๋ค.
- ํ์ฅ์ฑ: ๋งต๋ฆฌ๋์ค๋ ์๋ฐฑ ๋๋ ์์ฒ ๋์ ์๋ฒ์ ๊ฑธ์ณ ์คํ๋ ์ ์์ผ๋ฏ๋ก, ๋งค์ฐ ํฐ ๋ฐ์ดํฐ ์ธํธ๋ฅผ ์ฒ๋ฆฌ
- ๋ด๊ฒฐํจ์ฑ: ๋งต๋ฆฌ๋์ค๋ ํ์คํฌ ์คํจ ์ ์๋์ผ๋ก ์ฌ์๋ํ๊ณ ๋ฐ์ดํฐ๋ฅผ ๋ณต์ ํ์ฌ ๋ด๊ฒฐํจ์ฑ์ ์ ๊ณต
- ๋ณ๋ ฌ ์ฒ๋ฆฌ: ๋ฐ์ดํฐ๊ฐ ์ฌ๋ฌ ๋ ธ๋์ ๋ถ์ฐ๋์ด ์์ผ๋ฏ๋ก, ์์ ์ ๋ณ๋ ฌ๋ก ์ํ
๋ฐ์ดํฐ๋ฒ ์ด์ค
ํธ๋์ญ์ - ๋ฐ์ดํฐ๋ฒ ์ด์ค์์ ํ ๋จ์์ ์์
ACID
๋ฐ์ดํฐ๋ฒ ์ด์ค ํธ๋์ญ์ ์ ๋ฌด๊ฒฐ์ฑ์ ๋ณด์ฅํ๊ธฐ ์ํ 4๊ฐ์ง ์ฃผ์ ์์ฑ
(๋ฌด๊ฒฐ์ฑ์ ๋ฐ์ดํฐ์ ์ ํ์ฑ, ์ผ๊ด์ฑ ๋ฐ ์ ๋ขฐ์ฑ์ ์ ์งํ๋ ๊ฒ)
- ์์์ฑ - ํธ๋์ญ์ ๋ด์ ๋ชจ๋ ์ฐ์ฐ์ด ์๋ฃ๋๊ฑฐ๋, ์๋ฌด ์ฐ์ฐ๋ ์ํ๋์ง ์์์ผ ํจ
- ์ผ๊ด์ฑ - ํธ๋์ญ์ ์์ ์ ๊ณผ ์๋ฃ ํ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ ์ผ๊ด๋ ์ํ๋ฅผ ์ ์ง
- ๊ณ ๋ฆฝ์ฑ - ๋์์ ์คํ๋๋ ์ฌ๋ฌ ํธ๋์ญ์ ์ด ์์ ๋, ๊ฐ ํธ๋์ญ์ ์ ์๋ก ๋ ๋ฆฝ์ ์ผ๋ก ์คํ
- ์๊ตฌ์ฑ - ํธ๋์ญ์ ์ด ์ฑ๊ณต์ ์ผ๋ก ์๋ฃ๋๋ฉด ๊ทธ ๊ฒฐ๊ณผ๋ ์๊ตฌ์ ์ผ๋ก ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋ฐ์
OLTP (Online Transaction Processing)
- OLTP ์์คํ ์ ์ฃผ๋ก ๋ฐ์ดํฐ์ ์ ๋ ฅ, ์์ , ์กฐํ, ์ญ์ ์ ๊ฐ์ ์ผ์์ ์ธ ํธ๋์ญ์ ์ ์ฒ๋ฆฌํ๋ ๋ฐ ์ต์ ํ
- ์ด์๊ณ ๋ฐ์ดํฐ, ์ด์์
OLAP (Online Analytical Processing)
- OLAP ์์คํ ์ ๋๋์ ๋ฐ์ดํฐ๋ฅผ ๋ถ์, ์กฐํํ๋ ๋ฐ ์ต์ ํ
- ๋ถ์๊ณ ๋ฐ์ดํฐ, ๋ถ์๊ฐ
- OLTP ์์คํ ์ ๋น ๋ฅด๊ณ ํจ์จ์ ์ธ ํธ๋์ญ์ ์ฒ๋ฆฌ์ ์ค์ ์ ๋๊ณ , OLAP ์์คํ ์ ๋ฐ์ดํฐ ๋ถ์๊ณผ ์์ฌ๊ฒฐ์ ์ง์์ ์ด์ ์ ๋ง์ถฅ๋๋ค.
๋ฐ์ดํฐ ๋ชจ๋ธ๋ง - ๋ฐ์ดํฐ์ ๊ตฌ์กฐ๋ฅผ ์ ์ํ๊ณ ์กฐ์งํ ํ๋ ๊ณผ์ (ํ์คํํ์ฌ ๊ด๋ฆฌ ์ฉ์ด, ํจ์จ์ฑ, ๋ถ์์ฉ์ด์ฑ)
๋ฐ์ดํฐ ์ ๊ทํ
- ๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ค๊ณ์์ ๋ถํ์ํ ๋ฐ์ดํฐ(์ค๋ณต ๋ฑ)์ ์ต์ํํ๊ณ ์ ํ์ฑ๊ณผ ์ผ๊ด์ฑ์ ํฅ์ ์ํค๋๋ก ๋ฐ์ดํฐ๋ฅผ ๊ตฌ์กฐํํ๋ ๊ณผ์
- null, ๋ฐ์ดํฐ ๋๋ฝ, ๋ฐ์ดํฐ ์ ํ์ฑ, ๋์ ์
๋ฐ์ดํธ ๋ฑ์ ๋ชจ๋ ๊ณ ๋ คํ์ฌ ์ ๊ทํ ์์
ํ์
(ํ ์ด๋ธ ๋จ์๋ฅผ ์ชผ๊ฐ๋ ๊ณผ์ ์ผ๋ก ํด๊ฒฐ)
๋ฐ์ดํฐ ๋น์ ๊ทํ
์ ๊ทํ๋ก ๊ตฌ์กฐํ๋์ด ๋๋์ด์ ธ ์๋ ๋ฐ์ดํฐ๋ฅผ ๋ค์ ํฉ์น๋ ๊ฒ์ ๋งํ๋ค. ๋ฐ์ดํฐ๊ฐ ๋๋์ด์ ธ ์์ผ๋ฉด ๋ณต์ก๋๊ฐ ๋์์ง๋ค. ๋ํ ํ์ฉํ ๋๋ง๋ค Join์ ํด์ผํ๋ ๋ถํธํจ์ด๋ ์ฑ๋ฅ์ ์ํด๊ฐ ๋ฐ์ํ๋ค. ์ ์ฒด์ ์ผ๋ก ๋ฐ์ดํฐ ํ์ฉ์ ์์ด์ ์์ฐ์ฑ์ ์ ํ๊ฐ ๋ํ๋๊ธฐ ๋๋ฌธ์, ํ์ฉ ๋ชฉ์ ์ ๋ฐ๋ผ ๋ฐ์ดํฐ๋ฅผ ๋น์ ๊ทํ ํ๋ ๊ฒฝ์ฐ๊ฐ ํ์ํ๋ค.
๋น ๋ฐ์ดํฐ ๋ฐ์ดํฐ๋ฒ ์ด์ค์์๋ ๋น์ ๊ทํ๋ฅผ ์ด์ฉํด์ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๊ณ ์กฐํํ๋ ๋ฐฉ์์ ์ฌ์ฉํ๋ค.
์ค๋ฉ
- ๋ฐ์ดํฐ๋ฅผ ์ฌ๋ฌ ์๋ฒ์ ๋ถ์ฐํ์ฌ ์ ์ฅํจ์ผ๋ก์จ ์์คํ ์ ๋ถํ๋ฅผ ๋ถ์ฐํ๊ณ , ๋ณ๋ ฌ ์ฒ๋ฆฌ๋ฅผ ํตํด ์ฑ๋ฅ์ ํฅ์ ์ํค๋ฉฐ ํ์ฅ์ฑ์ ์ ๊ณต (scale-out)
- ์ํ์ ํํฐ์ ์ ๋ ์ฝ๋๋ฅผ ๋ ผ๋ฆฌ์ ์ผ๋ก ๋ถํ
- ๊ด๋ฆฌ์ ์ด๋ ค์
- ex) kudu์ ๊ฒฝ์ฐ ํ ์ด๋ธ์ ๋ฐ์ดํฐ๋ฅผ ์ฌ๋ฌ tablet์ผ๋ก ๋ถํ , tablet์ ์ค๋์ ์ ์ฌํ ๊ฐ๋
ํํฐ์ ๋
- (RDBMS ๊ธฐ์ค) ๋ฐ์ดํฐ์ ์ฌ์ด์ฆ๊ฐ ํฐ ํ ์ด๋ธ์ ๋ ๊ฐ ์ด์์ ์์ ํ ์ด๋ธ๋ก ๋๋๋ ๊ฒ
- ์ฟผ๋ฆฌ๊ฐ ์ค์บํ ๋ฐ์ดํฐ์ ๋ฒ์๋ฅผ ์ขํ์ ์๋ต์๊ฐ์ ๋น ๋ฅด๊ฒ ํ๊ธฐ ์ํ ๋ชฉ์ ์ผ๋ก ์ฌ์ฉ
- NoSQL์ ํํฐ์ ๋์ ์๋ฏธ๋ ๊ฐ์ง๋ง, ์ค์ ๊ตฌํ ๋ฐฉ์์ ๋ค๋ฆ
- ex) Hadoop ๊ธฐ๋ฐ์ ๋น ๋ฐ์ดํฐ ๋๊ตฌ๋ค(Hive ๋ฑ)์ ์ํ์ ํํฐ์ ๋์ ์ํด์ ๋ณ๋ ํ ์ด๋ธ ์ง์ ์ด ํ์์๋ค. ํํฐ์ ๋ ์ค์ ์ผ๋ก ์ ์ฅํ๋ ํ์ผ ๊ฒฝ๋ก๋ง ๋ฌ๋ผ์ง๋ค. ์ฆ ํ ์ด๋ธ์ด ๋๋์ด์ง์ง ์๊ณ , ๊ฒฝ๋ก๊ฐ ๋๋์ด์ง
์ํํํฐ์ ๋
- ๋ฐ์ดํฐ๋ฅผ row ๋จ์๋ก ๋๋๋ ๋ฐฉ๋ฒ, ์ปฌ๋ผ์ ์์ ์ข ๋ฅ๋ ๋์ผ
- ํฐ ํ ์ด๋ธ์ ์ฌ๋ฌ๊ฐ์ ์์ ์๋ธ ํ ์ด๋ธ(ํํฐ์ )๋ก ๋ถํ , ๋จ์ผ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์์คํ ๋ด์์ ์ฟผ๋ฆฌ ์ฑ๋ฅ ํฅ์
์์งํํฐ์ ๋
- ์ปฌ๋ผ์ ์๋ฅผ ์ค์ฌ์ ๋ ๊ฐ ์ด์์ ํ ์ด๋ธ๋ก ๋๋๋ ๋ฐฉ๋ฒ
- ๋ชจ๋ ๋ฐ์ดํฐ๊ฐ ํ ํ ์ด๋ธ์ ์ ์ฅ๋์ด ์์ ๋, ์ฌ์ฉ์๊ฐ ๋ช ๊ฐ์ ์ด๋ง ์ฟผ๋ฆฌํ๋ ๊ฒฝ์ฐ, ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ ์ฌ์ ํ ์ ์ฒด ํ์ ๋ก๋ํด์ผ ํจ, ์์ง ํํฐ์ ๋์ ์ฌ์ฉํ๋ฉด ํ์ํ ๋ฐ์ดํฐ๋ง ๋ฉ๋ชจ๋ฆฌ์ ๋ก๋ํ์ฌ ์ฟผ๋ฆฌ ์ฑ๋ฅ์ ํฅ์
JDBC(Java) - ์๋ฐ์์ DB์ ์ฐ๊ฒฐํ ๋ ์ฌ์ฉํ๋ API, DBMS ์ข ๋ฅ์ ๋ฐ๋ผ JDBC ๋๋ผ์ด๋ฒ ์ค์น ํ์
ODBC(Open) - (C ๋๋ C++) ์์ฉํ๋ก๊ทธ๋จ์์ DB์ ์ ๊ทผํ ๋ ์ฌ์ฉ
SQL JOIN ๊ฐ๋
๋คํธ์ํฌ
ํธ๋ํฝ - ์ธํฐ๋ท ์์์ ์ก์์ ๋๋ ๋ชจ๋ ํต์ (๋ฐ์ดํฐ)์ ์
๋คํธ์ํฌ ๋์ญํญ(bandwidth) - ๋์ญํญ์ ์ด๋น ์ฒ๋ฆฌํ ์ ์๋ ๋ฐ์ดํฐ์ ์, ํธ๋ํฝ๊ณผ ๋ค๋ฅด๊ฒ ์๊ฐ ๊ฐ๋ ์ด ์ถ๊ฐ
๋ฐฉํ๋ฒฝ - ์ธ๋ถ ์ฌ์ฉ์๊ฐ ๋ด๋ถ ๋คํธ์ํฌ์ ์ ์ํ์ง ๋ชปํ๋๋ก ๋ง๋ ๋คํธ์ํฌ ๋ฐฉ์ด์๋จ
๋ผ์ฐํฐ(Router) - LAN๊ณผ LAN์ ์ฐ๊ฒฐํ๋ ์ฅ์น๋ก ๋ชฉ์ ์ง๊น์ง์ ์ต์ ๊ฒฝ๋ก๋ฅผ ๊ฒฐ์ ํ์ฌ ๋ผ์ฐํ
(Routing)ํด์ฃผ๋ ์ฅ์น
๋ผ์ฐํ
- ๋คํธ์ํฌ๋ฅผ ํตํด ๊ทผ์์ง์์ ๋ชฉ์ ์ง๊น์ง ๋ฐ์ดํฐ๋ฅผ ์ ๋ฌ๋ ์ ์๋๋ก ํ๋ ๊ธฐ๋ฅ
์น์ฌ์ดํธ์ ์ ์ํ ๋ ์ผ์ด๋๋ ๊ณผ์
- URL ์ ๋ ฅ: ์น์ฌ์ดํธ ์ฃผ์๋ฅผ ๋ธ๋ผ์ฐ์ ์ ์ ๋ ฅํฉ๋๋ค.
- DNS ์กฐํ: ๋๋ฉ์ธ ์ด๋ฆ์ IP ์ฃผ์๋ก ๋ณํํฉ๋๋ค.
- TCP ์ฐ๊ฒฐ: ์๋ฒ์์ ํต์ ์ ์ํ ์ฐ๊ฒฐ์ ์ค์ ํฉ๋๋ค.
- HTTP ์์ฒญ: ์น ํ์ด์ง ๋ฐ์ดํฐ๋ฅผ ์์ฒญํฉ๋๋ค.
- ์๋ฒ ์ฒ๋ฆฌ: ์๋ฒ๊ฐ ์์ฒญ์ ์ฒ๋ฆฌํ๊ณ ์๋ตํฉ๋๋ค.
- ๋ธ๋ผ์ฐ์ ๋ ๋๋ง: ๋ธ๋ผ์ฐ์ ๊ฐ ํ์ด์ง๋ฅผ ํ๋ฉด์ ํ์ํฉ๋๋ค.
RPC (remote procedure call)
์๊ฒฉ ํ๋ก์์ ํธ์ถ์ ๋ณ๋์ ์๊ฒฉ ์ ์ด๋ฅผ ์ํ ์ฝ๋ฉ ์์ด ๋ค๋ฅธ ์ฃผ์ ๊ณต๊ฐ์์ ํจ์๋ ํ๋ก์์ ๋ฅผ ์คํํ ์ ์๊ฒํ๋ ํ๋ก์ธ์ค ๊ฐ ํต์ ๊ธฐ์
SSL (Secure Sockets Layer) : ๋ณด์ ์์ผ ๊ณ์ธต
SSL์ ์น์ฌ์ดํธ์ ๋ธ๋ผ์ฐ์ ์ฌ์ด(๋๋ ๋ ์๋ฒ ์ฌ์ด)์ ์ ์ก๋๋ ๋ฐ์ดํฐ๋ฅผ ์ํธํํ์ฌ ์ธํฐ๋ท ์ฐ๊ฒฐ์ ๋ณดํธํ๊ธฐ ์ํ ํ์ค ๊ธฐ์ ์
๋๋ค. ์ด ๊ธฐ์ ์ ํด์ปค๊ฐ ๊ฐ์ธ ๋ฐ์ดํฐ๋ ๊ธ์ต ๋ฐ์ดํฐ ๋ฑ์ ์ ์ก๋๋ ์ ๋ณด๋ฅผ ๋ณด๊ฑฐ๋ ํ์น๋ ๊ฒ์ ๋ฐฉ์งํฉ๋๋ค.
TLS (Transport Layer Security) : ์ ์ก ๊ณ์ธต ๋ณด์
TLS์ SSL์ ํฅ์๋, ๋์ฑ ์์ ํ ๋ฒ์ ์
๋๋ค. SSL์ด ๋์ฑ ์ผ๋ฐ์ ์ธ ์ฉ์ด์ด๊ธฐ ๋๋ฌธ์ DigiCert๋ ๋ณด์ ์ธ์ฆ์๋ฅผ ์ฌ์ ํ SSL๋ก ์ธ๊ธํ์ง๋ง DigiCert์์ SSL์ ๊ตฌ์
ํ๋ฉด ๊ฐ์ฅ ์ ๋ขฐํ ์ ์๋ ์ต์ TLS ์ธ์ฆ์๋ฅผ ์ป์ ์ ์์ต๋๋ค.
HTTPS (Hyper Text Transfer Protocol Secure) : ํ์ดํผ ํ
์คํธ ์ ์ก ํ๋กํ ์ฝ ๋ณด์
์น ์์์ ๋ฐ์ดํฐ๋ฅผ ์์ ํ๊ฒ ์ ์กํ๊ธฐ ์ํ ํ๋กํ ์ฝ
SMTP (Simple Mail Transfer Protocol) - ์ธํฐ๋ท์ ํตํด ์ด๋ฉ์ผ๋ฉ์์ง๋ฅผ ๋ณด๋ด๊ณ ๋ฐ๋ ๋ฐ ์ฌ์ฉ๋๋ ํต์ ํ๋กํ ์ฝ
OSI(Open Systems Interconnection) ๋ชจ๋ธ์ ๋คํธ์ํฌ ํ๋กํ ์ฝ ๋์์ธ๊ณผ ํต์ ์ ์ดํดํ๊ธฐ ์ํด ISO์์ ๊ฐ๋ฐํ ์ถ์์ ๋ชจ๋ธ์ ๋๋ค. 7๊ณ์ธต์ผ๋ก ๊ตฌ์ฑ๋๋ฉฐ, ๊ฐ ๊ณ์ธต์ ํน์ ๊ธฐ๋ฅ์ ์ํํ๊ณ ์์ ๋๋ ํ์ ๊ณ์ธต๊ณผ ์ธํฐํ์ด์คํฉ๋๋ค.
- ์์ฉ ๊ณ์ธต (Application Layer)
- ์ฌ์ฉ์์ ์ง์ ์ํธ ์์ฉํ๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ํ ๊ฒ์ดํธ์จ์ด ์ญํ ์ ํฉ๋๋ค.
- HTTP, FTP, SMTP์ ๊ฐ์ ํ๋กํ ์ฝ์ด ์ฌ๊ธฐ ํฌํจ๋ฉ๋๋ค.
- ํํ ๊ณ์ธต (Presentation Layer)
- ๋ฐ์ดํฐ์ ํํ ํ์์ ๋ค๋ฃจ๋ฉฐ, ์ธ์ฝ๋ฉ, ๋์ฝ๋ฉ, ์์ถ, ์ํธํ ๋ฑ์ ๊ธฐ๋ฅ์ ์ํํฉ๋๋ค.
- ๋ฐ์ดํฐ ํ์์ ๋คํธ์ํฌ์ ์ ํ๋ฆฌ์ผ์ด์ ํ์ ๊ฐ ๋ณํํฉ๋๋ค.
- ์ธ์
๊ณ์ธต (Session Layer)
- ํต์ ์ธ์ ์ ์ค์ , ๊ด๋ฆฌ, ์ข ๋ฃํ๋ ๊ธฐ๋ฅ์ ๋ด๋นํฉ๋๋ค. ์ธ์ ์ ์์ฑ๊ณผ ๋ณต๊ตฌ, ๋ํ ์ ์ด๊ฐ ์ด๋ฃจ์ด์ง๋๋ค.
- ์ ์ก ๊ณ์ธต (Transport Layer)
- ํต์ ์ธ์ ์ ์์ฑํ๊ณ , ํธ์คํธ ๊ฐ ์ ๋ขฐ์ฑ ์๋ ๋ฐ์ดํฐ ์ ์ก์ ๊ด๋ฆฌํฉ๋๋ค.
- TCP์ UDP ํ๋กํ ์ฝ์ด ์ด ๊ณ์ธต์ ํด๋นํฉ๋๋ค.
- ๋คํธ์ํฌ ๊ณ์ธต (Network Layer)
- ๋ฐ์ดํฐ ํจํท์ ๋ผ์ฐํ ๊ณผ ์ ๋ฌ์ ๋ด๋นํฉ๋๋ค.
- IP ์ฃผ์๊ฐ ์ฌ๊ธฐ์ ํด๋นํ๋ฉฐ, ๋ผ์ฐํฐ๊ฐ ์ด ๊ณ์ธต์ ์์นํฉ๋๋ค.
- ๋ฐ์ดํฐ ๋งํฌ ๊ณ์ธต (Data Link Layer)
- ๋ฌผ๋ฆฌ์ ๋คํธ์ํฌ ๋ด์์ ๋ฐ์ดํฐ์ ์ ๋ขฐ์ฑ ์๋ ์ ์ก์ ๋ด๋นํฉ๋๋ค.
- ํ๋ ์์ MAC ์ฃผ์๋ฅผ ๋ถ์ฌํ๊ณ ์๋ฌ๋ฅผ ๊ฒ์ถํฉ๋๋ค.
- ๋ฌผ๋ฆฌ ๊ณ์ธต (Physical Layer)
- ํ๋์จ์ด ์ ์ก ๊ธฐ์ ์ ๊ธฐ๋ฐ์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ์ ๊ธฐ ์ ํธ๋ก ๋ณํํ์ฌ ์ ์กํฉ๋๋ค.
- ์ผ์ด๋ธ, ์นด๋, ์ ์ ๋ฑ ๋ฌผ๋ฆฌ์ ์ธ ์์๊ฐ ์ฌ๊ธฐ์ ํด๋นํฉ๋๋ค.
๊ฐ ๊ณ์ธต์ ๋ ๋ฆฝ์ ์ผ๋ก ์๋ํ๋ฉฐ, ํด๋น ๊ณ์ธต์์ ๋ฐ์ํ๋ ๋ฌธ์ ๋ ํด๋น ๊ณ์ธต ๋ด์์ ํด๊ฒฐ๋ฉ๋๋ค. ์ด ๊ณ์ธตํ๋ ๋ณต์กํ ๋คํธ์ํน ๋ฌธ์ ๋ฅผ ์ฝ๊ฒ ํด๊ฒฐํ๊ณ , ์๋ก ๋ค๋ฅธ ๋คํธ์ํฌ ์์คํ ๊ฐ์ ์ํธ ์ด์ฉ์ฑ์ ํฅ์์ํค๋ ๋ฐ ๋์์ด ๋ฉ๋๋ค.
TIME_WAIT, CLOSE_WAIT ์ฐจ์ด
- TCP/IP ๋คํธ์ํฌ์์ ์ฐ๊ฒฐ ์ข ๋ฃ ํ๋ก์ธ์ค ์ค์ ๋ฐ์ํ๋ ๋๊ฐ์ง ๋ค๋ฅธ ์์ผ ์ํ
- TIME_WAIT - ๋ก์ปฌ ์ฅ์น๊ฐ ์ฐ๊ฒฐ์ ์ข ๋ฃํ๊ณ ๋คํธ์ํฌ์ ๋ชจ๋ ํจํท์ด ์๋ฉธ๋ ๋๊น์ง ๊ธฐ๋ค๋ฆฌ๋ ๋์ ์ ์ง๋๋ ๋ฐ๋ฉด
- CLOSE_WAIT - ์๊ฒฉ ์ฅ์น๊ฐ ์ฐ๊ฒฐ์ ์ข ๋ฃํ์ง๋ง ๋ก์ปฌ ์ฅ์น๊ฐ ์์ง ์์ผ์ ๋ซ์ง ์์ ์ํ
- TIME_WAIT ์ํ๋ ์์คํ ์์ ์๋์ผ๋ก ํด๊ฒฐ๋์ง๋ง,
- CLOSE_WAIT ์ํ๋ ์ ํ๋ฆฌ์ผ์ด์ ์ด ์ ์ ํ ์กฐ์น๋ฅผ ์ทจํ ๋๊น์ง ๊ณ์ ์ ์ง
์์ผ ํต์ ์ ์ผ๋ฐ์ ์ผ๋ก ๋คํธ์ํฌ ํ๋ก๊ทธ๋๋ฐ์์ ๋๋ฆฌ ์ฌ์ฉ๋๋ ๊ธฐ๋ณธ์ ์ธ ํต์ ๋ฐฉ์์ด๋ฉฐ, TCP/UDP ํ๋กํ ์ฝ์ ๊ธฐ๋ฐ์ผ๋ก ํฉ๋๋ค.
์น ์์ผ ํต์ ์ ์น ์ดํ๋ฆฌ์ผ์ด์
์ ์ํ ํนํ๋ ํ๋กํ ์ฝ๋ก, ์ค์๊ฐ, ์๋ฐฉํฅ ํต์ ์ ์น ํ๊ฒฝ์์ ์ฉ์ดํ๊ฒ ํฉ๋๋ค.
TCP (Transmission Control Protocol)
- ์ฐ๊ฒฐ ์งํฅ์ : ๋ฐ์ดํฐ ์ ์ก ์ ์ ์ฐ๊ฒฐ์ ์ค์ ํฉ๋๋ค.
- ์ ๋ขฐ์ฑ: ๋ฐ์ดํฐ์ ์ ํํ ์ ์ก์ ๋ณด์ฅํฉ๋๋ค. ์์ค๋ ํจํท์ ์ฌ์ ์ก๋ฉ๋๋ค.
- ์์ ๋ณด์ฅ: ๋ฐ์ดํฐ ํจํท์ด ๋ณด๋ด์ง ์์๋๋ก ๋์ฐฉํฉ๋๋ค.
- ์ฌ์ฉ ์: ์น ๋ธ๋ผ์ฐ์ง, ์ด๋ฉ์ผ, ํ์ผ ์ ์ก ๋ฑ.
UDP (User Datagram Protocol)
- ๋น์ฐ๊ฒฐ์ฑ: ์ฐ๊ฒฐ ์ค์ ์์ด ๋ฐ์ดํฐ๋ฅผ ๋ฐ๋ก ์ ์กํฉ๋๋ค.
- ๋ฎ์ ์ง์ฐ์๊ฐ: ์ ์ํ ๋ฐ์ดํฐ ์ ์ก์ ์ํด ์ ๋ขฐ์ฑ๊ณผ ์์ ๋ณด์ฅ์ ํฌ์ํฉ๋๋ค.
- ํจํท ์์ค ๊ฐ๋ฅ: ์์ค๋ ํจํท์ ๋ํ ์ฌ์ ์ก์ด ์์ต๋๋ค.
- ์ฌ์ฉ ์: ์ค์๊ฐ ์คํธ๋ฆฌ๋ฐ, ์จ๋ผ์ธ ๊ฒ์, VoIP(์์ฑ ํต์ ) ๋ฑ.
- TCP๋ ์ ๋ขฐ์ฑ๊ณผ ์์๊ฐ ์ค์ํ ๋ ์ฌ์ฉ๋๊ณ , UDP๋ ๋น ๋ฅธ ์ ์ก์ด ์ค์ํ ๋ ์ฌ์ฉ๋ฉ๋๋ค.
์ผ๋ฐ
ํ๋ก์ธ์ค/์ค๋ ๋
ํ๋ก์ธ์ค - ์ด์์ฒด์ ๋ก๋ถํฐ ์์์ ํ ๋น ๋ฐ์ ์์ ๋จ์
์ค๋ ๋ - ํ๋ก์ธ์ค ๋ด์์ ์์์ ๊ณต์ ํ๋ฉด์ ์คํ๋๋ ์ฌ๋ฌ ์คํ ํ๋ฆ ๋จ์
ํ๋ก์ธ์ค (Process) - ์ด์์ฒด์ ์์ ์คํ์ค์ธ ํ๋ก๊ทธ๋จ์ ์ธ์คํด์ค
๋ฐ๋ชฌ (Daemon)
ํ๋ก์ธ์ค ์ข ๋ฅ์ ํ๋๋ก ๋ฐฑ๊ทธ๋ผ์ด๋์์ ์คํ
๋๋ถ๋ถ์ ๋ฐ๋ชฌ์ ์์คํ ์ด ๋ถํ ํด์ ์ข ๋ฃ๋ ๋๊น์ง ์คํ (๋ฆฌ๋ ์ค์ httpd,ssshd)
์๋น์ค (Service)
๋ฐ๋ชฌ๊ณผ ์ ์ฌํ ๊ฐ๋ ์ด์ง๋ง, ์ผ๋ฐ์ ์ผ๋ก ์๋น์ค๋ผ๋ ์ฉ์ด๋ ์๋์ฐ ์ด์์ฒด์ ์์ ๋ฐฑ๊ทธ๋ผ์ด๋์์ ์คํ๋๋ ํ๋ก์ธ์ค๋ฅผ ์ง์นญ
๊ณ์ ๊ณ (Core Banking) - ๊ณ ๊ฐ์ ๊ฑฐ๋ ๋ฐ์ดํฐ๋ฅผ ์ฒ๋ฆฌํ๋ ํต์ฌ ์์คํ
์ ๋ณด๊ณ - ๊ฑฐ๋์ ๊ธฐ๋ก์ ๊ด๋ฆฌํ๊ณ ํต๊ณ ์ฒ๋ฆฌํ๋ ์์คํ
VM/BM์ผ๋ก ๊ตฌ์ฑ๊ณผ Kubernetes ๊ตฌ์ฑ์ ์ฐจ์ด
- VM์ ์ ์ฐ์ฑ๊ณผ ๊ด๋ฆฌ์ ์ฉ์ด์ฑ์ด ์๊ตฌ๋ ๋ ์ ํธ
- BM์ ์ต์์ ์ฑ๋ฅ์ด ํ์ํ ๊ฒฝ์ฐ ์ ํ
- ์ปจํ ์ด๋ํ๋ ํ๊ฒฝ(Docker,k8s)์ด VM๊ณผ BM์ ์ฅ์ ์ ์กฐํฉํ์ฌ ๊ฐ๋ณ๊ณ ๋น ๋ฅด๋ฉด์๋ ๊ฒฉ๋ฆฌ๋ ํ๊ฒฝ์ ์ ๊ณตํ๋ ๋์์ผ๋ก ๋ถ์
์ฟ ๋ฒ๋คํฐ์ค(Kubernetes)
์ปจํ ์ด๋ํ๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ฐฐํฌ, ํ์ฅ ๋ฐ ๊ด๋ฆฌ๋ฅผ ์๋ํํ๊ธฐ ์ํ ์คํ์์ค ์ค์ผ์คํธ๋ ์ด์ ์์คํ
๐ https://kubernetes.io/docs/concepts/architecture/
- ๋ง์คํฐ
- API ์๋ฒ (kube-apiserver): ์ฟ ๋ฒ๋คํฐ์ค API๋ฅผ ์ ๊ณตํ๋ฉฐ, ํด๋ฌ์คํฐ ๊ด๋ฆฌ์ ์ค์ฌ ์ญํ
- ์ค์ผ์ค๋ฌ (kube-scheduler): ํ๋(Pod)๋ฅผ ๋ ธ๋์ ํ ๋นํ๋ ์ญํ
- ์ปจํธ๋กค๋ฌ ๋งค๋์ (kube-controller-manager): ๋ค์ํ ์ปจํธ๋กค๋ฌ๋ฅผ ์คํ. ์ด๋ค ์ปจํธ๋กค๋ฌ๋ ๋ณต์ ์ปจํธ๋กค๋ฌ, ์๋ํฌ์ธํธ ์ปจํธ๋กค๋ฌ, ๋ค์์คํ์ด์ค ์ปจํธ๋กค๋ฌ ๋ฑ์ ํฌํจ
- etcd: ๋ชจ๋ ํด๋ฌ์คํฐ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๋ ์ผ๊ด์ฑ ์๋ ํค-๊ฐ ์ ์ฅ์
- ๋
ธ๋
- kubelet: ๊ฐ ๋ ธ๋์์ ์คํ๋๋ฉฐ, API ์๋ฒ์ ์ํด ํ๋๊ฐ ํ ๋น๋๋ฉด ํด๋น ํ๋๋ฅผ ์คํํ๊ณ ๊ด๋ฆฌํ๋ ์ญํ
- kube-proxy: ๊ฐ ๋ ธ๋์ ๋คํธ์ํฌ ํ๋ก์๋ก, ์๋น์ค ๊ฐ๋ ์ ๊ตฌํํ๋ ์ญํ
- ํ๋๋ ์ฟ ๋ฒ๋คํฐ์ค์ ๋ฐฐํฌ ๋จ์๋ก์, ํ๋ ์ด์์ ์ปจํ ์ด๋(๋์ปค ์ปจํ ์ด๋ ํฌํจ)๋ฅผ ํฌํจํ๊ณ ์ด๋ค์ ๊ด๋ฆฌ
- ๋์ปค๋ ์ปจํ ์ด๋๋ฅผ ์์ฑํ๊ณ ๊ด๋ฆฌํ๋ ํ๋ซํผ ๋ฐ ๋๊ตฌ๋ก์, ์ฟ ๋ฒ๋คํฐ์ค์์ ์ฌ์ฉ๋๋ ์ปจํ ์ด๋์ ํ ํํ
์ค๋ฒํค๋(overhead)
์ด๋ค ์ฒ๋ฆฌ๋ฅผ ํ๊ธฐ์ํด ๋ค์ด๊ฐ๋ ๊ฐ์ ์ ์ธ ์ฒ๋ฆฌ ์๊ฐ ๋ฐ ๋ฉ๋ชจ๋ฆฌ๋ฑ
xms,xmx ๋์ผ ์ค์
Sun HotSpt JVM ๊ณ์ด์์๋ ์ต์ด ํฌ๊ธฐ์ ์ต๋ ํฌ๊ธฐ๋ฅผ ๋์ผํ๊ฒ ๋ถ์ฌํ ๊ฒ์ ๊ถ์ฅํ๋ค. ํฌ๊ธฐ์ ๋์ ์ธ ๋ณ๊ฒฝ์ ์ํ ์ค๋ฒ ํค๋๋ฅผ ์ต์ํํ๊ธฐ ์ํด์์ด๋ค.
GC ์ค๋ช ๋ฐ ๋์๋ฐฉ์ (URL)
๊ฐ๋น์ง ์ปฌ๋ ์ (Garbage Collection, ์ดํ GC)์ ์๋ฐ์ ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ ๋ฐฉ๋ฒ ์ค์ ํ๋๋ก JVM(์๋ฐ ๊ฐ์ ๋จธ์ )์ Heap ์์ญ์์ ๋์ ์ผ๋ก ํ ๋นํ๋ ๋ฉ๋ชจ๋ฆฌ ์ค ํ์ ์๊ฒ ๋ ๋ฉ๋ชจ๋ฆฌ ๊ฐ์ฒด(garbage)๋ฅผ ๋ชจ์ ์ฃผ๊ธฐ์ ์ผ๋ก ์ ๊ฑฐํ๋ ํ๋ก์ธ์ค๋ฅผ ๋งํ๋ค.
DevOps - ์ํํธ์จ์ด ์์ง๋์ด๋ง์ ๋ํ ๊ฐ๋ฐ๊ณผ ์ด์ ํ ๊ฐ์ ํ๋ ฅ์ ๊ฐ์กฐํ๋ ๊ฐ๋ฐ ๋ฐฉ๋ฒ๋ก
MLOps
MLOps๋ ๋จธ์ ๋ฌ๋ ๋ชจ๋ธ์ ํ๋ก๋์
์ผ๋ก ์ ํํ๋ ํ๋ก์ธ์ค๋ฅผ ๊ฐ์ํํ๊ณ , ๋ค์ด์ด ์ด๋ฅผ ์ ์ง๊ด๋ฆฌํ๊ณ ๋ชจ๋ํฐ๋งํ๋ ๋ฐ ์ฃผ์์ ์ ๋ ๋จธ์ ๋ฌ๋ ์์ง๋์ด๋ง์ ํต์ฌ ๊ธฐ๋ฅ์
๋๋ค
Provisioning - IT ์ธํ๋ผ๋ฅผ ์์ฑํ๊ณ ์ค์ ํ๋ ํ๋ก์ธ์ค
IaaS - ๊ฐ์ํ๋ ์ปดํจํ
๋ฆฌ์์ค๋ฅผ ์ธํฐ๋ท์ ํตํด ์ ๊ณตํ๋ ์๋น์ค (ex: Amazon EC2)
PaaS - ์ ํ๋ฆฌ์ผ์ด์
์ ๊ฐ๋ฐ,์คํ,๊ด๋ฆฌํ ์ ์๋ ํ๋ซํผ์ ์ ๊ณตํ๋ ์๋น์ค (ex: Heroku)
SaaS - ํด๋ผ์ฐ๋๋ฅผ ํตํด ์ฌ์ฉ์์๊ฒ ์ง์ ์ ํ๋ฆฌ์ผ์ด์
์ ์ ๊ณตํ๋ ์๋น์ค (ex: Gmail)
์๋ฒ๋ฆฌ์ค - ์ธํ๋ผ ๊ด๋ฆฌ ์์ด ์ฝ๋๋ฅผ ์๋์ผ๋ก ๋ฐฐํฌ ๋ฐ ์คํํ ์ ์๋ ํด๋ผ์ฐ๋๊ธฐ๋ฐ์ ์๋น์ค ๋ชจ๋ธ
์ค๋ธ์ ํธ ์คํ ๋ฆฌ์ง - ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ฒด ๋จ์๋ก ์ ์ฅ (๊ฐ์ฒด๋ ๋ฐ์ดํฐ,๋ฉํ๋ฐ์ดํฐ,๊ณ ์ ์๋ณ์๋ก ๊ตฌ์ฑ)
๋ธ๋ก ์คํ ๋ฆฌ์ง - ๋ธ๋ก ๋จ์๋ก ๋ฐ์ดํฐ๋ฅผ ์ ์ฅ, ์ด๋ฌํ ๋ธ๋ก๋ค์ด ๊ฒฐํฉํ์ฌ ํ์ผ์์คํ ์ ํ์ฑ
ํ์ผ ์คํ ๋ฆฌ์ง - ํ์ผ๊ณผ ํด๋ ๋จ์๋ก ๋ฐ์ดํฐ๋ฅผ ์ ์ฅ
CI(์ง์ ํตํฉ) - ์ฝ๋ ๋ณ๊ฒฝ ์ฌํญ์ด ์ ๊ธฐ์ ์ผ๋ก ๋น๋ ๋ฐ ํ ์คํธ๋์ด ๋ฆฌํฌ์งํ ๋ฆฌ์ ํตํฉ
CD(์ง์ ์ ๊ณต/๋ฐฐํฌ) - ์ฝ๋ ๋ณ๊ฒฝ ์ฌํญ์ ํ ์คํธ ์๋ํ ๋ฐ ํ๋ก๋์ ํ๊ฒฝ ๋ฐฐํฌ๊น์ง ์๋์ผ๋ก ์งํ
CI/CD ํ์ดํ๋ผ์ธ์ ๋์ ์ ๊ฐ๋ฐ๊ณผ ์ด์์ ํจ์จ์ฑ์ ๊ทน๋ํํ๊ณ , ์ง์์ ์ธ ํ์ง ์ ์ง๋ฅผ ๊ฐ๋ฅํ๊ฒ ํจ
snappy vs lz4
๋ ๋ค ์์ถ๋ฅ ์ด๋ ์๋์ธก๋ฉด์์ ๊ฑฐ์ ๋์ผ (impala ํ์ผ์ด ๋ฐ์ดํฐ ํฌ๋งท์์ default compress๋ snappy)
snappy
๊ตฌ๊ธ์์ 2011๋ ์ ์์ฒด ๊ฐ๋ฐํ ์์ถ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ด๋ค. ์์ถ๋ฅ ์ ์ ๋นํ ์์ค์ผ๋ก ์ ๊ณตํ๋ฉด์ ๋น ๋ฅด๊ฒ ์์ถํ๊ณ ํด์ ํ๋ ๊ฒ์ ๋ชฉํ๋ก ํ๋ค. ๋ค๋ฅธ ์์ถ ๋ฐฉ์์ ๋นํด CPU๋ฅผ ๋ ์ฌ์ฉํ๊ณ , ์ด๋น 250MB ์ ๋๋ฅผ ์์ถํ๋ค. lzo๋ณด๋ค ์ฑ๋ฅ์ด ๋ ์ข์ ๋๊ฐ ์์ผ๋ฏ๋ก lzo์ ๋น๊ตํ๋ค๋ฉด ์ง์ ํ ์คํธํด๋ณด๋ ๊ฒ์ด ์ข๋ค.
lz4
๋ฌด์์ค ์์ถ ์๊ณ ๋ฆฌ์ฆ์ผ๋ก ๋งค์ฐ ๋น ๋ฅด๊ฒ ์ด๋น 500MB ์ด์์ ์์ถํ๋ค. ์ฌ์ฉ์ ์ ์๋ก CPU๋ฅผ ๋ ์ฌ์ฉํด์ ์์ถ์ ๋ ํ ์ ์๊ฒ ํด์ค๋ค. LZ4_HC๋ผ๋ ๋์ ์์ถ์ ํด์ฃผ๋ ๊ฒ์ ์ฌ์ฉํ ์ ์๋ค.
gzip
GNU zip์ ์ค์๋ง์ด๋ฉฐ ์ด๊ธฐ ์ ๋์ค ์์คํ
์ ์ฐ์ด๋ ์์ถ ํ๋ก๊ทธ๋จ์ ๋์ฒดํ๊ธฐ ์ํด ๋ง๋ค์ด์ก๋ค. ๋ฌด์์ค ์์ถ ๋ฐ์ดํฐ ์๊ณ ๋ฆฌ์ฆ(DEFLATE)์ ์ฌ์ฉํ๋ค.
ํ์ผ ํ์ ์ค์ ํ๋์ธ ํ๋ฅด(tar)์ ํจ๊ป .tar.gz ํ์์ผ๋ก ์์ฃผ ์ฌ์ฉ๋๋ค. ์ด ๊ฒฝ์ฐ ๋ค๋ฅธ ํ์ผ๋ผ๋ฆฌ ์ค๋ณต๋๋ ๋ถ๋ถ์ ์์ถ์ํฌ ์ ์๋ค.
tar & gzip
Snappy ๋ณด๋ค ๋ ๋ง์ CPU๋ฆฌ์์ค๋ฅผ ์ฌ์ฉํ์ง๋ง ๋ ๋์ ์์ถ์ ํ ์ ์๋ค. ๊ทธ๋ฌ๋ ์์ถ๋ฅ ์ด ๋๊ธฐ ๋๋ฌธ์ ์์ฃผ ์ฌ์ฉํ์ง ์๋ ์ฝ๋ ๋ฐ์ดํฐ์ ์ ํฉํ๋ค.
๋ฉ๋ชจ๋ฆฌ ๊ตฌ์กฐ
- ์ฝ๋ ์์ญ : ์คํํ ํ๋ก๊ทธ๋จ์ ์ฝ๋๊ฐ ์ ์ฅ๋ ์์ญ, CPU๋ ์ฝ๋์์ญ์ ์ ์ฅ๋ ๋ช ๋ น์ด๋ฅผ ํ๋์ฉ ๊ฐ์ ธ๊ฐ์ ์ฒ๋ฆฌํ๊ฒ ๋จ
- ๋ฐ์ดํฐ ์์ญ : ์ ์ญ ๋ณ์, ์ ์ ๋ณ์๊ฐ ์ ์ฅ๋๋ ์์ญ, ํ๋ก๊ทธ๋จ์ ์์๊ณผ ํจ๊ป ํ ๋น๋๋ฉฐ ํ๋ก๊ทธ๋จ ์ข ๋ฃ๋๋ฉด ์๋ฉธํจ
- heap ์์ญ : ๋์ ๋ฐ์ดํฐ ์์ญ, ์ฌ์ฉ์๊ฐ ์ง์ ๊ด๋ฆฌํ ์ ์๋ ๋ฉ๋ชจ๋ฆฌ ์์ญ
- stack ์์ญ : ํจ์์ ํธ์ถ๊ณผ ๊ด๊ณ๋๋ ์ง์ญ๋ณ์,๋งค๊ฐ๋ณ์๊ฐ ์ ์ฅ๋๋ ์์ญ, ํจ์์ ํธ์ถ๊ณผ ํจ๊ป ํ ๋น๋๋ฉฐ, ํจ์ ํธ์ถ์ด ์๋ฃ๋๋ฉด ์๋ฉธ
๋ณด์
RSA
๊ณต๊ฐํค ์ํธ์์คํ ์ ํ๋๋ก ์ํธํ๋ฟ๋ง ์๋๋ผ ์ ์์๋ช ์ด ๊ฐ๋ฅํ ์ต์ด์ ์๊ณ ๋ฆฌ์ฆ
SASL (Simple Authentication and Security Layer)
- ์ธ์ฆ ํ๋ก์ธ์ค๋ฅผ ์ํ ํ๋ ์์ํฌ๋ก, ๋ค์ํ ์ธ์ฆ ๋ฉ์ปค๋์ฆ์ ์ถ์ํํ๊ณ ํตํฉํ๋ ์ญํ ์ ์ํ
- ํด๋ผ์ด์ธํธ์ ์๋ฒ ๊ฐ์ ์ธ์ฆ์ ๊ด๋ฆฌํ๊ณ , ์ฌ๋ฌ ์ธ์ฆ ๋ฐฉ์ ์ค ํ๋๋ฅผ ์ ํํ์ฌ ์ฌ์ฉํ ์ ์๊ฒ ํจ
๐ https://developer.confluent.io/courses/security/authentication-ssl-and-sasl-ssl/
Kerberos
- ๋คํธ์ํฌ ์ธ์ฆ ํ๋กํ ์ฝ๋ก, ํด๋ผ์ด์ธํธ์ ์๋ฒ ๊ฐ์ ์ธ์ฆ์ ์ํ ํฐ์ผ ๊ธฐ๋ฐ ์์คํ ์ ์ ๊ณต
- ๊ฐ๋ ฅํ ๋ณด์์ ์ ๊ณตํ๋ฉฐ, ํฐ์ผ์ ํตํด ์ฌ์ฉ์์ ์ ์์ ํ์ธํ๊ณ ์๋น์ค ์ ๊ทผ์ ํ๊ฐ
๐ https://juhi.tistory.com/75