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

래핑(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 = 기존 기능을 감싸서 내 식대로 다루기

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