Dynamic Handler
๋์ ํธ๋ค๋ฌ๋ ์น ์๋ฒ์ ๋ชจ๋ base ๊ฒฝ๋ก๋ฅผ ๊ด๋ฆฌํ๋ฉฐ, ๋ฏธ๋ค์จ์ด ๋ฐ ํ๋ฌ๊ทธ์ธ, ์๋ํฌ์ธํธ ๊ฐ์ ๊ฒฝ๋ก ์ถฉ๋์ ๋ฐฉ์งํฉ๋๋ค. ๋์ ํธ๋ค๋ฌ๋ ์กฐ๊ฑด์ ๋ฐ๋ผ ๋ธ๋์น ํธ๋ค๋ฌ ๋ฐ ๋ฒ์ ํธ๋ค๋ฌ๋ฅผ ์์ฑ ๋ฐ ์ญ์ ํ๋ฉฐ ๋์ ์ผ๋ก ๋ผ์ฐํธ ํ ์ด๋ธ์ ๊ตฌ์ฑํฉ๋๋ค.
๋์ ํธ๋ค๋ฌ๋ ํด๋ผ์ด์ธํธ์ ์์ฒญ์ ๋ฐ๋ผ ๋ฏธ๋ค์จ์ด๋ฅผ ์ํํ๊ณ , ๋ธ๋์น ํธ๋ค๋ฌ๋ก ์์ฒญ์ ํ๋ก์ํฉ๋๋ค.
Branch Handler
๋ธ๋์น ํธ๋ค๋ฌ๋ ํ๊ทธ์ ๋ฐ๋ผ ๋ฒ์ ํธ๋ค๋ฌ๋ก ์์ฒญ์ ํ๋ก์ํฉ๋๋ค.
์ด ๋ธ๋์น ํธ๋ค๋ฌ๋ค์ ์๋์ ๊ท์น์ ๋ฐ๋ผ ์ญ์ ๋ฉ๋๋ค.
master ๋ธ๋์น๋ฅผ ์ ์ธํ๊ณ , 60๋ถ ์ด์ ์คํ๋์ง ์๋ ๋ธ๋์น ํธ๋ค๋ฌ๋ ์ญ์ ๋ฉ๋๋ค.
Version Handler
์๋น์ค API ์คํค๋ง์ ๋ณํฉ์ด ์ผ์ด๋ ๋๋ง๋ค ์๋ก์ด ๋ฒ์ ์ Gateway API ์คํค๋ง๊ฐ ์์ฑ๋ฉ๋๋ค. ๋ณํฉ์ ์ฑ๊ณตํ Gateway API ์คํค๋ง๋ latest ๋ฐ ์ํด์๋ก ํ๊ทธ๋ฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ ์
๋ฐ์ดํธ๋ ์๋ํฌ์ธํธ๋ณ๋ก ์คํค๋ง, ํ๋กํ ์ฝ ํ๋ฌ๊ทธ์ธ, ์ปค๋ฅํฐ๋ฅผ ์ฐ๊ฒฐํด ๊ฐ ํธ๋ค๋ฌ๋ฅผ ์์ฑํฉ๋๋ค. ์
๋ฐ์ดํธ๋์ง ์์ ์คํค๋ง์ ํธ๋ค๋ฌ๋ ๊ฐ๋ฅํ ์ฌ์ฐธ์กฐ๋ฉ๋๋ค.
์ด ๋ฒ์ ํธ๋ค๋ฌ๋ค์ ์๋์ ๊ท์น์ ๋ฐ๋ผ ์ญ์ ๋ฉ๋๋ค.
10๊ฐ๋ฅผ ์ด๊ณผ(๊ธฐ๋ณธ๊ฐ)ํ๋ ๋ฒ์ ์ด ์กด์ฌํ๋ ๊ฒฝ์ฐ ์ค๋๋ ์์ผ๋ก ๋ฒ์ ํธ๋ค๋ฌ๊ฐ ์ญ์ ๋ฉ๋๋ค.
Non-Persistence
API ์คํค๋ง์ ๋ธ๋์น ๋ฐ ํ๊ทธ ๊ธฐ๋ฅ์ ๋ฒ์ ๊ด๋ฆฌ(/v1, /v2 ๊ฐ์)๊ฐ ์๋ ๋ถ์ฐ ํ๊ฒฝ์์์ ๊ฐ๋ฐ ํธ์๋ฅผ ์ํด ๊ฐ๋ฐ๋์์ต๋๋ค.
์ฃผ์์ฌํญ
Gateway์๋ Persistence Layer๊ฐ ์กด์ฌํ์ง ์์ต๋๋ค.
Gateway ์ฌ์์์ ๋ธ๋์น, ๋ฒ์ ๋ฐ ํ๊ทธ ์ ๋ณด๊ฐ ๋ณต์๋์ง ์์ต๋๋ค.
Gateway ๋ ธ๋๊ฐ์ ๋ฐ์ดํฐ ๋๊ธฐํ ์ ๋ต์ด ์กด์ฌํ์ง ์์ต๋๋ค.
ํ์ง๋ง Gateway ์ฌ์์ ์ดํ ๋ชจ๋ ์๋น์ค๋ค์ ๋ํ discover๊ฐ ์งํ๋๋ฉด์ ์์ฐ์ค๋ฝ๊ฒ ๊ฐ ๋ธ๋์น์ latest ๋ฒ์ ์๋ ์ต์ Gateway API ์คํค๋ง๊ฐ ๋ณต์๋ฉ๋๋ค. ๊ฐ ๋ธ๋์น์ latest ๋ฒ์ ์ ์ ๋ขฐ์ฑ์ ๋ณด์ฅ๋ฉ๋๋ค.