brunch

You can make anything
by writing

C.S.Lewis

by eddward park Mar 21. 2021

Observer Pattern

행위 패턴중 옵저버 패턴에 대해서

피그마로 직접 그린 이미지


옵서버 패턴(observer pattern)은 객체의 상태 변화를 관찰하는 관찰자들, 즉 옵저버들의 목록을 객체에 등록하여 상태 변화가 있을 때마다 메서드 등을 통해 객체가 직접 목록의 각 옵저버에게 통지하도록 하는 디자인 패턴이다.


위키에 정의된 옵저버 패턴이다.


여러분들은 아마도 피그마, 넷플릭스, 멜론등 수많은 구독 서비스 중 하나 이상을 사용하고 있을것이다.


구독 서비스를 이용하게 되면 신규 컨텐츠나 새로운 기능들이 추가될때 알림을 통해 관련 내용을 받아본적이 있을거다.



피그마로 직접 그린 이미지


넷플릭스 서비스를 구독하고 있다면 화면 상단 오른쪽에 종모양의 아이콘을 본적이 있을거다.


주로 신규 컨텐츠가 추가되면 종모양 옆에 빨간원안에 추가되는 컨텐츠만큼 숫자가 적혀있는것을 볼 수 있다.


또한, 사용자가 좋아할만한 컨텐츠를 보게 하기 위해 추천 컨텐츠를 알림으로 보여주는 경우도 있다.


옵저버 패턴은 사용자에게 서비스내에서 일어나는 일들을 알려주는 역할을 하고 있다.



피그마로 직접 그린 이미지


https://gist.github.com/nishanbajracharya/7979d5c2d41eaa3c556d95ce762cda9d


위의 이미지는 옵저버 패턴의 예제 코드이다.


observer.subscribe([subscriberA, subscriberB, subscriberC]);
observer.set(10);


옵저버의 구독 함수에 A, B, C 의 사용자가 등록한것을 볼 수 있다.


옵저버에 10이라는 숫자가 새롭게 등록이 되면 콘솔창을 통해 A, B, C 모두에게 10이 전달된 것을 볼 수 있게 된다.


우리가 사용하는 구독서비스들이 옵저버 패턴을 사용한다는점을 기억하면 객체지향의 옵저버 패턴도 그리 어렵게 느끼지 않을거다.

매거진의 이전글 Proxy Pattern
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari