λ³Έλ¬Έ λ°”λ‘œκ°€κΈ°

🐍 Python/OOP

(4)
[OOP] (4) 좔상화(Abstraction) : docstring, type hinting, 정적 동적 νƒ€μž… μ–Έμ–΄ HelloπŸ‘‹ I'm Dona!:) 객체 지ν–₯ν”„λ‘œκ·Έλž˜λ° μ˜μ–΄λ‘œλŠ” OOP(Object-Oriented-Programming) μ •λ¦¬ν•˜κΈ° 4탄! 🏑 πŸ” λ“€μ–΄κ°€λ©° : ν”„λ‘œκ·Έλž˜λ°μ—μ„œ μΆ”μƒν™”λž€? λ³€μˆ˜, ν•¨μˆ˜, 클래슀λ₯Ό μ‚¬μš©ν•΄ μ‚¬μš©μžκ°€ κΌ­ μ•Œμ•„μ•Όλ§Œ ν•˜λŠ” λΆ€λΆ„λ§Œμ„ κ²‰μœΌλ‘œ λ“œλŸ¬λ‚΄λŠ” 것 ν”„λ‘œκ·Έλž˜λ¨Έλ“€μ΄ νŠΉμ • μ½”λ“œλ₯Ό μ‚¬μš©ν•  λ•Œ, ν•„μˆ˜μ μΈ 정보λ₯Ό μ œμ™Έν•œ 세뢀사항을 κ°€λ¦¬λŠ” 것 λ³€μˆ˜ 좔상화, ν•¨μˆ˜ 좔상화, 클래슀 좔상화 등이 μžˆλ‹€. μΆ”μƒν™”λž€, " λ³΅μž‘ν•œ λ‚΄μš©μ€ 숨기고, μ£Όμš” κΈ°λŠ₯μ—λ§Œ μ‹ κ²½μ“°λŠ” 것 " 1. 좔상화 μž˜ν•˜κΈ° : 이름 잘 짓기 클래슀, λ³€μˆ˜, λ©”μ†Œλ“œμ˜ 이름을 어디에 μ“Έ 수 있고, μ–΄λ–»κ²Œ μ‚¬μš©ν•˜λŠ”μ§€ μ§κ΄€μ μœΌλ‘œ μœ μΆ”λ˜λŠ” 이름을 μ‚¬μš©ν•˜μž λ³€μˆ˜ 이름에 λŒ€ν•œ κ·œμΉ™μ΄ κΆκΈˆν•˜λ‹€λ©΄ PEP8을 μ°Έκ³ ν•˜μž - python PEP8(μ½”λ”© μŠ€νƒ€μΌ..
[OOP] (3) λ©”μ†Œλ“œμ˜ μ’…λ₯˜ : μΈμŠ€ν„΄μŠ€ λ©”μ†Œλ“œ, 클래슀 λ©”μ†Œλ“œ, 정적 λ©”μ†Œλ“œ (with 파이썬 μ½”λ“œ) & νŠΉμˆ˜λ©”μ†Œλ“œ HelloπŸ‘‹ I'm Dona!:) 객체 지ν–₯ν”„λ‘œκ·Έλž˜λ° μ˜μ–΄λ‘œλŠ” OOP(Object-Oriented-Programming) μ •λ¦¬ν•˜κΈ° 3탄! 🏑 객체지ν–₯ ν”„λ‘œκ·Έλž˜λ°μ—μ„œ, 클래슀 μ•ˆμ—μ„œ μ‚¬μš©λ˜λŠ” ν•¨μˆ˜μΈ λ©”μ†Œλ“œμ˜ μ’…λ₯˜μ—λŠ” 크게 3가지가 μžˆλ‹€. μΈμŠ€ν„΄μŠ€ λ³€μˆ˜μ˜ 값을 μ½κ±°λ‚˜ μ„€μ •ν•˜λŠ” λ©”μ†Œλ“œμΈ μΈμŠ€ν„΄μŠ€ λ©”μ†Œλ“œ(instance method) 클래슀 λ³€μˆ˜μ˜ 값을 μ½κ±°λ‚˜ μ„€μ •ν•˜λŠ” λ©”μ†Œλ“œμΈ 클래슀 λ©”μ†Œλ“œ(class method) μΈμŠ€ν„΄μŠ€ λ³€μˆ˜, 클래슀 λ³€μˆ˜λ₯Ό μ „ν˜€ 닀루지 μ•ŠλŠ” λ©”μ†Œλ“œμΈ 정적 λ©”μ†Œλ“œ(static method) μ°¨κ·Όμ°¨κ·Ό μ½”λ“œμ™€ ν•¨κ»˜ μ•Œμ•„λ³΄μžπŸ‘€ 1. μΈμŠ€ν„΄μŠ€ λ©”μ†Œλ“œ(instance method) μΈμŠ€ν„΄μŠ€ λ³€μˆ˜μ˜ 값을 μ½κ±°λ‚˜ μ„€μ •ν•˜λŠ” λ©”μ†Œλ“œ μΈμŠ€ν„΄μŠ€ λ©”μ†Œλ“œλ₯Ό μ‚¬μš©ν•˜λŠ” 방법 (2번 방법을 많이 μ‚¬μš©ν•œλ‹€) {클래슀 이..
[OOP] (2) μΈμŠ€ν„΄μŠ€ λ³€μˆ˜μ™€ 클래슀 λ³€μˆ˜ HelloπŸ‘‹ I'm Dona!:) 객체 지ν–₯ν”„λ‘œκ·Έλž˜λ° μ˜μ–΄λ‘œλŠ” OOP(Object-Oriented-Programming)에 λŒ€ν•΄ μ •λ¦¬ν•˜κΈ° 2탄! 🏑 πŸ” μΈμŠ€ν„΄μŠ€ λ³€μˆ˜(instance variable) μ§€λ‚œ ν¬μŠ€νŒ…μ—μ„œ μ–ΈκΈ‰ν–ˆλ“―, μΈμŠ€ν„΄μŠ€λŠ” 객체λ₯Ό 싀체화 μ‹œν‚¨ κ²ƒμœΌλ‘œ 클래슀둜 λ§Œλ“€ 수 μžˆλ‹€. μ˜€λŠ˜λ„ μΈμŠ€ν„΄μŠ€ λ³€μˆ˜ μœ„ν‚€λ°±κ³Όλ₯Ό λ¨Όμ € 짚고 λ„˜μ–΄κ°€μž ν΄λž˜μŠ€κ°€ μžˆλŠ” 객체 지ν–₯ ν”„λ‘œκ·Έλž˜λ°μ—μ„œ μΈμŠ€ν„΄μŠ€ λ³€μˆ˜(instance variable)λŠ” ν΄λž˜μŠ€μ— μ •μ˜λœ λ³€μˆ˜λ‘œ, μΈμŠ€ν„΄μŠ€ λ³€μˆ˜λŠ” 클래슀 λ³€μˆ˜μ™€ λΉ„μŠ·ν•˜λ‹€. μΈμŠ€ν„΄μŠ€ λ³€μˆ˜λŠ” 클래슀 λ³€μˆ˜κ°€ μ•„λ‹ˆμ§€λ§Œ μœ μ‚¬μ μ΄ μžˆλ‹€. 클래슀 속성(클래슀 ν”„λ‘œνΌν‹°, ν•„λ“œ, 데이터 멀버)의 일쒅이닀. ν΄λž˜μŠ€λŠ” μΈμŠ€ν„΄μŠ€ λ©”μ†Œλ“œμ™€ 클래슀 λ©”μ†Œλ“œλ₯Ό λ‘˜ λ‹€ μ†Œμœ ν•  수 μžˆλ‹€. λ³€μˆ˜λŠ” μ˜€λΈŒμ νŠΈκ°€ 자기 μžμ‹ ..
[OOP] (1) 클래슀, 객체, μΈμŠ€ν„΄μŠ€, 객체지ν–₯ vs μ ˆμ°¨μ§€ν–₯ ν”„λ‘œκ·Έλž˜λ° μ •μ˜ HelloπŸ‘‹ I'm Dona!:) 객체 지ν–₯ν”„λ‘œκ·Έλž˜λ° μ˜μ–΄λ‘œλŠ” OOP(Object-Oriented-Programming)λ₯Ό μ •λ¦¬ν•΄λ³΄μž! 🏑 πŸ” κ°μ²΄λž€? μš°μ„ , μœ„ν‚€λ°±κ³Όλ₯Ό λ¨Όμ € λœ―μ–΄λ³΄λ©΄ μ•„λž˜μ™€ 같이 μ •μ˜ν•˜κ³  μžˆλ‹€. 컴퓨터 κ³Όν•™μ—μ„œ 객체 λ˜λŠ” 였브젝트(object)λŠ” ν΄λž˜μŠ€μ—μ„œ μ •μ˜ν•œ 것을 ν† λŒ€λ‘œ λ©”λͺ¨λ¦¬(μ‹€μ œ μ €μž₯곡간)에 ν• λ‹Ήλœ κ²ƒμœΌλ‘œ ν”„λ‘œκ·Έλž¨μ—μ„œ μ‚¬μš©λ˜λŠ” 데이터 λ˜λŠ” μ‹λ³„μžμ— μ˜ν•΄ μ°Έμ‘°λ˜λŠ” 곡간을 μ˜λ―Έν•˜λ©°, λ³€μˆ˜, 자료 ꡬ쑰, ν•¨μˆ˜ λ˜λŠ” λ©”μ†Œλ“œκ°€ 될 수 μžˆλ‹€. ν”„λ‘œκ·Έλž˜λ° μ–Έμ–΄λŠ” λ³€μˆ˜λ₯Ό μ΄μš©ν•΄ 객체에 μ ‘κ·Όν•˜λ―€λ‘œ 객체와 λ³€μˆ˜λΌλŠ” μš©μ–΄λŠ” μ’…μ’… ν•¨κ»˜ μ‚¬μš©λœλ‹€. κ·ΈλŸ¬λ‚˜ λ©”λͺ¨λ¦¬κ°€ ν• λ‹Ήλ˜κΈ° μ „κΉŒμ§€ κ°μ²΄λŠ” μ‘΄μž¬ν•˜μ§€ μ•ŠλŠ”λ‹€. 클래슀? λ©”λͺ¨λ¦¬? μ‹λ³„μž? μ–΄λ €μš΄ 말이 μž”λœ© μžˆλŠ”λ°, μ‰½κ²Œ μ •μ˜ν•˜λ©΄ μ•„λž˜μ™€ 같이 생각할 수 μžˆλ‹€ ..