자동화가 실행되는 시점
자동화는 설정한 케이던스(실행 주기)에 맞춰, iOS가 Marrow의 백그라운드 실행을 허용하는 만큼 자주 전송돼요. Marrow는 Apple이 앱을 깨울 수 있도록 제공하는 모든 방법을 사용해요. 정확한 시점은 Apple이 정하고, 휴대폰이 잠겨 있는 동안에는 어떤 앱도 Apple Health를 읽을 수 없어요.
Marrow 가이드 전체: MCP · 셀프 호스팅 미러 · 자동화 · 파일 · 지원
Marrow가 하는 일
- 새 건강 데이터가 들어오면 깨어나요. Marrow는 동기화하는 모든 데이터 유형(걸음 수, 심박수, 수면, 운동 등)에 대해, 새 데이터가 들어오면 백그라운드에서 깨워 달라고 Apple Health에 요청해 둬요. Apple Watch나 다른 앱에서 새 측정값이 들어와도 깨어날 수 있어요.
- 백그라운드 새로 고침을 항상 예약해 둬요. Marrow는 백그라운드로 갈 때 약 1시간 뒤의 새로 고침을 iOS에 요청하고, 새로 고침이 될 때마다 다음 새로 고침을 예약해요. 그래서 항상 하나가 대기하고 있어요.
- 앱을 열면 밀린 것을 따라잡아요. Marrow를 열면 새로운 데이터를 모두 읽고, 실행할 때가 된 자동화를 모두 전송해요.
- 깨어날 때마다 실행할 때가 된 것을 모두 보내요. 깨어날 때마다 Marrow는 새 데이터를 자체 저장소로 읽어 들인 뒤, 케이던스가 지난 자동화를 하나씩 전송해요.
- 빈틈을 메워요. 마지막 실행 이후를 고르면, 각 실행은 마지막으로 성공한 실행 이후의 모든 데이터에 그 전 이틀을 더해 보내요. 늦게 이루어진 실행도 놓친 날을 모두 보내요.
- 모든 실행을 기록해요. 활동 기록에는 최근 30회의 실행이 시간과 결과와 함께 남아요.
Apple이 정하는 것
이 규칙은 iOS에서 정한 것으로, 백그라운드에서 Apple Health 데이터를 내보내는 모든 앱에 똑같이 적용돼요. Marrow의 어떤 설정으로도 바꿀 수 없어요.
- 정해진 시간은 없어요. iOS는 앱이 원하는 시간에 백그라운드에서 실행되도록 허용하지 않아요. 앱은 깨워 달라고 요청할 수 있고, 시점은 iOS가 배터리, 네트워크, 앱을 얼마나 자주 쓰는지, 휴대폰이 그 밖에 무엇을 하고 있는지를 보고 정해요. 케이던스는 실행 사이의 최소 간격이지 시간표가 아니에요. 매시간은 최대 1시간에 한 번이라는 뜻이에요.
- 잠겨 있는 동안에는 실행되지 않아요. 휴대폰이 잠겨 있는 동안 Apple Health 데이터는 암호화되어 있어서, 잠금을 해제하기 전까지 어떤 앱도 읽을 수 없어요. 잠겨 있는 동안 실행은 멈추고, 다음에 잠금을 해제한 뒤 따라잡아요.
- 시간이 짧아요. 백그라운드에서 깨어나 있는 시간은 몇 초뿐이고, 30초가 안 될 때가 많아요. 페이로드가 크거나 수신기가 느리면 그 안에 끝나지 않을 수 있어요.
- 저전력 모드에서는 끌 때까지 백그라운드 새로 고침이 보류돼요.
- Marrow의 백그라운드 앱 새로 고침이 켜져 있어야 해요. 꺼져 있으면 iOS가 예약된 새로 고침을 건너뛰어요.
- 앱을 위로 쓸어서 종료했어요. 앱 전환기에서 Marrow를 위로 쓸어 종료하면, 다시 열기 전까지 iOS가 백그라운드에서 깨우지 않을 수 있어요.
- Apple Watch 데이터는 묶음으로 와요. Apple Watch는 측정값을 하나씩 보내지 않고 이따금 모아서 휴대폰으로 보내요. 그래서 새 데이터와 그로 인한 깨우기가 실제 측정 시점보다 늦을 수 있어요.
실제로는 어떻게 되나요
- 하루 종일 휴대폰을 쓰는 경우: 실행은 대체로 케이던스를 따라가요. 제시간에 되기도 하고 늦기도 하며, 한 시간을 건너뛸 수도 있어요.
- 밤사이처럼 몇 시간 동안 잠겨 있는 경우: 그동안은 실행이 없고, 잠금을 해제한 뒤 한 번의 실행이 그 이후의 모든 데이터를 보내요.
- 매시간 케이던스라고 해서 하루에 정확히 24번 실행되지는 않아요. 빈틈은 iOS가 앱의 일정을 잡는 방식 때문에 생기고, 다음 실행이 그 빈틈을 메워요.
최대한 규칙적으로 실행되게 하려면
- Marrow의 백그라운드 앱 새로 고침을 켜세요: 설정, 일반, 백그라운드 앱 새로 고침.
- 실행이 중요할 때는 저전력 모드를 꺼 두세요.
- Marrow를 위로 쓸어 종료하지 말고 앱 전환기에 그대로 두세요.
- 마지막 실행 이후 또는 예상되는 가장 긴 빈틈보다 긴 범위를 고르세요. 그러면 늦게 이루어진 실행도 모든 날을 담아요. 내 쪽에서 지표와 날짜별로 최신 값을 유지하면 반복 전송은 문제가 되지 않아요.
- 백그라운드 시간 안에 끝나도록 페이로드를 작게 유지하세요: 원본 샘플 대신 일일 합계, 더 짧은 범위, 데이터 종류마다 자동화 하나.
- 수신기가 바로 응답하고 처리는 나중에 하게 하세요. 자세한 내용은 수신기 만들기에 있어요.
- 지금 바로 실행하고 싶나요? Marrow를 열거나, 해당 자동화에서 지금 실행을 탭하세요.
무슨 일이 있었는지 확인하기
- 활동 기록(자동화의 옵션 더 보기 안): 최근 30회의 실행. 실패한 실행에는 오류가 표시되고, 각 오류의 의미는 문제 해결 표에 나와 있어요.
- 있어야 할 기록이 없는 경우: 그때 iOS가 Marrow를 깨우지 않았거나, 휴대폰이 잠겨 있었어요.
- 설정, Apple Health 접근 권한, Apple Health에서 읽어오는 중: Marrow가 각 데이터 유형을 마지막으로 읽은 시간. 여기에 최근 시간이 보이면 Marrow가 제대로 깨워지고 있다는 뜻이에요.
- 실행 시 알림(옵션 더 보기): 확인하는 동안 실행될 때마다 알림을 받아요.
휴대폰을 쓰고 있는데도 긴 빈틈이 계속 보이나요? 활동 기록 스크린샷과 수신기에 기록된 시간을 함께 지원으로 보내 주시면 살펴볼게요.