Shadowrocket 백그라운드 배터리 소모 해결: On Demand와 상시 연결 설정 비교

iPhone 배터리 사용량을 읽는 법부터 On Demand 자동 연결과 수동 상시 연결의 배터리 영향을 비교하고, Wi-Fi·셀룰러별 설정 방법을 안내합니다.

이 글 미리 보기

Shadowrocket이 백그라운드에서 VPN 터널을 유지한다고 해서 계속 고속으로 데이터를 전송하는 것은 아닙니다. 이미 이용 중인 서비스와 구독이 있고 대기 중 배터리 소모를 확인하려는 사용자를 위해, 시스템 배터리 통계 읽는 법부터 On Demand 자동 연결과 수동 상시 연결의 차이, 일정한 시간대에 비교 테스트하는 방법까지 안내합니다. Wi-Fi와 셀룰러에 알맞은 연결 방식을 선택해 보세요.

먼저 배터리 통계 읽기: 사용량 비율은 배터리 감소 폭이 아닙니다

iPhone 또는 iPad의 설정에서 ‘배터리’를 열고 확인할 사용 시간대를 선택한 다음, 배터리 소모가 의심되는 구간을 살펴보세요. 시스템 화면은 OS 버전에 따라 다를 수 있습니다. 해당 시간대의 배터리 잔량 변화, 화면 사용 시간, Shadowrocket 사용량 비율, 백그라운드 활동 여부를 기록하세요. 하루 전체의 집계 비율과 10분간의 연결 테스트 결과를 직접 비교해서는 안 됩니다.

배터리 화면의 앱별 사용량 비율은 일반적으로 선택한 시간 동안 소모된 배터리 중 앱이 차지하는 몫을 뜻하며, 앱 하나가 배터리 용량의 몇 퍼센트를 사용했다는 의미는 아닙니다. 예를 들어 배터리 잔량이 80%에서 70%로 줄고 앱 사용량이 20%로 표시되어도, 해당 앱 때문에 배터리가 20%포인트 줄었다고 볼 수는 없습니다. VPN 네트워크 확장은 다른 앱의 통신 처리에도 관여하므로, 시스템의 사용량 집계가 Shadowrocket을 직접 열었을 때만 발생한 작업을 나타내는 것도 아닙니다.

10%포인트
예시: 배터리 잔량이 80%에서 70%로 감소한 경우이며, 실제 측정 결과가 아닙니다
30분
각 테스트에서 동일하게 적용할 잠금 화면 관찰 시간
변수 1개
각 테스트에서 연결 방식만 변경하고 Config와 서버는 그대로 유지합니다

위 시간과 배터리 수치는 테스트 방법의 예시이며, 배터리 사용 시간을 보장하지 않습니다. 선택한 시간대에 동영상 재생, 사진 동기화, 앱 업데이트 또는 신호가 약한 이동이 포함된다면 더 안정적인 시간대를 골라 다시 테스트하세요. 백그라운드 활동이 오래 이어졌다는 사실만으로 높은 전력 소모가 계속되었다고 단정할 수는 없습니다.

On Demand는 연결 조건을 제어하며, 유휴 상태에서 연결을 끊는 타이머가 아닙니다

Shadowrocket에서 Settings → On Demand를 열어 현재 자동 연결 설정을 확인하세요. On Demand는 시스템의 주문형 연결 기능을 사용해 설정된 네트워크 조건이 충족되고 관련 네트워크 활동이 발생할 때 연결을 시작하거나 복구합니다. 앱을 열 때마다 연결한다는 뜻도, 트래픽이 없으면 즉시 연결을 끊는다는 뜻도 아닙니다. 표시되는 옵션과 규칙은 현재 화면을 기준으로 확인하세요.

네트워크 조건 일치 시스템에서 연결 시작 터널 연결 규칙에 따라 트래픽 분기 외부로 데이터 전송

이 글에서 말하는 ‘수동 상시 연결’은 자동 연결을 끈 뒤 Home에서 직접 연결을 켜고 유지하는 것을 뜻합니다. 앱 화면을 계속 앞에 띄워 두는 방식이 아닙니다. 터널 연결이 유지되는 동안 실제 데이터 전송 여부는 앱의 요청, 프로토콜 동작, 연결 유지 작업에 따라 달라집니다. 상태 막대의 VPN 표시는 순간적인 전력 소비량을 나타내지 않습니다.

Wi-Fi와 셀룰러: 먼저 사용할 범위를 정한 뒤 배터리 영향을 확인하세요

Wi-Fi라고 해서 항상 안정적인 것은 아니며, 셀룰러가 모든 Wi-Fi 환경보다 배터리를 더 많이 소모하는 것도 아닙니다. 액세스 포인트에서 멀리 떨어져 있거나 네트워크에 추가 인증이 필요할 때, 셀룰러 신호가 약할 때, 이동 중 기지국을 자주 전환할 때는 연결 설정과 재시도에 더 많은 에너지가 들 수 있습니다. On Demand와 상시 연결을 비교할 때는 무선 환경을 최대한 동일하게 유지해야 합니다. 그렇지 않으면 차이가 무선 연결 상태에서 비롯되었을 수 있습니다.

사용 상황 연결 방식 선택 확인할 동작
한 장소에서 안정적인 Wi-Fi 사용 Wi-Fi 조건에 On Demand를 설정하거나 수동 상시 연결 잠금 화면 상태에서 필요한 서비스가 작동하는지, 연결이 반복해서 다시 설정되는지 확인
가끔 셀룰러 네트워크 사용 자동 연결이 필요 없다면 셀룰러 조건을 설정하지 않고 필요할 때 수동으로 연결 연결을 해제한 동안의 요청은 해당 터널을 통해 처리되지 않습니다
셀룰러 네트워크를 계속 사용 셀룰러 조건으로 자동 연결하거나 수동으로 연결 유지 신호 안정성, 네트워크 전환 후 복구 여부, 앱 요청 성공 여부
Wi-Fi와 셀룰러를 자주 전환 먼저 한 가지 연결 방식으로 비교 테스트를 진행 네트워크 전환 시점이 연결 실패 로그, 발열 또는 배터리 소모 증가와 겹치는지 확인

결론: 필요한 범위로 자동 연결 조건을 좁히세요

안정적인 Wi-Fi에서만 자동 연결이 필요하다면 Settings → On Demand에서 해당 네트워크 조건을 확인하고, 셀룰러에서는 수동 제어를 유지하세요. 두 네트워크 모두에서 터널을 통한 처리가 필요하다면 해당 연결 조건을 유지하고 재시도 문제부터 확인해야 합니다. 배터리 화면의 사용량 비율을 낮추기 위해 연결부터 끄는 것은 적절한 해결책이 아닙니다.

동일한 Config 유지: 트래픽 분기 변경을 배터리 절약으로 오해하지 마세요

On Demand는 연결 시점을 정하고, Global Routing은 연결 후 트래픽 처리 방식을 정합니다. 서로 다른 설정입니다. 비교 테스트를 시작하기 전에 Home에서 Global Routing을 확인하고 현재 Proxy, Direct, Config, Scene 중 무엇이 선택되어 있는지 기록하세요. Scene을 사용 중이라면 해당 장면에 실제 적용된 설정도 확인하세요. On Demand를 바꾸는 동시에 Scene을 변경하지 마세요.

Config를 사용한다면 현재 설정에서 규칙 순서와 대상 정책을 확인하세요. DOMAIN-SUFFIX는 도메인 접미사를, IP-CIDR은 IP 주소 대역을 일치시키고 GEOIP는 IP 지역 데이터베이스를 기준으로 판단하며 FINAL은 최종 대체 규칙으로 사용됩니다. 이는 트래픽 분기 조건이지 배터리 절약 기능이 아닙니다. Direct를 선택해도 VPN 터널이 해제되는 것은 아닙니다. 트래픽을 직접 연결로 바꾸는 것만으로 연결 상태 테스트를 대신할 수 없습니다.

  1. Home에서 현재 선택된 서버와 Global Routing을 기록한 다음, Config에서 사용 중인 설정을 확인하세요.
  2. 두 차례 테스트에서 규칙 순서와 정책 대상을 동일하게 유지하세요. FINAL의 정책을 프록시에서 DIRECT로 임시 변경하지 마세요.
  3. 테스트 중에는 지연 시간 측정을 여러 번 실행하거나 기존 구독을 수동으로 새로 고치지 마세요. 관찰 시간대에 추가 요청이 섞일 수 있습니다.
  4. 사용 중인 구독을 업데이트해야 한다면 먼저 업데이트를 완료하고 서버 설정을 확인한 뒤 새로운 비교 테스트를 시작하세요.

Shadowsocks, VMess, VLESS, Trojan, Hysteria2, WireGuard는 데이터 전송과 연결 유지 방식이 서로 다릅니다. 하지만 프로토콜 이름만으로 배터리 소모 순위를 단정할 수는 없습니다. 서버 위치, 패킷 손실, 앱 트래픽, 실제 설정값에 따라 결과가 달라집니다. 첫 점검에서는 기존 설정을 유지하고 프로토콜을 동시에 바꾸지 마세요.

먼저 연결 재시도 문제 해결: 연결 오류는 배터리 설정 문제가 아닙니다

‘잠금 화면 상태에서도 발열이 있는데 서비스는 열리지 않는’ 문제가 생기면 해당 시간대에 연결 실패가 반복되었는지 먼저 확인하세요. 아래 문구는 네트워크 로그에 나타날 수 있는 오류 예시이며, 모든 버전에서 동일한 전체 문장이 표시되는 것은 아닙니다. 실제 로그에 해당 오류가 있을 때만 관련 항목을 확인하고, 문제를 찾기 위해 일부러 오류를 발생시키지는 마세요.

오류: connection refused

원인 및 해결 방법: 대상 주소 또는 중간 장치에서 연결을 거부한 경우입니다. 지정된 포트에서 해당 서비스가 제공되지 않을 때 흔히 나타납니다. 이용 중인 서비스 제공자가 안내한 주소와 포트를 확인하고 서비스 상태를 점검한 뒤 한 번 연결을 확인하세요. 반복해서 일괄 테스트하지 마세요.

오류: i/o timeout

원인 및 해결 방법: 네트워크 읽기 또는 쓰기 작업이 제한 시간 안에 완료되지 않은 상태입니다. 네트워크에 연결할 수 없거나 패킷 손실이 있거나 원격 서버가 응답하지 않을 때 발생할 수 있습니다. 먼저 안정적인 Wi-Fi에서 동일한 설정으로 다시 확인하고 셀룰러에서만 실패하는지 살펴보세요. On Demand 자체의 배터리 소모 문제라고 바로 단정하지 마세요.

예를 들어 기존 설정에 TLS 서버 포트가 443으로 지정되어 있다면, 일반적으로 많이 쓰이는 다른 포트로 바꾸지 말고 서비스 제공자가 안내한 실제 설정값과 대조하세요. Wi-Fi에서 셀룰러로 전환한 뒤 첫 요청만 실패한다면 전환 시점, 오류 내용, 이후 연결이 복구되었는지 기록하세요. 두 네트워크에서 계속 실패한다면 배터리 비교에 앞서 서버 연결 문제부터 해결하세요.

두 차례 비교 테스트: 네트워크, 화면 상태, 백그라운드 작업을 동일하게 유지

먼저 신호가 안정적인 Wi-Fi에서 기본 테스트를 진행한 뒤 셀룰러를 별도로 테스트하세요. 배터리 잔량은 반올림되어 표시되므로 짧은 시간 동안 한 칸 줄었다고 해서 어느 방식이 더 효율적이라고 단정할 수 없습니다. 두 결과의 차이가 작다면 테스트 순서를 바꿔 반복하세요. 절전율을 퍼센트로 단정해서는 안 됩니다.

  1. 준비: 시작 시간, 배터리 잔량, 네트워크 이름, 신호 상태, 서버, Config를 기록하세요. 주변 온도를 비슷하게 유지하고 충전하면서 비교하지 마세요.
  2. A 테스트: On Demand 자동 연결을 끄고 Home에서 직접 연결을 켜세요. 동일한 테스트 페이지에 접속되는지 확인한 뒤 화면을 잠그고 30분간 관찰하세요.
  3. B 테스트: Settings → On Demand에서 테스트할 네트워크 조건을 켜고 연결 동작이 예상대로인지 확인하세요. 동일한 페이지를 사용한 다음 화면을 잠그고 30분간 관찰하세요.
  4. 동일하게 유지: 두 테스트 모두 미디어를 재생하거나 대용량 파일을 직접 동기화하거나 속도 측정을 실행하지 마세요. 다른 앱의 백그라운드 활동도 가능한 한 동일하게 유지하세요.
  5. 기록: 종료 시 배터리 잔량, 발열 여부, 네트워크 전환 및 연결 재시도 발생 여부를 기록한 다음 시스템의 ‘배터리’에서 해당 시간대를 확인하세요.
  6. 재확인: 조건이 비슷한 시간대를 골라 이번에는 B 테스트를 A 테스트보다 먼저 진행하세요. 결과의 방향이 일치하지 않으면 연결 방식에 원인을 돌리지 마세요.

두 가지 문제를 구분하세요: 위 A/B 테스트는 두 가지 연결 관리 방식을 비교합니다. 터널을 켠 상태와 완전히 연결을 해제한 상태를 비교하려면 별도 테스트를 진행해야 합니다. 먼저 On Demand를 끈 다음 Home에서 연결을 해제하세요. 이때는 트래픽 경로가 달라지므로 앞선 두 테스트와 동일한 사용 조건으로 간주할 수 없습니다.

안정적인 설정 조합과 원래 설정으로 되돌리는 순서

모든 기기에 적용할 수 있는 단일 배터리 절약 설정은 없습니다. 안정적인 네트워크에서 연결이 정상이고 잠금 화면 상태에서도 발열이 없다면, 배터리 목록에서 Shadowrocket의 사용량 비율이 높게 보인다는 이유만으로 프로토콜이나 설정을 바로 바꿀 필요는 없습니다. 먼저 자동 연결이 필요한지에 따라 설정을 선택하고, 반복 테스트로 실제 배터리 변화를 확인하세요.

결론: 업무에 필요한 최소한의 자동 연결 조건만 유지하세요

On Demand와 상시 연결을 반복해서 테스트해도 차이가 일관되지 않는다면 자동 복구가 필요한지에 따라 선택하세요. 한 방식에서 연결 실패와 발열이 반복된다면 해당 네트워크나 설정 문제를 해결한 뒤 다시 테스트하세요. 백그라운드 기록이 줄었다는 이유만으로 문제가 해결되었다고 판단하지 마세요.

App Store 정식 앱 확인