Skip to main content

GitHub ์•ฑ์„ ์‚ฌ์šฉํ•œ ์ธ์ฆ ์ •๋ณด

GitHub App์€(๋Š”) ์ž์ฒด, ์•ฑ ์„ค์น˜๋กœ ๋˜๋Š” ์‚ฌ์šฉ์ž๋ฅผ ๋Œ€์‹ ํ•˜์—ฌ ์ธ์ฆํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

GitHub App๋กœ ์ธ์ฆ

์ž์ฒด ์ธ์ฆํ•˜๊ธฐ ์œ„ํ•ด ์•ฑ์€ JWT(JSON ์›น ํ† ํฐ)๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์•ฑ์€ ์„ค์น˜ ์•ก์„ธ์Šค ํ† ํฐ์„ ์ƒ์„ฑํ•ด์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ ์ž์ฒด ์ธ์ฆํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์•ฑ ์„ค์น˜๋กœ ์ธ์ฆํ•˜๋ ค๋ฉด ์„ค์น˜ ์•ก์„ธ์Šค ํ† ํฐ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ ์•ฑ์€ ์•ฑ๊ณผ ๊ด€๋ จ๋œ ๋ฆฌ์†Œ์Šค๋ฅผ ๊ด€๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด API ์š”์ฒญ์„ ์ˆ˜ํ–‰ํ•ด์•ผ ํ•  ๋•Œ ์ž์ฒด ์ธ์ฆํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ์„ค์น˜๋œ ๊ณ„์ •์„ ๋‚˜์—ดํ•ด์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ์ž…๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ GitHub ์•ฑ์œผ๋กœ ์ธ์ฆ ๋ฐ GitHub ์•ฑ์— ๋Œ€ํ•œ JWT(JSON Web Token) ์ƒ์„ฑ์„(๋ฅผ) ์ฐธ์กฐํ•˜์„ธ์š”.

์•ฑ ์„ค์น˜๋กœ ์ธ์ฆ

์„ค์น˜๋กœ ์ธ์ฆํ•˜๊ธฐ ์œ„ํ•ด ์•ฑ์€ ์„ค์น˜ ์•ก์„ธ์Šค ํ† ํฐ์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์•ฑ ํ™œ๋™์„ ์•ฑ์— ํŠน์„ฑํ™”ํ•˜๋ ค๋Š” ๊ฒฝ์šฐ ์•ฑ์ด ์•ฑ ์„ค์น˜๋กœ ์ธ์ฆ๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์•ฑ ์„ค์น˜๋กœ ์ธ์ฆํ•˜๋ฉด ์•ฑ์ด ์•ฑ์„ ์„ค์น˜ํ•œ ์‚ฌ์šฉ์ž ๋˜๋Š” ์กฐ์ง์ด ์†Œ์œ ํ•œ ๋ฆฌ์†Œ์Šค์— ์•ก์„ธ์Šคํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์•ฑ ์„ค์น˜๋กœ ์ธ์ฆํ•˜๋Š” ๊ฒƒ์€ ์‚ฌ์šฉ์ž ์ž…๋ ฅ์„ ํฌํ•จํ•˜์ง€ ์•Š๋Š” ์ž๋™ํ™” ์›Œํฌํ”Œ๋กœ์— ์ ํ•ฉํ•ฉ๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ GitHub ์•ฑ ์„ค์น˜๋กœ ์ธ์ฆ ๋ฐ GitHub ์•ฑ์— ๋Œ€ํ•œ ์„ค์น˜ ์•ก์„ธ์Šค ํ† ํฐ ์ƒ์„ฑ์„(๋ฅผ) ์ฐธ์กฐํ•˜์„ธ์š”.

์‚ฌ์šฉ์ž๋ฅผ ๋Œ€์‹ ํ•˜์—ฌ ์ธ์ฆ

์‚ฌ์šฉ์ž๋ฅผ ๋Œ€์‹ ํ•˜์—ฌ ์ธ์ฆํ•˜๊ธฐ ์œ„ํ•ด ์•ฑ์€ ์‚ฌ์šฉ์ž ์•ก์„ธ์Šค ํ† ํฐ์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์•ฑ ํ™œ๋™์„ ์‚ฌ์šฉ์ž์—๊ฒŒ ํŠน์„ฑํ™”ํ•˜๋ ค๋Š” ๊ฒฝ์šฐ ์•ฑ์ด ์‚ฌ์šฉ์ž๋ฅผ ๋Œ€์‹ ํ•˜์—ฌ ์ธ์ฆ๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์•ฑ ์„ค์น˜๋กœ ์ธ์ฆํ•˜๋Š” ๊ฒƒ๊ณผ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ์•ฑ์€ ์•ฑ์„ ์„ค์น˜ํ•œ ์‚ฌ์šฉ์ž ๋˜๋Š” ์กฐ์ง์ด ์†Œ์œ ํ•œ ๋ฆฌ์†Œ์Šค์— ์•ก์„ธ์Šคํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์‚ฌ์šฉ์ž๋ฅผ ๋Œ€์‹ ํ•˜์—ฌ ์ธ์ฆํ•˜๋Š” ๊ฒƒ์€ ์•ฑ์ด ํŠน์ • ์‚ฌ์šฉ์ž๊ฐ€ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋Š” ์ž‘์—…๋งŒ ์ˆ˜ํ–‰ํ•˜๋„๋ก ํ•˜๋ ค๋Š” ๊ฒฝ์šฐ์— ์ ํ•ฉํ•ฉ๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ ์‚ฌ์šฉ์ž๋ฅผ ๋Œ€์‹ ํ•˜์—ฌ GitHub ์•ฑ์œผ๋กœ ์ธ์ฆ ๋ฐ GitHub ์•ฑ์— ๋Œ€ํ•œ ์‚ฌ์šฉ์ž ์•ก์„ธ์Šค ํ† ํฐ ์ƒ์„ฑ์„(๋ฅผ) ์ฐธ์กฐํ•˜์„ธ์š”.