본문으로 건너뛰기
객체지향 설계 · 디자인 패턴LESSON 13

Observer 패턴과 이벤트

난이도중급 → 심화
예상 시간65분
선수지식이전 강의

13강. Observer 패턴과 이벤트

1. 이번 강의에서 해결할 문제​

Task가 UI·메일·통계를 직접 호출하면 새 후속 동작마다 도메인이 변합니다. Observer도 구독 해제와 호출 순서를 방치하면 더 추적하기 어렵습니다.

2. 학습 목표​

3. 핵심 개념​

Observer는 사건 발생과 반응 목록을 분리합니다. 사건은 이미 일어난 사실이며 명령과 다릅니다. 동기 콜백은 느린 구독자가 발행자를 막고 재진입을 만들 수 있습니다.

4. 구현​

EventBus.h
using Handler = std::function<void(const TaskCompleted&)>;
Subscription subscribe(Handler handler);
void publish(const TaskCompleted& event);

Subscription 소멸자가 자동 해제되게 하고 publish는 콜백 목록의 안전한 복사 또는 수정 규칙을 정합니다.

5. 코드가 동작하는 이유​

TaskService는 완료 사실만 발행하고 UI·Notifier는 독립 구독합니다. 구독 토큰이 대상보다 오래 남는 댕글링 캡처를 줄입니다.

6. 자주 하는 실수와 해결법​

7. 직접 실습​

8. 이해 점검 질문 3개​

9. 핵심 요약​

MINI QUIZ

Observer 패턴과 이벤트 미니 퀴즈

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

0 / 2
  1. 문제 1“Observer 패턴과 이벤트”에서 오류나 데이터 손실을 줄이는 선택은 무엇인가요?
  2. 문제 2“Observer 패턴과 이벤트” 실습 중 ‘이벤트로 모든 호출 숨김’ 상황을 발견했습니다. 본문과 일치하는 설명은 무엇인가요?
LESSON STATUS

학습을 마쳤나요?

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

13강. Observer 패턴과 이벤트 미완료 상태