์ธํ”„๋Ÿฐ ์˜๋ฌธ ๋ธŒ๋žœ๋“œ ๋กœ๊ณ 
์ธํ”„๋Ÿฐ ์˜๋ฌธ ๋ธŒ๋žœ๋“œ ๋กœ๊ณ 
BEST

DevOps๋ฅผ ์œ„ํ•œ Docker ๊ฐ€์ƒํ™” ๊ธฐ์ˆ  (Private Harbor Registry)

๋ณธ ๊ฐ•์˜๋Š” Cloud Native Architecture๋ฅผ ๊ตฌ์„ฑํ•˜๋Š” 4๊ฐ€์ง€ ๊ตฌ์„ฑ์š”์†Œ ์ค‘, ์ปจํ…Œ์ด๋„ˆ ๊ฐ€์ƒํ™” ๊ธฐ์ˆ ์— ๋Œ€ํ•ด ํ•™์Šตํ•˜๋Š” ๊ณผ์ •์ž…๋‹ˆ๋‹ค. Microservice ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋ฐฐํฌํ•˜๊ณ  ์šด์˜ํ•˜๊ธฐ ์œ„ํ•œ ์ตœ์„ ์˜ ๋ฐฉ๋ฒ•์ธ ์ปจํ…Œ์ด๋„ˆ ๊ฐ€์ƒํ™”๋ผ๋Š” ๊ธฐ์ˆ ์— ๋Œ€ํ•œ ๊ธฐ๋ณธ์ ์ธ ๊ฐœ๋…์„ ์ดํ•ดํ•˜๊ณ , ์ปจํ…Œ์ด๋„ˆ ๊ฐ€์ƒํ™” ๊ธฐ์ˆ  ์ค‘ ๊ฐ€์žฅ ๋Œ€์ค‘์ ์œผ๋กœ ์•Œ๋ ค์ง„ Docker ๊ธฐ์ˆ ์— ๋Œ€ํ•ด ๋‹ค๋ค„๋ณด๋Š” ํ•™์Šต ๊ณผ์ •์ž…๋‹ˆ๋‹ค. MSA ํ˜•ํƒœ๋กœ ๊ฐœ๋ฐœ ๋œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋ฐฐํฌํ•˜๊ณ  ์šด์˜ํ•˜๊ธฐ ์œ„ํ•ด ํ•„์š”ํ•œ ํ•„์ˆ˜์ ์ธ ๋‚ด์šฉ์— ๋Œ€ํ•ด ์ด๋ก  ํ•™์Šต ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ, ๊ด€๋ จ๋œ ์‹ค์Šต ์˜ˆ์ œ๋ฅผ ํ†ตํ•ด ์‹ค์ œ Docker ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ์–ด๋–ป๊ฒŒ ์ž‘๋™๋˜๋Š”์ง€์— ๋Œ€ํ•ด ์ดํ•ดํ•˜์‹ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ณธ ๊ณผ์ •์—์„œ๋Š” ๊ธฐ์กด ๋‹ค๋ฅธ ๊ฐ•์˜์—์„œ ๋‹ค๋ฃจ์ง€ ์•Š์•˜๋˜ Docker Security์™€ Logging ๋“ฑ๊ณผ ๊ฐ™์€ ๋‹ค์–‘ํ•œ ์š”์†Œ์— ๋Œ€ํ•ด์„œ๋„ ํ•™์Šตํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ์ตœ์ข… ์‹ค์Šต ํ”„๋กœ์ ํŠธ์—์„œ๋Š” Docker ๊ธฐ์ˆ ๊ณผ ์—ฐ๊ณ„๋  ์ˆ˜ ์žˆ๋Š” ์„œ๋น„์Šค(Harbor + Argocd)๋“ค์„ ๊ตฌ์ถ•ํ•˜๊ณ  ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋ฐฐํฌ ํ•จ์œผ๋กœ์จ DevOps๋ฅผ ์ ์šฉํ•จ์— ์žˆ์–ด ํ•„์š”๋กœ ํ•˜๋Š” ํ•ต์‹ฌ์ ์ธ ์šด์˜ ํ™˜๊ฒฝ์— ๋Œ€ํ•ด ์‹ค์Šตํ•ด ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Thumbnail

์ดˆ๊ธ‰์ž๋ฅผ ์œ„ํ•ด ์ค€๋น„ํ•œ
[๋ฐ๋ธŒ์˜ต์Šค ยท ์ธํ”„๋ผ, Docker] ๊ฐ•์˜์ž…๋‹ˆ๋‹ค.

์ด๋Ÿฐ ๊ฑธ ๋ฐฐ์šธ ์ˆ˜ ์žˆ์–ด์š”

  • Docker ์ปจํ…Œ์ด๋„ˆ ๊ธฐ์ˆ 

  • Docker Image ์ƒ์„ฑ

  • Docker Registry ๊ตฌ์„ฑ

  • Docker Compose๋ฅผ ์ด์šฉํ•œ ๋ฉ€ํ‹ฐ ์ปจํ…Œ์ด๋„ˆ ๊ด€๋ฆฌ

  • Docker Security

  • Docker ๋กœ๊ทธ ํŒŒ์ผ์˜ ๋ถ„์„

  • Docker ์ด์™ธ์˜ ์ปจํ…Œ์ด๋„ˆ ๊ธฐ์ˆ 

  • ๋ฉ€ํ‹ฐ ํ”Œ๋žซํผ์„ ์œ„ํ•œ Docker Build

  • CI/CD์—์„œ์˜ Docker ํ™˜๊ฒฝ ๊ตฌ์ถ•

  • Private Harbor Registry

  • Jenkins CI/CD Pipeline ์—ฐ๊ณ„

  • Kubernetes ๋ฐฐํฌ (Argocd)

Microservice Architecture๋กœ ๊ฐœ๋ฐœ ๋œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜๋“ค์€ ์–ด๋–ป๊ฒŒ ๋ฐฐํฌ/์šด์˜๋˜์–ด์•ผ ํ• ๊นŒ์š”? ๐Ÿค”

Microservice Architecture๋กœ ๊ฐœ๋ฐœ ๋œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜๋“ค์€ ์ปจํ…Œ์ด๋„ˆ ๊ฐ€์ƒํ™” ๊ธฐ์ˆ ์„ ์ด์šฉํ•˜์—ฌ ๋ฐฐํฌ๋˜๊ณ  ์šด์˜๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. Linux์˜ ์‚ฐํ•˜ ๊ธฐ๊ด€์ธ CNCF(Cloud Native Computing Foundation, https://www.cncf.io/)์—์„œ๋Š” Cloud Native Application Architecture๋ฅผ ๊ตฌ์ถ•ํ•˜๊ณ  ์‹คํ–‰ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉํ•˜๋Š” ๋‹ค์–‘ํ•œ ์†Œํ”„ํŠธ์›จ์–ด ๋ฐ ์ธํ”„๋ผ์ ์ธ ๊ตฌ์„ฑ ์š”์†Œ๋กœ ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค, ์ปจํ…Œ์ด๋„ˆ ๊ฐ€์ƒํ™”, CI/CD, DevOps ๋“ฑ์„ ์ •์˜ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ์ค‘์—์„œ ํด๋ผ์šฐ๋“œ ๋„ค์ดํ‹ฐ๋ธŒ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์œผ๋กœ ๊ฐœ๋ฐœ ๋œ ๊ฒฐ๊ณผ๋ฌผ์„ ์‹คํ–‰ํ•˜๊ณ  ์šด์˜ํ•˜๊ธฐ ์œ„ํ•ด ์ปจํ…Œ์ด๋„ˆ ๊ฐ€์ƒํ™”๋ผ๋Š” ๊ธฐ์ˆ ์„ ์†Œ๊ฐœํ•˜๊ณ  ์žˆ๋Š”๋ฐ, ๋ฐ”๋กœ ์ด ์ปจํ…Œ์ด๋„ˆ ๊ฐ€์ƒํ™” ๊ธฐ์ˆ  ๋ถ„์•ผ์—์„œ ๊ฐ€์žฅ ๋Œ€์ค‘์ ์œผ๋กœ ์•Œ๋ ค์ ธ์žˆ๊ณ  ์‚ฌ์šฉ๋˜๊ณ  ์žˆ๋Š” ์„œ๋น„์Šค๊ฐ€ Docker ์„œ๋น„์Šค ์ž…๋‹ˆ๋‹ค.

๋ณธ ๊ฐ•์˜์—์„œ๋Š” Docker ๊ฐ€์ƒํ™” ๊ธฐ์ˆ ์„ ์ดํ•ดํ•˜๊ธฐ ์œ„ํ•ด ํ•„์š”ํ•œ ํ•ต์‹ฌ์ ์ธ ๊ฐœ๋…๋ถ€ํ„ฐ, ๋ฉ€ํ‹ฐ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ๊ตฌ์„ฑํ•˜๊ณ  ๊ด€๋ฆฌํ•˜๊ธฐ ์œ„ํ•œ ํ•„์š”ํ•œ Docker Compose ๊ธฐ์ˆ , ์ปจํ…Œ์ด๋„ˆ ๊ฐ€์ƒํ™”๋ฅผ ์‚ฌ์šฉํ•˜๋Š”๋ฐ์— ๊ณ ๋ คํ•ด์•ผ ํ•  ๋ณด์•ˆ์ ์ธ ๋ถ€๋ถ„, ๊ทธ๋ฆฌ๊ณ  CI/CD ํŒŒ์ดํ”„๋ผ์ธ๊ณผ์˜ ์—ฐ๊ณ„ ๋ถ€๋ถ„ ๋ฟ๋งŒ์•„๋‹ˆ๋ผ, Docker Orchestration์— ๋Œ€ํ•œ ๋ถ€๋ถ„์— ๋Œ€ํ•ด์„œ ํ•™์Šตํ•˜๊ณ  ๊ด€๋ จ ์˜ˆ์ œ ์ฝ”๋“œ๋ฅผ ์‹ค์Šตํ•˜๋„๋ก ๊ตฌ์„ฑํ•˜์˜€์Šต๋‹ˆ๋‹ค.

๋‹ค์–‘ํ•œ ์‹ค์Šต ์˜ˆ์ œ ๋ฐ Toy ํ”„๋กœ์ ํŠธ๋ฅผ ํ†ตํ•ด, Docker ๊ฐ€์ƒํ™” ๊ธฐ์ˆ ์— ํ•ต์‹ฌ์ ์ธ ๊ธฐ๋Šฅ ์™ธ์—๋„ ๊ฐ„๋‹จํ•œ 3-tier ๊ตฌ์กฐ์˜ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์–ด๋–ป๊ฒŒ ์ปจํ…Œ์ด๋„ˆํ™” ํ•˜์—ฌ ๊ด€๋ฆฌํ•˜๊ณ  ์šด์˜ํ•˜๋ฉด ์ข‹์€์ง€์— ๋Œ€ํ•ด์„œ๋„ ์†Œ๊ฐœํ•˜๊ณ  ์žˆ์œผ๋ฉฐ, Docker Desktop์— ํฌํ•จ๋œ Orchestration ๋„๊ตฌ๋ฅผ ์ด์šฉํ•˜์—ฌ, ๊ธฐ๋ณธ์ ์ธ ๋ฆฌ์†Œ์Šค๋“ค์„ ๊ด€๋ฆฌ ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ, ์„œ๋น„์Šค๋“ค์˜ ์Šค์ผ€์ผ๋ง ์ž‘์—… ๋กค๋ง ์—…๋ฐ์ดํŠธ ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด์„œ๋„ ํ•™์Šตํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

๊ฐ•์˜ ํ›„๋ฐ˜๋ถ€์—์„œ๋Š” Docker์˜ ๊ธฐ๋ณธ์ ์ธ Runtime๊ณผ Registry์™ธ๋„ Podman์ด๋‚˜ Harbor์™€ ๊ฐ™์€ ๋Œ€์ฒด ๊ธฐ์ˆ ์„ ํ†ตํ•ด Docker๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด์„œ๋„ ๋‹ค๋ฃจ๊ณ  ์žˆ์œผ๋ฉฐ, ์ตœ์ข… ํ”„๋กœ์ ํŠธ์—์„œ๋Š” Jenkins ๋ฐ Kubernetes์™€ Argocd๋ฅผ ํ†ตํ•ด ๋ฐฐํฌ ์šด์˜ํ•˜๋Š” ๊ณผ์ •์— ๋Œ€ํ•ด์„œ๋„ ์†Œ๊ฐœํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

์ด๋ฒˆ ๊ฐ•์˜๋ฅผ ํ†ตํ•ด ์ปจํ…Œ์ด๋„ˆ ๊ฐ€์ƒํ™”์— ๋Œ€ํ•œ ์ „๋ฐ˜์ ์ธ ๋‚ด์šฉ๊ณผ IT ์ธํ”„๋ผ๋ฅผ ๊ตฌ์ถ•ํ•˜๊ธฐ ์œ„ํ•ด ๊ฐ€์ƒํ™” ๊ธฐ์ˆ ์„ ์–ด๋–ป๊ฒŒ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ๋Š”์ง€์— ๋Œ€ํ•ด์„œ ํ•™์Šตํ•ด ๋ณด์‹œ๊ธฐ ๋ฐ”๋ž๋‹ˆ๋‹ค.

๐Ÿ’กDevOps์˜ ์ปจํ…Œ์ด๋„ˆ ๊ฐ€์ƒํ™” ์ „๋ฌธ๊ฐ€๋ฅผ ํ–ฅํ•œ ์ฒซ๊ฑธ์Œ์„ ์‹œ์ž‘ํ•ด ๋ณด์‹œ๊ธฐ ๋ฐ”๋ž๋‹ˆ๋‹ค.

  • ์ปจํ…Œ์ด๋„ˆ ๊ฐ€์ƒํ™” ๊ธฐ์ˆ ์— ๋Œ€ํ•ด ์ดํ•ดํ•˜๊ณ , ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์—ฌ๋Ÿฌ ์ปจํ…Œ์ด๋„ˆ๋กœ ๋ถ„๋ฆฌํ•˜์—ฌ ๋ฐฐํฌํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ํ•™์Šตํ•ฉ๋‹ˆ๋‹ค.

  • ๊ฐœ๋…์ ์ธ ์„ค๋ช…์„ ์œ„ํ•œ ๋‹ค์–‘ํ•œ ์ด๋ฏธ์ง€๋ฅผ ํ™œ์šฉํ•˜์—ฌ ์ดํ•ดํ•˜๊ธฐ ์‰ฝ๊ฒŒ ๋‚ด์šฉ์„ ์ „๋‹ฌํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.


  • ๋ณธ ๊ฐ•์˜์—์„œ๋Š” ์ด๋ก ๊ณผ ์‹ค์Šต์„ ๊ฐ™์ด ๋ณ‘ํ–‰ํ•  ์ˆ˜ ์žˆ๋„๋ก ๊ตฌ์„ฑํ•˜์˜€์Šต๋‹ˆ๋‹ค. ์ด๋ก ์ ์ธ ๊ฐ•์˜์—์„œ ๊ทธ์น˜์ง€ ์•Š๊ณ , ๊ฐ ์„น์…˜์—์„œ ์„ค๋ช… ๋œ ๊ฐœ๋…์— ๋Œ€ํ•ด์„œ๋Š” ๋ฐ˜๋“œ์‹œ ์‹ค์Šต ๊ณผ์ •์„ ํ†ตํ•ด ์ง์ ‘ ํ…Œ์ŠคํŠธํ•ด ๋ณผ ์ˆ˜ ์žˆ๋„๋ก ๊ตฌ์„ฑํ•˜์˜€์œผ๋ฉฐ, ํ”„๋กœ๊ทธ๋ž˜๋ฐ์ด๋‚˜ ์ธํ”„๋ผ์— ๋Œ€ํ•œ ๋†’์€ ์ง€์‹์ด ์—†๋”๋ผ๋„ ์‰ฝ๊ฒŒ ์˜ˆ์ œ๋ฅผ ์‹ค์Šตํ•ด ๋ณผ ์ˆ˜ ์žˆ๋„๋ก ๊ตฌ์„ฑํ•˜์˜€์Šต๋‹ˆ๋‹ค.



  • ๋ชจ๋“  ์‹ค์Šต ์˜ˆ์ œ๋Š” ๊ฐ ์„น์…˜์— ์„ค๋ช…๋œ ๋‚ด์šฉ์„ ๊ธฐ์ค€์œผ๋กœ ์‹ค์Šต ํ•  ์ˆ˜ ์žˆ๋„๋ก ๊ตฌ์„ฑ๋˜์–ด ์žˆ์œผ๋ฉฐ, ๊ฐ„๋‹จํ•œ Toy ํ”„๋กœ์ ํŠธ๋ฅผ ์˜ˆ์‹œ๋กœ Frontend + Backend + Database๋ฅผ ๊ตฌ์„ฑ์œผ๋กœ ํ•˜๋Š” 3-tier ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ Docker์™€ Docker Compose ๊ธฐ์ˆ ์„ ์ด์šฉํ•˜์—ฌ ๊ด€๋ฆฌํ•˜๋Š” ๊ณผ์ •์— ๋Œ€ํ•ด์„œ ํ•™์Šตํ•˜์‹ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • ๊ธฐ๋ณธ์ ์ธ ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์€ Frontend ์„œ๋น„์Šค๋ฅผ ์œ„ํ•ด React.js, Backend ์„œ๋น„์Šค๋ฅผ ์œ„ํ•ด Spring Boot, Database๋Š” Mariadb๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ตฌ์„ฑ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜, ํ”„๋กœ๊ทธ๋ž˜๋ฐ์— ๋Œ€ํ•œ ์ดํ•ด๋ฅผ ๋ฐ”ํƒ•์œผ๋กœ ์‹ค์Šต ์˜ˆ์ œ๋ฅผ ์‹คํ–‰ํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ, Docker ๊ฐ€์ƒํ™” ๊ธฐ์ˆ ์— ํ•„์š”ํ•œ ๋‚ด์šฉ์œผ๋กœ ์˜ˆ์ œ๋ฅผ ์‹ค์Šตํ•  ์ˆ˜ ์žˆ๋„๋ก ์„ค๋ช…ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

์ด ๊ฐ•์˜์˜ ํŠน์ง•

๐Ÿ“Œ Docker ๊ฐ€์ƒํ™” ๊ธฐ์ˆ ์— ๋Œ€ํ•ด ๊ธฐ๋ณธ์ ์ธ ๊ฐœ๋…์—์„œ๋ถ€ํ„ฐ ์šด์˜์— ํ•„์š”ํ•œ ํ•ต์‹ฌ ๊ธฐ์ˆ ์— ์ด๋ฅด๊ธฐ๊นŒ์ง€ ๋‹ค์–‘ํ•œ ์š”์†Œ๋“ค์— ๋Œ€ํ•ด ์ด๋ก ์ ์ธ ์„ค๋ช…๊ณผ ์‹ค์Šต์„ ๊ฐ™์ด ์‹คํ–‰ํ•ด ๋ณด์‹ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๐Ÿ“Œ ๊ฐ„๋‹จํ•œ ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์ด์šฉํ•˜์—ฌ ๊ฐ ์ปจํ…Œ์ด๋„ˆ๋ณ„๋กœ ์„ค์ •ํ•ด์•ผ ํ•˜๋Š” ํ™˜๊ฒฝ์— ๋Œ€ํ•ด ์ดํ•ดํ•˜๊ณ , ๋ฉ€ํ‹ฐ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ๊ตฌ์„ฑํ•˜์—ฌ ์šด์˜ํ•˜์—ฌ ์œ„ํ•ด ํ•„์š”ํ•œ Docker Compose๋‚˜ Docker Orchestration ๊ธฐ์ˆ ์— ๋Œ€ํ•ด์„œ๋„ ํ•™์Šตํ•˜์‹ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๐Ÿ“Œ ๊ฐ ์„น์…˜์—์„œ๋Š” ์ด๋ก ์— ์„ค๋ช…๊ณผ ์‹ค์Šต ์˜ˆ์ œ๋ฅผ ํ•จ๊ป˜ ์ œ๊ณตํ•จ์œผ๋กœ์จ, ์ˆ˜๊ฐ•์ƒ ๋ถ„๋“ค์€ ์ง์ ‘ ๋ณธ์ธ๋“ค์˜ Docker ํ™˜๊ฒฝ์—์„œ ๋‹ค์–‘ํ•œ ์˜ˆ์ œ๋ฅผ ์‹คํ–‰ํ•ด ๋ณด์‹ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๐Ÿ“Œ ๊ธฐ๋ณธ์ ์ธ Docker์˜ ๊ธฐ๋Šฅ ์™ธ์— Docker ๊ธฐ์ˆ ์„ ๋Œ€์ฒดํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ์ˆ ์— ๋Œ€ํ•ด์„œ๋„ ์†Œ๊ฐœํ•˜๊ณ  ์žˆ์œผ๋ฉฐ, CI/CD ๋ฐฐํฌ ์ž๋™ํ™”๋ฅผ ์œ„ํ•ด Docker๊ฐ€ ์–ด๋–ค ๋ถ€๋ถ„์—์„œ ์‚ฌ์šฉ๋  ์ˆ˜ ์žˆ๋Š”์ง€๋„ ์†Œ๊ฐœํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

๐Ÿ“Œ ๋ณธ ๊ฐ•์˜๋Š” ์ปจํ…Œ์ด๋„ˆ ๊ฐ€์ƒํ™” ๊ธฐ์ˆ ์— ๋Œ€ํ•ด ์ฒ˜์Œ ์ ‘ํ•˜์‹œ๊ฑฐ๋‚˜, ๊ธฐ๋ณธ์ ์ธ Docker ํ™˜๊ฒฝ์— ๋Œ€ํ•ด์„œ ์ดํ•ดํ•˜๊ณ  ์žˆ๋Š” ๋ถ„๋“ค์„ ์œ„ํ•ด, ๋ฉ€ํ‹ฐ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์šด์˜ํ•˜๊ธฐ ์œ„ํ•œ ๋ฐฉ๋ฒ•๊ณผ, Docker ๊ฐ€์ƒํ™” ๊ธฐ์ˆ ์„ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด ํ•„์š”ํ•œ ๋ณด์•ˆ์ ์ธ ์š”์†Œ, ๋ฉ€ํ‹ฐ ํ”Œ๋žซํผ ๋นŒ๋“œ, ๋กœ๊น… ๋ฉ”์‹œ์ง€ ์ฒ˜๋ฆฌ ๊ทธ๋ฆฌ๊ณ , Cloud Native Architecture์—์„œ์˜ Docker์˜ ์—ญํ• ๊ณผ ์œ„์น˜ ๋“ฑ์— ๋Œ€ํ•ด์„œ๋„ ํ•จ๊ป˜ ํ•™์Šตํ•˜์‹ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๐Ÿ’กFrom Beginner to Master

  • ๋ณธ ๊ฐ•์˜๋Š” ์ปจํ…Œ์ด๋„ˆ ๊ฐ€์ƒํ™”์— ๋Œ€ํ•œ ๊ธฐ๋ณธ์ ์ธ ๋‚ด์šฉ์„ ์ดํ•ดํ•ด ๊ฐ€๋ฉด์„œ, ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ฐ€์ƒํ™” ํ˜•ํƒœ๋กœ ๋ฐฐํฌํ•˜๊ณ  ์šด์˜ํ•˜๊ธฐ ์œ„ํ•ด ํ•„์š”ํ•œ ํ•„์ˆ˜ ๊ธฐ์ˆ ๊นŒ์ง€ ๊ฐ™์ด ํ•™์Šตํ•  ์ˆ˜ ์žˆ๋„๋ก ๊ตฌ์„ฑ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

  • ๊ฐ„๋‹จํ•œ Docker ์ด๋ฏธ์ง€ ์ƒ์„ฑ๊ณผ ์ปจํ…Œ์ด๋„ˆ์˜ ์ƒ์„ฑ์—์„œ๋ถ€ํ„ฐ, ๋ฉ€ํ‹ฐ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ๊ด€๋ฆฌํ•˜๊ธฐ ์œ„ํ•œ Docker Compose์˜ ์‚ฌ์šฉ, ๋ฉ€ํ‹ฐ Host์—์„œ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ๊ด€๋ฆฌํ•˜๊ธฐ ์œ„ํ•œ Docker Orchestration, CI/CDํ•˜๊ณ ์˜ ์—ฐ๊ณ„์— ๋Œ€ํ•ด์„œ ํ•™์Šตํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

  • ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ, Docker Image์˜ ๋ณด์•ˆ์ ์ธ ์š”์†Œ, ๋ฉ€ํ‹ฐ ํ”Œ๋žซํผ์—์„œ์˜ Docker ์ด๋ฏธ์ง€ ๋นŒ๋“œ, Docker ์ปจํ…Œ์ด๋„ˆ์˜ ๋กœ๊น… ๋ฉ”์‹œ์ง€ ๊ด€๋ฆฌ์™€ ํด๋ผ์šฐ๋“œ ํ™˜๊ฒฝ์—์„œ์˜ ์ปจํ…Œ์ด๋„ˆ ์‚ฌ์šฉ์„ ์œ„ํ•œ ๊ด€๋ฆฌํ˜• ์ปจํ…Œ์ด๋„ˆ ๊ธฐ์ˆ ์— ๋Œ€ํ•ด์„œ๋„ ์†Œ๊ฐœํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

  • ๋ณธ ๊ฐ•์˜์—์„œ๋Š” ํ•™์Šตํ–ˆ๋˜ ๋ชจ๋“  ๊ณผ์ •์— ๋Œ€ํ•œ ๋งˆ๋ฌด๋ฆฌ Capstone Project๋กœ์จ, ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜๊ณผ ์˜คํ”ˆ ์†Œ์Šค๋กœ ๊ตฌ์„ฑ๋˜์–ด ์žˆ๋Š” ๋‹ค์–‘ํ•œ ์„œ๋น„์Šค์™€์˜ ์—ฐ๊ณ„๋ฅผ ํ†ตํ•ด ์‹ค๋ฌด์—์„œ ์ž‘์—…ํ•˜๊ณ  ์žˆ๋Š” ํ™˜๊ฒฝ์— ๋Œ€ํ•ด ๊ฐ„์ ‘์ ์œผ๋กœ๋‚˜๋งˆ ๊ฒฝํ—˜ํ•˜๊ณ  ์‹ค์Šตํ•ด ๋ณด์‹ค ์ˆ˜ ์žˆ๋„๋ก ๊ตฌ์„ฑํ•˜์˜€์Šต๋‹ˆ๋‹ค.

์ด๋Ÿฐ ๋ถ„๋“ค๊ป˜ ์ถ”์ฒœํ•ด์š”

DevOps ์—”์ง€๋‹ˆ์–ด๋กœ ๋ ˆ๋ฒจ์—…ํ•˜๊ณ  ์‹ถ์–ด์š”.

DevOps ํ™˜๊ฒฝ์—์„œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์— ๋Œ€ํ•œ ๋ฐฐํฌ์™€ ์šด์˜์— ๋Œ€ํ•ด ๊ด€์‹ฌ์„ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ๊ฐœ๋ฐœ์ž/ํ•™์ƒ

์ปจํ…Œ์ด๋„ˆ ๊ฐ€์ƒํ™” ๊ธฐ์ˆ ์— ๊ด€์‹ฌ์žˆ์–ด์š”.
Microservice Architecture๋กœ ๊ฐœ๋ฐœ๋œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์–ด๋–ป๊ฒŒ ์šด์˜ํ•ด์•ผ ํ•˜๋Š”์ง€ ๊ถ๊ธˆํ•˜์‹  ๋ถ„

CI/CD์˜ ํŒŒ์ดํ”„ ๋ผ์ธ์—์„œ CD์— ๋Œ€ํ•œ ๊ณผ์ •์ด ๊ถ๊ธˆํ•ด์š”.
์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ฐฐํฌ๋ฅผ ์œ„ํ•œ ์ง€์†์ ์ธ ํ†ตํ•ฉ๊ณผ ์ง€์†์ ์ธ ๋ฐฐํฌ๋ฅผ ํ•˜๊ธฐ์œ„ํ•ด Docker ์‚ฌ์šฉ์— ๋Œ€ํ•ด ๊ถ๊ธˆํ•ด์š”

๐Ÿ’ก์ปจํ…Œ์ด๋„ˆ ๊ฐ€์ƒํ™” ๊ธฐ์ˆ ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ, Microservice ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ๋ฐฐํฌ์™€ ์šด์˜์—๋„ ๊ด€์‹ฌ์ด ์žˆ์œผ์‹  ๋ถ„!

  • ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ๊ฐœ๋ฐœ ๊ณผ์ • ์ดํ›„์— ์ง€์†์ ์ธ ๋ฐฐํฌ์—์„œ ์–ด๋–ค ๋‹จ๊ณ„๋ฅผ ์šด์˜ ํ™˜๊ฒฝ์— ๋ฐฐํฌ๋˜๋Š”์ง€ ๊ถ๊ธˆํ•˜์‹  ๋ถ„

  • ์ปจํ…Œ์ด๋„ˆ ๊ฐ€์ƒํ™” ๊ธฐ์ˆ ์— ๋Œ€ํ•ด ๊ด€์‹ฌ์„ ๊ฐ€์ง€๊ณ , DevOps ์—”์ง€๋‹ˆ์–ด๋กœ ์„ฑ์ •ํ•˜์‹œ๊ณ ์ž ํ•˜๋Š” ๋ถ„

  • ๋ฉ€ํ‹ฐ ์ปจํ…Œ์ด๋„ˆ ์šด์˜ ๋ฐ ์ปจํ…Œ์ด๋„ˆ ๋ฆฌ์†Œ์Šค ๊ด€๋ฆฌ๋ฅผ ์œ„ํ•œ Docker Orchestration ๋„๊ตฌ์— ๋Œ€ํ•ด ๊ด€์‹ฌ์ด ์žˆ์œผ์‹  ๋ถ„

  • Kubernetes์™€ ๊ฐ™์€ ์ „๋ฌธ Orchestration ๋„๊ตฌ๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋”๋ผ๋„ ์ปจํ…Œ์ด๋„ˆ์˜ Rolling Update ๋ฐ Rollback ๊ธฐ๋Šฅ์„ ํ™œ์šฉํ•˜์—ฌ ์„œ๋น„์Šค๋ฅผ ์šด์˜ํ•˜์‹œ๊ณ ์ž ํ•˜๋Š”๋ถ„

์ˆ˜๊ฐ• ํ›„์—๋Š”

  • ์ปจํ…Œ์ด๋„ˆ ๊ฐ€์ƒํ™” ๊ธฐ์ˆ ์— ๋Œ€ํ•ด ์ดํ•ดํ•˜๊ณ  ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ฐฐํฌ๋ฅผ ์œ„ํ•ด ๋ฉ€ํ‹ฐ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ๊ด€๋ฆฌํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ์•Œ๊ฒŒ ๋ผ์š”.

  • Docker Compose ๊ธฐ์ˆ ์„ ์ด์šฉํ•˜์—ฌ ์—ฌ๋Ÿฌ ์ปจํ…Œ์ด๋„ˆ๋“ค์„ ํ•œ๋ฒˆ์— ์‹คํ–‰ํ•˜๊ณ  ๊ด€๋ฆฌํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ์•Œ๊ฒŒ ๋ผ์š”.

  • Docker Swarm ๊ธฐ์ˆ ์„ ์ด์šฉํ•˜์—ฌ ๊ธฐ๋ณธ์ ์ธ Docker Orchestration ๋„๊ตฌ์— ๋Œ€ํ•œ ์‚ฌ์šฉ๋ฐฉ๋ฒ•์„ ๋ฐฐ์šฐ๊ณ , ์ปจํ…Œ์ด๋„ˆ๋“ค์— ๋Œ€ํ•œ Rolling Update ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ, Rollback ๊ธฐ๋Šฅ์— ๋Œ€ํ•ด์„œ๋„ ์•Œ๊ฒŒ ๋ผ์š”.

  • Docker Image์— ๋Œ€ํ•ด ๋ณด์•ˆ์ทจ์•ฝ์„ฑ ๊ฒ€์‚ฌ๋ฅผ ํ†ตํ•ด, ๋ณด๋‹ค ์•ˆ์ „ํ•œ Docker Image๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋ผ์š”.

  • Docker ์ด์™ธ์˜ ์ปจํ…Œ์ด๋„ˆ ๊ฐ€์ƒํ™” ๊ธฐ์ˆ ์— ๋Œ€ํ•ด ์ดํ•ดํ•˜๊ณ  ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋ผ์š”.

  • CI/CD ์ž๋™ํ™” ๋ฐฐํฌ ํŒŒ์ดํ”„๋ผ์ธ์—์„œ Docker ๋ฅผ ์ด์šฉํ•˜์—ฌ ์ง€์†์ ์ธ ๋ฐฐํฌ ์‹œ์Šคํ…œ์„ ๊ตฌ์ถ•ํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋ผ์š”.

  • ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ํด๋ผ์šฐ๋“œ ์„œ๋น„์Šค์—์„œ ์ œ๊ณตํ•˜๋Š” ๊ฐ€์ƒํ™” ์„œ๋น„์Šค ํ™˜๊ฒฝ์—์„œ ์šด์˜ํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ํ•™์Šตํ•˜๊ฒŒ ๋ผ์š”.

  • ์ปจํ…Œ์ด๋„ˆ ๊ฐ€์ƒํ™”๋ฅผ ๋ณด๋‹ค ํšจ์œจ์ ์œผ๋กœ ์šด์˜ํ•˜๊ธฐ ์œ„ํ•œ Orchestration ๋„๊ตฌ์— Docker ์ปจํ…Œ์ด๋„ˆ ์ด๋ฏธ์ง€๋ฅผ ๋ฐฐํฌํ•˜๊ธฐ ์œ„ํ•ด ์–ด๋–ค ๊ธฐ์ˆ ์ด ์‚ฌ์šฉ๋˜์ง€์— ๋Œ€ํ•ด์„œ๋„ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋ผ์š”.

๐Ÿ’ก์ด ๊ฐ•์˜๋ฅผ ์ˆ˜๊ฐ•ํ•˜๋ฉด ์–ป์„ ์ˆ˜ ์žˆ๋Š” ๋ณ€ํ™”์— ๋Œ€ํ•ด ์ž‘์„ฑํ•ด์ฃผ์„ธ์š”.

  • ๋ณธ ๊ฐ•์˜๋ฅผ ํ†ตํ•ด ์ปจํ…Œ์ด๋„ˆ ๊ฐ€์ƒํ™” ๊ธฐ์ˆ ์— ๋Œ€ํ•ด ์ดํ•ดํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • ๊ฐœ๋ฐœ์ž ๋ฐ ๊ฐœ๋ฐœ์— ๊ด€์‹ฌ์ด ์žˆ์œผ์‹  ๋ถ„์€ ์ž์‹ ์˜ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ฐ€์ƒํ™” ํ™˜๊ฒฝ์—์„œ ์‹คํ–‰ํ•˜๊ณ  ์šด์˜ํ•  ์ˆ˜ ์žˆ๋Š”์ง€ ์ดํ•ดํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • ๋‹ค์–‘ํ•œ ๋ฉ€ํ‹ฐ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์šด์˜ํ•˜๊ธฐ ์œ„ํ•œ ๊ธฐ์ˆ ๊ณผ ์ฒ˜๋ฆฌ ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด์„œ ํ•™์Šตํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • CI/CD ํ™˜๊ฒฝ์—์„œ Docker ๊ฐ€์ƒํ™” ๊ธฐ์ˆ ์„ ์–ด๋–ป๊ฒŒ ์‘์šฉํ•˜๋ฉด ์ข‹์„์ง€์— ๋Œ€ํ•ด ์‹ค์Šตํ•ด ๋ณด์‹ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด๋Ÿฐ ๋‚ด์šฉ์„ ๋ฐฐ์›Œ์š”.

Docker ๊ฐ€์ƒํ™”์˜ ๊ธฐ๋ณธ ๊ฐœ๋… ๋ฐ ํ•ต์‹ฌ ๊ธฐ์ˆ 

๋ณธ ๊ฐ•์˜์—์„œ๋Š” Docker ๊ฐ€์ƒํ™” ์‚ฌ์šฉ์„ ์œ„ํ•œ ๊ธฐ๋ณธ์ ์ธ ์ด๋ฏธ์ง€ ์ƒ์„ฑ, ์ปจํ…Œ์ด๋„ˆ ์‚ฌ์šฉ, ๋ณผ๋ฅจ๊ณผ ๋„คํŠธ์›Œํฌ์˜ ์‚ฌ์šฉ๋ฒ• ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ, ๋ฉ€ํ‹ฐ ์ปจํ…Œ์ด๋„ˆ ๊ด€๋ฆฌ๋ฅผ ์œ„ํ•œ Docker Compose์™€ Docker Swarm์— ๋Œ€ํ•ด์„œ๋„ ์‹ค์Šตํ•˜๊ณ  ์žˆ์œผ๋ฉฐ, Docker ๋ณด์•ˆ์ด๋‚˜ Logging ์ฒ˜๋ฆฌ ๋ฐฉ๋ฒ• ๋“ฑ์— ๋Œ€ํ•ด์„œ๋„ ์†Œ๊ฐœํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

CI/CD ํ™˜๊ฒฝ์—์„œ์˜ Docker ๊ฐ€์ƒํ™”์˜ ์‚ฌ์šฉ

Docker ๊ฐ€์ƒํ™”๋ฅผ ์ด์šฉํ•˜๋Š” ๊ฐ€์žฅ ํฐ ๋ชฉ์ ์€ ๋ฌผ๋ฆฌ์ ์ธ ์‹œ์Šคํ…œ ํ™˜๊ฒฝ์ด ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ์ œ์•ฝ์ ์ธ ๋ฌธ์ œ์ ์„ ํ•ด๊ฒฐํ•จ๊ณผ ๋™์‹œ์— ๋‹ค์–‘ํ•œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜๊ณผ ๋ฏธ๋“ค์›จ์–ด๋ฅผ ์‰ฝ๊ฒŒ ์ž‘๋™ํ•˜๊ณ  ๊ด€๋ฆฌํ•˜๊ธฐ ์œ„ํ•œ ๋ชฉ์ ์— ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ์„œ๋น„์Šค๋ฅผ ์ž๋™ํ™” ๋ฐฐํฌํ•˜๊ธฐ ์œ„ํ•œ ๋ฐฉ๋ฒ•์œผ๋กœ CI/CD ํ™˜๊ฒฝ๊ณผ ์—ฐ๊ณ„ํ•˜์—ฌ Docker ์ปจํ…Œ์ด๋„ˆ ๊ฐ€์ƒํ™” ๊ธฐ์ˆ ์— ๋Œ€ํ•œ ์‚ฌ์šฉ๋ฒ•์— ๋Œ€ํ•ด์„œ ๋ฐฐ์šฐ์‹ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค,

๋‹ค์–‘ํ•œ ์‹ค์Šต ์˜ˆ์ œ

๋ณธ ๊ฐ•์˜์˜ ์ด๋ก ์ ์ธ ์„ค๋ช… ํ›„์—๋Š”, ๊ฐ ์„น์…˜์—์„œ ์„ค๋ช… ๋˜์—ˆ๋˜ ๋‚ด์šฉ์„ ํ† ๋Œ€๋กœ ์‹ค์Šตํ•˜์‹ค ์ˆ˜ ์žˆ๋Š” ์˜ˆ์ œ๋ฅผ ํ•จ๊ป˜ ์ œ๊ณตํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ œ๊ณต ๋˜๋Š” ์‹ค์Šต ์ฝ”๋“œ๋ฅผ ๋ณธ์ธ์˜ ํ™˜๊ฒฝ์—์„œ ์ง์ ‘ ์ˆ˜ํ–‰ํ•ด ๋ด„์œผ๋กœ์จ, Docker ์ปจํ…Œ์ด๋„ˆ์˜ ์ž‘๋™ ๊ณผ์ •์— ๋Œ€ํ•ด ๋ณด๋‹ค ์‰ฝ๊ฒŒ ํ•™์Šตํ•˜์‹ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐ•์˜์—์„œ๋Š” Docker์˜ ๊ธฐ๋ณธ ์„œ๋น„์Šค ์™ธ์— Private Registry Harbor ๋ฐ Podman ๋“ฑ๊ณผ ๊ฐ™์€ Docker ๋Œ€์ฒด ๊ธฐ์ˆ ์— ๋Œ€ํ•ด์„œ๋„ ์‹ค์Šตํ•ด ๋ณด์‹ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Capstone project (์ตœ์ข… ์‹ค์Šต ํ”„๋กœ์ ํŠธ)

๋ชจ๋“  ์ด๋ก ์ ์ธ ๊ฐ•์˜์™€ ์‹ค์Šต ํ•™์Šต์ด ์™„๋ฃŒ๋œ ํ›„์—๋Š” ์ตœ์ข… ์„น์…˜์—์„œ Capstone project๋ฅผ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋„๋ก ์ค€๋น„๋˜์—ˆ์Šต๋‹ˆ๋‹ค. Capstone project์—์„œ๋Š” ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ CI/CD ํ™˜๊ฒฝ์—์„œ ์ž๋™ํ™” ๋ฐฐํฌํ•  ์ˆ˜ ์žˆ๋„๋ก ์—ฐ๊ณ„ํ•จ๊ณผ ๋™์‹œ์—, ์˜คํ”ˆ์†Œ์Šค๋กœ ์ œ๊ณต๋˜๋Š” Docker Registry์™€์˜ ์—ฐ๊ณ„, ๊ทธ๋ฆฌ๊ณ  Orchestration ๋„๊ตฌ๋ฅผ ์ด์šฉํ•˜์—ฌ ๋ฆฌ์†Œ์Šค๋ฅผ ๊ด€๋ฆฌํ•ด ๋ณด๋Š” ์ „์ฒด ๊ณผ์ •์— ๋Œ€ํ•ด ํ•™์Šตํ•˜์‹ค ์ˆ˜ ์žˆ๋„๋ก ๊ตฌ์„ฑ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

์ด ๊ฐ•์˜๋ฅผ ๋งŒ๋“  ์‚ฌ๋žŒ

  • ็พ) ์—”์ œ์ด์›์ปดํผ๋‹ˆ ๋Œ€ํ‘œ 

  • ็พ) ๋™๊ตญ๋Œ€ํ•™๊ต ๊ตญ์ œ์ •๋ณด๋Œ€ํ•™์› ์ •๋ณด๋ณดํ˜ธํ•™๊ณผ ๋Œ€์šฐ๊ต์ˆ˜

  • ๅ‰) JP Mogan Chase AMJ Tech consultant (์ผ๋ณธ)

  • ๅ‰) ์‚ผ์„ฑ SDS CMS ์‚ฌ์—…๋ณธ๋ถ€ ์ฑ…์ž„ ์—”์ง€๋‹ˆ์–ด

์ˆ˜๊ฐ• ์ „ ์ฐธ๊ณ  ์‚ฌํ•ญ

์‹ค์Šต ํ™˜๊ฒฝ

  • ๊ฐ•์˜๋Š” MacOS ๊ธฐ์ค€์œผ๋กœ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค. Windows 10, Windows 11 ํ™˜๊ฒฝ์ด๋ผ๊ณ  Docker Desktop์ด ์„ค์น˜๋˜์–ด ์žˆ๋‹ค๋ฉด ๋Œ€๋ถ€๋ถ„์˜ ์‹ค์Šต ์˜ˆ์ œ๋ฅผ ๋”ฐ๋ผํ•˜์‹ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • ๊ฐ•์˜์—์„œ๋Š” ๋‹ค์–‘ํ•œ Docker ์ปจํ…Œ์ด๋„ˆ ์ด๋ฏธ์ง€๋ฅผ ๊ธฐ๋™ํ•˜๋ฉด์„œ ์‹ค์Šต์„ ์ง„ํ–‰ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ตœ์†Œ 8GB์ด์ƒ์˜ ๋ฉ”๋ชจ๋ฆฌ(16GB ์ด์ƒ ๊ถŒ์žฅ)์™€ 100GB์ด์ƒ์˜ ์—ฌ์œ  ์ €์žฅ๊ณต๊ฐ„์„ ์ค€๋น„ํ•˜์‹œ๊ณ  ์‹ค์Šตํ•˜์‹œ๊ธฐ๋ฅผ ๊ถŒ์žฅ ๊ถŒ์žฅ ๋“œ๋ฆฝ๋‹ˆ๋‹ค.

  • ๊ฐ•์˜์—์„œ๋Š” ์‹ค์Šต์— ์‚ฌ์šฉ๋˜๋Š” ๋ช‡๋ช‡ ์Šคํฌ๋ฆฝํŠธ ๋ฐ ์ฝ”๋“œ์— ๋Œ€ํ•ด Visual Studio Code๋ฅผ ์ด์šฉํ•ด์„œ ํ™•์ธํ•˜๊ณ  ์ˆ˜์ •ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

  • ๋‹ค์–‘ํ•œ ๋ฉ€ํ‹ฐ Host๋ฅผ ๊ตฌ์„ฑํ•˜์—ฌ Docker Swarm ํ™˜๊ฒฝ์„ ์‹ค์Šตํ•˜๊ธฐ ์œ„ํ•ด Dind(Docker in Docker) ํ˜•์‹์˜ ์ด๋ฏธ์ง€๋ฅผ ์ œ๊ณตํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

    • Dind ์ด๋ฏธ์ง€๋Š” ๊ต์œก ์ œ๊ณต์ž์— ์˜ํ•ด MacOS Intel chip, MacOS Apple chip, Windows 10, Windows 11, Ubuntu ๋ฒ„์ „์œผ๋กœ ์ œ๊ณตํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๋‹จ, ์ˆ˜๊ฐ•์ƒ์ด ์‚ฌ์šฉํ•˜์‹œ๋Š” ํ™˜๊ฒฝ์— ๋”ฐ๋ผ Dind ์ด๋ฏธ์ง€ ์‹คํ–‰์— ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.


  • ๋ณธ ๊ฐ•์˜์—์„œ์˜ ์‚ฌ์šฉ๋˜๋Š” ์‹ค์Šต ํ™˜๊ฒฝ์„ ์œ„ํ•ด Dind ์ด๋ฏธ์ง€ ์‚ฌ์šฉ์ด ์•„๋‹Œ, VM ํ™˜๊ฒฝ์„ ๊ตฌ์„ฑํ•˜์—ฌ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋„๋ก, ๋ณ„๋„์˜ ์ œ๊ณต๋˜๋Š” ์ธํ”„๋Ÿฐ ๊ฐ•์˜๋ฅผ ๋ฌด๋ฃŒ๋กœ ์ฐธ๊ณ ํ•˜์‹ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

ํ•™์Šต ์ž๋ฃŒ

  • ๊ฐ•์˜์— ์‚ฌ์šฉ๋œ ์‹ค์Šต ์˜ˆ์ œ ์ฝ”๋“œ๋Š” Github์„ ํ†ตํ•ด ๊ณต์œ  ๋ฉ๋‹ˆ๋‹ค.

    • https://github.com/joneconsulting/devops-docker


    • ๊ฐ ์„น์…˜๋ณ„๋กœ Branch๋ฅผ ๊ตฌ๋ถ„ํ•˜์—ฌ ์˜ˆ์ œ๊ฐ€ ์ž‘์„ฑ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

    • ๊ฐ•์˜ ๊ต์•ˆ์€ pdfs ๋ธŒ๋žœ์น˜์— ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.


์„ ์ˆ˜ ์ง€์‹ ๋ฐ ์œ ์˜์‚ฌํ•ญ

  • IT ์„œ๋น„์Šค์— ๋Œ€ํ•œ ๊ธฐ๋ณธ์ ์ธ ์ง€์‹

  • Client, Server, Cloud ์™€ ๊ฐ™์€ ์šฉ์–ด์— ๋Œ€ํ•œ ์ดํ•ด

  • ์›น ์„œ๋น„์Šค ๋ฐ ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์— ๋Œ€ํ•œ ๊ธฐ๋ณธ์ ์ธ ์ดํ•ด (์˜๋ฏธ์™€ ์ž‘๋™ ๊ณผ์ •)

  • Windows ํ™˜๊ฒฝ ์‚ฌ์šฉ์ž) CMD ๋ช…๋ น์–ด (dir, curl, ping, ipconfig ๋“ฑ)

  • MacOS ํ™˜๊ฒฝ ์‚ฌ์šฉ์ž) Terminal ๋ช…๋ น์–ด (ls, curl, ping, ifconfig ๋“ฑ)

  • ๊ณตํ†ต) Linux ํ™˜๊ฒฝ์˜ ๋ฌธ์„œ ํŽธ์ง‘ ํˆด์ธ VIM๋ฅผ ์ˆ˜์—…์‹œ๊ฐ„์— ์‚ฌ์šฉํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๊ธฐ๋ณธ์ ์ธ ์‚ฌ์šฉ๋ฒ•์„ ์ตํžˆ์‹œ๋ฉด ๊ฐ•์˜๋ฅผ ์ˆ˜๊ฐ•ํ•˜์‹œ๋Š”๋ฐ์— ๋” ํšจ์œจ์ ์ผ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

๐Ÿ’ก๋ณธ ๊ฐ•์˜์—์„œ ์‚ฌ์šฉ๋˜๋Š” ์‹ค์Šต ์˜ˆ์ œ๋ฅผ ์‹คํ–‰ํ•˜๊ธฐ ์œ„ํ•ด ๋‹ค์Œ์˜ ํ”„๋กœ๊ทธ๋žจ์ด ์„ค์น˜ ๋˜์–ด ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

  1. ์‹ค์Šต ํ™˜๊ฒฝ

    • ์šด์˜ ์ฒด์ œ ๋ฐ ๋ฒ„์ „(OS): Windows 10, Windows 11 ๊ฐ€๋Šฅ, MacOS Intel chip, MacOS Apple chip ๊ฐ€๋Šฅ

    • ์‚ฌ์šฉ ๋„๊ตฌ: ๊ฐ ์šด์˜์ฒด์ œ์— ๋งž๋Š” Docker Desktop ์„ค์น˜ (๊ฐ•์˜์—์„œ ์„ค์น˜ ๊ณผ์ •์— ๋Œ€ํ•ด ์‹ค์Šต ํ•จ)

    • ์—๋””ํ„ฐ: Visual Studio Code

    • PC ์‚ฌ์–‘: CPU Intel i5+, ๋ฉ”๋ชจ๋ฆฌ 8GB+ (16GB ์ด์ƒ ๊ถŒ์žฅ), ๋””์Šคํฌ 100GB+์ด ํ”„๋กœ๊ทธ๋žจ ๊ตฌ๋™์„ ์œ„ํ•œ ์ตœ์†Œ ์‚ฌ์–‘์ž…๋‹ˆ๋‹ค.

  2. ํ•™์Šต ์ž๋ฃŒ

    • ์ œ๊ณตํ•˜๋Š” ํ•™์Šต ์ž๋ฃŒ๋Š” ์‹ค์Šต ์˜ˆ์ œ์™€ PDF ๊ต์•ˆ์€ Github์„ ํ†ตํ•ด ์ œ๊ณต ๋  ์˜ˆ์ •์ž…๋‹ˆ๋‹ค.

    • ์ „์ฒด 11 Section์œผ๋กœ ๊ตฌ์„ฑ ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

  3. ์„ ์ˆ˜ ์ง€์‹ ๋ฐ ์œ ์˜์‚ฌํ•ญ

    • ํ•™์Šต ๋‚œ์ด๋„: ์ดˆ๊ธ‰ ๊ณผ์ •์œผ๋กœ IT ์„œ๋น„์Šค์— ๋Œ€ํ•œ ๊ธฐ๋ณธ์ ์ธ ์ง€์‹๊ณผ ๋ช…๋ น ํ”„๋กฌํ”„ํŠธ๋‚˜ ํ„ฐ๋ฏธ๋„์—์„œ์˜ ๊ธฐ๋ณธ์ ์ธ ๋ช…๋ น์–ด ์‚ฌ์šฉ


    • ๊ฐ•์˜์— ๋Œ€ํ•œ ์งˆ๋ฌธ์— ๋Œ€ํ•ด์„œ ์งˆ๋ฌธ ๊ฒŒ์‹œํŒ์„ ํ™œ์šฉํ•ด ์ฃผ์‹œ๊ธฐ ๋ฐ”๋ž๋‹ˆ๋‹ค.

    • ๊ฐ•์˜ ์ฝ˜ํ…์ธ  ๋ฐ ์‹ค์Šต ์˜ˆ์ œ์— ๋Œ€ํ•œ ์—…๋ฐ์ดํŠธ๋Š” ์ถ”ํ›„ ์—…๋ฐ์ดํŠธ ๊ด€๋ จ ๊ฒŒ์‹œ๊ธ€์„ ํ†ตํ•ด ๊ณต์œ ํ•ด ๋“œ๋ฆฝ๋‹ˆ๋‹ค.

    • ๋ณธ ๊ฐ•์˜์— ์‚ฌ์šฉ๋œ ์‹ค์Šต ์˜ˆ์ œ ๋ฐ ๊ฐ•์˜ ๋‚ด์šฉ์— ๋Œ€ํ•ด์„ ๋Š” ๊ฐ•์˜ ์ œ๊ณต์ž์—๊ฒŒ ์ €์ž‘๊ถŒ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐ•์˜์—์„œ ์‚ฌ์šฉ๋œ ๋‚ด์šฉ๊ณผ ์‹ค์Šต ์˜ˆ์ œ๋ฅผ ์ธํ„ฐ๋„ท์„ ํ†ตํ•ด ๊ณต์œ ํ•˜๋Š” ๊ฒƒ์€ ์ž์œ ์ด๋‚˜, ๊ฐ€๋Šฅํ•˜๋ฉด ์‚ฌ์ „์— ๊ณต์œ  ํ›„์— ๊ณต๊ฐœํ•˜์‹œ๊ธธ ๋ถ€ํƒ๋“œ๋ฆฝ๋‹ˆ๋‹ค.


์ด๋Ÿฐ ๋ถ„๋“ค๊ป˜
์ถ”์ฒœ๋“œ๋ ค์š”!

ํ•™์Šต ๋Œ€์ƒ์€
๋ˆ„๊ตฌ์ผ๊นŒ์š”?

  • ์ปจํ…Œ์ด๋„ˆ ๊ฐ€์ƒํ™” ๊ธฐ์ˆ ์— ๊ด€์‹ฌ์ด ์žˆ๋Š” ์‚ฌ๋žŒ

  • Cloud Native ๊ธฐ์ˆ ์— ๊ด€์‹ฌ์ด ์žˆ๋Š” ์‚ฌ๋žŒ

  • MSA ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์— ๋ฐฐํฌ, ์šด์˜์„ ๋‹ด๋‹นํ•˜๋Š” ์‚ฌ๋žŒ

  • CI/CDํ™˜๊ฒฝ์— ์ปจํ…Œ์ด๋„ˆ ๊ฐ€์ƒํ™” ๊ธฐ์ˆ ์„ ์ ์šฉํ•˜๊ณ  ์‹ถ์€ ์‚ฌ๋žŒ

์„ ์ˆ˜ ์ง€์‹,
ํ•„์š”ํ• ๊นŒ์š”?

  • IT ์„œ๋น„์Šค์— ๋Œ€ํ•œ ์ดํ•ด

  • ํด๋ผ์šฐ๋“œ ์„œ๋น„์Šค์— ๋Œ€ํ•œ ์ดํ•ด

  • Windows ํ™˜๊ฒฝ ์‚ฌ์šฉ์ž) CMD ๋ช…๋ น์–ด (dir, curl, ping, ipconfig ๋“ฑ)

  • MacOS ํ™˜๊ฒฝ ์‚ฌ์šฉ์ž) Terminal ๋ช…๋ น์–ด (ls, curl, ping, ifconfig ๋“ฑ)

์•ˆ๋…•ํ•˜์„ธ์š”
Dowon Lee์ž…๋‹ˆ๋‹ค.

27,639

๋ช…

์ˆ˜๊ฐ•์ƒ

1,410

๊ฐœ

์ˆ˜๊ฐ•ํ‰

1,322

๊ฐœ

๋‹ต๋ณ€

4.8

์ 

๊ฐ•์˜ ํ‰์ 

7

๊ฐœ

๊ฐ•์˜

์ €๋Š” IT ์—”์ง€๋‹ˆ์–ด์ž…๋‹ˆ๋‹ค. ์–ธ์  ๊ฐ€ ์ง์—…๋ž€์— "ํšŒ์‚ฌ์›?", "๊ฐœ๋ฐœ์ž?", "๊ฐ•์‚ฌ?" ์–ด๋–ค ๋‹จ์–ด๋ฅผ ์„ ํƒํ•ด์•ผ ํ•  ์ง€ ๊ณ ๋ฏผ์ด ๋˜์—ˆ๋˜ ๋•Œ๊ฐ€ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‹ค๊ฐ€, IT ์—”์ง€๋‹ˆ์–ด๋ผ๋Š” ํ‘œํ˜„์ด ์ œ๊ฐ€ ์ž˜ ์–ด์šธ๋ฆฌ๋Š” ์ง์—…๋ช…์ด๋ผ๋Š” ์ƒ๊ฐ์ด ๋“ค์–ด ์ง€๊ธˆ๊นŒ์ง€๋„ ์ง์—…๋ž€์—๋Š” "IT ์—”์ง€๋‹ˆ์–ด"๋ผ๊ณ  ์ ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

์ง์—…์ด๋ผ๋Š” ๊ฒƒ์€ ์ž์‹ ์˜ ์ผ์„ ๋‚˜ํƒ€๋‚ด๋Š” ๊ฒƒ์ด๊ณ , ์ผ์ด๋ผ๋Š” ๊ฒƒ์€ ์žฌ๋ฏธ์žˆ๊ณ , ๋„์›€์ด ๋˜๋Š” ์ผ์ด๋ฉด ์ข‹๊ฒ ๋‹ค๋Š” ์ƒ๊ฐ์„ ๊ฐ€์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๋ˆ„๊ตฌ๋‚˜ ๋‹ค ์›ํ•˜๋Š”๋Œ€๋กœ ์ผ์„ ํ•˜๋ฉฐ ์‚ด์ˆ˜๋Š” ์—†์ง€๋งŒ, ์ €๋Š” ์ œ๊ฐ€ ํ•˜๋Š” ์žˆ๋Š” ์ด ์ผ์„ ์ข‹์•„ํ•˜๋Š” ์žˆ๊ณ , ์ž˜ํ•˜๊ณ  ์‹ถ์–ดํ•˜๋Š” ์‚ฌ๋žŒ์ž…๋‹ˆ๋‹ค. ๊ฐœ๋ฐœ์ž๋กœ์จ, ๊ฐ•์‚ฌ๋กœ์จ, ์ปจ์„คํ„ดํŠธ๋กœ์จ์˜ ์—ญํ• ์„ ํ•ด ์˜ค๋ฉด์„œ, ๋งค๋ฒˆ ์ƒˆ๋กญ๊ฒŒ ์ถœ์‹œ๋˜๊ณ  ๋ณ€ํ™”ํ•˜๋Š” IT ์‹ ๊ธฐ์ˆ ์„ ๋”ฐ๋ผ๊ฐ€๊ธฐ์— ๊ธ‰๊ธ‰ํ•˜์ง€๋งŒ, ๊ทธ๋ž˜๋„, ๋‚จ๋“ค๋ณด๋‹ค ์กฐ๊ธˆ์ด๋ผ๋„ ๋จผ์ € ์ ‘ํ•˜๊ณ , ์ „ํŒŒํ•˜๊ณ , ์‚ฌ์šฉํ•˜๊ณ  ์‹ถ์€ ์‚ฌ๋žŒ ์ค‘ ํ•œ๋ช…์ž…๋‹ˆ๋‹ค. 

์ตœ๊ทผ ๊ด€์‹ฌ์„ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ๋ถ„์•ผ๋Š” ์˜จ๋ผ์ธ ๊ต์œก ์ปจ์„คํŒ…์ž…๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๊ด€์‹ฌ์žˆ๋Š” ๊ธฐ์ˆ ์€ Cloud Native Architecture, Blockchain, Machine Learning, Kafka, Kuberbetes ๋“ฑ์ž…๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๊ธฐ์ˆ ์€ ์‹ค์ œ๋กœ ๊ฐ•์˜๋„ ํ•˜๊ณ  ์žˆ๊ณ  ์—…๋ฌด์— ์ ์šฉํ•ด์„œ ์‚ฌ์šฉ๋„ ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ, ์›Œ๋‚™ ๋ฐฉ๋Œ€ํ•œ ์ฃผ์ œ์ด๋‹ค ๋ณด๋‹ˆ, ์•„์ง๊นŒ์ง€๋„ ๊ณ„์† ๊ณต๋ถ€ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

๋จธ๋ฆฌ์†์— ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ๊ฒƒ์€ ์ง„์ •ํ•œ ์ง€์‹์ด ์•„๋‹ˆ๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ์ €๋Š” ์ œ๊ฐ€ ๊ฐ€์ง„ ์ง€์‹๊ณผ ๊ฒฝํ—˜์„ ๋‹ค์–‘ํ•œ ๋ฐฉ๋ฒ™์„ ํ†ตํ•ด ๊ณต์œ ํ•˜๋ ค ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ , ์ƒˆ๋กœ์šด ๋ถ„์•ผ, ์ƒˆ๋กœ์šด ๊ธฐ์ˆ ์— ๊ณ„์† ๋„์ „ํ•˜๊ณ  ์žˆ๋Š” IT ์—”์ง€๋‹ˆ์–ด๊ฐ€ ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค.  

 

 

  • ็พ) ์—”์ œ์ด์›์ปดํผ๋‹ˆ ๋Œ€ํ‘œ 
  • ็พ) ๋™๊ตญ๋Œ€ํ•™๊ต ๊ตญ์ œ์ •๋ณด๋Œ€ํ•™์› ์ •๋ณด๋ณดํ˜ธํ•™๊ณผ ๋Œ€์šฐ๊ต์ˆ˜
  • ๅ‰) JP Mogan Chase AMJ Tech consultant (์ผ๋ณธ)
  • ๅ‰) ์‚ผ์„ฑ SDS CMS ์‚ฌ์—…๋ณธ๋ถ€ ์ฑ…์ž„ ์—”์ง€๋‹ˆ์–ด

 

 

๋”๋ณด๊ธฐ

์ปค๋ฆฌํ˜๋Ÿผ

์ „์ฒด

113๊ฐœ โˆ™ (20์‹œ๊ฐ„ 31๋ถ„)

๊ฐ•์˜ ๊ฒŒ์‹œ์ผ: 
๋งˆ์ง€๋ง‰ ์—…๋ฐ์ดํŠธ์ผ: 

์ˆ˜๊ฐ•ํ‰

์•„์ง ์ถฉ๋ถ„ํ•œ ํ‰๊ฐ€๋ฅผ ๋ฐ›์ง€ ๋ชปํ•œ ๊ฐ•์˜์ž…๋‹ˆ๋‹ค.
๋ชจ๋‘์—๊ฒŒ ๋„์›€์ด ๋˜๋Š” ์ˆ˜๊ฐ•ํ‰์˜ ์ฃผ์ธ๊ณต์ด ๋˜์–ด์ฃผ์„ธ์š”!