๐Ÿ“ Circuit Breaker๋ž€?

๋ชฉ์ : ์žฅ์•  ์ „ํŒŒ๋ฅผ ๋ง‰๊ณ , ์ „์ฒด ์‹œ์Šคํ…œ์˜ ์•ˆ์ •์„ฑ์„ ํ™•๋ณดํ•˜๋Š” ๊ฒƒ


โš™๏ธ ์™œ ํ•„์š”ํ• ๊นŒ?

๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค ํ™˜๊ฒฝ์—์„œ๋Š” ์„œ๋น„์Šค ๊ฐ„์˜ ํ†ต์‹ ์ด ๋งŽ๊ณ , ์™ธ๋ถ€ API ๋˜๋Š” DB ๊ฐ™์€ ์˜์กด์„ฑ ์š”์†Œ๊ฐ€ ๋งŽ์•„์ง„๋‹ค. ์ด๋•Œ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋‹ค:

Circuit Breaker๋Š” ์ด๋ฅผ ๋ง‰๊ธฐ ์œ„ํ•ด ์ผ์ • ์‹คํŒจ์œจ ์ด์ƒ์ผ ๊ฒฝ์šฐ ์ผ์ • ์‹œ๊ฐ„ ๋™์•ˆ ์š”์ฒญ์„ ์ฐจ๋‹จํ•œ๋‹ค.


๐Ÿ”„ ์ƒํƒœ ์ „์ด ํ๋ฆ„

์ƒํƒœ ์„ค๋ช…
Closed ์ •์ƒ ์ƒํƒœ. ๋ชจ๋“  ์š”์ฒญ ํ†ต๊ณผ. ์‹คํŒจ์œจ์ด ์ž„๊ณ„์น˜๋ฅผ ๋„˜์œผ๋ฉด Open์œผ๋กœ ์ „ํ™˜
Open ๋ชจ๋“  ์š”์ฒญ ์ฐจ๋‹จ. ์ผ์ • ์‹œ๊ฐ„ ์ดํ›„ Half-Open์œผ๋กœ ์ „ํ™˜
Half-Open ์ผ๋ถ€ ์š”์ฒญ๋งŒ ํ—ˆ์šฉํ•˜์—ฌ ํ…Œ์ŠคํŠธ. ์„ฑ๊ณต ์‹œ Closed, ์‹คํŒจ ์‹œ ๋‹ค์‹œ Open

โœ… ์‹ค๋ฌด์—์„œ ์ ์šฉ ์ˆœ์„œ

1. ์˜์กด์„ฑ ์ถ”๊ฐ€ (Gradle ๊ธฐ์ค€)

dependencies {
    implementation 'io.github.resilience4j:resilience4j-spring-boot3:2.1.0'
    implementation 'org.springframework.boot:spring-boot-starter-aop'
}

2. ์„ค์ • ํŒŒ์ผ ์ž‘์„ฑ (application.yml)