๐๊ฐ์ ์ ๋ฆฌ ๋ ธํธ (15) ์ธ๋ค์ผํ ๋ฆฌ์คํธํ [Spring Cloud๋ก ๊ตฌํํ๋ ๋ง์ดํฌ๋ก์๋น์ค] Section 4: ๋ก๊ทธ์ธ ์ฒ๋ฆฌ์ JWT ์ ์ฉ apigateway ๊ตฌ์ฑ application.yml์ ๋ง์ดํฌ๋ก์๋น์ค ์ ๋ณด ์ถ๊ฐ - id: user-service uri: lb://USER-SERVICE predicates: - Path=/user-service/login - Method=POST filters: - RemoveRequestHeader=Cookie # ์ฟ ํค ์ญ์ ํ ์คํ - RewritePath=/user-service/(?.*), /$\{segment} - id: user-service uri: lb://USER-SERVICE predicates: - Path=/user-service/users - Method=POST filters: - RemoveRequestHeader=Cookie # ์ฟ ํค ์ญ์ ํ ์คํ - RewritePath.. [Spring Cloud๋ก ๊ตฌํํ๋ ๋ง์ดํฌ๋ก์๋น์ค] Section 3: E-commerce ์ ํ๋ฆฌ์ผ์ด์ ๊ตฌ์กฐ E-commerce ์ ํ๋ฆฌ์ผ์ด์ ๊ตฌ์ฑ ๋ง๋ค ์ ํ๋ฆฌ์ผ์ด์ ๊ตฌ์ฑ๋ ์ต์ข ์ ์ธ ๊ตฌ์ฑ๋ ๊ตฌ์ฑ์์ Git repository์ ์์ค๊ด๋ฆฌ ymlํ์ผ์ด ์๋ Config Server์์ ํ๋กํ์ผ ์ ๋ณด ๋ฐ ์ค์ ๊ด๋ฆฌ (๋์ ์ผ๋ก ๊ตฌ์ถ ๊ฐ๋ฅ) kafka์ฐ๋ [Spring Cloud๋ก ๊ฐ๋ฐํ๋ ๋ง์ดํฌ๋ก์๋น์ค] Section 2: API Gateway Service API Gateway Service API Gateway๋ ์๋น์ค๋ก ์ ๋ฌ๋๋ ๋ชจ๋ API ์์ฒญ์ ๊ด๋ฌธ ์ญํ ์ ํ๋ค. ๋ด๋ถ ์๋ฒ ์์คํ ์ ์ํคํ ์ฒ๋ฅผ ๋ด๋ถ๋ก ์จ๊ธฐ๊ณ ์ธ๋ถ์ ์์ฒญ์ ๋ํ ์ ์ ํ ์๋ต์ ํ๋ค. ์ฆ, ํด๋ผ์ด์ธํธ๊ฐ ๋ด๋ถ ๊ตฌ์กฐ๋ฅผ ์ ํ์์์ด ์ฝ์ํ ํํ์ API์ ํต์ ํ๋ ๊ฒ์ด๋ค. API Gateway์ ๊ธฐ๋ฅ ํด๋ผ์ด์ธํธ์ ์์ฒญ์ ์ผ๊ด์ ์ผ๋ก ์ฒ๋ฆฌ ์๋น์ค ๋์ค์ปค๋ฒ๋ฆฌ ์ ์ฒด ์์คํ ์ ๋ถํ๋ฅผ ๋ถ์ฐ ์ํค๋ ๋ก๋ ๋ฐธ๋ฐ์์ ์ญํ ๋์ผํ ์์ฒญ์ ๋ํ ๋ถํ์ํ ๋ฐ๋ณต ์์ ์ ์ค์ผ ์ ์๋ ์บ์ฑ ์์คํ ์์ ์ค๊ณ ๊ฐ๋ ์์ฒญ๊ณผ ์๋ต์ ๋ํ ๋ชจ๋ํฐ๋ง ์์คํ ๋ด๋ถ์ ์ํคํ ์ฒ๋ฅผ ์จ๊ธธ ์ ์์ ํ๋ก์ฐจ๋จ๊ธฐ ๊ธฐ๋ฅ ์ธ์ฆ ๋ฐ ์ธ๊ฐ Spring Cloud์์ MSA๊ฐ ํต์ - RestTemplate - Feign Client Netfilx .. [Spring Cloud๋ก ๊ฐ๋ฐํ๋ ๋ง์ดํฌ๋ก์๋น์ค] Section 1: Service Discovery Spring Cloud Netfilx Eureka ์คํ๋ง ํด๋ผ์ฐ๋ ๋ทํ๋ฆญ์ค๋ '์คํ๋ง๋ถํธ ์ ํ๋ฆฌ์ผ์ด์ '์ ๋ํ ํตํฉ ํ๊ฒฝ ๊ตฌ์ฑ์ ์ง์ํ๋ Netfilx OSS ์๋น์ค์ด๋ค. Netfilx OSS์ ๋ค์ํ ์๋น์ค Eureka : Disocovery Server ๊ฐ๊ฐ์ ์๋น์ค ์ธ์คํด์ค๋ค์ด ๋์ ์ผ๋ก ํ์ฅ, ์ถ์ ๋๋๋ผ๋ ์ธ์คํด์ค์ ์ํ๋ฅผ ํ๋์ ์๋น์ค๋ก ๊ด๋ฆฌํ ์ ์๋ ์๋น์ค Ribbon : Client Side Load Balancer ํธ๋ํฝ์ ๋ถ์ฐ์ํค๋ ๊ธฐ๋ฅ Zuul : API Gateway ๊ฐ๊ฐ์ ๋ง์ดํฌ๋ก์๋น์ค ์ข ๋จ์ ์ ์ฐ๊ฒฐํ๋ ๋ฆฌ๋ฒ์ค ํ๋ก์ Hystrix : Circuit Breaker ํน์ ์๋น์ค๊ฐ ๊ณผ๋ถํ๊ฐ ๊ฑธ๋ ค ์๋น์ค ์ฅ์ ๋ฅผ ์ ํํ๋ ํน์ฑ์ ํด๊ฒฐํ๋ ๊ธฐ๋ฅ ์ด์ธ์๋ ๋ค์ํ ์๋น์ค๋ฅผ ์ ๊ณตํ๋ค. Netfi.. [Spring Cloud๋ก ๊ฐ๋ฐํ๋ ๋ง์ดํฌ๋ก์๋น์ค] Section 0: MicroService์ Spring Cloud ์๊ฐ ๋ชฉ์ฐจ ์ํํธ์จ์ด ์ํคํ ์ฒ 1990 ~ 2000 : Robust, Distributed 2010 ~ : Resilient / Anti-Fagile, Cloud Native Antifrgile ํน์ง Auto scaling Microservices Chaos engineering - ๋ถํ์คํ ์ํฉ์์๋ ์์ ์ ์ธ ์๋น์ค Continuos deployment - ์ง์์ ์ธ ํตํฉ๊ณผ ๋ฐฐํฌ (ํ ์คํธ, ๋ชจ๋ํฐ๋ง,ํผ๋๋ฐฑ) => Continous Delivery Cloud Native Architecture ํ์ฅ ๊ฐ๋ฅํ ์ํคํ ์ฒ ์์คํ ์ ์ํ์ ํ์ฅ์ ์ ์ฐ ํ์ฅ๋ ์๋ฒ๋ก ์์คํ ๋ถํ๋ถ์ฐ, ๊ฐ์ฉ์ฑ ๋ณด์ฅ (Scale up, Scale out) ์์คํ ๋๋, ์๋น์ค ์ ํ๋ฆฌ์ผ์ด์ ๋จ์์ ํจํค์ง (์ปจํ ์ด๋ ๊ธฐ๋ฐ ํจํค์ง) ํด๋ผ์ฐ๋ ๊ตฌ์ถ.. [๊น์ํ๋ ๊ฐ์ ์ ๋ฆฌ - ์คํ๋ง MVC 1ํธ] ์น ์ ํ๋ฆฌ์ผ์ด์ ์ ์ดํด ์น ์ ํ๋ฆฌ์ผ์ด์ ์ ์ดํด ์ฐ๋ ๋๋..? ์๋ฐ ๋ฉ์ธ ๋ฉ์๋๋ฅผ ์คํํ๋ฉด main์ฐ๋ ๋๊ฐ ์คํ๋จ ๋์์ฒ๋ฆฌ๊ฐ ํ์ํ๋ค๋ฉด ์ฐ๋ ๋๋ฅผ ์ถ๊ฐ๋ก ์์ฑ ์์ฒญ์ด ๋ฐ์ํ์ ๋.. ์์ฒญ์ด ์ฐ๋ ๋๋ณด๋ค ๋ง๋ค๋ฉด ์ผ์ ์๊ฐ ์ดํ 'ํ์์์'์ด ๋ฐ์ํ ์ ์๊ณ ๋ฌธ์ ํด๊ฒฐ์ ์ํด '์ ๊ท์ฐ๋ ๋'๋ฅผ ์์ฑํ๋ค. ํ์ง๋ง ์ฐ๋ ๋ ์์ฑ์๋ ๋จ์ ์ด ์๋ค. ์ฐ๋ ๋ ์์ฑ ๋น์ฉ์ด ๋น์ธ๋ค. (CPU, ๋ฉ๋ชจ๋ฆฌ) ์์ฒญ๋ง๋ค ์์ฑํ๋ฉด '์๋ต์๋'๊ฐ ๋ฆ์ด์ง๋ค. ์ฐ๋ ๋๊ฐ ๋ง์์ง๋ฉด '์ปจํ ์คํธ ์ค์์นญ' ๋น์ฉ์ด ๋ฐ์ํ๋ค. ์ฐ๋ ๋๋ฅผ ๋ฌด์ ํ์ผ๋ก ์์ฑํ๋ค๋ณด๋ฉด CPU, ๋ฉ๋ชจ๋ฆฌ ์๊ณ์ ์ ๋์ด ์๋ฒ๊ฐ ์ฃฝ๋๋ค. WAS๋ ์ด๋ฅผ ์ด๋ป๊ฒ ํด๊ฒฐํ์๊น..? ์ฐ๋ ๋ํ ํ์ฉ ์ฐ๋ ๋ ํ์ ์ฐ๋ ๋๋ฅผ ๋ฏธ๋ฆฌ ์์ฑํด๋๊ณ ์ฐ๋ ๋๋ฅผ ์ฌ์ฉํ๊ณ ๋ฐ๋ฉํ๊ณ ํํ๋ก ์ฌ์ฉํ๋ค. ⇒ ๋์์์ฒญํ์ฉ๊ฐฏ์๋ฅผ ์ ํด๋ ๊ฒ๊ณผ ๊ฐ๋ค. (.. HTTP ์น ๊ธฐ๋ณธ ์ง์ ์ ๋ฆฌ www.notion.so/HTTP-66203aa6efa2493088a8b759c9e1d43b ๋ชจ๋ ๊ฐ๋ฐ์๋ฅผ ์ํ HTTP ์น ๊ธฐ๋ณธ ์ง์ HTTP์ ์ ์ฒด ํ๋ฆ๊ณผ ์ค๋ฌด์ ํ์ํ ์ง์ ์๊ธฐ www.notion.so ์ด์ 1 2 ๋ค์