객체지향 설계 · 디자인 패턴LESSON 17
Decorator와 Proxy
난이도중급 → 심화
예상 시간65분
선수지식이전 강의
17강. Decorator와 Proxy
1. 이번 강의에서 해결할 문제
로깅·재시도·권한 조합마다 자식을 만들면 계층이 폭발합니다. 래퍼도 순서와 중복 부작용을 방치하면 위험합니다.
2. 학습 목표
3. 핵심 개념
Decorator는 부가 기능을 조합하고 Proxy는 지연 로딩·권한 같은 대리 제어가 목적입니다. 구조가 비슷해도 변경 이유가 다릅니다.
4. 구현
RetryingNotifier.h
class RetryingNotifier final : public Notifier {
std::unique_ptr<Notifier> inner_; int attempts_;
public: void send(const Notification& n) override {
for(int i=0;i<attempts_;++i) try { inner_->send(n); return; }
catch(const TemporaryError&) { if(i+1==attempts_) throw; }
}};
5. 코드가 동작하는 이유
기존 Notifier 수정 없이 retry와 logging을 조합하며 영구 오류는 재시도하지 않습니다.
6. 자주 하는 실수와 해결법
7. 직접 실습
8. 이해 점검 질문 3개
9. 핵심 요약
MINI QUIZ
0 / 2Decorator와 Proxy 미니 퀴즈
선택 즉시 정답과 해설을 확인할 수 있습니다. 결과는 이 브라우저에만 저장됩니다.
LESSON STATUS
17강. Decorator와 Proxy 미완료 상태학습을 마쳤나요?
직접 실습과 점검 질문까지 확인한 뒤 완료로 표시하세요.