파이썬에서 “데이터 모델링(Data Modeling)”은 보통 데이터베이스 설계 문맥에서 많이 쓰이지만, 언어 자체 관점에서는 조금 다르게 해석됩니다. 파이썬은 **모든 것이 객체(Object)**라는 철학을 가지고 있고, 우리가 정의한 클래스 역시 내장 타입처럼 동작할 수 있도록 만들 수 있습니다. 이때 핵심이 바로 **매직 메서드(dunder method)**입니다
1. 매직 메서드란?
매직 메서드는 이름 앞뒤에 __(언더스코어)가 붙은 특별한 메서드를 말합니다.
예: __str__, __repr__, __len__, __add__, __getitem__ 등
이 메서드들을 구현하면, 객체가 내장 타입(숫자, 문자열, 리스트 등)처럼 자연스럽게 동작할 수 있습니다.
2. 예시로 보는 파이썬 데이터 모델링
1️⃣ 문자열처럼 동작하기
class Fruit:
def __init__(self, name, price):
self.name = name
self.price = price
def __str__(self): # 사용자 친화적 출력
return f"{self.name} ({self.price}원)"
def __repr__(self): # 디버깅용 출력
return f"Fruit({self.name!r}, {self.price!r})"
apple = Fruit("Apple", 1000)
print(apple) # Apple (1000원)
print(repr(apple)) # Fruit('Apple', 1000)
2️⃣ 숫자처럼 동작하기
class Fruit:
def __init__(self, price):
self.price = price
def __add__(self, other): # + 연산자 재정의
return self.price + other.price
apple = Fruit(1000)
banana = Fruit(2000)
print(apple + banana) # 3000
3️⃣ 리스트처럼 동작하기
class Basket:
def __init__(self, items):
self.items = items
def __len__(self):
return len(self.items)
def __getitem__(self, index):
return self.items[index]
basket = Basket(["Apple", "Banana", "Orange"])
print(len(basket)) # 3
print(basket[1]) # Banana
정리하면
- 파이썬 데이터 모델링 = 매직 메서드를 활용해 객체의 행위를 데이터처럼 정의하는 것
- 우리가 만든 클래스가 문자열, 숫자, 리스트 같은 내장 타입처럼 동작할 수 있도록 설계할 수 있다.
- 이를 통해 코드의 직관성과 재사용성이 크게 높아진다.
결론적으로, 파이썬에서의 데이터 모델링은 단순히 데이터를 담는 그릇을 설계하는 것을 넘어, 데이터처럼 행동하는 객체를 정의하는 과정이라고 할 수 있습니다.
'파이썬 > 기초 프로그래밍' 카테고리의 다른 글
| Python list, filter, map 쉽게 이해하기 (0) | 2025.09.07 |
|---|---|
| 파이썬 NamedTuple 간단 정리 (0) | 2025.09.06 |
| 파이썬에서 *args와 시퀀스 언패킹의 차이 이해하기 (0) | 2025.09.06 |
| ()의 진짜 의미: 함수와 실행, 객체와 결과의 차이 (1) | 2025.06.22 |
| 파이썬 클로저(Closure): 변수와 스코프 개념 정리 (0) | 2025.06.22 |