์ด๋ณด์๋ฅผ ์ํ ๊ฐ๋ฐ ํ๊ฒฝ ๊ตฌ์ถ: Windows์์ VS Code๋ก Python ๊ฐ๋ฐ ์์ํ๊ธฐ(์ค์นยท๊ฐ์ํ๊ฒฝยท์ฒซ ์คํ๊น์ง)
์ด๋ณด์๋ฅผ ์ํ ๊ฐ๋ฐ ํ๊ฒฝ ๊ตฌ์ถ: Windows์์ VS Code๋ก Python ๊ฐ๋ฐ ์์ํ๊ธฐ(์ค์นยท๊ฐ์ํ๊ฒฝยท์ฒซ ์คํ๊น์ง) ์ฒ์ ๊ฐ๋ฐ์ ์์...
์ด๋ณด์๋ฅผ ์ํ ๊ฐ๋ฐ ํ๊ฒฝ ๊ตฌ์ถ: Windows์์ VS Code๋ก Python ๊ฐ๋ฐ ์์ํ๊ธฐ(์ค์นยท๊ฐ์ํ๊ฒฝยท์ฒซ ์คํ๊น์ง)
์ฒ์ ๊ฐ๋ฐ์ ์์ํ ๋ ๊ฐ์ฅ ๋ง์ด ๋งํ๋ ์๊ฐ์ โ์ฝ๋๋ ์ด๋์ ์ฐ์ง?โ๊ฐ ์๋๋ผ, ์ด๋๊น์ง ์ค์นํด์ผ ์ ์์ธ์ง๊ฐ ๋ถ๋ถ๋ช ํ ๋์ ๋๋ค. ํนํ Windows์์๋ Python, VS Code, ํฐ๋ฏธ๋, ๊ฐ์ํ๊ฒฝ์ด ํ ๋ฒ์ ์ ๋ฆฌ๋์ง ์์ผ๋ฉด ์คํ์ด ์ ๋๊ฑฐ๋ ๋ฒ์ ์ด ์์ฌ์ ๊ณ ์ํ์ฃ . ์ค๋์ ๊ฐ๋ฐ ์ด๋ณด์ ๊ธฐ์ค์ผ๋ก, ๋ฑ ํ์ํ ๊ฒ๋ง ๊น๋ํ๊ฒ ์ธํ ํด์ ์ฒซ ์คํ๊น์ง ๊ฐ๋ ํ๋ฆ์ ์ ๋ฆฌํด๋๋ฆฝ๋๋ค.
1) ์ค๋น๋ฌผ ์ฒดํฌ: ๋ด๊ฐ ์ง๊ธ ๋ญ ์ค์นํด์ผ ํ๋?
- Python(์ธํฐํ๋ฆฌํฐ): ์ค์ ๋ก ํ์ด์ฌ ์ฝ๋๋ฅผ ์คํํ๋ ์์ง
- VS Code(ํธ์ง๊ธฐ): ์ฝ๋๋ฅผ ์ฐ๊ณ ์คํ์ ๋๋ ์์ ๊ณต๊ฐ
- ๊ฐ์ํ๊ฒฝ(venv): ํ๋ก์ ํธ๋ณ๋ก ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ๋ถ๋ฆฌํด ์ถฉ๋์ ๋ง๋ ์ฅ์น
- ํฐ๋ฏธ๋: ๋ช ๋ น์ด๋ก ์ค์น/์คํ์ ํ๋ ์ฐฝ(Windows์์๋ PowerShell์ ์ฃผ๋ก ์ฌ์ฉ)
2) Python ์ค์น(Windows)
์ค์นํ ๋ ๊ผญ ํ์ธํ ๊ฒ 2๊ฐ์ง
- ์ค์น ํ๋ฉด์์ โAdd Python to PATHโ ์ฒดํฌ
- ์ฒดํฌ ์ ํ๋ฉด ํฐ๋ฏธ๋์์ python ๋ช ๋ น์ด ์ ๋จน๋ ๊ฒฝ์ฐ๊ฐ ๋ง์ต๋๋ค.
- ์ค์น ํ ํฐ๋ฏธ๋(PowerShell)์์ ๋ฒ์ ํ์ธ ๋ฒ์ ์ด ์ถ๋ ฅ๋๋ฉด 1์ฐจ ํต๊ณผ์ ๋๋ค. ๋ง์ฝ python ๋์ py๊ฐ ๋์ํ๋ค๋ฉด, Windows ํ๊ฒฝ์ ๋ฐ๋ผ ๊ทธ๋ด ์ ์์ด์. ์ด ๊ฒฝ์ฐ:
py --version
3) VS Code ์ค์น ํ, Python ๊ฐ๋ฐ์ ํ์ํ ํ์ฅ
VS Code๋ ์ค์น๋ง์ผ๋ก๋ ํธ์ง์ ๊ฐ๋ฅํ์ง๋ง, Python ๊ฐ๋ฐ์ ํ์ฅ์ ๋ถ์ด๋ฉด ์ฒด๊ฐ์ด ํ ๋ฌ๋ผ์ง๋๋ค.
์ถ์ฒ ํ์ฅ(ํ์๊ธ)
- Python: ์คํ/๋๋ฒ๊น /๋ฌธ๋ฒ ์ง์์ ํต์ฌ
- Pylance: ์๋์์ฑ, ํ์ ํํธ ๋ฑ ์ฝ๋ ์์ฑ์ด ๋นจ๋ผ์ง ์ค์น ํ VS Code๋ฅผ ์ฌ์์ํ๋ฉด ์ ์ฉ์ด ์์ ์ ์ ๋๋ค.
4) ํ๋ก์ ํธ ํด๋ ๋ง๋ค๊ธฐ + ๊ฐ์ํ๊ฒฝ(venv) ๊ตฌ์ฑ
์ด ๋จ๊ณ๊ฐ ๊ฐ๋ฐ ์ต๊ด์ ๊ฒฐ์ ํฉ๋๋ค. ํ๋ก์ ํธ๋ง๋ค ๊ฐ์ํ๊ฒฝ์ ๋ง๋ค๋ฉด โ์ด์ ๋ ๋๋ ๊ฒ ์ค๋์ ์ ๋จโ ๊ฐ์ ์ํฉ์ด ์ค์ด๋ญ๋๋ค.
1) ํด๋ ์์ฑ & VS Code๋ก ์ด๊ธฐ
์: C:\dev\hello-python ํด๋๋ฅผ ๋ง๋ค๊ณ VS Code์์ ํด๋ ์ด๊ธฐ๋ก ์ฝ๋๋ค.
2) ํฐ๋ฏธ๋ ์ด๊ธฐ
VS Code ์๋จ ๋ฉ๋ด์์ ํฐ๋ฏธ๋์ ์ด์ด PowerShell์ด ๋จ๋์ง ํ์ธํฉ๋๋ค.
3) ๊ฐ์ํ๊ฒฝ ์์ฑ
python -m venv .venv
4) ๊ฐ์ํ๊ฒฝ ํ์ฑํ
.\.venv\Scripts\Activate.ps1
์ฑ๊ณตํ๋ฉด ํ๋กฌํํธ ์์ (.venv) ๊ฐ์ ํ์๊ฐ ๋ถ์ต๋๋ค.
๋ง์ฝ ์คํ ์ ์ฑ ๋๋ฌธ์ ๋งํ๋ฉด, PowerShell์์ ์๋๋ฅผ ํ ๋ฒ๋ง ์คํํ๊ณ ๋ค์ ํ์ฑํํด๋ณด์ธ์(ํ๊ฒฝ์ ๋ฐ๋ผ ํ์ํ ์๋, ์๋ ์๋ ์์ต๋๋ค).
Set-ExecutionPolicy -Scope CurrentUser RemoteSigned
5) VS Code์์ ์ธํฐํ๋ฆฌํฐ ์ ํ(์ค์)
๊ฐ์ํ๊ฒฝ์ ๋ง๋ค์์ด๋ VS Code๊ฐ ๋ค๋ฅธ Python์ ์ก์ผ๋ฉด ์คํ์ด ๊ผฌ์ ๋๋ค.
ํ์ธ ๋ฐฉ๋ฒ
- VS Code์์ Python ์ธํฐํ๋ฆฌํฐ ์ ํ ๋ฉ๋ด๋ฅผ ์ด์ด .venv ๊ฒฝ๋ก๊ฐ ํฌํจ๋ Python์ ์ ํํฉ๋๋ค.
์ด๊ฒ ๋ง์์ผ pip install๋ ํ๋ก์ ํธ ์ ์ฉ์ผ๋ก ๊น๋ํ๊ฒ ๋ค์ด๊ฐ๋๋ค.
6) ์ฒซ ์คํ: โHello, Python!โ๋ถํฐ ์ ๋๋ก
ํ๋ก์ ํธ ํด๋์ main.py ํ์ผ์ ๋ง๋ค๊ณ ์๋๋ฅผ ์ ๋ ฅํฉ๋๋ค.
def greet(name: str) -> None:
print(f"์๋
ํ์ธ์, {name}๋! VS Code์์ Python ๊ฐ๋ฐ ์์ ์๋ฃ!")
if __name__ == "__main__":
greet("์ด๋ณด ๊ฐ๋ฐ์")
์คํ(ํฐ๋ฏธ๋)
python main.py
์ ์์ด๋ผ๋ฉด ์ธ์ฌ ๋ฌธ์ฅ์ด ์ถ๋ ฅ๋ฉ๋๋ค. ์ฌ๊ธฐ๊น์ง ๋๋ค๋ฉด ์ค์นยท๊ฐ์ํ๊ฒฝยท์คํ์ ํต์ฌ ํ์ดํ๋ผ์ธ์ด ์์ฑ๋ ๊ฒ๋๋ค.
7) ์ด๋ณด์๊ฐ ์์ฃผ ๊ฒช๋ ๋ฌธ์ 3๊ฐ์ง(๋น ๋ฅธ ์ฒ๋ฐฉ)
1) python ๋ช ๋ น์ด ์ธ์๋์ง ์์
- Python ์ค์น ์ PATH ์ฒดํฌ๊ฐ ๋น ์ก์ ๊ฐ๋ฅ์ฑ
- py main.py๋ก ์คํ์ด ๋๋์ง ํ์ธํด๋ณด์ธ์.
2) ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ค์นํ๋๋ฐ ์คํ ์ ๋ชป ์ฐพ๋๋ค๊ณ ํจ
- ๊ฐ์ํ๊ฒฝ์ด ํ์ฑํ๋์ง ์์๊ฑฐ๋, VS Code ์ธํฐํ๋ฆฌํฐ๊ฐ .venv๊ฐ ์๋ ์ ์์ต๋๋ค.
- (.venv) ํ์ ํ์ธ โ ์ธํฐํ๋ฆฌํฐ ์ฌ์ ํ ์์ผ๋ก ์ ๊ฒํ์ธ์.
3) VS Code์์ ์คํ์ ๋๋๋ฐ ํฐ๋ฏธ๋ ์คํ์ด ๋ค๋ฆ
- VS Code์ โ์คํ ๋ฒํผโ์ด ๋ค๋ฅธ ์ธํฐํ๋ฆฌํฐ๋ฅผ ์ก์์ ๊ฐ๋ฅ์ฑ์ด ํฝ๋๋ค.
- ํญ์ ์ธํฐํ๋ฆฌํฐ๊ฐ .venv์ธ์ง๋ถํฐ ๋ง์ถ๋ฉด ํด๊ฒฐ๋๋ ๊ฒฝ์ฐ๊ฐ ๋ง์ต๋๋ค.
๋ง๋ฌด๋ฆฌ: ์ค๋ ์ธํ ์ด ๋ด์ผ์ ์๋๋ฅผ ๋ง๋ ๋ค
์ฒ์์ ๋ฒ๊ฑฐ๋กญ์ง๋ง, ํ๋ก์ ํธ ํด๋๋ง๋ค venv ๋ง๋ค๊ธฐ โ VS Code์์ ์ธํฐํ๋ฆฌํฐ ๋ง์ถ๊ธฐ โ ํฐ๋ฏธ๋๋ก ์คํํ๊ธฐ ์ด ๋ฃจํด์ด ์กํ๋ฉด ๊ฐ๋ฐ์ด ํจ์ฌ ํธํด์ง๋๋ค. ๋ค์ ๋จ๊ณ๋ก๋ requests ๊ฐ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ค์น, ๋๋ฒ๊น ๋ธ๋ ์ดํฌํฌ์ธํธ ์ฌ์ฉ, ํฌ๋งคํฐ(Black) ์ ์ฉ๊น์ง ํ์ฅํด๋ณด๋ฉด ์ข์์.
โฌ๏ธ ์ด ๊ธ์ด ๋์์ด ๋์ จ๋ค๋ฉด, ์๋ ๊ด๊ณ ๋ฅผ ํ ๋ฒ๋ง ํด๋ฆญํด์ฃผ์ธ์! ์ ์๊ฒ ํฐ ํ์ด ๋ฉ๋๋ค ๐โโ๏ธ โฌ๏ธ