11. [ํŒŒ์ด์ฌ] Python ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ

2026. 3. 8. 10:45ยทPython & SQL/Python Basics
๐Ÿ’ก ๋ณธ ํฌ์ŠคํŒ…์€ ์ˆ˜์—… ๋‚ด์šฉ, ๊ต์žฌ, ChatGPT๋ฅผ ์ฐธ๊ณ ํ•˜์—ฌ ์ •๋ฆฌํ•œ ํ•™์Šต ๊ธฐ๋ก์ž…๋‹ˆ๋‹ค.
๊ธ€๊ณผ ๊ทธ๋ฆผ ๋“ฑ ๋ชจ๋“  ์ฝ˜ํ…์ธ ์˜ ์ •๋ฆฌ ๋ฐ ์ž‘์„ฑ์€ ๋ณธ ๋ธ”๋กœ๊ทธ์—์„œ ์ง์ ‘ ์ œ์ž‘๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

 

 

Python ๊ธฐ์ดˆ๋ถ€ํ„ฐ Streamlit ๋ฐ์ดํ„ฐ ์‹œ๊ฐํ™”๊นŒ์ง€ ์ •๋ฆฌํ•˜๋Š” ํ•™์Šต ๊ธฐ๋ก์ž…๋‹ˆ๋‹ค.

์ด ๊ธ€์€ '11. [ํŒŒ์ด์ฌ] Python ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ' ์ž…๋‹ˆ๋‹ค.

 

Python์—์„œ ๋ณ€์ˆ˜์— ๊ฐ’์„ ํ• ๋‹นํ•˜๊ณ , ํ•จ์ˆ˜์— ๋ฐ์ดํ„ฐ๋ฅผ ์ „๋‹ฌํ•˜๊ณ , ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•˜๋Š” ๊ณผ์ •์€ ๋ชจ๋‘ ๋ฉ”๋ชจ๋ฆฌ์™€ ์—ฐ๊ฒฐ๋œ ๋™์ž‘์ด๋‹ค.

๊ฒ‰์œผ๋กœ ๋ณด๊ธฐ์—๋Š” ๋‹จ์ˆœํžˆ ๊ฐ’์ด ๋ฐ”๋€Œ๊ฑฐ๋‚˜ ์ „๋‹ฌ๋˜๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ๋ณด์ด์ง€๋งŒ, ์‹ค์ œ๋กœ๋Š” ๊ฐ์ฒด๊ฐ€ ๋ฉ”๋ชจ๋ฆฌ์— ์ƒ์„ฑ๋˜๊ณ  ๋ณ€์ˆ˜๋Š” ๊ทธ ๊ฐ์ฒด๋ฅผ ์ฐธ์กฐ(reference) ํ•˜๊ฒŒ ๋œ๋‹ค.

์ด๋ฒˆ ๊ธ€์—์„œ๋Š” Python์ด ๊ฐ์ฒด๋ฅผ ์–ด๋–ป๊ฒŒ ๊ด€๋ฆฌํ•˜๋Š”์ง€, ๊ทธ๋ฆฌ๊ณ  ํ•จ์ˆ˜ ํ˜ธ์ถœ ์‹œ ๊ฐ’์ด ์ „๋‹ฌ๋˜๋Š” ๋ฐฉ์‹๊ณผ ํ•จ๊ป˜ reference count์™€ garbage collection์„ ์ค‘์‹ฌ์œผ๋กœ Python์˜ ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ ๋ฐฉ์‹์„ ์ •๋ฆฌํ•ด๋ณธ๋‹ค.

 

Python์—์„œ ๋ณ€์ˆ˜๋Š” ๊ฐ์ฒด๋ฅผ ์ฐธ์กฐํ•œ๋‹ค
Python์—์„œ ๋ณ€์ˆ˜๋Š” ๊ฐ’์„ ์ง์ ‘ ์ €์žฅํ•˜๋Š” ์ƒ์ž๋ผ๊ธฐ๋ณด๋‹ค ๊ฐ์ฒด๋ฅผ ๊ฐ€๋ฆฌํ‚ค๋Š” ์ด๋ฆ„(name) ์— ๊ฐ€๊น๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด ๋‹ค์Œ ์ฝ”๋“œ๋ฅผ ๋ณด์ž.

a = 10
b = a

์ด ์ฝ”๋“œ๋Š” ์ˆซ์ž 10์ด๋ผ๋Š” ๊ฐ์ฒด๊ฐ€ ๋ฉ”๋ชจ๋ฆฌ์— ์ƒ์„ฑ๋˜๊ณ , ๋ณ€์ˆ˜ a๊ฐ€ ๊ทธ ๊ฐ์ฒด๋ฅผ ์ฐธ์กฐํ•œ๋‹ค.

์ดํ›„ b = a๊ฐ€ ์‹คํ–‰๋˜๋ฉด b ์—ญ์‹œ ๊ฐ™์€ ๊ฐ์ฒด๋ฅผ ์ฐธ์กฐํ•˜๊ฒŒ ๋œ๋‹ค.

 

์ฆ‰, Python์—์„œ ๋ณ€์ˆ˜๋Š” ๊ฐ์ฒด ์ž์ฒด๊ฐ€ ์•„๋‹ˆ๋ผ ๊ฐ์ฒด๋ฅผ ๊ฐ€๋ฆฌํ‚ค๋Š” ์ฐธ์กฐ(reference) ๋ผ๊ณ  ์ดํ•ดํ•˜๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•˜๋‹ค.

 

 

Python์˜ ๋ฐ์ดํ„ฐ ์ „๋‹ฌ ๋ฐฉ์‹

Python์—์„œ ํ•จ์ˆ˜์— ๊ฐ’์„ ์ „๋‹ฌํ•  ๋•Œ๋Š” Call by Object Reference ๋ฐฉ์‹์ด ์‚ฌ์šฉ๋œ๋‹ค.

์ฆ‰, ํ•จ์ˆ˜ ํ˜ธ์ถœ ์‹œ ๊ฐ์ฒด ์ž์ฒด๊ฐ€ ๋ณต์‚ฌ๋˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ๊ฐ์ฒด์— ๋Œ€ํ•œ ์ฐธ์กฐ๊ฐ€ ์ „๋‹ฌ๋œ๋‹ค.

 

ํ•˜์ง€๋งŒ ๊ฐ์ฒด์˜ ์„ฑ๊ฒฉ์— ๋”ฐ๋ผ ๊ฒฐ๊ณผ๋Š” ๋‹ค๋ฅด๊ฒŒ ๋‚˜ํƒ€๋‚œ๋‹ค.

  • immutable ๊ฐ์ฒด → ๊ฐ’์ด ๋ณต์‚ฌ๋œ ๊ฒƒ์ฒ˜๋Ÿผ ๋™์ž‘
  • mutable ๊ฐ์ฒด → ๊ฐ™์€ ๊ฐ์ฒด๋ฅผ ์ฐธ์กฐํ•˜์—ฌ ์›๋ณธ์ด ์ˆ˜์ •๋  ์ˆ˜ ์žˆ์Œ

 

 

immutable ๊ฐ์ฒด ์ „๋‹ฌ ์˜ˆ์ œ

๋จผ์ € ๋ถˆ๋ณ€ ๊ฐ์ฒด(immutable)๋ฅผ ํ•จ์ˆ˜์— ์ „๋‹ฌํ•ด๋ณด์ž.

def change_number(value):
    value = 999

num = 100
change_number(num)

print(num)

 

์‹คํ–‰ ๊ฒฐ๊ณผ

100

ํ•จ์ˆ˜ ์•ˆ์—์„œ value = 999๋กœ ๊ฐ’์„ ๋ณ€๊ฒฝํ–ˆ์ง€๋งŒ ๋ฐ”๊นฅ์˜ num ๊ฐ’์€ ๋ณ€ํ•˜์ง€ ์•Š๋Š”๋‹ค.

์ด์œ ๋Š” ์ •์ˆ˜(int)๋Š” immutable(๋ถˆ๋ณ€) ๊ฐ์ฒด์ด๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

ํ•จ์ˆ˜ ๋‚ด๋ถ€์—์„œ ์ƒˆ๋กœ์šด ๊ฐ์ฒด 999๋ฅผ ๋‹ค์‹œ ์ฐธ์กฐํ•˜๊ฒŒ ๋˜์—ˆ์„ ๋ฟ,

์›๋ž˜ ๊ฐ์ฒด๋Š” ๊ทธ๋Œ€๋กœ ์œ ์ง€๋œ๋‹ค.

 

 

mutable ๊ฐ์ฒด ์ „๋‹ฌ ์˜ˆ์ œ

์ด๋ฒˆ์—๋Š” ๊ฐ€๋ณ€ ๊ฐ์ฒด(mutable)๋ฅผ ์ „๋‹ฌํ•ด๋ณด์ž.

def update_items(items):
    items.append("streamlit")

topics = ["python", "sql"]
update_items(topics)

print(topics)

 

์‹คํ–‰ ๊ฒฐ๊ณผ

['python', 'sql', 'streamlit']

๋ฆฌ์ŠคํŠธ๋Š” mutable ๊ฐ์ฒด์ด๊ธฐ ๋•Œ๋ฌธ์— ํ•จ์ˆ˜ ๋‚ด๋ถ€์—์„œ ๊ฐ™์€ ๊ฐ์ฒด์˜ ๋‚ด๋ถ€ ์ƒํƒœ๊ฐ€ ์ง์ ‘ ์ˆ˜์ •๋œ๋‹ค.

๊ทธ๋ž˜์„œ ํ•จ์ˆ˜ ์‹คํ–‰ ์ดํ›„์—๋„ ์›๋ณธ ๋ฐ์ดํ„ฐ๊ฐ€ ๋ณ€๊ฒฝ๋œ ์ƒํƒœ๋กœ ๋‚จ๊ฒŒ ๋œ๋‹ค.

 

 

reference count

Python์€ ๊ฐ์ฒด๊ฐ€ ๋ฉ”๋ชจ๋ฆฌ์— ์กด์žฌํ•  ๋•Œ ์ฐธ์กฐ ํšŸ์ˆ˜(reference count) ๋ฅผ ๊ด€๋ฆฌํ•œ๋‹ค.

์ฆ‰, ํ•˜๋‚˜์˜ ๊ฐ์ฒด๋ฅผ ๋ช‡ ๊ฐœ์˜ ๋ณ€์ˆ˜๊ฐ€ ์ฐธ์กฐํ•˜๊ณ  ์žˆ๋Š”์ง€๋ฅผ ๊ธฐ๋กํ•œ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด ๋‹ค์Œ ์ฝ”๋“œ๋ฅผ ๋ณด์ž.

x = [1, 2, 3]
y = x

์ด ๊ฒฝ์šฐ ๋ฆฌ์ŠคํŠธ ๊ฐ์ฒด [1,2,3]์€ ๋‘ ๊ณณ์—์„œ ์ฐธ์กฐ๋˜๊ณ  ์žˆ๋‹ค.

  • ๋ณ€์ˆ˜ x
  • ๋ณ€์ˆ˜ y

์ฆ‰, ์ด ๊ฐ์ฒด์˜ reference count๋Š” 2๊ฐ€ ๋œ๋‹ค.

์ฐธ์กฐ๊ฐ€ ํ•˜๋‚˜์”ฉ ์‚ฌ๋ผ์ง€๋ฉด reference count๋„ ์ค„์–ด๋“ ๋‹ค.

x = [1,2,3]
y = x

del y

์ด ๊ฒฝ์šฐ y๋ผ๋Š” ์ฐธ์กฐ๊ฐ€ ์ œ๊ฑฐ๋˜๋ฉด์„œ reference count๊ฐ€ ๊ฐ์†Œํ•œ๋‹ค.

 

 

garbage collection

๊ฐ์ฒด๋ฅผ ์ฐธ์กฐํ•˜๋Š” ๋ณ€์ˆ˜๊ฐ€ ํ•˜๋‚˜๋„ ์—†์œผ๋ฉด ๊ทธ ๊ฐ์ฒด๋Š” ๋” ์ด์ƒ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๋Š” ์ƒํƒœ๊ฐ€ ๋œ๋‹ค.

์ด๋•Œ Python์€ garbage collection์„ ํ†ตํ•ด ํ•„์š” ์—†๋Š” ๊ฐ์ฒด๋ฅผ ๋ฉ”๋ชจ๋ฆฌ์—์„œ ์ •๋ฆฌํ•œ๋‹ค.

์ฆ‰ Python ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ ํ๋ฆ„์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

๊ฐ์ฒด ์ƒ์„ฑ → ์ฐธ์กฐ(reference) ๋ฐœ์ƒ → ์ฐธ์กฐ ํ•ด์ œ → garbage collection

 

Python์€ ์ด๋Ÿฌํ•œ ๊ณผ์ •์„ ์ž๋™์œผ๋กœ ์ฒ˜๋ฆฌํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ผ๋ฐ˜์ ์œผ๋กœ ๊ฐœ๋ฐœ์ž๊ฐ€ ์ง์ ‘ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ํ•ด์ œํ•  ํ•„์š”๋Š” ์—†๋‹ค.

 

 

mutable vs immutable๊ณผ ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ

์ด์ „ ๊ธ€์—์„œ ์ •๋ฆฌํ–ˆ๋˜ mutable / immutable ๊ฐœ๋…์€ Python ๋ฉ”๋ชจ๋ฆฌ ๊ตฌ์กฐ๋ฅผ ์ดํ•ดํ•˜๋Š” ๋ฐ ๋งค์šฐ ์ค‘์š”ํ•˜๋‹ค.

 

๋Œ€ํ‘œ์ ์ธ ์ž๋ฃŒํ˜•์„ ์ •๋ฆฌํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

immutable

  • int
  • float
  • str
  • tuple

mutable

  • list
  • dict
  • set

immutable ๊ฐ์ฒด๋Š” ๋‚ด๋ถ€ ๊ฐ’์„ ์ง์ ‘ ์ˆ˜์ •ํ•  ์ˆ˜ ์—†๊ธฐ ๋•Œ๋ฌธ์— ๊ฐ’ ๋ณ€๊ฒฝ ์‹œ ์ƒˆ ๊ฐ์ฒด๊ฐ€ ์ƒ์„ฑ๋œ๋‹ค.

๋ฐ˜๋ฉด mutable ๊ฐ์ฒด๋Š” ๊ฐ™์€ ๊ฐ์ฒด๋ฅผ ์œ ์ง€ํ•œ ์ฑ„ ๋‚ด๋ถ€ ๋ฐ์ดํ„ฐ๊ฐ€ ๋ณ€๊ฒฝ๋  ์ˆ˜ ์žˆ๋‹ค.

์ด ์ฐจ์ด๋Š” ํ•จ์ˆ˜ ํ˜ธ์ถœ, ๋ณต์‚ฌ, ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ์—์„œ ๋งค์šฐ ์ค‘์š”ํ•œ ์˜ํ–ฅ์„ ๋ฏธ์นœ๋‹ค.

 

 

์ •๋ฆฌ

Python์—์„œ ๋ณ€์ˆ˜๋Š” ๊ฐ’์„ ์ €์žฅํ•˜๋Š” ๊ณต๊ฐ„์ด๋ผ๊ธฐ๋ณด๋‹ค ๊ฐ์ฒด๋ฅผ ์ฐธ์กฐํ•˜๋Š” ์ด๋ฆ„์œผ๋กœ ์ดํ•ดํ•˜๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•˜๋‹ค.

 

ํ•จ์ˆ˜ ํ˜ธ์ถœ ์‹œ Python์€ Call by Object Reference ๋ฐฉ์‹์„ ์‚ฌ์šฉํ•˜๋ฉฐ ๊ฐ์ฒด๊ฐ€ mutable์ธ์ง€ immutable์ธ์ง€์— ๋”ฐ๋ผ ๋™์ž‘ ๊ฒฐ๊ณผ๊ฐ€ ๋‹ฌ๋ผ์งˆ ์ˆ˜ ์žˆ๋‹ค.

 

๋˜ํ•œ Python์€ ๊ฐ์ฒด์˜ reference count๋ฅผ ๊ด€๋ฆฌํ•˜๊ณ , ์ฐธ์กฐ๊ฐ€ ์‚ฌ๋ผ์ง„ ๊ฐ์ฒด๋Š” garbage collection์„ ํ†ตํ•ด ์ž๋™์œผ๋กœ ๋ฉ”๋ชจ๋ฆฌ์—์„œ ์ •๋ฆฌํ•œ๋‹ค.

์ด๋Ÿฌํ•œ ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ ๋ฐฉ์‹์€ ์ดํ›„ ๊ฐ์ฒด์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ๊ณผ ํด๋ž˜์Šค ๊ตฌ์กฐ๋ฅผ ์ดํ•ดํ•˜๋Š” ๋ฐ์—๋„ ์ค‘์š”ํ•œ ๊ธฐ๋ฐ˜์ด ๋œ๋‹ค.

 

 

'Python & SQL > Python Basics' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

13. [ํŒŒ์ด์ฌ] ์ƒ์†๊ณผ ํƒ€์ž… ํ™•์ธ  (0) 2026.03.08
12. [ํŒŒ์ด์ฌ] ํด๋ž˜์Šค์™€ ๊ฐ์ฒด  (0) 2026.03.08
10. [ํŒŒ์ด์ฌ] mutable vs immutable  (0) 2026.03.07
9. [ํŒŒ์ด์ฌ] iterator์™€ generator  (0) 2026.03.07
7. [ํŒŒ์ด์ฌ] ํ•จ์ˆ˜ ๊ธฐ์ดˆ์™€ ๋งค๊ฐœ๋ณ€์ˆ˜  (0) 2026.03.07
'Python & SQL/Python Basics' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
  • 13. [ํŒŒ์ด์ฌ] ์ƒ์†๊ณผ ํƒ€์ž… ํ™•์ธ
  • 12. [ํŒŒ์ด์ฌ] ํด๋ž˜์Šค์™€ ๊ฐ์ฒด
  • 10. [ํŒŒ์ด์ฌ] mutable vs immutable
  • 9. [ํŒŒ์ด์ฌ] iterator์™€ generator
J. Son
J. Son
Petit à petit l'oiseau fait son nid.
  • J. Son
    Steady Study Log
    J. Son
  • ์ „์ฒด
    ์˜ค๋Š˜
    ์–ด์ œ
    • ๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ (172) N
      • Python & SQL (63)
        • Python Basics (21)
        • Python Problems (23)
        • Python Practice (11)
        • MySQL (1)
        • Git & GitHub (7)
      • ML & DL (7) N
      • Projects (6) N
        • Project Portfolio (6) N
      • AI Camp (4)
        • Camp Reflection (4)
      • Concept Notes (6)
        • Statistics & Stata (4)
        • Mathematics (2)
      • Archive (85) N
        • Java (24)
        • R (1)
        • Languages (49)
        • Miscellaneous (11) N
  • ๋ธ”๋กœ๊ทธ ๋ฉ”๋‰ด

    • ํ™ˆ
    • ๋ฐฉ๋ช…๋ก
  • ๋งํฌ

    • GitHub
    • WikiDocs
  • ๊ณต์ง€์‚ฌํ•ญ

  • ์ธ๊ธฐ ๊ธ€

  • ํƒœ๊ทธ

    ๋งฅ git
    machine learning
    ํ”„๋ž‘์Šค์–ด ๊ณต๋ถ€
    share.streamlit.io
    Python
    Github
    ์ž๋ฐ”
    ๋จธ์‹ ๋Ÿฌ๋‹
    Le Petit Prince
    ํ”„๋กœ์ ํŠธ ์˜ค์ผ๋Ÿฌ
    passe compose
    ํŒŒ์ด์ฌ ํฌ๋กค๋ง
    GIT
    ์–ด๋ฆฐ์™•์ž ๋ถˆ์–ด
    python streamlit
    MySQL
    Stata
    ์–ด๋ฆฐ์™•์ž ํ”„๋ž‘์Šค์–ด
    python problem
    ๋ถˆ์–ด ๊ด€๊ณ„๋Œ€๋ช…์‚ฌ
    ์ ํ”„ํˆฌํŒŒ์ด์ฌ ์—ฐ์Šต๋ฌธ์ œ
    ๋ถˆ์–ด ๊ณต๋ถ€
    ํŒŒ์ด์ฌ ๋ฌธ์ œ
    ๊ฐ์ฒด
    streamlit
    ์ ํ”„ํˆฌํŒŒ์ด์ฌ ์—ฐ์Šต๋ฌธ์ œ ํ’€์ด
    ๋ณตํ•ฉ๊ณผ๊ฑฐ
    ํŒŒ์ด์ฌ streamlit
    ์ดˆ๋ณด์ž๋ฅผ ์œ„ํ•œ ํŒŒ์ด์ฌ 300์ œ
    ํŒŒ์ด์ฌ
  • ์ตœ๊ทผ ๋Œ“๊ธ€

  • ์ตœ๊ทผ ๊ธ€

  • hELLOยท Designed By์ •์ƒ์šฐ.v4.10.6
J. Son
11. [ํŒŒ์ด์ฌ] Python ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ
์ƒ๋‹จ์œผ๋กœ

ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”