Open quedevel opened 1 year ago
์ธ๋ถ ์๋ฒ ํต์ ์ ์ค์ ์ด ๊ฐ๋ฅํ๋ค.
์ธ๋ถ๋ก ์์ฒญ์ด ๋๊ฐ๊ธฐ ์ ์ ๋ง์ฝ ๊ณตํต์ ์ผ๋ก ์ฒ๋ฆฌํด์ผํ๋ ๋ถ๋ถ์ด ์๋ค๋ฉด Interceptor
๋ฅผ ์ฌ์ ์ํ์ฌ ์ฒ๋ฆฌ๊ฐ ๊ฐ๋ฅํ๋ค.
Request / Response ๋ฑ ์ด์์ ํ๊ธฐ ์ํ ์ ์ ํ Log๋ฅผ ๋จ๊ธธ ์ ์๋ค.
์์ฒญ์ ๋ํด ์ ์ ์๋ต์ด ์๋ ๊ฒฝ์ฐ ํธ๋ค๋ง์ด ๊ฐ๋ฅํ๋ค.
RestTemplate๊ณผ Feign์ ๋ชจ๋ Java์์ RESTful ์น ์๋น์ค์ ํต์ ํ๊ธฐ ์ํ ํด๋ผ์ด์ธํธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๋๋ค. ํ์ง๋ง ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ ๋ช ๊ฐ์ง ์ฐจ์ด์ ์ด ์์ต๋๋ค.
๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ข ์์ฑ: RestTemplate์ Spring ํ๋ ์์ํฌ์ ์ผ๋ถ๋ก ์ ๊ณต๋๋ ํด๋์ค์ด๋ฉฐ, ๊ธฐ๋ณธ์ ์ผ๋ก Spring MVC์์ ์ฌ์ฉ๋ฉ๋๋ค. RestTemplate์ Spring Boot ํ๋ก์ ํธ์์ ์ฌ์ฉํ ์ ์์ง๋ง, ๋ณ๋์ ์ข ์์ฑ์ ์ถ๊ฐํด์ผ ํฉ๋๋ค. ๋ฐ๋ฉด์ Feign์ ์คํ๋ง ํด๋ผ์ฐ๋ ํ๋ ์์ํฌ์ ์ผ๋ถ๋ก ์ ๊ณต๋๋ฉฐ, spring-cloud-starter-openfeign ์ข ์์ฑ์ ์ถ๊ฐํ์ฌ ์ฌ์ฉํ ์ ์์ต๋๋ค.
์ฝ๋์ ๊ฐ๊ฒฐ์ฑ: Feign์ ์ธํฐํ์ด์ค ๊ธฐ๋ฐ์ ์ ์ธ์ ํ๋ก๊ทธ๋๋ฐ ๋ชจ๋ธ์ ์ฌ์ฉํ์ฌ RESTful ์๋น์ค์ ์ํธ์์ฉํ๋ ๋ฐ ์ด์ ์ ๋ง์ถ๊ณ ์์ต๋๋ค. Feign ํด๋ผ์ด์ธํธ๋ ๋จ์ํ ์ธํฐํ์ด์ค๋ก ์ ์๋๋ฉฐ, ํด๋น ์ธํฐํ์ด์ค์ HTTP ์์ฒญ ๋ฉ์๋๊ฐ ์ ์ธ๋ฉ๋๋ค. ์ด๋ก ์ธํด ์ฝ๋๊ฐ ๊ฐ๊ฒฐํ๊ณ ๊ฐ๋ ์ฑ์ด ์ข์์ง๋๋ค. ๋ฐ๋ฉด์ RestTemplate์ ํ๋ถํ API ์ธํธ๋ฅผ ์ ๊ณตํ์ฌ ๋ค์ํ ๋ฐฉ์์ผ๋ก RESTful ์๋น์ค๋ฅผ ํธ์ถํ ์ ์์ต๋๋ค. RestTemplate์ ๋ช ์์ ์ผ๋ก ์์ฒญ์ ๊ตฌ์ฑํ๊ณ ์ํํด์ผ ํ๋ฏ๋ก ์ฝ๋๊ฐ ์๋์ ์ผ๋ก ๋ ๋ณต์กํด์ง ์ ์์ต๋๋ค.
์คํ๋ง ํด๋ผ์ฐ๋ ํตํฉ: Feign์ ์คํ๋ง ํด๋ผ์ฐ๋ ํ๋ก์ ํธ์ ๊ธด๋ฐํ๊ฒ ํตํฉ๋์ด ์์ต๋๋ค. Feign์ ๋ก๋ ๋ฐธ๋ฐ์ฑ, ์๋น์ค ๋์ค์ปค๋ฒ๋ฆฌ ๋ฐ ํ๋ก ์ฐจ๋จ๊ณผ ๊ฐ์ ๊ธฐ๋ฅ์ ์คํ๋ง ํด๋ผ์ฐ๋์ ๋ค๋ฅธ ๊ตฌ์ฑ ์์์ ํจ๊ป ์ฌ์ฉํ ์ ์์ต๋๋ค. RestTemplate์ ์ด๋ฌํ ์คํ๋ง ํด๋ผ์ฐ๋ ๊ธฐ๋ฅ๊ณผ ์ง์ ์ ์ธ ํตํฉ์ ์ ๊ณตํ์ง ์์ต๋๋ค.
ํธํ์ฑ: RestTemplate์ ์ค๋๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ก์, ์คํ๋ง 5.0 ์ด์ ๋ฒ์ ์์ ์ฃผ๋ก ์ฌ์ฉ๋์์ต๋๋ค. ๋ฐ๋ฉด์ Feign์ ์ต์ ์คํ๋ง ํ๋ ์์ํฌ์ ์คํ๋ง ๋ถํธ ๋ฒ์ ๊ณผ ํจ๊ป ์ ์๋ํฉ๋๋ค. ๋ฐ๋ผ์ ์๋ก์ด ํ๋ก์ ํธ๋ฅผ ๊ฐ๋ฐํ๋ค๋ฉด Feign์ ๊ณ ๋ คํ๋ ๊ฒ์ด ์ข์ต๋๋ค.
๊ฒฐ๋ก ์ ์ผ๋ก, RestTemplate์ ๋ณด๋ค ์ ์ฐํ API์ ๋ ๋ง์ ์ ์ด๋ฅผ ์ ๊ณตํ์ง๋ง, ๋ณต์ก์ฑ๊ณผ ์ฝ๋ ์์ด ์ฆ๊ฐํ ์ ์์ต๋๋ค. Feign์ ๊ฐ๋จํ ์ ์ธ์ ํ๋ก๊ทธ๋๋ฐ ๋ชจ๋ธ๊ณผ ์คํ๋ง ํด๋ผ์ฐ๋์ ํตํฉ์ ์ ๊ณตํ์ฌ ์ฝ๋์ ๊ฐ๋ ์ฑ๊ณผ ๊ฐ๊ฒฐ์ฑ์ ๋์ด๋ ๋ฐ ์ด์ ์ ๋ง์ถ๊ณ ์์ต๋๋ค.