๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
CS/Book

[Cloud Native] Ch2 ํด๋ผ์šฐ๋“œ ๋„ค์ดํ‹ฐ๋ธŒ ํŒจํ„ด ๋ฐ ๊ธฐ์ˆ 

by bona.com 2024. 6. 30.

๐Ÿ“š <ํด๋ผ์šฐ๋“œ ๋„ค์ดํ‹ฐ๋ธŒ ์Šคํ”„๋ง ์ธ ์•ก์…˜> ์„ ์ฝ๊ณ  ๊ทธ ๋‚ด์šฉ์„ ์ •๋ฆฌํ•˜์˜€์Šต๋‹ˆ๋‹ค 

 

โ˜‘๏ธ Cloud Native

์•ž์œผ๋กœ ์„œ๋กœ ๋‹ค๋ฅธ ํด๋ผ์šฐ๋“œ ๋„ค์ดํ‹ฐ๋ธŒ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋งŒ๋“ค ์˜ˆ์ •์ด๋‹ค.

๊ทธ๋ž˜์„œ Cloud-Native-Spring์ด๋ผ๋Š” ๋ ˆํฌ์ง€ํ† ๋ฆฌ๋ฅผ ํ†ตํ•ด ์ฝ”๋“œ๋ฅผ ์ €์žฅํ•˜๊ณ ์ž ํ•œ๋‹ค.

https://github.com/leeeyubin/Cloud-Native-Spring

 

ํŒŒ์ผ์„ ์ƒ์„ฑํ–ˆ์œผ๋ฉด ํ„ฐ๋ฏธ๋„ ์ฐฝ์„ ์—ด์–ด ๊ทธ๋ž˜๋“ค test ์ž‘์—…์„ ์‹คํ–‰ํ•œ๋‹ค.

./gradlew test

 

์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ตฌํ˜„์ด ๋๋‚ฌ์œผ๋ฏ€๋กœ ์ด์ œ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋‹ค.

์ด์ œ ์Šคํ”„๋ง ๋ถ€ํŠธ์˜ ๊ทธ๋ž˜๋“ค ํ”Œ๋Ÿฌ๊ทธ์ธ์ด ์ œ๊ณตํ•˜๋Š” bootRun์„ ์‚ฌ์šฉํ•ด๋ณด์ž.

./gradlew bootRun

 

์œ„์˜ ๋ช…๋ น์„ ํ†ตํ•ด ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ์ฆ‰์‹œ ์‹คํ–‰๋˜๊ณ  ์š”์ฒญ์„ ์ˆ˜๋ฝํ•  ์ค€๋น„๊ฐ€ ๋˜์—ˆ๋‹ค.

 

์–ด๋–ค ํด๋ผ์šฐ๋“œ ์ธํ”„๋ผ๋กœ๋„ ๋ฐฐํฌํ•  ์ˆ˜ ์žˆ์œผ๋ ค๋ฉด ๋จผ์ € ์ปจํ…Œ์ด๋„ˆํ™”ํ•ด์•ผ ํ•œ๋‹ค. ๋„์ปค์˜ ์„ธ๊ณ„๋กœ ๋“ค์–ด๊ฐ€๋ณด์ž.

 

โœ… ๋„์ปค๋ฅผ ํ†ตํ•œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ปจํ…Œ์ด๋„ˆํ™”

์ปจํ…Œ์ด๋„ˆํ™”๊ฐ€ ์™œ ์ค‘์š”ํ• ๊นŒ?

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

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

 

๋„์ปค ์„œ๋ฒ„(Docker server)์—๋Š” ๋„์ปค ๋ฐ๋ชฌ(Docker daemon)์ด ํฌํ•จ๋˜์–ด ์žˆ๋Š”๋ฐ ๋„์ปค ๋ฐ๋ชฌ์€ ๋ฐฑ๊ทธ๋ผ์šด๋“œ์—์„œ ์‹คํ–‰ํ•˜๋ฉด์„œ ์ด๋ฏธ์ง€, ์ปจํ…Œ์ด๋„ˆ, ๋ณผ๋ฅจ, ๋„คํŠธ์›Œํฌ ๊ฐ™์€ ๋„์ปค ๊ฐ์ฒด๋ฅผ ๋งŒ๋“ค๊ณ  ๊ด€๋ฆฌํ•œ๋‹ค.

 

๋„์ปค ์„œ๋ฒ„๊ฐ€ ์‹คํ–‰๋˜๋Š” ์ปดํ“จํ„ฐ๋ฅผ ๋„์ปค ํ˜ธ์ŠคํŠธ(Docker host)๋ผ๊ณ  ํ•œ๋‹ค.

* ์ปดํ“จํ„ฐ์—์„œ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์‹คํ–‰ํ•˜๋ ค๋ฉด ์ปดํ“จํ„ฐ๊ฐ€ ๋„์ปค ํ˜ธ์ŠคํŠธ์—ฌ์•ผ ํ•˜๊ณ  ๋„์ปค ๋ฐ๋ชฌ์ด ์‹คํ–‰ ์ค‘์ด์–ด์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ปจํ…Œ์ด๋„ˆ์˜ ์ด์‹์„ฑ์ด ๊ฐ€๋Šฅํ•˜๋‹ค.

 

๋„์ปค ํด๋ผ์ด์–ธํŠธ(Docker client)๋ž€ ๋„์ปค ๋ฐ๋ชฌ์ด ์ œ๊ณตํ•˜๋Š” API๋ฅผ ์‚ฌ์šฉํ•ด ๋ฐ๋ชฌ๊ณผ ์ƒํ˜ธ์ž‘์šฉํ•˜๋Š” ๊ฒƒ์„ ๋งํ•œ๋‹ค.

  • ๋„์ปค ํด๋ผ์ด์–ธํŠธ๋Š” ๋ช…๋ น์–ด ๊ธฐ๋ฐ˜์ด๋‹ค.
  • ๋„์ปค ์ปดํฌ์ฆˆ(Docker Compose)์™€ ๊ฐ™์ด ์Šคํฌ๋ฆฝํŠธ ๋ฐฉ์‹์„ ์‚ฌ์šฉํ•˜๊ฑฐ๋‚˜ ๋„์ปค ๋ช…๋ น์–ด ์ธํ„ฐํŽ˜์ด์Šค(Command line interface)๋ฅผ ์‚ฌ์šฉํ•ด ๋„์ปค ๋ฐ๋ชฌ๊ณผ์˜ ์ง์ ‘ ์ƒํ˜ธ์ž‘์šฉ ํ•˜๋ฉด์„œ ๋ช…๋ น์„ ์ „๋‹ฌํ•œ๋‹ค.