Skip to content

Latest commit

Β 

History

History
32 lines (19 loc) Β· 2.33 KB

File metadata and controls

32 lines (19 loc) Β· 2.33 KB

λ¬΄μƒνƒœ(stateless) κ°μ²΄λž€

κ·Έ 객체가 λ‚΄λΆ€ μƒνƒœλ₯Ό κ°€μ§€μ§€ μ•Šκ±°λ‚˜, μƒνƒœ 정보λ₯Ό μœ μ§€ν•˜μ§€ μ•ŠλŠ” 객체λ₯Ό μ˜λ―Έν•©λ‹ˆλ‹€. 즉, 객체의 μƒνƒœκ°€ 외뢀에 μ˜μ‘΄ν•˜μ§€ μ•Šκ³ , 맀번 λ™μΌν•œ μž…λ ₯에 λŒ€ν•΄ λ™μΌν•œ 좜λ ₯을 λ°˜ν™˜ν•˜λŠ” νŠΉμ„±μ„ κ°€μ§€κ³  μžˆμŠ΅λ‹ˆλ‹€.

예λ₯Ό λ“€μ–΄, μˆ˜ν•™μ μΈ 계산을 μˆ˜ν–‰ν•˜λŠ” ν•¨μˆ˜λŠ” μž…λ ₯κ°’λ§Œ 있으면 κ²°κ³Όλ₯Ό λ„μΆœν•  수 있고, 이 κ³Όμ •μ—μ„œ 내뢀에 μ–΄λ–€ μƒνƒœλ₯Ό μ €μž₯ν•˜μ§€ μ•ŠκΈ° λ•Œλ¬Έμ— λ¬΄μƒνƒœ 객체둜 λ³Ό 수 μžˆμŠ΅λ‹ˆλ‹€. μ΄λŸ¬ν•œ νŠΉμ„± 덕뢄에 λ¬΄μƒνƒœ κ°μ²΄λŠ” μ—¬λŸ¬ μŠ€λ ˆλ“œμ—μ„œ λ™μ‹œμ— μ‚¬μš©ν•˜λ”λΌλ„ μ•ˆμ „ν•˜κ²Œ μž‘λ™ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

반면, μƒνƒœλ₯Ό κ°€μ§€λŠ” κ°μ²΄λŠ” κ·Έ 객체의 μƒνƒœμ— 따라 κ²°κ³Όκ°€ λ‹¬λΌμ§ˆ 수 있기 λ•Œλ¬Έμ—, λ™μ‹œμ„± λ¬Έμ œλ‚˜ μƒνƒœ 관리가 ν•„μš”ν•˜κ²Œ λ©λ‹ˆλ‹€. κ·Έλž˜μ„œ μ‹±κΈ€ν„΄ νŒ¨ν„΄μ„ μ‚¬μš©ν•  λ•ŒλŠ” μ΄λŸ¬ν•œ λ¬΄μƒνƒœ κ°μ²΄μ™€μ˜ 쑰합이 μœ μš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

λ¬΄μƒνƒœ 객체의 κ°„λ‹¨ν•œ μ˜ˆμ‹œλ‘œ, 두 숫자의 합을 κ³„μ‚°ν•˜λŠ” ν•¨μˆ˜λ₯Ό μ •μ˜ν•΄ λ³΄κ² μŠ΅λ‹ˆλ‹€. 이 ν•¨μˆ˜λŠ” λ‚΄λΆ€ μƒνƒœλ₯Ό κ°€μ§€μ§€ μ•ŠμœΌλ©°, μž…λ ₯값에 따라 항상 λ™μΌν•œ 좜λ ₯을 μ œκ³΅ν•©λ‹ˆλ‹€.

class StatelessCalculator:
    @staticmethod
    def add(a, b):
        return a + b

# μ‚¬μš© μ˜ˆμ‹œ
result = StatelessCalculator.add(5, 3)
print(result)  # 좜λ ₯: 8

μœ„ μ½”λ“œμ—μ„œ StatelessCalculator ν΄λž˜μŠ€λŠ” addλΌλŠ” 정적 λ©”μ„œλ“œλ₯Ό κ°€μ§€κ³  μžˆμŠ΅λ‹ˆλ‹€. 이 λ©”μ„œλ“œλŠ” 두 개의 인자λ₯Ό λ°›μ•„μ„œ κ·Έ 합을 λ°˜ν™˜ν•˜λ©°, 내뢀에 μ–΄λ–€ μƒνƒœλ„ μœ μ§€ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€. λ”°λΌμ„œ μ–Έμ œλ“ μ§€ ν˜ΈμΆœν•  수 있고, μ—¬λŸ¬ μŠ€λ ˆλ“œμ—μ„œ λ™μ‹œμ— μ‚¬μš©ν•΄λ„ μ•ˆμ „ν•©λ‹ˆλ‹€.

읽어보면 쒋은 링크

  1. λ¬΄μƒνƒœ-ν”„λ‘œκ·Έλž˜λ°-객체의-세계-μ™ΈλΆ€μ™€μ˜-μ†Œν†΅
  2. μŠ€ν”„λ§ μ»¨ν…Œμ΄λ„ˆκ°€ 싱글톀을 보μž₯ν•˜λŠ” 원리