프로그래밍/프로그래밍 용어
클래스, 객체, 인스턴스 (Class, Object, Instance)의 개념
Cian
2024. 8. 5. 11:06
개발 공부를 하다보면 클래스, 객체, 인스턴스라는 용어에 대해 심심치 않게 듣게된다.
여기저기 붕어빵 비유로 배를 채워가며 이해하려 애썼지만 쉽진 않더라.. 오늘은 이 세가지 용어에 대해 간단하게 정리해보려고 한다.
먼저 클래스(Class)
객체지향 프로그래밍(흔히 말하는 OOP)의 개념 중 하나로, 객체를 생성하기 위한 청사진(설계도)이다.
이 설계도에는 집의 구조, 방의 수, 창문의 위치와 같이 모든 것이 상세하게 나와있다.
다음은 객체(Object)
객체는 설계도(Class)를 따라 실제로 지어진 집이다.
여기서 알아두어야할 점은 같은 설계도를 사용해서 여러 채의 집을 지을 수 있다는 것이다. 예를 들어, 동네에 같은 구조의 집이 여러 채 있는 것을 볼 수 있을 것이다. 이 집들은 모두 동일한 설계도(Class)를 사용해서 지어졌다.
(객체는 형식을 가진 단위라는 "개념"이다.)
마지막 인스턴스(Instance)
특정한 하나의 집을 말한다. 우리 집, 친구의 집과 같이 각각의 집을 특정해서 말할 때 사용하는 용어와 같다고 보면 된다. 각각의 집(Object)은 모두 동일한 설계도(Class)를 사용해서 지어졌지만, 각 집마다 주소나 색상 등에 차이가 있을 수 있다.
이 비유를 코드로 나타내 보겠다.
클래스(설계도)
class House:
def __init__(self, color, num_rooms):
self.color = color
self.num_rooms = num_rooms
def describe(self):
print(f"이 집은 {self.color}색이고, 방이 {self.num_rooms}개 있다.")
객체 생성(집 짓기)
# House 클래스를 사용하여 실제 집을 짓는다 (객체 생성)
my_house = House("파란색", 3)
friend_house = House("빨간색", 7)
인스턴스(특정한 집)
# my_house와 friend_house는 House 클래스의 인스턴스
my_house.describe() # 출력 : 이 집은 파란색이고, 방이 3개 있다.
friend_house.describe() # 출력 : 이 집은 빨간색이고, 방이 7개 있다.