1. 데코레이션 (Decoration) 이란?
ㅇ 프로그래밍에서, 기존 코드를 감싸서, 동작/기능을 확장하는 방식
- 원본을 수정하지 않고 확장
- 실행 전/후 동작을 삽입 가능 (동적으로 동작을 추가 가능)
- OOP의 상속 대신 감싸기(wrapping) 사용
ㅇ 데코레이터 (Decorator) : 데코레이션 구현 수단/도구
- 데코레이션을 수행하는 구성 요소로써,
- 함수,클래스,메타데이터(Annotation) 등으로 수행 가능
ㅇ 디자인 패턴 관점의 데코레이션 (GoF의 Decorator Pattern)
- 원본 객체를 감싸는 래퍼(wrapper) 객체
- 동일한 인터페이스 유지
- 동적으로 기능 추가
- 例)
. 입출력 스트림 체인
. GUI 컴포넌트 확장
. 로깅
.. 함수 실행시, 함수 이름을 로그 파일에 기록 및 콘솔 출력 등이 되도록,
.. 기존 코드에 데코레이터에 의한 로깅 기능 추가 등
. 암호화 필터 등
ㅇ 파이썬 데코레이션 (Python Decoration)
- 함수,메서드 등에 추가적인 동작이나 정보를 덧붙이는 문법적 기능