본문으로 건너뛰기
객체지향 설계 · 디자인 패턴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

Decorator와 Proxy 미니 퀴즈

선택 즉시 정답과 해설을 확인할 수 있습니다. 결과는 이 브라우저에만 저장됩니다.

0 / 2
  1. 문제 1“Decorator와 Proxy”에서 오류나 데이터 손실을 줄이는 선택은 무엇인가요?
  2. 문제 2다음 중 “Decorator와 Proxy”의 핵심 개념을 올바르게 연결한 설명은 무엇인가요?
LESSON STATUS

학습을 마쳤나요?

직접 실습과 점검 질문까지 확인한 뒤 완료로 표시하세요.

17강. Decorator와 Proxy 미완료 상태