Skip to main content

Codespace์—์„œ ์…ธ ๋ณ€๊ฒฝ

Codespace์—์„œ ์…ธ์„ ๋ณ€๊ฒฝํ•˜์—ฌ ์ต์ˆ™ํ•œ ์„ค์ •์„ ์œ ์ง€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Codespace์—์„œ ์ž‘์—…ํ•  ๋•Œ๋Š” ์„ ํƒํ•œ ์…ธ์ด ์žˆ๋Š” ์ƒˆ ํ„ฐ๋ฏธ๋„ ์ฐฝ์„ ์—ด๊ฑฐ๋‚˜, ์ƒˆ ํ„ฐ๋ฏธ๋„ ์ฐฝ์˜ ๊ธฐ๋ณธ ์…ธ์„ ๋ณ€๊ฒฝํ•˜๊ฑฐ๋‚˜, ์ƒˆ ์…ธ์„ ์„ค์น˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Dot ํŒŒ์ผ์„ ์‚ฌ์šฉํ•˜์—ฌ ์…ธ์„ ๊ตฌ์„ฑํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ธฐ๋ณธ dev ์ปจํ…Œ์ด๋„ˆ ์ด๋ฏธ์ง€๋ฅผ ์‚ฌ์šฉํ•˜๋Š” codespace์—๋Š” bash, zsh ๋ฐ fish ์…ธ์ด ์ œ๊ณต๋ฉ๋‹ˆ๋‹ค. VS Code ์›น ํด๋ผ์ด์–ธํŠธ์—์„œ ์ƒˆ codespace๋ฅผ ์—ด๊ฑฐ๋‚˜ SSH๋ฅผ ํ†ตํ•ด codespace์— ์—ฐ๊ฒฐํ•˜๋Š” ๊ฒฝ์šฐ ํ„ฐ๋ฏธ๋„์ด ์—ด๋ฆด ๋•Œ bash ์„ธ์…˜์ด ๊ธฐ๋ณธ์ ์œผ๋กœ ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค. VS Code ๋ฐ์Šคํฌํ†ฑ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์—์„œ ๊ธฐ๋ณธ ์…ธ์€ ๋กœ์ปฌ ์„ค์ • ๋ฐ ์šด์˜ ์ฒด์ œ์— ๋”ฐ๋ผ ๋‹ฌ๋ผ์ง‘๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ VS Code ์„ค๋ช…์„œ์˜ ํ„ฐ๋ฏธ๋„ ํ”„๋กœํ•„์„ ์ฐธ์กฐํ•˜์„ธ์š”.

VS Code์—์„œ ๊ธฐ๋ณธ ์…ธ ๋ณ€๊ฒฝ

๊ธฐ๋ณธ ์…ธ์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š์œผ๋ ค๋ฉด ๋‹ค๋ฅธ ์…ธ์„ ์‚ฌ์šฉํ•˜์—ฌ ์ƒˆ ํ„ฐ๋ฏธ๋„ ์„ธ์…˜์„ ์—ด ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  1. VS Code์— ํ†ตํ•ฉ ํ„ฐ๋ฏธ๋„์ด ๋ณด์ด์ง€ ์•Š์œผ๋ฉด Ctrl+`์„(๋ฅผ) ๋ˆ„๋ฆ…๋‹ˆ๋‹ค.

  2. ์ƒˆ ํ„ฐ๋ฏธ๋„ ์ฐฝ์„ ์—ด๊ธฐ ์œ„ํ•œ ์•„์ด์ฝ˜์˜ ์˜ค๋ฅธ์ชฝ์—์„œ ๋“œ๋กญ๋‹ค์šด ์•„์ด์ฝ˜์„ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.

    VS Code์˜ ํ†ตํ•ฉ ํ„ฐ๋ฏธ๋„ ์Šคํฌ๋ฆฐ์ƒท. ๋”ํ•˜๊ธฐ ์•„์ด์ฝ˜ ์˜†์— ์•„๋ž˜์ชฝ ํ™”์‚ดํ‘œ๊ฐ€ ์ฃผํ™ฉ์ƒ‰ ์œค๊ณฝ์„ ์œผ๋กœ ๊ฐ•์กฐ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.

  3. ๋“œ๋กญ๋‹ค์šด ๋ฉ”๋‰ด์—์„œ ์‚ฌ์šฉํ•˜๋ ค๋Š” ์…ธ์˜ ์ด๋ฆ„์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

์ƒˆ ์…ธ ์„ค์น˜

Codespace์— ๋Œ€ํ•œ ๊ธฐ๋ณธ ์ด๋ฏธ์ง€ ๋˜๋Š” ๊ฐœ๋ฐœ ์ปจํ…Œ์ด๋„ˆ ๊ตฌ์„ฑ์— ์•„์ง ์„ค์น˜๋˜์ง€ ์•Š์€ ์…ธ์„ ์‚ฌ์šฉํ•˜๋ ค๋Š” ๊ฒฝ์šฐ ์ƒˆ ์…ธ์„ ์„ค์น˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ธฐ๋ณธ dev ์ปจํ…Œ์ด๋„ˆ ์ด๋ฏธ์ง€๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ Ubuntu Linux์˜ ์„ค์น˜ ์ง€์นจ์„ ์ฐธ์กฐํ•ฉ๋‹ˆ๋‹ค. ํ•œ ์„ธ์…˜์— ๋‹ค๋ฅธ ์…ธ์„ ์‚ฌ์šฉํ•˜๋ ค๋Š” ๊ฒฝ์šฐ ๋ช…๋ น์ค„์„ ์‚ฌ์šฉํ•˜์—ฌ ์ž‘์—… ์ค‘์ธ codespace์— ์…ธ์„ ์„ค์น˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ codespace์—์„œ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ๋‹ค์‹œ ๋นŒ๋“œํ•˜๋ฉด ์„ค์น˜ํ•œ ํ”„๋กœ๊ทธ๋žจ์ด ์†์‹ค๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ GitHub Codespaces์— ๋Œ€ํ•œ ์‹ฌ์ธต ๋ถ„์„์„(๋ฅผ) ์ฐธ์กฐํ•˜์„ธ์š”.

์ƒˆ ์…ธ์„ ์„ค์น˜ํ•˜๊ธฐ ์œ„ํ•œ ๋ณด๋‹ค ๊ฐ•๋ ฅํ•œ ์˜ต์…˜์€ dot ํŒŒ์ผ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์— ์„ค์น˜ ๋ช…๋ น์„ ํฌํ•จํ•˜๊ฑฐ๋‚˜ devcontainer.json์— ์žˆ๋Š” postCreateCommand ํŒŒ์ผ๊ณผ ๊ฐ™์ด ์ˆ˜๋ช… ์ฃผ๊ธฐ ๋ช…๋ น์œผ๋กœ ์„ค์น˜ ๋ช…๋ น์„ ํฌํ•จํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋ชจ๋“  ๊ณ ์œ  codespace์—์„œ ์‚ฌ์šฉํ•˜๋ ค๋Š” ์…ธ์„ ์„ค์น˜ํ•  ๋•Œ๋Š” dot ํŒŒ์ผ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ํŠน์ • ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์— ๋Œ€ํ•œ ๊ธฐ์—ฌ์ž๊ฐ€ ์„ค์น˜ํ•ด์•ผ ํ•˜๋Š” ์…ธ์—๋Š” devcontainer.json ํŒŒ์ผ์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ ๊ณ„์ •์— ๋งž๊ฒŒ GitHub Codespaces ๊ฐœ์ธ ์„ค์ • ๋ฐ ๊ฐœ๋ฐœ ์ปจํ…Œ์ด๋„ˆ ์†Œ๊ฐœ์„(๋ฅผ) ์ฐธ์กฐํ•˜์„ธ์š”.

์ƒˆ ์…ธ์— ๋Œ€ํ•œ VS Code ํ„ฐ๋ฏธ๋„ ํ”„๋กœํ•„ ์ถ”๊ฐ€

VS Code์€(๋Š”) ๋Œ€๋ถ€๋ถ„์˜ ํ‘œ์ค€ ์…ธ์„ ์ž๋™์œผ๋กœ ๊ฒ€์ƒ‰ํ•˜์—ฌ ํ„ฐ๋ฏธ๋„ ํ”„๋กœํ•„๋กœ ์ถ”๊ฐ€ํ•˜๋ฏ€๋กœ ์„ค์น˜ํ•œ ์…ธ์„ ์‚ฌ์šฉํ•˜์—ฌ ์ƒˆ ํ„ฐ๋ฏธ๋„ ์ฐฝ์„ ์‰ฝ๊ฒŒ ์—ด ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์„ค์น˜ํ•œ ์…ธ์ด ์ž๋™์œผ๋กœ ๊ฒ€์ƒ‰๋˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ ์‚ฌ์šฉ์ž ์„ค์ •์— ์ƒˆ ํ„ฐ๋ฏธ๋„ ํ”„๋กœํ•„์„ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ์„ค์ •์€ ์šด์˜ ์ฒด์ œ์— ๋”ฐ๋ผ ๋‹ฌ๋ผ์ง€๋ฏ€๋กœ VS Code ์›น ํด๋ผ์ด์–ธํŠธ์— linux์„(๋ฅผ) ์‚ฌ์šฉํ•˜๊ณ  ๋ฐ์Šคํฌํ†ฑ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์— ๋กœ์ปฌ ์šด์˜ ์ฒด์ œ๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

  1. Visual Studio Code Command Palette์„(๋ฅผ) ์—ด๋ ค๋ฉด, Command+Shift+P(Mac) ๋˜๋Š” Ctrl+Shift+P(Windows)๋ฅผ ๋ˆ„๋ฆ…๋‹ˆ๋‹ค.

  2. "์‚ฌ์šฉ์ž ์„ค์ •"์„ ์ž…๋ ฅํ•œ ๋‹ค์Œ ๊ธฐ๋ณธ ์„ค์ •: JSON(์‚ฌ์šฉ์ž ์„ค์ • ์—ด๊ธฐ) ์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

  3. settings.json ํŒŒ์ผ์˜ JSON ๊ฐœ์ฒด ๋‚ด์— ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ƒˆ ์†์„ฑ์„ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค. OPERATING-SYSTEM์„(๋ฅผ) ๊ด€๋ จ ์šด์˜ ์ฒด์ œ(์˜ˆ: linux, windows ๋˜๋Š”osx)๋กœ ๋ฐ”๊พธ๊ณ  SHELL์„ ์„ค์น˜ํ•œ ์…ธ๋กœ ๋ฐ”๊ฟ‰๋‹ˆ๋‹ค.

    JSON
    "terminal.integrated.profiles.OPERATING-SYSTEM": {
      "SHELL": {
        "path": "SHELL"
      }
    }
    

    ์˜ˆ์‹œ:

    "terminal.integrated.profiles.linux": {
     "csh": {
       "path": "csh"
     }
    }
    
  4. ํŒŒ์ผ์„ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค.

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

VS Code์—์„œ ๊ธฐ๋ณธ ์…ธ ์„ค์ •

VS Code์—์„œ ์—ฌ๋Š” ๋ชจ๋“  ์ƒˆ ํ„ฐ๋ฏธ๋„ ์ฐฝ์— ์‚ฌ์šฉ๋˜๋Š” ๊ธฐ๋ณธ ์…ธ์„ ๊ธฐ๋ณธ ํ„ฐ๋ฏธ๋„ ํ”„๋กœํ•„์—์„œ ์„ค์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ธฐ๋ณธ ํ„ฐ๋ฏธ๋„ ํ”„๋กœํ•„์€ ์šด์˜ ์ฒด์ œ์— ๋”ฐ๋ผ ๋‹ฌ๋ผ์ง€๋ฏ€๋กœ VS Code ์›น ํด๋ผ์ด์–ธํŠธ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ Linux์— ๋Œ€ํ•œ ๊ธฐ๋ณธ ํ”„๋กœํ•„์„ ์„ค์ •ํ•˜๊ณ  ๋ฐ์Šคํฌํ†ฑ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ ๋กœ์ปฌ ์šด์˜ ์ฒด์ œ๋ฅผ ์„ค์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ฐธ๊ณ  ํ•ญ๋ชฉ

๊ธฐ๋ณธ ํ”„๋กœํ•„๊ณผ ๊ด€๊ณ„์—†์ด ์›น ํด๋ผ์ด์–ธํŠธ์—์„œ ์—ด๋ฆฐ codespace๋Š” ํ•ญ์ƒ ์ฒ˜์Œ์— bash ์„ธ์…˜์ด ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค.

  1. Visual Studio Code Command Palette์„(๋ฅผ) ์—ด๋ ค๋ฉด, Command+Shift+P(Mac) ๋˜๋Š” Ctrl+Shift+P(Windows)๋ฅผ ๋ˆ„๋ฆ…๋‹ˆ๋‹ค.

  2. "์‚ฌ์šฉ์ž ์„ค์ •"์„ ์ž…๋ ฅํ•œ ๋‹ค์Œ ๊ธฐ๋ณธ ์„ค์ •: JSON(์‚ฌ์šฉ์ž ์„ค์ • ์—ด๊ธฐ) ์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

  3. JSON ๊ฐœ์ฒด ๋‚ด์—์„œ ๊ด€๋ จ ์šด์˜ ์ฒด์ œ์— ๋Œ€ํ•œ ๊ธฐ๋ณธ ์…ธ์„ ์„ค์ •ํ•˜๋ ค๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ค„์„ ์ถ”๊ฐ€ํ•˜๊ฑฐ๋‚˜ ๊ธฐ์กด ์ค„์„ ํŽธ์ง‘ํ•ฉ๋‹ˆ๋‹ค.

    "terminal.integrated.defaultProfile.OPERATING-SYSTEM": "SHELL"
    

    ์˜ˆ์‹œ:

    JSON
    {
       "terminal.integrated.defaultProfile.osx": "zsh",
       "terminal.integrated.defaultProfile.linux": "bash",
       "terminal.integrated.defaultProfile.windows": "PowerShell"
    }
    
  4. settings.json ํŒŒ์ผ์„ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค.

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

SSH๋ฅผ ํ†ตํ•œ ๊ธฐ๋ณธ ์…ธ ์„ค์ •

SSH๋ฅผ ํ†ตํ•ด ๋ช…๋ น์ค„์—์„œ codespace์— ์—ฐ๊ฒฐํ•˜๋Š” ๊ฒฝ์šฐ ๊ธฐ๋ณธ์ ์œผ๋กœ codespace์˜ bash ์„ธ์…˜์— ์—ฐ๊ฒฐํ•ฉ๋‹ˆ๋‹ค.

GitHub Codespaces์— ๋Œ€ํ•ด dot ํŒŒ์ผ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜๋„๋ก ์„ค์ •ํ•œ ๊ฒฝ์šฐ dot ํŒŒ์ผ์—์„œ install.sh๊ณผ(์™€) ๊ฐ™์ด ์„ค์น˜ ์Šคํฌ๋ฆฝํŠธ์— ๋ช…๋ น์„ ์ถ”๊ฐ€ํ•˜์—ฌ ์—ฐ๊ฒฐํ•˜๋Š” ๊ธฐ๋ณธ ์…ธ์„ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ GitHub CLI์—์„œ GitHub Codespaces ์‚ฌ์šฉ ๋ฐ ๊ณ„์ •์— ๋งž๊ฒŒ GitHub Codespaces ๊ฐœ์ธ ์„ค์ •์„(๋ฅผ) ์ฐธ์กฐํ•˜์„ธ์š”. ์˜ˆ๋ฅผ ๋“ค์–ด ๋‹ค์Œ ๋ช…๋ น์€ ๊ธฐ๋ณธ ์…ธ์„ zsh๋กœ ๋ณ€๊ฒฝํ•ฉ๋‹ˆ๋‹ค.

Shell
sudo chsh "$(id -un)" --shell "/usr/bin/zsh"

๊ธฐ๋ณธ์ ์œผ๋กœ codespace์— ์„ค์น˜๋˜์ง€ ์•Š์€ ๊ธฐ๋ณธ ์…ธ์„ ์‚ฌ์šฉํ•˜๊ฑฐ๋‚˜ ์ตœ์‹  ๋ฒ„์ „์˜ ์…ธ์ด ์žˆ๋Š”์ง€ ํ™•์ธํ•˜๋ ค๋ฉด ๋จผ์ € ์…ธ์„ ์„ค์น˜ํ•ฉ๋‹ˆ๋‹ค.

Shell
sudo apt-get update -y
sudo apt-get install -y csh
sudo chsh "$(id -un)" --shell "/usr/bin/csh"

์ฐธ๊ณ  ํ•ญ๋ชฉ

์ƒˆ codespace๋ฅผ ๋งŒ๋“œ๋Š” ๊ฒฝ์šฐ(์˜ˆ: gh codespace create ์‚ฌ์šฉ) SSH๋ฅผ ํ†ตํ•ด codespace์— ์—ฐ๊ฒฐํ•˜๊ธฐ ์ „์— ์Šคํฌ๋ฆฝํŠธ ์‹คํ–‰์ด ์™„๋ฃŒ๋˜๋„๋ก ์ถฉ๋ถ„ํ•œ ์‹œ๊ฐ„์„ ๊ธฐ๋‹ค๋ ค์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์Šคํฌ๋ฆฝํŠธ ์‹คํ–‰์ด ์™„๋ฃŒ๋˜์ง€ ์•Š์€ ๊ฒฝ์šฐ ๊ธฐ๋ณธ bash ์„ธ์…˜์— ์—ฐ๊ฒฐ๋ฉ๋‹ˆ๋‹ค.

Codespace์— ์—ฐ๊ฒฐ๋œ ๊ฒฝ์šฐ ๋Œ€๋ถ€๋ถ„์˜ ์…ธ์—์„œ readlink /proc/$$/exe ๋ช…๋ น์œผ๋กœ ์˜ฌ๋ฐ”๋ฅธ ์…ธ์ด ์‹คํ–‰ ์ค‘์ธ์ง€ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์…ธ ๊ตฌ์„ฑ

๋Œ€๋ถ€๋ถ„์˜ ์…ธ์—์„œ๋Š” ์„ ํ˜ธํ•˜๋Š” ์„ค์ •์œผ๋กœ ์…ธ์„ ๊ตฌ์„ฑํ•˜๊ธฐ ์œ„ํ•ด์„œ .bashrc๊ณผ(์™€) ๊ฐ™์ด ๊ตฌ์„ฑ ํŒŒ์ผ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ์„ค์ •์—๋Š” ๋ณ„์นญ ๋ฐ ํ™˜๊ฒฝ ๋ณ€์ˆ˜์™€ ๊ฐ™์€ ํ•ญ๋ชฉ์ด ํฌํ•จ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ธฐ๋ณธ์ ์œผ๋กœ codespace๋Š” ๋ฏธ๋ฆฌ ์„ค์น˜๋œ ์…ธ์˜ ๋ฏธ๋ฆฌ ์ •์˜๋œ ๊ตฌ์„ฑ์„ ํฌํ•จํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด codespace์˜ ํ™ˆ ๋””๋ ‰ํ„ฐ๋ฆฌ์—๋Š” .bashrc ํŒŒ์ผ๊ณผ .zshrc ํŒŒ์ผ์ด ํฌํ•จ๋ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ํŒŒ์ผ์˜ ๋‚ด์šฉ์„ ๋ณ€๊ฒฝํ•œ ๋‹ค์Œ, source ~/.bashrc์™€ ๊ฐ™์€ ๋ช…๋ น์„ ์‚ฌ์šฉํ•˜์—ฌ ์…ธ ๊ตฌ์„ฑ์„ ์—…๋ฐ์ดํŠธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ codespace์—์„œ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ๋‹ค์‹œ ๋นŒ๋“œํ•˜๋ฉด ์ด๋Ÿฌํ•œ ํŒŒ์ผ์˜ ๋ณ€๊ฒฝ ๋‚ด์šฉ์ด ์†์‹ค๋ฉ๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ GitHub Codespaces์— ๋Œ€ํ•œ ์‹ฌ์ธต ๋ถ„์„์„(๋ฅผ) ์ฐธ์กฐํ•˜์„ธ์š”.

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

fish ์…ธ ๋ฌธ์ œ ํ•ด๊ฒฐ

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

Codespace์˜ fish์— ๋Œ€ํ•ด ์›น ๊ธฐ๋ฐ˜ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ VS Code์˜ ํ†ตํ•ฉ ํ„ฐ๋ฏธ๋„ ์ƒ‰ ์„ค์ •์€ ์„ ํƒํ•œ VS Code ํ…Œ๋งˆ์— ๋”ฐ๋ผ ๋‹ฌ๋ผ์ง€๋ฉฐ fish_config ์ธํ„ฐํŽ˜์ด์Šค์—์„œ ์ƒˆ ํ…Œ๋งˆ๋ฅผ ์„ค์ •ํ•˜์—ฌ ์œ„์˜ ์„ค์ •์„ ์žฌ์ •์˜ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

fish๊ฐ€ ๋กœ์ปฌ ์„œ๋ฒ„๋ฅผ ์‹œ์ž‘ํ•˜๋Š” ๊ฒฝ์šฐ GitHub Codespaces์ด(๊ฐ€) ์ „๋‹ฌ๋œ ํฌํŠธ์— ์ œ๊ณตํ•˜๋Š” ๊ธฐ๋ณธ ๋งํฌ๊ฐ€ ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ํŒ์—… ๋ฉ”์‹œ์ง€์—์„œ ๋ธŒ๋ผ์šฐ์ €์—์„œ ์—ด๊ธฐ๋ฅผ ํด๋ฆญํ•˜๋ฉด ์˜ค๋ฅ˜ ํŽ˜์ด์ง€๋กœ ์ด๋™๋ฉ๋‹ˆ๋‹ค.

fish_config๋ฅผ ์œ„ํ•ด ์›น ๊ธฐ๋ฐ˜ ์ธํ„ฐํŽ˜์ด์Šค์— ์•ก์„ธ์Šคํ•˜๋ ค๋ฉด ๋‹ค์Œ์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.

  1. fish ์„ธ์…˜์„ ์‹คํ–‰ํ•˜๋Š” ํ„ฐ๋ฏธ๋„์—์„œ fish_config๋ฅผ ์ž…๋ ฅํ•ฉ๋‹ˆ๋‹ค.

  2. ํ„ฐ๋ฏธ๋„ ์ถœ๋ ฅ์—์„œ Command+ํด๋ฆญ ๋˜๋Š” Ctrl+ํด๋ฆญ์„ ์‚ฌ์šฉํ•˜์—ฌ web_config HTML ํŒŒ์ผ์— ๋Œ€ํ•œ ๋งํฌ๋ฅผ ์—ฝ๋‹ˆ๋‹ค.

    $ fish_config
    Web config started at file:///tmp/web_config60rc9tr3.html
    Hit ENTER to stop.
    
  3. web_config ํŒŒ์ผ์—์„œ Command+ํด๋ฆญ ๋˜๋Š” Ctrl+ํด๋ฆญ์„ ์‚ฌ์šฉํ•˜์—ฌ ์ „๋‹ฌ๋œ ํฌํŠธ์— ๋Œ€ํ•œ ๋งํฌ๋ฅผ ์—ฝ๋‹ˆ๋‹ค.

    <body>
      <p><a href="http://localhost:8000/1b9411c2469e392b96df5e5b28da485b/">Start the Fish Web config</a></p>
    </body>
    

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