Mac에서 앱별 Wi-Fi 사용량을 모니터링하는 방법
Mac에서 앱별 Wi-Fi 사용량을 실시간으로, 그리고 장기적으로 확인하는 방법입니다. 그 권리에 SaaS 비용을 내지 않아도 됩니다.
- macOS
- Wi-Fi
- Bandwidth
- Tutorial
호텔 Wi-Fi에 있는데, 연결이 그래야 하는 것보다 느리게 느껴지고, 어떤 앱이 링크를 차지하고 있는지 전혀 모릅니다. 활성 상태 보기는 프로세스당 들어오는 바이트와 나가는 바이트를 알려주지만, 그 바이트가 Wi-Fi를 통해 갔는지 이더넷을 통해 갔는지 — 또는 그 시점에 어느 네트워크에 있었는지 — 는 알려주지 않습니다. Mac에서 앱별 Wi-Fi 사용량을 모니터링하려면, macOS가 프로세스당 트래픽을 어떻게 세는지, 그 바이트를 인터페이스를 통해 어떻게 라우팅하는지, 그리고 무거운 앱이 하루 종일 실행되지 않게 그 데이터를 어떻게 표면화하는지 이해해야 합니다.
이 가이드는 macOS에서 "Wi-Fi 사용량"이 실제로 무엇을 의미하는지, 오늘 사용할 수 있는 내장 도구, 그리고 메뉴 바 모니터가 같은 커널 데이터를 작업하는 동안 흘끗 볼 수 있는 무언가로 어떻게 바꾸는지 안내합니다.
"Mac에서 앱별 Wi-Fi 사용량 모니터링"이 실제로 의미하는 것
macOS는 애플리케이션 계층에서 Wi-Fi를 이더넷과 별도로 추적하지 않습니다. 모든 앱이 소켓을 열고, 커널은 현재 기본 경로인 어떤 인터페이스(en0, en1, utun0 등)를 통해 패킷을 라우팅하고, 프로세스별 카운터는 어떤 물리적 링크가 운반했는지에 관계없이 바이트를 합산합니다.
그래서 사람들이 Mac에서 앱별 Wi-Fi 사용량을 모니터링하는 방법을 검색할 때, 거의 항상 다음 두 가지 중 하나를 의미합니다.
- Mac이 Wi-Fi에 있는 동안 앱별 트래픽 — 즉, 카페에 있고, 이더넷이 빠져 있어서, 모든 트래픽이
en0을 통해 갑니다. 이 경우 "앱별 트래픽"과 "앱별 Wi-Fi 트래픽"은 같은 것입니다. - 다른 인터페이스가 존재하는 경우에도 특별히 Wi-Fi 인터페이스를 통해 라우팅된 앱별 트래픽. 이는 USB 이더넷 어댑터가 있는 Mac mini나 폰 핫스팟에 테더링되어 있을 때 중요합니다.
두 질문 모두 다음으로 줄어듭니다: "프로세스당 바이트를 보여주고, 그것들이 어떤 인터페이스를 사용했는지 알려 달라." Apple은 nettop과 활성 상태 보기로 부분적인 답을 출시합니다. 전용 도구가 간극을 채웁니다.
macOS가 Wi-Fi와 이더넷 사이에서 트래픽을 어떻게 라우팅하는가
시스템 설정 → 네트워크를 엽니다. 우선순위 순으로 서비스 목록을 볼 것입니다: Wi-Fi, USB 10/100/1000 LAN, Thunderbolt 브릿지 등. 앱이 다른 인터페이스에 명시적으로 바인딩하지 않는 한, 가장 위의 활성 서비스가 새 연결에 이깁니다.
거기서 따라오는 몇 가지:
- 이더넷과 Wi-Fi 둘 다 연결되어 있고 이더넷이 서비스 순서에서 더 높다면, 빼기 전까지 Wi-Fi를 통해 거의 아무것도 흐르지 않습니다.
- Wi-Fi에 있던 동안 연결을 연 백그라운드 앱은 다시 연결할 때까지 그 연결을 Wi-Fi에서 유지할 것입니다. 그래서 이더넷으로 전환하는 것이 즉시 iCloud 동기화를 옮기지 않습니다 — 다음 다시 연결이 옮깁니다.
- VPN 터널(
utun*)은 기본 인터페이스를 감쌉니다. 바이트가utun0과 터널을 운반하는 물리적 인터페이스에 나타납니다.
터미널에서 route get default로 현재 기본 인터페이스를 확인할 수 있습니다 — interface: en0(Wi-Fi) 또는 interface: en6(USB 이더넷) 등을 출력할 것입니다.
내장 도구: nettop과 활성 상태 보기
새로운 어떤 것이든 손을 뻗기 전에, Mac에 이미 있는 도구를 시도하세요.
nettop
터미널을 열고 다음을 실행하세요.
nettop -P -m route-P는 프로세스당 합산하고(연결당 대신) -m route는 경로 그룹화 뷰로 전환합니다. bytes_in과 bytes_out이 라이브로 업데이트되는 Slack.21341 같은 행을 볼 것입니다. 모드를 전환하려면 c, 종료하려면 q를 누릅니다.
한계: nettop은 기본 뷰 내에서 카운터를 단일 인터페이스에 고정할 수 없고, 도우미 프로세스를 접지 않습니다. Slack, Slack Helper, Slack Helper (GPU), Slack Helper (Renderer)를 네 개의 별도 행으로 볼 것입니다.
활성 상태 보기 — 네트워크 탭
활성 상태 보기의 네트워크 탭은 프로세스가 시작된 이후 프로세스당 보낸 총 바이트와 받은 바이트를 보여줍니다. 라이브 속도를 보여주지 않고, 도우미를 접지 않으며, 인터페이스를 분리하지 않습니다. 점검에 유용하고, 실시간 도구로서는 그렇지 않습니다.
Wi-Fi 특정 데이터: wdutil
sudo wdutil info링크 계층 상태를 출력합니다 — 채널, RSSI, PHY 모드, BSSID. 앱별 카운터와 결합하면, 느림이 라디오 문제인지 앱 문제인지 알려줍니다.
Mac에서 앱별 Wi-Fi 사용량을 모니터링하는 메뉴 바 도구가 이기는 이유
하루 종일 터미널 창에서 nettop을 실행하는 것은 좋은 워크플로가 아닙니다. 세션이 아니라 시선을 원합니다. 그것이 메뉴 바 모니터가 들어오는 곳입니다.
ova는 macOS 메뉴 바에 자리 잡고 기본적으로 라이브 위/아래 속도를 보여줍니다. 클릭하면 현재 속도와 더불어 과거 사용의 스크럽 가능한 타임라인이 있는 앱별 목록을 얻습니다. 도우미 프로세스 — Slack Helper, Google Chrome Helper, Discord Helper — 가 부모 앱 아래로 접혀, 일곱 개의 도우미 행 대신 "Slack"을 읽습니다.
Mac이 Wi-Fi로만 연결되어 있을 때, 그 앱별 목록은 Wi-Fi 사용 분석 입니다. 여러 인터페이스가 있을 때, 어느 인터페이스가 활성이었는지와 타임라인을 상관시킬 수 있습니다.
오늘 앱별 Wi-Fi 사용량을 보는 5분 설정
지금 실행할 수 있는 반복 가능한 워크플로가 있습니다.
- Wi-Fi가 활성 인터페이스인지 확인합니다. 터미널에서:
route get default.interface: en0(또는 시스템 설정 → 네트워크에서 Wi-Fi가 보여주는 무엇이든)을 찾으세요. - 메뉴 바 모니터를 설치합니다. ova를
/Applications에 떨어뜨립니다. 약 3MB, 서명 및 공증, macOS 14 이상에서 실행됩니다. - 메뉴 바 목록을 엽니다. 앱당 라이브 속도를 볼 것입니다. 통신자를 찾기 위해 현재 속도로 정렬하세요.
- 타임라인을 스크럽합니다. 과거 뷰로 클릭해서 앱이 5분 전에 급증했는지, 한 시간 전인지, 또는 아침 내내 안정적이었는지 봅니다.
- nettop과 교차 점검합니다. 숫자가 의심스러워 보이면,
nettop -P -m route를 실행하고 비교하세요. 둘은 가깝게 동의해야 합니다 — 같은 커널 카운터를 읽습니다.
ova 작동 모습 보기
한눈에 볼 수 있는 메뉴 바 대역폭 모니터 — 로컬, 서명, 약 3MB.
데이터 읽기: 정상이 무엇이고, 비정상이 무엇인가
Wi-Fi에서 일반적인 근무일의 일부 기준선:
- Slack 유휴: 정상 상태 5~30KB/s, 웹소켓 핑에 더해 프레즌스 업데이트. 허들 동안이나 누군가가 파일을 공유할 때 더 높음.
- 10개 탭이 있는 Chrome: 크게 가변적, 종종 유휴 0~200KB/s, 비디오가 재생되거나 Drive 동기화가 시작될 때 5+ MB/s로 급증.
- Spotify 스트리밍: 기본 품질에 ~150~300KB/s, 무손실에 ~700KB/s.
- Zoom 1080p: 1대 1에 위와 아래 2.5~3.8Mbps, 갤러리 뷰에 더 많이.
- 폰 가져오기 후 iCloud 사진 동기화: 몇 분 동안 업링크를 포화시킬 수 있음.
수다스러울 일이 없는 앱(스크린 세이버, 배경 화면 업데이터, 계산기)에서 지속적인 트래픽을 본다면, 조사할 만한 표시입니다.
인터페이스별 회계가 실제로 중요할 때
대부분의 Mac 사용자는 한 번에 하나의 활성 인터페이스를 가집니다. 하지만 인터페이스별 세분성이 필요한 실제 경우가 있습니다.
- 핫스팟에서 기가바이트당 지불. iPhone 테더(
en4또는 비슷한)를 통해 얼마나 갔는지 정상 Wi-Fi 대비 알고 싶습니다. - 기업 VPN에 있음.
utun0의 트래픽은 분할 터널 민감입니다 — 어떤 앱이 실제로 터널을 사용했는지 보고 싶습니다. - 이중 링크 Mac mini 서버가 있음. 관리를 위한 Wi-Fi, 워크로드를 위한 이더넷, 그리고 어떤 것도 잘못된 방식으로 누설되지 않았다는 것을 확인해야 합니다.
커널은 sysctl net.link.generic과 getifaddrs(3)을 통해 인터페이스별 카운터를 노출하지만, 그것들을 프로세스로 다시 매핑하려면 PID에서 소켓에서 인터페이스 바인딩을 걸어야 합니다. 이것이 정확히 nettop이 내부적으로 하는 일이고, ova 같은 좋은 메뉴 바 모니터가 한눈에 볼 수 있는 UI에 표면화하는 것입니다.
프라이버시 고려
네트워크 모니터는 메타데이터를 읽습니다 — 프로세스당 바이트, 일부 도구의 호스트 이름, 타임스탬프. 그것은 민감합니다. 어떤 것이든 설치하기 전에, 세 가지를 확인하세요.
- 데이터가 어디 사는가? 대역폭 기록을 클라우드 대시보드로 보내는 모니터는 동작을 내보내고 있습니다. 설명에 "디스크의 모든 데이터" 또는 "100% 로컬"을 찾으세요.
- 앱이 서명 및 공증되었는가? macOS Gatekeeper가 첫 실행 시 알려줍니다. 커널 접근이 있는 서명되지 않은 모니터는 실행하고 싶은 것이 아닙니다.
- 계정이 필요한가? 그래서는 안 됩니다. 로컬 모니터는 로그인 자격 증명이 필요하지 않습니다.
ova는 로컬 전용, 서명 및 공증되었으며, 절대 계정을 요청하지 않습니다. 자신을 위한 것이 아니라고 결정한다면, 14일 환불은 무조건적입니다.
흔한 질문
Little Snitch가 이미 이걸 하지 않나요?
Little Snitch는 방화벽입니다 — 그 일은 연결을 차단하거나 허용하는 것입니다. 또한 트래픽을 보여주지만, 초점은 측정항목이 아니라 규칙입니다. ova는 모니터입니다 — 그 일은 차단 계층 없이 무엇이 일어나고 있는지 보여주는 것입니다. 잘 짝을 이룹니다. 정책을 시행하고 싶을 때 Little Snitch를 실행하세요. 조용하고 정확한 표시를 원할 때 ova를 실행하세요.
iPhone의 Wi-Fi 사용량은 어떤가요?
다른 OS, 다른 API. iOS는 설정 → 셀룰러에서 앱별 셀룰러 데이터를 노출하지만, 서드파티 앱을 포함한 누구에게도 앱별 Wi-Fi 데이터를 노출하지 않습니다. iOS에는 nettop에 해당하는 것이 없습니다. 죄송합니다.
ova는 macOS 13 이전에서 작동하나요?
ova는 macOS 14(Sonoma) 이상이 필요합니다. 이전 버전은 정확한 회계를 위해 앱이 사용하는 일부 프로세스별 네트워킹 API가 누락되어 있습니다.
마무리
Mac에서 앱별 Wi-Fi 사용량을 모니터링하려면, 정말로 두 질문을 쌓아 올립니다: 프로세스당 회계에 더해 인터페이스별 인식. macOS는 nettop과 커널을 통해 원시 데이터를 제공합니다. 활성 상태 보기는 스냅샷을 제공합니다. 메뉴 바 모니터는 같은 숫자를 터미널 창이 필요하지 않은 라이브 스크럽 가능한 뷰로 바꿉니다.
오늘 한 가지만 한다면, ova를 설치하고, 일하는 동안 한 시간 실행되게 두고, 앱별 목록을 확인하세요. 통신자가 놀라게 할 것입니다 — 항상 그렇습니다.