์ŠคํŒŒ๋ฅดํƒ€ ๋‚ด์ผ๋ฐฐ์›€์บ ํ”„(25.12.01~)

๐Ÿ“Œ์ŠคํŒŒ๋ฅดํƒ€ ๋‚ด์ผ๋ฐฐ์›€์บ ํ”„_๋ณธ์บ ํ”„_data11๊ธฐ ๊น€์„ ์˜_TIL_Day 18

0๏ธโƒฃ 2026. 1. 16. 23:52

[์˜ค๋Š˜์˜ ํ•™์Šต]

  • 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์ผ) ~ ๊ธฐ์ดˆ ํ”„๋กœ์ ํŠธ ์‹œ์ž‘