
์๋
ํ์ธ์. ์๋ฆฌ์
๋๋ค ๐
์ด๋ฒ ๊ธ์์๋ code-server๋ผ๋ ์คํ์์ค ํ๋ก์ ํธ๋ฅผ ์๊ฐํ๊ณ , ์ค์นํ๋ ๊ณผ์ ์ ์ ๋ฆฌํด๋ณผ๊ฒ์.
code-server๋ VSCode๋ฅผ ์น ๊ธฐ๋ฐ์ผ๋ก ์คํํ ์ ์๋๋ก ํด์ฃผ๋ ์คํ์์ค ํ๋ก์ ํธ์์.
๊ธฐ๊ธฐ๋ง๋ค ๊ฐ๋ฐ ํ๊ฒฝ์ ์ค์ ํ ํ์ ์์ด, ๊ฐ์ธ ์๋ฒ์ ์ค์นํด ๋๊ณ ์น์ผ๋ก ์ ์ํ๋๋ก ๋ง๋ค ์ ์์ด์.
ํนํ, ๋ฐ์คํฌํฑ์์ ์ฌ์ฉํ๋ VSCode์ ๊ฑฐ์ ๋ชจ๋ ๊ธฐ๋ฅ์ ์น ํ๊ฒฝ์์ ์ฌ์ฉํ ์ ์์ด์ ๋ถ๋ด ์์ด ์ฌ์ฉํ ์ ์์ด์.
์ฌ๋ฌ ๊ธฐ๊ธฐ์์ ๊ณตํต๋ ๊ฐ๋ฐ ํ๊ฒฝ์ ์ฌ์ฉํ ์ ์์ด์.
์ฅ์์ ๊ธฐ๊ธฐ๋ฅผ ์ฎ๊ฒจ ๊ฐ๋ฉฐ ์์
ํ์๋์?
์น ๊ธฐ๋ฐ ํ๊ฒฝ์์๋ ์น ์ ์๋ง์ผ๋ก ๊ฐ์ ํ๊ฒฝ์ ์ ์งํ ์ ์์ด์.
๊ธฐ๊ธฐ์ RAM, ๋ฐฐํฐ๋ฆฌ ๋ฑ์ ์ปดํจํ
์์์ ์๋ ์ ์์ด์.
ํ
์คํธ๋ ์ปดํ์ผ์ด ๋ชจ๋ ์๋ฒ์์ ์ด๋ฃจ์ด์ง๊ธฐ ๋๋ฌธ์ ์์
ํ๋ ํ๊ฒฝ์ ์พ์ ํ๊ฒ ๋ง๋ค ์ ์์ด์.
๋ชจ๋ฐ์ผ ํ๋ธ๋ฆฟ์ ๊ฐ๋ฐ ํ๊ฒฝ์ผ๋ก ์ฌ์ฉํ ์ ์์ด์.
Android๋ iPadOS์์ ๊ฐ๋ฐ์ ํ๊ธฐ์๋ ์ํ๊ณ์ ์์ฌ์์ด ๋ง์ฃ .
ํ๋ธ๋ฆฟ์์ ์น์ฑ ํํ๋ก ๊ฐ๋ ฅํ ๋๊ตฌ๋ค์ ์ฌ์ฉํ ์ ์์ด ํ๊ณ๋ฅผ ๋ฒ์ด๋ ์ ์์ด์.
์์ธํ ์ ๋ณด๋ code-server์ Github ํ์ด์ง๋ฅผ ์ฐธ๊ณ ํด์ฃผ์ธ์.
code-server์ ์๊ตฌ ์กฐ๊ฑด์ ๋ค์๊ณผ ๊ฐ์์.
| ์ด์์ฒด์ | RAM | CPU |
|---|---|---|
Linux | 1GB | 2 vCPUs |
๐ Windows์๋ ์ค์นํ ์ ์์ด์!
Windows ๊ธฐ๋ฅ ์ค WSL์ด๋ผ๋ ๊ฒ์ด ์์ด์.
WSL์ Windows์์ ๋ฆฌ๋ ์ค ํ๊ฒฝ์ ์ฌ์ฉํ ์ ์๊ฒ ํด์ฃผ๋ ๊ธฐ๋ฅ์ด์์.
์ด ๊ธฐ๋ฅ์ ํตํด ๋ฆฌ๋ ์ค ํ๊ฒฝ์ ๋ง๋ค๋ฉดcode-server๋ฅผ ๋ฌธ์ ์์ด ์ค์นํ ์ ์์ด์.
๐ ๋ผ์ฆ๋ฒ ๋ฆฌ ํ์ด๋ฅผ ์๋ฒ๋ก ์ฌ์ฉํ ์ ์์ด์!
๋ผ์ฆ๋ฒ ๋ฆฌ ํ์ด๋ ์ ์ฌ์ยท์ ์ ๋ ฅยท์ ๋น์ฉ์ ํน์ง์ผ๋ก ํ๋ ๊ต์ก ๋ชฉ์ ์ผ๋ก ์ถ์๋ ์ปดํจํฐ์์.
๋ง์ฝ ์๋ฒ๋ก ์ธ ๋งํ ์ปดํจํฐ๊ฐ ์๊ณ ,code-server๋ก ๊ฐ๋ฒผ์ด ๊ฐ๋ฐ ํ๋ก์ ํธ๋ฅผ ์งํํ ์์ ์ด๋ผ๋ฉด ๋ผ์ฆ๋ฒ ๋ฆฌ ํ์ด ์ฌ์ฉ์ ์ถ์ฒ๋๋ ค์.
์ ๋ code-server๋ฅผ ๋ฐ๋ก ์ค์นํ์ง ์๊ณ Docker ์ปจํ
์ด๋ ํํ๋ก ๊ตฌ์ฑํ์ด์.
๐ฒ ๋์ปค๋ก ๊ตฌ์ฑํ๋ฉด ์ข์ ์
๊ฐ์ฅ ํฐ ์ฅ์ ์ ๋ณด์์ด์์.
code-server๋ ํฐ๋ฏธ๋ ๊ธฐ๋ฅ์ด ๋ด์ฅ๋์ด ์์ด, ๊ด๋ฆฌ๊ฐ ์ ์ด๋ฃจ์ด์ง์ง ์์ผ๋ฉด ํฐ ๋ณด์ ์ํ์ผ๋ก ๋ค๊ฐ์ฌ ์ ์์ด์.
๋์ปค ์ปจํ ์ด๋๋ก ๊ตฌ์ฑํ๋ฉด ํ๋ก๊ทธ๋จ์ด ์ธ๋ถ ํ๊ฒฝ์ ์ํฅ์ ์ค ์ ์๋๋ก ๋ง๋ค ์ ์์ด์.๋ํ, ๊ด๋ฆฌ๊ฐ ๊ฐํธํด์ง๋ค๋ ์ฅ์ ๋ ์์ด์.
์๋ฒ๋ฅผ ์ฎ๊ฒจ์ผ ํ ๋, ์๋๋ผ๋ฉด ์ผ์ผ์ด ํ๋ก๊ทธ๋จ์ ์๋ก ์ค์นํ๊ณ ์ค์ ํด์ผ ํด์.
๊ทธ๋ฌ๋ ๋์ปค ์ปจํ ์ด๋๋ก ์ค์นํ๋ฉด, ์ปจํ ์ด๋๋ฅผ ๊ทธ๋๋ก ์ฎ๊ธฐ๋ฉด ๋ฐ๋ก ํ๊ฒฝ ๊ตฌ์ฑ์ ๋ง์น ์ ์์ด์.
๋จผ์ ๋์ปค ์ปจํ
์ด๋๋ฅผ ๊ตฌ์ฑํ๋ ์คํฌ๋ฆฝํธ๋ฅผ ์์ฑํด์ผ ํด์.
๋ค์ Github ํ์ด์ง์์ ๊ถ์ฅํ๋ ๋ด์ฉ์ ์ฐธ๊ณ ํ์ด์.
์ ๋ ์๋์ฒ๋ผ ์๋ฒ์ docker-compose.yml ํ์ผ์ ์์ฑํ์ด์.
์๋ ๋ด์ฉ์ ๊ทธ๋๋ก ์ฌ์ฉํ๋ค๋ฉด, ์ ์ฅ์ ์ฐ๊ฒฐ ๋ถ๋ถ ๋ฑ์ ํ๊ฒฝ์ ๋ง์ถ์ด ์ค์ ํ๋ฉด ๋ผ์.
# docker-compose.yml
services:
code-server:
image: lscr.io/linuxserver/code-server:latest
container_name: code-server
environment:
# ํ์ ์ฌํญ
- PUID=1000 # ์ปจํ
์ด๋ ๋ด๋ถ UID: ์๋ฒ ๊ณ์ ๊ณผ ์ผ์นํ๊ฒ ์ค์
- PGID=1000 # ์ปจํ
์ด๋ ๋ด๋ถ GID: ์๋ฒ ๊ณ์ ๊ณผ ์ผ์นํ๊ฒ ์ค์
- TZ=Asia/Seoul # ์๊ฐ๋
# ์ ํ ์ฌํญ
- HASHED_PASSWORD= # code-server ๋น๋ฐ๋ฒํธ (ํด์)
- DEFAULT_WORKSPACE=/workspace # ๊ธฐ๋ณธ ์์
๊ณต๊ฐ
- PWA_APPNAME=code-server # ์น์ฑ ์ด๋ฆ
volumes:
- /home/sound/workspace/:/workspace # ์ปจํ
์ด๋ ๋ด๋ถ ๊ณต๊ฐ์ ์ธ๋ถ์ ์ฐ๊ฒฐ
ports:
- 8443:8443 # ํฌํธ
restart: unless-stopped
ํจ์ค์๋๋ ํด์๋ฅผ ๊ถ์ฅํด์.
ํด์๋ก ๋ง๋ค๋ฉด ๋น๋ฐ๋ฒํธ๊ฐ ๋ด๋ถ์ ์ ์ฅ๋์ง ์๊ฒ ๋ง๋ค ์ ์๊ธฐ ๋๋ฌธ์ ๋ ์์ ํด์.
์ ๋ argon2๋ก ํด์๋ฅผ ์์ฑํ์ด์.
# ์ค์ ์ฌ์ฉํ ๋์ "somesalt" ๋ถ๋ถ์ ๋์ ๋ฌธ์๋ก ๋ฃ์ด์ผ ํจ
> echo -n "์ฌ์ฉํ ๋น๋ฐ๋ฒํธ" | argon2 "somesalt" -e -id
# ์์ฑ๋ ํด์๋ฅผ ์ ํ์ผ์ ์ฝ์
, ์ด๋ '$' ๋ฌธ์๋ '$$'์ผ๋ก ๋ฐ๊พธ์ด์ผ ํจ (..2id$v.. โ ..2id$$v..)
$argon2id$v=19$m=4096,t=3,p=1$c29tZXNhbHQ$qM5v2OCb81FOA5QJnauCgAtgFoVoWbINukaWDSJDa1s
โ ๏ธ ์ฐธ๊ณ ํด์ฃผ์ธ์!
์๋ ์ฌ์ง์ ์ด๋ฏธ ๋์ปค๊ฐ ์ค์น๋
Ubuntu 24.04ํ๊ฒฝ์์ ์ดฌ์ํ์ด์.
์ฌ์ฉํ๋ ๋ช ๋ น์ด์ ์ข ๋ฅ๋ ๊ฒฐ๊ณผ๋ ํ๊ฒฝ์ ๋ฐ๋ผ ์กฐ๊ธ ๋ค๋ฅผ ์ ์์ด์.
์ด์ ์์ฑํ docker-compose.yml ํ์ผ์ ์ด์ฉํด ๋์ปค ์ปจํ
์ด๋๋ก ๋น๋ํ ๊ฒ์.
ํ์ผ์ด ์๋ ์์น์์ ๋ค์ ๋ช
๋ น์ด๋ฅผ ์
๋ ฅํ๋ฉด ๋น๋ํ ์ ์์ด์.
> docker-compose up -d --build

๋๋์ด code-server๋ฅผ ๋์ปค๋ก ์คํํ๋ ๊ฒ๊น์ง ์ฑ๊ณตํ์ด์!
๊ทธ๋ฌ๋ ์์ง์ ์๋ฒ ์ธ๋ถ์์ ์ ์ํ ์ ์์ต๋๋ค.
์๋ฒ์ ๋ฐฉํ๋ฒฝ์ ์ด์ด์ผ ์ธ๋ถ์์ ์ ์ํ๋ ๊ฒ์ ๋ง๊ณ ์๊ธฐ ๋๋ฌธ์ด์์.
Ubuntu์ ๊ธฐ๋ณธ ๋ฐฉํ๋ฒฝ์ UFW์์.
์ธ๋ถ ์ ์์ด ๊ฐ๋ฅํ๋๋ก UFW์ ๊ท์น์ ์ถ๊ฐํ ๊ฒ์.
# docker-compose.yml ํ์ผ์ ์์ฑํ ํฌํธ๋ฅผ ํ์ฉ
> ufw allow 8443/tcp

์ด์ ์๋ฒ ์ธ๋ถ์์ ์ ๊ทผํ ์ ์์ด์.
์น ๋ธ๋ผ์ฐ์ ์ http://<์๋ฒ ์ฃผ์>:<ํฌํธ> ํํ๋ก ์ฃผ์๋ฅผ ์
๋ ฅํ๋ฉด ์ ์ํ ์ ์์ด์.

code-server ์ ์ ์ ๋์๋์?
์ด์ ์น ๋ธ๋ผ์ฐ์ ๋ก ์ ์ํ ํ ์ํธ๋ฅผ ์
๋ ฅํ๋ฉด VSCode๋ฅผ ์น์ผ๋ก ์ฌ์ฉํ ์ ์์ด์.
์ข ๋ ํธํ ์ฌ์ฉ์ ์ํด ํ๊ตญ์ด ์ธ์ด ํ์ฅ ๊ธฐ๋ฅ์ ์ค์นํด๋ณผ๊ฒ์.

์ผ์ชฝ Extensions์์ Korean Language Pack์ ์ค์นํ์ด์.
์ค์น๋ฅผ ์๋ฃํ๋ค๋ฉด ์ธ์ด๋ฅผ ํ๊ตญ์ด๋ก ์ ์ฉํด๋ณผ๊ฒ์
๊ฒ์ ๋ฐ์ >configure display language๋ฅผ ๊ฒ์ํด์ ์ธ์ด๋ฅผ ์ค์ ํ ์ ์์ด์.

๋ค๋ฅธ ํ์ฅ ํ๋ก๊ทธ๋จ๋ ๋น์ทํ๊ฒ ์ค์นํ ์ ์์ด์.
โ ๏ธ ์ฐธ๊ณ ํด์ฃผ์ธ์!
VSCode๋ ์คํ ์์ค์ธ ๊ฒ์ ๋ฐํด, Microsoft์ ๋ง์ผํ๋ ์ด์ค๋ ์ธ๋ถ์ ์ ๊ณต๋์ง ์์์.
๋ฐ๋ผ์code-server์์๋ Microsoft์ ๋ง์ผํ๋ ์ด์ค๊ฐ ์๋ Open-VSX ๋ง์ผํ๋ ์ด์ค๊ฐ ์ ๊ณต๋ผ์.
์์ธํ ๋ด์ฉ์ ๋ค์ ํ์ด์ง์์ ํ์ธํ ์ ์์ด์.
code-server๋ฅผ ๋์ปค ์ปจํ
์ด๋๋ก ์คํํ๋ฉด ์์
๊ณต๊ฐ์ด ๋์ปค ๋ด๋ถ๊ฐ ๋ผ์.
๋ง์ฝ ์ปจํ
์ด๋๊ฐ ์ญ์ ๋๋ฉด ์์
ํ ๊ฒฐ๊ณผ๋ฌผ๋ ๊ฐ์ด ์์ด์ง์ฃ .
docker-compose.yml์ volumes ์ค์ ์ ํตํด ๋์ปค ๋ด๋ถ์ ์ธ๋ถ๋ฅผ ์ฐ๊ฒฐํ ์ ์์ด์.
์์
๊ณต๊ฐ์ ์ธ๋ถ์ ์ฐ๊ฒฐํด๋์ผ๋ฉด ์์
๊ณต๊ฐ์ ์ปจํ
์ด๋ ์ธ๋ถ ๊ณต๊ฐ์ ๊ทธ๋๋ก ์ฌ์ฉํ ์ ์์ด์.

์ง๊ธ๊น์ง code-server๋ฅผ ๋์ปค ์ปจํ
์ด๋๋ก ์์ฑํ๊ณ ์คํํ๋ ๊ฒ๊น์ง ํด ๋ณด์์์.
๋ค์ ๊ธ์์๋ code-server๋ฅผ HTTPS๋ก ์คํํ ์ ์๋๋ก ๋ง๋ค์ด๋ณผ๊ฒ์.
โ ์ง๊ธ๊น์ง ํ ์ผ
- docker-compose๋ก code-server ์ปจํ ์ด๋ ๊ตฌ์ฑํ๊ธฐ
- ๋ฐฉํ๋ฒฝ ์ค์ ์ผ๋ก ์ธ๋ถ ์ ์ ํ์ฉํ๊ธฐ
- ์น ๋ธ๋ผ์ฐ์ ์์ code-server ์ ์ ํ์ธํ๊ธฐ
๐ ์์ผ๋ก ํ ์ผ
- TLS ์ธ์ฆ์ ์ ์ฉํ๊ธฐ
- HTTPS๋ก ์ ์ํ ์ ์๋๋ก ๋ง๋ค๊ธฐ