파이썬/클래스와 객체 지향

래핑(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()를 감싸서, 리스트에 항목을 추가하면서 로그도 남기죠.

 

 

3. 왜 래핑을 사용할까?

목적 설명
인터페이스 변경 함수나 클래스의 사요업을 바꾸고 싶을 때
기능 확장 기존 기능에 로깅, 검증, 캐싱 등을 추가하고 싶을 때
재사용성 향상 공통 로직을 하나로 모아두고 재사용하고 싶을 때
코드 가독성 좀 더 의미 있는 이름이나 구조로 감싸서 직관적으로 만들기 위해

하지만 주의할 점

  • 기능 추가 없이 단순히 감싸기만 한다면: 오히려 코드가 복잡해지고 유지보수가 어려워질 수 있습니다.
  • 그래서 래핑은 실제 목적이 뚜렷할 때 사용하는 것이 좋습니다.

 

정리하면

 

Wrapping = 기존 기능을 감싸서 내 식대로 다루기 

  • 함수나 클래스 위에 한 겹 껍질을 씌운다고 생각하면 됩니다.
  • 잘 활용하면 유연한 설계를 도와주지만, 과하면 "괜히 감싼 코드"가 될 수도 있습니다.