AI/Python

[Python] 클래스 멤버변수, 싱글톤 패턴과 동시성 문제

brave_sol 2025. 2. 11. 23:27

1. 멤버 변수란?

- 클래스 내부에서 정의된 변수

- 객체(인스턴스)의 속성을 저장하는 역할

 

1) 클래스 변수

- 클래스명.변수명으로 선언

- 모든 객체가 공유하는 변수

 

2) 인스턴스 변수

- self.변수명으로 선언

- 각 객체(인스턴스)마다 개별적으로 존재하는 변수

- 즉, 객체마다 다른 값을 가질 수 있음

class Person:
    species = "Human" # 클래스 변수

    def __init__(self, name, age):
        self.name = name  # 인스턴스 변수
        self.age = age    # 인스턴스 변수

p1 = Person("Alice", 25)
p2 = Person("Bob", 30)

print(p1.name, p1.age)  # Alice 25
print(p2.name, p2.age)  # Bob 30

print(p1.species) # Human
print(p2.species) # Human

p1.species = "Alien"
print(p1.species)  # Alien
print(p2.species)  # Human
print(Person.species)  # Human

 

3. 싱글톤 패턴과 동시성 문제

- 여러 개의 작업(코루틴)이 동시에 실행되면 싱글톤 객체가 여러 개 생길 수 있어 싱글톤 패턴이 깨질 수 있다.

 

반응형