# 객체 지향 프로그래밍 **객체 지향 프로그래밍(OOP)**은 실제 세계의 개념을 프로그램 안에 모델링하여 복잡한 문제를 해결하는 데 효과적인 프로그래밍 패러다임입니다. 파이썬은 객체 지향 프로그래밍을 강력하게 지원하는 언어 중 하나입니다. * 객체(Object): 실제 세계의 사물이나 개념을 프로그램 안에서 표현한 것입니다. 각 객체는 고유한 속성(attribute)과 행동(method)을 가지고 있습니다. * 클래스(Class): 객체를 생성하기 위한 템플릿입니다. 클래스는 객체가 가질 속성과 행동을 정의합니다. * 인스턴스(Instance): 클래스를 바탕으로 생성된 실제 객체를 의미합니다. ## 클래스 정의 ```python class MyClass: # 클래스 변수 class_variable = "This is a class variable" # 생성자 def __init__(self, name, age): self.name = name self.age = age # 파괴자 def __del__(self): ... # 메소드 def greet(self): print(f"안녕하세요, 저는 {self.name}입니다.") ``` * `__init__` 메소드: 객체가 생성될 때 자동으로 호출되는 메소드로, 인스턴스 변수를 초기화하는 데 사용됩니다. * `self`: 메소드 내에서 자신을 가리키는 참조 변수입니다. ## 객체 생성 및 사용 ```python # 객체 생성 person = MyClass("홍길동", 30) # 속성 접근 print(person.name) # 홍길동 # 메소드 호출 person.greet() # 안녕하세요, 저는 홍길동입니다. ```