Daily iOS
아키텍처

분석 이벤트 디스패치 설계

테이크홈 과제입니다. 분석 이벤트를 여러 서비스(Google Analytics, Snowplow 등)로 보내는 계층을 Swift만으로 설계하세요. 조건: 호출부는 한 줄, 이벤트는 모듈화되어 추가·삭제가 쉬움, 서비스마다 이벤트 이름·파라미터가 다를 수 있음, 서비스는 이벤트를 선택적으로 수신 가능, 서비스 추가가 기존 코드를 건드리지 않음. 타입을 어떻게 설계하나요?

면접관은 이 답을 어떻게 들을까요? 넘어갈지, 더 물어볼지, 떨어뜨릴지 알려 주고, 걸리는 문장은 콕 집어 줘요. 점수는 그대로예요.
짧은 답 보기

이벤트는 AnalyticsEvent 프로토콜(또는 enum)로, 서비스는 AnalyticsService 프로토콜로 추상화하고, 디스패처가 등록된 서비스에 이벤트를 팬아웃한다. 서비스가 이벤트를 자기 이름·파라미터로 매핑하고 supports(event)로 선택 수신한다.

받은 질문 공유