Backend/spring cloud (MSA)

MSA ํ•„์ˆ˜ ๊ฐœ๋…

dddzr 2025. 9. 1. 21:52

๐Ÿ“Œ 1. ์„œ๋น„์Šค ๋“ฑ๋ก & ํ†ต์‹ 

โœ… 1-1. Spring Cloud

  • Spring Framework๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•œ ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค ์•„ํ‚คํ…์ฒ˜(MSA)์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๋„๊ตฌ์™€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๋ชจ์Œ!!
  • ์„œ๋น„์Šค ๊ฐ„ ํ†ต์‹ , ์„ค์ • ๊ด€๋ฆฌ, ๋กœ๋“œ๋ฐธ๋Ÿฐ์‹ฑ, ์žฅ์•  ์ฒ˜๋ฆฌ, ๋ฉ”์‹œ์ง• ๋“ฑ์„ ํŽธ๋ฆฌํ•˜๊ฒŒ ์ง€์›

๐Ÿ“Š ์ฃผ์š” ๊ธฐ๋Šฅ / ๊ตฌ์„ฑ ์š”์†Œ

๊ธฐ๋Šฅ Spring Cloud ๋ชจ๋“ˆ ์„ค๋ช…
์„œ๋น„์Šค ๋“ฑ๋ก & ๊ฒ€์ƒ‰ Eureka ์„œ๋น„์Šค๊ฐ€ ์–ด๋””์— ์žˆ๋Š”์ง€ ๋“ฑ๋กํ•˜๊ณ  ์กฐํšŒ
๋กœ๋“œ๋ฐธ๋Ÿฐ์‹ฑ Spring Cloud LoadBalancer ํด๋ผ์ด์–ธํŠธ ์ธก์—์„œ ์š”์ฒญ์„ ์—ฌ๋Ÿฌ ์ธ์Šคํ„ด์Šค๋กœ ๋ถ„์‚ฐ
API Gateway Spring Cloud Gateway ๋‹จ์ผ ์ง„์ž…์ ์—์„œ ๋ผ์šฐํŒ…, ํ•„ํ„ฐ๋ง, ๋กœ๋“œ๋ฐธ๋Ÿฐ์‹ฑ ์ง€์›
์„ค์ • ๊ด€๋ฆฌ Spring Cloud Config ๋ถ„์‚ฐ ์„œ๋น„์Šค์˜ ๊ณตํ†ต ์„ค์ •์„ ์ค‘์•™์—์„œ ๊ด€๋ฆฌ
๋ฉ”์‹œ์ง• Spring Cloud Stream Kafka, RabbitMQ ๋“ฑ๊ณผ ์—ฐ๋™ํ•œ ์ด๋ฒคํŠธ ๊ธฐ๋ฐ˜ ํ†ต์‹ 
ํšŒ๋กœ ์ฐจ๋‹จ(Fault Tolerance) Resilience4j / Hystrix(๊ณผ๊ฑฐ) ์„œ๋น„์Šค ์žฅ์•  ๋ฐœ์ƒ ์‹œ ์š”์ฒญ ์ฐจ๋‹จ, fallback ์ฒ˜๋ฆฌ
๋ถ„์‚ฐ ์ถ”์  Sleuth + Zipkin ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค ํ˜ธ์ถœ ํ๋ฆ„ ์ถ”์ , ๋กœ๊น… ์—ฐ๋™

 

โœ… 1-2. GateWay 

  • Spring Cloud GateWay๋กœ ๊ตฌ์„ฑ
  • ๋‹จ์ผ ์ง„์ž…์ (Entry Point) ์—ญํ• .
  • ์š”์ฒญ ๋ผ์šฐํŒ… (Request Routing): Eureka์™€ ์—ฐ๋™ํ•˜์—ฌ ์„œ๋น„์Šค๋กœ ์ „๋‹ฌํ•œ๋‹ค.
  • ์ธ์ฆ ๋ฐ ์ธ๊ฐ€ (Authentication & Authorization): ์ธ์ฆ ํ† ํฐ ๊ฒ€์ฆ, ๊ถŒํ•œ ํ•„ํ„ฐ ์ ์šฉ.
  • ๋กœ๋“œ ๋ฐธ๋Ÿฐ์‹ฑ (Load Balancing): Spring Cloud LoadBalancer๊ฐ€ ๋กœ๋“œ๋ฐธ๋Ÿฐ์‹ฑ.

 

โœ… 1-3. Eureka

  • Netflix์—์„œ ๊ฐœ๋ฐœํ•œ ์„œ๋น„์Šค ๋””์Šค์ปค๋ฒ„๋ฆฌ๋ฅผ ์ œ๊ณตํ•˜๋Š” ๋„๊ตฌ (์„œ๋น„์Šค ์œ„์น˜ ๊ด€๋ฆฌ)
  • ์˜์กด์„ฑ ์ถ”๊ฐ€ํ•˜์—ฌ ๋ฐ”๋กœ ์ด์šฉ 'Org.springframework.cloud:spring-cloud-starter-netflix-eureka-server'

 

๐Ÿ“Œ 2. ์ธ์ฆ/์ธ๊ฐ€ ๋ฐฉ๋ฒ•

โœ… 2-1. ์ธ์ฆ ๋ฐฉ์‹

  • JWTํ† ํฐ(access token) ์ž์ฒด ๋ฐœ๊ธ‰ ํ•˜์—ฌ ์ด์šฉ

 

โœ… 2-2. ๊ฒ€์ฆ ๋ฐฉ์‹

  • Security ์„œ๋น„์Šค์—์„œ ๋กœ๊ทธ์ธapi ์ œ๊ณต, ํ† ํฐ ๋ฐœ๊ธ‰
  • Client๋Š” ์š”์ฒญํ—ค๋”์— ํ† ํฐ์„ ํฌํ•จํ•˜์—ฌ ๋ณด๋‚ธ๋‹ค.
  • Gateway์—์„œ ํ† ํฐ ๊ฒ€์ฆ, Spring Security ์„ค์ • ํ†ตํ•œ ํ•„ํ„ฐ๋ง (๊ถŒํ•œ ๊ฒ€์‚ฌ)
    • JwtAuthenticationFilter๋ฅผ ํ•„ํ„ฐ๋ฅผ ๋ณ„๋„ ์ž‘์„ฑํ•˜์—ฌ spring security ํ•„ํ„ฐ ์ฒด์ธ์— ์ ์šฉํ•œ๋‹ค.
    • ์ฃผ์˜: gateway๋Š” webfluxํ™˜๊ฒฝ์ด๋ผ spring security ์‚ฌ์šฉ๋ฒ•์ด ์ผ๋ฐ˜ web๊ณผ ๋‹ค๋ฆ„!!