서비스 기사용 현장 앱 (글로벌)
전 세계 서비스 기사가 출장 수리 현장에서 수리 건을 확인하고, 방문 일정을 관리하고, 작업 결과를 보고하는 현장 앱의 개편에 참여했습니다. 통신이 불안정한 해외 지역에서도 써야 하는 앱이라, 연결이 끊긴 사이 입력한 작업 결과가 사라지면 현장에서 한 일이 기록에서 빠집니다. 끊긴 동안은 기기에 저장하고 연결이 돌아오면 서버로 자동 전송하는 동기화를 만들고, 앱이 화면 뒤로 넘어가도 전송이 중간에 멈추지 않게 했습니다.
통신이 끊겨도 기기에 남는 현장 작업 기록
서비스 기사는 현장 앱으로 수리 건을 확인하고, 고객 방문 일정을 관리하고, 작업 결과를 보고합니다. 통신이 끊긴 상태에서 입력한 작업 데이터는 기기 안의 데이터베이스와 파일에 저장하고, 다시 연결되면 서버로 자동 전송합니다. 해외 현장은 통신 상태가 고르지 않아, 데이터를 잃지 않는 것이 이 앱의 핵심 요건이었습니다.

앱이 화면 뒤로 넘어간 뒤에도 이어지는 동기화
당시 스마트폰 운영체제는 앱이 화면 뒤로 넘어가면 실행할 수 있는 시간을 엄격히 제한했습니다. 현장 앱이 화면 뒤로 가면 운영체제에서 실행 시간을 180초 연장받아, 그 안에서 동기화를 마무리하도록 설계했습니다. 기사가 다른 앱으로 넘어가도 진행 중이던 전송이 가능한 범위 안에서 끝까지 가게 하려는 것입니다.

전송 전후 상태를 대조하는 작업 결과 누락 방지
통신이 끊겼다 다시 이어지는 사이, 기기와 서버의 데이터가 서로 달라질 수 있습니다. 현장 앱은 작업 결과를 파일로 저장해 두고 검증하는 처리를 거칩니다. 서버로 보내기 전과 보낸 뒤의 상태를 확인해, 현장 작업 결과가 중간에 빠지지 않게 했습니다.

웹 화면 위에 기기 기능을 붙인 다국어 현장 앱
서비스 기사용 현장 앱은 웹으로 만든 화면을 앱 틀에 담은 구조입니다. 그 안에서 웹만으로는 할 수 없는 파일 저장, 기기 안 저장소, 백그라운드 처리 같은 기기 쪽 기능을 맡아 만들었습니다. 여러 나라 기사가 각자의 언어로 쓰는 앱이라, 다국어 화면과 통신이 불안정한 곳에서도 작업을 이어갈 수 있는 예외 흐름을 점검했습니다.

이 작업의 포인트
끊긴 동안 기기에 저장하고 연결되면 자동 전송하는 오프라인 동기화
앱이 화면 뒤로 넘어가도 이어지는 동기화
전송 전후 상태를 대조해 작업 결과 누락 방지
인사이트
GA4 client_storage: 'none'은 정말 쿠키를 막을까?
두 달 전 이 블로그에 「GA4 쿠키 없이 쓰기」라는 글을 썼습니다. clientstorage: 'none' 으로 쿠키 저장을 끄고, 자체 분석이 쓰던 익명 ID 를 clientid 로 넘기면 쿠키 0개로 GA4 를 쓸 수 있다는 내…
GA4 Measurement Protocol: gtag.js 없이 서버에서 이벤트 보내기
랜딩 페이지의 전송량을 파일 단위로 쪼개 보다가, 가장 큰 파일이 우리 코드가 아니라는 것을 알았습니다. Google Analytics 의 gtag.js 였고, 방문 한 번에 176KB 를 받고 있었습니다. 페이지 전체가 1,094K…
중소 제조업 AI 도입 순서: DX를 먼저 끝내야 할까?
공장을 가진 중소·중견 제조기업 16만여 곳 가운데 스마트공장을 도입한 곳은 19.5%입니다. 회사가 작을수록 이 비율은 더 떨어집니다. 중소벤처기업부가 2025년 4월에 낸 제1차 스마트제조혁신 실태조사 결과입니다. 그림: 기업 규…
Next.js loading.tsx와 404: 버튼이 화면보다 먼저 살아나게 하기
관리 화면 왼쪽 위에 사이드바를 접고 펴는 ☰ 버튼이 있습니다. 폭 하나 바꾸는 버튼인데, 대시보드에서 누르면 2초 넘게 아무 반응이 없었습니다. 레이아웃만 바꾸는 일이 왜 이렇게 오래 걸리는지부터 들여다봤습니다. Next.js 16…



