์๊ฐ
ํ ํ๋ฆฟ ๋ฆฌํฌ์งํ ๋ฆฌ๋ฅผ ์ค์ ํ๋ฉด ์ฌ์ฉ์๊ฐ GitHub Codespaces์์ ์ฌ๋๋ค์ด ํ๋ ์์ํฌ, ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๋๋ ๊ธฐํ ํ๋ก์ ํธ๋ฅผ ์์ํ๋๋ก ๋์ธ ์ ์์ต๋๋ค. ์ฌ์ฉ์๋ ๋ฆฌํฌ์งํ ๋ฆฌ๋ฅผ ๋ณต์ ํ๊ฑฐ๋ ๋๊ตฌ ๋๋ ๊ธฐํ ์ข ์์ฑ ์ค์น๋ฅผ ๊ฑฑ์ ํ ํ์ ์์ด ํด๋ผ์ฐ๋ ๊ธฐ๋ฐ ๊ฐ๋ฐ ํ๊ฒฝ์์ ์ฆ์ ํ ํ๋ฆฟ ํ์ผ ์์ ์ ์์ํ ์ ์์ต๋๋ค. ์ผ๋ถ ๊ตฌ์ฑ์ ์ฌ์ฉํ๋ฉด ํธ์ง์ ์ํด ์ด๋ฏธ ์ด๋ ค ์๋ ์ค์ํ ํ์ผ์ด ์๋ codespace์์ ์ฌ์ฉ์๋ฅผ ์ค์ ํ ์ ์์ผ๋ฉฐ, ์ ํ๋ฆฌ์ผ์ด์ ์ด VS Code ์น ํธ์ง๊ธฐ ๋ด์ ๋ฏธ๋ฆฌ ๋ณด๊ธฐ ๋ธ๋ผ์ฐ์ ํญ์์ ์ด๋ฏธ ์คํ๋๊ณ ์์ต๋๋ค.
ํ ํ๋ฆฟ ๋ฆฌํฌ์งํ ๋ฆฌ์ ๋ํ ์ฝ๊ธฐ ๊ถํ์ด ์๋ ์ฌ์ฉ์๋ GitHub์ ๋ฆฌํฌ์งํ ๋ฆฌ ํ์ด์ง์์ codespace๋ฅผ ๋ง๋ค ์ ์์ต๋๋ค. ๊ธฐ์กด ๋ฆฌํฌ์งํ ๋ฆฌ๋ฅผ ํ ํ๋ฆฟ์ผ๋ก ์ ํํ ์ ์์ผ๋ฉฐ ์ฌ์ฉ์๊ฐ ํ ํ๋ฆฟ ๋ฆฌํฌ์งํ ๋ฆฌ์์ codespace๋ฅผ ๋ง๋ค ์ ์๋๋ก ์ค์ ์ ๋ณ๊ฒฝํ ํ์๊ฐ ์์ต๋๋ค. ๋ฆฌํฌ์งํ ๋ฆฌ๋ฅผ ํ ํ๋ฆฟ์ผ๋ก ์ ํํ๋ ๋ฐฉ๋ฒ์ ๋ํ ์์ธํ ๋ด์ฉ์ ํ ํ๋ฆฟ ๋ฆฌํฌ์งํ ๋ฆฌ ๋ง๋ค๊ธฐ์(๋ฅผ) ์ฐธ์กฐํ์ธ์.
์ฌ์ฉ์๊ฐ ํ ํ๋ฆฟ์ ์ฐพ๊ณ ๋น ๋ฅด๊ฒ ์์ํ ์ ์๋๋ก ํ ํ๋ฆฟ์ codespace ๋ง๋ค๊ธฐ ํ์ด์ง์ ๋ํ ๋งํฌ๋ฅผ ๊ณต์ ํ ์ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด ํ๋ ์์ํฌ๋ฅผ ์์ํ๊ธฐ ์ํ ์์ต์์์ ์ด ๋งํฌ๋ฅผ ์ ๊ณตํ ์ ์์ต๋๋ค. "๋ฅ ๋งํฌ ๊ณต์ " ์ต์ ์ ์ฌ์ฉํ๊ณ ๋น ๋ฅธ ์์์ ์ ํํ์ฌ ์ฌ์ฉ์๊ฐ ์ codespace๋ฅผ ๋น ๋ฅด๊ฒ ๋ง๋ค๊ฑฐ๋ ์ต๊ทผ codespace๋ฅผ ๋ค์ ์์ํ ์ ์๋ ํ์ด์ง๋ก ์ฐ๊ฒฐ๋๋ ๋งํฌ๋ฅผ ๋น๋ํ ์ ์์ต๋๋ค. ์์ธํ ๋ด์ฉ์ codespaces์ ๋น ๋ฅธ ์์ฑ ๋ฐ ์ฌ๊ฐ ์ง์์(๋ฅผ) ์ฐธ์กฐํ์ธ์.
ํ ํ๋ฆฟ์์ codespace๋ฅผ ๋ง๋ค๋ฉด ํ ํ๋ฆฟ ๋ฆฌํฌ์งํ ๋ฆฌ์ ๋ด์ฉ์ด ํด๋น codespace๋ก ๋ณต์ ๋ฉ๋๋ค. ์ฌ์ฉ์๊ฐ ์ค๋น๊ฐ ๋๋ฉด ๊ฐ์ธ ๊ณ์ ์ด ์ํ GitHub์ ์ ๋ฆฌํฌ์งํ ๋ฆฌ์ ์์ ์ ๊ฒ์ํ ์ ์์ต๋๋ค. ์์ธํ ๋ด์ฉ์ ํ ํ๋ฆฟ์์ codespace ๋ง๋ค๊ธฐ์(๋ฅผ) ์ฐธ์กฐํ์ธ์.
์กฐ์ง์ ์กฐ์ง์ ๊ตฌ์ฑ์๊ณผ ์ธ๋ถ ํ๋ ฅ์ ๋น์ฉ์ ์ง๋ถํ๊ณ ์กฐ์ง์ ๋น์ฉ์ผ๋ก GitHub Codespaces์(๋ฅผ) ์ฌ์ฉํ ์ ์์ต๋๋ค. ์ฌ๊ธฐ์๋ ์กฐ์ง์ด ์์ ํ ํ ํ๋ฆฟ ๋ฆฌํฌ์งํ ๋ฆฌ์์ ๋ง๋ codespace๊ฐ ํฌํจ๋ฉ๋๋ค. ๊ทธ๋ฌ๋ ์ฌ์ฉ์๊ฐ ํ ํ๋ฆฟ์์ ๋ง๋ codespace๋ฅผ ๊ฐ์ธ ๊ณ์ ๊ฒ์ํ๋ ๊ฒฝ์ฐ codespace์ ์์ ๊ถ ๋ฐ ์ฒญ๊ตฌ๋ codespace๋ฅผ ๋ง๋ ์ฌ์ฉ์์๊ฒ ์ ์ก๋ฉ๋๋ค. ์์ธํ ๋ด์ฉ์ GitHub Codespaces ์ฒญ๊ตฌ์(๋ฅผ) ์ฐธ์กฐํ์ธ์.
ํ ํ๋ฆฟ ์ค๋ช
ํ ํ๋ฆฟ์ด ์๋ ๊ฒฝ์ฐ ํ ํ๋ฆฟ ๋ฆฌํฌ์งํ ๋ฆฌ์ ๋ํ ์ถ๊ฐ ์ ๋ณด๋ฅผ ๋ง๋ค์ด ํ ํ๋ฆฟ์ ๋ชฉ์ ๊ณผ ํ ํ๋ฆฟ์ ์์ํ๋ ๋ฐฉ๋ฒ์ ์ค๋ช ํฉ๋๋ค. ์์ธํ ๋ด์ฉ์ ์ถ๊ฐ ์ ๋ณด์(๋ฅผ) ์ฐธ์กฐํ์ธ์.
๋ฆฌํฌ์งํ ๋ฆฌ์ ํ์ด์ง๋ก ์ด๋ํ๊ณ ํ์ด์ง ์ค๋ฅธ์ชฝ์ ์ ๋ณด ์น์ ์์ ์๋ ์(๋ฅผ) ํด๋ฆญํ์ฌ ํ๋ก์ ํธ์ ๋ํ ๊ฐ๋จํ ์ค๋ช ์ ์ ๊ณตํ ์๋ ์์ต๋๋ค.
์์ ํ์ผ ์ถ๊ฐ
ํ ํ๋ฆฟ ๋ฆฌํฌ์งํ ๋ฆฌ์๋ ์ผ๋ฐ์ ์ผ๋ก ์ฌ์ฉ์๊ฐ ๋ผ์ด๋ธ๋ฌ๋ฆฌ, ํ๋ ์์ํฌ ๋๋ ๊ธฐํ ๊ธฐ์ ์ ๋น ๋ฅด๊ฒ ์์ํ ์ ์๋๋ก ์์ฉ๊ตฌ ์ฝ๋๊ฐ ํฌํจ๋ ์์ ํ์ผ์ด ํฌํจ๋์ด ์์ต๋๋ค.
ํฌํจํ ํ์ผ์ ์ข ๋ฅ์ ๋ํ ์ง์นจ์ ๋ค์๊ณผ ๊ฐ์ด GitHub Codespaces์ ๋ํ ๊ณต์ GitHub ํ ํ๋ฆฟ์ ํฌํจ๋ ์์ ํ์ผ์์ ํ์ธํ ์ ์์ต๋๋ค.
-
GitHub์ ์ผ์ชฝ ์ ๋ชจ์๋ฆฌ์์ ์(๋ฅผ) ์ ํํ๊ณ Codespaces๋ฅผ ํด๋ฆญํ ๋ค์ github.com/codespaces "๋ด codespace" ํ์ด์ง๋ก ์ด๋ํฉ๋๋ค.
-
ํ ํ๋ฆฟ์ ์ ์ฒด ๋ชฉ๋ก์ ๋ณด๋ ค๋ฉด "๋น ๋ฅธ ์์ ํ ํ๋ฆฟ ํ์" ์น์ ์์ ๋ชจ๋ ๋ณด๊ธฐ๋ฅผ ํด๋ฆญํฉ๋๋ค.
-
ํ ํ๋ฆฟ์ ๋ํ ํ์ผ์ด ํฌํจ๋ ํ ํ๋ฆฟ ๋ฆฌํฌ์งํ ๋ฆฌ๋ฅผ ๋ณด๋ ค๋ฉด ํ ํ๋ฆฟ์ ์ด๋ฆ์ ํด๋ฆญํฉ๋๋ค.
๊ฐ๋ฐ ์ปจํ ์ด๋ ๊ตฌ์ฑ
ํ
ํ๋ฆฟ ๋ฆฌํฌ์งํ ๋ฆฌ์ ๊ฐ๋ฐ ์ปจํ
์ด๋ ๊ตฌ์ฑ ํ์ผ์ ์ถ๊ฐํ์ฌ GitHub Codespaces์(๋ฅผ) ์ฌ์ฉํ์ฌ ํ
ํ๋ฆฟ์ ์ฌ์ฉํ๋ ์ฌ์ฉ์์ ๋ํ ๊ฐ๋ฐ ํ๊ฒฝ์ ์ฌ์ฉ์ ์ง์ ํ ์ ์์ต๋๋ค. Visual Studio Code์ ๋ฏธ๋ฆฌ ์ ์๋ ๊ตฌ์ฑ ์ค์ ๋ชฉ๋ก์์ ์ ํํ๊ฑฐ๋ ์ฌ์ฉ์ devcontainer.json
๊ณ ์ ์ ํ์ผ์ ์์ฑํ์ฌ ์ฌ์ฉ์ ์ง์ ๊ตฌ์ฑ์ ๋ง๋ค ์ ์์ต๋๋ค. ๊ตฌ์ฑ ํ์ผ์ ์ถ๊ฐํ์ง ์์ผ๋ฉด ๊ธฐ๋ณธ ์ปจํ
์ด๋ ์ด๋ฏธ์ง๊ฐ ์ฌ์ฉ๋ฉ๋๋ค. ์์ธํ ๋ด์ฉ์ ๊ฐ๋ฐ ์ปจํ
์ด๋ ์๊ฐ ๋ฐ ๋ฆฌํฌ์งํ ๋ฆฌ์ ๊ฐ๋ฐ ์ปจํ
์ด๋ ๊ตฌ์ฑ ์ถ๊ฐ์(๋ฅผ) ์ฐธ์กฐํ์ธ์.
์ฐธ๊ณ ํญ๋ชฉ
์ฌ์ฉ์๊ฐ ํ
ํ๋ฆฟ ๋ฆฌํฌ์งํ ๋ฆฌ์ ์ด ํ
ํ๋ฆฟ ์ฌ์ฉ ๋จ์ถ์์ codespace๋ฅผ ๋ง๋ค ๋ ๊ตฌ์ฑ ์ค์์ ์ ํํ ์ ์์ต๋๋ค. codespace๋ ๋ฆฌํฌ์งํ ๋ฆฌ์ ๋ฃจํธ์์ .devcontainer/devcontainer.json
๋๋ .devcontainer.json
์ ์ ์๋ ๊ธฐ๋ณธ ๊ตฌ์ฑ์ ๊ธฐ๋ฐ์ผ๋ก ๋น๋๋ฉ๋๋ค.
์ฌ์ฉ์์๊ฒ ํ
ํ๋ฆฟ์ ๋ํ ์ต์์ ํ๊ฒฝ์ ์ ๊ณตํ๋๋ก ๋๊ตฌ ๋ฐ ์ฌ์ฉ์ ์ง์ ์ ์ฌ์ฉํ์ฌ ๊ฐ๋ฐ ์ปจํ
์ด๋๋ฅผ ๊ตฌ์ฑํด์ผ ํฉ๋๋ค. ์๋ฅผ ๋ค์ด devcontainer.json
ํ์ผ์์ ๋ค์์ ์ํํฉ๋๋ค.
openFiles
์์ฑ์ ์ฌ์ฉํ์ฌ ํ ํ๋ฆฟ์์ codespace๋ฅผ ๋ง๋ค ๋ VS Code ์น ํด๋ผ์ด์ธํธ์์ ์๋์ผ๋ก ์ด๋ฆด ํ์ผ ๋ชฉ๋ก์ ์ ์ํ ์ ์์ต๋๋ค.- ์ฌ์ฉ์๊ฐ ํ ํ๋ฆฟ์์ ์ ํ๋ฆฌ์ผ์ด์ ์ ์คํํ๊ธฐ ์ํด API ํค์ ๊ฐ์ ๊ฐ์ธ ๋น๋ฐ์ ์ ๊ณตํด์ผ ํ๋ ๊ฒฝ์ฐ ์ด๋ฌํ ๋น๋ฐ์ ์ ๊ณตํ๋ผ๋ ๋ฉ์์ง๋ฅผ ํ์ํ ์ ์์ต๋๋ค. ์์ธํ ๋ด์ฉ์ ๋ฆฌํฌ์งํ ๋ฆฌ์ ๊ถ์ฅ๋๋ ๋น๋ฐ ์ง์ ์(๋ฅผ) ์ฐธ์กฐํ์ธ์.
- ํ
ํ๋ฆฟ์ ์น ์์ฉ ํ๋ก๊ทธ๋จ์ฉ ํ์ผ์ด ํฌํจ๋ ๊ฒฝ์ฐ ์ฌ์ฉ์์ codespace์์ ์์ฉ ํ๋ก๊ทธ๋จ์ ์๋์ผ๋ก ์คํํ ์ ์์ต๋๋ค. ์ด ์์
์ ์ํํ๋ ค๋ฉด
postAttachCommand
์์ฑ์ ์ฌ์ฉํ์ฌ VS Code ์น ํด๋ผ์ด์ธํธ๊ฐ codespace์ ์ฐ๊ฒฐํ๋ ์ฆ์ ๋ก์ปฌ ์๋ฒ์์ ์์ฉ ํ๋ก๊ทธ๋จ์ ์์ํ๋ ์คํฌ๋ฆฝํธ๋ฅผ ์คํํ๊ณ , ํฌํธ์onAutoForward
์์ฑ์openPreview
์ ์ค์ ํ์ฌ ํด๋น ํฌํธ์์ ์คํ ์ค์ธ ์์ฉ ํ๋ก๊ทธ๋จ์ VS Code ์น ํด๋ผ์ด์ธํธ์ ํฌํจ๋ ๊ฐ๋จํ ๋ธ๋ผ์ฐ์ ์์ ํ์ํ๋๋ก ์ค์ ํ ์ ์์ต๋๋ค.
React ํ
ํ๋ฆฟ์ ๋ํ ๋ค์ ๊ตฌ์ฑ ์ค์ ์ ์ฌ์ฉ์์ ํธ์ง๊ธฐ์์ app.js
ํ์ผ์ ์ด๊ณ , npm start
์(๋ฅผ) ์คํ(package.json
ํ์ผ์ ์ ์๋จ)ํ์ฌ ๋ก์ปฌ ์๋ฒ๋ฅผ ์์ํ๊ณ , codespace์ ๋ฏธ๋ฆฌ ๋ณด๊ธฐ ๋ธ๋ผ์ฐ์ ํญ์ผ๋ก ํฌํธ 3000
์(๋ฅผ) ์ ๋ฌํฉ๋๋ค.
{
"postAttachCommand": {
"server": "npm start"
},
"portsAttributes": {
"3000": {
"label": "Application",
"onAutoForward": "openPreview"
}
},
"customizations": {
"codespaces": {
"openFiles": ["src/App.js"]
}
}
}
์์ธํ ๋ด์ฉ์ ๊ฐ๋ฐ ์ปจํ ์ด๋ ์น ์ฌ์ดํธ์ ๋ฆฌํฌ์งํ ๋ฆฌ์ codespace์์ ์๋์ผ๋ก ํ์ผ ์ด๊ธฐ ๋ฐ ๊ฐ๋ฐ ์ปจํ ์ด๋ ์ฌ์์ ์ฐธ์กฐํ์ธ์.