태지쌤

로봇 & 코딩교육 No.1 크리에이터

파이썬

파이썬 문법 쉽게 이해하기: 클로저(Closure)와 데코레이터(Decorator)

태지쌤 2025. 8. 26. 21:46
반응형

https://link.coupang.com/a/cMUpAo

 

Do it! 점프 투 파이썬 - 프로그래밍 언어 | 쿠팡

현재 별점 4.7점, 리뷰 151개를 가진 Do it! 점프 투 파이썬! 지금 쿠팡에서 더 저렴하고 다양한 프로그래밍 언어 제품들을 확인해보세요.

www.coupang.com

 

🐍 파이썬 문법 쉽게 이해하기: 클로저(Closure)와 데코레이터(Decorator)

안녕하세요! 오늘은 파이썬을 배우면서 꼭 한 번은 들어보게 되는 개념, 바로 **클로저(Closure)**와 **데코레이터(Decorator)**에 대해 일반인도 이해할 수 있도록 쉽게 풀어보려고 합니다. 🤗

 


1️⃣ 클로저(Closure)란 무엇일까?

먼저 클로저라는 단어가 어렵게 느껴지실 수 있는데, 아주 간단히 말하면 함수 안에 또 다른 함수가 들어있는 구조라고 보시면 돼요.

예를 들어, 가게에서 "쿠폰"을 생각해보세요.
쿠폰 안에는 특정 할인 조건이 담겨 있고, 언제 사용해도 그 조건이 유지되죠.

def discount(price):
    def apply(rate):
        return price * (1 - rate)
    return apply

ten_percent_off = discount(10000)
print(ten_percent_off(0.1))  # 9000 출력

여기서 discount라는 함수는 가격을 기억하고, 안에 있는 apply 함수는 할인율을 적용해요.
👉 이렇게 밖의 함수 값(10000)을 기억한 채로 내부 함수가 동작하는 것을 클로저라고 합니다.

✔ 정리: 클로저는 **"상황을 기억하는 함수"**라고 생각하면 쉬워요.


2️⃣ 데코레이터(Decorator)란 무엇일까?

데코레이터는 이름처럼 무언가를 꾸며주는 도구예요.
기존 함수를 바꾸지 않고, 그 위에 새로운 기능을 "덧붙이는" 역할을 하죠.

예를 들어, 식당에서 나온 음식을 그대로 내지 않고, 예쁜 접시에 담아내는 과정을 생각해보세요.
맛은 그대로지만 보기에는 더 좋아지죠.

def add_star(func):
    def wrapper():
        print("*****")
        func()
        print("*****")
    return wrapper

@add_star
def hello():
    print("안녕하세요!")

hello()

출력:

*****
안녕하세요!
*****

👉 @add_star라는 한 줄로, 원래 hello() 함수에 "별 다섯 개" 장식을 추가한 거예요.
✔ 정리: 데코레이터는 **"기존 함수에 옵션을 붙이는 마법 같은 기능"**이라고 이해하면 쉽습니다.


📌 클로저 vs 데코레이터 한 줄 정리

  • 클로저: 어떤 값을 기억한 채로 동작하는 함수 (쿠폰처럼 조건을 기억)
  • 데코레이터: 기존 함수에 새로운 기능을 덧붙이는 것 (음식을 예쁘게 장식)

💡 일상 속 비유로 이해하기

  • 클로저: "카페 단골 쿠폰" → 특정 조건(가격, 할인율)을 기억한 채로 언제든 사용 가능
  • 데코레이터: "포장 서비스" → 기존 상품(함수)에 포장(기능)을 덧붙여 더 멋지게 제공

✅ 총평

클로저와 데코레이터는 이름만 보면 어렵지만, 이렇게 비유로 이해하면 생각보다 단순합니다.
👉 클로저는 기억하는 함수, 데코레이터는 꾸며주는 함수!

파이썬을 좀 더 효율적으로 쓰고 싶으신 분들은 꼭 알아두시면 좋아요.


#검색태그
#파이썬 #파이썬문법 #클로저 #데코레이터 #파이썬기초 #프로그래밍입문 #코딩공부 #파이썬독학 #개발자블로그 #코딩초보


반응형