๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๐Ÿ’ปTech/๐Ÿ‘จ‍๐Ÿ’ปetc

CS ์ •๋ฆฌ

by _viper_ 2023. 10. 13.
๋ฐ˜์‘ํ˜•

๋น…๋ฐ์ดํ„ฐ

๋น…๋ฐ์ดํ„ฐ

๊ธฐ์กด 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 ํŒŒ์ผ ์ฝ๊ธฐ

  1. ํด๋ผ์ด์–ธํŠธ๊ฐ€ DistributedFileSystem ๊ฐ์ฒด์˜ open() ๋ฉ”์†Œ๋“œ ํ˜ธ์ถœ๋กœ HDFS ํŒŒ์ผ ์ฝ๊ธฐ ์š”์ฒญ
    •  DistributedFileSystem์€ RPC๋กœ ๋„ค์ž„๋…ธ๋“œ์— ์—ฐ๊ฒฐํ•˜๊ณ  open ๋Œ€์ƒ์ด ๋˜๋Š” ํŒŒ์ผ์˜ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ๋ฅผ ์กฐํšŒ
  2. ๋„ค์ž„๋…ธ๋“œ์— ํŒŒ์ผ์ด ๋ณด๊ด€๋œ ๋ธ”๋ก ์œ„์น˜ ์š”์ฒญ
  3. ๋„ค์ž„๋…ธ๋“œ๋Š” ๋ธ”๋ก์„ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ๋ฐ์ดํ„ฐ๋…ธ๋“œ๋“ค์˜ ์ฃผ์†Œ ๋ฆฌํ„ด
  4. ๋ฐ์ดํ„ฐ๋…ธ๋“œ ์ฃผ์†Œ ์ •๋ณด๋กœ read() ๋ฉ”์†Œ๋“œ๋ฅผ ํ˜ธ์ถœํ•˜๊ณ  ๋Œ€์ƒ ํŒŒ์ผ์˜ ์ฒซ ๋ฒˆ์งธ ๋ธ”๋ก์ด ์žˆ๋Š” ๋ฐ์ดํ„ฐ๋…ธ๋“œ์™€ ์—ฐ๊ฒฐ
    • read ๊ณผ์ •์€ end of block์— ๋„๋‹ฌํ•  ๋•Œ๊นŒ์ง€ ๋ฐ˜๋ณต
  5. read ๊ณผ์ •์ด ๋๋‚˜๋ฉด ํด๋ผ์ด์–ธํŠธ๋Š” close() ๋กœ ๋ชจ๋“  ์—ฐ๊ฒฐ๊ณผ ์ŠคํŠธ๋ฆผ์„ ๋‹ซ๊ณ  ์ข…๋ฃŒ

 

HDFS ํŒŒ์ผ ์“ฐ๊ธฐ

  1. ํด๋ผ์ด์–ธํŠธ๊ฐ€ create() ๋ฉ”์†Œ๋“œ ํ˜ธ์ถœ๋กœ HDFS ํŒŒ์ผ ์“ฐ๊ธฐ ์š”์ฒญ
    • ๋„ค์ž„๋…ธ๋“œ๋Š” ํŒŒ์ผ ์ƒ์„ฑ ์š”์ฒญ์— ๋Œ€ํ•œ verification์„ ์ง„ํ–‰
      (verification: ํŒŒ์ผ ์กด์žฌ ์—ฌ๋ถ€, ํ•ด๋‹น ๊ฒฝ๋กœ ๊ถŒํ•œ ๋“ฑ์„ ํ™•์ธ)
    • ๋„ค์ž„๋…ธ๋“œ์— ํŒŒ์ผ ์ •๋ณด๋ฅผ ์ „์†กํ•˜๊ณ , ํŒŒ์ผ์˜ ๋ธ”๋ก์„ ์จ์•ผํ•  ๋ฐ์ดํ„ฐ๋…ธ๋“œ ๋ชฉ๋ก ์š”์ฒญ
  2. ๋„ค์ž„๋…ธ๋“œ๊ฐ€ ํŒŒ์ผ์„ ์ €์žฅํ•  ๋ชฉ๋ก ๋ฐ˜ํ™˜
  3. ๋ฐ์ดํ„ฐ๋ฅผ write ํ•˜๊ธฐ ์œ„ํ•œ packet์„ ๋งŒ๋“ค๊ณ  ํ•ด๋‹น packet์€ DataQueue์— ๋“ค์–ด๊ฐ
  4. ๋ฐ์ดํ„ฐ ๋…ธ๋“œ์— ํŒŒ์ผ ์“ฐ๊ธฐ ์š”์ฒญ
    • ๋ฐ์ดํ„ฐ ๋…ธ๋“œ๊ฐ„ ๋ณต์ œ๊ฐ€ ์ง„ํ–‰
  5. ํด๋ผ์ด์–ธํŠธ์˜ write ์ž‘์—…์ด ๋๋‚˜๋ฉด close() ๋ฉ”์†Œ๋“œ๊ฐ€ ํ˜ธ์ถœ
  6. ๋งˆ์ง€๋ง‰ ack๊ฐ€ ๋„์ฐฉํ•˜๋ฉด ํด๋ผ์ด์–ธํŠธ๋Š” ๋„ค์ž„๋…ธ๋“œ์— write ์ž‘์—…์ด ์™„๋ฃŒํ–ˆ์Œ์„ ์•Œ๋ฆผ

 

YARN Application ๋™์ž‘ ๋ฐฉ์‹

  1. ํด๋ผ์ด์–ธํŠธ๊ฐ€ ๋ฆฌ์†Œ์Šค ๋งค๋‹ˆ์ €์— ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์ œ์ถœ
  2. ๋ฆฌ์†Œ์Šค ๋งค๋‹ˆ์ €๋Š” ๋…ธ๋“œ ๋งค๋‹ˆ์ €์—๊ฒŒ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋งˆ์Šคํ„ฐ ์‹คํ–‰์„ ์š”์ฒญ
    • ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋งˆ์Šคํ„ฐ๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ๋ฆฌ์†Œ์Šค ์š”์ฒญ, ํƒœ์Šคํฌ ๊ด€๋ฆฌ, ์ƒํƒœ ๋ชจ๋‹ˆํ„ฐ๋ง ๋ฐ ๋ณด๊ณ  ์ž‘์—…๋“ค์„ ์ˆ˜ํ–‰
  3. ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋งˆ์Šคํ„ฐ๋Š” ์ž‘์—… ์‹คํ–‰์„ ์œ„ํ•œ ์ž์›์„ ๋ฆฌ์†Œ์Šค ๋งค๋‹ˆ์ €์— ์š”์ฒญ
  4. ์ž์›์„ ํ• ๋‹น ๋ฐ›์•„์„œ ๊ฐ ๋…ธ๋“œ์— ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์‹คํ–‰ํ•˜๊ณ , ์‹ค์ œ ์ž‘์—…์„ ์ง„ํ–‰
    • ์ปจํ…Œ์ด๋„ˆ๋Š” ์‹ค์ œ ์ž‘์—…์ด ์‹คํ–‰๋˜๋Š” ๋‹จ์œ„
  5. ์ปจํ…Œ์ด๋„ˆ์—์„œ ์ž‘์—…์ด ์ข…๋ฃŒ๋˜๋ฉด ๊ฒฐ๊ณผ๋ฅผ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋งˆ์Šคํ„ฐ์—๊ฒŒ ์•Œ๋ฆฌ๊ณ , ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋งˆ์Šคํ„ฐ๋Š” ๋ชจ๋“  ์ž‘์—…์ด ์ข…๋ฃŒ๋˜๋ฉด ๋ฆฌ์†Œ์Šค๋งค๋‹ˆ์ €์— ์•Œ๋ฆฌ๊ณ  ์ž์›์„ ํ•ด์ œ

 

๋งต๋ฆฌ๋“€์Šค

๋งต๋ฆฌ๋“€์Šค(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 ๊ฐœ๋…

๐Ÿ”— https://hongong.hanbit.co.kr/sql-%EA%B8%B0%EB%B3%B8-%EB%AC%B8%EB%B2%95-joininner-outer-cross-self-join/

 

 

๋„คํŠธ์›Œํฌ

ํŠธ๋ž˜ํ”ฝ - ์ธํ„ฐ๋„ท ์ƒ์—์„œ ์†ก์ˆ˜์‹  ๋˜๋Š” ๋ชจ๋“  ํ†ต์‹ (๋ฐ์ดํ„ฐ)์˜ ์–‘

๋„คํŠธ์›Œํฌ ๋Œ€์—ญํญ(bandwidth) - ๋Œ€์—ญํญ์€ ์ดˆ๋‹น ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐ์ดํ„ฐ์˜ ์–‘, ํŠธ๋ž˜ํ”ฝ๊ณผ ๋‹ค๋ฅด๊ฒŒ ์‹œ๊ฐ„ ๊ฐœ๋…์ด ์ถ”๊ฐ€

 

๋ฐฉํ™”๋ฒฝ - ์™ธ๋ถ€ ์‚ฌ์šฉ์ž๊ฐ€ ๋‚ด๋ถ€ ๋„คํŠธ์›Œํฌ์— ์ ‘์†ํ•˜์ง€ ๋ชปํ•˜๋„๋ก ๋ง‰๋Š” ๋„คํŠธ์›Œํฌ ๋ฐฉ์–ด์ˆ˜๋‹จ
๋ผ์šฐํ„ฐ(Router) - LAN๊ณผ LAN์„ ์—ฐ๊ฒฐํ•˜๋Š” ์žฅ์น˜๋กœ ๋ชฉ์ ์ง€๊นŒ์ง€์˜ ์ตœ์  ๊ฒฝ๋กœ๋ฅผ ๊ฒฐ์ •ํ•˜์—ฌ ๋ผ์šฐํŒ…(Routing)ํ•ด์ฃผ๋Š” ์žฅ์น˜
๋ผ์šฐํŒ… - ๋„คํŠธ์›Œํฌ๋ฅผ ํ†ตํ•ด ๊ทผ์›์ง€์—์„œ ๋ชฉ์ ์ง€๊นŒ์ง€ ๋ฐ์ดํ„ฐ๋ฅผ ์ „๋‹ฌ๋ ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋Š” ๊ธฐ๋Šฅ

 

์›น์‚ฌ์ดํŠธ์— ์ ‘์†ํ•  ๋•Œ ์ผ์–ด๋‚˜๋Š” ๊ณผ์ •

  1. URL ์ž…๋ ฅ: ์›น์‚ฌ์ดํŠธ ์ฃผ์†Œ๋ฅผ ๋ธŒ๋ผ์šฐ์ €์— ์ž…๋ ฅํ•ฉ๋‹ˆ๋‹ค.
  2. DNS ์กฐํšŒ: ๋„๋ฉ”์ธ ์ด๋ฆ„์„ IP ์ฃผ์†Œ๋กœ ๋ณ€ํ™˜ํ•ฉ๋‹ˆ๋‹ค.
  3. TCP ์—ฐ๊ฒฐ: ์„œ๋ฒ„์™€์˜ ํ†ต์‹ ์„ ์œ„ํ•œ ์—ฐ๊ฒฐ์„ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.
  4. HTTP ์š”์ฒญ: ์›น ํŽ˜์ด์ง€ ๋ฐ์ดํ„ฐ๋ฅผ ์š”์ฒญํ•ฉ๋‹ˆ๋‹ค.
  5. ์„œ๋ฒ„ ์ฒ˜๋ฆฌ: ์„œ๋ฒ„๊ฐ€ ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•˜๊ณ  ์‘๋‹ตํ•ฉ๋‹ˆ๋‹ค.
  6. ๋ธŒ๋ผ์šฐ์ € ๋ Œ๋”๋ง: ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ํŽ˜์ด์ง€๋ฅผ ํ™”๋ฉด์— ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค.

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