Apidog Self-hosted Runner๋ ๋
๋ฆฝํ ์๋ฒ์ ํธ์คํ
ํ ์ ์๋ ์๋ํ ํ๋ก๊ทธ๋จ์ผ๋ก ์ดํดํ์ค ์ ์์ต๋๋ค. ์์ฝ๋ ์๋ํ ํ
์คํธ, ์์ฝ๋ API ๋ฌธ์ ๊ฐ์ ธ์ค๊ธฐ, ๋ชฉ ์๋ต ๊ฒฐ๊ณผ ๋ฐํ๊ณผ ๊ฐ์ Apidog ๋ด ์์
์ ์คํํ ์ ์์ต๋๋ค.์ค๋น#
ํธ์คํธ ๋จธ์ (์๋ฒ ๋๋ ๋ก์ปฌ PC)์ Docker๊ฐ ์ค์น๋์ด ์์ด์ผ ํฉ๋๋ค. ํ์ํ ์ต์ Docker ๋ฒ์ ์ 20.10.0์ด๋ฉฐ, 20.10.13 ๋ฒ์ ์ ๊ถ์ฅํฉ๋๋ค.
๋น ๋ฅธ ์์#
์ด ์น์
์์๋ ์๋ฒ์ General Runner๋ฅผ ๋ฐฐํฌํ๋ ๋ฐฉ๋ฒ์ ์๋ดํฉ๋๋ค.1. General Runner ๋ฐฐํฌ#
Apidog Home ํ์ด์ง๋ก ์ด๋ํ์ฌ ์ํ๋ ํ์ ์ ํํ ๋ค์, ์ค๋ฅธ์ชฝ์ Resources๋ฅผ ํด๋ฆญํฉ๋๋ค. ์ดํ Deploy General Runner๋ฅผ ํด๋ฆญํ์ฌ ์์ํฉ๋๋ค.2. Runner ๋ฐฐํฌ ๋ช
๋ น ๊ฐ์ ธ์ค๊ธฐ#
Deploy General Runner๋ฅผ ํด๋ฆญํ๋ฉด ํ์
์ฐฝ์์ General Runner์ ๋ฐฐํฌ ๋ช
๋ น์ ๋ณต์ฌํฉ๋๋ค. ํ์์ ๋ฐ๋ผ ๋ช
๋ น์ ์ฌ์ฉ์ ์ง์ ํ ์ ์์ผ๋ฉฐ, ์ฌ์ฉ์ ์ง์ ์๋ฒ OS, ๋
ธ์ถ ํฌํธ, ๋ฐ์ดํฐ ๋๋ ํฐ๋ฆฌ ๋ง์ดํธ ๋ฑ์ ์ง์ํฉ๋๋ค. ์๋๋ ์ด๋ฌํ ์ค์ ์ ๋ํ ์์ธํ ์ค๋ช
์
๋๋ค.Server OS: Docker ์ปจํ
์ด๋์ ์ด์ ์ฒด์ ๋ฅผ ์ง์ ํฉ๋๋ค. ์ฌ๊ธฐ์๋ Linux, macOS, Windows๊ฐ ํฌํจ๋ฉ๋๋ค. ์ฌ๋ฐ๋ฅธ ์ด์ ์ฒด์ ๋ฅผ ์ ํํ๋ ๊ฒ์ Docker ์ปจํ
์ด๋๊ฐ ์ ์์ ์ผ๋ก ์๋ํ๋๋ก ๋ณด์ฅํ๋ ๋ฐ ์ค์ํฉ๋๋ค.
Docker Image: General, Slim, Custom ์ธ ๊ฐ์ง ๋ฒ์ ์ ์ฌ์ฉํ ์ ์์ต๋๋ค. "custom script"๊ฐ ์ธ๋ถ ํ๋ก๊ทธ๋จ์ ํธ์ถํด์ผ ํ๋ ๊ฒฝ์ฐ, ํ์ํ ํ๊ฒฝ์ ๋ฐ๋ผ ์ค์นํ ์ ์ ํ ์ด๋ฏธ์ง๋ฅผ ์ ํํ์ญ์์ค.General: Runner์ ๋ชจ๋ ๊ธฐ๋ฅ์ ํฌํจํ๋ฉฐ, ๋ค์ ์ธ์ด ํ๊ฒฝ์ด ์ฌ์ ์ค์น๋์ด ์์ต๋๋ค: Node.js 18, Java 21, Python 3, PHP 8.
Slim: Runner์ ๋ชจ๋ ๊ธฐ๋ฅ์ ํฌํจํ์ง๋ง Node.js 18๋ง ์ฌ์ ์ค์น๋์ด ์์ต๋๋ค.
Custom: Runner์ ๋ชจ๋ ๊ธฐ๋ฅ์ ํฌํจํ๋ฉฐ, ์ธ๋ถ ํ๋ก๊ทธ๋จ์ ์ํ ์ฌ์ฉ์ ์ง์ ์ธ์ด ํ๊ฒฝ์ ์ง์ํฉ๋๋ค. ํ์์ ๋ฐ๋ผ ํ๊ฒฝ์ ์ถ๊ฐํ๊ฑฐ๋ ์ ๊ฑฐํ๊ธฐ ์ํด ์ง์ Dockerfile์ ์์ฑํ ์ ์์ต๋๋ค.
Exposed Port: ๊ธฐ๋ณธ์ ์ผ๋ก Docker ์ปจํ
์ด๋๋ ์ธ๋ถ ์ ๊ทผ์ ์ํด ๋ด๋ถ ํฌํธ๋ฅผ ๋
ธ์ถํ์ง ์์ต๋๋ค. -p ๋งค๊ฐ๋ณ์๋ฅผ ์ฌ์ฉํ๋ฉด ์ปจํ
์ด๋์ ๋ด๋ถ ํฌํธ๋ฅผ ํธ์คํธ ๋จธ์ ์ ํฌํธ์ ๋งคํํ์ฌ, ์ปจํ
์ด๋์์ ์ ๊ณตํ๋ ์๋น์ค์ ์ธ๋ถ์์ ์ ๊ทผํ ์ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด -p 80:4524๋ ์ปจํ
์ด๋์ ๋ด๋ถ ํฌํธ 4524๋ฅผ ํธ์คํธ ๋จธ์ ์ ํฌํธ 80์ ๋งคํํฉ๋๋ค.
Mount Data Directory: -v ๋งค๊ฐ๋ณ์๋ฅผ ์ฌ์ฉํ๋ฉด ํธ์คํธ ๋จธ์ ์ ๋๋ ํฐ๋ฆฌ๋ฅผ ์ปจํ
์ด๋์ ๋ง์ดํธํ์ฌ, ์ปจํ
์ด๋๊ฐ ํธ์คํธ์ ํ์ผ(์: ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ตฌ์ฑ ๋๋ ์ธ๋ถ ํ๋ก๊ทธ๋จ)์ ์ ๊ทผํ๊ณ ์กฐ์ํ ์ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด -v "/opt/runner":/opt/runner๋ ํธ์คํธ์ /opt/runner ๋๋ ํฐ๋ฆฌ๋ฅผ ์ปจํ
์ด๋์ /opt/runner ๋๋ ํฐ๋ฆฌ์ ๋ง์ดํธํฉ๋๋ค.
๋ฐฐํฌ ๋ช
๋ น์๋ ํ ํฐ ์ ๋ณด๊ฐ ํฌํจ๋์ด ์์ผ๋ฉฐ, ๋ฐ์ดํฐ ๋ณด์์์ ์ด์ ๋ก ํ ๋ฒ๋ง ํ์๋ฉ๋๋ค. Deploy General Runner๋ฅผ ํด๋ฆญํ ๋๋ง๋ค ์ ๋ช
๋ น์ด ์์ฑ๋ฉ๋๋ค.ํฅํ Runner ์
๊ทธ๋ ์ด๋์ ์ฌ์ฉํ ์ ์์ผ๋ฏ๋ก, ๋ช
๋ น์ ๋ก์ปฌ์ ์ ์ฅํด ์ฃผ์ญ์์ค.
3. ์๋ฒ์ Runner ๋ฐฐํฌ#
๋ณต์ฌํ ๋ฐฐํฌ ๋ช
๋ น์ ์๋ฒ์ ํฐ๋ฏธ๋์ ๋ถ์ฌ๋ฃ์ผ๋ฉด Runner ์ค์น๊ฐ ์๋์ผ๋ก ์์๋ฉ๋๋ค.Runner์ ๋ฐฐํฌ ์์ฑ์ ํ๊ฒฝ ๋ณ์๋ฅผ ํตํด ์์ ํ์ฌ ์ค์ ์ฌ์ฉ ์๋๋ฆฌ์ค์ ๋ ์ ๋ง์ถ ์ ์์ต๋๋ค. ์์ธํ ๋ด์ฉ์ runner deployment environment๋ฅผ ์ฐธ์กฐํ์ญ์์ค. ์ค์น๊ฐ ์๋ฃ๋๋ฉด ํฐ๋ฏธ๋์ ๊ด๋ จ ์ ๋ณด๊ฐ ์ถ๋ ฅ๋ฉ๋๋ค. ์ค๋ฅ๊ฐ ์๋ ๊ฒฝ์ฐ ์ค๋ฅ ์ธ๋ถ ์ ๋ณด๋ฅผ ๋ฐํ์ผ๋ก ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ์ ์์ต๋๋ค. ๊ทธ๋๋ ํด๊ฒฐํ ์ ์๋ค๋ฉด contact us๋ก ๋ฌธ์ํ์๊ณ ํผ๋๋ฐฑ์ ์ ๊ณตํด ์ฃผ์ญ์์ค.4. ์๋ฒ์์ Runner ์ํ ๋ณด๊ธฐ#
Docker ํด๋ผ์ด์ธํธ๋ฅผ ํตํด ์ปจํ
์ด๋์ ์คํ ์ํ๋ฅผ ํ์ธํ ์ ์์ต๋๋ค.ํฐ๋ฏธ๋์์ docker ps ๋ช
๋ น์ ์ฌ์ฉํ์ฌ ์ปจํ
์ด๋์ ์คํ ์ํ๋ฅผ ํ์ธํ ์๋ ์์ต๋๋ค.5. Apidog์์ ๋ฐฐํฌ๋ General Runner ๋ณด๊ธฐ#
์๋ฒ์ Runner ์ปจํ
์ด๋๊ฐ ๋ฐฐํฌ ๋ฐ ํ์ฑํ๋์์์ ํ์ธํ ํ Apidog๋ก ๋์๊ฐ๋๋ค. Team Resources โ General Runner์์ Runner๊ฐ ๋ฐฐํฌ๋์ด Apidog์ ์ฐ๊ฒฐ๋ ๊ฒ์ ํ์ธํ ์ ์์ต๋๋ค.General Runner๊ฐ ์ ๋ฒ์ ์ฑ๊ณต์ ์ผ๋ก ๋ฐฐํฌ๋์์ง๋ง Apidog ํด๋ผ์ด์ธํธ์ ํ์๋์ง ์๋ ๊ฒฝ์ฐ, "General Runner" ์ค๋ฅธ์ชฝ์ ์๋ ์๋ก๊ณ ์นจ ๋ฒํผ์ ํด๋ฆญํ์ฌ ํ์ด์ง๋ฅผ ์๋ก๊ณ ์นจํ ๋ค ๋ค์ ํ์ธํด ์ฃผ์ญ์์ค.
ํ ๊ตฌ์ฑ์์ด ์ด Runner๋ฅผ ๋ ์ ์ฌ์ฉํ ์ ์๋๋ก Runner์ ์ด๋ฆ์ ๋ณ๊ฒฝํ๊ณ , ์ค๋ช
์ ์ถ๊ฐํ๊ณ , ์ญ์ ํ ์ ์์ต๋๋ค. ๋ํ Runner๋ฅผ ์ค์ง/์ฌ์์ํ ์๋ ์์ต๋๋ค.์ผ์ ์ค์ง๋ Runner๋ ๋ ์ด์ ์ง์ ๋ ์์ฝ ์์
์ ์คํํ์ง ์์ผ๋ฉฐ, ์ ๊ด๋ จ ์์
์ ์์ฑํ์ฌ ์ด Runner๊ฐ ์คํํ๋๋ก ์ง์ ํ ์๋ ์์ต๋๋ค.Runner์ ์ํ ์ค๋ช
์ ์๋ ํ๋ฅผ ์ฐธ์กฐํ์ญ์์ค.| ์ํ | ์ค๋ช
|
|---|
| ์์๋จ | Runner๊ฐ ์๋ฒ์ ์ปจํ
์ด๋์์ ์ ์์ ์ผ๋ก ํ์ฑํ๋์ด ์์ผ๋ฉฐ, Apidog์์ ํต์ ์ ์ ์งํ๊ณ Apidog์์ ๋ฐํํ ๊ด๋ จ ์์
์ ์ฒ๋ฆฌํ ์ ์์ต๋๋ค. |
| ์ค์ง๋จ | Runner๊ฐ Apidog์์ ์๋์ผ๋ก ์ค์ง๋์์ง๋ง, ์๋ฒ์ ์ปจํ
์ด๋์์๋ ์ ์์ ์ผ๋ก ๊ณ์ ์คํ๋๋ฉฐ ํต์ ์ ์ ์งํฉ๋๋ค. Apidog์์ ๋ฐํํ ์์
์ ์ฒ๋ฆฌํ์ง ์์ผ๋ฉฐ, ์ ์์
์ ์ค์ง๋ Runner๋ฅผ ์คํ ๋์์ผ๋ก ์ง์ ํ ์ ์์ต๋๋ค. Apidog์์ ์๋์ผ๋ก ํ์ฑํํ์ฌ Runner๋ฅผ ์์๋จ ์ํ๋ก ๋ณต์ํ ์ ์์ต๋๋ค. |
| ์คํ๋ผ์ธ | Runner๊ฐ Apidog์์ ์ฐ๊ฒฐ์ด ๋์ด์ ธ ์์
์ ์ฒ๋ฆฌํ ์ ์์ต๋๋ค. ์ด๋ ์๋ฒ์์ Runner ์ปจํ
์ด๋๊ฐ ์ค์ง๋์๊ฑฐ๋ ์๋ฒ์ Apidog ๊ฐ ํต์ ๋ฌธ์ ๊ฐ ์๊ธฐ ๋๋ฌธ์ผ ์ ์์ต๋๋ค. Runner๋ฅผ ๋ณต์ํ๋ ค๋ฉด Runner ์ปจํ
์ด๋๊ฐ ์คํ ์ค์ธ์ง, Apidog์์ ํต์ ๋ฌธ์ ๊ฐ ์๋์ง ํ์ธํ์ฌ Runner๊ฐ ์์๋จ ์ํ๋ก ๋ณต์๋ ์ ์๋๋ก ํ์ญ์์ค. |
ํ ํ ๋ด์ ์ฌ๋ฌ General Runner๋ฅผ ๋ฐฐํฌํ ์ ์์ต๋๋ค. ์
ํ ํธ์คํ
Runner๊ฐ ํ์ ํ ์์
์ ์์ฑํ ๋ ํ ๊ตฌ์ฑ์์ ์ฌ์ฉ ๊ฐ๋ฅํ Runner ์ค์์ ์ ํํ ์ ์์ต๋๋ค.Runner์ ํ์ผ ์ ์ฅ#
Runner๋ฅผ ์ฌ์ฉํ์ฌ ์๋ํฌ์ธํธ ์์ฒญ, ํ
์คํธ ์๋๋ฆฌ์ค, ์์ฝ ์์
๊ณผ ๊ฐ์ ์์
์ ์คํํ ๋, ์์
์คํ์ ์ง์ํ๊ธฐ ์ํด ํน์ ๋ก์ปฌ ํ์ผ์ด ํ์ํ ์ ์์ต๋๋ค. ์์๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.์ฌ์ฉ์ ์ง์ ์คํฌ๋ฆฝํธ์์ ๋ค๋ฅธ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด ํธ์ถ
Pre/Post Processors์์ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ฐ๊ฒฐ ์ฌ์ฉ
์์ฒญ์ ๋ณด๋ผ ๋ SSL ์ธ์ฆ์ ์ฌ์ฉ
์ด๋ฅผ ์ง์ํ๋ ค๋ฉด ํ์ํ ํ์ผ์ Docker ์ปจํ
์ด๋ ๋ด ์ง์ ๋ ๋๋ ํฐ๋ฆฌ์ ์ ์ฅํ์ญ์์ค. Runner๊ฐ ๊ด๋ จ ์์
์ ์คํํ ๋, ์์
์๊ตฌ ์ฌํญ์ ๋ฐ๋ผ ์ง์ ๋ ๋๋ ํฐ๋ฆฌ์์ ํ์ผ ๋ด์ฉ์ ์ฝ์ด ์ฑ๊ณต์ ์ผ๋ก ์๋ฃ๋๋๋ก ํฉ๋๋ค.์ฌ์ฉ์ ์ํด ์ ์ ํ ํ์๊ณผ ๋ด์ฉ์ ํ์ผ์ ์ง์ ๋ ๋๋ ํฐ๋ฆฌ์ ๋ฐฐ์นํ๋ ค๋ฉด ๋ค์ ํ๋ฅผ ์ฐธ์กฐํ์ญ์์ค.| ์ฌ์ฉ ๋ด์ฉ | ์ง์ ๋ ๋๋ ํฐ๋ฆฌ ๊ฒฝ๋ก(๋๋ ํ์ผ ์ด๋ฆ) | Docker ๋ช
๋ น ์์ |
|---|
| Other Programming Languages | /app/external-programs/ | -v /Users/xxx/runner/packages/api-test/external-programs:/app/externalPrograms |
| Database ์ฐ๊ฒฐ ๊ตฌ์ฑ ํ์ผ | /app/database/database-connections.json | -v /Users/xxx/runner/packages/api-test/database/database-connections.json:/app/database/database-connections.json |
| SSL Certificate ๋ชฉ๋ก ํ์ผ | /app/ssl/ssl-client-cert-list.json | -v /Users/xxx/runner/packages/api-test/ssl/ssl-client-cert-list.json:/app/ssl/ssl-client-cert-list.json |
Apidog ํด๋ผ์ด์ธํธ์์ ๊ตฌ์ฑ ํ์ผ์ ๋ด๋ณด๋ด๋ ๋ฐฉ๋ฒ์ This Page๋ฅผ ์ฐธ์กฐํ์ค ์ ์์ต๋๋ค. Runner ์
๊ทธ๋ ์ด๋ ๋ฐ ์ฌ๋ฐฐํฌ#
Runner ์
๊ทธ๋ ์ด๋#
Runner์ ์ ๋ฒ์ ์ด ์ถ์๋๋ฉด ๋ฐ์คํฌํฑ Runner UI์ ์
๊ทธ๋ ์ด๋ ์์ด์ฝ์ด ํ์๋ฉ๋๋ค. ์์ด์ฝ์ ํด๋ฆญํ์ฌ Apidog์์ ์ ๊ณตํ๋ ์ต์ ๋ฒ์ ์ ์ค์นํ์ญ์์ค.Upgrade๋ฅผ ํด๋ฆญํ๋ฉด ํ์ฌ ์คํ ์ค์ธ Runner ์ปจํ
์ด๋๋ฅผ ์ค์งํ๋ผ๋ ๋ฉ์์ง๊ฐ ํ์๋ฉ๋๋ค. ์ปจํ
์ด๋๊ฐ ์ค์ง๋๋ฉด ์์ฝ ์์
๋ฐ ํด๋ผ์ด์ธํธ ์์ ์ด Runner๋ก ์ ์ก๋ ๋ชจ๋ ์์
์ด ๋ ์ด์ ์คํ๋์ง ์๋๋ค๋ ์ ์ ์ ์ํ์ญ์์ค.์
๊ทธ๋ ์ด๋๋ฅผ ํ์ธํ๋ฉด Apidog๊ฐ ํ์ฌ Runner ์ปจํ
์ด๋๋ฅผ ์๋์ผ๋ก ์ค์งํ๊ณ ์ ๋ฒ์ ์ ๋ฐฐํฌํ๊ธฐ ์ํ ๋ช
๋ น์ ์ ๊ณตํฉ๋๋ค. Runner๋ฅผ ์ฌ๋ฐฐํฌํ๋ ค๋ฉด ์ด๊ธฐ ๋ฐฐํฌ ๋จ๊ณ๋ฅผ ๋ฐ๋ฅด์ญ์์ค. ๋ฐฐํฌ๊ฐ ์ฑ๊ณตํ๋ฉด ์ต์ ๋ฒ์ ์ ์ฌ์ฉํ๊ฒ ๋ฉ๋๋ค. ์ฐธ๊ณ : ํด๋ผ์ด์ธํธ์ ๊ธฐ์กด ์์ฝ ์์
์ ์ํฅ์ ๋ฐ์ง ์์ผ๋ฉฐ ๋ค์ ํ ๋นํ ํ์๊ฐ ์์ต๋๋ค.Runner ์ฌ๋ฐฐํฌ#
Runner์ ๋ฌธ์ ๊ฐ ๋ฐ์ํ์ผ๋ฉฐ Q&A ์น์
์์ ํด๊ฒฐ ๋ฐฉ๋ฒ์ ์ฐพ์ ์ ์๊ฑฐ๋ ์๋ด๊ฐ ๋์์ด ๋์ง ์๋ ๊ฒฝ์ฐ, Runner ์ฌ๋ฐฐํฌ๋ฅผ ๊ณ ๋ คํ์ญ์์ค. ์ด๋ฅผ ์ํํ๋ ค๋ฉด ํด๋น Runner์ More Actions ์น์
์ผ๋ก ์ด๋ํ์ฌ Redeploy๋ฅผ ํด๋ฆญํ์ญ์์ค.์ฌ๋ฐฐ ํฌ ์ ์ฐจ๋ ์์ ์
๊ทธ๋ ์ด๋์ ๋์ผํฉ๋๋ค. ์ฐธ๊ณ : ์ฌ๋ฐฐํฌ ์์๋ Runner ์ปจํ
์ด๋๊ฐ ์ค์ง๋ฉ๋๋ค.Q&A#
docker ps ๋ช
๋ น์ ์ฌ์ฉํ์ฌ ๋ฌธ์ ๊ฐ ์๋ Runner๋ฅผ ์ฐพ์ผ์ญ์์ค.
๋ค์ ๋ช
๋ น์ ์ฌ์ฉํ์ฌ ๋ก๊ทธ๋ฅผ ํ์ธํ์ญ์์ค.
1๋จ๊ณ: ๋ฌธ์ ์ง๋จ์ ์ํ ์ ๋ณด๋ฅผ ์์งํ์ญ์์ค.
์ค๋ฅ ํจํด ๋๋ ์ด์ ์ธ๋ถ ์ ๋ณด๋ฅผ ํ์ธํ์ญ์์ค.
๊ฐ๋ฐ์ ๋๊ตฌ(Alt+7+8)๋ฅผ ์ด๊ณ , ํ
์คํธ ์๋๋ฆฌ์ค๋ฅผ ๋ฌธ์ ๊ฐ ์๋ Runner๋ก ์ ์กํ ๋ค์ ์๋ํฌ์ธํธ ์ธ๋ถ ์ ๋ณด๋ฅผ ๊ธฐ๋กํ์ญ์์ค.
Runner ๋ก๊ทธ๋ฅผ ๊ฒํ ํ์ฌ ์ค๋ฅ ๋ฉ์์ง๋ ๋จ์๋ฅผ ์ฐพ์ผ์ญ์์ค.
2๋จ๊ณ: ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ์ญ์์ค.๋ฌธ์ ๋ฅผ ์๋ณํ ์ ์๊ณ Apidog ๋ฒ๊ทธ๋ก ์ธํ ๊ฒ์ด ์๋๋ผ๋ฉด ์ง์ ์์ ํ์ญ์์ค.
๋ฌธ์ ๋ฅผ ์ ํํ ํ์
ํ ์ ์๋ค๋ฉด ์ถ๊ฐ ์ง์์ ์ํด Apidog ์ปค๋ฎค๋ํฐ์ ๋ฌธ์ํ์ญ์์ค.
1๋จ๊ณ: ์์
์๋ฃ ์ฌ๋ถ๋ฅผ ํ์ธํ์ญ์์ค.
์์ฝ ์์
์ ๋ํ ํ
์คํธ ๋ณด๊ณ ์๊ฐ Apidog ํด๋ผ์ด์ธํธ์์ ์ ๊ณต๋๋์ง ํ์ธํ์ญ ์์ค.
Runner ๋ก๊ทธ๋ฅผ ๊ฒํ ํ์ฌ ๋ฌธ์ ๊ฐ ์๋์ง ํ์ธํ์ญ์์ค.
2๋จ๊ณ: ์๋ฆผ ๊ตฌ์ฑ์ ํ์ธํ์ญ์์ค.์๋ฆผ ์ค์ ์ด ์์ฝ ์์
๋ด์ ์ ์ฅ๋์ด ์๋์ง ํ์ธํ์ญ์์ค.
์กฐ๊ฑด๊ณผ ์์ ์๊ฐ ์ฌ๋ฐ๋ฅด๊ฒ ๊ตฌ์ฑ๋์ด ์๋์ง ๋ค์ ํ์ธํ์ญ์์ค.
์๋ฆผ์ด ์ ์์ ์ผ๋ก ์ ์ก๋๋์ง ํ์ธํ๋ ค๋ฉด ์์
์ ์๋์ผ๋ก ํธ๋ฆฌ๊ฑฐํด ๋ณด์ญ์์ค.
์ด ์ค๋ฅ์๋ ๋ ๊ฐ์ง ๊ฐ๋ฅํ ์์ธ์ด ์์ต๋๋ค.
๋ฐฐํฌ ๋ช
๋ น์ด ๋ค์ ์์ฑ๋จ: ๋ช
๋ น์ ์์ฑํ๊ณ ํ์
์ ๋ซ์ ๋ค ๋ค์ ํด๋ฆญํ ๊ฒฝ์ฐ, ์ ํ ํฐ์ด ์ด์ ํ ํฐ์ ๋ฌดํจํํ ์ ์์ต๋๋ค. ์ด๋ฅผ ํด๊ฒฐํ๋ ค๋ฉด ๋ค์์ ์ํํ์ญ์์ค.์ผ์ชฝ ์๋จ ๋ชจ์๋ฆฌ์์ ๋ค๋ฅธ ํ์ผ๋ก ์ ํํ ๋ค์, Runner ๋ฐฐํฌ๊ฐ ํ์ํ ํ์ผ๋ก ๋์์ค์ญ์์ค.
๋ฐฐํฌ ๋ช
๋ น์ ๋ค์ ์์ฑํ๊ณ ๋ณต์ฌํ ๋ค ์คํํ์ญ์์ค. ํ๋ก์ธ์ค๊ฐ ์๋ฃ๋ ๋๊น์ง ๋ค์ ์์ฑํ๊ธฐ ์ํด ํด๋ฆญํ์ง ์๋๋ก ํ์ญ์์ค.
teamId ๋ณ์์ ID ๋ฐ์ดํฐ ์ค๋ฅ: ์ด๋ ์ต์ ๋ฒ์ ์์ ์์ ๋ ์๋ ค์ง ๋ฒ๊ทธ์
๋๋ค. ๋ฌธ์ ๊ฐ ์ง์๋๋ ๊ฒฝ์ฐ ๋ค์์ ์ํํ์ญ์์ค.์ผ์ชฝ ์๋จ ๋ชจ์๋ฆฌ์์ ๋ค๋ฅธ ํ์ผ๋ก ์ ํํ ๋ค์, Runner ๋ฐฐํฌ๊ฐ ํ์ํ ํ์ผ๋ก ๋์์ค์ญ์์ค.
๋ฐฐํฌ ๋ช
๋ น์ ๋ค์ ์์ฑํ๊ณ ๋ณต์ฌํ ๋ค ์คํํ์ญ์์ค. ํ๋ก์ธ์ค๊ฐ ์๋ฃ๋ ๋๊น์ง ๋ค์ ์์ฑํ๊ธฐ ์ํด ํด๋ฆญํ์ง ์๋๋ก ํ์ญ์์ค.