์ ๊ฑฐ ํ ์ ์๋ ๊ธฐ๋ณธ ๋ธ๋์น๋ master ๋ธ๋์น์
๋๋ค. ์ด์ธ์ ๋ธ๋์น๋ฅผ ๋ช
์ํ์ฌ ๋ธ๋์น๋ฅผ ์์ฑํ๊ฑฐ๋ ์
๋ฐ์ดํธ ํ ์ ์์ต๋๋ค. ๋ธ๋์น ๊ด๋ จ ๋ด์ฉ์ ์๋์์ ๋ค์ ๋ค๋ฃน๋๋ค.
Load-Balancing
๋์ ์ผ๋ก ์คํค๋ง๋ฅผ ์์งํ๊ณ API๋ฅผ ์ ๋ฐ์ดํธํ๋ Gateway๋ ๋์ผํ ์๋น์ค ์ธ์คํด์ค๊ฐ ๋ถ์ฐ ์์คํ ์ ์ฌ๋ฌ๊ฐ ์กด์ฌํ ๋ ๋ฌธ์ ๋ฅผ ๋๋ฌ๋ ๋๋ค.
์์
player ์๋น์ค๊ฐ A, B ๋ ํธ์คํธ์์ ๋ถ์ฐ ์์คํ
์ ์ฐ๊ฒฐ๋์ด ๋๋ฒ๊น
๋๊ณ ์๋ค๋ฉด, Gateway๋ player ์๋น์ค API ์คํค๋ง๋ฅผ A ํธ์คํธ์ ์คํค๋ง, B ํธ์คํธ์ ์คํค๋ง์ ๋ฐ๋ผ ๋น๋ฒํ๊ฒ ๋ณ๊ฒฝํ๊ฒ ๋์ด ์๊ฒฉ์ง์ ๋ ๊ฐ๋ฐ์๋ ๋๋ฒ๊น
์ ๋ฌธ์ ๋ฅผ ๊ฒช์ต๋๋ค.
ํด๊ฒฐ ๋ฐฉ๋ฒ์ ๋ก์ปฌ์ ์ ์ฉ ๊ฒ์ดํธ์จ์ด๋ฅผ ์ง์ ์คํํ๊ณ ๋ถ์ฐ ์์คํ ๊ณผ์ ์ฐ๊ฒฐ(eg. VPN ํฐ๋)์ ์ข ๋ฃํ๋ ๋ฐฉ๋ฒ์ ๋๋ค.
player ์๋น์ค์ get ์ก์
์ ํ๋ผ๋ฏธํฐ ๋ฐ ์๋ต ์คํ์ด A ํธ์คํธ์์ ๋๋ฒ๊น
์ค์ธ ๊ฒฝ์ฐ, ํด๋ผ์ด์ธํธ์ ์์ฒญ์ด ๋ถ์ฐ ์์คํ
์ ๊ธฐ์กด์ ๋ฐฐํฌ๋ X ๋
ธ๋์ player ์๋น์ค์ get ์ก์
์ผ๋ก ํ๋ก์๋๋ ๊ฒฝ์ฐ๋ ์ญ์ ๋ฌธ์ ๊ฐ ๋ฉ๋๋ค.
ํด๊ฒฐ ๋ฐฉ๋ฒ์ผ๋ก ๋ก๋๋ฐธ๋ฐ์ฑ์ ์ฐ์ ์์๋ฅผ ์์ ์ ํธ์คํธ๋ก ๊ฐ์ ํ๋ ๊ธฐ๋ฅ์ ์์ฒญ์ ํด๋ผ์ด์ธํธ IP๋ ํ๋ผ๋ฏธํฐ๋ฅผ ์ด์ฉํด ๊ตฌํํ๋ ๋ฐฉ๋ฒ์ด ์์ต๋๋ค. ์ด ๋ฐฉ๋ฒ์ ์ด์ ๋ฒ์ ์ Gateway์์ ์๋๋์์ผ๋ ๋ง์กฑ์ค๋ฝ์ง ์์์ต๋๋ค.
์์ ์ฌ๋ฌ ์ ๋ต์ ์คํํด๋ณธ ํ Gateway๋ ๋ธ๋์น ๋ฐ ํ๊ทธ์ ํตํด ๊ฐ๋ฐ์ ์ถฉ๋ ํํผ๋ฅผ ์ง์ํ๊ณ , ์ถ๊ฐ๋ก ๋ธ๋์น๋ณ ๋ก๋๋ฐธ๋ฐ์ฑ ์ ์ฑ ์ ์ ์ฉํฉ๋๋ค.
call
master ๋ธ๋์น์์๋ API ์๋ํฌ์ธํธ์ ์ฐ๊ฒฐ๋ ์๋น์ค ์ก์
์ ํธ์ถ ํ ๋ master,(none) ๋ธ๋์น์ API๋ฅผ ์ ๊ณตํ ์๋น์ค ๋
ธ๋๋ฅผ ์ฐ์ ์ผ๋ก ์์ฒญ์ ํ๋ก์ํฉ๋๋ค.
{
branch: "master",๋๋ ๋ง์ฐฌ๊ฐ์ง๋ก ๋ก์ปฌ์ ๊ฐ๋ฐ์ฉ ๊ฒ์ดํธ์จ์ด๋ฅผ ์ง์ ์คํํ๋ ๋ฐฉ๋ฒ์ด์ง๋ง, ๋ถ์ฐ ์์คํ ์ ์ฐ๊ฒฐํด ๋ฐฐํฌ๋ ํ ์๋น์ค์ ์์กด ํ ํ์๊ฐ ์๋ ๊ฒฝ์ฐ ๋ถ๊ฐ๋ฅํฉ๋๋ค.
์ฆ ์ด์ธ(eg. dev)์ ๋ธ๋์น๋ก์ ํธ๋ํฝ์ ๋ฐฉ์งํฉ๋๋ค.
์ด์ธ์ ๋ธ๋์น(eg. dev)์์๋ API ์๋ํฌ์ธํธ์ ์ฐ๊ฒฐ๋ ์๋น์ค ์ก์
์ ํธ์ถ ํ ๋ dev,master,(none) ๋ธ๋์น์ API๋ฅผ ์ ๊ณตํ ์๋น์ค ๋
ธ๋๋ฅผ ์ฐ์ ์ผ๋ก ์์ฒญ์ ํ๋ก์ํฉ๋๋ค.
์ฆ ํ์ฌ ๋ธ๋์น(eg. dev)์ ์๋ํฌ์ธํธ๊ฐ ์๋ ๊ฒฝ์ฐ master ๋ธ๋์น์ ์๋ํฌ์ธํธ๋ฅผ ์ฐจ์ ์ผ๋ก ์ฐพ์ต๋๋ค.
์ด ๊ท์น์ API ํธ๋ค๋ฌ ์์ฑ์์ ๋ธ๋์น ์ ๋ต์ ๋ฐ๋ผ ์์ฐ์ค๋ฝ๊ฒ ์ ์ฉ๋ฉ๋๋ค.
publish, subscribe
์ด๋ฒคํธ ๋ฉ์์ง ์ ๋ฌ์๋ ์๋น์ค ๋ธ๋ก์ปค์ ์ฐ๊ฒฐ๋ ์ค์ ๋ฉ์์ง ์๋น์ค์ ์ ์ฑ ์ ๊ทธ๋๋ก ๋ฐ๋ฆ ๋๋ค.