Skip to main content

GitHub ๋น„๋ฐ€ ํ˜•์‹ ์ดํ•ด

GitHub ๋น„๋ฐ€์˜ ์‚ฌ์šฉ๋Ÿ‰, ๋ฒ”์œ„, ์•ก์„ธ์Šค ๊ถŒํ•œ์— ๋Œ€ํ•ด ์•Œ์•„๋ด…๋‹ˆ๋‹ค.

GitHub์˜ ๋น„๋ฐ€ ํ˜•์‹ ์ •๋ณด

GitHub ๋น„๋ฐ€์€ API ํ‚ค, ํ† ํฐ, ์•”ํ˜ธ์™€ ๊ฐ™์€ ์ค‘์š”ํ•œ ์ •๋ณด๋ฅผ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์— ์•ˆ์ „ํ•˜๊ฒŒ ์ €์žฅํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

์ค‘์š”ํ•œ ์ •๋ณด๋ฅผ GitHub ๋น„๋ฐ€๋กœ ์ €์žฅํ•˜๋Š” ๊ฒฝ์šฐ ์ž๊ฒฉ ์ฆ๋ช… ๋˜๋Š” ํ‚ค๋ฅผ ํ•˜๋“œ ์ฝ”๋”ฉํ•  ํ•„์š”๊ฐ€ ์—†์œผ๋ฉฐ ์ฝ”๋“œ๋‚˜ ๋กœ๊ทธ์— ๋…ธ์ถœ๋˜์ง€ ์•Š๋„๋ก ๋ฐฉ์ง€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ ๋‹ค์Œ ๋น„๋ฐ€์„ ์‚ฌ์šฉํ•˜์—ฌ ์„œ๋น„์Šค๋ฅผ ์ธ์ฆํ•˜๊ณ , ์ž๊ฒฉ ์ฆ๋ช…์„ ๊ด€๋ฆฌํ•˜๋ฉฐ, ์ค‘์š”ํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ์›Œํฌํ”Œ๋กœ์— ์•ˆ์ „ํ•˜๊ฒŒ ์ „๋‹ฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

GitHub์—์„œ๋Š” ์„ธ ๊ฐ€์ง€ ์œ ํ˜•์˜ ๋น„๋ฐ€์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

GitHub ๋น„๋ฐ€ ์œ ํ˜•์— ๋”ฐ๋ผ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ, ์กฐ์ง ๋˜๋Š” ๊ฐœ์ธ ๊ณ„์ • ๋ณด์•ˆ ์„ค์ • ํŽ˜์ด์ง€์—์„œ ๋น„๋ฐ€์„ ๋งŒ๋“ค๊ณ  ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

GitHub๊ฐ€ ๋น„๋ฐ€์„ ์ €์žฅํ•˜๋Š” ๋ฐฉ๋ฒ• ์ดํ•ด

GitHub๋Š” Libsodium ๋ด‰์ธ๋œ ์ƒ์ž๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋น„๋ฐ€์„ ์•”ํ˜ธํ™”ํ•ฉ๋‹ˆ๋‹ค. ๋น„๋ฐ€์€ GitHub์— ๋„๋‹ฌํ•˜๊ธฐ ์ „์— ์•”ํ˜ธํ™”๋˜๋ฉฐ ๊ด€๋ จ ์„œ๋น„์Šค(Dependabot, GitHub Actions, Codespaces)์—์„œ ์‚ฌ์šฉ๋  ๋•Œ๊นŒ์ง€ ์•”ํ˜ธํ™”๋œ ์ƒํƒœ๋กœ ์œ ์ง€๋ฉ๋‹ˆ๋‹ค.

Dependabot ๋น„๋ฐ€

Dependabot ๋น„๋ฐ€์€ Dependabot์—์„œ ์‚ฌ์šฉํ•  ์ž๊ฒฉ ์ฆ๋ช… ๋ฐ ์ค‘์š”ํ•œ ์ •๋ณด๋ฅผ ์ €์žฅํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

Dependabot ๋น„๋ฐ€์€ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์˜ dependabot.yml ํŒŒ์ผ์—์„œ ์ฐธ์กฐ๋ฉ๋‹ˆ๋‹ค.

์‚ฌ์šฉ

Dependabot ๋น„๋ฐ€์€ ์ผ๋ฐ˜์ ์œผ๋กœ Dependabot์—์„œ ํ”„๋ผ์ด๋น— ํŒจํ‚ค์ง€ ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ๋ฅผ ์ธ์ฆํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ์ด๋ ‡๊ฒŒ ํ•˜๋ฉด Dependabot์—์„œ ๋Œ์–ด์˜ค๊ธฐ ์š”์ฒญ์„ ์—ด์–ด ํ”„๋ผ์ด๋น— ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์˜ ์ทจ์•ฝํ•˜๊ฑฐ๋‚˜ ์˜ค๋ž˜๋œ ์ข…์†์„ฑ์„ ์—…๋ฐ์ดํŠธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ธ์ฆ์— ์‚ฌ์šฉ๋˜๋Š” ์ด๋Ÿฌํ•œ Dependabot ๋น„๋ฐ€์€ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์˜ dependabot.yml ํŒŒ์ผ์—์„œ ์ฐธ์กฐ๋ฉ๋‹ˆ๋‹ค.

Dependabot ๋น„๋ฐ€์—๋Š” Dependabot์—์„œ ์‹œ์ž‘ํ•œ ์›Œํฌํ”Œ๋กœ์— ํ•„์š”ํ•œ ๋น„๋ฐ€๋„ ํฌํ•จ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, Dependabot์€ ์ข…์†์„ฑ์„ ์—…๋ฐ์ดํŠธํ•˜๊ธฐ ์œ„ํ•œ ๋Œ์–ด์˜ค๊ธฐ ์š”์ฒญ์„ ๋งŒ๋“ค๊ฑฐ๋‚˜ ๋˜๋Š” ๋Œ์–ด์˜ค๊ธฐ ์š”์ฒญ์— ๋Œ€ํ•œ ์ฃผ์„์„ ๋งŒ๋“ค ๋•Œ GitHub Actions ์›Œํฌํ”Œ๋กœ๋ฅผ ํŠธ๋ฆฌ๊ฑฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๊ฒฝ์šฐ Dependabot ์ด๋ฒคํŠธ์— ์˜ํ•ด ์›Œํฌํ”Œ๋กœ๊ฐ€ ํŠธ๋ฆฌ๊ฑฐ๋˜๋Š” ํ•œ ์›Œํฌํ”Œ๋กœ ํŒŒ์ผ(.github/workflows/*.yml)์—์„œ Dependabot ๋น„๋ฐ€์„ ์ฐธ์กฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋ฒ”์œ„

Dependabot ๋น„๋ฐ€์€ ๋‹ค์Œ์—์„œ ์ •์˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • ๋ฆฌํฌ์ง€ํ† ๋ฆฌ ์ˆ˜์ค€
  • ์กฐ์ง ์ˆ˜์ค€

์กฐ์ง ์ˆ˜์ค€์—์„œ ์„ค์ •ํ•  ๋•Œ Dependabot ๋น„๋ฐ€์€ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ ๊ฐ„์— ๊ณต์œ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋น„๋ฐ€์— ์•ก์„ธ์Šคํ•  ์ˆ˜ ์žˆ๋Š” ์กฐ์ง์˜ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ๋ฅผ ์ง€์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์•ก์„ธ์Šค ๊ถŒํ•œ

Dependabot ๋น„๋ฐ€์€ ์ข…์†์„ฑ์„ ์—…๋ฐ์ดํŠธํ•˜๊ธฐ ์œ„ํ•ด ํ”„๋ผ์ด๋น— ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ์— ์ธ์ฆํ•  ๋•Œ Dependabot์— ์˜ํ•ด ์•ก์„ธ์Šค๋ฉ๋‹ˆ๋‹ค.

Dependabot ๋น„๋ฐ€์€ GitHub Actions์ด ์›Œํฌํ”Œ๋กœ์— ๋Œ€ํ•œ ํŠธ๋ฆฌ๊ฑฐ ์ด๋ฒคํŠธ๋ฅผ ์‹œ์ž‘ํ•  ๋•Œ GitHub Actions ์›Œํฌํ”Œ๋กœ๋ฅผ ํ†ตํ•ด ์•ก์„ธ์Šค๋ฉ๋‹ˆ๋‹ค. ์ด๋Š” Dependabot์—์„œ ์›Œํฌํ”Œ๋กœ๋ฅผ ์‹œ์ž‘ํ•  ๋•Œ Dependabot ๋น„๋ฐ€๋งŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ณ , ์ž‘์—… ๋น„๋ฐ€์—๋Š” ์•ก์„ธ์Šคํ•  ์ˆ˜ ์—†๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์ด๋Ÿฌํ•œ ์›Œํฌํ”Œ๋กœ์— ํ•„์š”ํ•œ ๋ชจ๋“  ๋น„๋ฐ€์€ ์ž‘์—… ๋น„๋ฐ€์ด ์•„๋‹Œ Dependabot ๋น„๋ฐ€๋กœ ์ €์žฅํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. pull_request_target ์ด๋ฒคํŠธ์—๋Š” ์ถ”๊ฐ€ ๋ณด์•ˆ ์ œํ•œ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ œํ•œ ๋ฐ ์ œ์•ฝ์„ ์ฐธ์กฐํ•˜์„ธ์š”.

์‚ฌ์šฉ์ž ์•ก์„ธ์Šค ๊ถŒํ•œ

๋ฆฌํฌ์ง€ํ† ๋ฆฌ ์ˆ˜์ค€ ๋น„๋ฐ€:

  • ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์— ๋Œ€ํ•œ ๊ด€๋ฆฌ์ž ์•ก์„ธ์Šค ๊ถŒํ•œ์ด ์žˆ๋Š” ์‚ฌ์šฉ์ž๋Š” Dependabot ๋น„๋ฐ€์„ ๋งŒ๋“ค๊ณ  ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์— ๋Œ€ํ•œ ๊ณต๋™ ์ž‘์—…์ž ์•ก์„ธ์Šค ๊ถŒํ•œ์ด ์žˆ๋Š” ์‚ฌ์šฉ์ž๋Š” Dependabot์— ๋Œ€ํ•œ ๋น„๋ฐ€์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์กฐ์ง ์ˆ˜์ค€ ๋น„๋ฐ€:

  • ์กฐ์ง ์†Œ์œ ์ž๋Š” Dependabot ๋น„๋ฐ€์„ ๋งŒ๋“ค๊ณ  ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ๊ฐ ๋น„๋ฐ€์— ์•ก์„ธ์Šคํ•  ์ˆ˜ ์žˆ๋Š” ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์— ๋Œ€ํ•œ ๊ณต๋™ ์ž‘์—…์ž ์•ก์„ธ์Šค ๊ถŒํ•œ์ด ์žˆ๋Š” ์‚ฌ์šฉ์ž๋Š” Dependabot์— ๋Œ€ํ•œ ๋น„๋ฐ€์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ œํ•œ ์‚ฌํ•ญ

Dependabot์—์„œ ์‹œ์ž‘ํ•œ ์›Œํฌํ”Œ๋กœ์˜ ๊ฒฝ์šฐ pull_request_target ์ด๋ฒคํŠธ๋Š” ๋‹ค๋ฅธ ์ด๋ฒคํŠธ์™€ ๋‹ค๋ฅด๊ฒŒ ์ฒ˜๋ฆฌ๋ฉ๋‹ˆ๋‹ค. ์ด ์ด๋ฒคํŠธ์˜ ๊ฒฝ์šฐ ๋Œ์–ด์˜ค๊ธฐ ์š”์ฒญ์˜ ๊ธฐ๋ณธ ์ฐธ์กฐ๊ฐ€ Dependabot(github.event.pull_request.user.login == 'dependabot[bot]')์—์„œ ๋งŒ๋“ค์–ด์ง„ ๊ฒฝ์šฐ:

  • ์›Œํฌํ”Œ๋กœ๋Š” ์ฝ๊ธฐ ์ „์šฉ GITHUB_TOKEN์„ ์ˆ˜์‹ ํ•ฉ๋‹ˆ๋‹ค.
  • ์›Œํฌํ”Œ๋กœ์—์„œ๋Š” ๋น„๋ฐ€์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

์ด๋Ÿฌํ•œ ์ถ”๊ฐ€ ์ œํ•œ์€ Dependabot์—์„œ ๋งŒ๋“  ๋Œ์–ด์˜ค๊ธฐ ์š”์ฒญ์—์„œ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋Š” ์ž ์žฌ์ ์ธ ๋ณด์•ˆ ์œ„ํ—˜์„ ๋ฐฉ์ง€ํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋ฉ๋‹ˆ๋‹ค.

Dependabot ๋น„๋ฐ€์€ ํฌํฌ์— ์ „๋‹ฌ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์ž‘์—… ๋น„๋ฐ€

์ž‘์—… ๋น„๋ฐ€์€ API ํ‚ค, ์ธ์ฆ ํ† ํฐ ๋ฐ ๊ธฐํƒ€ ์ž๊ฒฉ ์ฆ๋ช…๊ณผ ๊ฐ™์€ ์ค‘์š”ํ•œ ์ •๋ณด๋ฅผ ์›Œํฌํ”Œ๋กœ์— ์ €์žฅํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

์‚ฌ์šฉ

์ž‘์—… ๋น„๋ฐ€์€ ์›Œํฌํ”Œ๋กœ ํŒŒ์ผ(.github/workflows/*.yml)์—์„œ ์ฐธ์กฐ๋ฉ๋‹ˆ๋‹ค.

๋ฒ”์œ„

๋‹ค์Œ ์œ„์น˜์—์„œ ์ž‘์—… ๋น„๋ฐ€์„ ์ •์˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • ๋ฆฌํฌ์ง€ํ† ๋ฆฌ ์ˆ˜์ค€
  • ํ™˜๊ฒฝ ์ˆ˜์ค€
  • ์กฐ์ง ์ˆ˜์ค€

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

์•ก์„ธ์Šค ๊ถŒํ•œ

์ž‘์—… ๋น„๋ฐ€์€ GitHub Actions ์›Œํฌํ”Œ๋กœ ๋‚ด์—์„œ๋งŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ž‘์—…์—์„œ ์‹คํ–‰ ์ค‘์ž„์—๋„ ๋ถˆ๊ตฌํ•˜๊ณ  Dependabot์€ ์ž‘์—… ๋น„๋ฐ€์— ์•ก์„ธ์Šคํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

Dependabot์—์„œ ์‹œ์ž‘ํ•œ ์›Œํฌํ”Œ๋กœ์˜ ๊ฒฝ์šฐ ์ž‘์—… ๋น„๋ฐ€์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ์›Œํฌํ”Œ๋กœ์— ์•ก์„ธ์Šคํ•˜๋ ค๋ฉด ์ด๋Ÿฌํ•œ ์›Œํฌํ”Œ๋กœ ๋น„๋ฐ€์ด Dependabot ๋น„๋ฐ€๋กœ ์ €์žฅ๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์ž‘์—… ๋น„๋ฐ€์„ ์ €์žฅํ•˜๋Š” ์œ„์น˜์— ๋”ฐ๋ผ ์ ‘๊ทผ์„ฑ์ด ๊ฒฐ์ •๋ฉ๋‹ˆ๋‹ค.

  • ๋ฆฌํฌ์ง€ํ† ๋ฆฌ ๋น„๋ฐ€: ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์˜ ๋ชจ๋“  ์›Œํฌํ”Œ๋กœ๊ฐ€ ๋น„๋ฐ€์— ์•ก์„ธ์Šคํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ํ™˜๊ฒฝ ๋น„๋ฐ€: ๋น„๋ฐ€์€ ํŠน์ • ํ™˜๊ฒฝ์„ ์ฐธ์กฐํ•˜๋Š” ์ž‘์—…์œผ๋กœ ์ œํ•œ๋ฉ๋‹ˆ๋‹ค.
  • ์กฐ์ง ๋น„๋ฐ€: ์กฐ์ง์—์„œ ์•ก์„ธ์Šค ๊ถŒํ•œ์„ ๋ถ€์—ฌ๋ฐ›์€ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์˜ ๋ชจ๋“  ์›Œํฌํ”Œ๋กœ๋Š” ์กฐ์ง ๋น„๋ฐ€์— ์•ก์„ธ์Šคํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์‚ฌ์šฉ์ž ์•ก์„ธ์Šค ๊ถŒํ•œ

๋ฆฌํฌ์ง€ํ† ๋ฆฌ ์ˆ˜์ค€ ๋ฐ ํ™˜๊ฒฝ ๋น„๋ฐ€:

  • ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์— ๋Œ€ํ•œ ๊ด€๋ฆฌ์ž ์•ก์„ธ์Šค ๊ถŒํ•œ์ด ์žˆ๋Š” ์‚ฌ์šฉ์ž๋Š” ์ž‘์—… ๋น„๋ฐ€์„ ๋งŒ๋“ค๊ณ  ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์— ๋Œ€ํ•œ ๊ณต๋™ ์ž‘์—…์ž ์•ก์„ธ์Šค ๊ถŒํ•œ์ด ์žˆ๋Š” ์‚ฌ์šฉ์ž๋Š” ๋น„๋ฐ€์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์กฐ์ง ์ˆ˜์ค€ ๋น„๋ฐ€:

  • ์กฐ์ง ์†Œ์œ ์ž๋Š” ์ž‘์—… ๋น„๋ฐ€์„ ๋งŒ๋“ค๊ณ  ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ๊ฐ ๋น„๋ฐ€์— ๋Œ€ํ•œ ์•ก์„ธ์Šค ๊ถŒํ•œ์ด ์žˆ๋Š” ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์— ๋Œ€ํ•œ ๊ณต๋™ ์ž‘์—…์ž ์•ก์„ธ์Šค ๊ถŒํ•œ์ด ์žˆ๋Š” ์‚ฌ์šฉ์ž๋Š” ๋น„๋ฐ€์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ œํ•œ ์‚ฌํ•ญ

  • Dependabot์—์„œ ์‹œ์ž‘ํ•œ ์›Œํฌํ”Œ๋กœ์—๋Š” ์ž‘์—… ๋น„๋ฐ€์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.
  • ์ž‘์—… ๋น„๋ฐ€์€ ํฌํฌ์—์„œ ๋Œ์–ด์˜ค๊ธฐ ์š”์ฒญ์— ์˜ํ•ด ํŠธ๋ฆฌ๊ฑฐ๋˜๋Š” ์›Œํฌํ”Œ๋กœ์— ์ „๋‹ฌ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
  • GitHub Actions๋Š” ์›Œํฌํ”Œ๋กœ ๋กœ๊ทธ์— ์ธ์‡„๋˜๋Š” ๋ชจ๋“  GitHub ๋น„๋ฐ€์˜ ๋‚ด์šฉ์„ ์ž๋™์œผ๋กœ ์ˆ˜์ •ํ•ฉ๋‹ˆ๋‹ค.
  • ์ตœ๋Œ€ 1,000๊ฐœ์˜ ์กฐ์ง ๋น„๋ฐ€, 100๊ฐœ์˜ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ ๋น„๋ฐ€ ๋ฐ 100๊ฐœ์˜ ํ™˜๊ฒฝ ๋น„๋ฐ€์„ ์ €์žฅํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋น„๋ฐ€์˜ ํฌ๊ธฐ๋Š” 48KB๋กœ ์ œํ•œ๋ฉ๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ ๋น„๋ฐ€์— ๋Œ€ํ•œ ์ œํ•œ์„ ์ฐธ์กฐํ•˜์„ธ์š”.

Codespaces ๋น„๋ฐ€

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

์‚ฌ์šฉ

Codespaces ๋น„๋ฐ€์€ Codespaces ๊ฐœ๋ฐœ ์ปจํ…Œ์ด๋„ˆ ๊ตฌ์„ฑ(devcontainer.json)์—์„œ ์ฐธ์กฐ๋ฉ๋‹ˆ๋‹ค.

๋ฒ”์œ„

Codespaces ๋น„๋ฐ€์€ ๋‹ค์Œ์—์„œ ์ •์˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • ์‚ฌ์šฉ์ž ๊ณ„์ • ์ˆ˜์ค€
  • ๋ฆฌํฌ์ง€ํ† ๋ฆฌ ์ˆ˜์ค€
  • ์กฐ์ง ์ˆ˜์ค€

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

์•ก์„ธ์Šค ๊ถŒํ•œ

Codespaces ๋น„๋ฐ€์€ Codespaces์—์„œ๋งŒ ์•ก์„ธ์Šคํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

GitHub Actions์—์„œ๋Š” Codespaces ๋น„๋ฐ€์— ์•ก์„ธ์Šคํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

์‚ฌ์šฉ์ž ์•ก์„ธ์Šค ๊ถŒํ•œ

์‚ฌ์šฉ์ž ๊ณ„์ • ์ˆ˜์ค€ ๋น„๋ฐ€:

  • Codespaces ๋น„๋ฐ€์€ ํ•ด๋‹น ๋น„๋ฐ€์— ๋Œ€ํ•œ ์•ก์„ธ์Šค ๊ถŒํ•œ์ด ์žˆ๋Š” ๋ฆฌํฌ์ง€ํ† ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋งŒ๋“œ๋Š” ๋ชจ๋“  ์ฝ”๋“œ์ŠคํŽ˜์ด์Šค์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋ฆฌํฌ์ง€ํ† ๋ฆฌ ์ˆ˜์ค€ ๋น„๋ฐ€:

  • ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์— ๋Œ€ํ•œ ๊ด€๋ฆฌ์ž ์•ก์„ธ์Šค ๊ถŒํ•œ์ด ์žˆ๋Š” ์‚ฌ์šฉ์ž๋Š” Codespaces ๋น„๋ฐ€์„ ๋งŒ๋“ค๊ณ  ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์— ๋Œ€ํ•œ ๊ณต๋™ ์ž‘์—…์ž ์•ก์„ธ์Šค ๊ถŒํ•œ์ด ์žˆ๋Š” ์‚ฌ์šฉ์ž๋Š” ๋น„๋ฐ€์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์กฐ์ง ์ˆ˜์ค€ ๋น„๋ฐ€:

  • ์กฐ์ง ์†Œ์œ ์ž๋Š” Codespaces ๋น„๋ฐ€์„ ๋งŒ๋“ค๊ณ  ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ๊ฐ ๋น„๋ฐ€์— ๋Œ€ํ•œ ์•ก์„ธ์Šค ๊ถŒํ•œ์ด ์žˆ๋Š” ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์— ๋Œ€ํ•œ ๊ณต๋™ ์ž‘์—…์ž ์•ก์„ธ์Šค ๊ถŒํ•œ์ด ์žˆ๋Š” ์‚ฌ์šฉ์ž๋Š” ๋น„๋ฐ€์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ œํ•œ ์‚ฌํ•ญ

  • GitHub Codespaces์— ์ตœ๋Œ€ 100๊ฐœ์˜ ๋น„๋ฐ€์„ ์ €์žฅํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ๋น„๋ฐ€์˜ ํฌ๊ธฐ๋Š” 48KB๋กœ ์ œํ•œ๋ฉ๋‹ˆ๋‹ค.
  • Codespaces ๋น„๋ฐ€์€ ํฌํฌ์— ์ „๋‹ฌ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์ถ”๊ฐ€ ์ฐธ๊ณ  ์ž๋ฃŒ