๊ณต์ง€
๋‰ด์Šค๋ ˆํ„ฐ ํ”Œ๋žซํผ ๋ณ€๊ฒฝ ์•ˆ๋‚ด

์ฃผ๊ฐ„ ์†Œ์‹์ง€

๐Ÿ”ญ์ปจํ…Œ์ด๋„ˆ ์ด๋ฏธ์ง€, ๋งŒ๋“ค๊ธฐ๋งŒ ํ•˜๋ฉด ๋์ผ๊นŒ? - ์ปจํ…Œ์ด๋„ˆ ์ด๋ฏธ์ง€์˜ ๋ณด์•ˆ ์ฑ™๊ธฐ๋Š” ๋ฐฉ๋ฒ•

์ปจํ…Œ์ด๋„ˆ ์ด๋ฏธ์ง€๋ฅผ ๋ณด์•ˆ ๊ด€์ ์—์„œ '์ž˜' ๋งŒ๋“œ๋Š” ๋ฐฉ๋ฒ•์„ ์•Œ์•„๋ด…๋‹ˆ๋‹ค.

2025.05.12 | ์กฐํšŒ 182 |
0
|
IT ์—ฌํ–‰์ž๋ฅผ ์œ„ํ•œ ์†Œ์‹์ง€์˜ ํ”„๋กœํ•„ ์ด๋ฏธ์ง€

IT ์—ฌํ–‰์ž๋ฅผ ์œ„ํ•œ ์†Œ์‹์ง€

๋Š์ž„์—†์ด ๋ณ€ํ™”ํ•˜๋Š” DevOps์™€ ํด๋ผ์šฐ๋“œ ๊ธฐ์ˆ  ์†์—์„œ ๊ธธ์„ ์žƒ์ง€ ์•Š๋„๋ก, 1์ธ ๊ฐœ๋ฐœ์ž์™€ ํŒ€์˜ ์„ฑ์žฅ์„ ๋•๋Š” ์ฃผ๊ฐ„ IT/๊ฐœ๋ฐœ ์ธ์‚ฌ์ดํŠธ๋ฅผ ์ „๋‹ฌํ•ด๋“œ๋ฆฝ๋‹ˆ๋‹ค.

์•ˆ๋…•ํ•˜์„ธ์š” ๊ตฌ๋…์ž๋‹˜, IT ์—ฌํ–‰์ž๋ฅผ ์œ„ํ•œ ์†Œ์‹์ง€์ž…๋‹ˆ๋‹ค.

์ด์ œ ์ปจํ…Œ์ด๋„ˆ ์ด๋ฏธ์ง€๋Š” ์šฐ๋ฆฌ๊ฐ€ ๊ฐœ๋ฐœ ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰ํ•  ๋•Œ ์‰ฝ๊ฒŒ ์ ‘ํ•˜๋Š” ๊ฐœ๋…์ด ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋…๋ฆฝ๋œ ํ™˜๊ฒฝ ์•ˆ์—์„œ ํŠน์ •ํ•œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ์‹คํ–‰๋˜๋Š” ๊ฑธ ๋ณด์žฅํ•ด์ฃผ๊ธฐ ๋•Œ๋ฌธ์— Kubernetes๋‚˜ ํผ๋ธ”๋ฆญ ํด๋ผ์šฐ๋“œ(AWS, GCP ๋“ฑ)๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค๋ฉด ๊ฑฐ์˜ ํ•„์ˆ˜ ์š”์†Œ๊ฐ€ ๋˜์—ˆ์ฃ .

๊ทธ๋Ÿฌ๋‹ค๋ณด๋‹ˆ ์ปจํ…Œ์ด๋„ˆ ์ด๋ฏธ์ง€๋ฅผ ์ง์ ‘ ๋งŒ๋“œ๋Š” ๊ฒฝ์šฐ๋„ ๋งŽ์Šต๋‹ˆ๋‹ค. ๊ณต๊ฐœ๋œ ๋ ˆํŒŒ์ง€ํ† ๋ฆฌ์—์„œ ๊ณต์œ ๋˜๋Š” ์ด๋ฏธ์ง€๋ฅผ ๊ทธ๋Œ€๋กœ ์จ๋„ ๋˜์ง€๋งŒ, ๋‚ด ํ”„๋กœ์ ํŠธ์— ๋งž์ถฐ์„œ ์ปค์Šคํ„ฐ๋งˆ์ด์ง•์ด ํ•„์š”ํ•œ ๋•Œ๊ฐ€ ์žˆ์œผ๋‹ˆ๊นŒ์š”. ์•„๋งˆ ๊ณต๊ฐํ•˜์‹ค ๊ฑฐ์˜ˆ์š”.

์šฐ๋ฆฌ๊ฐ€ ์ปจํ…Œ์ด๋„ˆ ์ด๋ฏธ์ง€๋ฅผ ๋งŒ๋“ค ๋•Œ ๊ฐ€์žฅ ์‹ ๊ฒฝ ์“ฐ๋Š” ๊ฑด ๋ฌด์—‡์ธ๊ฐ€์š”? ์•„๋งˆ ์›ํ•˜๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์ •์ƒ ์ž‘๋™ ์—ฌ๋ถ€์ผ ํ…๋ฐ์š”. ๊ทธ๋Ÿผ '์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ์ž˜ ๋Œ์•„๊ฐ€๋Š”' ์ปจํ…Œ์ด๋„ˆ ์ด๋ฏธ์ง€๊ฐ€ '์ž˜' ๋งŒ๋“ค์–ด์ง„ ์ปจํ…Œ์ด๋„ˆ ์ด๋ฏธ์ง€์ผ๊นŒ์š”?

 

* ํ˜„์žฌ ๋ณธ ๋‰ด์Šค๋ ˆํ„ฐ ํ”Œ๋žซํผ์— ์‹ค์Šต ๊ฐ€์ด๋“œ์— ํ•„์š”ํ•œ ๋งˆํฌ๋‹ค์šด ๋ฌธ๋ฒ•์ด ๋ชจ๋‘ ์ง€์›ํ•˜์ง€ ์•Š๋Š” ๊ด€๊ณ„๋กœ, ๋ณด๋‹ค ๋‚˜์€ ์‹ค์Šต ๊ฒฝํ—˜์„ ์œ„ํ•ด ์•„๋ž˜ ํŽ˜์ด์ง€์—์„œ ์•„ํ‹ฐํด์„ ํ™•์ธํ•˜์‹œ๋Š” ๊ฑธ ์ถ”์ฒœ๋“œ๋ ค์š”!

(์•„ํ‹ฐํด ๋‚ด์šฉ์€ ๋ชจ๋‘ ๋™์ผํ•ฉ๋‹ˆ๋‹ค.)

๐Ÿ‘‰https://aidenslab-newsletter.beehiiv.com/p/16df50d7b080dfe1

 


๐Ÿ’ฟ์ปจํ…Œ์ด๋„ˆ ์ด๋ฏธ์ง€๋ฅผ '์ž˜' ๋งŒ๋“ค์–ด์•ผ ํ•˜๋Š” ์ด์œ 

 

์ปจํ…Œ์ด๋„ˆ ์ด๋ฏธ์ง€์˜ ํ’ˆ์งˆ์€ ๋‹จ์ˆœํžˆ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์‹คํ–‰ ๊ฐ€๋Šฅ์„ฑ์„ ๋„˜์–ด์„œ, ์‹œ์Šคํ…œ์˜ ์ „๋ฐ˜์ ์ธ ๋ณด์•ˆ๊ณผ ์•ˆ์ •์„ฑ, ์šด์˜ ํšจ์œจ์„ฑ, ๋น„์šฉ๊ณผ๋„ ์—ฐ๊ด€์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๊ณ ํ’ˆ์งˆ์˜ ์ปจํ…Œ์ด๋„ˆ ์ด๋ฏธ์ง€๋Š” ์•ˆ์ •์ ์ด๊ณ  ํšจ์œจ์ ์ธ ์šด์˜ ํ™˜๊ฒฝ ๊ตฌ์ถ•์˜ ๊ธฐ๋ฐ˜์ด ๋˜๋Š” ๊ฑฐ์ฃ .

๋”ฐ๋ผ์„œ ์ด๋ฏธ์ง€ ๋นŒ๋“œ ๋‹จ๊ณ„๋ถ€ํ„ฐ ์ปจํ…Œ์ด๋„ˆ ์ด๋ฏธ์ง€ ํ’ˆ์งˆ์— ๋Œ€ํ•œ ์ธ์‹์„ ๋†’์ด๊ณ  ๋…ธ๋ ฅ์„ ๊ธฐ์šธ์ด๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค.

์ฆ‰, ์ปจํ…Œ์ด๋„ˆ ์ด๋ฏธ์ง€์˜ ์ตœ์ข… ํ’ˆ์งˆ์€ ๋Œ€๋ถ€๋ถ„ Dockerfile์— ๋ช…์‹œ๋œ ์ด๋ฏธ์ง€ ๋นŒ๋“œ ๊ณผ์ •์— ์˜ํ•ด ๊ฒฐ์ •๋ฉ๋‹ˆ๋‹ค. ์™œ๋ƒํ•˜๋ฉด...

  • ๋ฒ ์ด์Šค ์ด๋ฏธ์ง€
  • ์„ค์น˜ํ•  ํŒจํ‚ค์ง€
  • ๋ณต์‚ฌํ•  ํŒŒ์ผ
  • ์‚ฌ์šฉ์ž

์ด ๋ชจ๋“  ์š”์†Œ๊ฐ€ ์ปจํ…Œ์ด๋„ˆ ์ด๋ฏธ์ง€ ๋นŒ๋“œ ๊ณผ์ •์—์„œ ์ •ํ•ด์ง€๊ธฐ ๋•Œ๋ฌธ์ด์ฃ .

๋”ฐ๋ผ์„œ ์šด์˜ ํ™˜๊ฒฝ์—์„œ ์ด๋ฏธ์ง€๊ฐ€ ์•ˆ์ „ํ•˜๊ณ  ํšจ์œจ์ ์œผ๋กœ ๋™์ž‘ํ•˜๋ ค๋ฉด, Dockerfile ์ž‘์„ฑ ๋ฐ ๋นŒ๋“œ ๊ณผ์ •์— ๋Œ€ํ•ด ์ดํ•ดํ•˜๊ณ  ์ตœ์ ํ™”ํ•˜๋ ค๋Š” ๋…ธ๋ ฅ์ด ํ•„์ˆ˜์ž…๋‹ˆ๋‹ค.

 


๐Ÿ›ก๏ธ๋ณด์•ˆ ๊ด€์ ์—์„œ ์ž˜ ๋งŒ๋“  ์ปจํ…Œ์ด๋„ˆ ์ด๋ฏธ์ง€๋ž€ ๋ฌด์—‡์ผ๊นŒ?

 

์ฒจ๋ถ€ ์ด๋ฏธ์ง€

๊ทธ๋Ÿผ ์ž˜ ๋งŒ๋“  ์ปจํ…Œ์ด๋„ˆ ์ด๋ฏธ์ง€๋ž€ ์ •ํ™•ํžˆ ๋ฌด์—‡์ผ๊นŒ์š”?

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

  • ์•Œ๋งž์€ ๋ฒ ์ด์Šค ์ด๋ฏธ์ง€ ์„ ํƒ
  • ๋ถˆํ•„์š”ํ•œ ์š”์†Œ ์ œ๊ฑฐ
  • ์ตœ์†Œ ๊ถŒํ•œ์œผ๋กœ ์‹คํ–‰

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

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

 


โœจ์ปจํ…Œ์ด๋„ˆ ์ด๋ฏธ์ง€์˜ ๋ณด์•ˆ์„ฑ์„ ์ฑ™๊ธฐ๋Š” ํŒ

 

1๏ธโƒฃ ๋‚˜์—๊ฒŒ ๋งž๋Š” ๋ฒ ์ด์Šค ์ด๋ฏธ์ง€ ์„ ํƒํ•˜๊ธฐ (Alpine vs Distroless)

๋ฒ ์ด์Šค ์ด๋ฏธ์ง€๋Š” ์ตœ์ข… ์ด๋ฏธ์ง€ ๋ณด์•ˆ๊ณผ ์ด๋ฏธ์ง€ ํฌ๊ธฐ ๋ชจ๋‘์— ์ง์ ‘์ ์ธ ์˜ํ–ฅ์„ ๋ฏธ์น˜๋Š” ์•„์ฃผ ์ค‘์š”ํ•œ ์š”์†Œ์ž…๋‹ˆ๋‹ค.

ํŠนํžˆ, ์ตœ์†Œ ๋ฒ ์ด์Šค ์ด๋ฏธ์ง€๋Š” ์šด์˜์ฒด์ œ ๊ตฌ์„ฑ ์š”์†Œ๊ฐ€ ๊ทน๋„๋ก ์ œํ•œ์ ์œผ๋กœ ํฌํ•จ๋˜์–ด ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์ด๋ฏธ์ง€ ํฌ๊ธฐ์™€ ๋ณด์•ˆ ๊ณต๊ฒฉ ํ‘œ๋ฉด์„ ํšจ๊ณผ์ ์œผ๋กœ ์ค„์ด๋Š” ํšจ๊ณผ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ฐ€์žฅ ๋งŽ์ด ์‚ฌ์šฉ๋˜๋Š” ์ตœ์†Œ ๋ฒ ์ด์Šค ์ด๋ฏธ์ง€๋กœ๋Š” Alpine๊ณผ Distroless๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

  • Alpine:
    • ๊ฐ€๋ฒผ์šฐ๋ฉด์„œ ํŒจํ‚ค์ง€ ๊ด€๋ฆฌ๋„ ์šฉ์ดํ•ฉ๋‹ˆ๋‹ค.
    • C ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋กœ musl libc๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ๋•Œ๋ฌธ์— glibc๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜๊ณผ๋Š” ํ˜ธํ™˜์„ฑ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜์—ฌ ์ถ”๊ฐ€ ํŒจํ‚ค์ง€๋ฅผ ์„ค์น˜ํ•ด์•ผ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • Distroless:
    • ์‰˜๊ณผ ๊ธฐ๋ณธ ๋„๊ตฌ๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ์ง€ ์•Š์•„ ๋ณด์•ˆ์„ฑ์ด ๋†’๊ณ  Alpine๋ณด๋‹ค ๋” ๊ฒฝ๋Ÿ‰ํ™”๋œ ๋ฒ ์ด์Šค ์ด๋ฏธ์ง€์ž…๋‹ˆ๋‹ค.
    • ํ•˜์ง€๋งŒ ์‰˜์ด ํฌํ•จ๋˜์–ด์žˆ์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ์ปจํ…Œ์ด๋„ˆ ์‹คํ–‰ ํ›„ ๋””๋ฒ„๊น…์ด ์–ด๋ ต๋‹ค๋Š” ๋‹จ์ ๋„ ์กด์žฌํ•ฉ๋‹ˆ๋‹ค.

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

 

2๏ธโƒฃ Dockerfile 'RUN' ์ง€์‹œ์–ด๋กœ ์ด๋ฏธ์ง€ ๋‚ด์˜ ๋ถˆํ•„์š”ํ•œ ์š”์†Œ ์ œ๊ฑฐํ•˜๊ธฐ

๋นŒ๋“œ ๊ณผ์ •์—์„œ ์ƒ์„ฑ๋œ ๋ถˆํ•„์š”ํ•œ ํŒŒ์ผ์ด๋‚˜ ์บ์‹œ๋ฅผ ์ œ๊ฑฐํ•˜๋ฉด ์ปจํ…Œ์ด๋„ˆ์— ๋Œ€ํ•œ ๋ณด์•ˆ ๊ณต๊ฒฉ ํ‘œ๋ฉด์„ ์ถ•์†Œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Dockerfile์˜ 'RUN' ์ง€์‹œ์–ด๋กœ ํ•„์š”ํ•œ ํŒจํ‚ค์ง€๋ฅผ ๋ชจ๋‘ ์„ค์น˜ํ–ˆ๋‹ค๋ฉด, 'apt-get clean'์ด๋‚˜ ์บ์‹œ ํŒŒ์ผ ์‚ญ์ œ ๋ช…๋ น์–ด๋„ ํ•จ๊ป˜ ์‹คํ–‰์‹œ์ผœ๋ณด์„ธ์š”. ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋™์ž‘์— ํ•„์š”ํ•˜์ง€ ์•Š์œผ๋ฉด์„œ ๋ณด์•ˆ ์‚ฌ๊ณ ์— ์•…์šฉ๋  ์ˆ˜ ์žˆ๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์ง€์šธ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด ๋ฐฉ๋ฒ•์€ ์ตœ์ข… ์ด๋ฏธ์ง€ ํฌ๊ธฐ๋ฅผ ์ค„์ด๋Š” ๋ฐ์—๋„ ๋„์›€์ด ๋ฉ๋‹ˆ๋‹ค.

 

3๏ธโƒฃ 'root'๊ฐ€ ์•„๋‹Œ ์œ ์ €๋กœ ์ปจํ…Œ์ด๋„ˆ ์‹คํ–‰ํ•˜๊ธฐ

์ปจํ…Œ์ด๋„ˆ ๋‚ด๋ถ€ ํ”„๋กœ์„ธ์Šค๊ฐ€ ๊ธฐ๋ณธ์ ์œผ๋กœ 'root' ๊ถŒํ•œ์œผ๋กœ ์‹คํ–‰๋  ๊ฒฝ์šฐ, ๋ณด์•ˆ ์‚ฌ๊ณ  ์‹œ ์œ„ํ—˜์ด ๋”์šฑ ์ปค์ง‘๋‹ˆ๋‹ค.

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

Dockerfile์— 'RUN' ์ง€์‹œ์–ด๋กœ root๊ฐ€ ์•„๋‹Œ ์œ ์ €๋ฅผ ์ƒ์„ฑํ•˜๊ณ  'USER' ์ง€์‹œ์–ด๋กœ ์ƒ์„ฑํ•œ ์‚ฌ์šฉ์ž๋ฅผ ์ง€์ •ํ•˜๋ฉด ํ•ด๋‹น ์œ ์ €์˜ ๊ถŒํ•œ์œผ๋กœ ์ด๋ฏธ์ง€ ๋‚ด ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•˜๋„๋ก ์„ค์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ข€ ๋” ์‰ฌ์šด ์ดํ•ด๋ฅผ ์œ„ํ•ด ์•„๋ž˜ Dockerfile ์˜ˆ์‹œ ์ฝ”๋“œ๋ฅผ ํ™•์ธํ•ด๋ณด์„ธ์š”.

์ฒจ๋ถ€ ์ด๋ฏธ์ง€

 

4๏ธโƒฃ ์ด๋ฏธ์ง€ ๋นŒ๋“œ ์ค‘์— ๋ฏผ๊ฐ์ •๋ณด๋Š” ์ œ์™ธํ•˜๊ธฐ

๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋น„๋ฐ€๋ฒˆํ˜ธ๋‚˜ API ํ‚ค, ํด๋ผ์šฐ๋“œ ์ž๊ฒฉ ์ฆ๋ช… ๋“ฑ ๋ฏผ๊ฐํ•œ ์ •๋ณด๋ฅผ ์ด๋ฏธ์ง€ ๋นŒ๋“œ ๊ณผ์ •์— ํฌํ•จ์‹œํ‚ค๋Š” ๊ฒƒ์€ ๋งค์šฐ ์œ„ํ—˜ํ•ฉ๋‹ˆ๋‹ค.

'ADD'๋‚˜ 'COPY'๋กœ ์ด๋ฏธ์ง€์— ๋ฏผ๊ฐ์ •๋ณด๊ฐ€ ํฌํ•จ๋œ ํŒŒ์ผ์„ ๋„ฃ๊ฑฐ๋‚˜, '--build-arg'๋กœ ๋ฏผ๊ฐ์ •๋ณด ๊ฐ’์„ ์ „๋‹ฌํ•˜๋ฉด ์ด๋ฏธ์ง€ ๋ ˆ์ด์–ด์— ํ•ด๋‹น ๋ฐ์ดํ„ฐ๊ฐ€ ๋‚จ๊ธฐ ๋•Œ๋ฌธ์— ์‰ฝ๊ฒŒ ๋…ธ์ถœ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ทธ๋ž˜์„œ ๋ฏผ๊ฐ์ •๋ณด๋Š” ์ด๋ฏธ์ง€ ๋นŒ๋“œ ์‹œ์ ์ด ์•„๋‹Œ ์ปจํ…Œ์ด๋„ˆ ์‹คํ–‰ ์‹œ์ ์— ์•ˆ์ „ํ•œ ๋ฐฉ๋ฒ•์œผ๋กœ ์ฃผ์ž…๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

 

5๏ธโƒฃ ์ปจํ…Œ์ด๋„ˆ ์ด๋ฏธ์ง€ ๋ณด์•ˆ ํˆด ์‚ฌ์šฉํ•˜๊ธฐ

Trivy๋‚˜ Clair๋ผ๋Š” ์ปจํ…Œ์ด๋„ˆ ์ด๋ฏธ์ง€ ๋ณด์•ˆ ํˆด์„ ์‚ฌ์šฉํ•˜๋ฉด ๋‚ด๊ฐ€ ๋งŒ๋“  ์ด๋ฏธ์ง€, ๋˜๋Š” ๋‚ด๊ฐ€ ์‚ฌ์šฉํ•˜๋ ค๋Š” ์ด๋ฏธ์ง€์— ๋ณด์•ˆ ์ทจ์•ฝ์ ์ด ์žˆ๋Š”์ง€ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • Trivy:
    • ์ปจํ…Œ์ด๋„ˆ ์ด๋ฏธ์ง€, ํŒŒ์ผ ์‹œ์Šคํ…œ, Git ๋ ˆํŒŒ์ง€ํ† ๋ฆฌ ๋“ฑ ๋‹ค์–‘ํ•œ ๋Œ€์ƒ์„ ๋น ๋ฅด๊ณ  ์‰ฝ๊ฒŒ ์Šค์บ”ํ•˜๋Š” ์˜คํ”ˆ์†Œ์Šค ์ทจ์•ฝ์  ํƒ์ง€ ๋„๊ตฌ์ž…๋‹ˆ๋‹ค.
    • ์šด์˜์ฒด์ œ ํŒจํ‚ค์ง€๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ข…์†์„ฑ๊นŒ์ง€ ๊ฒ€์‚ฌ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.
    • CI/CD ํŒŒ์ดํ”„๋ผ์ธ์— Trivy๋กœ ์Šค์บ”ํ•˜๋Š” ์Šคํ…Œ์ด์ง€๋ฅผ ์ถ”๊ฐ€ํ•˜๋ฉด ๋ณด์•ˆ ์ทจ์•ฝ์ ์ด ํฌํ•จ๋œ ์ด๋ฏธ์ง€๊ฐ€ ์šด์˜ ํ™˜๊ฒฝ์— ๋ฐฐํฌ๋˜๋Š” ๊ฒƒ์„ ์ฐจ๋‹จํ•˜๋Š” '๋ณด์•ˆ ๊ฒŒ์ดํŠธ์›จ์ด' ์—ญํ• ์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • Clair:
    • ์ปจํ…Œ์ด๋„ˆ ์ด๋ฏธ์ง€์˜ ๊ตฌ์„ฑ์š”์†Œ๋ฅผ ๋ถ„์„ํ•ด์„œ ์ทจ์•ฝ์ ์„ ๋ณด๊ณ ํ•ด์ฃผ๋Š” ์˜คํ”ˆ์†Œ์Šค ๋„๊ตฌ์ž…๋‹ˆ๋‹ค.
    • ์ตœ์‹  ์ทจ์•ฝ์ ์„ ์ฃผ๊ธฐ์ ์œผ๋กœ ์—…๋ฐ์ดํŠธํ•˜๋Š” ๊ธฐ๋Šฅ๊ณผ Webhook์„ ํ™œ์šฉํ•œ ์•Œ๋ฆผ ๊ธฐ๋Šฅ์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.
    • Trivy์™€ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ CI/CD ํŒŒ์ดํ”„๋ผ์ธ์— ์ ์šฉํ•˜์—ฌ ๋ฐฐํฌ ์ „ ์ปจํ…Œ์ด๋„ˆ ์ด๋ฏธ์ง€ ์Šค์บ”ํ•  ์ˆ˜ ์žˆ๊ณ , ์Šค์บ” ๊ฒฐ๊ณผ๋ฅผ ์•Œ๋ฆผ ๊ธฐ๋Šฅ์œผ๋กœ ํŒ€ ๋‚ด์— ์ „ํŒŒํ•˜๋Š” ๋“ฑ์˜ ํ™œ์šฉ์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.
    • Clair์— ๋Œ€ํ•ด ๊ด€์‹ฌ์ด ์ƒ๊ธฐ์…จ๋‹ค๋ฉด ์ œ๊ฐ€ ์ด์ „์— ์†Œ๊ฐœํ•œ ๊ธ€์„ ํ™•์ธํ•ด๋ณด์„ธ์š”. 

 


๐Ÿ”ญ๋งˆ์น˜๋ฉฐ...

 

์ปจํ…Œ์ด๋„ˆ ์ด๋ฏธ์ง€๋Š” ๊ฐœ๋ฐœ ๊ณผ์ •์—์„œ ํ•œ ๋ฒˆ ๋งŒ๋“ค๊ณ  ๋๋‚˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๊ธฐ ๋•Œ๋ฌธ์— ์ง€์†์ ์ธ ๊ด€๋ฆฌ๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

์ƒˆ๋กœ์šด ๋ณด์•ˆ ์ทจ์•ฝ์ ์€ ์ง€๊ธˆ๋„ ๋Š์ž„์—†์ด ๋ฐœ๊ฒฌ๋˜๊ณ , ์ปจํ…Œ์ด๋„ˆ ์ด๋ฏธ์ง€๊ฐ€ ์‚ฌ์šฉํ•˜๋Š” ๋ฒ ์ด์Šค ์ด๋ฏธ์ง€๋‚˜ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ข…์†์„ฑ๋„ ์—…๋ฐ์ดํŠธ๊ฐ€ ํ•„์š”ํ•˜์ฃ .

์‹œ๊ฐ„์ด ์ง€๋‚ ์ˆ˜๋ก ์ปจํ…Œ์ด๋„ˆ ์ด๋ฏธ์ง€์˜ ๋ณด์•ˆ ์ƒํƒœ์™€ ์ตœ์ ์„ฑ ๋ชจ๋‘ ์ €ํ•˜๋  ๊ฐ€๋Šฅ์„ฑ์ด ์žˆ๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

 

๊ทธ๋ ‡๊ธฐ ๋•Œ๋ฌธ์— ์ปจํ…Œ์ด๋„ˆ ์ด๋ฏธ์ง€์˜ ์•ˆ์ •์„ฑ๊ณผ ์ตœ์‹  ์ƒํƒœ๋ฅผ ์œ ์ง€ํ•˜๋ ค๋ฉด ์ •๊ธฐ์ ์ธ ์ทจ์•ฝ์  ์Šค์บ”, ๋ฒ ์ด์Šค ์ด๋ฏธ์ง€ ๋ฐ ์ข…์†์„ฑ ์—…๋ฐ์ดํŠธ๊ฐ€ ํฌํ•จ๋œ ์žฌ๋นŒ๋“œ ํ”„๋กœ์„ธ์Šค๊ฐ€ ์ง€์†์ ์œผ๋กœ ์ด๋ฃจ์–ด์ ธ์•ผ ํ•ฉ๋‹ˆ๋‹ค.

ํ•˜์ง€๋งŒ ์ด๋Ÿฐ ์ž‘์—…์„ ์ˆ˜๋™์œผ๋กœ ์ง์ ‘ ํ•˜๊ธฐ์—” ํ•œ๊ณ„๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

 

์ด๋•Œ CI/CD ํŒŒ์ดํ”„๋ผ์ธ์„ ํ™œ์šฉํ•ด์„œ ์ปจํ…Œ์ด๋„ˆ ์ด๋ฏธ์ง€ ๋นŒ๋“œ์™€ ์—…๋กœ๋“œ๋ฅผ ์ž๋™ํ™”ํ•˜๋ฉด ํšจ์œจ์„ฑ๊ณผ ๋ฐ˜๋ณต ๊ฐ€๋Šฅ์„ฑ์ด ๋ณด์žฅ๋ฉ๋‹ˆ๋‹ค.

์—ฌ๊ธฐ์— ์ด์ „์— ์‚ดํŽด๋ดค๋˜ Trivy๋‚˜ Clair์˜ ์ž๋™ ๋ณด์•ˆ ์Šค์บ” ๊ธฐ๋Šฅ์„ ํ™œ์šฉํ•˜๋ฉด ์ด๋ฏธ์ง€ ๋‚ด์— ์ž ์žฌํ•˜๊ณ  ์žˆ๋˜ ๋ฌธ์ œ๋ฅผ ์กฐ๊ธฐ์— ๋ฐœ๊ฒฌํ•˜๋Š” ๋ฐ์— ํฐ ๋„์›€์ด ๋˜์ฃ .

 

์ง„ํ–‰ ์ค‘์ธ ํ”„๋กœ์ ํŠธ์— ์ปจํ…Œ์ด๋„ˆ ์ด๋ฏธ์ง€๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค๋ฉด, ๋ณด์•ˆ ๊ด€์ ์—์„œ ๊ฐœ์„ ํ•  ์ ์€ ์—†๋Š”์ง€ ํ•œ๋ฒˆ ์‚ดํŽด๋ณด๋Š” ๊ฑด ์–ด๋–จ๊นŒ์š”?

์š”์ฆ˜ IT ์—…๊ณ„์—์„œ ๋ณด์•ˆ์ด ํ™”๋‘๊ฐ€ ๋˜๊ณ  ์žˆ๋Š” ๋งŒํผ, ๋ณด์•ˆ์— ๋Œ€ํ•œ ์‹œ๊ฐ์ด ๋„“์–ด์งˆ ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ํŒ€์—๋„ ๊ธฐ์—ฌํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐํšŒ๊ฐ€ ๋ ์ง€๋„ ๋ชจ๋ฅด๋‹ˆ๊นŒ์š”!

์˜ค๋Š˜ ์ด์•ผ๊ธฐ๊ฐ€ ์—ฌ๋Ÿฌ๋ถ„์˜ ์—ฌ์ •์— ๋„์›€์ด ๋˜์—ˆ๊ธฐ๋ฅผ ๋ฐ”๋ž๋‹ˆ๋‹ค.

๊ทธ๋Ÿผ, ๋‹ค์Œ ์†Œ์‹์ง€์—์„œ ๋ณด๋‹ค ์•Œ์ฐจ๊ณ  ํฅ๋ฏธ๋กœ์šด ๋‚ด์šฉ์œผ๋กœ ์ฐพ์•„๋ต™๊ฒ ์Šต๋‹ˆ๋‹ค.

์˜ค๋Š˜๋„ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค, ๊ตฌ๋…์ž๋‹˜ ๐Ÿ˜บ

 


๐Ÿ”—References

- https://www.docker.com/blog/understanding-the-docker-user-instruction/

 

 

์ด๋ฒˆ ์†Œ์‹์ง€ ๋‚ด์šฉ์€ ์–ด๋– ์…จ๋‚˜์š”? ์†Œ์‹์ง€๋ฅผ ๋” ๋‚˜์€ ๋ฐฉํ–ฅ์œผ๋กœ ๊ฐœ์„ ํ•˜๊ธฐ ์œ„ํ•ด ์•„๋ž˜ ํผ์—์„œ 1~2๋ถ„ ์ •๋„๋ฉด ๋๋‚˜๋Š” ์งง์€ ํ”ผ๋“œ๋ฐฑ์„ ๋ฐ›๊ณ  ์žˆ์–ด์š”.๐Ÿ‘‡

https://forms.gle/jjkvp9htV3atYLHG8

์—ฌ๋Ÿฌ๋ถ„๋“ค์˜ ์†Œ์ค‘ํ•œ ์˜๊ฒฌ์— ํ•ญ์ƒ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค!

 

๋ณธ ์†Œ์‹์ง€ ์•„์นด์ด๋น™ ๋ฐ ๋‹ค์–‘ํ•œ ์ •๋ณด๋ฅผ ๊ณต์œ ํ•˜๋Š” ๋ธ”๋กœ๊ทธ๋„ ์šด์˜ ์ค‘์ž…๋‹ˆ๋‹ค :)

๐Ÿ”ญIT ์—ฌํ–‰์ž๋ฅผ ์œ„ํ•œ ์•ˆ๋‚ด์„œ

 

๋‹ค๊ฐ€์˜ฌ ๋‰ด์Šค๋ ˆํ„ฐ๊ฐ€ ๊ถ๊ธˆํ•˜์‹ ๊ฐ€์š”?

์ง€๊ธˆ ๊ตฌ๋…ํ•ด์„œ ์ƒˆ๋กœ์šด ๋ ˆํ„ฐ๋ฅผ ๋ฐ›์•„๋ณด์„ธ์š”

โœ‰๏ธ

์ด๋ฒˆ ๋‰ด์Šค๋ ˆํ„ฐ ์–ด๋– ์…จ๋‚˜์š”?

IT ์—ฌํ–‰์ž๋ฅผ ์œ„ํ•œ ์†Œ์‹์ง€ ๋‹˜์—๊ฒŒ โ˜•๏ธ ์ปคํ”ผ์™€ โœ‰๏ธ ์ชฝ์ง€๋ฅผ ๋ณด๋‚ด๋ณด์„ธ์š”!

๋Œ“๊ธ€

์˜๊ฒฌ์„ ๋‚จ๊ฒจ์ฃผ์„ธ์š”

ํ™•์ธ
์˜๊ฒฌ์ด ์žˆ์œผ์‹ ๊ฐ€์š”? ์ œ์ผ ๋จผ์ € ๋Œ“๊ธ€์„ ๋‹ฌ์•„๋ณด์„ธ์š” !

๋‹ค๋ฅธ ๋‰ด์Šค๋ ˆํ„ฐ

ยฉ 2025 IT ์—ฌํ–‰์ž๋ฅผ ์œ„ํ•œ ์†Œ์‹์ง€

๋Š์ž„์—†์ด ๋ณ€ํ™”ํ•˜๋Š” DevOps์™€ ํด๋ผ์šฐ๋“œ ๊ธฐ์ˆ  ์†์—์„œ ๊ธธ์„ ์žƒ์ง€ ์•Š๋„๋ก, 1์ธ ๊ฐœ๋ฐœ์ž์™€ ํŒ€์˜ ์„ฑ์žฅ์„ ๋•๋Š” ์ฃผ๊ฐ„ IT/๊ฐœ๋ฐœ ์ธ์‚ฌ์ดํŠธ๋ฅผ ์ „๋‹ฌํ•ด๋“œ๋ฆฝ๋‹ˆ๋‹ค.

๋‰ด์Šค๋ ˆํ„ฐ ๋ฌธ์˜eduukulelekim@gmail.com

๋ฉ”์ผ๋ฆฌ ๋กœ๊ณ 

๋„์›€๋ง ์ž์ฃผ ๋ฌป๋Š” ์งˆ๋ฌธ ์˜ค๋ฅ˜ ๋ฐ ๊ธฐ๋Šฅ ๊ด€๋ จ ์ œ๋ณด ๋‰ด์Šค๋ ˆํ„ฐ ๊ด‘๊ณ  ๋ฌธ์˜

์„œ๋น„์Šค ์ด์šฉ ๋ฌธ์˜admin@team.maily.so

๋ฉ”์ผ๋ฆฌ ์‚ฌ์—…์ž ์ •๋ณด

๋ฉ”์ผ๋ฆฌ (๋Œ€ํ‘œ์ž: ์ดํ•œ๊ฒฐ) | ์‚ฌ์—…์ž๋ฒˆํ˜ธ: 717-47-00705 | ์„œ์šธ ์„œ์ดˆ๊ตฌ ๊ฐ•๋‚จ๋Œ€๋กœ53๊ธธ 8, 8์ธต 11-7ํ˜ธ

์ด์šฉ์•ฝ๊ด€ | ๊ฐœ์ธ์ •๋ณด์ฒ˜๋ฆฌ๋ฐฉ์นจ | ์ •๊ธฐ๊ฒฐ์ œ ์ด์šฉ์•ฝ๊ด€ | ๋ผ์ด์„ ์Šค