ํ”ผ๋“œ๋กœ ๋Œ์•„๊ฐ€๊ธฐ
๐Ÿณ My Docker Journey: From Zero to "It Works on My Machine" (For Real This Time ๐Ÿ˜‚!)
Dev.toDev.to
DevOps

ํ™˜๊ฒฝ ์˜์กด์„ฑ ์ œ๊ฑฐ, Docker Compose๋กœ ๊ตฌ์ถ•ํ•œ Full Stack ์ž๋™ํ™” ํŒŒ์ดํ”„๋ผ์ธ

๐Ÿณ My Docker Journey: From Zero to "It Works on My Machine" (For Real This Time ๐Ÿ˜‚!)

Laura2026๋…„ 4์›” 7์ผ8๋ถ„beginner

Context

๊ฐœ๋ฐœ ํ™˜๊ฒฝ๋งˆ๋‹ค ์ƒ์ดํ•œ ์ข…์†์„ฑ์œผ๋กœ ์ธํ•œ "It works on my machine" ๋ฌธ์ œ ๋ฐœ์ƒ. ๋‹ค์ค‘ ์„œ๋น„์Šค ๊ฐ„์˜ ๋ณต์žกํ•œ ๋„คํŠธ์›Œํฌ ์—ฐ๊ฒฐ ๋ฐ ์ˆ˜๋™ ๋ฐฐํฌ ๊ณผ์ •์˜ ๋น„ํšจ์œจ์„ฑ ์กด์žฌ.

Technical Solution

  • Docker๋ฅผ ํ™œ์šฉํ•˜์—ฌ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜๊ณผ ๋ชจ๋“  ์ข…์†์„ฑ์„ ๋‹จ์ผ ์ปจํ…Œ์ด๋„ˆ๋กœ ํŒจํ‚ค์ง•ํ•˜๋Š” ๊ฒฉ๋ฆฌ ํ™˜๊ฒฝ ๊ตฌ์ถ•
  • MySQL, PHPMyAdmin, PostgreSQL, pgAdmin ๋“ฑ ๋‹ค์ค‘ ์„œ๋น„์Šค๋ฅผ Docker Compose๋กœ ์ •์˜ํ•˜์—ฌ ๋‹จ์ผ ๋ช…๋ น์–ด๋กœ ์˜ค์ผ€์ŠคํŠธ๋ ˆ์ด์…˜ํ•˜๋Š” ๊ตฌ์กฐ
  • Node.js, Nginx, MySQL ๊ธฐ๋ฐ˜์˜ 3-Tier ์•„ํ‚คํ…์ฒ˜๋ฅผ ์„ค๊ณ„ํ•˜๊ณ  ์ปจํ…Œ์ด๋„ˆ ๋„คํŠธ์›Œํฌ ๋ฐ ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋ฅผ ํ†ตํ•œ ์„œ๋น„์Šค ๊ฐ„ ํ†ต์‹  ์ตœ์ ํ™”
  • Java API, Go Web App, PostgreSQL์ด ํฌํ•จ๋œ Full Stack ํ™˜๊ฒฝ์„ ๊ตฌ์ถ•ํ•˜๊ณ  ์ƒํ˜ธ ๊ฐ„์˜ ์‹ฌ๋ฆฌ์Šคํ•œ ๋ฐ์ดํ„ฐ ํ๋ฆ„ ๊ตฌํ˜„
  • git describe ๊ธฐ๋ฐ˜์˜ Semantic Versioning ์ ์šฉ ๋ฐ Docker Image ๋นŒ๋“œ, ํƒœ๊น…, Docker Hub ํ‘ธ์‹œ, ๋ฐฐํฌ๋ฅผ ์ž๋™ํ™”ํ•˜๋Š” Bash ์Šคํฌ๋ฆฝํŠธ ์„ค๊ณ„

Key Takeaway

์ธํ”„๋ผ๋ฅผ ์ฝ”๋“œํ™”(IaC)ํ•˜์—ฌ ํ™˜๊ฒฝ ์ผ๊ด€์„ฑ์„ ํ™•๋ณดํ•˜๊ณ , ์„œ๋น„์Šค ๊ฐ„ ๊ฒฐํ•ฉ๋„๋ฅผ ๋‚ฎ์ถ˜ ๊ฒฉ๋ฆฌ๋œ ์ปจํ…Œ์ด๋„ˆ ์„ค๊ณ„๊ฐ€ ๋ฐฐํฌ ์•ˆ์ •์„ฑ์˜ ํ•ต์‹ฌ์ž„.


๋‹ค์ค‘ ์„œ๋น„์Šค ํ™˜๊ฒฝ ๊ตฌ์ถ• ์‹œ ๋‹จ์ผ ์ปจํ…Œ์ด๋„ˆ ์ œ์–ด ํ›„ Docker Compose๋กœ ํ™•์žฅํ•˜๊ณ , ๋ฒ„์ „ ๊ด€๋ฆฌ ์ž๋™ํ™” ์Šคํฌ๋ฆฝํŠธ๋ฅผ ํ†ตํ•ด ๋ฐฐํฌ ํœด๋จผ ์—๋Ÿฌ๋ฅผ ๋ฐฉ์ง€ํ•  ๊ฒƒ

์›๋ฌธ ์ฝ๊ธฐ