파이썬/클래스와 객체 지향
래핑(Wrapping)이란?
Data Jun
2025. 6. 6. 11:32
— 기존 기능을 감싸서 새롭게 사용하는 방식
프로그래밍에서 **"래핑(wrapping)"**이란, 이미 존재하는 기능이나 객체를 감싸서 자신만의 인터페이스로 재정의하거나 확장하는 방식을 말합니다.
쉽게 말해,
“기존 기능을 직접 쓰는 대신, 한 겹 더 감싸서 내가 원하는 방식으로 다루는 것”
예시 1: 함수 래핑 (기초적인 형태)
def my_print(msg):
print("[LOG]", msg)
→ print()를 직접 쓰는 대신 my_print()로 감싸서 출력 앞에 [LOG]를 붙이도록 한 것이 함수 래핑입니다.
예시 2: 클래스 래핑 (대표적인 구조)
class MyList:
def __init__(self, data):
self.data = data
def append(self, item):
print("추가되는 항목:", item)
self.data.append(item)
→ 이 클래스는 내부적으로 기존 list의 기능을 래핑하고 있습니다.
→ append()를 감싸서, 리스트에 항목을 추가하면서 로그도 남기죠.
왜 래핑을 사용할까?
하지만 주의할 점
- 기능 추가 없이 단순히 감싸기만 한다면: 오히려 코드가 복잡해지고 유지보수가 어려워질 수 있습니다.
- 그래서 래핑은 실제 목적이 뚜렷할 때 사용하는 것이 좋습니다.
정리
Wrapping = 기존 기능을 감싸서 내 식대로 다루기
- 함수나 클래스 위에 한 겹 껍질을 씌운다고 생각하면 됩니다.
- 잘 활용하면 유연한 설계를 도와주지만, 과하면 "괜히 감싼 코드"가 될 수도 있습니다.