미디에이터 vs 옵저버 vs 퍼사드 완벽 비교, 객체 통신 패턴 3가지
미디에이터는 얽힌 객체 관계를 중앙에서 조정하고, 옵저버는 상태 변화를 일대다로 알리며, 퍼사드는 복잡한 내부를 단순한 창구로 감쌉니다. 세 패턴의 차이와 선택 기준을 Swift 예제로 비교했습니다.
읽어보기엄선한 주제 · 27 글
GoF 디자인 패턴의 의도와 Swift 구현, 비슷한 패턴의 선택 기준을 비교합니다.
최신 글
미디에이터는 얽힌 객체 관계를 중앙에서 조정하고, 옵저버는 상태 변화를 일대다로 알리며, 퍼사드는 복잡한 내부를 단순한 창구로 감쌉니다. 세 패턴의 차이와 선택 기준을 Swift 예제로 비교했습니다.
읽어보기GoF 팩토리 메서드는 객체 하나의 구체 타입 결정을 서브클래스에 맡기고, 추상 팩토리는 관련 객체 제품군을 함께 생성합니다. 두 패턴의 의도와 선택 기준을 Swift 예제로 비교합니다.
읽어보기어댑터는 인터페이스 변환, 퍼사드는 복잡성 은닉, 프록시는 접근 통제, 데코레이터는 기능 추가가 목적입니다. 구조가 닮은 네 래핑 패턴을 의도와 선택 기준으로 비교합니다.
읽어보기전략 패턴은 외부에서 알고리즘을 선택하고 스테이트 패턴은 현재 상태가 내부 전환을 주도합니다. 같은 클래스 구조를 가진 두 행동 패턴을 의도와 변경 주체로 구분합니다.
읽어보기게임 이펙트를 잔뜩 뿌리는 화면을 만들다 보면 프레임이 뚝뚝 끊기는 순간이 옵니다.
읽어보기디자인 패턴 책을 펼치면 늘 마지막쯤에 등장하는 게 인터프리터 패턴이에요. "이게 대체 언제 쓰이나" 싶어서 대충 넘기기 쉬운 패턴이죠.
읽어보기비슷한 로직을 클래스마다 복붙하다가 "이거 뭔가 잘못됐는데" 싶었던 적 있으신가요? iOS 앱에서 화면별 데이터 로딩 코드를 세 번째 복사할 때쯤이면 손이 멈추게 되죠.
읽어보기iOS 개발하다 보면 도형이든 노드든, 종류가 여러 개인 객체에 연산을 계속 얹어야 하는 순간이 옵니다.
읽어보기퍼사드 패턴은 여러 객체가 얽힌 서브시스템 앞에 단순한 진입점 하나를 제공합니다. Swift 회원가입 예제로 호출 순서를 한곳에 모으는 법과 어댑터·프록시·데코레이터와의 차이를 설명합니다.
읽어보기앱을 만들다 보면 비슷비슷한 객체를 수천, 수만 개씩 찍어내야 할 때가 있어요. 지도 위에 마커를 수만 개 뿌리는 기능이 대표적인데, 이런 상황에서는 메모리 그래프가 계속 치솟기 쉽습니다.
읽어보기앱을 만들다 보면 "실행 취소 버튼 하나만 넣어달라"는 요청이 생각보다 자주 들어옵니다.
읽어보기폴더 안에 폴더, 그 안에 또 파일. 이런 트리 구조를 코드로 다뤄본 분이라면 한 번쯤 막막했을 거예요.
읽어보기iOS 개발하다 보면 이런 순간이 옵니다. 기본 기능은 그대로 두고 로깅 하나만, 캐싱 하나만 얹고 싶은데, 그걸 하려고 클래스를 상속받기 시작하면 어느새 상속 트리가 엉망이 되어 있죠.
읽어보기추상 팩토리는 서로 호환되어야 하는 객체 여러 개를 제품군으로 묶어 한 번에 교체합니다. Swift 테마 예제로 조합 오류를 막는 구조와 팩토리 메서드와의 선택 기준을 설명합니다.
읽어보기Swift 팩토리 함수는 생성 로직에 의도를 드러내는 이름을 붙이고 반환 타입과 재사용 정책을 유연하게 만듭니다. init 대신 static func를 선택할 기준과 GoF 팩토리 메서드와의 차이를 정리합니다.
읽어보기어댑터 패턴은 레거시 API의 인터페이스를 새 코드가 기대하는 프로토콜로 변환합니다. Swift에서 변환 경계를 만들고 교체와 테스트를 쉽게 하는 구현 순서와 다른 래핑 패턴과의 차이를 정리합니다.
읽어보기Swift 개발을 하다 보면 static let shared 한 줄로 만드는 싱글톤을 정말 자주 만나게 됩니다.
읽어보기