[์ค๋์ ํ์ต]
- VS Code ์ค์ ์ธ์
- ๋ฐ์ดํฐ ์ ์ฒ๋ฆฌ & ์๊ฐํ ์ธ์ 1ํ์ฐจ
[ํ์ต๋ด์ฉ ์ ๋ฆฌ]
๋น์ ๊ณต์์ด๊ณ ์ด๋ฐ ์ธํ , ์ฉ์ด, ์ ํ๋์ง์ ๋ํ ์ง์์ด ์ ๋ฌดํ ์ ์ฅ์์ ์ด๋ฒ ์ธ์ ๋๋ฌด ๋ฐ๋ผ๊ฐ๊ธฐ ํ๋ค์๋ค.
์ค์นํ ๊ฒ๋ ๋ง๊ณ , ๊ทผ๋ฐ ์ฉ์ด๋ ๋ชจ๋ฅด๊ฒ ๊ณ , ์ง๋๋ ๋น ๋ฅด๊ณ ... ๋ค ์์ด์ ๋ช ๋ น์ด์ ์ฝ๋์,,,์ฐ์ฉ.....๐คข
๋ญ ์ด๋กํด. ์ถ๊ฐ ๊ณต๋ถ ํด์ผ์ง...
์ฉ์ด ํ๋ํ๋ ๊ฐ๋ ํ๋ํ๋......๊ณต๋ถ๋ฅผ ํ๋ํ๋.................์ฐ์ฑ๐คฎ
1. ํ๋ก์ ํธ๋ณ๋ก ํจํค์ง๋ฅผ ๋ฐ๋ก ๊ด๋ฆฌํ๊ธฐ ์ํด ๊ฐ์ํ๊ฒฝ์ ๋ง๋ ๋ค.
๐ “ํ๋ก์ ํธ”์ ์ ํํ ๋ป
- ํ๋์ ๋ชฉ์ ์ ๊ฐ์ง ์์ ๋ฌถ์ ์ ์ฒด / ํ๋์ ์ต์์ ํด๋ = ํ๋์ ํ๋ก์ ํธ
- “์ด ํด๋ ํ๋๋น, ํ์ด์ฌ ํ๊ฒฝ ํ๋”
๐ง ....ํจํค์ง?
- ํ์ด์ฌ์ด ์ด๋ฏธ ๋ชป ํ๋ ์ผ์ ๋์ ํด์ฃผ๋ “์ถ๊ฐ ๋ฅ๋ ฅ ๋ฌถ์"
- ํ์ด์ฌ์ ๊ธฐ๋ณธ์ผ๋ก ํ ์ ์๋ ๊ฒ ์ ํ์ ์ด์ด์, ํ์ํ ๊ธฐ๋ฅ์ ๋จ์ด ๋ง๋ค์ด ๋์ ์ฝ๋ ๋ฌถ์์ผ๋ก ๊ฐ์ ธ๋ค ์ฐ๋๋ฐ, ๊ทธ ๋ฌถ์ ํ๋๋ฅผ ํจํค์ง๋ผ๊ณ ๋ถ๋ฆ.
- ํ์ค์์:
ํ์ด์ฌ = ์ค๋งํธํฐ ๋ณธ์ฒด(์ ํ, ๋ฌธ์ ๋ฑ ๊ธฐ๋ณธ ๊ธฐ๋ฅ๋ง ์์)
ํจํค์ง = ์นด์นด์คํก, ์ธ์คํ, ์ง๋ ๋ฑ
| ํ๊ณ ์ถ์ ์ผ | ํ์ํ ํจํค์ง |
| ์์ ์ฒ๋ผ ๋ฐ์ดํฐ ๋ค๋ฃจ๊ธฐ | pandas |
| ๊ทธ๋ํ ๊ทธ๋ฆฌ๊ธฐ | matplotlib |
| ์์น ๊ณ์ฐ | numpy |
| ๋ ธํธ๋ถ ์คํ | ipykernel |
๐ซจ ๊ฐ์ํ๊ฒฝ์ ๋ ๋ญ์์ฌ...
- โ ๊ฐ์ํ๊ฒฝ์ด ์๊ณ , ๋ชจ๋ ํ๋ก์ ํธ๊ฐ ํ๋์ ํ์ด์ฌ์ ๊ณต์ ํ ๋ ๋ฌธ์ :
A ํ๋ก์ ํธ: pandas 1.5 ํ์
B ํ๋ก์ ํธ: pandas 2.0 ํ์
๐ ๋ ๋ค ๋์์ ๋ง์กฑ X
๐ ํ๋ ๊น๋ฉด ๋ค๋ฅธ ํ๋ ๋ง๊ฐ์ง - ๊ฐ์ํ๊ฒฝ = “์ด ํ๋ก์ ํธ๋ง ์ฐ๋ ํ์ด์ฌ + ํจํค์ง ๋ณด๊ดํจ”
๋ชจ๋ ํ๋ก์ ํธ๊ฐ (1)์์ ๋ง์ ํ์ด์ฌ (2) ์์ ๋ง์ ํจํค์ง๋ฅผ ๊ฐ์ง. - โ ์์
ํ์ผ์ ์ ๋ค์ด๊ฐ๋ค
โ ํ์ด์ฌ + ํจํค์ง + ์คํ ์ค์ ๋ง ๋ค์ด๊ฐ๋ค

| ์ข ๋ฅ | ์ค๋ช |
| venv | ํ์ด์ฌ ๊ธฐ๋ณธ ์ ๊ณต |
| virtualenv | venv์ ํ์ฅํ |
| conda env | ์๋์ฝ๋ค ๊ณ์ด |
| uv venv | ์ต์ , ๋น ๋ฆ (uv๋ก ๋ง๋ ๊ฐ์ํ๊ฒฝ) |
2. ์ฃผํผํฐ ๋ ธํธ๋ถ (Jupyter Notebook)
๐ค ์ฃผํผํฐ ๋ ธํธ๋ถ
- ๋ธ๋ผ์ฐ์ ์์ ์ฝ๋ ์์ฑ, ์คํ, ๊ฒฐ๊ณผ ํ์ธ(๊ทธ๋ํ, ํ ๋ฑ), ๊ทธ๋ฆฌ๊ณ ๋ฉ๋ชจ(๋งํฌ๋ค์ด)๋ฅผ ํ ๋ฒ์ ํ ์ ์๋ ๋ํํ ๋ฌธ์ ์ ์ ๋๊ตฌ
๐ค ์ปค๋ (kernel)
- ์ฃผํผํฐ ๋
ธํธ๋ถ ํ๋ฉด์ ์ฝ๋๋ฅผ ์
๋ ฅํ๊ณ ์คํ ๋ฒํผ์ ๋๋ฅด๋ฉด,
์ค์ ๋ก ๊ทธ ์ฝ๋๋ฅผ ๊ณ์ฐํ๊ณ ๊ฒฐ๊ณผ๋ฅผ ๋๋ ค์ฃผ๋ '๋๋' ์ญํ ์ ํ๋ ์์ง - ์ฃผํผํฐ ๋ ธํธ๋ถ ์์ฒด๋ ์ฝ๋๋ฅผ ๋ณด์ฌ์ฃผ๋ '๊ป๋ฐ๊ธฐ(UI)'์ผ ๋ฟ์ด๊ณ , ์ค์ ๊ณ์ฐ์ ๋ฐฑ๊ทธ๋ผ์ด๋์์ ๋์๊ฐ๋ ์ปค๋์ด ๋ด๋นํฉ๋๋ค.
- ํ์ด์ฌ๋ฟ๋ง ์๋๋ผ R, Julia ๋ฑ ๋ค๋ฅธ ์ธ์ด์ ์ปค๋์ ์ค์นํ๋ฉด ํด๋น ์ธ์ด๋ ์ฃผํผํฐ์์ ์ธ ์ ์์.
๐ฅน ipykernel
- ์ฃผํผํฐ ๋ ธํธ๋ถ์์ ํ์ด์ฌ ์ฝ๋๋ฅผ ์คํํ ์ ์๊ฒ ํด์ฃผ๋ ์ปค๋
3. ๊ทธ๋ผ ์ธํฐํ๋ฆฌํฐ(interpreter)๋ ๋ญ์ง?
- ์ปดํจํฐ๋ 0๊ณผ 1(์ด์ง์)๋ฐ์ ๋ชจ๋ฆ. ์ฐ๋ฆฌ๊ฐ ์ด print("Hello")๋ผ๋ ์์ด ๊ฐ์ ์ฝ๋๋ฅผ ์ปดํจํฐ๋ ์ ํ ์์๋ฃ์ง ๋ชปํจ.
- ์ฌ๋์ด ์์ฑํ ์ฝ๋(ํ์ด์ฌ ๋ฑ)๋ฅผ ์ปดํจํฐ๊ฐ ์ดํดํ ์ ์๋ ๊ธฐ๊ณ์ด๋ก ์ค์๊ฐ์ผ๋ก ํ ์ค์ฉ ๋ฒ์ญํด ์ฃผ๋ ๋๊ตฌ
- ์ฌ์ฉ์: ์ฝ๋ ์คํ ๋ฒํผ์ ๋๋ฆ.
์ปค๋(ipykernel): "์ค, ์ฝ๋๊ฐ ๋ค์ด์๋ค? ์ด๊ฑธ ์คํํด์ผ๊ฒ ๋ค." (์์ ์์)
์ธํฐํ๋ฆฌํฐ(Python): ์ปค๋ ์์์ ์ฝ๋๋ฅผ ํ ์ค์ฉ ์ฝ์ผ๋ฉฐ ์ปดํจํฐ๊ฐ ์์๋ฃ๊ฒ ๋ฒ์ญํจ. - ์ฃผํผํฐ ๋ ธํธ๋ถ์ "์ปค๋"์ ๋ด๋ถ์ "ํ์ด์ฌ ์ธํฐํ๋ฆฌํฐ"๋ฅผ ํ๊ณ ์์ด์, ์ฐ๋ฆฌ๊ฐ ๋ณด๋ธ ์ฝ๋๋ฅผ ๋ฒ์ญํ๊ณ ์คํ๊น์ง ํด์ ๊ฒฐ๊ณผ๋ฅผ ๊ฐ์ ธ๋ค์ฃผ๋ ๊ฒ
4. PIP
- ํจํค์ง๋ฅผ ์ค์นํ๋ ๋๊ตฌ
“์ด ํ๊ฒฝ์ pandas ๊น์์ค”
“ipykernel ์ค์นํด์ค”
5. Workspace ์ค์

๐ ์ ์ค์ ํ๋ ๊ฑฐ์ง?
- VS Code๊ฐ ์ด ํ๋ก์ ํธ๋ฅผ ์ด ๋๋ง๋ค “ํญ์ ๊ฐ์ ํ์ด์ฌ(๊ฐ์ํ๊ฒฝ)์ ์๋์ผ๋ก ์ฐ๊ฒ ๋ง๋ค๊ธฐ ์ํ ์ค๋น”
- ์๋ฌด ์ค์ ๋ ์ ํ๋ฉด VS Code๋...
โ ์ด ํ๋ก์ ํธ์์ ์ด๋ค ํ์ด์ฌ์ ์จ์ผ ํ์ง?
โ ์์คํ ํ์ด์ฌ?
โ ๋ค๋ฅธ ํ๋ก์ ํธ์ venv?
โ ์์ ์ ์ฐ๋ ๊ฑฐ?
๊ทธ๋์...
์ปค๋์ด ์๊พธ ๋ฐ๋๊ณ , ํจํค์ง๊ฐ ์๋๋ฐ ์๋ค๊ณ ๋์ค๊ณ , “๋ถ๋ช ์ค์นํ๋๋ฐ ์ ์ ๋ผ?”๋ฅผ ๋ฐ๋ณตํ๊ฒ ๋จ
๐ ๊ทธ๊ฑธ ์์ฒ ์ฐจ๋จํ๋ ค๋ ๊ฒ ์ง๊ธ ๊ณผ์ ์ ๋ชฉ์

=> ์ฌ๋ฌ ํด๋๋ฅผ ํ๋์ ์ํฌ์คํ์ด์ค๋ก ๋ฌถ๋๋ค != ๊ฐ์ ๊ฐ์ํ๊ฒฝ์ ์ฌ์ฉํ๋ค.
๊ฐ ํ๋ก์ ํธ๋ ๊ทธ ์์ ์์ฑ๋ ๊ฐ์์ ๊ฐ์ํ๊ฒฝ์ ์ฌ์ฉ.
์ํฌ์คํ์ด์ค๋ ๊ทธ ๊ฐ์ํ๊ฒฝ(์ธํ )์ ์ด๋ค ๊ท์น์ผ๋ก ์ฌ์ฉํ ๊ฑด์ง ๋ฌถ์ด์ฃผ๋ ๊ฐ๋ .
- venv โ → ์ ์ด์ ํ๊ฒฝ ์์
- venv โญ + ์ค์ โ → VS Code๊ฐ ๋ค๋ฅธ python ์ธ ์๋ ์์
- venv โญ + ์ค์ โญ → ํญ์ ๊ฐ์ ํ๊ฒฝ, ์๋ ์ ์ฉ
๐ซ json ํ์ผ?
- ์ฌ๋๋ ์ฝ๊ณ , ํ๋ก๊ทธ๋จ๋ ์ฝ๊ธฐ ์ฌ์ด ์ค์ ํ์ผ ํ์
= ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๊ณ ์ ์กํ๊ธฐ ์ํด ์ฌ์ฉํ๋ ๊ฒฝ๋์ ๋ฐ์ดํฐ ๊ตํ ํ์ - ์ํํธ์จ์ด๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ์ค์ ์ ์ ์ฅํ๋ ์ฉ๋๋ก ์์ฃผ ์ฐ์
- vs code๊ฐ ์ค์ ์ ์ ์ฅํ๋ ํ์:
{
"์ค์ ์ด๋ฆ": ๊ฐ,
"์ค์ ์ด๋ฆ": ๊ฐ
}
- "์ด ํ๋ก์ ํธ ํด๋ ์์ ์๋ .venv์ ํ์ด์ฌ์ ์จ๋ผ”
// ๋งฅ์ฉ settings.json ํ์ผ์ ์
๋ ฅํ๋ ์ค์ ๋ช
๋ น
{
"python.defaultInterpreterPath": "${workspaceFolder}/.venv/bin/python",
// “์ด workspace์์๋ ์ด ๊ฒฝ๋ก์ ์๋ ํ์ด์ฌ์ ๊ธฐ๋ณธ ํ์ด์ฌ์ผ๋ก ์จ๋ผ”
// ์ง๊ธ ์ด๋ ค ์๋ ์ํฌ์คํ์ด์ค ์ต์์ ํด๋
"python.terminal.activateEnvironment": true
// “VS Code ํฐ๋ฏธ๋์ ์ด๋ฉด ์๋์ผ๋ก ๊ฐ์ํ๊ฒฝ์ ํ์ฑํํด๋ผ”
}

์ฒ์ ํ๋ก์ ํธ๋ฅผ ์์ฑํ๋ฉด!
1. ๊ฐ์ํ๊ฒฝ ๋ง๋ค๊ธฐ
2. ์ํฌ์คํ์ด์ค ์ค์ ํ๊ธฐ
3. .vscode ํด๋ > settings.json ์์ฑ
4. ๊ฐ์ํ๊ฒฝ ์์ฑ : uv venv --python 3.1
5. ํฐ๋ฏธ๋์ ๊ฐ์ํ๊ฒฝ ํ์ฑํํ๊ธฐ
- ctrl + shift + p > ์ธํฐํ๋ฆฌํฐ ์ ํ > ํ์ฌ ํด๋ ๊ฒฝ๋ก ์ ํ
5. uv pip install pandas numpy matplotlib seaborn scikit-learn
<๐ฏ ๊ฒฐ์ธก์น ํ๋ฒ์ ํ์ธ>
print("shape:", df.shape)
print("\n--- columns ---")
print(df.columns.tolist())
print("\n--- info ---")
df.info()
print("\n--- missing rate(top) ---")
missing = df.isna().mean().sort_values(ascending=False)
print(missing.head(10))
[๋ค์์ฃผ ํ์ต]
- ์(19์ผ) ~ ๋ชฉ(22์ผ) ๋ฐ์ดํฐ ์ ์ฒ๋ฆฌ/์๊ฐํ
- ๊ธ(23์ผ) ~ ๊ธฐ์ด ํ๋ก์ ํธ ์์