반응형
👀 옵저버 패턴 (Observer Pattern) - 상태 변화를 감시하는 패턴
오늘은 옵저버 패턴에 대해 공부해봤다.
이 패턴은 주체(Subject)가 어떤 객체의 상태 변화를 관찰하다가 변화가 생기면,
옵저버(Observer) 목록에 있는 객체들에게 변화를 알려주는 방식이다.
음... 이게 무슨 말일까? 🤔
쉽게 말해서, 트위터 같은 SNS의 메인 로직이 이 패턴을 기반으로 동작한다고 한다.
🐦 트위터와 옵저버 패턴
트위터를 생각해보면, 내가 누군가를 팔로우하면 그 사람이 새로운 트윗을 올릴 때마다 내 타임라인에 자동으로 업데이트된다.
이걸 코드로 풀어보면 대략 이런 구조가 될 것 같다.
- 주체 (Subject) - 트윗을 올리는 사람 (예: 유명인)
- 옵저버 (Observer) - 트윗을 구독하는 사람들 (예: 팔로워)
- 알림 (Notification) - 트윗이 올라오면 팔로워들에게 자동으로 알려줌
즉, 유명인이 트윗을 올리면 팔로워들에게 자동으로 알림이 가는 것처럼,
옵저버 패턴은 주체의 상태 변화가 생기면 옵저버들에게 이를 알려주는 방식으로 동작하는 것이다.
🏗 MVC 패턴과의 관계
재밌는 점은 옵저버 패턴이 MVC(Model-View-Controller) 패턴에서도 사용된다는 것이다.
MVC 패턴에서 옵저버 패턴이 어떻게 적용될까?
- Model (모델): 데이터 및 상태를 관리
- View (뷰): 데이터를 사용자에게 보여줌
- Controller (컨트롤러): 사용자의 입력을 받아 모델을 변경
여기서 모델이 변경되면, 뷰는 즉시 업데이트되어야 한다.
이때 옵저버 패턴을 적용하면, 모델이 변경될 때마다 뷰에게 이를 알리고 자동으로 화면이 갱신될 수 있다.
📌 정리
- 옵저버 패턴은 객체의 상태 변화를 감지하고 관찰자들에게 자동으로 알리는 패턴이다.
- 트위터의 팔로우 시스템이 이 패턴을 기반으로 동작한다.
- MVC 패턴에서도 모델이 변경될 때 뷰가 자동으로 업데이트되도록 적용할 수 있다.
- 하지만 옵저버가 많아질 경우 성능 문제나 결합도 증가 등의 문제도 고려해야 한다.
반응형
'CS 공부' 카테고리의 다른 글
# MVC, MVP, MVVM 패턴 (0) | 2025.02.20 |
---|---|
# 프록시 패턴 (0) | 2025.02.20 |
# 전략 패턴 (0) | 2025.02.20 |
# 의존성 주입과 의존관계 역전 원칙 (0) | 2025.02.20 |
# 이터레이터(iterator) 패턴 (0) | 2025.02.20 |