
오프라인에서도 되는 반려동물 앱: 산장, 비행기, 신호 없는 곳에서
오프라인 지원이 반려동물 앱에서 가장 저평가된 기능인 이유, '오프라인 우선'이 기술적으로 정말 무슨 뜻인지, 그리고 MoaTails가 신호 없는 곳을 다루는 방식.
반려인이라면 누구나 언젠가 겪는 장면이 있어요. 산장이나 등산로, 아니면 안테나 한 칸이 깜빡거리는 병원 지하에서, 아침 약이 들어갔는지 꼭 확인해야 하는데 앱은 빙글빙글 돌기만 해요. 일정이 안 떠요. 정보는 분명 어딘가에 있어요. 서버에요. 그런데 지금 이 순간엔 달에 있는 거나 다름없죠.
오프라인 지원은 어느 반려동물 앱의 기능 목록에서도 가장 안 화려한 항목이에요. 그런데 정작 돌봄이 가장 힘들어지는 순간들, 여행과 응급 상황과 인수인계의 순간에 가장 고마워하게 되는 기능이기도 해요. 무엇을 따져봐야 하는지, 그리고 우리 앱은 어떤지 정리했어요.
"오프라인 됨"은 세 가지 다른 뜻이에요
앱들은 이 표현을 꽤 느슨하게 써요. 약한 단계부터 강한 단계 순으로 보면 이래요.
캐시 보기. 앱이 이미 불러와 둔 데이터는 볼 수 있어요. 하지만 뭔가 기록하려 하면 에러가 나거나 조용히 사라져요. 오프라인을 내세우는 앱 대부분이 사실 이 단계예요.
오프라인 대기열. 기록은 되고, 신호가 돌아오면 알아서 올라가요. 한결 낫지만 여전히 "버퍼를 달아둔 온라인 소프트웨어"고, 충돌(오프라인 상태에서 두 사람이 동시에 기록할 때) 처리가 이상해질 수 있어요.
오프라인 우선. 앱의 두뇌가 휴대폰 안에 들어 있어요. 읽기, 쓰기, 일정, 리마인더가 전부 폰 안에서 돌아가고, 동기화 계층이 연결이 생길 때마다 모두의 변경 사항을 맞춰서 합쳐줘요. 인터넷 연결은 있으면 좋은 것이지 꼭 있어야 하는 게 아니에요.
공항에서 직접 해볼 수 있는 테스트가 있어요. 비행기 모드로 바꾸고, 앱을 열어서, 식사를 기록하고, 내일 일정을 확인하고, 리마인더를 하나 설정해 보세요. 이 네 가지가 다 된다면, 3단계 앱을 찾은 거예요.
'함께' 돌볼 때 오프라인이 더 중요한 이유
혼자 기록하는 사람에게 오프라인은 편의예요. 하지만 가족이 함께 돌볼 땐 토대 자체가 돼요. 시터 체크리스트에서 다룬 그 인수인계 주간을 떠올려 보세요. 나는 비행기 안에, 시터는 강아지 놀이터의 신호 사각지대에, 파트너는 해외에서 로밍 중이에요. 휴대폰 셋, 들쭉날쭉한 연결 셋, 그런데 흐트러지면 안 되는 일정은 하나예요.
오프라인 우선 설계는 각 휴대폰이 혼자서도 멀쩡히 돌아가다가, 신호가 허락하는 순간 타임라인을 하나로 합쳐준다는 뜻이에요. 시터가 안테나 0칸에서 적어둔 아침 8시 밥 기록은, 시터가 와이파이가 되는 곳으로 돌아오는 순간 내 폰에도 도착해요. 누구도 다른 사람의 연결을 기다릴 필요가 없었고, "앱이 아직 업데이트가 안 돼서" 강아지에게 밥을 두 번 주는 일도 없었어요.
MoaTails는 이렇게 해요
우리는 캐시를 나중에 슬쩍 덧붙이는 대신, 오프라인 우선을 처음부터 앱 구조 안에 넣었어요.
모든 게 폰 안에 먼저 있어요. 기록, 일정, 프로필, 이력이 전부 휴대폰 안의 데이터베이스에 들어 있어요. 앱을 여는 데 네트워크를 다녀올 일이 아예 없어요.
리마인더는 기기에서 직접 울려요. 아침 8시 투약 알림은 와이파이가 있든 없든 신경 쓰지 않아요. 미리 맞춰둔 휴대폰 자체의 알람이거든요.
동기화는 자동이고 양방향이에요. 연결이 돌아오면 변경 사항이 양쪽으로 오가고, 케어 팀 모두가 같은 타임라인으로 맞춰져요. 동기화 버튼을 누를 일도, "당겨서 새로고침하며 마음 졸일" 일도 없어요.
충돌은 깔끔하게 풀려요. 오프라인에서 두 사람이 각자 다른 이벤트를 기록했다면 둘 다 그대로 남아요. 누구의 기록도 사라지지 않게 하는 것이 설계의 목표예요.
완벽한 와이파이 환경에서도 앱이 빠릿빠릿하게 느껴지는 건 바로 이 구조 덕분이에요. 읽기가 서버를 기다리는 일이 없거든요.
어떤 앱이든 평가할 때 쓰는 오프라인 체크리스트
비행기 모드 테스트: 보기, 기록, 일정, 리마인더 (위에서 말한 4단계요)
두 돌보미가 동시에 오프라인에서 수정하면 어떻게 되는지 물어보세요
리마인더가 폰 안에서 도는 건지, 서버에서 밀어주는 건지 확인하세요 (서버 푸시는 신호가 끊기면 같이 죽어요)
오프라인에서 볼 수 있는 이력이 얼마나 되는지 확인하세요: 지난주까지인가요, 전부인가요?
보너스: 오래 오프라인이었다가 처음 동기화할 때 깔끔하게 합쳐지나요, 아니면 중복되나요?
자주 묻는 질문
오프라인 우선이면 배터리나 저장 공간을 더 많이 먹나요? 반려동물 케어 이력은 텍스트와 사진 몇 장이 전부예요. 카메라 롤 옆에 두면 티끌만 해요. 로컬 리마인더는 운영체제의 스케줄러를 쓰는데, 푸시 연결을 계속 유지하는 것보다 훨씬 가벼워요.
웹은요? 며칠째 동기화 안 한 파트너는요? 각 기기는 마지막으로 알고 있는 내용에 자기가 새로 바꾼 것을 더해서 보여주고, 동기화할 때 하나로 맞춰져요. 며칠 묵은 폰도 몇 시간 묵은 폰과 똑같은 방식으로 따라잡아요. 합칠 게 좀 더 많을 뿐이에요.
진짜 응급 상황에서 믿어도 되나요? 휴대폰 안에 든 기록(문서 보관함의 접종 사진, 투약 목록, 체중)은 연결이 전혀 없어도 읽을 수 있어요. 그게 바로 응급실에서 흔히 마주하는 상황이죠. 데이터를 건네줘야 할 때는 PDF 리포트도 기기 안에서 바로 만들어져요.
오프라인이 유료 기능인가요? 아니요. 무료 플랜도 구조가 똑같아요. "신호 없이도 된다"는 데 돈을 더 받는 건, 결국 앱이 동작하는 것에 돈을 더 받는 셈이니까요.
