Skip to main content

๋ฆฌํฌ์ง€ํ† ๋ฆฌ์— ๋Œ€ํ•œ codespace ๋งŒ๋“ค๊ธฐ

๋ฆฌํฌ์ง€ํ† ๋ฆฌ์˜ ๋ถ„๊ธฐ์— ๋Œ€ํ•œ codespace๋ฅผ ๋งŒ๋“ค์–ด ์˜จ๋ผ์ธ์œผ๋กœ ๊ฐœ๋ฐœํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋ฆฌํฌ์ง€ํ† ๋ฆฌ์— ๋Œ€ํ•œ codespace ๋งŒ๋“ค๊ธฐ ์ •๋ณด

Visual Studio Code์˜ GitHub์—์„œ ์ƒ์„ฑํ•˜๊ฑฐ๋‚˜ GitHub CLI์„(๋ฅผ) ์‚ฌ์šฉํ•˜์—ฌ codespace๋ฅผ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๋ฌธ์„œ์˜ ํƒญ์„ ์‚ฌ์šฉํ•˜์—ฌ codespace๋ฅผ ๋งŒ๋“œ๋Š” ์ด๋Ÿฌํ•œ ๊ฐ ๋ฐฉ๋ฒ•์— ๋Œ€ํ•œ ์ง€์นจ์„ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค.

GitHub Codespaces์„(๋ฅผ) ๊ฐœ์ธ GitHub ๊ณ„์ •์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ ๋ฌด๋ฃŒ ๋ฐ Pro ํ”Œ๋žœ์˜ ๊ณ„์ •์— ๋งค์›” ๋ฌด๋ฃŒ ์‚ฌ์šฉ ํ• ๋‹น๋Ÿ‰์ด ํฌํ•จ๋ฉ๋‹ˆ๋‹ค. ๊ฒฐ์ œ ์„ธ๋ถ€ ์ •๋ณด๋ฅผ ์ œ๊ณตํ•˜๊ณ  ์ง€์ถœ ํ•œ๋„๋ฅผ ์„ค์ •ํ•˜์—ฌ GitHub Codespaces์„(๋ฅผ) ์›”๋ณ„ ํฌํ•จ๋œ ์Šคํ† ๋ฆฌ์ง€ ๋ฐ ์ปดํ“จํŒ… ์‚ฌ์šฉ๋Ÿ‰ ์ด์ƒ์œผ๋กœ ๊ณ„์† ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. GitHub Codespaces ์ฒญ๊ตฌ์„(๋ฅผ) ์ฐธ์กฐํ•˜์„ธ์š”.

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

์กฐ์ง ์†Œ์œ  ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์—์„œ codespace๋ฅผ ๋งŒ๋“œ๋Š” ๊ธฐ๋Šฅ์€ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์˜ ๊ฐ€์‹œ์„ฑ๊ณผ ์กฐ์ง ๋˜๋Š” ์ƒ์œ„ ๊ธฐ์—…์˜ ์„ค์ •์„ ๋น„๋กฏํ•œ ์—ฌ๋Ÿฌ ์š”์ธ์— ๋”ฐ๋ผ ๋‹ฌ๋ผ์ง‘๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ Codespaces ๋งŒ๋“ค๊ธฐ ๋ฐ ์‚ญ์ œ ๋ฌธ์ œ ํ•ด๊ฒฐ์„(๋ฅผ) ์ฐธ์กฐํ•˜์„ธ์š”.

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

๋ฆฌํฌ์ง€ํ† ๋ฆฌ์—์„œ codespace๋ฅผ ๋งŒ๋“œ๋Š” ๊ฒฝ์šฐ codespace๋Š” ๋น„์–ด ์žˆ์„ ์ˆ˜ ์—†๋Š” ํŠน์ • ๋ถ„๊ธฐ์™€ ์—ฐ๊ฒฐ๋ฉ๋‹ˆ๋‹ค. ๋ฆฌํฌ์ง€ํ† ๋ฆฌ ๋˜๋Š” ๋ถ„๊ธฐ๋‹น ๋‘˜ ์ด์ƒ์˜ codespace๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

"๋‚ด codespaces" ํŽ˜์ด์ง€์—์„œ ์ž์‹ ์ด ๋งŒ๋“  ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ๋ชจ๋“  codespace๋ฅผ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ํŽ˜์ด์ง€๋ฅผ ํ‘œ์‹œํ•˜๋ ค๋ฉด GitHub์˜ ์™ผ์ชฝ ์œ„ ๋ชจ์„œ๋ฆฌ์—์„œ ์„(๋ฅผ) ์„ ํƒํ•œ ๋‹ค์Œ Codespaces๋ฅผ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค. ์ด๋ ‡๊ฒŒ ํ•˜๋ฉด github.com/codespaces๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค.

Codespace ์ƒ์„ฑ ํ”„๋กœ์„ธ์Šค

Codespace๋ฅผ ๋งŒ๋“œ๋Š” ๊ฒฝ์šฐ ๊ฐœ๋ฐœ ํ™˜๊ฒฝ์„ ๋งŒ๋“ค๊ณ  ์—ฐ๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ์—ฌ๋Ÿฌ ๋‹จ๊ณ„๊ฐ€ ์ˆ˜ํ–‰๋ฉ๋‹ˆ๋‹ค.

  • 1๋‹จ๊ณ„: VM ๋ฐ ์Šคํ† ๋ฆฌ์ง€๊ฐ€ codespace์— ํ• ๋‹น๋ฉ๋‹ˆ๋‹ค.
  • 2๋‹จ๊ณ„: ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ์ƒ์„ฑ๋˜๊ณ  ๋ฆฌํฌ์ง€ํ† ๋ฆฌ๊ฐ€ ๋ณต์ œ๋ฉ๋‹ˆ๋‹ค.
  • 3๋‹จ๊ณ„: Codespace์— ์—ฐ๊ฒฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • 4๋‹จ๊ณ„: Codespace์—์„œ ์ƒ์„ฑ ํ›„ ์„ค์ •์„ ๊ณ„์†ํ•ฉ๋‹ˆ๋‹ค.

Codespace๋ฅผ ๋งŒ๋“ค ๋•Œ ์ˆ˜ํ–‰๋˜๋Š” ์ž‘์—…์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์€ GitHub Codespaces์— ๋Œ€ํ•œ ์‹ฌ์ธต ๋ถ„์„์„(๋ฅผ) ์ฐธ์กฐํ•˜์„ธ์š”.

codespace์˜ ์ˆ˜๋ช… ์ฃผ๊ธฐ์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์€ codespace ์ˆ˜๋ช… ์ฃผ๊ธฐ ์ดํ•ด์„(๋ฅผ) ์ฐธ์กฐํ•˜์„ธ์š”.

Codespace์— Git ํ›„ํฌ๋ฅผ ์‚ฌ์šฉํ•˜๋ ค๋ฉด devcontainer.json ์ˆ˜๋ช… ์ฃผ๊ธฐ ์Šคํฌ๋ฆฝํŠธ(์˜ˆ: postCreateCommand)๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ›„ํฌ๋ฅผ ์„ค์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ํ•ญ๋ชฉ์€ ์œ„์˜ 4๋‹จ๊ณ„์—์„œ ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค. ๊ฐœ๋ฐœ ์ปจํ…Œ์ด๋„ˆ ์ˆ˜๋ช… ์ฃผ๊ธฐ ์Šคํฌ๋ฆฝํŠธ์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์€ ๊ฐœ๋ฐœ ์ปจํ…Œ์ด๋„ˆ ์›น์‚ฌ์ดํŠธ์˜ ๊ฐœ๋ฐœ ์ปจํ…Œ์ด๋„ˆ ์‚ฌ์–‘์„ ์ฐธ์กฐํ•˜์„ธ์š”. ๋ฆฌํฌ์ง€ํ† ๋ฆฌ๊ฐ€ ๋ณต์ œ๋œ ํ›„ codespace์— dev ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ์ƒ์„ฑ๋˜๋ฏ€๋กœ ์ปจํ…Œ์ด๋„ˆ ์ด๋ฏธ์ง€์—์„œ ๊ตฌ์„ฑ๋œ git ํ…œํ”Œ๋ฆฟ ๋””๋ ‰ํ„ฐ๋ฆฌ๋Š” codespace์— ์ ์šฉ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋Œ€์‹ , codespace๊ฐ€ ์ƒ์„ฑ๋œ ๋‹ค์Œ ํ›„ํฌ๋ฅผ ์„ค์น˜ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

VS Code๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ codespace์—์„œ ๊ฐœ๋ฐœํ•˜๋Š” ๋™์•ˆ ์ฝ”๋“œ๋ฅผ ํŽธ์ง‘ํ•˜๊ณ , ๋””๋ฒ„๊ทธํ•˜๊ณ , Git ๋ช…๋ น์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ VS Code ์„ค๋ช…์„œ๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

๋ฆฌํฌ์ง€ํ† ๋ฆฌ ๊ด€๋ฆฌ์ž๋Š” codespace ๋งŒ๋“ค๊ธฐ ์†๋„๋ฅผ ๋†’์ด๊ธฐ ์œ„ํ•ด ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์—์„œ GitHub Codespaces ์‚ฌ์ „ ๋นŒ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜๋„๋ก ์„ค์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ GitHub Codespaces ์‚ฌ์ „ ๋นŒ๋“œ ๊ด€๋ จ ์ •๋ณด์„(๋ฅผ) ์ฐธ์กฐํ•˜์„ธ์š”.

๋ฆฌํฌ์ง€ํ† ๋ฆฌ์— ๋Œ€ํ•œ codespace ๋งŒ๋“ค๊ธฐ

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

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

    ๋‹ค์–‘ํ•œ ๋ถ„๊ธฐ๋ฅผ ๋‚˜์—ดํ•˜๋Š” ํ™•์žฅ๋œ ๋ถ„๊ธฐ ๋“œ๋กญ๋‹ค์šด ๋ฉ”๋‰ด์˜ ์Šคํฌ๋ฆฐ์ƒท์ž…๋‹ˆ๋‹ค. ๋ถ„๊ธฐ ์•„์ด์ฝ˜์ด ํ‘œ์‹œ๋œ "trunk" ๋“œ๋กญ๋‹ค์šด ๋ฉ”๋‰ด๋Š” ์ฃผํ™ฉ์ƒ‰ ์œค๊ณฝ์„ ์œผ๋กœ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.

  3. ์ฝ”๋“œ ๋‹จ์ถ”๋ฅผ ํด๋ฆญํ•œ ๋‹ค์Œ Codespaces ํƒญ์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

    Codespace์— ๋Œ€ํ•œ ๋น„์šฉ์„ ์ง€๋ถˆํ•  ์‚ฌ๋žŒ์„ ์•Œ๋ ค์ฃผ๋Š” ๋ฉ”์‹œ์ง€๊ฐ€ ๋Œ€ํ™” ์ƒ์ž ํ•˜๋‹จ์— ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.

    Codespace ๋Œ€ํ™” ์ƒ์ž์˜ ์Šคํฌ๋ฆฐ์ƒท Codespace์— ๋Œ€ํ•œ ๋น„์šฉ์„ ์ง€๋ถˆํ•  ์‚ฌ์šฉ์ž๋ฅผ ๋ณด์—ฌ ์ฃผ๋Š” ๋ฉ”์‹œ์ง€๊ฐ€ ์ง„ํ•œ ์ฃผํ™ฉ์ƒ‰ ์œค๊ณฝ์„ ์œผ๋กœ ๊ฐ•์กฐ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.

  4. ๊ธฐ๋ณธ ์˜ต์…˜์„ ์‚ฌ์šฉํ•˜๊ฑฐ๋‚˜ ๊ณ ๊ธ‰ ์˜ต์…˜์„ ๊ตฌ์„ฑํ•œ ํ›„ codespace๋ฅผ ๋งŒ๋“ญ๋‹ˆ๋‹ค.

    • ๊ธฐ๋ณธ ์˜ต์…˜ ์‚ฌ์šฉ

      ๊ธฐ๋ณธ ์˜ต์…˜์„ ์‚ฌ์šฉํ•˜์—ฌ codespace๋ฅผ ๋งŒ๋“ค๋ ค๋ฉด ์„(๋ฅผ) ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

    • ๊ณ ๊ธ‰ ์˜ต์…˜ ๊ตฌ์„ฑ

      ๋‹ค๋ฅธ ๋จธ์‹  ์œ ํ˜• ๋˜๋Š” ํŠน์ • devcontainer.json ํŒŒ์ผ๊ณผ ๊ฐ™์€ codespace์˜ ๊ณ ๊ธ‰ ์˜ต์…˜์„ ๊ตฌ์„ฑํ•˜๋ ค๋ฉด ๋‹ค์Œ์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.

      1. Codespaces ํƒญ์˜ ์˜ค๋ฅธ์ชฝ ์œ„์—์„œ ์„(๋ฅผ) ์„ ํƒํ•˜๊ณ  ์˜ต์…˜์œผ๋กœ ์ƒˆ๋กœ ๋งŒ๋“ค๊ธฐ๋ฅผ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

        "Codespaces" ํƒญ์˜ ์˜ต์…˜ ๋“œ๋กญ๋‹ค์šด์—์„œ "์˜ต์…˜์œผ๋กœ ์ƒˆ๋กœ ๋งŒ๋“ค๊ธฐ" ์˜ต์…˜์ด ๊ฐ•์กฐ ํ‘œ์‹œ๋œ ์Šคํฌ๋ฆฐ์ƒท

      2. Codespace์˜ ์˜ต์…˜ ํŽ˜์ด์ง€์— ์žˆ๋Š” ๋“œ๋กญ๋‹ค์šด ๋ฉ”๋‰ด์—์„œ ์›ํ•˜๋Š” ์˜ต์…˜์„ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.

        "๋ถ„๊ธฐ", "๊ฐœ๋ฐœ ์ปจํ…Œ์ด๋„ˆ ๊ตฌ์„ฑ", "์ง€์—ญ" ๋ฐ "๋จธ์‹  ์œ ํ˜•"์— ๋Œ€ํ•œ ๋‹จ์ถ”๊ฐ€ ์žˆ๋Š” ๊ณ ๊ธ‰ ์˜ต์…˜ ํŽ˜์ด์ง€์˜ ์Šคํฌ๋ฆฐ์ƒท

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

        ์ฐธ๊ณ  ํ•ญ๋ชฉ

        • ์˜ต์…˜ ํŽ˜์ด์ง€์— ์ฑ…๊ฐˆํ”ผ๋ฅผ ์ง€์ •ํ•˜์—ฌ ์ด ๋ฆฌํฌ์ง€ํ† ๋ฆฌ ๋ฐ ๋ถ„๊ธฐ์— ๋Œ€ํ•œ codespace๋ฅผ ๋น ๋ฅด๊ฒŒ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
        • https://github.com/codespaces/new ํŽ˜์ด์ง€์—์„œ๋Š” ๋ชจ๋“  ๋ฆฌํฌ์ง€ํ† ๋ฆฌ ๋ฐ ๋ถ„๊ธฐ์— ๋Œ€ํ•œ codespace๋ฅผ ๋น ๋ฅด๊ฒŒ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ธŒ๋ผ์šฐ์ €์˜ ์ฃผ์†Œ ํ‘œ์‹œ์ค„์— codespace.new์„(๋ฅผ) ์ž…๋ ฅํ•˜๋ฉด ์ด ํŽ˜์ด์ง€๋กœ ๋น ๋ฅด๊ฒŒ ์ด๋™ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
        • ๊ฐœ๋ฐœ ์ปจํ…Œ์ด๋„ˆ ๊ตฌ์„ฑ ํŒŒ์ผ์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์€ ๊ฐœ๋ฐœ ์ปจํ…Œ์ด๋„ˆ ์†Œ๊ฐœ์„(๋ฅผ) ์ฐธ์กฐํ•˜์„ธ์š”.
        • ๋จธ์‹  ์œ ํ˜•์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์€ codespace์— ๋Œ€ํ•œ ์ปดํ“จํ„ฐ ์œ ํ˜• ๋ณ€๊ฒฝ์„(๋ฅผ) ์ฐธ์กฐํ•˜์„ธ์š”.
        • ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ์ปดํ“จํ„ฐ ์œ ํ˜•์˜ ์„ ํƒ์€ ์—ฌ๋Ÿฌ ๊ฐ€์ง€ ์š”์ธ์— ์˜ํ•ด ์ œํ•œ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์—๋Š” ์กฐ์ง์— ๋Œ€ํ•ด ๊ตฌ์„ฑ๋œ ์ •์ฑ… ๋˜๋Š” ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์— ๋Œ€ํ•œ ์ตœ์†Œ ์ปดํ“จํ„ฐ ์œ ํ˜• ์‚ฌ์–‘์ด ํฌํ•จ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ ์ปดํ“จํ„ฐ ์œ ํ˜•์— ๋Œ€ํ•œ ์•ก์„ธ์Šค ์ œํ•œ ๋ฐ codespace ๋จธ์‹ ์— ๋Œ€ํ•œ ์ตœ์†Œ ์‚ฌ์–‘ ์„ค์ •์„(๋ฅผ) ์ฐธ์กฐํ•˜์„ธ์š”.
      3. ์ฝ”๋“œ์ŠคํŽ˜์ด์Šค ๋งŒ๋“ค๊ธฐ๋ฅผ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

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

Screenshot of the "Create codespace" page with four recommended secrets highlighted with a dark orange outline.

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

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

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

๋ฏธ๋ฆฌ ์„ ํƒํ•œ ๋น„๋ฐ€์˜ ๊ฐ’์„ ๋ณ€๊ฒฝํ•˜๋ ค๋ฉด github.com/settings/codespaces์˜ Codespaces์— ๋Œ€ํ•œ ๊ฐœ์ธ ์„ค์ •์—์„œ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ GitHub Codespaces์— ๋Œ€ํ•œ ๊ณ„์ •๋ณ„ ๋น„๋ฐ€ ๊ด€๋ฆฌ์„(๋ฅผ) ์ฐธ์กฐํ•˜์„ธ์š”.

GitHub์˜ ๊ณ„์ •์„ GitHub Codespaces ํ™•์žฅ์— ์—ฐ๊ฒฐํ•œ ํ›„ ์ƒˆ codespace๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. GitHub Codespaces ํ™•์žฅ์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์€ VS Code Marketplace์„(๋ฅผ) ์ฐธ์กฐํ•˜์„ธ์š”.

  1. VS Code์˜ ํ™œ์„ฑ ๋ฐ”์—์„œ ์›๊ฒฉ ํƒ์ƒ‰๊ธฐ ์•„์ด์ฝ˜์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

    ์ž‘์—… ํ‘œ์‹œ์ค„์˜ ์Šคํฌ๋ฆฐ์ƒท. "์›๊ฒฉ ํƒ์ƒ‰๊ธฐ" ์‚ฌ์ด๋“œ๋ฐ”์˜ ์•„์ด์ฝ˜(์›์œผ๋กœ ๊ฒน์ณ์ง„ ์‚ฌ๊ฐํ˜•)์ด ์ฃผํ™ฉ์ƒ‰ ์œค๊ณฝ์„ ์œผ๋กœ ๊ฐ•์กฐ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.

    ์ฐธ๊ณ  ํ•ญ๋ชฉ

    ์›๊ฒฉ ํƒ์ƒ‰๊ธฐ๊ฐ€ ์ž‘์—… ๋ง‰๋Œ€์— ํ‘œ์‹œ๋˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ:

    1. ๋ช…๋ น ํŒ”๋ ˆํŠธ์— ์•ก์„ธ์Šคํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, Shift+Command+P(Mac)/Ctrl+Shift+P(Windows/Linux)๋ฅผ ๋ˆ„๋ฆ…๋‹ˆ๋‹ค.
    2. ์œ ํ˜•: details.
    3. Codespaces: ์„ธ๋ถ€ ์ •๋ณด๋ฅผ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.
  2. "์›๊ฒฉ ํƒ์ƒ‰๊ธฐ" ์‚ฌ์ด๋“œ๋ฐ”๋ฅผ ๋งˆ์šฐ์Šค๋กœ ๊ฐ€๋ฆฌํ‚ค๊ณ  ์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

    GitHub Codespaces์˜ "์›๊ฒฉ ํƒ์ƒ‰๊ธฐ" ์‚ฌ์ด๋“œ๋ฐ” ์Šคํฌ๋ฆฐ์ƒท. ๋”ํ•˜๊ธฐ ๊ธฐํ˜ธ ๋‹จ์ถ” ์˜†์— "์ƒˆ codespace ๋งŒ๋“ค๊ธฐ" ๋„๊ตฌ ์„ค๋ช…์ด ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.

  3. ์ž…๋ ฅ๋ž€์— ๊ฐœ๋ฐœํ•˜๋ ค๋Š” ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์˜ ์ด๋ฆ„์„ ์ž…๋ ฅํ•œ ๋‹ค์Œ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.

    ํ…์ŠคํŠธ ์ƒ์ž์— ์ž…๋ ฅํ•œ "octo-org/he"์˜ ์Šคํฌ๋ฆฐ์ƒท๊ณผ ์ด ๋ฌธ์ž์—ด๋กœ ์‹œ์ž‘ํ•˜๋Š” 4๊ฐœ์˜ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ ๋ชฉ๋ก์ž…๋‹ˆ๋‹ค.

    ์ดํ›„ ํ”„๋กฌํ”„ํŠธ์˜ ์˜ค๋ฅธ์ชฝ์— codespace์— ๋Œ€ํ•œ ๋น„์šฉ์„ ์ง€๋ถˆํ•  ์‚ฌ๋žŒ์„ ์•Œ๋ ค์ฃผ๋Š” ๋ฉ”์‹œ์ง€๊ฐ€ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.

    "Hubwriter์—์„œ ์ง€๋ถˆํ•œ ์‚ฌ์šฉ๋Ÿ‰"์ด๋ผ๋Š” ๋ฉ”์‹œ์ง€๊ฐ€ ์žˆ๋Š” ๋ถ„๊ธฐ์— ๋Œ€ํ•œ ํ”„๋กฌํ”„ํŠธ์˜ ์Šคํฌ๋ฆฐ์ƒท.

  4. ๊ฐœ๋ฐœํ•˜๋ ค๋Š” ๋ถ„๊ธฐ๋ฅผ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

  5. ๊ฐœ๋ฐœ ์ปจํ…Œ์ด๋„ˆ ๊ตฌ์„ฑ ํŒŒ์ผ์„ ์„ ํƒํ•˜๋ผ๋Š” ๋ฉ”์‹œ์ง€๊ฐ€ ํ‘œ์‹œ๋˜๋ฉด ๋ชฉ๋ก์—์„œ ํŒŒ์ผ์„ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.

  6. ์‚ฌ์šฉํ•  ๋จธ์‹  ์œ ํ˜•์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

    ์ฐธ๊ณ  ํ•ญ๋ชฉ

    ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ์ปดํ“จํ„ฐ ์œ ํ˜•์˜ ์„ ํƒ์€ ์—ฌ๋Ÿฌ ๊ฐ€์ง€ ์š”์ธ์— ์˜ํ•ด ์ œํ•œ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์—๋Š” ์กฐ์ง์— ๋Œ€ํ•ด ๊ตฌ์„ฑ๋œ ์ •์ฑ… ๋˜๋Š” ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์— ๋Œ€ํ•œ ์ตœ์†Œ ์ปดํ“จํ„ฐ ์œ ํ˜• ์‚ฌ์–‘์ด ํฌํ•จ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ ์ปดํ“จํ„ฐ ์œ ํ˜•์— ๋Œ€ํ•œ ์•ก์„ธ์Šค ์ œํ•œ ๋ฐ codespace ๋จธ์‹ ์— ๋Œ€ํ•œ ์ตœ์†Œ ์‚ฌ์–‘ ์„ค์ •์„(๋ฅผ) ์ฐธ์กฐํ•˜์„ธ์š”.

์ฐธ๊ณ  ํ•ญ๋ชฉ

GitHub CLI์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์€ GitHub CLI ์ •๋ณด์„(๋ฅผ) ์ฐธ์กฐํ•˜์„ธ์š”.

์ƒˆ codespace๋ฅผ ๋งŒ๋“ค๋ ค๋ฉด gh codespace create ํ•˜์œ„ ๋ช…๋ น์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

gh codespace create

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

๋˜๋Š” ํ”Œ๋ž˜๊ทธ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋‹ค์Œ ์˜ต์…˜์„ ์ผ๋ถ€ ๋˜๋Š” ๋ชจ๋‘ ์ง€์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

gh codespace create -r OWNER/REPO -b BRANCH --devcontainer-path PATH -m MACHINE-TYPE

์ด ์˜ˆ์—์„œ๋Š” owner/repo์„(๋ฅผ) ๋ฆฌํฌ์ง€ํ† ๋ฆฌ ์‹๋ณ„์ž๋กœ ๋ฐ”๊ฟ‰๋‹ˆ๋‹ค. branch์„(๋ฅผ) codespace์—์„œ ์ดˆ๊ธฐ์— ์ฒดํฌ ์•„์›ƒํ•  ๋ถ„๊ธฐ ์ด๋ฆ„ ๋˜๋Š” ์ปค๋ฐ‹์˜ ์ „์ฒด SHA ํ•ด์‹œ๋กœ ๋ฐ”๊ฟ‰๋‹ˆ๋‹ค. b ํ”Œ๋ž˜๊ทธ ์—†์ด -r ํ”Œ๋ž˜๊ทธ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๊ธฐ๋ณธ ๋ถ„๊ธฐ์—์„œ codespace๊ฐ€ ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค.

path์„(๋ฅผ) ์ƒˆ codespace์— ์‚ฌ์šฉํ•  ๊ฐœ๋ฐœ ์ปจํ…Œ์ด๋„ˆ ๊ตฌ์„ฑ ํŒŒ์ผ์˜ ๊ฒฝ๋กœ๋กœ ๋ฐ”๊ฟ‰๋‹ˆ๋‹ค. ์ด ํ”Œ๋ž˜๊ทธ๋ฅผ ์ƒ๋žตํ–ˆ์œผ๋ฉฐ ๋‘˜ ์ด์ƒ์˜ ๊ฐœ๋ฐœ ์ปจํ…Œ์ด๋„ˆ ํŒŒ์ผ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒฝ์šฐ ๋ชฉ๋ก์—์„œ ํ•˜๋‚˜๋ฅผ ์„ ํƒํ•˜๋ผ๋Š” ๋ฉ”์‹œ์ง€๊ฐ€ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค. ๊ฐœ๋ฐœ ์ปจํ…Œ์ด๋„ˆ ๊ตฌ์„ฑ ํŒŒ์ผ์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์€ ๊ฐœ๋ฐœ ์ปจํ…Œ์ด๋„ˆ ์†Œ๊ฐœ์„(๋ฅผ) ์ฐธ์กฐํ•˜์„ธ์š”.

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

์ด ๋ช…๋ น์˜ ์˜ต์…˜์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์€ GitHub CLI ์„ค๋ช…์„œ๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

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