๐ 30๋ถ ๋ง์ ๋๋ด๋ ์๋์ฐ 11 WSL2 ๊ฐ๋ฐํ๊ฒฝ ์ธํ : ์ฝ๊ณ ๋น ๋ฅธ ๋ง์คํฐ ๊ฐ์ด๋!
๋ชฉ์ฐจ
- WSL2, ์ ๊ฐ๋ฐ์์๊ฒ ํ์์ผ๊น?
- ์ด๊ณ ์ WSL2 ์ค์น ๋ฐ ์ด๊ธฐ ์ค์ (๋จ, 10๋ถ!)
- 2.1. ํ์ ์กฐ๊ฑด ํ์ธ ๋ฐ 'wsl --install' ๋ช ๋ น์ด ์ฌ์ฉ
- 2.2. Linux ๋ฐฐํฌํ ์ ํ ๋ฐ ์ด๊ธฐ ์ฌ์ฉ์ ์ค์
- WSL2 ์ฌํ ํ์ฉ: Windows์์ ์๋ฒฝํ ํตํฉ
- 3.1. ํ์ผ ์์คํ ์ ๊ทผ: Windows์ Linux ๊ฐ์ ์์ ๋ก์ด ์ด๋
- 3.2. ํฐ๋ฏธ๋ ํ๊ฒฝ ๊ฐ์ : Windows Terminal ํ์ฉ
- VS Code๋ฅผ ํ์ฉํ WSL2 ๊ฐ๋ฐ ํ๊ฒฝ ๊ตฌ์ถ
- 4.1. Remote - WSL ํ์ฅ ์ค์น
- 4.2. ํ๋ก์ ํธ ํด๋ ์ด๊ธฐ ๋ฐ ๊ฐ๋ฐ ์์
- Docker Desktop with WSL2: ์ปจํ
์ด๋ ๊ฐ๋ฐ ํ๊ฒฝ์ ์์ฑ
- 5.1. Docker Desktop ์ค์น ๋ฐ WSL2 ํตํฉ ์ค์
- 5.2. Docker ์ปจํ ์ด๋ ์คํ ๋ฐ ๊ด๋ฆฌ
1. WSL2, ์ ๊ฐ๋ฐ์์๊ฒ ํ์์ผ๊น?
์ต์ ๊ฐ๋ฐ ํธ๋ ๋๋ Linux ๊ธฐ๋ฐ์ ํ๊ฒฝ์ ํ์ค์ผ๋ก ์ผ๊ณ ์์ต๋๋ค. ์๋ฒ ์ด์์ฒด์ ๋ถํฐ ์ปจํ ์ด๋ ๊ธฐ์ (Docker, Kubernetes)๊น์ง ๋๋ถ๋ถ Linux ํ๊ฒฝ์์ ๊ฐ์ฅ ์์ ์ ์ด๊ณ ํจ์จ์ ์ผ๋ก ์๋ํฉ๋๋ค. ํ์ง๋ง ๋ง์ ๊ฐ๋ฐ์๊ฐ Windows ์ด์์ฒด์ ์ ํธ๋ฆฌํจ์ ํฌ๊ธฐํ๊ธฐ ์ด๋ ต์ฃ . ์ฌ๊ธฐ์ **WSL2 (Windows Subsystem for Linux 2)**๊ฐ ํด๋ต์ ์ ์ํฉ๋๋ค.
WSL2๋ ๊ฐ์ ๋จธ์ (VM)์ ์ฌ์ฉํ์ง ์๊ณ ๋ ๊ฒฝ๋ํ๋ ๊ฐ์ํ ๊ธฐ์ ์ ํตํด Windows ๋ด์์ ์์ ํ Linux ์ปค๋์ ์คํํ ์ ์๋๋ก ํฉ๋๋ค. ์ด๋ ๊ธฐ์กด WSL1์ ํธํ์ฑ ๋ฐ ์ฑ๋ฅ ํ๊ณ๋ฅผ ์์ ํ ๊ทน๋ณตํฉ๋๋ค. ํนํ, Docker์ ๊ฐ์ I/O ์ง์ฝ์ ์ธ ์์ ์ด๋ ๋คํธ์ํฌ ์ฑ๋ฅ์ด ์ค์ํ ๊ฐ๋ฐ ํ๊ฒฝ์์ ๋ค์ดํฐ๋ธ Linux์ ์คํ๋ ์๋๋ฅผ ์ ๊ณตํ์ฌ, Windows ์ฌ์ฉ์๋ ๋ณต์กํ ๋์ผ ๋ถํ ์ด๋ ๋ฌด๊ฑฐ์ด VM ์์ด ์ต์ ์ ๊ฐ๋ฐ ํ๊ฒฝ์ ๊ตฌ์ถํ ์ ์๊ฒ ํด์ค๋๋ค. Windows 11์ WSL2๋ฅผ ๊ธฐ๋ณธ ํตํฉํ์ฌ ๊ทธ ์ค์น์ ์ฌ์ฉ ํธ์์ฑ์ด ๊ทน๋ํ๋์์ต๋๋ค.
2. ์ด๊ณ ์ WSL2 ์ค์น ๋ฐ ์ด๊ธฐ ์ค์ (๋จ, 10๋ถ!)
Windows 11์์๋ ๊ณผ๊ฑฐ์ฒ๋ผ ๋ณต์กํ Windows ๊ธฐ๋ฅ ํ์ฑํ๋ ์คํ ์ด ์ค์น ๊ณผ์ ์์ด ๋จ ํ๋์ ๋ช ๋ น์ด๋ก WSL2 ํ๊ฒฝ์ ์ค์ ํ ์ ์์ต๋๋ค. ์ด๊ฒ์ด ๋ฐ๋ก ๊ฐ์ฅ ๋น ๋ฅด๊ณ ์ฌ์ด ๋ฐฉ๋ฒ์ ๋๋ค.
2.1. ํ์ ์กฐ๊ฑด ํ์ธ ๋ฐ 'wsl --install' ๋ช ๋ น์ด ์ฌ์ฉ
๋จผ์ , Windows 11์ด ์ต์ ์ ๋ฐ์ดํธ ์ํ์ธ์ง ํ์ธํ์ธ์. ์ดํ, ๊ด๋ฆฌ์ ๊ถํ์ผ๋ก PowerShell ๋๋ ๋ช ๋ น ํ๋กฌํํธ๋ฅผ ์คํํฉ๋๋ค.
wsl --install
์ด ๋ช ๋ น์ ๋ค์ ์์ ์ ์๋์ผ๋ก ์ฒ๋ฆฌํฉ๋๋ค:
- ๊ฐ์ ๋จธ์ ํ๋ซํผ ๋ฐ Linux์ฉ Windows ํ์ ์์คํ ์ ํ์ ๊ธฐ๋ฅ ํ์ฑํ.
- ํ์ํ WSL ์ปค๋ ์ ๋ฐ์ดํธ ๋ค์ด๋ก๋ ๋ฐ ์ค์น.
- Ubuntu (๊ธฐ๋ณธ ๋ฐฐํฌํ) ์ค์น.
์ค์น๊ฐ ์๋ฃ๋๋ฉด ์ปดํจํฐ๋ฅผ ์ฌ๋ถํ ํ๋ผ๋ ๋ฉ์์ง๊ฐ ๋ํ๋ ์ ์์ต๋๋ค. ์ฌ๋ถํ ํ์๋ Ubuntu ํฐ๋ฏธ๋์ด ์๋์ผ๋ก ์คํ๋์ด ์ด๊ธฐ ์ค์ ๋จ๊ณ๋ก ์ง์ ํฉ๋๋ค.
2.2. Linux ๋ฐฐํฌํ ์ ํ ๋ฐ ์ด๊ธฐ ์ฌ์ฉ์ ์ค์
wsl --install ๋ช
๋ น์ ๊ธฐ๋ณธ์ ์ผ๋ก Ubuntu๋ฅผ ์ค์นํฉ๋๋ค. ๋ง์ฝ ๋ค๋ฅธ ๋ฐฐํฌํ(์: Debian, Kali, SUSE)์ ์ค์นํ๊ณ ์ถ๋ค๋ฉด, ์ค์น ํ ๋ค์ ๋ช
๋ น์ ์ฌ์ฉํ์ฌ ์ฌ์ฉ ๊ฐ๋ฅํ ๋ชฉ๋ก์ ํ์ธํ๊ณ ์ํ๋ ๋ฐฐํฌํ์ ์ค์นํ ์ ์์ต๋๋ค.
wsl --list --online
wsl --install -d <๋ฐฐํฌํ ์ด๋ฆ> # ์: wsl --install -d Debian
์๋์ผ๋ก ์คํ๋ Ubuntu ํฐ๋ฏธ๋์์ ์๋ก์ด UNIX ์ฌ์ฉ์ ๊ณ์ ๊ณผ ์ํธ๋ฅผ ์ค์ ํด์ผ ํฉ๋๋ค. ์ด ๊ณ์ ์ ํฅํ sudo ๋ช
๋ น์ ์ฌ์ฉํ ๋ ํ์ํ๋ฉฐ, Windows ๊ณ์ ๊ณผ๋ ๋ณ๊ฐ์
๋๋ค.
ํ: ์ค์น ์งํ์๋ ์์คํ ์ ์ต์ ์ํ๋ก ์ ์งํ๊ธฐ ์ํด ๋ค์ ๋ช ๋ น์ ์คํํ๋ ๊ฒ์ด ์ข์ต๋๋ค.
sudo apt update && sudo apt upgrade
3. WSL2 ์ฌํ ํ์ฉ: Windows์์ ์๋ฒฝํ ํตํฉ
WSL2์ ์ง์ ํ ์ฅ์ ์ Windows ์ด์์ฒด์ ์์ ๋งค๋๋ฌ์ด ํตํฉ์ ์์ต๋๋ค. ๊ฐ๋ฐ์๋ ์ด ํตํฉ ๊ธฐ๋ฅ์ ํ์ฉํ์ฌ Linux์ Windows ํ๊ฒฝ์ ์์ ๋กญ๊ฒ ๋๋๋ค ์ ์์ต๋๋ค.
3.1. ํ์ผ ์์คํ ์ ๊ทผ: Windows์ Linux ๊ฐ์ ์์ ๋ก์ด ์ด๋
WSL2 ํ๊ฒฝ ๋ด์์ Windows ํ์ผ์ ์ ๊ทผํ ๋๋ /mnt/<๋๋ผ์ด๋ธ ๋ฌธ์> ๊ฒฝ๋ก๋ฅผ ์ฌ์ฉํฉ๋๋ค. ์๋ฅผ ๋ค์ด, Windows์ C: ๋๋ผ์ด๋ธ๋ /mnt/c๋ก ์ ๊ทผํ ์ ์์ต๋๋ค. ํ์ง๋ง, ์ฑ๋ฅ์ ๊ทน๋ํํ๊ณ ํ์ผ ๋ณ๊ฒฝ ์๋ฆผ ๊ธฐ๋ฅ์ ์๋ฒฝํ๊ฒ ์ฌ์ฉํ๊ธฐ ์ํด์๋ ํ๋ก์ ํธ ํ์ผ์ Linux ํ๊ฒฝ ๋ด์ ๋๋ ๊ฒ์ด ํต์ฌ์
๋๋ค.
WSL2 ํ๊ฒฝ์ ํ์ผ์ Windows ํ์ผ ํ์๊ธฐ์์ ๋คํธ์ํฌ ๋๋ผ์ด๋ธ์ฒ๋ผ ์ ๊ทผํ ์ ์์ต๋๋ค. ํ์ผ ํ์๊ธฐ ์ฃผ์์ฐฝ์ \\wsl$์ ์
๋ ฅํ๋ฉด ํ์ฌ ์ค์น๋ ๋ชจ๋ Linux ๋ฐฐํฌํ ํด๋๊ฐ ๋ํ๋๋ฉฐ, ์ด๋ฅผ ํตํด Windows ์ฑ์ผ๋ก Linux ํ์ผ์ ์ฝ๊ฒ ์ ๊ทผํ๊ณ ํธ์งํ ์ ์์ต๋๋ค. WSL2 ๋ด๋ถ ๊ฒฝ๋ก($HOME)์ ํ๋ก์ ํธ๋ฅผ ์ ์ฅํ๊ณ , Windows ๋๊ตฌ๋ฅผ ํตํด ์ ๊ทผํ๋ ๋ฐฉ์์ด ์ต์ ์ ์ํฌํ๋ก์ฐ๋ฅผ ์ ๊ณตํฉ๋๋ค.
3.2. ํฐ๋ฏธ๋ ํ๊ฒฝ ๊ฐ์ : Windows Terminal ํ์ฉ
Windows 11์ Windows Terminal์ WSL ํ๊ฒฝ์ ์ํ ์ต๊ณ ์ ํฐ๋ฏธ๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋๋ค. ์ฌ๋ฌ ํญ์์ PowerShell, ๋ช ๋ น ํ๋กฌํํธ, ๊ทธ๋ฆฌ๊ณ ์ค์น๋ ๋ชจ๋ WSL ๋ฐฐํฌํ(์: Ubuntu, Debian) ์ธ์ ์ ๋์์ ์คํํ ์ ์์ต๋๋ค.
Windows Terminal์ ์คํํ๋ฉด WSL ์ธ์ ์ด ๋ชฉ๋ก์ ์๋์ผ๋ก ๋ํ๋๋ฉฐ, GPU ๊ฐ์ ๊ธฐ๋ฅ์ ์ง์ํ์ฌ ํ ์คํธ ๋ ๋๋ง์ด ๋น ๋ฅด๊ณ ๋ถ๋๋ฝ์ต๋๋ค. ํฐํธ ์ค์ , ์์ ์คํค๋ง ๋ฑ์ ์ปค์คํฐ๋ง์ด์งํ์ฌ ์๊ฐ์ ์ผ๋ก ํธ์ํ๊ณ ํจ์จ์ ์ธ ๊ฐ๋ฐ ํ๊ฒฝ์ ๊ตฌ์ถํ ์ ์์ต๋๋ค.
4. VS Code๋ฅผ ํ์ฉํ WSL2 ๊ฐ๋ฐ ํ๊ฒฝ ๊ตฌ์ถ
**Visual Studio Code (VS Code)**๋ WSL2 ๊ฐ๋ฐ ํ๊ฒฝ์ ์ฌ์ค์์ ํ์ค ๋๊ตฌ์ ๋๋ค. Remote - WSL ํ์ฅ์ ํตํด Windows ์ฑ์ฒ๋ผ VS Code๋ฅผ ์คํํ๋ฉด์, ๋ชจ๋ ์ฝ๋ ํธ์ง, ๋น๋, ๋๋ฒ๊น ์์ ์ WSL2์ Linux ํ๊ฒฝ์์ ์ง์ ์ํํ ์ ์์ต๋๋ค.
4.1. Remote - WSL ํ์ฅ ์ค์น
- VS Code๋ฅผ ์คํํฉ๋๋ค.
- ์ข์ธก ํ์ฅ(Extensions) ํญ์ ์ด๊ณ **"Remote - WSL"**์ ๊ฒ์ํ์ฌ ์ค์นํฉ๋๋ค.
์ด ํ์ฅ์ ์ค์นํ๋ฉด, VS Code๊ฐ Windows์์ ์คํ๋์ง๋ง VS Code Server๋ผ๋ ํ๋ก์ธ์ค๊ฐ WSL2 ํ๊ฒฝ ๋ด์ ์๋์ผ๋ก ์ค์น๋ฉ๋๋ค. ์ด ์๋ฒ๊ฐ ์ค์ Linux ํ๊ฒฝ์์์ ๋ชจ๋ ์์ ์ ์ฒ๋ฆฌํ๋ฏ๋ก, ๊ฐ๋ฐ์๋ ๋ง์น ๋ค์ดํฐ๋ธ Linux์์ ๊ฐ๋ฐํ๋ ๊ฒ๊ณผ ๊ฐ์ ๊ฒฝํ์ ์ป๊ฒ ๋ฉ๋๋ค.
4.2. ํ๋ก์ ํธ ํด๋ ์ด๊ธฐ ๋ฐ ๊ฐ๋ฐ ์์
ํ๋ก์ ํธ ํด๋๋ฅผ WSL2 ๋ด๋ถ์ ์์น์ํจ ํ (์: ~/projects/my_app), ๋ค์ ๋ ๊ฐ์ง ๋ฐฉ๋ฒ ์ค ํ๋๋ก VS Code๋ฅผ ์คํํฉ๋๋ค.
๋ฐฉ๋ฒ 1: WSL ํฐ๋ฏธ๋์์ ์คํ (๊ฐ์ฅ ๊ถ์ฅ)
WSL ํฐ๋ฏธ๋์์ ํ๋ก์ ํธ ํด๋๋ก ์ด๋ํ ํ ๋ค์ ๋ช
๋ น์ด๋ฅผ ์
๋ ฅํฉ๋๋ค.
code .
์ด ๋ช ๋ น์ด๋ Windows์ ์ค์น๋ VS Code๋ฅผ ์ด๋ฉด์, ํ์ฌ WSL ํด๋๋ฅผ ์๊ฒฉ์ผ๋ก ์ฐ๊ฒฐํ์ฌ ์ค๋๋ค. VS Code ์ผ์ชฝ ํ๋จ์ **"WSL: Ubuntu"**์ ๊ฐ์ ํ์๊ฐ ๋ํ๋๋ฉด ์ฑ๊ณต์ ์ผ๋ก ์ฐ๊ฒฐ๋ ๊ฒ์ ๋๋ค.
๋ฐฉ๋ฒ 2: VS Code ๋ช
๋ น์ด ํ๋ ํธ ์ฌ์ฉ
VS Code๋ฅผ ์ฐ ํ Ctrl+Shift+P๋ฅผ ๋๋ฌ ๋ช
๋ น์ด ํ๋ ํธ๋ฅผ ์ด๊ณ , **"Remote-WSL: Open Folder in WSL..."**์ ๊ฒ์ํ์ฌ ์ํ๋ WSL2 ๊ฒฝ๋ก๋ฅผ ์ ํํฉ๋๋ค.
์ดํ๋ถํฐ๋ VS Code์์ ํฐ๋ฏธ๋์ ์ด๋ฉด Linux ์ ธ์ด ์คํ๋๋ฉฐ, ๋ชจ๋ ๊ฐ๋ฐ ์ธ์ด ๋ฐํ์, ์ปดํ์ผ๋ฌ, Node.js, Python, Ruby ๋ฑ์ ํ๊ฒฝ์ด WSL2 ๋ด๋ถ์ ์ค์น๋ ๊ฒ์ ์ฌ์ฉํ๊ฒ ๋์ด ์๋ฒฝํ๊ฒ ๊ฒฉ๋ฆฌ๋๊ณ ํจ์จ์ ์ธ ๊ฐ๋ฐ์ด ๊ฐ๋ฅํด์ง๋๋ค.
5. Docker Desktop with WSL2: ์ปจํ ์ด๋ ๊ฐ๋ฐ ํ๊ฒฝ์ ์์ฑ
ํ๋ ๊ฐ๋ฐ์์ Docker ์ปจํ ์ด๋ ๊ธฐ์ ์ ํ์์ ๋๋ค. WSL2๋ Docker Desktop๊ณผ ์ฐ๋ํ์ฌ ๊ฐ์ฅ ๋น ๋ฅด๊ณ ๋ค์ดํฐ๋ธ์ ๊ฐ๊น์ด ์ปจํ ์ด๋ ๊ฐ๋ฐ ํ๊ฒฝ์ ์ ๊ณตํฉ๋๋ค.
5.1. Docker Desktop ์ค์น ๋ฐ WSL2 ํตํฉ ์ค์
- Docker Desktop for Windows๋ฅผ ๋ค์ด๋ก๋ํ์ฌ ์ค์นํฉ๋๋ค.
- ์ค์น ์ค ๋๋ ์ค์น ํ Docker Desktop ์ค์ (Settings)์์ "Use the WSL 2 based engine" ์ต์ ์ด ํ์ฑํ๋์ด ์๋์ง ํ์ธํฉ๋๋ค.
- "Resources" $\rightarrow$ "WSL Integration" ํญ์ผ๋ก ์ด๋ํ์ฌ, ๊ฐ๋ฐ์ ์ฌ์ฉํ Linux ๋ฐฐํฌํ (์: Ubuntu)์ ๋ํ ํตํฉ ์ต์ ์ ํ์ฑํํฉ๋๋ค.
์ด ์ค์ ์ด ์๋ฃ๋๋ฉด, Windows์ Docker Desktop์ด WSL2 ์ปค๋์ ๊ธฐ๋ฐ์ผ๋ก Docker ๋ฐ๋ชฌ์ ์คํํ๊ฒ ๋ฉ๋๋ค.
5.2. Docker ์ปจํ ์ด๋ ์คํ ๋ฐ ๊ด๋ฆฌ
WSL2 ํฐ๋ฏธ๋(Ubuntu)์์ docker version ๋ช
๋ น์ ์
๋ ฅํ์ฌ Docker๊ฐ ์ ์์ ์ผ๋ก ์ธ์๋๋์ง ํ์ธํฉ๋๋ค.
docker run -d -p 8080:80 docker/getting-started
์์ ๊ฐ์ด WSL2 ํฐ๋ฏธ๋์์ ์คํํ Docker ๋ช ๋ น์ Windows์ Docker Desktop์ ํตํด ์คํ๋์ง๋ง, WSL2์ Linux ํ๊ฒฝ์์ ์คํ๋๋ ๊ฒ์ฒ๋ผ ์๋ํฉ๋๋ค. ์ด์ ๊ฐ๋ฐ์๋ Windows์ Linux์ ๊ฒฝ๊ณ๋ฅผ ํ๋ฌผ๊ณ ๊ฐ์ฅ ํจ์จ์ ์ธ ์ปจํ ์ด๋ ๊ธฐ๋ฐ ๊ฐ๋ฐ ํ๊ฒฝ์ ์๋ฒฝํ๊ฒ ๊ตฌ์ถํ ๊ฒ์ ๋๋ค. ์ด ํ๊ฒฝ์ ๋น๋ ์๋, ํ์ผ I/O ์ฑ๋ฅ, ๋คํธ์ํฌ ์ฑ๋ฅ ๋ฑ ๋ชจ๋ ๋ฉด์์ ์ต์ ํ๋์ด, ๊ฐ๋ฐ ์์ฐ์ฑ์ ๊ทน๋ํํฉ๋๋ค.
๋ ์์ธํ ์ฐธ๊ณ ์๋ฃ๋ ์๋๋ฅผ ์ฐธ๊ณ ํ์ธ์.
๋ ์์ธํ ์ฐธ๊ณ ์๋ฃ ๋ณด๊ธฐ