[@ 데코레이터] 원래 함수를 수정하지 않고 추가적인 기능을 구현하는 방법

2025. 4. 20. 21:48·프로그래밍 언어/Python

 

 

🎀 데코레이터란?

데코레이터(Decorator) = 다른 함수에 기능을 추가하는 함수

  • 원래 함수를 바꾸지 않고
  • 실행 전후에 기능을 덧붙이기 위해 씀!

바로 예시로 알아보자 

def decorator_function(original_function):
    def wrapper_function():
        print("함수 실행 전 🎬")
        original_function()
        print("함수 실행 후 🎉")
    return wrapper_function

@decorator_function
def say_hello():
    print("안녕~ 👋")

say_hello()

 

함수 실행 전 🎬  
안녕~ 👋  
함수 실행 후 🎉

 

Sum.

@decorator_function 데코레이터 함수 붙이는 문법
wrapper_function 기존 함수 감싸는 함수
original_function() 원래 우리가 부르고 싶은 함수

 

 

- 기존 함수의 내용에 앞,뒤로 기능을 덧붙일수 있음

🌟 데코레이터 언제 쓰냐?

  • ✅ 공통기능 추가 (ex. 로깅, 인증 체크, 타이머 등)
  • ✅ 코드 재사용성 ↑
  • ✅ 함수 수정 없이 기능 덧붙이기 가능!

 

가장 적합한 예시

 

🧪 예시: 실행 시간 측정 데코레이터

import time

def timer_decorator(func):
    def wrapper():
        start = time.time()
        func()
        end = time.time()
        print(f"⏱ 걸린 시간: {end - start:.2f}초")
    return wrapper

@timer_decorator
def slow_function():
    time.sleep(2)
    print("느린 함수 끝~ 🐢")

slow_function()

'프로그래밍 언어 > Python' 카테고리의 다른 글

[Syntax] 예외처리 , try/except/finally/assert  (0) 2023.05.31
파이썬 프로토타입 라이브러리_streamlit _  (0) 2023.02.27
파라미터 config 폴더로 관리하기(argparse, yaml) 이용  (0) 2022.02.17
'\n'개행변수 삭제  (0) 2021.01.25
f string 소수점 표기 법 print(f'{loss :.2f}')  (0) 2020.10.22
'프로그래밍 언어/Python' 카테고리의 다른 글
  • [Syntax] 예외처리 , try/except/finally/assert
  • 파이썬 프로토타입 라이브러리_streamlit _
  • 파라미터 config 폴더로 관리하기(argparse, yaml) 이용
  • '\n'개행변수 삭제
버터젤리
버터젤리
  • 버터젤리
    across the universe
    버터젤리
  • 전체
    오늘
    어제
    • 분류 전체보기 (128)
      • 데이터 엔지니어 (0)
        • MLOPs (0)
      • 인프라 및 클라우드 (0)
        • Docker (0)
        • Kubernetes (0)
      • Development(개발) (2)
        • 백엔드 (0)
        • 개발 Core (2)
      • LLM (4)
        • 강화학습 (0)
        • LLM (4)
        • Generator (0)
      • PM (7)
        • IT Trends (0)
        • 세미나 후기 (7)
      • Deep learning (30)
        • 기초이론 (8)
        • 컴퓨터비전 (6)
        • 자연어처리 (5)
        • Anomaly Detection (6)
      • Machine learning (25)
      • Computer Science (26)
        • Linux (21)
        • 네트워크 (1)
        • 하드웨어 (4)
        • 운영체제(OS) (0)
      • 프로그래밍 언어 (17)
        • Python (8)
        • Pytorch (8)
        • Tensorflow (0)
      • Tools (14)
        • 주피터노트북 (7)
        • 깃(Git) (2)
        • 파이참 (5)
      • Book (2)
      • LIFE (0)
      • 창고 (0)
        • AI 인턴 (0)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    객체지향
    jupyer notebook
    객사오
    BN
    책임
    백그라운드
    BatchNormalization
    역할과책임
    리눅스#파일이동#특정이름#포함
    객체지향의사실과오해
    #git#github
    역할
    데코레이터
    nohup
    batch normalization
    @
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.1
버터젤리
[@ 데코레이터] 원래 함수를 수정하지 않고 추가적인 기능을 구현하는 방법
상단으로

티스토리툴바