본문 바로가기
IT/Python

[파이썬] 클래스 관련 용어, 객체 인스턴스 차이 쉽게 이해하기

by 프론트엔드 지식백과 2025. 1. 15.

파이썬에서 자주 등장하는 클래스, 객체, 속성, 메서드, 생성자, 인스턴스라는 용어는 처음 보면 헷갈릴 수 있다.

하지만 하나씩 천천히 살펴보면 금방 이해할 수 있다.

 

1. 클래스(Class)란?

클래스는 설계도다.
예를 들어, 로봇을 만들려면 먼저 로봇의 설계도가 필요하다.

이 설계도에는 로봇의 특징과 기능이 담겨 있다. 파이썬에서는 이 설계도를 클래스라고 한다.

class Robot:
    name = "Robo"  # 이름 -> 특징(속성)
    def greet(self):  # 인사하기 -> 행동(메서드)
        print(f"Hello, my name is {self.name}!")

 

2. 객체(Object)란?

객체는 클래스를 사용해서 만든 물건이다.
로봇 설계도로 실제 로봇을 만든다고 생각하면, 그 로봇 하나하나가 바로 객체다.

# 클래스를 사용해 객체 만들기
robot1 = Robot()  
robot2 = Robot()

# robot1과 robot2는 객체다.
robot1.greet()  # Hello, my name is Robo!
robot2.greet()  # Hello, my name is Robo!

 

3. 속성(Attribute)이란?

속성은 객체가 가진 특징이다.
로봇의 이름, 색깔, 크기 같은 것들이 속성에 해당한다. 객체마다 속성의 값은 다를 수 있다.

robot1.name = "Alpha"  # 속성 값 변경
robot2.name = "Beta"

robot1.greet()  # Hello, my name is Alpha!
robot2.greet()  # Hello, my name is Beta!

 

 

4. 메서드(Method)란?

메서드는 객체가 할 수 있는 행동이다.
로봇이 걷기, 춤추기, 말하기 같은 행동을 한다고 생각하면 된다. 메서드는 클래스 안에 정의된 함수다.

class Robot:
    def dance(self):
        print("I'm dancing!")
        
robot = Robot()
robot.dance()  # I'm dancing!

 

5. 생성자(Constructor)란?

생성자는 객체를 만들 때 처음에 딱 한 번 실행되는 특별한 메서드다.
새로운 객체를 만들자마자 초기 설정을 하고 싶을 때 사용한다.

class Robot:
    def __init__(self, name, color):
        self.name = name
        self.color = color
        
robot = Robot("Gamma", "Red")  # 생성자로 초기 설정
print(robot.name)  # Gamma
print(robot.color)  # Red

 

 

6. 인스턴스(Instance)란?

인스턴스는 클래스에서 만들어진 객체를 의미한다.
즉, 객체와 비슷하지만, "이 객체가 어떤 클래스에서 만들어졌는지"를 강조할 때 인스턴스라는 단어를 사용한다.

예를 들어, 위에서 만든 robot은 Robot 클래스의 인스턴스다.

# robot 객체가 Robot 클래스에서 만들어졌음을 확인
print(isinstance(robot, Robot))  # True

 

객체와 인스턴스의 차이 쉽게 기억하기

  • 객체: 설계도로 만든 물건
  • 인스턴스: 이 물건이 "어떤 설계도"로 만들어졌는지 알려주는 표현

예시)

  1. 로봇 설계도로 만든 빨간 로봇은 "객체".
  2. 그런데 이 빨간 로봇은 "로봇 설계도로 만든 거야!"라고 강조하고 싶다면, "로봇 클래스의 인스턴스"라고 부름

💡 모든 인스턴스는 객체지만, 모든 객체가 꼭 인스턴스라고 부르진 않는다!
왜냐하면, "이건 클래스에서 만들어졌어!"라는 맥락이 필요할 때만 인스턴스라는 단어를 쓰기때문.

728x90