GitHub REST API ํ์ฉ ๊ฐ์ด๋์ ์ค๋ฌด ํ


Intro
GitHub REST API๋ ๊ฐ๋ฐ์๋ค์ด ์ปค๋ค๋ ์ฅ์ ๊ณผ ๊ฒฝ์๋ ฅ์ ๊ฐ์ง ์ ์๋๋ก ๋๋ ๋๊ตฌ์ ๋๋ค. ์ฝ๋ ์ ์ฅ์ ๊ด๋ฆฌ์์ ์์ํ์ฌ ํ๋ก์ ํธ ํ์ ์ ์ด๋ฅด๊ธฐ๊น์ง, ๋ค์ํ ๊ธฐ๋ฅ์ ์ ๊ณตํฉ๋๋ค. ์ด API๋ฅผ ์ดํดํ๊ณ ํ์ฉํ๋ ๊ฒ์ ํ๋ ๊ฐ๋ฐ ํ๊ฒฝ์์ ํ์์ ์ ๋๋ค. ํนํ, API๋ฅผ ํตํด ์์ ์ ์๋ํํ๊ณ ๋ฐ๋ณต์ ์ธ ์์์ ์ ์ค์ผ ์ ์๋ ๊ฐ๋ฅ์ฑ์ ๊ฐ๋ฐ์์ ์์ฐ์ฑ์ ํฌ๊ฒ ํฅ์์ํต๋๋ค. ๊ฐ๋ณ ์๋ํฌ์ธํธ์ ํน์ฑ๊ณผ ์ด๋ฅผ ํตํ ๋ฐ์ดํฐ ์ฒ๋ฆฌ ๋ฐฉ์์ ์ด๋ฌํ ํจ๊ณผ๋ฅผ ๊ทน๋ํํ ์ ์๋ ํต์ฌ ์์์ ๋๋ค.
์ด ๊ธ์์๋ GitHub REST API์ ๊ตฌ์กฐ์ ๊ธฐ๋ฅ, ๋ค์ํ ์๋ํฌ์ธํธ ์ฌ์ฉ๋ฒ์ ์ฌ๋ ์๊ฒ ์ดํด๋ณด๊ฒ ์ต๋๋ค. ๋ํ, API ์ธ์ฆ ๋ฐฉ์, ๋ฐ์ดํฐ ํ์, ์์ฒญ ๋ฐ ์๋ต ์ฒ๋ฆฌ ๋ฐฉ๋ฒ ๋ฑ์ ํตํด ๋ ์ ์ฌ๋ฌ๋ถ์ด ์ค์ ์ ํ๋ฆฌ์ผ์ด์ ์์ GitHub API๋ฅผ ์ต๋ํ ํ์ฉํ ์ ์๋๋ก ์๋ดํ ๊ฒ์ ๋๋ค. ์ดํด๋ฅผ ๋๊ธฐ ์ํด ์ฌ๋ก ์ฐ๊ตฌ์ ์ค์ง์ ์ธ ์์๋ ํฌํจํ ์์ ์ ๋๋ค.
์ด์ ์์ํด ๋ณด๊ฒ ์ต๋๋ค.
GitHub REST API ๊ฐ์
GitHub REST API๋ ๊ฐ๋ฐ์์ ์ํํธ์จ์ด ๊ฐ๋ฐ์๋ค์ด GitHub์ ๋ค์ํ ๊ธฐ๋ฅ์ ํ๋ก๊ทธ๋๋ฐ์ ์ผ๋ก ์ ๊ทผํ ์ ์๋๋ก ํด์ฃผ๋ ๋๊ตฌ์ ๋๋ค. ์ด API๋ฅผ ์ฌ์ฉํ๋ฉด ์ ์ฅ์ ๊ด๋ฆฌ, ์ด์ ์ถ์ ๋ฐ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด, ๋ฐ์ดํฐ ํ์ผ ๋ฑ์ ํจ์จ์ ์ผ๋ก ํตํฉํ ์ ์์ต๋๋ค. GitHub REST API์ ์ฌ์ฉ์ ๋จ์ํ ์ฝ๋ ํธ์คํ ์ ๋์ด์, ํ ํ์ ์ ๊ธฐ๋ฐ์ ๋ค์ง๊ณ ํ๋ก์ ํธ ๊ด๋ฆฌ์ ํ์ง์ ๋์ด๋ ๋ฐ ๊ธฐ์ฌํ๊ฒ ๋ฉ๋๋ค.
API์ ํ์์ฑ๊ณผ ์ค์์ฑ
API๋ ์ํํธ์จ์ด์ ๊ตฌ์ฑ ์์ ๊ฐ์ ์ํต์ ๊ฐ๋ฅํ๊ฒ ํ๋ ์ผ์ข ์ ์ธํฐํ์ด์ค์ ๋๋ค. GitHub REST API๋ ํนํ ๋ค์๊ณผ ๊ฐ์ ์ฌ๋ฌ ๊ฐ์ง ์ด์ ๋ก ์ค์ํฉ๋๋ค:
- ์๋ํ: ๋ฐ๋ณต์ ์ธ ์์ ์ ์๋์ผ๋ก ์ํํ๊ฒ ํ์ฌ ์์ฐ์ฑ์ ๋์ ๋๋ค. ์๋ฅผ ๋ค์ด, CI/CD ํ์ดํ๋ผ์ธ๊ณผ ๊ฐ์ ์๋ํ ๋๊ตฌ๋ API๋ฅผ ํตํด ์ฝ๋ ๋ณ๊ฒฝ ์ฌํญ์ ๊ด๋ฆฌํฉ๋๋ค.
- ํตํฉ: ๋ค์ํ ๋๊ตฌ์ ์๋น์ค๋ฅผ ํตํฉํ์ฌ ์์ ํ๋ฆ์ ํจ์จ์ ์ผ๋ก ๋ง๋ญ๋๋ค. ํ์ ๋ ธ๋ ฅ์ด ๋ ์๋ชจ๋๊ฒ ๋๊ณ , ์์ ์ด ํจ์ฌ ๋ ๋งค๋๋ฝ๊ฒ ์งํ๋ฉ๋๋ค.
- ๋ฐ์ดํฐ ์ ๊ทผ: ํ๋ก์ ํธ์ ์ํ๋ฅผ ์ ์ํ ํ์ธํ๊ณ ์ง๋จํ ์ ์๊ฒ ๋์ต๋๋ค. ์ค์๊ฐ ๋ฐ์ดํฐ๋ฅผ ํ์ฉํ์ฌ ๋น ๋ฅธ ๊ฒฐ์ ์ด ๊ฐ๋ฅํฉ๋๋ค.
"API๋ ํ๋ ์ํํธ์จ์ด ๊ฐ๋ฐ์ ์ธ์ด์ ๋๋ค. ์ด๋ฅผ ํตํด ๊ธฐ๋ฅ์ ํ์ฅ์ฑ๊ณผ ํจ์จ์ฑ์ ๊ฐ์ ธ๋ค์ค๋๋ค."
์ด๋ฐ ์ด์ ๋ก API๋ ๋จ์ํ ๋๊ตฌ๊ฐ ์๋, ์ํํธ์จ์ด ๊ฐ๋ฐ์ ํ์์ ์ธ ์์๋ก ์๋ฆฌ ์ก์์ต๋๋ค.
GitHub API์ ๊ธฐ๋ณธ ๊ฐ๋
GitHub API๋ ๋ค์ํ ์๋ํฌ์ธํธ๋ฅผ ํตํด ๊ตฌ์ฒด์ ์ธ ์์ ์ ์ํํ๋๋ก ํ์ฉํฉ๋๋ค. ์ด๋ฌํ ๊ธฐ๋ณธ ๊ฐ๋ ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค:


- ์๋ํฌ์ธํธ: ๊ฐ API ์์ฒญ์ ํน์ URL์ ๋ํ ์์ฒญ์ผ๋ก ์์ํ๋ฉฐ, ๊ฐ URL์ ํน์ ์์์ด๋ ๋ฐ์ดํฐ์ ํด๋นํฉ๋๋ค. ์๋ฅผ ๋ค์ด, ์ ์ฅ์ ์ ๋ณด์ ์ ๊ทผํ๊ธฐ ์ํ ์์ฒญ์ ํ์์ ๋ฐ๋ฆ ๋๋ค.
- HTTP ๋ฉ์๋: API ์์ฒญ ์ ์ด๋ค ์์ ์ ์ํํ ์ง ์ ์ํฉ๋๋ค. ์ผ๋ฐ์ ์ธ HTTP ๋ฉ์๋๋ก๋ GET, POST, PUT, DELETE ๋ฑ์ด ์์ต๋๋ค. ๋ฐ์ดํฐ ์์ฒญ, ์์ฑ, ์์ , ์ญ์ ๋ฑ ๋ค์ํ ์์ ์ ๊ฐ๋ฅํ๊ฒ ํฉ๋๋ค.
- ์ธ์ฆ: API๋ฅผ ์ฌ์ฉํ ๋๋ ์์ ํ ์ ๊ทผ์ ์ํด ์ธ์ฆ์ด ํ์ํฉ๋๋ค. GitHub API๋ OAuth ์ธ์ฆ๊ณผ Personal Access Token ๋ฑ ๋ค์ํ ๋ฐฉ์์ ์ธ์ฆ์ ์ง์ํ์ฌ ๋ณด์์ฑ์ ๋์ ๋๋ค.
์ด๋ฌํ ๊ธฐ๋ณธ ๊ฐ๋ ์ ์ดํดํ๋ฉด GitHub API๋ฅผ ํ์ฉํ๋ ๋ฐ ํฐ ๋์์ด ๋ฉ๋๋ค. ์ค์ง์ ์ธ ์์๋ฅผ ํตํด ๊ฐ ์์๋ฅผ ๋ณด๋ค ๊น์ด ์๊ฒ ๊ด์ฐฐํ ์ ์์ ๊ฒ์ ๋๋ค.
API ์ธ์ฆ ๋ฐฉ์
API ์ธ์ฆ์ GitHub REST API๋ฅผ ํจ๊ณผ์ ์ผ๋ก ํ์ฉํ๊ธฐ ์ํด ํ์์ ์ธ ๋จ๊ณ์ด๋ค. ์ธ์ฆ ๋ฐฉ์์ ์ฌ์ฉ์์ ์ ์์ ํ์ธํ๊ณ , ์ด๋ค์ด API์ ์ ๊ทผํ ์ ์๋ ๊ถํ์ ๋ถ์ฌํ๋ ์ญํ ์ ํ๋ค. ์ฌ๋ฐ๋ฅด๊ฒ ์ค์ ๋ ์ธ์ฆ์ ๋ณด์์ ๊ฐํํ๊ณ , ๋ฐ์ดํฐ๋ฅผ ์์ ํ๊ฒ ๋ณดํธํ๋ฉฐ, API์ ์ ์์ ์ธ ์ฌ์ฉ์ ๋ณด์ฅํ๋ ๋ฐ ํฐ ๋์์ด ๋๋ค. ์ด๋ฌํ ์ด์ ๋ก, ์ธ์ฆ ๋ฐฉ์์ GitHub API๋ฅผ ์ฌ์ฉํ ๋ ๋ฐ๋์ ๊ณ ๋ คํด์ผ ํ ์์์ ๋๋ค.
OAuth ์ธ์ฆ
OAuth๋ API ์ธ์ฆ์ ์ํ ๋ํ์ ์ธ ํ๋กํ ์ฝ ์ค ํ๋๋ก, ์ 3์๊ฐ ์ฌ์ฉ์ ์์์ ์ ๊ทผํ ์ ์๋๋ก ํ๊ฐํ๋ ๋ฐฉ์์ด๋ค. ์ด ํ๋กํ ์ฝ์ ํนํ ์ฌ์ฉ์ ๋น๋ฐ๋ฒํธ๋ฅผ ๋ ธ์ถํ์ง ์๊ณ ๋ ์์ ํ๊ฒ ์ธ์ฆ ๋ฐ ๊ถํ ๋ถ์ฌ๋ฅผ ๊ฐ๋ฅํ๊ฒ ํด์ค๋ค. GitHub์์๋ OAuth๋ฅผ ์ด์ฉ ํ์ฌ ์ฌ์ฉ์๊ฐ ์์ ์ GitHub ๊ณ์ ์ ๋ํ ์ก์ธ์ค๋ฅผ ์ ๊ณตํ๋๋ก ์ ๋ํ ์ ์๋ค.
- ์ฃผ์ ํน์ง:
- ์ฌ์ฉ์ ๋ฐ์ดํฐ ๋ณดํธ: ์ฌ์ฉ์๋ ์์ ์ ๋ก๊ทธ์ธ ์ ๋ณด๋ฅผ ๊ณต์ ํ์ง ์๊ณ ๋ ์์์ ์์ ํ๊ฒ ๊ณต์ ํ ์ ์๋ค.
- ๊ถํ ์ ํ: ๊ฐ๋ฐ์๋ ํ์ํ ๊ถํ๋ง ์ ํํ์ฌ ์์ฒญํ ์ ์๋ค.
- ํ ํฐ ๊ธฐ๋ฐ: OAuth๋ ์ก์ธ์ค ํ ํฐ์ ๋ฐ๊ธํ์ฌ ์ฌ์ฉํ๊ณ , ์ด ํ ํฐ์ด ์ ํจํ ๋์๋ง API์ ์ ๊ทผํ ์ ์๋ค.
์ด๋ฌํ ์ ๋๋ฌธ์, OAuth ์ธ์ฆ์ ๋ง์ ๊ฐ๋ฐ์์ ์ ํ์ ๋ฐ๊ณ ์์ผ๋ฉฐ, ๋ค์ํ ์ ํ๋ฆฌ์ผ์ด์ ์์ ๋๋ฆฌ ์ฌ์ฉ๋๊ณ ์๋ค.
Personal Access Token ์ฌ์ฉ๋ฒ
๊ฐ๋ฐ์๊ฐ GitHub API๋ฅผ ์ฌ์ฉํ ๋ ๊ฐ์ฅ ๊ฐ๋จํ ์ธ์ฆ ๋ฐฉ๋ฒ ์ค ํ๋๋ Personal Access Token(๊ฐ์ธ ์ ๊ทผ ํ ํฐ)์ ์ฌ์ฉํ๋ ๊ฒ์ด๋ค. ์ด ๋ฐฉ์์ OAuth์ ๋น์ทํ ๋ฐฉ์์ผ๋ก ์๋ํ์ง๋ง, ์ข ๋ ์ง๊ด์ ์ด๋ฉฐ ์ค์ ์ด ๊ฐํธํ๋ค.
- ์ฌ์ฉ ๋ฐฉ๋ฒ:
- ํ ํฐ ์์ฑ: GitHub ๊ณ์ ์ ๋ก๊ทธ์ธํ ํ, โSettingsโ ๋ฉ๋ด๋ก ์ด๋ํ์ฌ โDeveloper settingsโ์์ โPersonal access tokensโ์ ์ ํํ๋ค.
- ๊ถํ ์ค์ : ํ์ํ ๊ถํ์ ์ค์ ํ์ฌ ํ ํฐ์ ์์ฑํ๋ค.
- ํ ํฐ ์ฌ์ฉ: API ์์ฒญ์ ๋ณด๋ผ ๋ Authorization ํค๋์ ํ์์ผ๋ก ์ถ๊ฐํ์ฌ ์ธ์ฆ์ ์งํํ๋ค.
๊ฐ์ธ ์ ๊ทผ ํ ํฐ ์ฌ์ฉ ์, ๊ทธ ํ ํฐ์ด ๊ฐ์ง ๊ถํ์ ์ ํํ ์ดํดํ๊ณ , ํ์ํ ์ต์ํ์ ๊ถํ๋ง ๋ถ์ฌํ๋ ๊ฒ์ด ์ค์ํ๋ค.


์ด๋ฌํ ๋ฐฉ์์ ์ฝ๊ฒ ์ฌ์ฉํ ์ ์์๊ณผ ๋์์ ์ข์ ๋ณด์์ฑ์ ์ ๊ณตํ์ฌ, ๋ง์ ๊ฐ๋ฐ์๊ฐ ์ ํธํ๋ค. ๊ฐ์ธ ์ ๊ทผ ํ ํฐ์ ๋ง๋ฃ๋์ง ์๋ ํ ์์ ๋กญ๊ฒ ์ฌ์ฉํ ์ ์์ง๋ง, ํ์ํ ๊ฒฝ์ฐ ์ธ์ ๋ ์ง ์ญ์ ํ ์ ์๋ค.
GitHub REST API์ ์ฃผ์ ์๋ํฌ์ธํธ
GitHub REST API๋ ๋ค์ํ ๊ธฐ๋ฅ์ ์ ๊ณตํ๋ฉฐ, ๊ทธ ์ค ๊ฐ์ฅ ํต์ฌ์ ์ธ ๋ถ๋ถ์ด ๋ฐ๋ก ์๋ํฌ์ธํธ์ด๋ค. ์ด๋ฒ ์น์ ์์๋ GitHub API์ ์ฃผ์ ์๋ํฌ์ธํธ๋ฅผ ์ดํด๋ณด๊ณ ๊ฐ ์๋ํฌ์ธํธ์ ์ค์์ฑ, ์ฌ์ฉ๋ฒ, ๊ทธ๋ฆฌ๊ณ ์ฃผ์ํด์ผ ํ ์ ์ ์์ธํ๊ฒ ์ค๋ช ํ ๊ฒ์ด๋ค. ์ด๋ก์จ ๊ฐ๋ฐ์์ ๊ธฐ์ ์ ๋ฌธ๊ฐ๋ค์ด ์ค์ ํ๋ก์ ํธ์์ API๋ฅผ ํจ๊ณผ์ ์ผ๋ก ํ์ฉํ ์ ์๋๋ก ๋์์ ์ฃผ๊ณ ์ ํ๋ค.
์ด ์๋ํฌ์ธํธ๋ค์ ๋ค์๊ณผ ๊ฐ์ ๊ธฐ๋ฅ์ ์ ๊ณตํ๋ค:
- ํจ์จ์ฑ: API๋ฅผ ํตํด ๋๋์ ๋ฐ์ดํฐ๋ฅผ ํจ์จ์ ์ผ๋ก ์ฒ๋ฆฌํ ์ ์๋ค.
- ํตํฉ์ฑ: ๋ค์ํ ์ ํ๋ฆฌ์ผ์ด์ ๊ณผ ์ฝ๊ฒ ํตํฉํ ์ ์์ด ํ๋ก์ ํธ ๊ด๋ฆฌ์ ์ ๋ฆฌํ๋ค.
- ์ค์๊ฐ ๋ฐ์ดํฐ: GitHub์์ ์ ๊ณตํ๋ ์ต์ ๋ฐ์ดํฐ๋ฅผ ์ค์๊ฐ์ผ๋ก ํ์ฉํ ์ ์๋ค.
"์ข์ API๋ ์ ํ๊ณผ ์ฌ์ฉ์ ๊ฐ์ ์ํํ ์ํธ์์ฉ์ ๋ง๋ค์ด๋ธ๋ค. GitHub API๋ ์ด์ ๋ถํฉํ๋ ํ๋ฅญํ ์์์ด๋ค."
Repositories ์๋ํฌ์ธํธ
Repositories ์๋ํฌ์ธํธ๋ GitHub์ ๊ฐ์ฅ ๊ธฐ๋ณธ์ด ๋๋ ํจ์์ด๋ค. ์ฌ์ฉ์๋ ์ด ์๋ํฌ์ธํธ๋ฅผ ํตํด ๋ค์ํ ์ ์ฅ์์ ๋ํ ์ ๋ณด๋ฅผ ์กฐํํ๊ณ ๊ด๋ฆฌํ ์ ์๋ค. ์๋ฅผ ๋ค์ด, ์ ์ฅ์๋ฅผ ์์ฑํ๊ฑฐ๋ ์ญ์ ํ๊ณ , ํน์ ์ ์ฅ์์ ๋ํ ๋ฐ์ดํฐ(๋ฌธ์ํ, ์ปค๋ฐ ๋ฑ)๋ฅผ ์กฐํํ๋ ๊ฒ์ด ๊ฐ๋ฅํ๋ค.
์ด ์๋ํฌ์ธํธ์ ์ฅ์ ์:
- ๋ค์ํ ๊ด๋ฆฌ ๊ธฐ๋ฅ: ์ ์ฅ์์ ๋ชจ๋ ์ธก๋ฉด์ ๊ด๋ฆฌํ ์ ์๋ค.
- ๋ฐ์ดํฐ ์ ๊ทผ ์ฉ์ด: ์ ์ฅ์ ๋ด์ฉ์ ์ฝ๊ฒ ์ ๊ทผํ ์ ์๋ค.
์ด ์๋ํฌ์ธํธ๋ฅผ ์ฌ์ฉํ ๋๋ ์ฝ๊ธฐ ๋ฐ ์ฐ๊ธฐ ๊ถํ์ด ํ์ํจ์ ์ ์ํด์ผ ํ๋ค. ๊ฐ์ธ์ ์ธ ํ๋ก์ ํธ๋ฟ ์๋๋ผ ํ ํ์ ์์๋ ํฐ ๋์์ด ๋๋ค.
Issues ์๋ํฌ์ธํธ
Issues ์๋ํฌ์ธํธ๋ ํ๋ก์ ํธ์ ์ํ์ ๋ฌธ์ ๋ฅผ ์ถ์ ํ๋ ๋ฐ ์ค์ํ ์ญํ ์ ํ๋ค. ์ฌ์ฉ์๋ค์ ์ด ์๋ํฌ์ธํธ๋ฅผ ํตํด ๋ฒ๊ทธ ๋ฆฌํฌํธ๋ ๊ธฐ๋ฅ ์์ฒญ ๋ฑ์ ์์ฑํ๊ณ ๊ด๋ฆฌํ ์ ์๋ค. ์ด ์๋ํฌ์ธํธ๋ ํ๋ ฅ์ ์ธ ๊ฐ๋ฐ ํ๊ฒฝ์ ์ด์ง์ํจ๋ค.


์ฃผ์ ๊ธฐ๋ฅ์ ๋ค์๊ณผ ๊ฐ๋ค:
- ์ํ ์ถ์ : ํ๋ก์ ํธ ์งํ ์ํฉ ๋ฐ ์ด์ ๊ด๋ฆฌ๋ฅผ ๊ฐํธํ๊ฒ ํ ์ ์๋ค.
- ์ฐ์ ์์ ์ค์ : ๊ฐ ์ด์์ ์ค์๋๋ฅผ ์ค์ ํ์ฌ ํ์๊ฐ์ ์์ฌ์ํต์ ์ํํ๊ฒ ํด์ค๋ค.
์ด ์๋ํฌ์ธํธ๋ฅผ ์ฌ์ฉํ ๋๋ ์ ์ ํ ์นดํ ๊ณ ๋ฆฌ์ ๋ผ๋ฒจ๋ง์ด ํ์ํ๋ฉฐ, ์ด๋ฅผ ํตํด ํ์ ๊ฐ์ ํจ๊ณผ์ ์ธ ์ปค๋ฎค๋์ผ์ด์ ์ด ์ด๋ฃจ์ด์ง๋ค.
Pull Requests ์๋ํฌ์ธํธ
Pull Requests ์๋ํฌ์ธํธ๋ ์ฌ๋ฌ ๊ฐ๋ฐ์๊ฐ ํ๋ ฅํ์ฌ ์ฝ๋๋ฅผ ๊ฒํ ํ๊ณ ํตํฉํ๋ ๊ณผ์ ์ ์ง์ํ๋ค. ์ด ๊ธฐ๋ฅ์ ์ฝ๋ ๋ฆฌ๋ทฐ๋ฅผ ํจ์จ์ ์ผ๋ก ๊ด๋ฆฌํ๋ฉฐ ์ถฉ๋ ์ต์ํ๋ฅผ ๋์์ค๋ค.
์ฃผ์ ํน์ง์:
- ๋ณ๊ฒฝ ์ฌํญ ์ ์ด: ์ฝ๋ ๋ณ๊ฒฝ ์ฌํญ์ ์ ์คํ๊ฒ ๊ฒํ ํ ์ ์๋ค.
- ๋์ ์น์ธ: ์ฌ๋ฌ ์ฌ๋์ ์น์ธ ๊ณผ์ ์ ํตํด ์ฝ๋ ํ์ง์ ๋์ธ๋ค.
์ด ์๋ํฌ์ธํธ๋ฅผ ์ฌ์ฉํ ๋๋ ๋ช ํํ ์ฝ๋ฉํธ๋ฅผ ๋ฌ์ ์ฃผ์ด์ผ ํ๋ฉฐ, ์ด๋ฅผ ํตํด ๋ฆฌ๋ทฐ์ด๊ฐ ๋ณ๊ฒฝ ์ฌํญ์ ์ฝ๊ฒ ์ดํดํ ์ ์๋๋ก ํด์ผ ํ๋ค. ์ด๋ฌํ ๊ณผ์ ์ ํ์ํฌ๋ฅผ ๊ฐํํ๋ ๋ฐ๋ ๋ง์ ๋์์ด ๋๋ค.
๋ฐ์ดํฐ ํฌ๋งท ๋ฐ ๋ฐํ ํ์
๋ฐ์ดํฐ ํฌ๋งท๊ณผ ๋ฐํ ํ์์ GitHub REST API์ ์ํํ ์ฌ์ฉ์ ์ํ ์ค์ํ ์์์ ๋๋ค. API์ ์ํธ์์ฉ ํ ๋, ๋ฐ์ดํฐ์ ๊ตฌ์กฐ์ ํ์์ด ๋ช ํํ์ง ์์ผ๋ฉด ์์ฒญ ๋ฐ ์๋ต์ ์ดํดํ๋ ๋ฐ ์ด๋ ค์์ ๊ฒช์ ์ ์์ต๋๋ค. ๋ฐ๋ผ์ ์ ์ ํ ํฌ๋งท์ ์ดํดํ๋ ๊ฒ์ ํ์์ ์ ๋๋ค.
JSON ํ์์ ์ดํด
JSON(JavaScript Object Notation)์ ๋ฐ์ดํฐ ๊ตํ์ ์ํ ๊ฒฝ๋ ํฌ๋งท์ผ๋ก, ์ธ๊ฐ๊ณผ ๊ธฐ๊ณ ๋ชจ๋ ์ฝ๊ธฐ ์ฝ์ต๋๋ค. GitHub API์์๋ JSON ํ์์ ํ์ฉํ๋๋ฐ, ์ด๋ ๋ค์ํ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์ ํธํ๋ฉ๋๋ค. JSON์ ๊ธฐ๋ณธ ๊ตฌ์กฐ๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค:
- ๋ฐฐ์ด: ๋ก ํํ๋๋ฉฐ, ์ฌ๋ฌ ๊ฐ์ ์์ฐจ์ ์ผ๋ก ๋์ดํ ์ ์์ต๋๋ค.
์๋ฅผ ๋ค์ด, GitHub์์ ํน์ ๋ ํฌ์งํ ๋ฆฌ์ ์ ๋ณด๋ฅผ ์์ฒญํ ๊ฒฝ์ฐ, ๋ค์๊ณผ ๊ฐ์ JSON ํ์์ ์๋ต์ ๋ฐ์ ์ ์์ต๋๋ค:
json
"name": "example-repo", "owner": "login": "username" "private": false, "url": "https://github.com/username/example-repo"