파이썬을 배우면서 함수로 코드를 재사용하는 방법을 익혔죠.
이번엔 한 단계 더 나아가서, 객체지향 프로그래밍(OOP) 개념을 배워볼 거예요.
OOP를 알면 코드 구조가 훨씬 깔끔해지고, 협업이나 유지보수에도 강력한 힘을 발휘합니다.
1️⃣ 객체지향 프로그래밍(OOP)이란?
객체(Object)를 중심으로 프로그램을 설계하고 구성하는 방식
- 객체는 속성(변수)과 동작(메서드)을 가짐
- 현실 세계를 프로그래밍에 그대로 옮기기 쉬움
- 코드의 재사용성, 확장성, 가독성을 높임
2️⃣ 클래스(Class)와 객체(Object)의 관계
| 용어 | 설명 |
| 클래스(Class) | 객체를 만들기 위한 설계도 |
| 객체(Object) | 클래스로부터 만들어진 실제 결과물 (인스턴스라고도 부름) |
📌 쉽게 말해
- 클래스 = 설계도
- 객체 = 설계도를 기반으로 만든 집

📝 클래스 정의와 객체 생성
# 클래스 정의
class Dog:
def __init__(self, name):
self.name = name
def bark(self):
print(f"{self.name}가 멍멍 짖습니다!")
# 객체 생성
dog1 = Dog("초코")
dog1.bark()
출력
초코가 멍멍 짖습니다!
🔎 코드 분석
- class Dog: → Dog라는 이름의 클래스 정의
- __init__ → 생성자 메서드, 객체가 만들어질 때 자동 실행
- self → 객체 자신을 가리킴
- dog1 = Dog("초코") → Dog 클래스에서 객체 생성
- dog1.bark() → 객체의 메서드 호출
3️⃣ 속성과 메서드
클래스 안에는 두 가지가 들어갑니다!
- 속성(Attribute): 객체가 가지는 데이터
- 메서드(Method): 객체가 할 수 있는 행동(함수)
class Car:
def __init__(self, brand, speed):
self.brand = brand
self.speed = speed
def drive(self):
print(f"{self.brand} 자동차가 {self.speed}km/h로 달립니다!")
my_car = Car("Tesla", 120)
my_car.drive()
출력
Tesla 자동차가 120km/h로 달립니다!
📝 여러 객체 만들기
dog1 = Dog("초코")
dog2 = Dog("보리")
dog1.bark() # 초코가 멍멍 짖습니다!
dog2.bark() # 보리가 멍멍 짖습니다!
📌 클래스 하나로 여러 객체를 쉽게 만들 수 있어요.
🎯 오늘의 핵심 정리
클래스는 객체를 만드는 설계도
객체는 클래스에서 찍어낸 실제 인스턴스
__init__으로 초기값 설정, self로 자기 자신 참조
속성과 메서드로 객체의 상태와 동작을 정의
🔜 다음 글 예고
[파이썬] 클래스 상속 완전정복! super()로 더 깔끔하게
클래스의 강력한 기능인 상속으로 코드 재사용성을 극대화해봅시다.
'SK-Rookies > 파이썬' 카테고리의 다른 글
| [파이썬] 코드 재사용을 위한 모듈 & 패키지 이해하기 (0) | 2025.09.03 |
|---|---|
| [파이썬] 클래스 상속 완전정복! super()로 더 깔끔하게 (0) | 2025.09.03 |
| [파이썬] 에러 걱정 끝! try-except로 예외 처리 배우기 (0) | 2025.07.04 |
| [파이썬] 파일 입출력 I/O 완전정리 – open, read, write까지 (0) | 2025.07.04 |
| [파이썬] 꼭 알아야 할 내장 함수들 – len, range, type, list 등 (0) | 2025.07.04 |