๐Ÿ“š Study/TLDR

[WebDev] You probably don’t need microservices

์ ์ด 2024. 5. 19. 20:03
๋ฐ˜์‘ํ˜•

 

 

You probably don’t need microservices

Microservices is a great architectural style that helps to scale the system and the organization. But probably you don’t need microservices...

www.thrownewexception.com


๋งˆ์ดํฌ๋กœ ์„œ๋น„์Šค๋Š” ์‹œ์Šคํ…œ๊ณผ ๊ตฌ์กฐ๋ฅผ ํ™•์žฅํ•˜๋Š”๋ฐ์— ๋„์›€์ด ๋˜๋Š” ํ›Œ๋ฅญํ•œ ๋ฐฉ์‹์œผ๋กœ ์ตœ๊ทผ ๊ต‰์žฅํžˆ ์ธ๊ธฐ์žˆ๋Š” ์•„ํ‚คํ…์ฒ˜ ์Šคํƒ€์ผ์ด๋‹ค. ๋งŽ์€ ์„ฑ๊ณตํ•œ ํšŒ์‚ฌ๋“ค(๋„ทํ”Œ๋ฆญ์Šค, Spotify..)์„ ํฌํ•จํ•˜์—ฌ ๋Œ€๋ถ€๋ถ„์˜ ํšŒ์‚ฌ๋“ค์ด ์ด ๋ฐฉ์‹์„ ์‚ฌ์šฉํ•˜๊ฑฐ๋‚˜ ์‚ฌ์šฉํ•  ๊ณ„ํš์„ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค. ํ•˜์ง€๋งŒ, ๋ช‡๋ช‡ ํšŒ์‚ฌ๋“ค์€ ๋งˆ์ดํฌ๋กœ ์„œ๋น„์Šค๊ฐ€ ๊ฐ€์ ธ์˜ค๋Š” ์ถ”๊ฐ€ ๋น„์šฉ์„ ๊ฐ„๊ณผํ•˜๊ณ  ์žˆ๋‹ค.

๋ณธ๊ฒฉ์ ์œผ๋กœ ์ด์•ผ๊ธฐ ํ•˜๊ธฐ์ „์—, ์ €์ž์˜ ๋งˆ์ดํฌ๋กœ ์„œ๋น„์Šค ๊ฒฝํ—˜์„ ์ด์•ผ๊ธฐํ•œ๋‹ค.

How it started - Is it microservices?

2012๋…„ ๋‚˜๋Š” ‘์–ด๋–ป๊ฒŒ ํ•˜๋ฉด ์ˆ˜์ฒœ๋ช…์˜ ์—”์ง€๋‹ˆ์–ด์™€ ์ฒœ๋ฐฐ ๋” ๋งŽ์€ ํŠธ๋žœ์žญ์…˜์„ ์ฒ˜๋ฆฌํ•˜๋„๋ก ์„ฑ์žฅ์‹œํ‚ฌ ์ˆ˜ ์žˆ์„๊นŒ’ ๋ผ๋Š” ๋„์ „์— ์ง๋ฉดํ–ˆ๋‹ค.

๋‚˜๋Š” ๋‹น์‹œ ‘Scalability Rules: 50 Principles for Scaling Web Sites’ ์ฑ…์„ ์ฝ๊ณ  ์žˆ์—ˆ๊ณ , ๊ทธ ์ฑ…์—์„œ AKF Scale Cube ๋ผ๋Š” ๋ฐฉ์‹์„ ๋ณด์•˜๋‹ค.

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

So, what’s wrong?

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

Ex 1. You get a service, and you get a service, you all get a service

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

๊ทธ ํšŒ์‚ฌ๋Š” ๊ฐœ๋ฐœ์ž๋ณด๋‹ค ๋” ๋งŽ์€ ๋งˆ์ดํฌ๋กœ ์„œ๋น„์Šค๋ฅผ ์šด์˜ํ•˜๊ณ  ์žˆ๋‹ค. ํด๋ผ์ด์–ธํŠธ๋“ค์—๊ฒŒ ๋งŽ์€ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•˜๋Š” ์ œํ’ˆ ์ค‘์‹ฌ์˜ ํšŒ์‚ฌ์—์„œ, ์ด ๋ชจ๋“  ๋งˆ์ดํฌ๋กœ ์„œ๋น„์Šค๋ฅผ ๊ณ„์†ํ•ด์„œ ๋”ฐ๋ผ๊ฐ€๋Š” ๊ฒƒ์€ ๋งค์šฐ ์–ด๋ ต๋‹ค.

Ex 2. You change, I change, we all change

๋‚ฎ์€ ๊ฒฐํ•ฉ๋„์™€ ๋†’์€ ์‘์ง‘๋ ฅ์„ ๋ฐ”๋กœ ๋‹ฌ์„ฑํ•˜๋Š” ๊ฒƒ์€ ์–ด๋ ต๋‹ค. ๋งˆ์ดํฌ๋กœ ์„œ๋น„์Šค ์•„ํ‚คํ…์ฒ˜์—์„œ ์ด๋ฅผ ์ œ๋Œ€๋กœ ๊ตฌํ˜„ํ•˜๋Š” ๊ฒƒ์€ ๋”์šฑ ์–ด๋ ต๋‹ค. ๋งค์šฐ ์ž‘์€ ์„œ๋น„์Šค(๋‚˜๋…ธ ์„œ๋น„์Šค๋ผ๊ณ ๋„ ๋ถˆ๋ฆฌ๋Š”)๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๊ฒฐํ•ฉ๋„๊ฐ€ ๋†’๊ณ  ์‘์ง‘๋ ฅ์ด ๋‚ฎ์•„์ง€๋Š” ์ƒํ™ฉ์— ์ฒ˜ํ•  ๊ฒƒ์ด๋‹ค.

์ด์ „ ํšŒ์‚ฌ์—์„œ bounded context์— ๋งค์šฐ ๋งŽ์€ ์ž‘์€ ์„œ๋น„์Šค๋“ค์ด ์žˆ์–ด์„œ ์–ด๋–ค ๋ณ€ํ™”์—๋„ ์—ฌ๋ŸฌํŒ€์ด ํ•จ๊ป˜ ์ž‘์—…ํ•ด์•ผํ•˜๋Š” ์ƒํ™ฉ์ด ์žˆ์—ˆ๋‹ค. ์‹ฌ์ง€์–ด ์„ฑ๋Šฅ๋งˆ์ € ๋”์ฐํ–ˆ๋‹ค.

๐Ÿ’ก bounded context

๋„๋ฉ”์ธ ์ฃผ๋„ ์„ค๊ณ„(DDD: Domain-Driven Design)์—์„œ ์‚ฌ์šฉ๋˜๋Š” ๊ฐœ๋…์œผ๋กœ, ํŠน์ • ๋„๋ฉ”์ธ ๋ชจ๋ธ์ด ์œ ํšจํ•œ ๊ฒฝ๊ณ„๋ฅผ ์ •์˜ํ•˜๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•œ๋‹ค. ์ฆ‰, ํŠน์ • ๋น„์ฆˆ๋‹ˆ์Šค ์˜์—ญ ๋‚ด์—์„œ ์šฉ์–ด์™€ ๊ฐœ๋…์˜ ์˜๋ฏธ๊ฐ€ ๋ช…ํ™•ํ•˜๊ฒŒ ์ •์˜๋˜๊ณ  ์ผ๊ด€๋˜๊ฒŒ ์‚ฌ์šฉ๋˜๋Š” ๋ฒ”์œ„์ด๋‹ค. ์ด๋Š” ๋„๋ฉ”์ธ ๋‚ด์˜ ๋…ผ๋ฆฌ์  ๊ฒฝ๊ณ„๋ฅผ ์„ค์ •ํ•˜์—ฌ ํ˜ผ๋ž€์„ ์ค„์ด๊ณ , ๊ฐ ๊ฒฝ๊ณ„ ๋‚ด์—์„œ ๋ชจ๋ธ์˜ ์ผ๊ด€์„ฑ์„ ์œ ์ง€ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•œ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด, ์ „์ž์ƒ๊ฑฐ๋ž˜ ์‹œ์Šคํ…œ์—์„œ "์ฃผ๋ฌธ(Order)"์ด๋ผ๋Š” ๊ฐœ๋…์€ ์—ฌ๋Ÿฌ ์ปจํ…์ŠคํŠธ์—์„œ ๋‹ค๋ฅด๊ฒŒ ํ•ด์„๋  ์ˆ˜ ์žˆ๋‹ค. ์ฃผ๋ฌธ์„ ์ƒ์„ฑํ•˜๊ณ  ๊ด€๋ฆฌํ•˜๋Š” ์ปจํ…์ŠคํŠธ์™€ ์ฃผ๋ฌธ์„ ๋ฐฐ์†กํ•˜๋Š” ์ปจํ…์ŠคํŠธ๋Š” ์„œ๋กœ ๋‹ค๋ฅธ ์š”๊ตฌ์‚ฌํ•ญ๊ณผ ๊ทœ์น™์„ ๊ฐ€์งˆ ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๋ณ„๋„์˜ bounded context๋กœ ๋‹ค๋ฃจ๋Š” ๊ฒƒ์ด ์ข‹๋‹ค.

์ด ์˜ˆ์‹œ๋Š” ์ข‹์€ ์˜ˆ์‹œ์ธ๋ฐ, ๊ทธ ์ด์œ ๋Š” ํŒ€๋“ค์ด ์„ฑ๋Šฅ์„ ํ–ฅ์ƒ์‹œํ‚ค๊ธฐ ์œ„ํ•ด ๋ชจ๋“  ์ •๋ณด๋ฅผ ์ข…ํ•ฉํ•˜๋Š” ๋˜ ํ•˜๋‚˜์˜ ์„œ๋น„์Šค๋ฅผ ๋งŒ๋“ค๊ณ ์ž ํ–ˆ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. ์ž‘์€ ์„œ๋น„์Šค๋“ค์„ ํ•ฉ์ณ ๋” ๋†’์€ ์‘์ง‘๋ ฅ์„ ๊ฐ€์ง€๋ ค๋Š” ์•„์ด๋””์–ด๊ฐ€ ๋‹จ์ง€ “๋ชจ๋†€๋ฆฌ์‹์ฒ˜๋Ÿผ ๋ณด์ธ๋‹ค”๋ผ๋Š” ์ด์œ ๋กœ ๋‚˜์˜๋‹ค๊ณ  ์—ฌ๊ฒจ์กŒ๋‹ค.

Ex3. Everything was fine, until it wasn’t

๊ธฐ์ˆ  ๋ถ„์•ผ์—์„œ ์ผ์–ด๋‚˜๋Š” ๋Œ€๊ทœ๋ชจ ์ธ๋ ฅ ๊ฐ์ถ•์œผ๋กœ ์ธํ•ด ๋” ๋งŽ์€ ํšŒ์‚ฌ๋“ค์ด ์‹ฌ์ธต์ ์œผ๋กœ ์ธ๋ ฅ์„ ๊ฐ์ถ•ํ•œ ํ›„์—๋„ ์„œ๋น„์Šค ์ˆ˜๊ฐ€ ๋„ˆ๋ฌด ๋งŽ๋‹ค๋Š” ์ด์•ผ๊ธฐ๋ฅผ ๋“ฃ๊ณ  ์žˆ๋‹ค.

์ด๊ฒƒ์€ ๊ณต์žฅํ•œ ์˜ˆ๊ฐ€ ์•„๋‹ ์ˆ˜ ์žˆ๋‹ค. ๋ˆ„๊ฐ€ ํšŒ์‚ฌ๋“ค์ด 40~60%์˜ ์ธ๋ ฅ์„ ๊ฐ์ถ•ํ•  ๊ฒƒ์ด๋ผ๊ณ  ์˜ˆ์ƒํ–ˆ์„๊นŒ? ๋‹จ์ˆœํ•จ์€ ์ด ์—…๊ณ„์—์„œ ๊ฐ€์žฅ ์–ด๋ ค์šด ๊ฒƒ ์ค‘ ํ•˜๋‚˜์ด๋‹ค. ํ•˜์ง€๋งŒ ์šฐ๋ฆฌ๋Š” ๊ฐ€๋Šฅํ•œ ๋‹จ์ˆœํ•˜๊ฒŒ ์œ ์ง€ํ•˜๋˜, ๋„ˆ๋ฌด ๋‹จ์ˆœํ•˜์ง€ ์•Š์•„์•ผ ํ•œ๋‹ค.

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

Ex 4. Let’s start our startup using microservices

Greenfield ํ”„๋กœ์ ํŠธ๋Š” ๋†€๋ž๋‹ค. ์ด๊ฒƒ์€ ์ฐฝ์˜์ ์ธ ์˜ˆ์ˆ ๊ฐ€๊ฐ€ ๊ทธ๋ฆฌ๊ธฐ ์‹œ์ž‘ํ•œ ๋นˆ ์บ”๋ฒ„์Šค์™€ ๊ฐ™๋‹ค. ์ด ์ƒํ™ฉ์—์„œ ์˜ˆ์ˆ ๊ฐ€๋Š” ๋‹ค์ฑ„๋กœ์šด ๊ทธ๋ฆผ์„ ๊ทธ๋ฆฌ๊ธฐ๋กœ ํ•œ๋‹ค. ์˜ˆ์ˆ ๊ฐ€๋Š” Ruby, Golang, Java์™€ ๊ฐ™์€ ์ฃผ์š” ์ƒ‰์ƒ์„ ์„ ํƒํ–ˆ๊ณ , ๊ทธ๊ฒƒ์„ Postgresql, Elasticsearch, Cassandra ๋“ฑ๊ณผ ์„ž์—ˆ๋‹ค.

์ด ๊ทธ๋ฆผ, ๋งŒ์•ฝ ๊ทธ๋“ค์ด ์‹œ๊ฐ„์„ ๋‚ด์„œ ์™„์„ฑํ•  ์ˆ˜๋งŒ ์žˆ๋‹ค๋ฉด ํ”ผ์นด์†Œ๊ฐ€ ๋  ์ˆ˜ ์žˆ์—ˆ๋‹ค.

ํ•ญ์ƒ ๋‚˜์œ๊ฒƒ์€ ์•„๋‹ˆ๋‹ค. ์‹ค์ œ๋กœ jet.com์€ ๋งˆ์ดํฌ๋กœ ์„œ๋น„์Šค๋ฅผ ์‚ฌ์šฉํ–ˆ๊ณ , ์›”๋งˆํŠธ์— ์ข‹์€ ๊ฒฐ๊ณผ๋ฅผ ๋ƒˆ๋‹ค. ๋‚˜๋Š” ๋‹จ์ง€ ์šฐ๋ฆฌ๊ฐ€ ์—”์ง€๋‹ˆ์–ด๋กœ์„œ ๋น„ํŒ์ ์ธ ์‚ฌ๊ณ ๋ฅผ ๊ฐ–๊ณ  ๋ฌด์—‡์ด ๊ฐ€์žฅ ์ข‹์„์ง€ ์„ ํƒํ•ด์•ผํ•œ๋‹ค๊ณ  ๋งํ•˜๊ณ  ์‹ถ๋‹ค.

Ok, but why?

์ด ๊ธ€์„ ์ฝ๋Š” ์ผ๋ถ€ ์‚ฌ๋žŒ๋“ค์€ “์ด๊ฒƒ์€ ๊ธฐ์ˆ  ์ด์Šˆ์•ผ”๋ผ๊ณ  ์ƒ๊ฐํ•  ์ˆ˜ ์žˆ๋‹ค. ํ•˜์ง€๋งŒ ์•„๋‹ˆ๋‹ค. ์ฒ˜์Œ ๋‘ ์˜ˆ์‹œ์˜ ์‚ฌ๋žŒ๋“ค์„ ๋‚˜๋Š” ์•ˆ๋‹ค. ๊ทธ๋“ค์€ ๋งค์šฐ ๋˜‘๋˜‘ํ•˜๊ณ  ํ›Œ๋ฅญํ•œ ์—”์ง€๋‹ˆ์–ด๋‹ค. ๋‹ค๋ฅธ ์˜ˆ์‹œ์— ๋‚˜์˜จ ์‚ฌ๋žŒ๋“ค๋„ ๋ถ„๋ช…ํžˆ ๋˜‘๋˜‘ํ•  ๊ฒƒ์ด๋‹ค.

 

 

Scott Hanner์˜ ์ด ํŠธ์œ„ํ„ฐ์—์„œ ์ข‹์€ ์ด์œ ๋ฅผ ์ œ์‹œํ–ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ๋งˆ์ดํฌ๋กœ ์„œ๋น„์Šค๋“ค์„ internalized(๋‚ด๋ฉดํ™”) ํ–ˆ๋‹ค. ์•„๋งˆ ์ด๊ฒƒ์ด ๋งŽ์€ ํŒ€๋“ค์ด ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค๋ฅผ ์ฑ„ํƒํ•˜๋Š” ์ด์œ ์ผ ๊ฒƒ์ด๋‹ค. ์ด๋Ÿฌํ•œ ์‚ฌ๊ณ ๋ฐฉ์‹์€ ์šฐ๋ฆฌ์˜ ๋‡Œ์— ๊นŠ์ˆ™ํžˆ ์ž๋ฆฌ์žก๊ณ  ์žˆ๋‹ค.

์ œ๋กœ ์ด์ž์œจ ์ •์ฑ…(ZIRP)๋„ ์•„๋งˆ ๊ทธ ์›์ธ ์ค‘ ํ•˜๋‚˜์ผ ์ˆ˜ ์žˆ๋‹ค.

๐Ÿ’ก Zero Interest Rate Policy

์ œ๋กœ ์ด์ž์œจ ์ •์ฑ…(Zero Interest Rate Policy, ZIRP)์€ ์ค‘์•™์€ํ–‰์ด ๊ธฐ์ค€ ๊ธˆ๋ฆฌ๋ฅผ 0%๋กœ ์„ค์ •ํ•˜๊ณ  ์œ ์ง€ํ•˜๋Š” ์ •์ฑ…์„ ์˜๋ฏธํ•œ๋‹ค. ์ด ์ •์ฑ…์€ ๊ฒฝ์ œ๋ฅผ ํ™œ์„ฑํ™”ํ•˜๊ณ  ๊ธˆ์œต ์‹œ์žฅ์„ ์•ˆ์ •ํ™”์‹œํ‚ค๋Š” ๋ฐ ์‚ฌ์šฉ๋œ๋‹ค.

์ด ๋น„์œ ์—์„œ "ZIRP"๋Š” ๊ธฐ์ˆ  ๋ถ„์•ผ์—์„œ ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค์˜ ๋Œ€์ค‘ํ™”๊ฐ€ ์‰ฝ๊ฒŒ ์ด๋ฃจ์–ด์ง€๊ณ , ๊ธฐ์—…๋“ค์ด ๋” ๋งŽ์€ ํ”„๋กœ๊ทธ๋ž˜๋จธ๋ฅผ ๊ณ ์šฉํ•˜๊ณ ์ž ํ•˜๋Š” ๊ฒฝํ–ฅ๊ณผ ์—ฐ๊ด€์ง€์–ด ์‚ฌ์šฉ๋œ๋‹ค. ์ฆ‰, ๊ธฐ์ˆ  ์‚ฐ์—…์—์„œ์˜ ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค ์—ดํ’์ด ๋งˆ์น˜ ๊ฒฝ์ œ์— ๋Œ€ํ•œ ์ œ๋กœ ์ด์ž์œจ ์ •์ฑ…๊ณผ ๊ฐ™์ด ํšจ๊ณผ์ ์ธ ํ”„๋กœ๊ทธ๋ž˜๋จธ ๊ณ ์šฉ ํ”„๋กœ๊ทธ๋žจ์œผ๋กœ ์ž‘์šฉํ–ˆ๋‹ค๋Š” ์˜๋ฏธ๋ฅผ ๋‹ด๊ณ  ์žˆ๋‹ค.

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

You still have time

์œ„์˜ ์˜ˆ์‹œ ์ค‘ ์–ด๋–ค ๊ฒƒ์ด๋ผ๋„ ๋‹น์‹ ๊ณผ ๊ด€๋ จ์ด ์žˆ๋”๋ผ๋„, ๊ฑฑ์ •ํ•˜์ง€ ๋งˆ๋ผ. ์†Œํ”„ํŠธ์›จ์–ด์˜ ์ข‹์€ ์ ์€ ๊ฑฐ์˜ ํ•ญ์ƒ ๋ฐ”๊ฟ€ ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์ด๋‹ค. ๋‹น์‹ ์ด ์ด๊ฒƒ์„ ‘๋ฌธ์ œ’๋ผ๊ณ  ๋ณด๊ณ  ์žˆ๋‹ค๋ฉด, ‘๊ธฐํšŒ’๋ผ๊ณ  ๋ฐ”๊ฟ”์„œ ์ƒ๊ฐํ•ด๋ณด์•„๋ผ.

์„œ๋น„์Šค์˜ ์ˆ˜๊ฐ€ ๋Šฅ๋ ฅ์„ ํ˜์‹  ์‹œํ‚ค๋Š”๋ฐ์— ์˜ํ–ฅ์„ ์ฃผ๊ณ  ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•˜๋Š”๊ฐ€? ํšŒ์‚ฌ๊ฐ€ ์šด์˜ ์˜ค๋ฒ„ํ—ค๋“œ๋ฅผ ์ค„์ผ ์ˆ˜ ์žˆ๋Š” ์ „๋žต์„ ์ˆ˜๋ฆฝํ•ด๋ผ. ์‹ ๋ขฐ์„ฑ์„ ์™„ํ™”ํ•  ์ˆ˜๋„ ์žˆ๊ณ , ์•„๋‹ˆ๋ฉด ์‹œ์Šคํ…œ ์•„ํ‚คํ…์ฒ˜๋ฅผ ๋‹จ์ˆœํ™”ํ•˜๋Š” ๋ฐ ํˆฌ์žํ•˜์—ฌ ๋” ๋งŽ์€ ํ˜์‹  ๋Šฅ๋ ฅ์„ ๋†’์ผ ์ˆ˜ ์žˆ๋‹ค.

์˜ˆ์‹œ 2์˜ ํŒ€์€ ๊ทธ๋ ‡๊ฒŒ ํ–ˆ๋‹ค. ๊ทธ๋“ค์€ ๋น„์šฉ ์ ˆ๊ฐ๊ณผ ๋” ๋‚˜์€ ๊ณ ๊ฐ ๊ฒฝํ—˜์— ์ง‘์ค‘ํ•˜๋Š” ‘์„œ๋น„์Šค ํ†ตํ•ฉ’ ์ „๋žต์„ ์ œ์‹œํ–ˆ๋‹ค. ์ด์— ์ดํ•ด ๊ด€๊ณ„์ž๋“ค์€ ๋งค์šฐ ๋งŒ์กฑํ–ˆ๋‹ค.

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

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

 

Dear Developers,

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

 

๐Ÿ’ก Sometimes microservices are great… but you probably don’t need microservices.


Opinion

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

์˜ˆ์‹œ 4์™€ ํŠธ์œ„ํ„ฐ ๊ธ€์—์„œ๋„ ์ž˜ ํ‘œํ˜„์ด ๋œ ๊ฒƒ ๊ฐ™์ง€๋งŒ, ์ด ์ €์ž๊ฐ€ ๋งํ•˜๊ณ ์ž ํ•˜๋Š” ๊ฒƒ์€ ์Šต๊ด€์ ์œผ๋กœ ๋งˆ์ดํฌ๋กœ ์„œ๋น„์Šค๋ฅผ ์ฑ„ํƒํ•˜๋Š” ๊ฒƒ์„ ์ง€์ ํ•˜๊ณ  ์‹ถ์€ ๊ฒƒ์œผ๋กœ ๋ณด์ธ๋‹ค. ์‹ค์ œ๋กœ ๋งŒ๋“œ๋ ค๋Š” ์„œ๋น„์Šค์— ์–ด๋–ค ์•„ํ‚คํ…์ฒ˜๊ฐ€ ์ ํ•ฉํ•  ๊ฒƒ์ธ๊ฐ€์— ๋Œ€ํ•œ ๊ณ ๋ฏผ์—†์ด ํ•ญ์ƒ ๋งˆ์ดํฌ๋กœ ์„œ๋น„์Šค๋ฅผ ์ฑ„ํƒํ•ด์™”๋‹ค. ์ด๋ฅผ ์ข€๋” ๋น„ํŒ์ ์ธ ์‚ฌ๊ณ ๋กœ ๋ฐ”๋ผ๋ณด๊ณ  '์„ ํƒ'ํ•ด์•ผ๋งŒ ํ•œ๋‹ค. 

๐ŸŒŸ๊ฐœ๋ฐœ์—์„œ ๋‹น์—ฐํ•œ ๊ฒƒ์€ ์—†๋‹ค! ํ•ญ์ƒ ์„œ๋น„์Šค์— ์–ด๋–ค๊ฒƒ์ด ์ ํ•ฉํ• ์ง€ ๋ถ„์„ํ•˜๊ณ , ๊ณ ๋ฏผํ•˜๋ฉฐ, ์„ ํƒํ•˜๋Š” ๊ฐœ๋ฐœ์ž๊ฐ€ ๋˜์ž.๐ŸŒŸ

๋ฐ˜์‘ํ˜•