Skip to main content

GitHub Codespaces์˜ ๋ณด์•ˆ

๋ณด์•ˆ์„ ์œ ์ง€ํ•˜๊ณ  ๊ณต๊ฒฉ ์œ„ํ—˜์„ ์ตœ์†Œํ™”ํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋˜๋Š” ์ง€์นจ์ด ํฌํ•จ๋œ GitHub Codespaces ๋ณด์•ˆ ์•„ํ‚คํ…์ฒ˜์˜ ๊ฐœ์š”์ž…๋‹ˆ๋‹ค.

codespace ๋ณด์•ˆ ๊ฐœ์š”

GitHub Codespaces๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ๋ณด์•ˆ์ด ๊ฐ•ํ™”๋˜๋„๋ก ์„ค๊ณ„๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์†Œํ”„ํŠธ์›จ์–ด ๊ฐœ๋ฐœ ๊ด€ํ–‰์ด codespace์˜ ๋ณด์•ˆ ํƒœ์„ธ๋ฅผ ์ค„์ด๋Š” ์œ„ํ—˜์„ ๊ฐ์ˆ˜ํ•˜์ง€ ์•Š๋„๋ก ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์ด ๊ฐ€์ด๋“œ์—์„œ๋Š” GitHub Codespaces๊ฐ€ ๊ฐœ๋ฐœ ํ™˜๊ฒฝ์„ ์•ˆ์ „ํ•˜๊ฒŒ ์œ ์ง€ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์„ค๋ช…ํ•˜๊ณ  ์ž‘์—…ํ•  ๋•Œ ๋ณด์•ˆ์„ ์œ ์ง€ํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋˜๋Š” ๋ช‡ ๊ฐ€์ง€ ๋ชจ๋ฒ” ์‚ฌ๋ก€๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ๋ชจ๋“  ๊ฐœ๋ฐœ ๋„๊ตฌ์™€ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ, ์•Œ๊ณ  ์‹ ๋ขฐํ•˜๋Š” ๋ฆฌํฌ์ง€ํ† ๋ฆฌ๋งŒ ์—ด์–ด์„œ ์ž‘์—…ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

ํ™˜๊ฒฝ ๊ฒฉ๋ฆฌ

GitHub Codespaces๋Š” ๊ณ ์œ ํ•œ ๊ฐ€์ƒ ๋จธ์‹ ๊ณผ ๋„คํŠธ์›Œํฌ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ Codespace๋ฅผ ์„œ๋กœ ๋ถ„๋ฆฌํ•˜๋„๋ก ์„ค๊ณ„๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

๊ฒฉ๋ฆฌ๋œ ๊ฐ€์ƒ ๋จธ์‹ 

๊ฐ codespace๋Š” ์ƒˆ๋กœ ๋นŒ๋“œ๋œ ๊ณ ์œ ํ•œ VM(๊ฐ€์ƒ ๋จธ์‹ )์—์„œ ํ˜ธ์ŠคํŠธ๋ฉ๋‹ˆ๋‹ค. ๋‘ codespace๊ฐ€ ๋™์ผํ•œ VM์— ๊ณต๋™ ๋ฐฐ์น˜๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

codespace๋ฅผ ๋‹ค์‹œ ์‹œ์ž‘ํ•  ๋•Œ๋งˆ๋‹ค ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ์ตœ์‹  ๋ณด์•ˆ ์—…๋ฐ์ดํŠธ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ƒˆ VM์— ๋ฐฐํฌ๋ฉ๋‹ˆ๋‹ค.

๊ฒฉ๋ฆฌ๋œ ๋„คํŠธ์›Œํ‚น

๊ฐ codespace์— ๊ฒฉ๋ฆฌ๋œ ๊ณ ์œ ํ•œ ๊ฐ€์ƒ ๋„คํŠธ์›Œํฌ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฐฉํ™”๋ฒฝ์„ ์‚ฌ์šฉํ•˜์—ฌ ์ธํ„ฐ๋„ท์—์„œ ๋“ค์–ด์˜ค๋Š” ์—ฐ๊ฒฐ์„ ์ฐจ๋‹จํ•˜๊ณ  ๋‚ด๋ถ€ ๋„คํŠธ์›Œํฌ์—์„œ codespace๊ฐ€ ์„œ๋กœ ํ†ต์‹ ํ•˜์ง€ ๋ชปํ•˜๋„๋ก ํ•ฉ๋‹ˆ๋‹ค. Codespace๋Š” ์ธํ„ฐ๋„ท์— ๋Œ€ํ•œ ์•„์›ƒ๋ฐ”์šด๋“œ ์—ฐ๊ฒฐ์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ธ์ฆ

์›น ๋ธŒ๋ผ์šฐ์ €๋ฅผ ์‚ฌ์šฉํ•˜๊ฑฐ๋‚˜ Visual Studio Code์—์„œ codespace์— ์—ฐ๊ฒฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. VS Code์—์„œ ์—ฐ๊ฒฐํ•˜๋Š” ๊ฒฝ์šฐ GitHub๋กœ ์ธ์ฆํ•˜๋ผ๋Š” ๋ฉ”์‹œ์ง€๊ฐ€ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.

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

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

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

codespace ์—ฐ๊ฒฐ

GitHub Codespaces ์„œ๋น„์Šค์—์„œ ์ œ๊ณตํ•˜๋Š” TLS ์•”ํ˜ธํ™” ํ„ฐ๋„์„ ์‚ฌ์šฉํ•˜์—ฌ Codespace์— ์—ฐ๊ฒฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. codespace ์ž‘์„ฑ์ž๋งŒ codespace์— ์—ฐ๊ฒฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์—ฐ๊ฒฐ์€ GitHub์—์„œ ์ธ์ฆ๋ฉ๋‹ˆ๋‹ค.

codespace์—์„œ ์‹คํ–‰๋˜๋Š” ์„œ๋น„์Šค์— ๋Œ€ํ•œ ์™ธ๋ถ€ ์•ก์„ธ์Šค๋ฅผ ํ—ˆ์šฉํ•ด์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ ํ”„๋ผ์ด๋น— ๋˜๋Š” ํผ๋ธ”๋ฆญ ์•ก์„ธ์Šค์— ํฌํŠธ ์ „๋‹ฌ์„ ์‚ฌ์šฉํ•˜๋„๋ก ์„ค์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

ํฌํŠธ ์ „๋‹ฌ

codespace ๋‚ด์—์„œ ์‹คํ–‰๋˜๋Š” ์„œ๋น„์Šค(์˜ˆ: ๊ฐœ๋ฐœ ์›น ์„œ๋ฒ„)์— ์—ฐ๊ฒฐํ•ด์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ ์ธํ„ฐ๋„ท์—์„œ ์„œ๋น„์Šค๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ํฌํŠธ ์ „๋‹ฌ์„ ๊ตฌ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

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

๋น„๊ณต๊ฐœ๋กœ ์ „๋‹ฌ๋œ ํฌํŠธ: ์ธํ„ฐ๋„ท์—์„œ ์•ก์„ธ์Šคํ•  ์ˆ˜ ์žˆ์ง€๋งŒ codespace ์ž‘์„ฑ์ž๋งŒ GitHub์— ์ธ์ฆํ•œ ํ›„ ์•ก์„ธ์Šคํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์กฐ์ง ๋‚ด์—์„œ ๊ณต๊ฐœ์ ์œผ๋กœ ์ „๋‹ฌ๋œ ํฌํŠธ: ์ธํ„ฐ๋„ท์—์„œ ์•ก์„ธ์Šคํ•  ์ˆ˜ ์žˆ์ง€๋งŒ codespace์™€ ๋™์ผํ•œ ์กฐ์ง์˜ ๋ฉค๋ฒ„๋งŒ GitHub์— ์ธ์ฆํ•œ ํ›„ ์•ก์„ธ์Šคํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ณต๊ฐœ์ ์œผ๋กœ ์ „๋‹ฌ๋œ ํฌํŠธ: ์ธํ„ฐ๋„ท์—์„œ ์•ก์„ธ์Šคํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ ์ธํ„ฐ๋„ท์˜ ๋ชจ๋“  ์‚ฌ์šฉ์ž๊ฐ€ ์•ก์„ธ์Šคํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ณต๊ฐœ์ ์œผ๋กœ ์ „๋‹ฌ๋œ ํฌํŠธ์— ์•ก์„ธ์Šคํ•  ๋•Œ๋Š” ์ธ์ฆ์ด ํ•„์š”ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์ „๋‹ฌ๋œ ๋ชจ๋“  ํฌํŠธ๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ํ”„๋ผ์ด๋น—์ž…๋‹ˆ๋‹ค. ์ฆ‰, ํฌํŠธ์— ์•ก์„ธ์Šคํ•˜๊ธฐ ์ „์— ์ธ์ฆํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. codespace์˜ ๋น„๊ณต๊ฐœ๋กœ ์ „๋‹ฌ๋œ ํฌํŠธ์— ๋Œ€ํ•œ ์•ก์„ธ์Šค๋Š” ๋งŒ๋ฃŒ ๊ธฐ๊ฐ„์ด 3์‹œ๊ฐ„์ธ ์ธ์ฆ ์ฟ ํ‚ค๋กœ ์ œ์–ด๋ฉ๋‹ˆ๋‹ค. ์ฟ ํ‚ค๊ฐ€ ๋งŒ๋ฃŒ๋˜๋ฉด ๋‹ค์‹œ ์ธ์ฆํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

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

โ€œํฌํŠธโ€ ํŒจ๋„์„ ์‚ฌ์šฉํ•˜์—ฌ ํผ๋ธ”๋ฆญ ๋˜๋Š” ํ”„๋ผ์ด๋น— ์•ก์„ธ์Šค๋กœ ํฌํŠธ๋ฅผ ๊ตฌ์„ฑํ•˜๊ณ , ๋” ์ด์ƒ ํ•„์š”ํ•˜์ง€ ์•Š์€ ๊ฒฝ์šฐ ํฌํŠธ ์ „๋‹ฌ์„ ์ค‘์ง€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ codespace์˜ ํฌํŠธ ์ „๋‹ฌ์„(๋ฅผ) ์ฐธ์กฐํ•˜์„ธ์š”.

codespace์— ๋Œ€ํ•œ ๋ณด์•ˆ ๋ชจ๋ฒ” ์‚ฌ๋ก€

codespace๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ๋ณด์•ˆ์ด ๊ฐ•ํ™”๋˜๋„๋ก ์„ค๊ณ„๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ด ๋ณด์•ˆ ํƒœ์„ธ๋ฅผ ์œ ์ง€ํ•˜๋ ค๋ฉด ๊ฐœ๋ฐœ ์ ˆ์ฐจ ์ค‘์— ์ ์ ˆํ•œ ๋ณด์•ˆ ์‚ฌ๋ก€๋ฅผ ๋”ฐ๋ฅด๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.

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

๊ฐœ๋ฐœ ํ™˜๊ฒฝ ๋น„๋ฐ€์„ ์‚ฌ์šฉํ•˜์—ฌ ์ค‘์š”ํ•œ ์ •๋ณด ์•ก์„ธ์Šค

Codespace์—์„œ ์ค‘์š”ํ•œ ์ •๋ณด(์˜ˆ: ์•ก์„ธ์Šค ํ† ํฐ)๋ฅผ ์‚ฌ์šฉํ•˜๋ ค๋Š” ๊ฒฝ์šฐ ํ•ญ์ƒ ๊ฐœ๋ฐœ ํ™˜๊ฒฝ ๋น„๋ฐ€์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ํ„ฐ๋ฏธ๋„ ๋“ฑ์—์„œ codespace์˜ ๋น„๋ฐ€์— ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋กœ ์•ก์„ธ์Šคํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด codespace ๋‚ด์—์„œ ํ„ฐ๋ฏธ๋„์„ ์‹œ์ž‘ํ•˜๊ณ  echo $SECRET_NAME์„ ์‚ฌ์šฉํ•˜์—ฌ ๊ฐœ๋ฐœ ํ™˜๊ฒฝ ๋น„๋ฐ€ ๊ฐ’์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋น„๋ฐ€ ๊ฐ’์€ Codespace๊ฐ€ ๋‹ค์‹œ ์‹œ์ž‘๋˜๊ฑฐ๋‚˜ ์ƒ์„ฑ๋  ๋•Œ๋งˆ๋‹ค ํ™˜๊ฒฝ ๋ณ€์ˆ˜์— ๋ณต์‚ฌ๋˜๋ฉฐ ๋ณ€๊ฒฝ๋  ๋•Œ๋„ ๋™๊ธฐํ™”๋ฉ๋‹ˆ๋‹ค.

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

๋น„๋ฐ€์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์€ ๋‹ค์Œ์„ ์ฐธ์กฐํ•˜์„ธ์š”.

๋‹ค๋ฅธ ์‚ฌ๋žŒ์˜ ๊ธฐ์—ฌ ๋ฐ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ ์ž‘์—…

ํฌํฌ์˜ PR ๋ถ„๊ธฐ์—์„œ codespace๋ฅผ ๋งŒ๋“ค ๋•Œ codespace์˜ ํ† ํฐ์€ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ๊ฐ€ ํผ๋ธ”๋ฆญ์ธ์ง€ ํ”„๋ผ์ด๋น—์ธ์ง€์— ๋”ฐ๋ผ ๋‹ฌ๋ผ์ง‘๋‹ˆ๋‹ค.

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

๋˜ํ•œ ํ™˜๊ฒฝ์— Codespace ๋น„๋ฐ€์„ ์‚ฝ์ž…ํ•˜์ง€ ์•Š์Œ์œผ๋กœ์จ ์ด๋Ÿฌํ•œ ์‹œ๋‚˜๋ฆฌ์˜ค์—์„œ ์ถ”๊ฐ€๋กœ ๋ณดํ˜ธํ•ฉ๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ GitHub Codespaces์— ๋Œ€ํ•œ ๊ณ„์ •๋ณ„ ๋น„๋ฐ€ ๊ด€๋ฆฌ์„(๋ฅผ) ์ฐธ์กฐํ•˜์„ธ์š”.

์ฐธ๊ณ  ํ•ญ๋ชฉ

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

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

์ถ”๊ฐ€ ๋ชจ๋ฒ” ์‚ฌ๋ก€

GitHub Codespaces๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ ์•Œ์•„์•ผ ํ•  ๋ช‡ ๊ฐ€์ง€ ์ถ”๊ฐ€ ๋ชจ๋ฒ” ์‚ฌ๋ก€์™€ ์œ„ํ—˜์ด ์žˆ์Šต๋‹ˆ๋‹ค.

๋ฆฌํฌ์ง€ํ† ๋ฆฌ์˜ devcontainer.json ํŒŒ์ผ ์ดํ•ด

Codespace๋ฅผ ๋งŒ๋“ค ๋•Œ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์— ๋Œ€ํ•œ devcontainer.json ํŒŒ์ผ์ด ๋ฐœ๊ฒฌ๋˜๋ฉด, ์ด ํŒŒ์ผ์€ ๊ตฌ๋ฌธ์ด ๋ถ„์„๋˜๋ฉฐ codespace๋ฅผ ๊ตฌ์„ฑํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. devcontainer.json ํŒŒ์ผ์€ ํƒ€์‚ฌ ํ™•์žฅ ์„ค์น˜ ๋ฐ postCreateCommand์— ๊ณต๊ธ‰๋œ ์ž„์˜ ์ฝ”๋“œ ์‹คํ–‰ ๊ฐ™์€ ๊ฐ•๋ ฅํ•œ ๊ธฐ๋Šฅ์„ ํฌํ•จํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

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

๊ธฐ๋Šฅ์„ ํ†ตํ•ด ์•ก์„ธ์Šค ๊ถŒํ•œ ๋ถ€์—ฌ

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

ํ™•์žฅ ์‚ฌ์šฉ

์„ค์น˜ํ•œ ์ถ”๊ฐ€ VS Code ํ™•์žฅ ๋•Œ๋ฌธ์— ๋” ๋งŽ์€ ์œ„ํ—˜์ด ๋„์ž…๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์œ„ํ—˜์„ ์™„ํ™”ํ•˜๋ ค๋ฉด ์‹ ๋ขฐํ•  ์ˆ˜ ์žˆ๋Š” ํ™•์žฅ๋งŒ ์„ค์น˜ํ•˜๊ณ  ํ•ญ์ƒ ์ตœ์‹  ์ƒํƒœ๋กœ ์œ ์ง€ํ•ฉ๋‹ˆ๋‹ค.

์„ค์ • ๋™๊ธฐํ™” ์‚ฌ์šฉ

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

์‚ฌ์šฉ์ž ๊ธฐ๋ณธ ์„ค์ •์—์„œ ์„ค์ • ๋™๊ธฐํ™”๋ฅผ ์‚ฌ์šฉํ•˜๋„๋ก ์„ค์ •ํ•˜๊ณ  ์„ค์ •์„ ๋ณ€๊ฒฝํ•˜์—ฌ codespace์—์„œ VS Code์˜ ๋‹ค๋ฅธ ์ธ์Šคํ„ด์Šค๋กœ ๋™๊ธฐํ™”ํ•˜๋„๋ก ํ—ˆ์šฉํ•˜๋ ค๋Š” ๊ฒฝ์šฐ ๋ชจ๋“  ๋ฆฌํฌ์ง€ํ† ๋ฆฌ๋ฅผ ์‹ ๋ขฐํ•˜๋Š” ๋Œ€์‹  ์„ ํƒํ•œ ์‹ ๋ขฐํ•  ์ˆ˜ ์žˆ๋Š” ๋ฆฌํฌ์ง€ํ† ๋ฆฌ ๋ชฉ๋ก์„ ์ถ”๊ฐ€ํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค. ์‹ ๋ขฐํ•  ์ˆ˜ ์žˆ๋Š” ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์—์„œ codespace๋ฅผ ๋งŒ๋“ค๋ฉด codespace์˜ ์„ค์ • ๋ณ€๊ฒฝ ๋‚ด์šฉ์ด ํด๋ผ์šฐ๋“œ์˜ ์บ์‹œ๋œ ์„ค์ •๊ณผ ๋™๊ธฐํ™”๋˜์–ด ๋””๋ฐ”์ด์Šค๋กœ ์ „์†ก๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์„ค์ • ๋™๊ธฐํ™” ๊ด€๋ฆฌ์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์€ ๊ณ„์ •์— ๋งž๊ฒŒ GitHub Codespaces ๊ฐœ์ธ ์„ค์ •์„(๋ฅผ) ์ฐธ์กฐํ•˜์„ธ์š”.