Multimedia Networking

High Performance Browser Networking: Ch 08 모바일네트워크최적화

깜장호랭 2025. 4. 23. 22:21

요즘 모바일 앱을 개발하다 보면 "왜 이렇게 느리지?" 혹은 "배터리 너무 빨리 닳는데?"가 주된 고민이다. 사실 이건 단순히 코드나 UI 문제가 아니라, 모바일 네트워크 자체가 갖고 있는 특성과 한계에서 비롯된 문제라고 할 수 있다. 여기서는 모바일 네트워크 최적화를 위한 진짜 핵심을 다룬 내용[1]을 정리해 보자.

배터리, 네트워크, 프레젠테이션 – 무시할 수 없는 세 가지 제약

모바일 앱을 만들 때 우리가 가장 많이 신경 쓰는 게 아마 반응형 디자인일 것이다. 그런데 네트워크 구조와 배터리 사용에 대한 이해가 부족하면, 아무리 멋진 UI를 만들어도 실사용자에겐 ‘답답한 앱’으로 느껴질 수 있다. 중요한 건 세 가지를 균형 있게 고려하는 것이라 할 수 있다.

  • 프레젠테이션: 작은 화면 안에 어떻게 정보를 전달할지
  • 네트워크 성능: 레이턴시, 처리량
  • 배터리 수명: 무선 전파 사용 최소화

이 중 하나라도 무시하면 전체 경험이 망가질 수 있다..

배터리를 아끼는 네트워크 설계법

모바일 네트워크에서 배터리를 아끼는 건 사용자를 포함한 모든 이해관계자의 관심사이다. 이를 위해서 우리가 고려해야 할 건 다음과 같다.

  • 무선 전파가 배터리 소모의 주범이라는 점
  • 데이터 크기와 무관하게, 전파를 켜는 순간 에너지를 소비한다는 점
  • 폴링보다 푸시가 효율적이라는 점

즉, 자잘한 데이터를 자주 보내는 방식은 최악이다. 가능하면 다음처럼 접근해야 한다.

  • 데이터를 묶어서 보내기
  • 네트워크 상태가 활성화됐을 때 전송 몰아서 처리하기
  • 중요도 낮은 요청은 연기하거나 합치기

예를 들어, Android의 Google Cloud Messaging(GCM)은 기기가 활성화됐을 때만 메시지를 전달한다. 이런 최적화는 상당히 효과적이다.

RRC 상태와 레이턴시를 고려하라

모바일 네트워크의 RRC(Radio Resource Control) 상태는 앱에서 전혀 제어할 수 없는 부분이지만, 레이턴시에 어마어마한 영향을 미친다. LTE에서도 첫 패킷 전송을 위해 수백 ms의 추가 지연이 생기고, 3G에서는 수초까지도 걸린다. 그래서 앱 설계 시에는 다음을 고려해야 한다.

  • 사용자 인터랙션과 네트워크 요청을 분리하기
  • 즉각적인 UI 피드백 제공 후 백그라운드에서 처리
  • 프리페치(prefetch)와 캐시 전략 활용

점진적 로딩 vs 몰아서 전송

모바일에서는 점진적 로딩이 항상 좋은 건 아니야. 무선 전파가 자주 활성화되면 배터리 소모는 기하급수적으로 커지고, 레이턴시는 늘어난다. 대신 다음과 같은 전략이 유리하다.

  • 콘텐츠를 예측해서 미리 다운로드
  • 여러 요청을 한 번에 전송
  • 유휴 상태를 최대한 활용

예를 들어, 음악 스트리밍 앱이라면, 노래를 소량씩 계속 스트리밍하는 것보다는 곡 전체를 한 번에 다운받는 게 전력 효율에 훨씬 좋다.

실패를 기본값으로 생각하라

모바일 네트워크는 언제나 불안정하다. 연결이 갑자기 끊길 수도 있고, 처리량이나 레이턴시가 들쭉날쭉할 수도 있다. 그래서 다음을 반드시 고려해야 한다.

  • 요청 실패 시 재시도 로직
  • 오프라인 모드 고려
  • 상태 저장 및 로컬 캐시 사용

요즘은 HTML5의 AppCache나 IndexedDB를 활용해서 오프라인 UX도 나쁘지 않게 만들 수 있다.

WiFi로 넘겨라

가능하면 사용자에게 WiFi를 쓰도록 유도하는 것도 하나의 전략이다. 무선 전파보다 WiFi가 배터리에도 덜 부담되고, 처리량도 안정적이다. 특히 대용량 콘텐츠를 다룰 땐 필수이다.

 

마치며 – “적게, 빠르게, 한 번에”

모바일 네트워크는 PC와 달라. 예측 불가능한 네트워크 품질, 제어할 수 없는 레이턴시, 에너지 테일 이 모든 요소가 얽혀 있다. 그래서 우리의 전략은 단순해져야 한다.

적게 보내고, 빠르게 받고, 한 번에 끝내라

이게 바로 고성능 모바일 네트워킹의 핵심이다. 

 

참고문헌

[1] 일리아 그리고릭, "구글 엔지니어에게 듣는 네트워킹과 웹 성능 최적화 기법", 정해권, 오현주 공역, 인사이트(insight)