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 데코레이터 한 줄 정리
- 클로저: 어떤 값을 기억한 채로 동작하는 함수 (쿠폰처럼 조건을 기억)
- 데코레이터: 기존 함수에 새로운 기능을 덧붙이는 것 (음식을 예쁘게 장식)
💡 일상 속 비유로 이해하기
- 클로저: "카페 단골 쿠폰" → 특정 조건(가격, 할인율)을 기억한 채로 언제든 사용 가능
- 데코레이터: "포장 서비스" → 기존 상품(함수)에 포장(기능)을 덧붙여 더 멋지게 제공
✅ 총평
클로저와 데코레이터는 이름만 보면 어렵지만, 이렇게 비유로 이해하면 생각보다 단순합니다.
👉 클로저는 기억하는 함수, 데코레이터는 꾸며주는 함수!
파이썬을 좀 더 효율적으로 쓰고 싶으신 분들은 꼭 알아두시면 좋아요.
#검색태그
#파이썬 #파이썬문법 #클로저 #데코레이터 #파이썬기초 #프로그래밍입문 #코딩공부 #파이썬독학 #개발자블로그 #코딩초보
'파이썬' 카테고리의 다른 글
[파이썬 문법] return(반환)과 print(출력)의 차이점 (2) | 2025.06.24 |
---|---|
파이썬 클래스와 객체, 진짜 쉽게 이해하기! (0) | 2025.04.29 |
파이썬 딕셔너리, value 기준 내림차순 정렬하는 방법 (0) | 2025.04.29 |
브런치스토리 brunchstory 저작권 보호글 파이썬으로 우회 복사하는 방법(웹 크롤링) (2) | 2025.04.28 |
[파이썬] 튜플 vs 리스트, 뭐가 다를까? (1) | 2025.04.18 |