
ํน์ ์์ :STATE
์๋ฌ๋ฌ๋๊ฒ : STATUS
๐น 1. STATE — ‘ํ์ฌ์ ์กฐ๊ฑด์ด๋ ํํ’
state๋ ์ด๋ค ๋์์ด ์ง๊ธ ์ด๋ค ๋ชจ์, ์กฐ๊ฑด, ํํ๋ฅผ ๊ฐ์ง๊ณ ์๋๊ฐ๋ฅผ ๋ํ๋
๋๋ค.
์ฆ, ๋ฌผ๋ฆฌ์ ์ด๊ฑฐ๋ ๊ตฌ์ฒด์ ์ธ ์ํ๋ฅผ ๋งํ ๋ ์ฃผ๋ก ์ฌ์ฉ๋ฉ๋๋ค.
โ ์์
๐น 1. STATE — ‘ํ์ฌ์ ์กฐ๊ฑด์ด๋ ํํ’
state๋ ์ด๋ค ๋์์ด ์ง๊ธ ์ด๋ค ๋ชจ์, ์กฐ๊ฑด, ํํ๋ฅผ ๊ฐ์ง๊ณ ์๋๊ฐ๋ฅผ ๋ํ๋
๋๋ค.
์ฆ, ๋ฌผ๋ฆฌ์ ์ด๊ฑฐ๋ ๊ตฌ์ฒด์ ์ธ ์ํ๋ฅผ ๋งํ ๋ ์ฃผ๋ก ์ฌ์ฉ๋ฉ๋๋ค.
โ ์์
| The water is in a solid state. | ๋ฌผ์ ๊ณ ์ฒด ์ํ์ ๋๋ค. |
| The system is in an idle state. | ์์คํ ์ด ๋๊ธฐ ์ํ์ ์์ต๋๋ค. |
| He was in a confused state. | ๊ทธ๋ ํผ๋์ค๋ฌ์ด ์ํ์๋ค. |
๐ ํต์ฌ ํฌ์ธํธ: ๋ณํ ๊ฐ๋ฅํ ๋ฌผ๋ฆฌ์ ·์ ์ ์ ์กฐ๊ฑด์ ํํํ ๋ ์ฌ์ฉํฉ๋๋ค.
๐น 2. STATUS — ‘์ง์, ์ํฉ, ์งํ ๋จ๊ณ’
status๋ ์ฌ๋ฌผ์ด๋ ์ฌ๋์ ์์น, ๋ฑ๊ธ, ํน์ ์ฌํ์ /๊ธฐ๋ฅ์ ์ํ๋ฅผ ๋ํ๋
๋๋ค.
‘์งํ ์ํฉ’์ด๋ ‘์ฒ๋ฆฌ ๋จ๊ณ’์ฒ๋ผ ์ํ์ ๋จ๊ณ์ ·๊ด๋ฆฌ์ ์ธก๋ฉด์ ์ด์ ์ด ์์ต๋๋ค.
โ ์์
| Please check your order status. | ์ฃผ๋ฌธ ์ํ๋ฅผ ํ์ธํด์ฃผ์ธ์. |
| His marital status is single. | ๊ทธ์ ํผ์ธ ์ํ๋ ๋ฏธํผ์ ๋๋ค. |
| The project is in pending status. | ํ๋ก์ ํธ๊ฐ ๋ณด๋ฅ ์ํ์ ๋๋ค. |
๐ ํต์ฌ ํฌ์ธํธ: **“์งํ ์ํ”**๋ **“์ง์”**์ฒ๋ผ ์ฌํ์ ·ํ์ ์ ์๋ฏธ์ ์ํ๋ฅผ ํํํฉ๋๋ค.
๐ธ ์์ฝ ๋น๊ต
| ์๋ฏธ | ๋ฌผ๋ฆฌ์ /์ฌ๋ฆฌ์ ์ํ | ์ฌํ์ /ํ์ ์ ์ํ |
| ์ด์ | ๋ณํ ๊ฐ๋ฅํ ์กฐ๊ฑด | ๋ถ๋ฅ๋ ๋จ๊ณ, ์งํ ์ํฉ |
| ์์ | health state, emotional state | order status, visa status |
๐ก ์๋ฌธ ๋น๊ต๋ก ์ ๋ฆฌ
- “The machine is in a broken state.” → ๊ธฐ๊ณ๊ฐ ๊ณ ์ฅ๋ ์ํ๋ค. (๋ฌผ๋ฆฌ์ ์ํ)
- “The machine’s status is ‘Out of Service’.” → ๊ธฐ๊ณ์ ์ํํ์๋ ‘์ฌ์ฉ ๋ถ๊ฐ’์ด๋ค. (์์คํ ์ ํ์ ์ํ)
| The water is in a solid state. | ๋ฌผ์ ๊ณ ์ฒด ์ํ์ ๋๋ค. |
| The system is in an idle state. | ์์คํ ์ด ๋๊ธฐ ์ํ์ ์์ต๋๋ค. |
| He was in a confused state. | ๊ทธ๋ ํผ๋์ค๋ฌ์ด ์ํ์๋ค. |
๐ ํต์ฌ ํฌ์ธํธ: ๋ณํ ๊ฐ๋ฅํ ๋ฌผ๋ฆฌ์ ·์ ์ ์ ์กฐ๊ฑด์ ํํํ ๋ ์ฌ์ฉํฉ๋๋ค.
๐น 2. STATUS — ‘์ง์, ์ํฉ, ์งํ ๋จ๊ณ’
status๋ ์ฌ๋ฌผ์ด๋ ์ฌ๋์ ์์น, ๋ฑ๊ธ, ํน์ ์ฌํ์ /๊ธฐ๋ฅ์ ์ํ๋ฅผ ๋ํ๋
๋๋ค.
‘์งํ ์ํฉ’์ด๋ ‘์ฒ๋ฆฌ ๋จ๊ณ’์ฒ๋ผ ์ํ์ ๋จ๊ณ์ ·๊ด๋ฆฌ์ ์ธก๋ฉด์ ์ด์ ์ด ์์ต๋๋ค.
โ ์์
| Please check your order status. | ์ฃผ๋ฌธ ์ํ๋ฅผ ํ์ธํด์ฃผ์ธ์. |
| His marital status is single. | ๊ทธ์ ํผ์ธ ์ํ๋ ๋ฏธํผ์ ๋๋ค. |
| The project is in pending status. | ํ๋ก์ ํธ๊ฐ ๋ณด๋ฅ ์ํ์ ๋๋ค. |
๐ ํต์ฌ ํฌ์ธํธ: **“์งํ ์ํ”**๋ **“์ง์”**์ฒ๋ผ ์ฌํ์ ·ํ์ ์ ์๋ฏธ์ ์ํ๋ฅผ ํํํฉ๋๋ค.
๐ธ ์์ฝ ๋น๊ต
| ์๋ฏธ | ๋ฌผ๋ฆฌ์ /์ฌ๋ฆฌ์ ์ํ | ์ฌํ์ /ํ์ ์ ์ํ |
| ์ด์ | ๋ณํ ๊ฐ๋ฅํ ์กฐ๊ฑด | ๋ถ๋ฅ๋ ๋จ๊ณ, ์งํ ์ํฉ |
| ์์ | health state, emotional state | order status, visa status |
๐ก ์๋ฌธ ๋น๊ต๋ก ์ ๋ฆฌ
- “The machine is in a broken state.” → ๊ธฐ๊ณ๊ฐ ๊ณ ์ฅ๋ ์ํ๋ค. (๋ฌผ๋ฆฌ์ ์ํ)
- “The machine’s status is ‘Out of Service’.” → ๊ธฐ๊ณ์ ์ํํ์๋ ‘์ฌ์ฉ ๋ถ๊ฐ’์ด๋ค. (์์คํ ์ ํ์ ์ํ)
๐น YAML์ ๊ณ์ด ๋ฐ ํน์ง ์์ฝ
| ์ ์ ๋ช ์นญ | YAML Ain’t Markup Language (์๋๋ “Yet Another Markup Language”) |
| ์ธ์ด ๊ณ์ด | ๋ฐ์ดํฐ ์ง๋ ฌํ ์ธ์ด(Data Serialization Language) |
| ๋ํ ๋๋ฅ ์ธ์ด | JSON, XML, TOML |
| ๋ชฉ์ | ์ค์ (config), ๋ฐ์ดํฐ ๊ตํ, ์๋ํ ์คํฌ๋ฆฝํธ์ ์ค์ ๊ฐ ์ ์ฅ |
| ํ์ผ ํ์ฅ์ | .yaml ๋๋ .yml |
| ๊ตฌ์กฐ ๋ฐฉ์ | ๋ค์ฌ์ฐ๊ธฐ ๊ธฐ๋ฐ์ ๊ณ์ธต ๊ตฌ์กฐ (ํ์ด์ฌ์ฒ๋ผ ๋ค์ฌ์ฐ๊ธฐ ์ค์) |
๐ธ ๋น์ทํ ์ธ์ด๋ค๊ณผ์ ๊ด๊ณ
| XML | ๋งํฌ์ ์ธ์ด | ๋ฌธ์ ๊ตฌ์กฐ ํํ | ๐ ๋ฎ์ |
| JSON | ๋ฐ์ดํฐ ํฌ๋งท | API, ์น๋ฐ์ดํฐ ์ ์ก | ๐ ์ค๊ฐ |
| YAML | ๋ฐ์ดํฐ ์ง๋ ฌํ ์ธ์ด | ์ค์ ํ์ผ, ์ธํ๋ผ ์ค์ (์: Docker, Kubernetes) | ๐ ๋งค์ฐ ๋์ |
๐ ์ฆ, YAML์ JSON๋ณด๋ค ์ฌ๋์ด ์ฝ๊ธฐ ์ฝ๊ฒ ๋ง๋ ๋ฐ์ดํฐ ์ธ์ด์ด๋ฉฐ,
XML์ฒ๋ผ ํ๊ทธ๊ฐ ์๊ณ , JSON์ฒ๋ผ ์ค๊ดํธ๋ฅผ ์ฐ์ง ์์ต๋๋ค.
JSON, YAML ๊ฐ์ ์ธ์ด๋ ํํ **DSL(Domain-Specific Language, ๋๋ฉ์ธ ํนํ ์ธ์ด)**์ ํ ํํ๋ก ๋ถ๋ฅ๋ฉ๋๋ค.
์ด๋ค์ ์ฒ ํ๊ณผ ํน์ง์ ์ดํดํ๋ฉด, ์ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๊ฐ ์๋๋ฐ๋ ๊ฐ๋ฐ ์ธ๊ณ์์ ํต์ฌ ์ญํ ์ ํ๋์ง ์ ์ ์์ต๋๋ค.
๐งญ 1. DSL(Domain-Specific Language)์ด๋?
DSL์ ํน์ ๋ชฉ์ (domain)์ ํนํ๋ ์ธ์ด์
๋๋ค.
์ฆ, *“๋ชจ๋ ๊ฑธ ๋ค ํ๋ ค๋ ์ธ์ด”*๊ฐ ์๋๋ผ,
**“ํน์ ์์
์ ๊ฐ๋จํ๊ฒ ํํํ๊ธฐ ์ํ ์ธ์ด”**์
๋๋ค.
| ์ผ๋ฐ ์ธ์ด(General-purpose language) | Python, Java, C ๊ฐ์ ๋ฒ์ฉ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด |
| ํนํ ์ธ์ด(Domain-specific language) | SQL, HTML, JSON, YAML์ฒ๋ผ ํน์ ๋ชฉ์ ์ ์ํ ์ธ์ด |
๐งฉ 2. JSON / YAML๊ณผ ๊ฐ์ DSL์ ํน์ง
| โ ์ ์ธ์ (Declarative) | “์ด๋ป๊ฒ”๊ฐ ์๋๋ผ “๋ฌด์”์ ์ ์ํจ → ๋ก์ง์ด ์๋ ๋ฐ์ดํฐ ๊ตฌ์กฐ๋ฅผ ์ค๋ช |
| โก ๋จ์์ฑ(Simple Syntax) | ์ต์ํ์ ๊ธฐํธ์ ๋ฌธ๋ฒ์ผ๋ก ๊ตฌ์กฐ๋ฅผ ํํ (ex. ์ค๊ดํธ, ๋ค์ฌ์ฐ๊ธฐ ๋ฑ) |
| โข ์ฌ๋์ด ์ฝ๊ธฐ ์ฌ์(Human-readable) | ๊ธฐ๊ณ๋ฟ ์๋๋ผ ์ฌ๋์ด ์ฝ๊ฒ ์ดํดํ๊ณ ํธ์ง ๊ฐ๋ฅ |
| โฃ ๊ตฌ์กฐ์ ํํ(Structured Representation) | ํธ๋ฆฌ(๊ณ์ธต) ๊ตฌ์กฐ๋ก ๋ฐ์ดํฐ๋ ์ค์ ๊ด๊ณ๋ฅผ ๋ช ํํ ํํ |
| โค ์ธ์ด ์ค๋ฆฝ์ฑ(Language-agnostic) | Python, Java ๋ฑ ์ด๋ค ์ธ์ด์์๋ ์ฝ๊ฒ ํ์ฑ(์ฝ๊ธฐ/์ฐ๊ธฐ) ๊ฐ๋ฅ |
| โฅ ์๋ํ์ ์ค์ ์ค์ฌ | ์ฝ๋ ์คํ๋ณด๋ค๋ ์์คํ ์ค์ , ๊ตฌ์ฑ, ๋ฐ์ดํฐ ์ ๋ฌ์ ์ด์ |
๐ก 3. JSON/YAML์ ์ฒ ํ
| “๋ฐ์ดํฐ๋ ์ฝ๋์ ๋ถ๋ฆฌ๋์ด์ผ ํ๋ค.” | ๋ก์ง์ ์ฝ๋์์, ๋ฐ์ดํฐ/์ค์ ์ DSL์์ ๊ด๋ฆฌํ๋๋ก ๋ถ๋ฆฌ |
| “์ฌ๋์ด ์ฝ๊ธฐ ์ฌ์ด ๊ฒ์ด ์ ์ง๋ณด์์ ์ ๋ฆฌํ๋ค.” | JSON/YAML์ ํ์ ํ๊ฒฝ(DevOps, ์ธํ๋ผ ์ค์ ๋ฑ)์ ์ ํฉ |
| “ํ์คํ๋ ๊ตฌ์กฐ๊ฐ ์๋ํ๋ฅผ ๋ง๋ ๋ค.” | ์ผ์ ํ ๋ฐ์ดํฐ ๊ตฌ์กฐ ๋๋ถ์ ์๋ํ ๋๊ตฌ๋ค์ด ์ฝ๊ฒ ํ์ฑํ๊ณ ์ฒ๋ฆฌ ๊ฐ๋ฅ |
์๋ฅผ ๋ค์ด, **Kubernetes์ deployment.yaml**์ด๋
**GitHub Actions์ workflow.yml**์ ์ฌ๋์ด ์ค์ ์ ์ ์ํ๋ฉด
์์คํ
์ด ๊ทธ๊ฑธ ์ฝ์ด ์๋์ผ๋ก ๋์ํฉ๋๋ค.
๐ ์ด๊ฒ์ด DSL์ ํต์ฌ ์ฒ ํ์
๋๋ค:
"์ฌ๋์ด ์ ์ํ๊ณ , ์์คํ
์ด ์ดํดํ๋ค."
๐ง ์์ฝ
| DSL์ ๋ชฉ์ | ํน์ ๋๋ฉ์ธ์ ํนํ๋ ๊ฐ๊ฒฐํ ์ธ์ด |
| JSON/YAML์ ์ญํ | ๋ฐ์ดํฐ ํํ, ์ค์ ๊ด๋ฆฌ, ์์คํ ์๋ํ |
| ํต์ฌ ์ฒ ํ | ์ ์ธ์ , ๋จ์์ฑ, ๊ฐ๋ ์ฑ, ์๋ํ ๊ฐ๋ฅ์ฑ |
| ๋ํ ๋ถ์ผ | DevOps, ํด๋ผ์ฐ๋ ์ค์ , API ๋ฐ์ดํฐ ๊ตฌ์กฐ, ๊ตฌ์ฑ ๊ด๋ฆฌ |
Spring Eureka๋ฅผ ์ด์ฉํด์ ๋ง์ดํฌ๋ก์๋น์ค ์ํคํ
์ฒ(MSA)๋ฅผ ๊ตฌ์ฑํ๊ณ ๊ณ์๋ค๋ฉด, **“๋ง์ดํฌ๋ก์๋น์ค๋ ๋ณ๋ ฌ ๊ตฌ์กฐ์ ์ํ๋ค”**๊ณ ์ดํดํ๋ ๊ฒ์ด ๊ฐ์ฅ ์ ํํฉ๋๋ค.
ํ์ง๋ง ๋จ์ํ “๋ณ๋ ฌ”์ด๋ผ๊ณ ๋ง ๋ณด๊ธฐ๋ณด๋ค๋ **“๋์จํ๊ฒ ๊ฒฐํฉ๋ ๋ณ๋ ฌ์ ·๋ถ์ฐ ๊ตฌ์กฐ(loose-coupled distributed system)”**๋ผ๊ณ ํํํ๋ ๊ฒ ๋ ๋ง์ต๋๋ค.
์ด์ ๋ฅผ ๋จ๊ณ๋ณ๋ก ์ ๋ฆฌํด ๋ณผ๊ฒ์ ๐
๐น 1. ์ง๋ ฌ ๊ตฌ์กฐ vs ๋ณ๋ ฌ ๊ตฌ์กฐ์ ๊ฐ๋ ์ ๋ฆฌ
| ๊ตฌ๋ถ | ์ง๋ ฌ ๊ตฌ์กฐ(Serial) | ๋ณ๋ ฌ ๊ตฌ์กฐ(Parallel) |
| ๊ตฌ์กฐ ๊ฐ๋ | ํ๋์ ํ๋ฆ์ ๋ฐ๋ผ ์์ฐจ์ ์ผ๋ก ์คํ | ์ฌ๋ฌ ๋ชจ๋์ด ๋ ๋ฆฝ์ ์ผ๋ก ๋์์ ๋์ |
| ํน์ง | ๋จ์ผ ์คํจ ์ง์ (Single Point of Failure) ์กด์ฌ | ๋ ๋ฆฝ์ฑ๊ณผ ํ์ฅ์ฑ์ด ๋์ |
| ์์ | ๋ชจ๋๋ฆฌ์(Monolithic) ์ ํ๋ฆฌ์ผ์ด์ | ๋ง์ดํฌ๋ก์๋น์ค(Microservices) |
๐น 2. ๋ง์ดํฌ๋ก์๋น์ค์ ๊ธฐ๋ณธ ์ฒ ํ
๋ง์ดํฌ๋ก์๋น์ค ์ํคํ ์ฒ(MSA)๋
“๊ฐ ๊ธฐ๋ฅ(์๋น์ค)์ ๋ ๋ฆฝ์ ์ผ๋ก ๊ฐ๋ฐ, ๋ฐฐํฌ, ํ์ฅํ ์ ์๋๋ก ๋ถ๋ฆฌํ ๋ณ๋ ฌ์ ๊ตฌ์กฐ์ ์์คํ ”
์ ๋๋ค.
- ์๋น์ค ๊ฐ์ ๊ด๊ณ๋ **์ง๋ ฌ ์ข
์์ฑ(์์กด ํธ์ถ)**์ด ์๋,
๋น๋๊ธฐ ๋ฉ์์ง ๊ธฐ๋ฐ ํน์ RESTful ํธ์ถ ํํ๋ก ๋์จํ๊ฒ ์ฐ๊ฒฐ(loose coupling) ๋์ด ์์ต๋๋ค. - ๋ฐ๋ผ์ ํน์ ์๋น์ค๊ฐ ๋ค์ด๋์ด๋, ์ ์ฒด ์์คํ ์ด ๋ฉ์ถ์ง ์์ต๋๋ค.
์๋ฅผ ๋ค์ด ๐
- ํ์ ์๋น์ค, ์ฃผ๋ฌธ ์๋น์ค, ๊ฒฐ์ ์๋น์ค๊ฐ ๊ฐ๊ฐ ๋ ๋ฆฝ ์คํ๋ฉ๋๋ค.
- ๊ฒฐ์ ์๋น์ค๊ฐ ์ ์ ์ฅ์ ๊ฐ ๋๋๋ผ๋, ํ์ ์๋น์ค๋ ์ ์ ์๋ํ ์ ์์ต๋๋ค.
→ ์ด๊ฒ์ด ๋ฐ๋ก ๋ณ๋ ฌ์ ๋ถ์ฐ ๊ตฌ์กฐ์ ํต์ฌ์ ๋๋ค.
๐ธ 3. Eureka์ ๋ณ๋ ฌ ๊ตฌ์กฐ์ ๊ด๊ณ
**Eureka(Server/Client)**๋ ์๋น์ค ๋์ค์ปค๋ฒ๋ฆฌ(Service Discovery) ์ญํ ์ ํฉ๋๋ค.
์ฆ, ๋ณ๋ ฌ๋ก ์กด์ฌํ๋ ์ฌ๋ฌ ๋ง์ดํฌ๋ก์๋น์ค๋ค์ด ์๋ก๋ฅผ “์ฐพ๊ณ ์ฐ๊ฒฐ”ํ ์ ์๊ฒ ํด์ฃผ๋ ๋ถ์ฐ ๋ ์ง์คํธ๋ฆฌ์
๋๋ค.
| Eureka Server | ๊ฐ ์๋น์ค์ ์์น(IP, Port)๋ฅผ ๊ด๋ฆฌํ๋ ๋ ์ง์คํธ๋ฆฌ |
| Eureka Client | ์์ ์ ๋ฑ๋กํ๊ณ , ๋ค๋ฅธ ์๋น์ค๋ฅผ ์กฐํ |
| ๊ฒฐ๊ณผ | ์๋น์ค ๊ฐ ํต์ ์ด ์ค์ ์ ์ด๊ฐ ์๋, ๋ณ๋ ฌ์ ๊ฒ์ ๊ธฐ๋ฐ ๊ตฌ์กฐ๋ก ๊ฐ๋ฅ |
โก๏ธ ๋ฐ๋ผ์ Eureka๋ฅผ ์ฌ์ฉํ MSA๋
**“์๋น์ค ๊ฐ ์ง์ ์ฐ๊ฒฐ์ด ์๋, ๋ณ๋ ฌ์ ์ผ๋ก ๋์ํ๋ฉฐ ์ํธ ๋ฐ๊ฒฌ(discovery)ํ๋ ๊ตฌ์กฐ”**์
๋๋ค.
๐น 4. ์ค์ ์ํคํ ์ฒ ๋น์
| ๋ชจ๋๋ฆฌ์(์ง๋ ฌํ) | ํ ์ค๋ก ์ฐ๊ฒฐ๋ ๊ธฐ์ฐจ: ํ ์นธ์ด ๋ฉ์ถ๋ฉด ์ ์ฒด๊ฐ ๋ฉ์ถค |
| ๋ง์ดํฌ๋ก์๋น์ค(๋ณ๋ ฌํ) | ๊ฐ์ ๋ชฉ์ ์ง๋ฅผ ๊ฐ์ง ์๋์ฐจ: ๊ตํต ์ ํธ(Eureka)๊ฐ ๋ฐฉํฅ๋ง ์๋ด |
๐ ์ฆ, MSA๋ “๊ตํต ์ ํธ ์์คํ ์ด ์๋ ๋ณ๋ ฌ ๋๋ก๋ง” ๊ตฌ์กฐ๋ผ๊ณ ๋ณผ ์ ์์ต๋๋ค.
๐ธ 5. ๊ฒฐ๋ก
| ๊ตฌ์กฐ ๋ถ๋ฅ | ๋ณ๋ ฌ์ , ๋ถ์ฐํ ๊ตฌ์กฐ |
| ํน์ง | ์๋น์ค ๊ฐ ๋ ๋ฆฝ์ฑ, ์ ์ฐํ ํ์ฅ์ฑ, ์ฅ์ ๊ฒฉ๋ฆฌ |
| ํต์ฌ ๊ตฌ์ฑ ์์ | Eureka, API Gateway, Config Server, Message Queue |
| ๊ฒฐ๊ณผ์ ์ฅ์ | ์ฑ๋ฅ ํ์ฅ์ฑ(Scalability), ์ฅ์ ๋ณต์๋ ฅ(Resilience) ํ๋ณด |
โ ์ ๋ฆฌ
๋ง์ดํฌ๋ก์๋น์ค๋ **“์ง๋ ฌ ๊ตฌ์กฐ๊ฐ ์๋, ๋ณ๋ ฌ์ ์ด๊ณ ๋ถ์ฐ๋ ๊ตฌ์กฐ”**์ ๋๋ค.
๊ฐ ์๋น์ค๋ ๋ ๋ฆฝ์ ์ผ๋ก ๋์ํ๋ฉฐ, Eureka์ ๊ฐ์ ์๋น์ค ๋์ค์ปค๋ฒ๋ฆฌ๋ฅผ ํตํด ๋์จํ๊ฒ ์ฐ๊ฒฐ๋ฉ๋๋ค.
์ด ํ๋ก์ ํธ๋ฅผ ์ต์ข ์ ์ผ๋ก AWS ์ ๋ฐฐํฌํ๋ ค๊ณ ํด ๊ทธ๋ฐ๋ฐ ์ถํ์ฟ ๋ฒ๋คํฐ์ค์์ ๋ฐฐํฌํ ๊ฑด๋ฐ ์ง๊ธ์ ๋์ปค ์ปดํฌ์ฆ๋ก ํ๋ ์ค์ด์ผ. ๋น๋์ค์ OPENJDK ๋ฒ์ ์ด์๊ฐ ์์ด ๋ผ์ด์ผ์ค๊ฐ ๋ฌด๋ฃ์ธ JDK์ค์์ ๊ฐ์ฅ ์ต์ ์ธ ๊ฒ์ ์ถ์ฒํด์ค.
๐งฑ 1๏ธโฃ ๊ฐ๋ ์ ๋ฆฌ
๐น ๋์ปค(Docker)
- ์ปจํ ์ด๋(๊ฐ์ ํ๊ฒฝ)๋ฅผ ๋ง๋ค์ด์ ์ฑ์ ์คํ์ํค๋ ๊ธฐ์ ์ด์์.
- ๋์ปค๋ OS์ **“์ด๋ฏธ์ง(Image)”**๋ฅผ ์ฌ๋ ค์ ์คํํ๋๋ฐ, ์ด ์ด๋ฏธ์ง ์์๋ JDK ๊ฐ์ ์คํ ํ๊ฒฝ์ด ๋ค์ด ์์ ์๋ ์์ด์.
๐น ๋์ปค ์ปดํฌ์ฆ(Docker Compose)
- ์ฌ๋ฌ ๊ฐ์ ์ปจํ ์ด๋๋ฅผ ํ๊บผ๋ฒ์ ๊ด๋ฆฌ(๋น๋·์คํ·์ฐ๊ฒฐ)ํ๋ ๋๊ตฌ์์.
- ์: docker-compose.yml ์์์ด๋ฐ ์์ผ๋ก ํ๋ฉด app(์คํ๋ง ์๋ฒ) + db(PostgreSQL)๊ฐ ๋์์ ์ฌ๋ผ๊ฐ์ฃ .
-
services: app: build: . ports: - "8080:8080" depends_on: - db db: image: postgres:15

โ 2๏ธโฃ JDK์์ ๊ด๊ณ
๋์ปค ์ปดํฌ์ฆ๋ JDK๋ฅผ ์ง์ ์ ๊ณตํ์ง ์์์.
๐ ๋์ , ๋น์ ์ ์ฑ ์ปจํ
์ด๋ ์์ ์ด๋ค JDK๋ฅผ ์ธ์ง๋ฅผ Dockerfile๋ก ์ ํฉ๋๋ค.
์๋ฅผ ๋ค์ด ์คํ๋ง ๋ถํธ ์ฑ์ด๋ผ๋ฉด ๋ณดํต ์ด๋ฐ ์์ด์์ ๐

์ด๋ ๊ฒ ํ๋ฉด ์ด ์ปจํ
์ด๋ ์์๋ “openjdk:21-jdk-slim” ์ด๋ฏธ์ง๊ฐ ํฌํจ๋ ์ํ๋ก ์คํ๋ผ์.
๊ทธ ๋ง์ ๊ณง ๋์ปค ์ปดํฌ์ฆ์์ ์ฌ์ฉํ๋ JDK๋ Dockerfile์ FROM์ ์ง์ ๋ JDK ์ด๋ฏธ์ง์์.
โ๏ธ 3๏ธโฃ ๋์ปค ์ปดํฌ์ฆ์ JDK์ ์ฐ๊ฒฐ ๊ตฌ์กฐ

- Compose๋ ๋จ์ํ ์ฌ๋ฌ ์๋น์ค๋ฅผ ์ฐ๊ฒฐํด์ฃผ๋ “์ค์ผ์คํธ๋ ์ด์ ๋๊ตฌ”
- JDK ๋ฒ์ ์ “Dockerfile์ FROM ์ด๋ฏธ์ง”๋ก ๊ฒฐ์
โ ๊ฒฐ๋ก ์์ฝ
| Docker | ์ปจํ ์ด๋ ์คํ ์์ง | JDK๊ฐ ํฌํจ๋ ์ด๋ฏธ์ง ์คํ |
| Dockerfile | ์ด๋ฏธ์ง ๊ตฌ์ฑ ํ์ผ | JDK ๋ฒ์ ์ง์ (FROM openjdk:21-jdk) |
| Docker Compose | ์ฌ๋ฌ ์ปจํ ์ด๋๋ฅผ ๋ฌถ์ด ์คํ | JDK ์์ฒด๋ ์ ๊ณตํ์ง ์์ |
'Project ESG+AI > Tech Basics' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
| 28์ผ์ฐจ. IT ๊ฐ๋ ์ ๋ฆฌ (0) | 2025.11.17 |
|---|---|
| 27์ผ์ฐจ. IT ๊ฐ๋ ์ ๋ฆฌ (1) | 2025.11.14 |
| 25์ผ์ฐจ. IT ๊ฐ๋ ์ ๋ฆฌ (0) | 2025.11.12 |
| 24์ผ์ฐจ. IT ๊ฐ๋ ์ ๋ฆฌ (0) | 2025.11.11 |
| 23์ผ์ฐจ. IT ๊ฐ๋ ์ ๋ฆฌ (0) | 2025.11.10 |