본문으로 건너뛰기
Python 기초집LESSON 16

객체지향 기초: 클래스와 인스턴스

난이도입문
예상 시간30분
선수지식이전 강의

16강. 객체지향 기초: 클래스와 인스턴스

1. 이번 강의에서 해결할 문제

딕셔너리 키를 문자열로 반복하면 오타를 실행 전 발견하기 어렵고 관련 검증이 흩어집니다. 전투 한 건의 상태와 동작을 하나의 객체로 표현합니다.

2. 학습 목표

3. 핵심 개념

클래스는 객체의 구조와 동작을 정의하고 인스턴스는 실제 값을 가진 개별 객체입니다. self는 메서드를 호출한 인스턴스를 가리킵니다. 클래스는 모든 데이터를 담는 그릇이 아니라 함께 변해야 하는 상태와 규칙을 묶을 때 유용합니다.

4. 단계별 코드 예시

파일 경로: C:\dev\game-log-analyzer\battle_analyzer\models.py

battle_analyzer/models.py
class BattleRecord:
def __init__(self, player, monster, skill, damage, result):
if damage < 0:
raise ValueError("피해량은 0 이상이어야 합니다.")
self.player = player
self.monster = monster
self.skill = skill
self.damage = damage
self.result = result

def is_win(self):
return self.result == "win"

def __repr__(self):
return (
f"BattleRecord(player={self.player!r}, "
f"monster={self.monster!r}, damage={self.damage})"
)

파일 경로: C:\dev\game-log-analyzer\main.py

main.py
from battle_analyzer.models import BattleRecord

record = BattleRecord("Knight", "Slime", "Slash", 80, "win")
print(record)
print("승리:", record.is_win())
PowerShell · 실행
.\.venv\Scripts\python.exe .\main.py

5. 코드가 동작하는 이유

클래스 호출은 새 인스턴스를 만들고 __init__이 초기 상태를 설정합니다. 메서드 호출 시 인스턴스가 self로 자동 전달됩니다. __repr__은 디버깅에서 객체 핵심 값을 확인하기 쉬운 문자열을 제공합니다.

6. 자주 하는 실수와 해결법

7. 직접 실습

8. 이해 점검 질문 3개

9. 핵심 요약

MINI QUIZ

객체지향 기초: 클래스와 인스턴스 미니 퀴즈

선택 즉시 정답과 해설을 확인할 수 있습니다. 결과는 이 브라우저에만 저장됩니다.

0 / 2
  1. 문제 1“객체지향 기초: 클래스와 인스턴스” 실습 결과를 해석하는 올바른 기준은 무엇인가요?
  2. 문제 2“객체지향 기초: 클래스와 인스턴스”에서 ‘클래스 속성과 인스턴스 속성 혼동’ 문제가 생겼습니다. 가장 알맞은 진단 또는 대응은 무엇인가요?
LESSON STATUS

학습을 마쳤나요?

직접 실습과 점검 질문까지 확인한 뒤 완료로 표시하세요.

16강. 객체지향 기초: 클래스와 인스턴스 미완료 상태