파이썬 완전 초보 탈출 12강 – 클래스(Class)와 객체(Object): 진짜 개발자처럼 코딩하기

파이썬 완전 초보 탈출 12강, 드디어 여러분은 객체지향 프로그래밍(Object-Oriented Programming, OOP)의 세계로 입문합니다!

이번 강의에서는 클래스(class)와 객체(object)의 개념을 배우고, 파이썬에서 클래스를 어떻게 만들고 활용하는지 실습해봅니다.

지금까지 배운 변수, 조건문, 함수 등은 전부 절차지향 방식이에요. 하지만 규모가 큰 프로그램은 객체 단위로 쪼개서 개발하는 게 더 효율적입니다. 바로 그걸 가능하게 해주는 것이 클래스입니다.

클래스란?
클래스는 관련 있는 변수(속성)와 함수(메서드)를 하나로 묶어주는 설계도입니다.

예시:
class Car:
def __init__(self, color, speed):
self.color = color
self.speed = speed

def drive(self):
print(f”{self.color} 차가 {self.speed}km/h로 달립니다.”)

__init__()는 객체 생성 시 자동으로 실행되는 생성자 함수입니다. self는 객체 자신을 가리키는 참조입니다.

객체란?
클래스를 바탕으로 만들어지는 실제 사용 가능한 데이터 단위입니다.

my_car = Car(“빨강”, 100)
my_car.drive() # 빨강 차가 100km/h로 달립니다.

클래스를 이용한 실습 1: 학생 클래스 만들기
class Student:
def __init__(self, name, grade):
self.name = name
self.grade = grade

def introduce(self):
print(f”저는 {self.name}이고, {self.grade}학년입니다.”)

s1 = Student(“지은”, 2)
s2 = Student(“민수”, 3)

s1.introduce()
s2.introduce()

클래스 용어 정리
– 속성(attribute): 객체의 데이터 (예: name, grade)
– 메서드(method): 클래스 안에 정의된 함수
– 인스턴스(instance): 클래스로 만든 객체

self란?
self는 객체 자신을 의미합니다. 메서드 안에서 속성에 접근할 때는 반드시 self를 통해 접근해야 합니다.

클래스에 기능 추가하기
class Counter:
def __init__(self):
self.count = 0

def increase(self):
self.count += 1
print(“현재 카운트:”, self.count)

c = Counter()
c.increase()
c.increase()

클래스 외부에서도 속성 접근 가능
print(c.count) # 2
c.count = 10
print(c.count) # 10

실습 2: 은행 계좌 클래스 만들기
class BankAccount:
def __init__(self, name):
self.name = name
self.balance = 0

def deposit(self, amount):
self.balance += amount
print(f”{amount}원 입금 완료. 잔액: {self.balance}원”)

def withdraw(self, amount):
if self.balance >= amount:
self.balance -= amount
print(f”{amount}원 출금 완료. 잔액: {self.balance}원”)
else:
print(“잔액이 부족합니다.”)

acc = BankAccount(“지민”)
acc.deposit(10000)
acc.withdraw(3000)
acc.withdraw(8000)

클래스의 장점
– 관련 기능을 하나로 묶어서 관리
– 코드 재사용성 증가
– 유지보수와 확장성 향상
– 협업 시 효율적 구조 제공

오늘의 요약
– 클래스는 객체를 만들기 위한 설계도
– 속성과 메서드를 하나로 묶어 객체로 표현
– __init__()은 생성자, self는 자기 자신
– 실제 프로그램에 응용 가능한 다양한 예제 실습

다음 강의 예고
13강: 상속과 다형성 – 클래스를 물려받아 더 강력하게 만들기
다음 시간에는 클래스의 확장성, 재사용성을 극대화하는 상속(inheritance)과 다형성(polymorphism) 개념을 배웁니다. 이제 여러분도 진짜 객체지향 프로그래밍을 할 수 있게 됩니다!


이 강의는 파이썬 완전 초보자를 위한 연재 시리즈입니다. 매주 새로운 강의로 업데이트됩니다.