Integration Process
๋ณํฉ ๊ท์น์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
discover
discover ๋ฐ์ ์ฆ์ ๋ณํฉ ์์ฒญ์ด ์์ฑ๋ฉ๋๋ค.
ํ๋กํ ์ฝ ํ๋ฌ๊ทธ์ธ์ ๋ฐ๋ผ ์คํค๋ง ํฌ๋งท์ ๋ํ ๊ฒ์ฆ์ ๊ฑฐ์นฉ๋๋ค.
ํฌ๋งท ์๋ฌ๋ ๋ณํฉ ์์ฒญ ๋ฉ์ธ์ง ๋ฆฌ์คํธ์ ํฌํจ๋ฉ๋๋ค.
์ ๊ทผ ์ ์ด๋ฅผ ์ฐํํ๋ ์๋ํฌ์ธํธ์ ๋ํ ๊ฒฝ๊ณ ๊ฐ ๋ณํฉ ์์ฒญ ๋ฉ์ธ์ง ๋ฆฌ์คํธ์ ํฌํฉ๋ฉ๋๋ค.
๊ฒ์ฆ ์ฑ๊ณต์ ๋ณํฉ ์์ฒญ์ด ํ์ ์ฝ์ ๋๋ฉด์ ํน์ ์๊ฐ(2์ด๋ฅผ ๊ธฐ๋ณธ๊ฐ) ๋์ debounce ํ ์์ฐจ์ ์ผ๋ก ์ฒ๋ฆฌ๋ฉ๋๋ค.
ํ์์ ํน์ ์๋น์ค์ ๋ํ ๋ณํฉ ์์ฒญ์ด ๋ค์์ธ ๊ฒฝ์ฐ ๋ง์ง๋ง ์์๋ง ์ ํจํฉ๋๋ค.
ํ๋กํ ์ฝ ํ๋ฌ๊ทธ์ธ์์ integrationDependencyResolver๊ฐ ๊ตฌํ๋ ๊ฒฝ์ฐ (eg. GraphQL) ํ ์์์ ์ฒ๋ฆฌ ์์๊ฐ ์กฐ์ ๋ ์ ์์ต๋๋ค.
๊ฒ์ฆ ์คํจ์ report ๋จ๊ณ๋ก ๊ฑด๋ ๋๋๋ค.
hash
์๋น์ค API ์คํค๋ง์์ branch, description, deprecated๋ฑ์ ๋ฉํ ์ ๋ณด๋ฅผ ์ ์ธํ ์คํค๋ง ๊ฐ์ฒด ์ ์ฒด๋ฅผ MD5 ํด์ฑํ์ฌ ๊ณ ์ ํ ๋ฒ์ ํด์๋ฅผ ์์ฑํฉ๋๋ค.
update
master ๋ธ๋์น์ ์คํค๋ง๋ ๊ฒฝ์ฐ์๋ ๋ชจ๋ ๋ธ๋์น์ ๋ณํฉ์ด ์๋๋ฉ๋๋ค.
์ด ๋ master
report
๋ณํฉ ์์ฒญ์ ๋ฉ์ธ์ง ๋ฆฌ์คํธ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ๋๋ฒ๊ทธ ๋ฉ์ธ์ง๋ฅผ ์์ฑํฉ๋๋ค.
๋ณํฉ ์์ฒญ์ ์ถ์ฒ ๋
ธ๋๋ก ๋๋ฒ๊ทธ ๋ฉ์ธ์ง๋ฅผ reportํฉ๋๋ค.
Branch Strategy Diagram
๋ธ๋์น๊ฐ ๋ณํฉ ์ ๋ต์ ํ๋ก ๋์ํ๋ฉด ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
ํ์์ a@v1๋ a ์๋น์ค ์คํค๋ง ์ค v1 ๋ฒ์ ์ ์๋ฏธํฉ๋๋ค.
์๋น์ค ๋ ธ๋์ ์ฐ๊ฒฐ์ด ๋๊ธด ๊ฒฝ์ฐ๋ ์ฐ๊ด๋ ์คํค๋ง์ ๋ ธ๋ํ์์ ๋ ธ๋๋ฅผ ์ญ์ ํฉ๋๋ค.
์ด ๋ ์ฐ๊ด๋ ์คํค๋ง๋ค์์ ๋ ธ๋ํ์ด ๋น ์คํค๋ง๋ค์ ์ ๊ฑฐํ๊ธฐ๋ก ํฉ๋๋ค.
์ด์ธ์ ๋ธ๋์น์ ๋ณํฉํ๋ ๊ฒฝ์ฐ์๋ ์ฃผ์ด์ง ๋ธ๋์น์๋ง ๋ณํฉ์ด ์๋๋ฉ๋๋ค.
ํ๋กํ ์ฝ ํ๋ฌ๊ทธ์ธ์ ๋ฐ๋ผ ๊ฐ ํ๋กํ ์ฝ๋ณ ํธ๋ค๋ฌ๋ฅผ ์์ฑํฉ๋๋ค.
๋ณํฉ์ ์ฑ๊ณตํ๋ฉด ์์ฑ๋ Gateway API ์คํค๋ง ๋ฒ์ ์ latest ํ๊ทธ ๋ฐ 8 ๊ธ์์ ์ ํด์(eg. abcdefgh)๊ฐ ํ๊ทธ๋ก ๋ถ์ฐฉ๋ฉ๋๋ค.
์ต์ ์ด ํ์ฑํ๋ ๊ฒฝ์ฐ ๋ธ๋์น๋ณ API Catalog๋ฅผ ์ ๋ฐ์ดํธํฉ๋๋ค.
์ต์ ์ด ํ์ฑํ๋ ๊ฒฝ์ฐ ๋ธ๋์น๋ณ Service Catalog๋ฅผ ์ ๋ฐ์ดํธํฉ๋๋ค.
master
dongwook
๋น๊ณ
initial schema
(empty)
N/A
a added to master
a@v1
N/A
a updated to master
a@v2
N/A
b added to dongwook
a@v2
a@v2 b@v1
์๋ก์ด b ์๋น์ค๋ฅผ dongwook ๋ธ๋์น๋ก ๋ถ๊ธฐํด์ ์์
; ์ถฉ๋ํ์ง ์๋ ์คํค๋ง๋ค์ ๋ณต์ ๋์ง ์๊ณ ์ฐธ์กฐ๋ฉ๋๋ค.
a updated to master
a@v3
a@v3 b@v1
master ๋ธ๋์น์ ์
๋ฐ์ดํธ๋ ๋ชจ๋ ๋ธ๋์น๋ก ์ ํ๋ฉ๋๋ค.
a updated to dongwook
a@v3
a@v4 b@v1
master ์ด์ธ์ ๋ธ๋์น์ ์
๋ฐ์ดํธ๋ ์๊ธฐ ๋ธ๋์น๋ก๋ง ์ ํ๋ฉ๋๋ค.
a updated to master
a@v3-2
a@v4 b@v1
์ถฉ๋ํ๋ ๊ฒฝ์ฐ ์๊ธฐ ๋ธ๋์น ์คํค๋ง์ ์ฐ์ ์์๊ฐ ๋์ต๋๋ค.
c added to master
a@v3-2 c@v1
a@v5 b@v1 c@v1
master ๋ธ๋์น์ ์
๋ฐ์ดํธ๋ ๋ชจ๋ ๋ธ๋์น๋ก ์ ํ๋ฉ๋๋ค.
b added to master
a@v3-2 b@v1 c@v1
a@v5 b@v1 c@v1
๊ฐ๋ฐ๋ b ์๋น์ค๋ฅผ dongwook ๋ธ๋์น์์ master ๋ธ๋์น๋ก ๋ณ๊ฒฝ
a updated to master
a@v5 b@v1 c@v1
a@v5 b@v1 c@v1
์์ ๋ a ์๋น์ค๋ฅผ dongwook ๋ธ๋์น์์ master ๋ธ๋์น๋ก ๋ณ๊ฒฝ
dongwook branch removed
a@v5 b@v1 c@v1
N/A
Routing Rule
Gateway ์น ์๋ฒ๋ [/~BRANCH[@TAG]]/<ENDPOINT>์ ๊ท์น๋๋ก API ์๋ํฌ์ธํธ๋ฅผ ๋ผ์ฐํธํฉ๋๋ค. ์ฒซ๋ฒ์งธ ๊ฒฝ๋ก ์กฐ๊ฐ์ ๋ธ๋์น(master๋ฅผ ๊ธฐ๋ณธ๊ฐ์ผ๋ก)๋ก ๋๋ฒ์งธ ๊ฒฝ๋ก ์กฐ๊ฐ์ ํ๊ทธ(latest๋ฅผ ๊ธฐ๋ณธ๊ฐ์ผ๋ก)๋ก ์ดํ ๊ฒฝ๋ก๋ฅผ API ์๋ํฌ์ธํธ๋ก ํด์ํฉ๋๋ค.
๋ผ์ฐํธ ์์
๊ฐ๋ต
๋ธ๋์น ํฌํจ
ํ๊ทธ ํฌํจ
GET /players/1
GET /~master/players/1
GET /~master@latest/players/1
-
-
GET /~master@h4g3f2e1/players/1
-
GET /~dongwook/players/1
GET /~dongwook@latest/players/1
-
ํ ์ด๋ธ์ ๊ฐ ํ์ ๋์ผํ ๋ฒ์ ์ ํธ๋ค๋ฌ๋ก ์ฐ๊ฒฐ๋ฉ๋๋ค.
๋ธ๋์น ์ด๋ฆ ๊ท์น
์๋ฌธ ์๋ฌธ์ ๋ฐ ์ซ์, -, _๋ง ํ์ฉ๋ฉ๋๋ค.
๊ธฐ์กด ์คํค๋ง ์๋ํฌ์ธํธ๋ ํ๋ฌ๊ทธ์ธ์ base ๊ฒฝ๋ก์ ์ค๋ณต๋ ์ ์์ต๋๋ค.
ํ๊ทธ ์ด๋ฆ ๊ท์น
์๋ฌธ ์๋ฌธ์ ๋ฐ ์ซ์๋ก๋ง ๊ตฌ์ฑ๋ฉ๋๋ค.
์ด๋ฒคํธ/๋ธ๋์น
-
GET /~dongwook@a4b3c2d1/players/1
POST /graphql
POST /~master/graphql
GET /~master@latest/graphql
-
POST /~dongwook/graphql
GET /~dongwook@latest/graphql
-
GET /~ws-dev/chat
GET /~ws-dev@latest/chat