์นํํฌ ๋ฐ GitHub Apps
์ ๋ณด
์นํํฌ๋ฅผ ์ฌ์ฉํ๋ฉด ์ฌ์ฉ์๊ฐ ์ปค๋ฐ์ ํธ์ํ๊ฑฐ๋ ์ฑ์ด ์ก์ธ์คํ ์ ์๋ ๋ฆฌํฌ์งํ ๋ฆฌ์์ ๋์ด์ค๊ธฐ ์์ฒญ์ ์ฌ๋ ๊ฒฝ์ฐ์ ๊ฐ์ด GitHub์์ ์ด๋ฒคํธ๊ฐ ๋ฐ์ํ ๋ GitHub App์์ ์ค์๊ฐ ์๋ฆผ์ ๋ฐ์ ์ ์์ต๋๋ค. ์นํํฌ์ ๋ํ ์์ธํ ๋ด์ฉ์ ์นํํฌ ์ ๋ณด์(๋ฅผ) ์ฐธ์กฐํ์ธ์. GitHub App์์ ์นํํฌ๋ฅผ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์ ๋ณด์ฌ ์ฃผ๋ ์์ต์๋ ์นํํฌ ์ด๋ฒคํธ์ ์๋ตํ๋ GitHub ์ฑ ๋น๋์(๋ฅผ) ์ฐธ์กฐํ์ธ์.
GitHub์์ ํน์ ์ด๋ฒคํธ์ ๋ํ ์นํํฌ๋ฅผ ์์ ํ๊ณ ์๋์ผ๋ก ์์ ์ ์ํํ๋๋ก GitHub App์(๋ฅผ) ๊ตฌ์ฑํ ์ ์์ต๋๋ค. ์์ ํ ์ ์๋ ๋ค๋ฅธ ์ ํ์ ์นํํฌ์ ๋ํ ์์ธํ ๋ด์ฉ์ ์นํํฌ ์ด๋ฒคํธ ๋ฐ ํ์ด๋ก๋์(๋ฅผ) ์ฐธ์กฐํ์ธ์.
GitHub App์์ ์นํํฌ ์ด๋ฒคํธ๋ฅผ ์์ ํ๋ ค๋ฉด GitHub App ๋ฑ๋ก์ ๋ํด ์นํํฌ๋ฅผ ํ์ฑํํ๊ณ ์นํํฌ URL์ ์ง์ ํด์ผ ํฉ๋๋ค. ์ฌ๊ธฐ์ GitHub์(๋) ์นํํฌ ํ์ด๋ก๋๋ฅผ ์ ์กํฉ๋๋ค.
GitHub App์ด(๊ฐ) ์นํํฌ์ ์๋ตํ ํ์๊ฐ ์๊ฑฐ๋ ์ธ์ฆ์๋ง ์ฌ์ฉ๋๋ ๊ฒฝ์ฐ GitHub App ๋ฑ๋ก์ ๋ํ ์นํํฌ ํจ์๋ฅผ ๋นํ์ฑํํ ์ ์์ต๋๋ค. ์นํํฌ URL์ ์ง์ ํ ํ์๊ฐ ์์ต๋๋ค.
GitHub App ๋ฑ๋ก์ ๋ํ ์์ธํ ๋ด์ฉ์ GitHub ์ฑ ๋ฑ๋ก ํญ๋ชฉ์ ์ฐธ์กฐํ์ธ์. GitHub App ๋ฑ๋ก์ด ๊ตฌ๋ ํ๋ ์นํํฌ๋ฅผ ๋ณ๊ฒฝํ๋ ๋ฐฉ๋ฒ์ ๋ํ ์์ธํ ๋ด์ฉ์ GitHub ์ฑ ๋ฑ๋ก ์์ ์(๋ฅผ) ์ฐธ์กฐํ์ธ์.
์นํํฌ URL ์ ํ
GitHub App ๋ฑ๋ก์ ๋ํ ์นํํฌ๋ฅผ ํ์ฑํํ๋ ๊ฒฝ์ฐ ์นํํฌ URL์ ์ง์ ํด์ผ ํฉ๋๋ค. ์นํํฌ URL์ GitHub App์ ์ ์ก๋ ์นํํฌ ์ด๋ฒคํธ ํ์ด๋ก๋๋ฅผ ์์ ํ๋ ์น ์๋ฒ์ ์ฃผ์์ ๋๋ค. ๊ทธ๋ฌ๋ฉด ์๋ฒ๋ ํ์ด๋ก๋์ ๋ด์ฉ์ ๋ฐ๋ผ ์์ ์ ์ํํ ์ ์์ต๋๋ค. GitHub App์์ ๋ฐ์ํ๋ ์นํํฌ ํธ๋ํฝ ๋ณผ๋ฅจ์ ์ ํฉํ ์น ์๋ฒ๋ฅผ ์ ํํด์ผ ํฉ๋๋ค.
๊ฐ๋ฐ ๋ฐ ํ ์คํธ๋ฅผ ์ํ ์นํํฌ URL ์ ํ
์ฑ์ ๊ฐ๋ฐํ๊ณ ํ ์คํธํ๋ ๋์ Smee์ ๊ฐ์ ์นํํฌ ํ์ด๋ก๋ ์ ๊ณต ์๋น์ค๋ฅผ ์ฌ์ฉํ์ฌ ์นํํฌ ํ์ด๋ก๋๋ฅผ ์บก์ฒํ๊ณ ๋ก์ปฌ ๊ฐ๋ฐ ํ๊ฒฝ์ ์ ๋ฌํ ์ ์์ต๋๋ค. Smee ์ฑ๋์ ์ธ์ฆ๋์ง ์์๊ฑฐ๋ ์์ ํ์ง ์์ผ๋ฏ๋ก ํ๋ก๋์ ํ๊ฒฝ์์ ์ ํ๋ฆฌ์ผ์ด์ ์ Smee๋ฅผ ์ฌ์ฉํด์๋ ์ ๋ฉ๋๋ค. ๋ก์ปฌ ์ปดํจํฐ๋ฅผ ์ธํฐ๋ท์ ๋ ธ์ถํ๋ ngrok, localtunnel ๋๋ Hookdeck Console๊ณผ ๊ฐ์ ๋๊ตฌ๋ฅผ ์ฌ์ฉํ์ฌ ํ์ด๋ก๋๋ฅผ ์์ ํ ์๋ ์์ต๋๋ค.
Smee๋ฅผ ์ฌ์ฉํ์ฌ ์นํํฌ URL ๋ง๋ค๊ธฐ
Smee๋ฅผ ์ฌ์ฉํ์ฌ GitHub์ด(๊ฐ) ๋ก์ปฌ ๊ฐ๋ฐ ํ๊ฒฝ์ ์ธํฐ๋ท์ ๋ ธ์ถํ์ง ์์ผ๋ฉด์ ์นํํฌ ํ์ด๋ก๋๋ฅผ ๋ณด๋ผ ์ ์๋ ๊ณ ์ ํ ์์ ์ ๋ง๋ค ์ ์์ต๋๋ค. Smee๋ "์นํํฌ ํ๋ก์ URL"์ด๋ผ๋ ์ด ๊ณ ์ ํ ๋๋ฉ์ธ์ ํธ์ถํฉ๋๋ค. Smee์ ์นํํฌ ํ๋ก์ URL์ GitHub App์ ์นํํฌ URL๋ก ์ฌ์ฉํ ์ ์์ต๋๋ค.
- Smee๋ฅผ ์ฌ์ฉํ์ฌ ๊ณ ์ ํ ๋๋ฉ์ธ์ ๋ง๋ค๋ ค๋ฉด https://smee.io๋ก ์ด๋ํ์ฌ ์ ์ฑ๋ ์์์ ํด๋ฆญํฉ๋๋ค.
- Smee ์ฑ๋ ํ์ด์ง์์ "CLI ์ฌ์ฉ"์ ์ง์นจ์ ๋ฐ๋ผ Smee ํด๋ผ์ด์ธํธ๋ฅผ ์ค์นํ๊ณ ์คํํฉ๋๋ค.
- Smee ์นํํฌ URL์ GitHub App์ ์ฐ๊ฒฐํ๋ ค๋ฉด GitHub App ๋ฑ๋ก ํ์ด์ง์ "์นํํฌ URL" ํ๋์ ๊ณ ์ ํ Smee ๋๋ฉ์ธ์ ์ ๋ ฅํฉ๋๋ค. ์์ธํ ๋ด์ฉ์ GitHub ์ฑ ๋ฑ๋ก ๋ฐ GitHub ์ฑ ๋ฑ๋ก ์์ ์(๋ฅผ) ์ฐธ์กฐํ์ธ์.
ํ๋ก๋์ ํ๊ฒฝ์ ์นํํฌ URL ์ ํ
๋ฎ์ ๋ณผ๋ฅจ์ ์นํํฌ ํธ๋ํฝ์ ์์ ํ๋ ํ๋ก๋์ ํ๊ฒฝ์ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋์ ์ ํ๋ฆฌ์ผ์ด์ ์๋ฒ์์ ํธ์คํธํ ์ ์์ต๋๋ค. ์นํํฌ๋ฅผ ์ฒ๋ฆฌํ๊ธฐ ์ํ ์๋ฒ ์ชฝ ์ฝ๋๋ ์ด๋ฒคํธ๋ฅผ ์์ ํ๊ณ , JSON ํ์ด๋ก๋๋ฅผ ์ญ์ง๋ ฌํํ๋ฉฐ, ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๊ฑฐ๋ GitHub API๋ฅผ ํธ์ถํ๋ ๋ฑ์ ์ํํ ์์ ์ ๊ฒฐ์ ํ ์ ์์ต๋๋ค.
ํ๋ก๋์ ํ๊ฒฝ์์ ๋๊ท๋ชจ ์ฑ์ ๋ํด ๋ ๋ง์ ์์ ์นํํฌ ํธ๋ํฝ์ ์ฒ๋ฆฌํ๋ ค๋ฉด ์ ์ฉ ์๋ฒ์์ ๋น๋๊ธฐ ์นํํฌ ์ฒ๋ฆฌ๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ด ์ข์ต๋๋ค. ์นํํฌ ์ฒ๋ฆฌ๊ธฐ๊ฐ ๋ฐ์ดํฐ๋ฅผ ํ์ ํธ์ํ๊ณ ๋ณ๋์ ํ๋ก์ธ์ค๊ฐ ์ด๋ฒคํธ์ ๋ฐ๋ผ ํ์ ์์ ์ ์ํํ๋ ํ๋ฅผ ์ฌ์ฉํ์ฌ ์ด ์์ ์ ์ํํ ์ ์์ต๋๋ค. ๋ํ Azure Functions, AWS Lambda ๋๋ Hookdeck๊ณผ ๊ฐ์ ํด๋ผ์ฐ๋ ํจ์๋ฅผ ์ฌ์ฉํ์ฌ ๋๋์ ์นํํฌ ์ด๋ฒคํธ๋ฅผ ์ฒ๋ฆฌํ๋๋ก ์ฑ ํฌ๊ธฐ๋ฅผ ์กฐ์ ํ ์ ์์ต๋๋ค.
์นํํฌ ๋น๋ฐ๋ก ์นํํฌ ๋ณดํธ
ํ์ด๋ก๋๋ฅผ ์์ ํ๋๋ก ์๋ฒ๋ฅผ ๊ตฌ์ฑํ๊ณ ๋๋ฉด, ์๋ฒ์ ์ ์ก๋ ๋ชจ๋ ํ์ด๋ก๋๋ฅผ ์์ ๋๊ธฐํฉ๋๋ค. ๋ณด์์์ ์ด์ ๋ก, ๋ค์ด์ค๋ ์์ฒญ์ GitHub์์ ์์๋ ์์ฒญ์ผ๋ก๋ง ์ ํํด์ผ ํฉ๋๋ค. ์ฑ์ ์นํํฌ ๋น๋ฐ์ ๋ง๋ค์ด ์ด๋ ๊ฒ ํ ์ ์์ต๋๋ค.
GitHub ์ฑ์ ์นํํฌ ๋น๋ฐ์ ๋ง๋ค๋ ค๋ฉด GitHub App ๋ฑ๋ก ํ์ด์ง์ "์นํํฌ ๋น๋ฐ" ์๋์ ๋น๋ฐ ํ ํฐ์ ์ ๋ ฅํฉ๋๋ค. ์ํธ๋กํผ๊ฐ ๋์ ์์์ ํ ์คํธ ๋ฌธ์์ด์ ์ ํํด์ผ ํฉ๋๋ค. ์์ธํ ๋ด์ฉ์ GitHub ์ฑ ๋ฑ๋ก ๋ฐ GitHub ์ฑ ๋ฑ๋ก ์์ ์(๋ฅผ) ์ฐธ์กฐํ์ธ์.
์ฑ์ ์นํํฌ ๋น๋ฐ์ ๋ง๋ ํ์๋ ์นํํฌ ๋น๋ฐ ํ ํฐ์ ์์ ํ๊ฒ ์ ์ฅํ๊ณ ์ ํจ์ฑ์ ๊ฒ์ฌํ๋๋ก ์๋ฒ๋ฅผ ๊ตฌ์ฑํด์ผ ํฉ๋๋ค. ์์ธํ ๋ด์ฉ์ ์นํํฌ ์ ๊ณต ์ ํจ์ฑ ๊ฒ์ฌํ๊ธฐ์(๋ฅผ) ์ฐธ์กฐํ์ธ์.
์นํํฌ ์ด๋ฒคํธ ๊ตฌ๋
GitHub App์(๋ฅผ) ๊ตฌ๋ ํ์ฌ ํน์ ์ด๋ฒคํธ์ ๋ํ ์นํํฌ ํ์ด๋ก๋๋ฅผ ์์ ํ ์ ์์ต๋๋ค. GitHub App ๋ฑ๋ก์ ๋ํด ์ ํํ ์ ์๋ ํน์ ์นํํฌ ์ด๋ฒคํธ๋ ์ฑ์ ๋ํด ์ ํํ ์ฌ์ฉ ๊ถํ ์ ํ์ ๋ฐ๋ผ ๊ฒฐ์ ๋ฉ๋๋ค. ๋จผ์ ์ฑ์ ๋ถ์ฌํ ์ฌ์ฉ ๊ถํ์ ์ ํํ ๋ค์ ํด๋น ์ฌ์ฉ ๊ถํ ์งํฉ๊ณผ ๊ด๋ จ๋ ์นํํฌ ์ด๋ฒคํธ์ ์ฑ์ ๊ตฌ๋ ํ ์ ์์ต๋๋ค. ์์ธํ ๋ด์ฉ์ GitHub ์ฑ์ ๊ถํ ์ ํ์(๋ฅผ) ์ฐธ์กฐํ์ธ์.
์๋ฅผ ๋ค์ด ๋ฆฌํฌ์งํ ๋ฆฌ์์ ์ ์ด์๊ฐ ์ด๋ฆด ๋๋ง๋ค ์ฑ์ด ์นํํฌ ์ด๋ฒคํธ ํ์ด๋ก๋๋ฅผ ์์ ํ๋๋ก ํ๋ ค๋ฉด ๋จผ์ "๋ฆฌํฌ์งํ ๋ฆฌ ๊ถํ"์ "์ด์"์ ์ก์ธ์คํ ๊ถํ์ ์ฑ์ ๋ถ์ฌํด์ผ ํฉ๋๋ค. ๊ทธ๋ฐ ๋ค์, "์ด๋ฒคํธ ๊ตฌ๋ "์์ "์ด์"๋ฅผ ์ ํํ ์ ์์ต๋๋ค.
๊ฐ ์นํํฌ ์ด๋ฒคํธ์ ํ์ํ ๊ถํ์ ๋ํ ์์ธํ ๋ด์ฉ์ ์นํํฌ ์ด๋ฒคํธ ๋ฐ ํ์ด๋ก๋์(๋ฅผ) ์ฐธ์กฐํ์ธ์.