0. ์†Œ๊ฐœ

22๋…„ ์Šคํƒ์˜ค๋ฒ„ํ”Œ๋Ÿฌ์šฐ ์„ค๋ฌธ์กฐ์‚ฌ๋ฅผ ํ™•์ธํ•ด๋ณด๋ฉด, git ๋‹ค์Œ์œผ๋กœ ๋งŽ์ด์“ฐ๋Š”๊ฒŒ docker์ž„
๊ทธ๋Ÿผ ์ด๊ฒŒ ๋ฉ€๊นŒ?

1. ๊ทธ๋ž˜์„œ ์ด๊ฒŒ ๋จผ๋ฐ?

๋„์ปค๋ž€? ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ํŒจํ‚ค์ง• ํ•  ์ˆ˜ ์žˆ๋Š” ํˆด

์ปจํ…Œ์ด๋„ˆ ๋ผ๊ณ  ๋ถˆ๋ฆฌ๋Š” ํ•˜๋‚˜์˜ ์ž‘์€ ์†Œํ”„ํŠธ์›จ์–ด ์œ ๋‹› ๋‚ด๋ถ€์— application, system tools, dependencies ๋ชจ๋“ ๊ฑธ ํ•˜๋‚˜๋กœ ๋ฌถ์–ด์„œ ๋‹ค๋ฅธ์„œ๋ฒ„ ๋‹ค๋ฅธ PC, ๋‹ค๋ฅธ ์šด์˜์ฒด์ œ์—์„œ๋„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋จ

์˜ˆ๋ฅผ๋“ค์–ด node.js๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค ํ–ˆ์„๋•Œ ๋กœ์ปฌ์—์„œ ์‚ฌ์šฉํ•˜๋Š”๋ฐ node.js์™€ npm ๋””ํŒฌ๋˜์‹œ, config ๋“ฑ์„ ๋ชจ๋“  ์„œ๋ฒ„ ๋ชจ๋“  ํ”ผ์‹œ์— ์„ค์ •ํ•˜๋Š”๊ฑฐ๋Š” ๊ท€์ฐฎ๊ณ  ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•  ํ™•๋ฅ ์ด ๋งค์šฐ ๋†’์Œ

  • ๋‚˜๋„ node js๋ฅผ ์“ฐ๊ณ , ์„œ๋ฒ„๋„ node.js๋ฅผ ์“ฐ๋‹ˆ๊นŒ app.js๋งŒ ์˜ฌ๋ฆฌ๋ฉด ๋™์ž‘ํ•˜๊ฒ ์ง€ => ์ด๊ฒŒ ๋ง์ด ์•ˆ๋จ
  • ๋ฒ„์ „ ๋ฌธ์ œ๋ผ๋˜๊ฐ€ ๊ธฐํƒ€ ๋‘ฅ๋‘ฅ ๋ฌธ์ œ๊ฐ€ ์ƒ๊ธธ๊บผ์ž„

์ด๋Ÿฐ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•œ๊ฒŒ ๋ฐ”๋กœ ๋„์ปค์ž„

  • ์šฐ๋ฆฌ์˜ ๋ถ€๋„๋Ÿฌ์šด app.js ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ
  • ์ด๊ฑธ ๋™์ž‘ํ•˜๊ธฐ์œ„ํ•œ ๋ฒ„์ „
  • ํ™˜๊ฒฝ์„ค์ •, npm, ์—ฌ๋Ÿฌ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ, ๋””ํŒฌ๋˜์‹œ ๋“ฑ
  • ํ•œ๋ฒˆ์— ๋ชจ์™€์„œ ๋„์ปค ์ปจํ…Œ์ด๋„ˆ ์•ˆ์— ๋„ฃ์–ด๋‘ 
  • ์–ด๋–ค pc์—์„œ๋“ ์ง€ ๋‹ค ์ž˜ ๋™์ž‘ํ•˜๊ธ‹์ง€,,,,
  • ์งฑ์งฑ ์œ ์šฉํ•˜๋‹ค

2. ์ปจํ…Œ์ด๋„ˆ์™€ ๊ฐ€์ƒ๋จธ์‹ ์˜ ์ฐจ์ด

๋ณด๋ฉด๋ณผ์ˆ˜๋ก virtual box๊ฐ™์€๋„˜์ด๋ž‘ ๋น„์Šทํ•œ๋ฐ?

ํ•˜์ง€๋งŒ ๋™์ž‘ ๋ฐฉ๋ฒ•์ด ๋‹ค๋ฆ„

  • VM์€ infrastructure ์œ„์— Hypervisor ์†Œํ”„ํŠธ์›จ์–ด๋ฅผ ์ด์šฉํ•ด
  • ๊ฐ๊ฐ ๊ฐ€์ƒ์˜ ๋จธ์‹ ์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Œ
  • ๊ฐ๊ฐ์˜ ๊ฐ€์ƒ์˜ ๋จธ์‹ ์—๋Š” ๊ฐ ์šด์˜์ฒด์ œ๋ฅผ ํฌํ•จํ•จ
  • ๊ทธ๋ž˜์„œ ๋งฅ์• ์„œ window๋„ ๋Œ๋ฆด์ˆ˜์žˆ์Œ
  • ํ•˜์ง€๋งŒ? ๋ฌด๊ฒ๋‹ค,,, ๊ฐœ๋ฌด๊ฒ๋‹ค,,,
  • ์‹œ์ž‘ํ•˜๋Š”๋ฐ๋„ ์˜ค๋ž˜๊ฑธใ„น๋ฆฌ๊ณ ,,๋ฆฌ์†Œ์Šค๋„ ๋งŽ์ด ๋จน๊ธ‹์ œ,,

๊ทธ๋ž˜์„œ ์ปจํ…Œ์ด๋„ˆ๋Š” ๋จผ๋ฐ?

  • ๊ฐ€์ƒ๋จธ์‹ ์„ ๊ฒฝ๋Ÿ‰ํ™” ์‹œํ‚ค์ž!
  • ๋˜‘๊ฐ™์€ infrastructure ์œ„์— Hypervisor์ด ์•„๋‹Œ
  • Host OS(๊ธฐ์กด OS)๋ฅผ ์‚ฌ์šฉํ•˜๋ฉฐ ๊ทธ์œ„์— Container Engine์„ ์˜ฌ๋ ค๋‘ 
  • ์ด ์œ„์— ๊ฐœ๋ณ„ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ๋งŒ๋“ค์–ด์„œ ๊ณ ๋ฆฝ๋œ ํ™˜๊ฒฝ์—์„œ ๊ตฌ๋™๋˜๊ฒŒ ํ•ด์คŒ
  • ๊ทธ๋ž˜์„œ ๋‹ค๋ฅธ์ ์€ OS๋ฅผ ํฌํ•จํ•˜์ง€ ์•Š๊ณ , ๋™์ผํ•œ OS๋ฅผ ๊ณต์œ ํ•˜๋Š”๊ฑฐ๋ผ๋Š”๊ฒจ

์ด ์ปจํ…Œ์ด๋„ˆ ์—”์ง„์ด ๋ฐ”๋กœ ๋„์ปค ์—”์ง„ ใ…Žใ…Ž

3. ๋„์ปค์˜ ๋™์ž‘ ์ˆœ์„œ

  1. ์ปจํ…Œ์ด๋„ˆ ๋งŒ๋“ค๊ณ 
    1. ๋„์ปคํŒŒ์ผ ๋งŒ๋“ค๊ธฐ
      • ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์–ด๋–ป๊ฒŒ ๋งŒ๋“ค์–ด์•ผ ํ•˜๋Š”์ง€์— ๋Œ€ํ•œ ์„ค๋ช…์„œ? ๋ ˆ์‹œํ”ผ
      • ๊ผญ ํ•„์š”ํ•œ ํŒŒ์ผ, ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ, ๋””ํŒฌ๋˜์‹œ ๋“ฑ ๋ช…์‹œ
      • ํ•„์š”ํ•œ ํ™˜๊ฒฝ๋ณ€์ˆ˜ ์„ค์ •
      • ์–ด๋–ป๊ฒŒ ๊ตฌ๋™ํ•ด์•ผํ•˜๋Š”์ง€ ์Šคํฌ๋ฆฝํŠธ ํฌํ•จ ๊ฐ€๋Šฅ
    2. ์ด๋ฏธ์ง€ ํŒŒ์ผ ๋งŒ๋“ค๊ธฐ
      • ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์‹คํ–‰ํ•˜๊ธฐ ์œ„ํ•œ ๋Ÿฐํƒ€์ž„ ํ™˜๊ฒฝ ๋“ฑ๋“ฑ ๋ชจ๋“  ์„ธํŒ…๋“ค์ด ํฌํ•จ๋˜์–ด ์žˆ์Œ
      • ์‰ฝ๊ฒŒ๋งํ•˜๋ฉด ํ˜„์žฌ ์‹คํ–‰์ค‘์ธ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์ƒํƒœ๋ฅผ ์Šค์ƒท๋งˆ๋ƒฅ ์ฐ์–ด์„œ ๋ณด๊ด€ํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•˜๋ฉด ์ข‹์Œ
      • ๊ทธ๋ž˜์„œ ์ด๋ฏธ์ง€๋Š” ๋ณ€๊ฒฝ์„ ๋ชปํ•˜๋Š” ๋ถˆ๋ณ€์˜ ์ƒํƒœ์ž„
      • ์•ฝ๊ฐ„ ํด๋ž˜์Šค๋ž‘ ๋น„์Šทํ•˜๋‹ฌ๊นŒ?
    3. ์ปจํ…Œ์ด๋„ˆ ๋งŒ๋“ค๊ธฐ
      • ์šฐ๋ฆฌ๊ฐ€ ์ž˜ ๋งŒ๋“  ์• ๋“ค์„ ์ปจํ…Œ์ด๋„ˆ ์•ˆ์—์„œ๋งŒ ๋™์ž‘ํ•˜๋Š”๋ฐ
      • ๊ณ ๋ฆฝ๋œ ํ™˜๊ฒฝ, ์ด๋ฏธ์ง€๋ฅผ ํ†ตํ•ด ๊ตฌ๋™ํ•œ๋‹ค
  2. ๊ตฌ๋™ํ•˜๊ณ 
  3. ๋ฐฐํฌํ•œ๋‹ค
    1. git๊ณผ github๊ฐ™์€ ๋А๋‚Œ
    2. ๊ณต์œ ํ• ์ˆ˜ ์žˆ๋Š” Container repogistory๋Š” docker hub, red hat, github ๋“ฑ์ด ์žˆ์Œ
    3. private์€ aws, google cloud, azure์ด ์žˆ์Œ

4. ์•„๋งˆ๋„ ์ด์ •๋ฆฌ

  1. ๋กœ์ปฌ์— ๋„์ปค ์„ค์น˜ํ•˜์…ˆ
  2. ์„œ๋ฒ„์—๋„ ๋„์ปค ์„ค์น˜ํ•˜์…ˆ
  3. ๋กœ์ปฌ์—์„œ ๋„์ปคํŒŒ์ผ ์ž‘์„ฑ ํ›„ ์ด๋ฏธ์ง€ ์ƒ์„ฑ
  4. container registry ์— push ํ•จ
  5. ์ดํ›„ sever์—์„œ pull ํ•˜๊ณ 
  6. runํ•˜์…ˆ

5. ๊ทธ๋ž˜์„œ ์‚ฌ์šฉ ์˜ˆ์‹œ๋Š” ์–ด๋””๊ฐ?

์•„ ๋‚˜์ค‘์— ์ถ”๊ฐ€ํ•œ๋‹ค๊ณ ~

ํƒœ๊ทธ:

์นดํ…Œ๊ณ ๋ฆฌ:

์—…๋ฐ์ดํŠธ:

๋Œ“๊ธ€๋‚จ๊ธฐ๊ธฐ