프로그래밍/프로그래밍 이론
옵저버(Observer) 패턴
argentdarae
2025. 3. 21. 01:42
반응형
옵저버 패턴이란?
객체간 1:N 관계를 정의하며, 한 객체의 상태 변화가 다른 객체들에게 자동으로 전달되도록 하는 디자인 패턴이다
즉, 주체(Subject) 객체가 상태를 변경하면 구독자(Observer)들이 감지하고 반응하는 것이다
옵저버 패턴의 구성 요소
Subject (주체, 관찰 대상)
- 상태 변화를 감지해야 하는 객체
- 옵저버(Observer) 목록을 관리하며, 상태가 변경되면 모든 옵저버에게 알림을 보낸다
Observer (옵저버, 구독자)
- Subject의 상태 변화를 감지하고, 이에 반응하는 객체
- Subject가 변경될 때 알림을 받아 필요한 작업을 수행한다
예시 동작 흐름
- Observer가 Subject를 구독(Subscribe) 한다
- Subject의 상태가 변경되면 모든 Observer에게 자동으로 알림이 전송된다
- Observer들은 알림을 받고 자신의 상태를 업데이트 한다
옵저버 패턴의 장점
- 객체 간 결합도 감소: Subject와 Observer가 직접 연결되지 않아 유연한 설계가 가능
- 유지보수 편리: 새로운 Observer를 추가해도 Subject의 코드 변경이 필요 없다
옵저버 패턴 사용시 주의할 점
- 옵저버 개수 증가시 이슈 발생 가능: 많은 옵저버에게 알림을 보내야 하므로 성능 문제 및 디버깅 복잡성이 증가할 수 있다
- 순환 참조 위험: Subject와 Observer가 서로 참조하는 경우 널 레퍼런스 발생 가능하다
Reference