광고 시스템 고도화: 월 매출 2억 원을 지탱하는 기술
QANDA 학생 앱의 핵심 수익원인 인앱 광고 시스템을 고도화했습니다. 텍스트, 이미지, 비디오 등 다양한 타입의 직광고와 AdMob, Teads 등 여러 네트워크 광고를 통합 관리할 수 있는 시스템을 설계하고 개발했습니다. 복잡하게 얽힌 여러 광고 네트워크의 로직을 추상화하여 단일화된 인터페이스를 갖춘 통합 시스템을 설계함으로써, 새로운 네트워크를 유연하게 추가하고 정책 변경에 신속하게 대응할 수 있는 유연한 아키텍처를 구축했습니다.
1. 개요
콴다 앱의 핵심 수익원인 인앱 광고 시스템을 재설계했습니다. 다양한 광고 네트워크(AdMob, Pangle, Teads 등)를 유연하게 스위칭할 수 있는 미디에이션(Mediation) 레이어가 필요했습니다.
2. 주요 구현 내용
통합 인터페이스 설계 (Polymorphism)
- 각 광고 SDK의 상이한 구현 방식을 감추는
AdNetworkAdapter프로토콜을 정의하고, Factory Pattern을 통해 런타임에 동적으로 네트워크를 주입하도록 설계했습니다. - 성과: 새로운 광고사 SDK를 추가할 때 기존 비즈니스 로직을 수정하지 않고 어댑터만 구현하면 되도록 구조를 개선하여 연동 기간을 5일에서 1.5일로 단축했습니다.
비동기 처리와 안정성 (Concurrency)
- 광고 로딩 시 메인 스레드를 차단할 위험을 방지하기 위해 **Swift Concurrency (async/await)**를 적용하여 비동기 파이프라인을 구축했습니다.
- Combine을 활용해 광고 로드 상태(Loading → Loaded → Impression)를 스트림으로 관리하여, 뷰 라이프사이클과 정확히 동기화되도록 설계했습니다.
- 오류 발생 시의 예외 처리를 꼼꼼히 구현하여 시스템 안정성을 높였습니다.
3. 성과
- 광고 관련 Crash-free session 99.99% 달성
- 트래픽 폭증 상황에서도 광고 누락 없는 안정적인 수익화 인프라 제공