YesAladin Gateway๋ ๊ฐ ๋ง์ดํฌ๋ก์๋น์ค ๋๋ ๋ฐ์ดํฐ์ ์ ์ํ๊ณ API ํธ์ถ์ ์ํ ๊ด๋ฆฌ, ๋ชจ๋ํฐ๋ง์ ๋ด๋นํ๋ API ๊ด๋ฆฌ ์์คํ ์ ๋๋ค.
./mvnw spring-boot:run
- NGINX ์ฐ๋
- ๋๋ฉ์ธ ์ค์ ๋ฐ ์๋ธ ๋๋ฉ์ธ ์ถ๊ฐ
- Reverse Proxy ์ค์
YAML
์ ์ด์ฉํ์ฌ ๊ฐ ๋ง์ดํฌ๋ก์๋น์ค์ ๋ํ URL Rewriting ๋ฐ ์์ฒญ ๋ผ์ฐํ ์ค์
- Custom Filter๋ฅผ ์ ์ฉํ์ฌ ๊ฐ ์์ฒญ์ ๋ํ ์ ๋ณด์ ์๋ต ๊ฒฐ๊ณผ Logging
- NHN Cloud Log & Crash๋ฅผ ์ฐ๋ํ์ฌ ๋ชจ๋ํฐ๋ง ํ๊ฒฝ ๊ตฌ์ถ
- Spring Cloud Config๋ฅผ ์ฐ๋ํ์ฌ ์ค์ ์ ๋ณด ์ธ๋ถํ
๊ฐ ์๋ฒ ์๋น์ค์ ์ ๊ทผํ ๋ ํ์ํ ์ธ์ฆ ๋ฐ ์ผ๋ฐ ์์ธ์ค ์ ์ด๋ฅผ Gateway Service์์ ์ฒ๋ฆฌ ํ ๋ค, ์ธ๊ฐ๋ ๊ฒฝ์ฐ ์ถ๊ฐ์ ์ธ HTTP Custom Header์ ์ฌ์ฉ์์ ๊ถํ ์ ๋ณด ๋ฑ์ ๋ด์ API Server์์ ์ฒดํฌ ํ ํด๋น API์ ์ ๊ทผ ํ๋ flow๊ฐ ์ข์ ๋ฐฉ๋ฒ์ธ์ง์ ๋ํด ๊ณ ๋ฏผํ์์ต๋๋ค.
๊ทธ ๊ฒฐ๊ณผ Gateway Server์์ ๊ตฌํํ๋ Custom Authentication Filter๋ฅผ ๋น๋กฏํ ์ธ์ฆ/์ธ๊ฐ ์ฒ๋ฆฌ๋ฅผ ์ ๊ฑฐํ๊ณ ๊ฐ ์์ฒญ์ ๋ํ ๋ผ์ฐํ ๋ฐ ๋ชจ๋ํฐ๋ง์ ์ญํ ๋ง ๋ถ์ฌํ๋๋ก ๋ณ๊ฒฝํ์์ต๋๋ค.
๋ณ๊ฒฝ๋ flow๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
Shop API Server๋ Front Server๋ก๋ถํฐ Authorization Header์ ๋ด๊ธด JWT ํ ํฐ ์ ๋ณด๋ฅผ ๋ฐ์ ์ด์ ๋ํ ์ธ๊ฐ ์ฒ๋ฆฌ๋ฅผ ์ฌ์ ์ Auth Server๋ก ์์ํฉ๋๋ค.
Auth Server์์ ํด๋น JWT ํ ํฐ์ ์ ํจ์ฑ ๊ฒ์ฆ์ด ์๋ฃ๋์ด ์ธ๊ฐ ๋ ๊ฒฝ์ฐ, payload์ ๋ค์ด์๋ ์ฌ์ฉ์ ์๋ณ ์ ๋ณด์ ๊ถํ ์ ๋ณด๋ฅผ ์ถ์ถํ์ฌ Shop API Server์ ๋๋ ค์ค๋๋ค.
์ด ์ ๋ณด๋ฅผ ๋ฐํ์ผ๋ก Shop API Server ๋ด์์ Spring Security๋ฅผ ํตํด ์์ฒด์ ์ผ๋ก Authentication
์ ์์ฑํ๋๋ก ์ฒ๋ฆฌํ์์ผ๋ฉฐ, FilterSecurityInterceptor
๋ฐ
method security๋ฅผ ์ ์ฉํ์ฌ API ๋ณด์์ ๊ฐํํ์์ต๋๋ค.
- Git Flow ์ ๋ต์ ์ฌ์ฉํ์ฌ Branch๋ฅผ ๊ด๋ฆฌํ๋ฉฐ Main/Develop Branch๋ก Pull Request ์ ์ฝ๋ ๋ฆฌ๋ทฐ ์งํ ํ merge ํฉ๋๋ค.
- Main: ๋ฐฐํฌ์ ์ฌ์ฉ
- Develop: ๊ฐ๋ฐ ๋จ๊ณ๊ฐ ๋๋ ๋ถ๋ถ์ ๋ํด Merge ๋ด์ฉ ํฌํจ
- Feature: ๊ธฐ๋ฅ ๊ฐ๋ฐ ๋จ๊ณ
- Hot-Fix: Merge ํ ๋ฐ์ํ ๋ฒ๊ทธ ๋ฐ ์์ ์ฌํญ ๋ฐ์ ์ ์ฌ์ฉ