AI Briefing

주문 상태를 더 빠르게 전달하는 방법: Live Activities

·2025.11.20 16:16

Live Activities와 APNs로 주문 상태를 앱 밖에서도 실시간 반영했다.

요기요 모바일 팀은 Live Activities를 실제 프로덕트에 적용해, 주문 상태처럼 계속 변하는 정보를 Lock ScreenDynamic Island에서 바로 보여주도록 만들었다. 사용자 요청이 많았던 기능인 만큼, 단순 실험이 아니라 실서비스에 반영한 사례라는 점이 핵심이다.

Live Activities의 목적은 빈번하게 바뀌는 데이터를 즉각 업데이트하는 데 있다. 반대로 Push Notifications는 새로운 정보를 한 번 전달하는 데 적합하므로, 정적인 정보나 단발성 메시지는 알림으로, 주문 진행처럼 동적인 상태는 Live Activities로 나누는 전략이 맞다.

요기요의 요구사항은 두 가지였다.

  • 주문 완료부터 배달 완료까지의 상태 변화에 맞춰 액티비티 생성, 업데이트, 제거를 처리할 것
  • 사용자가 액티비티를 탭하면 주문 상세 페이지로 바로 이동할 것

두 번째 요구는 기존 Deep Linking을 활용해 widgetURL(_:)로 연결했다. 주문 상세 진입은 비교적 간단했지만, 핵심은 액티비티를 어떻게 안정적으로 관리하느냐였다.

관리 방식은 크게 두 가지다. 앱 내부에서 Activity.request()activity.update()로 직접 제어할 수도 있지만, 이 방식은 앱이 백그라운드이거나 종료되면 갱신이 막힌다. 반면 APNs를 쓰면 서버가 Push Token 기반으로 상태를 푸시할 수 있어, 앱이 실행 중이 아니어도 원격으로 Live Activities를 갱신할 수 있다.

요기요는 결국 서버 중심 관리를 택했다. 그 이유는 세 가지다.

  • 같은 계정의 여러 기기에서 동일한 주문 상태를 보여줄 수 있다
  • 앱이 꺼져 있어도 Live Activities 생성 및 업데이트가 가능하다
  • 배달 종류에 따라 노출 여부를 서버에서 동적으로 제어할 수 있다

적용 과정에서 가장 중요한 제약도 정리했다. 디자인 측면에서는 노출 영역이 제한적이고 Dynamic Island 레이아웃 규칙이 까다로워, Human Interface Guidelines를 따라야 했다. 애니메이션도 제약이 많아, 안정성을 우선해 정적 중심으로 구성했다.

콘텐츠 측면에서는 더 분명했다. Live Activities는 광고나 프로모션을 보여주는 용도가 아니며, 진행 중인 사건이나 작업과 직접 관련된 정보만 담아야 한다. 그래서 광고성 메시지는 Push Notifications로, 상태 변화는 Live Activities로 분리하는 것이 가장 자연스러운 조합이 된다.

결국 Live Activities는 앱 안의 정보를 시스템 전역으로 확장하는 인터페이스였다. 요기요는 이를 통해 사용자가 앱을 열지 않아도 주문 상태를 확인할 수 있게 했고, 서버와 APNs를 결합해 여러 기기에서 일관된 경험을 제공했다.

이 요약은 원문 이해를 돕기 위한 큐레이션입니다. 저작권은 원저작자에게 있으며, 정확한 내용과 맥락은 원문을 확인하세요.

요약 오류, 출처 표기 문제, 삭제 요청은 문의 · 건의로 알려주세요.