Skip to main content

๋ฐฐํฌ ํ™˜๊ฒฝ ๊ด€๋ฆฌ

๋ฐฐํฌ ๋ณดํ˜ธ ๊ทœ์น™์„ ์‚ฌ์šฉํ•˜์—ฌ ํ™˜๊ฒฝ์„ ๋งŒ๋“ค๊ณ  ํ•ด๋‹น ํ™˜๊ฒฝ์„ ๋ณดํ˜ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ™˜๊ฒฝ์„ ์ฐธ์กฐํ•˜๋Š” ์ž‘์—…์€ ํ™˜๊ฒฝ์— ๋Œ€ํ•œ ๋ชจ๋“  ๋ณดํ˜ธ ๊ทœ์น™์„ ๋”ฐ๋ผ์•ผ ํ™˜๊ฒฝ์˜ ๋น„๋ฐ€์„ ์‹คํ–‰ํ•˜๊ฑฐ๋‚˜ ์•ก์„ธ์Šคํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋ˆ„๊ฐ€ ์ด ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‚˜์š”?

Repository owners

Environments, environment secrets, and deployment protection rules are available in public repositories for all current GitHub plans. They are not available on legacy plans, such as Bronze, Silver, or Gold. For access to environments, environment secrets, and deployment branches in private or internal repositories, you must use GitHub Pro, GitHub Team, or GitHub Enterprise. If you are on a GitHub Free, GitHub Pro, or GitHub Team plan, other deployment protection rules, such as a wait timer or required reviewers, are only available for public repositories.

ํ•„์ˆ˜ ์กฐ๊ฑด

์ฐธ๊ณ  ํ•ญ๋ชฉ

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

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

ํ™˜๊ฒฝ ๋งŒ๋“ค๊ธฐ

๊ฐœ์ธ ๊ณ„์ • ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์—์„œ ํ™˜๊ฒฝ์„ ๊ตฌ์„ฑํ•˜๋ ค๋ฉด ๋ฆฌํฌ์ง€ํ† ๋ฆฌ ์†Œ์œ ์ž์—ฌ์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์กฐ์ง ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์—์„œ ํ™˜๊ฒฝ์„ ๊ตฌ์„ฑํ•˜๋ ค๋ฉด admin ์•ก์„ธ์Šค ๊ถŒํ•œ์ด ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์ฐธ๊ณ  ํ•ญ๋ชฉ

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

  2. ๋ฆฌํฌ์ง€ํ† ๋ฆฌ ์ด๋ฆ„ ์•„๋ž˜์—์„œ Settings๋ฅผ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค. "์„ค์ •" ํƒญ์ด ํ‘œ์‹œ๋˜์ง€ ์•Š์œผ๋ฉด ๋“œ๋กญ๋‹ค์šด ๋ฉ”๋‰ด๋ฅผ ์„ ํƒํ•œ ๋‹ค์Œ ์„ค์ •์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

    ํƒญ์„ ๋ณด์—ฌ ์ฃผ๋Š” ๋ฆฌํฌ์ง€ํ† ๋ฆฌ ํ—ค๋”์˜ ์Šคํฌ๋ฆฐ์ƒท. "์„ค์ •" ํƒญ์ด ์ง„ํ•œ ์ฃผํ™ฉ์ƒ‰ ์œค๊ณฝ์„ ์œผ๋กœ ๊ฐ•์กฐ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.

  3. ์™ผ์ชฝ ์‚ฌ์ด๋“œ๋ฐ”์—์„œ ํ™˜๊ฒฝ์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

  4. ์ƒˆ ํ™˜๊ฒฝ์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

  5. ํ™˜๊ฒฝ์˜ ์ด๋ฆ„์„ ์ž…๋ ฅํ•œ ๋‹ค์Œ ํ™˜๊ฒฝ ๊ตฌ์„ฑ์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค. ํ™˜๊ฒฝ ์ด๋ฆ„์€ ๋Œ€/์†Œ๋ฌธ์ž๋ฅผ ๊ตฌ๋ถ„ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ํ™˜๊ฒฝ ์ด๋ฆ„์€ 255์ž๋ฅผ ์ดˆ๊ณผํ•˜์ง€ ์•Š์•„์•ผ ํ•˜๋ฉฐ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ ๋‚ด์—์„œ ๊ณ ์œ ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

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

    1. ํ•„์ˆ˜ ๊ฒ€ํ† ์ž๋ฅผ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.
    2. ์ตœ๋Œ€ 6๋ช… ๋˜๋Š” ํŒ€์„ ์ž…๋ ฅํ•ฉ๋‹ˆ๋‹ค. ์ž‘์—…์„ ๊ณ„์†ํ•˜๋ ค๋ฉด ํ•„์ˆ˜ ๊ฒ€ํ† ์ž ์ค‘ ํ•œ ๋ช…๋งŒ ์ž‘์—…์„ ์Šน์ธํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.
    3. ํ•„์š”์— ๋”ฐ๋ผ ์‚ฌ์šฉ์ž๊ฐ€ ํŠธ๋ฆฌ๊ฑฐํ•œ ์›Œํฌํ”Œ๋กœ ์‹คํ–‰์„ ์Šน์ธํ•˜์ง€ ๋ชปํ•˜๋„๋ก ํ•˜๋ ค๋ฉด ์ž์ฒด ๊ฒ€ํ†  ๋ฐฉ์ง€๋ฅผ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.
    4. ๋ณดํ˜ธ ๊ทœ์น™ ์ €์žฅ์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.
  7. ํ•„์š”์— ๋”ฐ๋ผ ์ด ํ™˜๊ฒฝ์„ ์‚ฌ์šฉํ•˜๋Š” ์›Œํฌํ”Œ๋กœ ์ž‘์—…์„ ๊ณ„์† ์ง„ํ–‰ํ•˜๋„๋ก ํ—ˆ์šฉํ•˜๊ธฐ ์ „์— ๋Œ€๊ธฐํ•  ์‹œ๊ฐ„์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ ๋ฐฐํฌ ๋ฐ ํ™˜๊ฒฝ์„(๋ฅผ) ์ฐธ์กฐํ•˜์„ธ์š”.

    1. ๋Œ€๊ธฐ ํƒ€์ด๋จธ๋ฅผ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.
    2. ๋Œ€๊ธฐํ•  ์‹œ๊ฐ„(๋ถ„)์„ ์ž…๋ ฅํ•ฉ๋‹ˆ๋‹ค.
    3. ๋ณดํ˜ธ ๊ทœ์น™ ์ €์žฅ์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.
  8. ํ•„์š”์— ๋”ฐ๋ผ ๊ตฌ์„ฑ๋œ ๋ณดํ˜ธ ๊ทœ์น™์„ ๋ฐ”์ดํŒจ์Šคํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ ๋ฐฐํฌ ๋ฐ ํ™˜๊ฒฝ์„(๋ฅผ) ์ฐธ์กฐํ•˜์„ธ์š”.

    1. ๊ด€๋ฆฌ์ž๊ฐ€ ๊ตฌ์„ฑ๋œ ๋ณดํ˜ธ ๊ทœ์น™์„ ๋ฌด์‹œํ•˜๋„๋ก ํ—ˆ์šฉ์„ ์„ ํƒ ์ทจ์†Œํ•ฉ๋‹ˆ๋‹ค.
    2. ๋ณดํ˜ธ ๊ทœ์น™ ์ €์žฅ์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.
  9. ํ•„์š”์— ๋”ฐ๋ผ GitHub Apps์„(๋ฅผ) ์‚ฌ์šฉํ•˜์—ฌ ๋งŒ๋“  ์‚ฌ์šฉ์ž ์ง€์ • ๋ฐฐํฌ ๋ณดํ˜ธ ๊ทœ์น™์„ ์‚ฌ์šฉํ•˜๋„๋ก ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ ๋ฐฐํฌ ๋ฐ ํ™˜๊ฒฝ์„(๋ฅผ) ์ฐธ์กฐํ•˜์„ธ์š”.

    1. ์‚ฌ์šฉํ•˜๋„๋ก ์„ค์ •ํ•  ์‚ฌ์šฉ์ž ์ง€์ • ๋ณดํ˜ธ ๊ทœ์น™์„ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.
    2. ๋ณดํ˜ธ ๊ทœ์น™ ์ €์žฅ์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.
  10. ํ•„์š”์— ๋”ฐ๋ผ ์ด ํ™˜๊ฒฝ์— ๋ฐฐํฌํ•  ์ˆ˜ ์žˆ๋Š” ๋ถ„๊ธฐ ๋ฐ ํƒœ๊ทธ๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ ๋ฐฐํฌ ๋ฐ ํ™˜๊ฒฝ์„(๋ฅผ) ์ฐธ์กฐํ•˜์„ธ์š”.

    1. ๋ฐฐํฌ ๋ถ„๊ธฐ ๋“œ๋กญ๋‹ค์šด์—์„œ ์›ํ•˜๋Š” ์˜ต์…˜์„ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.

    2. Selected branches and tags๋ฅผ ์„ ํƒํ•˜์—ฌ ์ƒˆ ๊ทœ์น™์„ ์ถ”๊ฐ€ํ•˜๋ ค๋ฉด Add deployment branch or tag rule๋ฅผ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

    3. ์ ์šฉํ•  ๊ทœ์น™์— ๋”ฐ๋ผ "Ref type" ๋“œ๋กญ๋‹ค์šด ๋ฉ”๋‰ด์—์„œ Branch ๋˜๋Š” Tag๋ฅผ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

    4. ํ—ˆ์šฉํ•˜๋ ค๋Š” ๋ถ„๊ธฐ ๋˜๋Š” ํƒœ๊ทธ์˜ ์ด๋ฆ„ ํŒจํ„ด์„ ์ž…๋ ฅํ•ฉ๋‹ˆ๋‹ค.

      ์ฐธ๊ณ  ํ•ญ๋ชฉ

      ์ด๋ฆ„ ํŒจํ„ด์€ ๋ถ„๊ธฐ๋‚˜ ํƒœ๊ทธ์— ๋Œ€ํ•ด ๊ฐœ๋ณ„์ ์œผ๋กœ ๊ตฌ์„ฑํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

    5. ๊ทœ์น™ ์ถ”๊ฐ€๋ฅผ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

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

    1. ํ™˜๊ฒฝ ๋น„๋ฐ€์—์„œ ๋น„๋ฐ€ ์ถ”๊ฐ€๋ฅผ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.
    2. ๋น„๋ฐ€ ์ด๋ฆ„์„ ์ž…๋ ฅํ•ฉ๋‹ˆ๋‹ค.
    3. ๋น„๋ฐ€ ๊ฐ’์„ ์ž…๋ ฅํ•ฉ๋‹ˆ๋‹ค.
    4. ๋น„๋ฐ€ ์ถ”๊ฐ€๋ฅผ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.
  12. ํ•„์š”์— ๋”ฐ๋ผ ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋ฅผ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๋ณ€์ˆ˜๋Š” ํ™˜๊ฒฝ์„ ์‚ฌ์šฉํ•˜๋Š” ์›Œํฌํ”Œ๋กœ ์ž‘์—…์—์„œ๋งŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ vars ์ปจํ…์ŠคํŠธ๋ฅผ ํ†ตํ•ด์„œ๋งŒ ์•ก์„ธ์Šคํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ ๋ฐฐํฌ ๋ฐ ํ™˜๊ฒฝ์„(๋ฅผ) ์ฐธ์กฐํ•˜์„ธ์š”.

    1. ํ™˜๊ฒฝ ๋ณ€์ˆ˜์—์„œ** ๋ณ€์ˆ˜ ์ถ”๊ฐ€**๋ฅผ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.
    2. ๋ณ€์ˆ˜ ์ด๋ฆ„์„ ์ž…๋ ฅํ•ฉ๋‹ˆ๋‹ค.
    3. ๋ณ€์ˆ˜ ๊ฐ’์„ ์ž…๋ ฅํ•ฉ๋‹ˆ๋‹ค.
    4. ๋ณ€์ˆ˜ ์ถ”๊ฐ€๋ฅผ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

REST API๋ฅผ ํ†ตํ•ด ํ™˜๊ฒฝ์„ ๋งŒ๋“ค๊ณ  ๊ตฌ์„ฑํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ Deployment Environments์— ๋Œ€ํ•œ REST API ์—”๋“œํฌ์ธํŠธ, GitHub Actions ๋น„๋ฐ€์— ๋Œ€ํ•œ REST API ์—”๋“œํฌ์ธํŠธ, GitHub Actions ๋ณ€์ˆ˜์— ๋Œ€ํ•œ REST API ์—”๋“œํฌ์ธํŠธ, ๋ฐฐํฌ ๋ถ„๊ธฐ ์ •์ฑ…์— ๋Œ€ํ•œ REST API ์—”๋“œํฌ์ธํŠธ์„(๋ฅผ) ์ฐธ์กฐํ•˜์„ธ์š”.

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

ํ™˜๊ฒฝ ์‚ญ์ œ

๊ฐœ์ธ ๊ณ„์ • ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์—์„œ ํ™˜๊ฒฝ์„ ๊ตฌ์„ฑํ•˜๋ ค๋ฉด ๋ฆฌํฌ์ง€ํ† ๋ฆฌ ์†Œ์œ ์ž์—ฌ์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์กฐ์ง ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์—์„œ ํ™˜๊ฒฝ์„ ๊ตฌ์„ฑํ•˜๋ ค๋ฉด admin ์•ก์„ธ์Šค ๊ถŒํ•œ์ด ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

ํ™˜๊ฒฝ์„ ์‚ญ์ œํ•˜๋ฉด ํ™˜๊ฒฝ๊ณผ ์—ฐ๊ฒฐ๋œ ๋ชจ๋“  ๋น„๋ฐ€ ๋ฐ ๋ณดํ˜ธ ๊ทœ์น™์ด ์‚ญ์ œ๋ฉ๋‹ˆ๋‹ค. ์‚ญ์ œ๋œ ํ™˜๊ฒฝ์˜ ๋ณดํ˜ธ ๊ทœ์น™์œผ๋กœ ์ธํ•ด ํ˜„์žฌ ๋Œ€๊ธฐ ์ค‘์ธ ๋ชจ๋“  ์ž‘์—…์€ ์ž๋™์œผ๋กœ ์‹คํŒจํ•ฉ๋‹ˆ๋‹ค.

  1. GitHub์—์„œ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์˜ ๊ธฐ๋ณธ ํŽ˜์ด์ง€๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค.

  2. ๋ฆฌํฌ์ง€ํ† ๋ฆฌ ์ด๋ฆ„ ์•„๋ž˜์—์„œ Settings๋ฅผ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค. "์„ค์ •" ํƒญ์ด ํ‘œ์‹œ๋˜์ง€ ์•Š์œผ๋ฉด ๋“œ๋กญ๋‹ค์šด ๋ฉ”๋‰ด๋ฅผ ์„ ํƒํ•œ ๋‹ค์Œ ์„ค์ •์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

    ํƒญ์„ ๋ณด์—ฌ ์ฃผ๋Š” ๋ฆฌํฌ์ง€ํ† ๋ฆฌ ํ—ค๋”์˜ ์Šคํฌ๋ฆฐ์ƒท. "์„ค์ •" ํƒญ์ด ์ง„ํ•œ ์ฃผํ™ฉ์ƒ‰ ์œค๊ณฝ์„ ์œผ๋กœ ๊ฐ•์กฐ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.

  3. ์™ผ์ชฝ ์‚ฌ์ด๋“œ๋ฐ”์—์„œ ํ™˜๊ฒฝ์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

  4. ์‚ญ์ œํ•˜๋ ค๋Š” ํ™˜๊ฒฝ ์˜†์— ์žˆ๋Š” ์„(๋ฅผ) ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

  5. ์ดํ•ดํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด ํ™˜๊ฒฝ์„ ์‚ญ์ œํ•ฉ๋‹ˆ๋‹ค๋ฅผ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

REST API๋ฅผ ํ†ตํ•ด ํ™˜๊ฒฝ์„ ์‚ญ์ œํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์— ๋Œ€ํ•œ REST API ์—”๋“œํฌ์ธํŠธ์„(๋ฅผ) ์ฐธ์กฐํ•˜์„ธ์š”.

ํ™˜๊ฒฝ๊ณผ ๋ฐฐํฌ ๊ฐ„์˜ ๊ด€๊ณ„

ํ™˜๊ฒฝ์„ ์ฐธ์กฐํ•˜๋Š” ์›Œํฌํ”Œ๋กœ ์ž‘์—…์ด ์‹คํ–‰๋˜๋ฉด ํ™˜๊ฒฝ ์ด๋ฆ„์œผ๋กœ ์„ค์ •๋œ environment ์†์„ฑ์ด ์žˆ๋Š” ๋ฐฐํฌ ๊ฐœ์ฒด๋ฅผ ๋งŒ๋“ญ๋‹ˆ๋‹ค. ์›Œํฌํ”Œ๋กœ๊ฐ€ ์ง„ํ–‰๋จ์— ๋”ฐ๋ผ ํ™˜๊ฒฝ ์ด๋ฆ„์œผ๋กœ ์„ค์ •๋œ environment ์†์„ฑ, ํ™˜๊ฒฝ์˜ URL๋กœ ์„ค์ •๋œ environment_url ์†์„ฑ(์›Œํฌํ”Œ๋กœ์— ์ง€์ •๋œ ๊ฒฝ์šฐ), ์ž‘์—…์˜ ์ƒํƒœ๋กœ ์„ค์ •๋œ state ์†์„ฑ์ด ์žˆ๋Š” ๋ฐฐํฌ ์ƒํƒœ ๊ฐœ์ฒด๋„ ๋งŒ๋“ญ๋‹ˆ๋‹ค.

REST API ๋˜๋Š” GraphQL API๋ฅผ ํ†ตํ•ด ํ•ด๋‹น ๊ฐœ์ฒด์— ์•ก์„ธ์Šคํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ•ด๋‹น ์›นํ›„ํฌ ์ด๋ฒคํŠธ๋ฅผ ๊ตฌ๋…ํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์— ๋Œ€ํ•œ REST API ์—”๋“œํฌ์ธํŠธ, ๊ฐœ์ฒด(GraphQL API), ์›นํ›„ํฌ ์ด๋ฒคํŠธ ๋ฐ ํŽ˜์ด๋กœ๋“œ์„(๋ฅผ) ์ฐธ์กฐํ•˜์„ธ์š”.

๋‹ค์Œ ๋‹จ๊ณ„

GitHub Actions์€(๋Š”) ๋ฐฐํฌ๋ฅผ ๊ด€๋ฆฌํ•˜๊ธฐ ์œ„ํ•œ ๋ช‡ ๊ฐ€์ง€ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ GitHub Actions๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ฐฐํฌ์„(๋ฅผ) ์ฐธ์กฐํ•˜์„ธ์š”.