2023년 6월 업데이트

 

안녕하세요. SQLER의 코난 김대우입니다. 

이번 강좌에서는, Python 초급 강좌 목차 - 18. 데코레이터(Decorators)를 진행토록 하겠습니다.

 

SQLER에서 진행되는 전체 Python / 머신러닝 강좌 목록

 

코드를 실행하기 위해서는, vscode에서 새로운 파일을 만들고 실행하시면 됩니다.

예를 들어, 18_decorators.py를 생성하고 코드를 실행합니다.

 

 

TL;DR

데코레이터(Decorators)는 Python 코드에 의미나 기능을 추가하는 속성(attribute)과 유사합니다. 데코레이터는 Python 함수에 확장 기능을 제공하고, Flask의 라우팅과 같은 웹 어플리케이션 개발에서도 사용됩니다.
 

 

Python 초급 강좌 목차 - 18. 데코레이터(Decorators)

 

데코레이터(Decorators)는 Python의 코드 블록에 의미나 기능을 추가한다는 점에서 속성(attribute)과 유사합니다. Flask 또는 Django와 같은 프레임 워크에서 자주 사용됩니다. Python 개발자로서 대부분의 경우, Decorator를 만들기보다는 주로 사용하게 될 것입니다.

 

이 SQLER의 Python 초급 강좌의 목적은, 강좌를 통해 Python에 익숙해지고, 다른 코드들을 쉽게 읽고 변경하는 기본을 쌓기 위함입니다. 특히, Django나 Flask와 같은 Python의 인기 있는 웹 애플리케이션 제작 프레임워크 역시 마찬가지입니다. 이 강좌에서는 코드에서 사용되는 데코레이터를 파악하고, 이를 잘 사용하는 방안에 대해서 소개합니다.

 

일반적인 데코레이터 구조

# Decorators 예시
@log(True)
def sample_function():
    print('this is a sample function')

데코레이터는 이런 형태로 사용됩니다.

 

Flask의 데코레이터 패턴

Flask와 같은 웹 애플리케이션 프레임워크에서는 이런 형태로 사용됩니다.

@app.route("/profile", methods=["GET", "POST"])
def profile:
    return render_template("profile.html")

웹서버의 /profile으로 GET이나 POST 요청이 오면 이 요청을 profile.html 파일에서 처리하도록 라우트 하는 코드입니다.

이런 형태로, 데코레이터는 기존 python의 function에 확장된 기능을 제공합니다.

 

간단한 데코레이터 생성

import functools
from colorama import init, Fore
init()

def color(color):
    def wrapper(func):
        @functools.wraps(func)
        def runner(*args, **kwargs):
            print(color + 'changing to blue')
            func(*args, **kwargs)
        return runner
    return wrapper

@color(color=Fore.BLUE)
def greeter():
    print('Hello, world!!')
    print('Just saying hi again')

greeter()

 

이렇게 데코레이터를 생성해 사용하는 것도 가능합니다.

 

파이썬 초급 강좌에 참여해 주셔서 감사합니다. 다음 파이선 중급 강좌도 많은 관심 부탁 드립니다. 

 

 

파이썬 강좌 책 구매

강좌가 도움이 되셨다면, 책으로 구매 가능합니다. 책 판매 수익금은 전액 코딩 교육 사회공헌 활동에 기부되며, 아래 링크에서 구매하시면 더 많은 금액이 기부됩니다. 

 

책구매 링크: 챗GPT와 함께하는 파이썬 & 머신러닝 코딩 마스터 

파이썬-책구매링크.png

 

참고링크

개발자 커뮤니티 SQLER.com - Python 무료 강좌 - 기초, 중급, 머신러닝

c9-python-getting-started/python-for-beginners/18 - Decorators at master · CloudBreadPaPa/c9-python-getting-started (github.com)

 

 

 

No. Subject Author Date Views
Notice SQL강좌: 챗GPT와 함께 배우는 SQL Server 무료 강좌 목차와 소개 (2023년 9월 업데이트) 코난(김대우) 2023.08.18 40012
Notice Python 무료 강좌 - 기초, 중급, 머신러닝(2023년 6월 업데이트) 코난(김대우) 2021.01.01 21950
98 Python 중급 강좌 - 4. 상속(Inheritance) 코난(김대우) 2021.01.03 401
97 Python 중급 강좌 - 3. 클래스(Class) 코난(김대우) 2021.01.03 454
96 Python 중급 강좌 - 2. 람다(Lamda) file 코난(김대우) 2021.01.03 556
95 Python 중급 강좌 - 1. Python 스타일 가이드: 서식(Formatting)과 린팅(Linting) file 코난(김대우) 2021.01.02 1161
94 Python 초급 강좌 목차 - 19. 코드에서 중요한 키(패스워드) 관리 - dotenv 코난(김대우) 2021.01.02 975
» Python 초급 강좌 목차 - 18. 데코레이터(Decorators) 코난(김대우) 2021.01.02 358
92 Python 초급 강좌 목차 - 17. JSON 데이터 처리 file 코난(김대우) 2021.01.02 831
91 Python 초급 강좌 목차 - 16. 외부 웹서비스 API 호출 file 코난(김대우) 2021.01.02 957
90 Python 초급 강좌 목차 - 15. 패키지(Package): import, pip 코난(김대우) 2021.01.02 421
89 Python 초급 강좌 목차 - 14. 함수 파라미터(Parameter) 코난(김대우) 2021.01.02 438
88 Python 초급 강좌 목차 - 13. 함수(Function) 코난(김대우) 2021.01.02 552
87 Python 초급 강좌 목차 - 12. 반복문(Loop): for, while 코난(김대우) 2021.01.02 374
86 Python 초급 강좌 목차 - 11. 컬렉션(Collection): list, array, dictionary file 코난(김대우) 2021.01.02 335
85 Python 초급 강좌 목차 - 10. 조건문(Condition):3 복잡한 조건 처리 코난(김대우) 2021.01.01 364
84 Python 초급 강좌 목차 - 9. 조건문(Condition):2 다중 조건 처리 코난(김대우) 2021.01.01 429
83 Python 초급 강좌 목차 - 8. 조건문(Condition):1 (IF-ELSE) 코난(김대우) 2021.01.01 375
82 Python 초급 강좌 목차 - 7. 에러 핸들링(Error Handling) file 코난(김대우) 2021.01.01 360
81 Python 초급 강좌 목차 - 6. 날짜와 시간 데이터 처리 코난(김대우) 2021.01.01 403
80 Python 초급 강좌 목차 - 5. 숫자(Numeric) 데이터 처리 코난(김대우) 2021.01.01 330
79 Python 초급 강좌 목차 - 4. 문자열(String) 데이터 처리 코난(김대우) 2021.01.01 444





XE Login