Loading...
2021. 4. 11. 22:27

[Programming] Reactive (๋ฆฌ์•กํ‹ฐ๋ธŒ)

์›น ์„œ๋น„์Šค์—์„œ ํ”ํžˆ ๋ฐœ์ƒํ•˜๋Š” ์ผ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ํ•˜๋‚˜์˜ API ๊ฒฐ๊ณผ ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ n๊ฐœ์˜ API ๊ฒฐ๊ณผ๋ฅผ ๋ฐ›์•„๋ณด๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค. ํ”ํžˆ ์šฐ๋ฆฌ๊ฐ€ SPA๋ฅผ ๊ฐ€์ง€๊ณ  ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋งŒ๋“ค๋‹ค๋ณด๋ฉด ์—ฌ๋Ÿฌ API๋ฅผ ํ˜ธ์ถœํ•˜๋Š” ์ผ์ด ์žˆ๋Š”๋ฐ, ์ด์™€ ๋น„์Šทํ•œ ์ด์•ผ๊ธฐ์ž…๋‹ˆ๋‹ค. Reactive Programming์ด ๋‚˜์˜ค๊ธฐ ์ด์ „, ์šฐ๋ฆฌ๊ฐ€ ์ƒ๊ฐํ•˜๋Š” ๋Œ€๊ทœ๋ชจ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์€ ๊ทธ๋ƒฅ ์ˆ˜์‹ญ๋Œ€ ์„œ๋ฒ„๋ฅผ ๊ฐ€์ง€๊ณ  GB ์ •๋„์˜ ๋ฐ์ดํ„ฐ, ๋ช‡ ์ดˆ ๊ฑธ๋ฆฌ๋Š” ์‘๋‹ต ์‹œ๊ฐ„, ์œ ์ง€๋ณด์ˆ˜๋Š” ๋ช‡ ์‹œ๊ฐ„ ๊ฑธ๋ฆฌ๋Š” ์ •๋„๊ฐ€ ๋‹น์—ฐํ•˜๋‹ค. ๋ผ๊ณ  ๋ณด๊ณ  ์šด์˜์„ ํ•ด์™”์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์ง€๊ธˆ์€ ์–ด๋–จ๊นŒ์š”? ๋‹ค์–‘ํ•œ ์„œ๋น„์Šค๊ฐ€ ์žˆ๊ณ , ํŠนํžˆ ํ•œ๊ตญ์—์„œ๋Š” ์ธํ„ฐ๋„ท ์†๋„๊ฐ€ ๊ต‰์žฅํžˆ ๋น ๋ฅด๊ธฐ ๋•Œ๋ฌธ์— ํŽ˜์ด์ง€ ๋กœ๋”ฉ ์‹œ๊ฐ„์ด ์ˆ˜ ์ดˆ๋ผ๋„ ๊ฑธ๋ฆฌ๋ฉด ๊ทธ๋ƒฅ ๋‹ซ์•„๋ฒ„๋ฆฌ๋Š” ๊ฒŒ ๊ด€์Šต์ด ๋˜์–ด๋ฒ„๋ ธ์ฃ . ์ด๋ ‡๊ฒŒ ๋ณ€ํ™”๊ฐ€ ๋œ ์ด์œ ๋Š” ๋ฌด์—‡์ผ๊นŒ์š”? ๋Š˜์–ด๋‚œ ๋ฐ์ดํ„ฐ ์‹œ..

2021. 3. 21. 12:16

[MSA] 7. MSA์˜ ํŠธ๋žœ์žญ์…˜ ์ด์•ผ๊ธฐ 3 - ์ด๋ฒคํŠธ ์†Œ์‹ฑ๊ณผ CQRS

์ด๋ฒคํŠธ ์†Œ์‹ฑ์„ ์ฒ˜์Œ ์ ‘ํ•˜๊ฒŒ ๋œ ๊ฒƒ์€ 2017 SpringCamp์—์„œ์˜€์Šต๋‹ˆ๋‹ค. ๋‹น์‹œ์—๋Š” MSA๋ผ๋Š” ๊ฐœ๋…์— ๋Œ€ํ•ด ์ž˜ ์•Œ์ง€๋„ ๋ชปํ–ˆ๊ณ , MSA๋Š” ๋Œ€๊ธฐ์—…์—์„œ๋‚˜ ์“ธ ์ˆ˜ ์žˆ๊ณ , ์ ์šฉ๊ฐ€๋Šฅํ•œ ์—„์ฒญ๋‚˜๊ฒŒ ํฐ ์•„ํ‚คํ…์ฒ˜์˜€๋‹ค. ๋ผ๊ณ ๋งŒ ์ธ์‹ํ•˜๊ณ  ๋ฌด์ž‘์ • ๋ฐฐ์› ์„ ๋•Œ์˜€์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ๋ฐ, ์ตœ๊ทผ ์ œ๊ฐ€ ๋‹ค๋‹ˆ๊ณ  ์žˆ๋Š” ํšŒ์‚ฌ์—์„œ ์ด๋ฒคํŠธ ์†Œ์‹ฑ๊ณผ CQRS๋ผ๋Š” ์ฃผ์ œ๋กœ ์ด์•ผ๊ธฐ๋ฅผ ํ–ˆ์—ˆ๋Š”๋ฐ์š”. ๋‹ค์‹œ๊ธˆ CQRS๋ฅผ ๋ณด๋ ค๊ณ  ํ•˜๋‹ˆ, ๊ทธ ๊ฐœ๋…์ด ์ž˜ ๊ธฐ์–ต๋‚˜์ง€ ์•Š๊ณ , ์–ด๋–ค ํŠน์ง•์„ ๊ฐ€์ง€๊ณ  ์žˆ์—ˆ๋Š”์ง€๋ฅผ ํŒŒ์•…ํ•˜๊ธฐ๊ฐ€ ์–ด๋ ค์›Œ์„œ ์ด๋ ‡๊ฒŒ ์ •๋ฆฌํ•˜๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿผ MSA์˜ ํŠธ๋žœ์žญ์…˜ ์ด์•ผ๊ธฐ 3๋ฒˆ์งธ ์ด๋ฒคํŠธ ์†Œ์‹ฑ๊ณผ CQRS ์‹œ์ž‘ํ•˜๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ์ „ํ†ต์ ์ธ CRUD ๊ฐ€๋”์€ ์ด๋Ÿฐ ์ƒ๊ฐ์ด ๋“ค ๋•Œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์ „ํ†ต์ ์ธ CRUD๋ฅผ ์‚ฌ์šฉํ•จ์œผ๋กœ์จ ๋ฐฑ์—”๋“œ ์—”์ง€๋‹ˆ์–ด๊ฐ€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ ํŠธ๋žœ์žญ์…˜ ๋กœ์ง..

2020. 11. 14. 17:44

[Kubernetes] 2. Kubernetes ๊ธฐ๋ณธ ๊ตฌ์„ฑ๊ณผ ๊ฐ์ฒด(object)

์ง€๋‚œ ํฌ์ŠคํŠธ์—์„œ Kubernetes์™€ Container Deployment์— ๋Œ€ํ•ด ์•Œ์•„๋ณด๋ฉฐ ์ปจํ…Œ์ด๋„ˆ๋กœ ์„œ๋น„์Šค ๋ฐฐํฌํ•˜๊ธฐ๊นŒ์ง€์˜ ๊ณผ์ •๊ณผ Docker Swarm ๋“ฑ์˜ ๋‹ค๋ฅธ ์˜ค์ผ€์ŠคํŠธ๋ ˆ์ด์…˜ ํˆด๊ณผ ์–ด๋–ค ์ ์ด ๋‹ค๋ฅธ์ง€ ์‚ดํŽด๋ดค์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ์ ์„ ํ™•์ธํ•˜๊ณ , ์šฐ๋ฆฌ๊ฐ€ ์šด์˜ํ•˜๋Š” ์„œ๋น„์Šค๊ฐ€ ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค์— ์ ํ•ฉํ•œ์ง€, ์ฐจํ›„ ๋ฏธ๋ž˜ ์šด์˜ ๋Œ€์ฑ…์œผ๋กœ ์‚ฌ์šฉํ• ๋งŒํ•œ์ง€๋ฅผ ์ •ํ™•ํ•˜๊ฒŒ ๊ณ ๋ ค ๋Œ€์ƒ์œผ๋กœ ์„ ์ •ํ•˜์…จ๋‹ค๋ฉด ์ด ๊ธ€์„ ๊ณ„์† ์ฝ์œผ๋ฉฐ Kubernetes๋ฅผ ์ง์ ‘ ๊ณต๋ถ€ํ•ด๋ณด๊ณ , ์‚ฌ์šฉํ•ด๋ณด์‹œ๋Š” ๊ฒƒ์ด ์ข‹์„ ๊ฒƒ ๊ฐ™๋„ค์š”. Kubernetes์˜ ๊ธฐ๋ณธ ๊ตฌ์กฐ ์ด์ œ ๋ณธ๊ฒฉ์ ์œผ๋กœ Kubernetes๊ฐ€ ์–ด๋–ป๊ฒŒ ์ด๋ฃจ์–ด์กŒ๋Š”์ง€ ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ๊ธฐ์กด์˜ Docker์—์„œ๋Š” ์ปจํ…Œ์ด๋„ˆ๋ฅผ ๊ด€๋ฆฌํ•  ๋•Œ ์ค‘์•™์˜ Docker Engine์ด ์ž๋ฆฌ์žก๊ณ  ์žˆ์–ด, ์ด ์—”์ง„์ด ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ด๋ฏธ์ง€๋ฅผ ๊ด€๋ฆฌํ•˜๊ณ , ์ƒ์„ฑํ•˜๋Š”..

2020. 11. 7. 22:37

[Kubernetes] 1. Container Deployment์™€ Kubernetes

์ €์—๊ฒŒ ์žˆ์–ด ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค๋Š” Docker Swarm์„ ์ง€๋‚˜ ์ด์ „๋ถ€ํ„ฐ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์—ˆ๋˜ ์ปจํ…Œ์ด๋„ˆ ์˜ค์ผ€์ŠคํŠธ๋ ˆ์ด์…˜ ํˆด์ด์—ˆ์Šต๋‹ˆ๋‹ค. ์ตœ๊ทผ์— ์ด์ง์„ ํ•œ ํšŒ์‚ฌ์—์„œ ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค๋ฅผ ์ด์šฉํ•˜์—ฌ ์‹œ์Šคํ…œ์„ ๊ตฌ์„ฑํ•˜๊ณ  ์„œ๋น„์Šค๋ฅผ ์šด์˜ํ•˜๊ฒŒ ๋˜์–ด ์ฃผ ์˜ค์ผ€์ŠคํŠธ๋ ˆ์ด์…˜ ํˆด๋กœ ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค๋ฅผ ์‚ฌ์šฉํ•˜๊ฒŒ ๋˜์—ˆ๊ณ , ์ด ๋•Œ๋ถ€ํ„ฐ Docker Swarm ๋ณด๋‹ค๋Š” Kubernetes๋กœ ์‹œ์Šคํ…œ์„ ๊ตฌ์„ฑํ•˜๋Š” ์ผ์ด ์ž์ฃผ ์ƒ๊ฒจ๋‚ฌ์Šต๋‹ˆ๋‹ค. ์ด ๊ธ€์€ Docker๋ฅผ ์ž์ฃผ ์‚ฌ์šฉํ•˜์ง€๋งŒ Kubernetes์— ๋Œ€ํ•ด์„œ๋Š” ์ž˜ ๋ชจ๋ฅด๊ณ , ๊ทธ๋ฆฌ๊ณ  ์‚ฌ์šฉ์„ ๊ณ ๋ คํ•ด๋ณด๊ณ  ์‹ถ์€ ๋ถ„๋“ค์—๊ฒŒ ๋“œ๋ฆฌ๋Š” ๊ธ€์˜ ์‹œ์ž‘์ž…๋‹ˆ๋‹ค. Container Deployment์œผ๋กœ ๊ฑฐ์Šฌ๋Ÿฌ ์˜ฌ๋ผ์˜ค๊ธฐ๊นŒ์ง€.. Kubernetes๋Š” Go ์–ธ์–ด๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ Google์—์„œ ๊ฐœ๋ฐœํ•˜์—ฌ 2014๋…„์— ๊ณต๊ฐœ๋œ Container Orchestration to..

2020. 11. 2. 22:10

[MSA] 6. MSA์˜ ํŠธ๋žœ์žญ์…˜ ์ด์•ผ๊ธฐ 2 - Two-Phase commit๊ณผ Saga

์ด์ „ ๊ธ€์— ์ด์–ด์„œ MSA ๋‚ด์—์„œ ํŠธ๋žœ์žญ์…˜์„ ์›ํ™œํžˆ ํ•˜๋Š” ๋ฐฉ๋ฒ• 2๊ฐ€์ง€๋ฅผ ์†Œ๊ฐœํ•ด๋“œ๋ฆฌ๊ณ ์ž ํ•ฉ๋‹ˆ๋‹ค. ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์™€ ๋”๋ถˆ์–ด ๋ชจ๋†€๋ฆฌํ‹ฑ ์•„ํ‚คํ…์ฒ˜๋ฅผ ๋„์ž…ํ•œ ์„œ๋ฒ„ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์€ DB ์„œ๋ฒ„์—์„œ ์ œ๊ณตํ•˜๋Š” Commit๊ณผ Rollback์„ ์ด์šฉํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฅผ ์ผ๊ด€์„ฑ ์žˆ๊ฒŒ ์ œ์–ดํ•  ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ MSA์—์„œ๋Š” ๊ฐ ์„œ๋น„์Šค๋ณ„๋กœ DB ์ธ์Šคํ„ด์Šค์™€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ๋ถ„๋ฆฌ๋จ์— ๋”ฐ๋ผ ๊ด€๊ณ„ํ˜•์œผ๋กœ ๋งบ์–ด์ง„ Entity๋“ค์€ ์„œ๋กœ๊ฐ€ ๋‹ค๋ฅธ ์ธ์Šคํ„ด์Šค๋กœ ์šด์˜๋˜๊ณ , ๊ทธ๋“ค ๋ฆฌ์†Œ์Šค๋ฅผ ๋ฐ›๊ธฐ ๋•Œ๋ฌธ์— ๋ฐ์ดํ„ฐ์˜ ์ผ๊ด€์„ฑ์ด ๋ฌด๋„ˆ์ง€๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ์œ„ํ•ด ์šฐ๋ฆฌ๋Š” ๋ถ„์‚ฐ ํŠธ๋žœ์žญ์…˜ ๊ธฐ์ˆ ์„ ์ด์šฉํ•˜์—ฌ ์ด๋“ค ์ผ๊ด€์„ฑ์„ ์ง€ํ‚ฌ ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์ด ์žˆ์Šต๋‹ˆ๋‹ค. 1. Two-Phase Commit Two-Phase Commit์ด๋ž€, 2๋‹จ๊ณ„์— ๊ฑฐ์ณ์„œ ์˜์†ํ•˜๋Š” ์ž‘์—…์„ ๋งํ•ฉ๋‹ˆ๋‹ค. ์ด๋ ‡๊ฒŒ ๋งํ•˜๋ฉด ์•„..

2020. 3. 11. 19:01

[MSA] - 4. Circuit Breaker๋ฅผ ์ด์šฉํ•œ ์žฅ์•  ์ฒ˜๋ฆฌ

MSA์— ๋Œ€ํ•ด์„œ ์šฐ๋ฆฌ๋Š” ๊ฐ API ์„œ๋ฒ„๋ฅผ ๋ถ„๋ฆฌํ•˜์—ฌ ์šฉ๋„๋ณ„๋กœ ์ธ์Šคํ„ด์Šค๋ฅผ ๋‚˜๋ˆ„๊ณ , ์•ž๋‹จ์—์„œ Gateway๋ฅผ ์‚ฌ์šฉํ•ด ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์›ํ•˜๋Š” ์„œ๋น„์Šค๋ฅผ ์ฃผ๊ณ , ๋กœ๋“œ ๋ฐธ๋Ÿฐ์‹ฑ ๋“ฑ์˜ ์ž‘์—…์ด ๋“ค์–ด๊ฐˆ ๊ฒฝ์šฐ, Service Discovery๋ฅผ ํ†ตํ•˜์—ฌ ์›ํ•˜๋Š” ์„œ๋น„์Šค๋ฅผ ๋™์ ์œผ๋กœ ์ฐพ์•„์ฃผ๋Š” ๋ฐฉ๋ฒ•๊นŒ์ง€ ์•Œ์•˜์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ๋ฐ, ์ด๋ ‡๊ฒŒ ์„œ๋น„์Šค๋ฅผ ๋ถ„๋ฆฌํ•จ์œผ๋กœ์จ ํ•œ ์ธ์Šคํ„ด์Šค๊ฐ€ ๋ชจ๋“  ์„œ๋น„์Šค๋ฅผ ๊ฐ๋‹นํ•˜๋Š” ๋ถ€๋ถ„์ด ์™„ํ™”๋˜๋Š” ๋“ฑ์˜ ์žฅ์ ์ด ์ƒ๊ฒผ์ง€๋งŒ, ๋งŒ์•ฝ ์„œ๋น„์Šค์— ์žฅ์• ๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค๋ฉด ๊ทธ ์žฅ์• ๋Š” ์–ด๋–ป๊ฒŒ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ์„๊นŒ์š”? ์„œ๋น„์Šค๊ฐ€ ๋ถ„๋ฆฌ๋˜์–ด ์žˆ๋Š” ์ƒํƒœ์—์„œ ํด๋ผ์ด์–ธํŠธ์˜ ์ž˜๋ชป๋œ ์ž…๋ ฅ ๊ฐ’ ๋“ฑ์œผ๋กœ ์ƒ๊ธฐ๋Š” ์˜ค๋ฅ˜๋Š” ๋…ผ๋ฆฌ์ ์ธ ์˜ค๋ฅ˜์ž…๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์ด๋Ÿฐ ์˜ค๋ฅ˜๋Š” Exception ๋“ฑ์˜ ์ฒ˜๋ฆฌ๋ฅผ ํ†ตํ•ด์„œ ํด๋ผ์ด์–ธํŠธ์—๊ฒŒ ์˜ค๋ฅ˜๋ฅผ ์•Œ๋ ค์ฃผ๊ณ , ์ด๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ์ง„ํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ..

2020. 1. 27. 13:08

[MSA] - 3. ํ•„์š”ํ•œ ์„œ๋น„์Šค๋ฅผ ์ฐพ์•„์ฃผ๋Š” Service Discovery

์•ˆ๋…•ํ•˜์„ธ์š”. ๋‹ค๋“ค ๊ตฌ์ • ์—ฐํœด ์ž˜ ๋ณด๋‚ด๊ณ  ๊ณ„์‹ ๊ฐ€์š”? ๊ตฌ์ • ์–ธํœด๊ธด ํ•˜์ง€๋งŒ, ์ €์—๊ฒŒ๋Š” ๊ธธ๊ฒŒ ๋Š๊ปด์ง€๋Š” ์—ฐํœด์ธ์ง€๋ผ, ์˜ค๋Š˜๋„ ์ด๋ ‡๊ฒŒ ๋„์ ์—ฌ ๋ด…๋‹ˆ๋‹ค. ์˜ค๋Š˜์€ Service Discovery์— ๋Œ€ํ•œ ์ด์•ผ๊ธฐ๋ฅผ ๋‹ค๋ค„๋ณด๋„๋ก ํ• ๊ฒŒ์š”. ์„œ๋น„์Šค ๋””์Šค์ปค๋ฒ„๋ฆฌ๋Š” ์ง€๋‚œ API Gateway์—์„œ๋„ ์ž ์‹œ ๋‹ค๋ค˜๋˜ ๋‚ด์šฉ์ด์ง€๋งŒ ์„œ๋น„์Šค๊ฐ€ ๋ถ„๋ฆฌ๋˜์–ด ์žˆ๋Š” MSA์—์„œ ๊ฐ ์„œ๋น„์Šค๊ฐ€ ๋‹ค์Œ์— ๋ถˆ๋Ÿฌ์•ผํ•  ์„œ๋น„์Šค๊ฐ€ ์–ด๋””์— ์žˆ๋Š”์ง€๋ฅผ ์ฐพ์•„์ฃผ๋Š” ๊ฒ€์ƒ‰ ๊ธฐ๋Šฅ์ž…๋‹ˆ๋‹ค. What is Service Discovery ? ์‰ฌ์šด ์„ค๋ช…์„ ์œ„ํ•ด Wi-Fi๋ฅผ ์˜ˆ๋กœ ๋“ค์–ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ์Šค๋งˆํŠธํฐ์ด๋‚˜ ํƒœ๋ธ”๋ฆฟ PC, ๋…ธํŠธ๋ถ์—์„œ ์ธํ„ฐ๋„ท์„ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด Wi-Fi์— ์—ฐ๊ฒฐํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์›๋ž˜๋ผ๋ฉด, ์ง์ ‘ SSID๋ฅผ ์ž…๋ ฅํ•ด์•ผ๋งŒ ํ•˜์ฃ . ํ•˜์ง€๋งŒ AP ๊ฒ€์ƒ‰ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์šฐ๋ฆฌ๋Š” ์ด๋ ‡๊ฒŒ ๋””๋ฐ”์ด์Šค์—..

2020. 1. 8. 12:14

[MSA] - 2. API Gateway๊ฐ€ ํ•„์š”ํ•œ ์ด์œ 

์•ˆ๋…•ํ•˜์„ธ์š”. ์ด๋ฒˆ ๊ธ€์€ MSA์— ๋Œ€ํ•œ ๊ธ€์„ ์ด์–ด์„œ API Gateway์— ๋Œ€ํ•œ ์ด์•ผ๊ธฐ๋ฅผ ํ•˜๊ณ ์ž ํ•ฉ๋‹ˆ๋‹ค. ์ง€๋‚œ MSA ๊ธ€์—์„œ๋Š” MSA๋ฅผ ์™œ ์จ์•ผํ•˜๋Š”์ง€, ์–ด๋–จ ๋•Œ ํ•„์š”ํ•˜๊ณ , ๋ฌด์Šจ ์žฅ๋‹จ์ ์ด ์žˆ๋Š”์ง€๋ฅผ ๊ฐ„๋žตํ•˜๊ฒŒ ์„ค๋ช…ํ•ด๋ณด๋Š” ์•„์ฃผ ์‰ฌ์šด ์ด์•ผ๊ธฐ๋ฅผ ๋‹ค๋ค„๋ดค์Šต๋‹ˆ๋‹ค. ์‚ฌ์‹ค MSA์˜ ๊นŠ์ด๋Š” ๊ทธ๊ฒƒ๋ณด๋‹ค ๊นŠ๊ธฐ ๋•Œ๋ฌธ์— ์ œ๋Œ€๋กœ ์ด์•ผ๊ธฐ๋ฅผ ํ•˜๊ณ ์ž ํ•œ๋‹ค๋ฉด, ๋งŽ์€ ์ด์•ผ๊ธฐ๊ฐ€ ๋  ๊ฒƒ ๊ฐ™์•„ ์งง๊ฒŒ ํ•„์š”ํ•œ ๋ถ€๋ถ„์„ ์„ค๋ช…๋“œ๋ฆฐ ๊ฒƒ์ด๊ตฌ์š”. ํƒ€ ๊ธ€์—์„œ ์ข€ ๋” ์‹ฌ์ธต์ ์œผ๋กœ ๋‹ค๋ค„๋ณผ๊นŒ ํ•ฉ๋‹ˆ๋‹ค. Spring Cloud๋ฅผ ์‚ฌ์šฉํ•ด์„œ ๊ฐ„๋‹จํžˆ API๋ฅผ ๊ตฌ์„ฑํ•˜๋Š” ๋ฐฉ๋ฒ•๋„ ์•Œ์•˜๊ณ , ์ด์™€ ๋น„์Šทํ•˜๊ฒŒ Python์˜ Django, Flask ๋“ฑ ํƒ€ ์–ธ์–ด, ํƒ€ ํ”„๋ ˆ์ž„์›Œํฌ์—์„œ๋„ ์–ด๋–ป๊ฒŒ ๊ตฌ์„ฑํ•  ์ˆ˜ ์žˆ๋Š”์ง€ ๊ฐ์ด ์žกํ˜”์„ ๊ฒƒ์ด๋ผ ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ์˜ค๋Š˜์€ ์ด๋“ค API๋ฅผ ๊ทธ๋ฃนํ™” ์‹œ์ผœ์ฃผ๋Š” API Gateway..

2019. 12. 29. 13:47

[Spring Cloud] - 3. API ์„œ๋ฒ„๋กœ ์„ค์ • ๊ฐ’ ๋ถˆ๋Ÿฌ์˜ค๊ธฐ

์ง€๋‚œ ํฌ์ŠคํŠธ์—์„œ๋Š” Configuration Server๋ฅผ ์„ค์ •ํ•˜๋Š” ๋‘ ๊ฐ€์ง€ ๋ฐฉ๋ฒ•์„ ์•Œ์•„๋ดค์Šต๋‹ˆ๋‹ค. ์ฒซ ๋ฒˆ์งธ ๋ฐฉ๋ฒ•์€ ๋กœ์ปฌ์˜ ์ €์žฅ๋˜์–ด ์žˆ๋Š” ์„ค์ • ํŒŒ์ผ์„ ๊ฐ€์ ธ์˜ค๋Š” ๋ฐฉ๋ฒ•์ด์—ˆ๊ณ , ๋‘ ๋ฒˆ์จฐ ๋ฐฉ๋ฒ•์€ Github ๋“ฑ์˜ ๋ ˆํฌ์ง€ํ„ฐ๋ฆฌ์— ์žˆ๋Š” ํŒŒ์ผ์„ ๊ฐ€์ ธ์˜ค๋Š” ๋ฐฉ๋ฒ•์ด์—ˆ์Šต๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ์ด๋Ÿฌํ•œ ์„œ๋ฒ„๊ฐ€ ์ œ๋Œ€๋กœ ๊ตฌ์ถ•๋˜์–ด ์žˆ๋Š”์ง€ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•ด์„œ REST API๋ฅผ ์ง์ ‘ ํ˜ธ์ถœํ•˜์—ฌ ํ•ด๋‹น ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•˜๋Š” ๋ฐฉ๋ฒ•์œผ๋กœ ํ…Œ์ŠคํŠธ๋ฅผ ํ–ˆ์—ˆ๋Š”๋ฐ์š”. ํ•˜์ง€๋งŒ ์ด๋Ÿฌํ•œ ๊ฒฐ๊ณผ๋ฅผ ๋ณด๊ณ , ์–ด๋–ป๊ฒŒ API ์„œ๋ฒ„๊ฐ€ ์ด๋Ÿฌํ•œ ๊ฐ’์„ ๋ฐ›๋Š”์ง€์— ๋Œ€ํ•ด์„œ๋Š” ์•„๋งˆ ๊ถ๊ธˆํ•ด ํ•˜์…จ์„ ๊ฒƒ์ด๋ผ ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ ์ด๋ฒˆ ํฌ์ŠคํŠธ์—์„œ๋Š” ์ง์ ‘ ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์„ ๋งŒ๋“ค๊ณ , ํ•ด๋‹น ์„œ๋ฒ„์— ๋งž๋Š” ์„ค์ •๊ฐ’์„ ๋งŒ๋“ค์–ด, ๊ฐ€์ ธ์˜ค๋Š” ๋ฐฉ๋ฒ•์„ ์•Œ์•„๋ณด๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ๋จผ์ € API ์„œ๋ฒ„๋ฅผ ๋งŒ๋“ค์–ด๋ณด๋„๋ก ํ•˜์ฃ . ์ƒˆ๋กœ์šด Spring Boot..

2019. 12. 26. 13:26

[Spring Cloud] - 2. Github and Configuration Server

์•ˆ๋…•ํ•˜์„ธ์š”. ์ง€๋‚œ ์‹œ๊ฐ„์—๋Š” Spring Cloud์˜ Configuration Server๋ฅผ ๋กœ์ปฌ ํ™˜๊ฒฝ์˜ ์„ค์ • ํŒŒ์ผ์„ ํ†ตํ•˜์„œ ๊ตฌ์„ฑํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ์•Œ์•„๋ดค์Šต๋‹ˆ๋‹ค. ๋กœ์ปฌ ๋‚ด์— ์žˆ๋Š” ์„ค์ • ํŒŒ์ผ์„ ์ง์ ‘ ์ž‘์„ฑํ•˜์—ฌ ์ด๋ฅผ Pull ๋ฐฉ์‹์œผ๋กœ ์ด์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ๋ณ„๋„์˜ ๊ตฌ์„ฑ ์„œ๋ฒ„๋ฅผ ์ž‘์„ฑํ•˜๋Š” ๊ฒƒ์€ ๋งค์šฐ ํšจ์œจ์ ์œผ๋กœ ์„œ๋ฒ„์˜ ๊ตฌ์„ฑ ์„ค์ •์„ ๋ณ€๊ฒฝํ•˜๊ณ  ์ƒˆ๋กœ์ด ์ž‘์„ฑํ•˜๋Š” ๋ฐ ์šฉ์ดํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ๋ฐ, ์—ฌ๊ธฐ์— Git์„ ์ถ”๊ฐ€ํ•œ๋‹ค๋ฉด ์–ด๋–จ๊นŒ์š”? ๊ธฐ์กด์˜ ์„ค์ •์—์„œ ์ƒˆ๋กœ์šด ์„ค์ •์œผ๋กœ ๋ณ€๊ฒฝํ•œ ๋’ค, ์–ด๋– ํ•œ ๋ฌธ์ œ์ ์ด ์ƒ๊ฒผ๋‹ค๊ฑฐ๋‚˜ ์ด์Šˆ๊ฐ€ ๋ฐœ์ƒ๋œ๋‹ค๋ฉด ๋กค๋ฐฑ์„ ํ•˜์—ฌ์•ผ ํ•ฉ๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ํŒŒ์ผ ์‹œ์Šคํ…œ์—์„œ ๋กค๋ฐฑ์„ ํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์€ Volume Shadow Copy ์ •๋„๋‚˜ ํ˜น์€ RAID ๋ ˆ๋ฒจ์—์„œ ์ œ๊ณตํ•˜๋Š” Snapshot, BRTFS์—์„œ ์ œ๊ณตํ•˜๋Š” Snapshot์ผ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ..

2019. 12. 5. 12:00

MSA (Micro Service Architecture) ๋ž€ ๋ฌด์—‡์ผ๊นŒ?

์•ˆ๋…•ํ•˜์„ธ์š”. ์˜ค๋Š˜์€ Micro Service Architecture์— ๋Œ€ํ•ด ์ด์•ผ๊ธฐ ํ•ด๋ณด๊ณ ์ž ํ•ฉ๋‹ˆ๋‹ค. ํ•œ๋™์•ˆ MSA๊ฐ€ ๊ต‰์žฅํžˆ ํ™”๋‘์˜€๋Š”๋ฐ, ์š”์ฆ˜์€ ๋ถ„์œ„๊ธฐ๊ฐ€ ์‹์–ด์ง€๋Š” ๋“ฏํ•˜์—ฌ ์˜ค๋Š˜ ๋ธ”๋กœ๊ทธ์— ์ด ๊ธ€์„ ์ ๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ๋ฐฑ์—”๋“œ ๊ฐœ๋ฐœ์„ ์œ„ํ•ด์„œ Spring, Django ๋“ฑ ๋‹ค์–‘ํ•œ ํ”„๋ ˆ์ž„์›Œํฌ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ฐœ๋ฐœ์„ ํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ๋ณดํ†ต ์ด๋“ค ํ”„๋ ˆ์ž„์›Œํฌ๋ฅผ ์ด์šฉํ•ด์„œ ํŠน์ • ๊ธฐ๋Šฅ์„ ์ˆ˜ํ–‰ํ•˜๋Š” API๋ฅผ ์„ค๊ณ„ํ•˜๊ณ  ๊ฐœ๋ฐœํ•˜์—ฌ ์„œ๋น„์Šคํ•˜๋Š” ๊ฒƒ์ด ๊ธฐ๋ณธ ํ˜•ํƒœ์ด์ฃ . ์ด๋ ‡๊ฒŒ UI, ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง, ๋ฐ์ดํ„ฐ ๋ ˆ์ด์–ด๊นŒ์ง€ ๋ชจ๋“  ๊ฒƒ์„ ํ•œ ํ†ต ์†์—์„œ ์šด์˜ํ•˜๋Š” ๋ฐฉ์‹์„ ๋ชจ๋†€๋ฆฌํ‹ฑ ์•„ํ‚คํ…์ฒ˜๋ผ๊ณ  ์ด์•ผ๊ธฐ ํ•ฉ๋‹ˆ๋‹ค. ํ”ํžˆ ํ•™๋ถ€์—์„œ ์šด์˜์ฒด์ œ ๊ณผ๋ชฉ์„ ์ˆ˜๊ฐ•ํ•ด๋ณด์‹  ๋ถ„๋“ค์ด๋ผ๋ฉด, ๋ชจ๋†€๋ฆฌํ‹ฑ ์ปค๋„์ด๋ผ๋Š” ๋‹จ์–ด๋ฅผ ๋“ค์–ด๋ณด์…จ์„ํ…๋ฐ, ๊ฑฐ๊ธฐ์—์„œ ๋‚˜์˜ค๋Š” ๋ชจ๋†€๋ฆฌํ‹ฑ๊ณผ ๋™์ผํ•œ ๋‹จ์–ด์ž…๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ๋ฐ, ์ด..