오프라인 폼, 사진, GPS, 동기화 기능을 포함한 현장 근무자용 모바일 앱을 기획·설계·구축하는 방법 — 보안, 테스트, 롤아웃, ROI 팁 포함

화면과 기능을 논하기 전에, 현장에서의 “잘 된” 상태가 무엇인지 명확히 하세요. 현장 앱은 보통 모든 워크플로우를 한 번에 처리하려 하거나 팀이 문제를 한 문장으로 설명하지 못할 때 실패합니다.
우선 주요 사용 사례를 이름 붙이세요. 이것은 규정 준수를 위한 점검 체크리스트 앱인가요? 장비 정비를 위한 유지보수 앱인가요? 배송 확인을 위한 전달 증빙 앱인가요? 데이터 수집을 위한 설문 툴인가요? 먼저 핵심 작업을 정하고 인접 작업은 나중에 추가하세요.
유용한 프레이밍은:
“근로자가 현장에 있을 때, 그들은 … 해야 한다, 그래서 …”
이 문장이 기능 결정과 범위 트레이드오프의 북극성이 됩니다.
워크플로우에 관여하는 모든 사람과 앱에서 그들이 필요한 것을 나열하세요:
역할은 권한, 가시성, 보고 출력물을 결정하므로 중요합니다. 또한 기기 선택(회사 소유 vs BYOD, 공유 기기, 키오스크)에도 영향을 줍니다.
직접 비즈니스 결과와 연결되는 3–5개의 지표를 선택하세요. 예:
현장 조건은 초기부터 디자인을 좌우합니다: 신호 약함, 장갑 착용, 강한 햇빛, 소음이 많은 현장, 작업 시간 제한, 공유 기기 등. 이러한 제약을 조기에 캡처해 롤아웃 중에 “발견”되지 않도록 하세요.
간단한 “필수 vs 이후” 목록을 만드세요. 첫 날에는 핵심 워크플로우를 엔드투엔드로 다루어야 합니다(캡처 → 검토 → 제출 → 내보내기). 고급 대시보드나 복잡한 자동화 같은 추가 기능은 이후 릴리스로 미루세요.
화면을 설계하거나 기술을 선택하기 전에, 현장에서 실제로 일이 어떻게 진행되는지—그리고 비즈니스 입장에서 “완전한” 보고서가 무엇인지—정말 명확히 하세요. 이 단계는 보기에는 좋아도 실제 업무와 맞지 않는 앱을 만드는 일반적 실패를 방지합니다.
배포에서 승인된 보고서까지 작업을 따라가세요. 각 단계가 현재 어떻게 발생하는지, 누가 하는지, 어디서 하는지, 무엇이 다음 행동을 촉발하는지 캡처하세요.
자주 놓치는 세부사항도 포함하세요:
최종 보고서에 들어가는 모든 정보와 과정 중 필요한 항목의 마스터 목록을 만드세요. 각 필드에 대해 정의하세요:
여기서 보고 품질이 좌우됩니다. 지금 필드와 규칙을 지정하지 않으면, 나중에 검색하거나 분석하기 어려운 일관성 없는 항목이 쌓입니다.
현장 작업에는 예외가 많습니다: 검사 실패, 부품 부족, 재방문, 안전하지 않은 조건, 고객 부재 등. 다음을 매핑하세요:
공통 코드와 형식을 합의하세요—위치 이름, 자산 ID, 작업 유형, 고장 사유 등. 작은 불일치(예: “Bldg 3” vs “Building Three”)가 빠르게보고서 문제를 일으킵니다.
이해관계자들이 옳다고 합의한 샘플 완성보고서를 만드세요. 이를 계약처럼 다루세요: 누가 작성하든 앱이 안정적으로 산출해야 할 출력을 정의합니다.
도구를 고르기 전에 무엇을 얼마나 빨리 만들지 결정하세요. 현장 앱은 기능 부족보다도 구축 방식이 팀, 예산, 장기 유지보수 현실과 맞지 않을 때 실패하는 경우가 많습니다.
커스텀 빌드(네이티브 iOS/Android 또는 크로스플랫폼)는 복잡한 오프라인 동작, 고급 기기 기능, 엄격한 보안 요구사항이 있을 때 적합합니다. 초기 비용이 더 들지만 완전한 제어를 제공합니다.
로우코드/노코드는 초기 파일럿, 단순 체크리스트, 요구사항이 안정적인 내부 도구에 적합할 수 있습니다. 단, 오프라인 모드, 파일 업로드, 확장성은 흔한 한계이니 주의하세요.
하이브리드는 종종 최선입니다: 설정용 로우코드 관리 포털과 현장 팀용 커스텀 모바일 앱을 결합하거나, 로우코드로 시작해 워크플로우가 검증되면 모바일 레이어를 재구축하세요.
빠르게 이동하되 노코드의 한계에 갇히고 싶지 않다면, ‘vibe-coding’ 접근은 실용적 중간 경로일 수 있습니다. 예를 들어 Koder.ai는 채팅을 통해 웹/백엔드/모바일을 프로토타입하고 제품으로 출시할 수 있게 해주며, 실제 코드베이스를 내보내 유지보수할 수 있게 합니다. 오프라인, 권한, 통합이 파일럿 이후 진화하는 현장 앱에 특히 유용합니다.
iOS, Android, 또는 둘 다가 필요한지 결정하세요. 많은 현장 배포는 테스트와 지원을 줄이기 위해 한 기기 유형으로 표준화합니다. 또한 감독자가 작업 할당, 제출 검토, 템플릿 편집, 보고서 내보내기를 위한 웹 포털이 필요한지도 초기에 묻고 계획하세요.
현장 근무자 모바일 앱의 경우, 기기 요구사항을 조기에 확정하세요: 오프라인 폼 및 동기화, 카메라 업로드, GPS 스탬프, 바코드/QR 스캔, 푸시 알림. 이 선택들은 프레임워크, 데이터베이스 전략, 권한 모델에 영향을 줍니다.
예산에 포함하세요:
팀이 선택한 스택을 유지관리할 수 없다면 앱은 정체됩니다. 출시가 빠른 기술이 아니라 수년간 지원할 수 있는 기술을 선택하세요.
롤아웃 계획은 /blog/launch-train-improve 를 참조하세요.
현장 근무자 앱은 속도와 명확성에 생사가 달려 있습니다. 사람들은 종종 서 있거나 장갑을 끼고 있거나 악천후에 있거나 현장 간 이동 중이기 때문에 UI는 생각, 타이핑, 스크롤을 최소화해야 합니다.
한 손으로 사용하기 쉬운 디자인(약 44px 이상의 큰 탭 대상), 충분한 간격, 엄지 손가락의 자연스러운 위치에 주요 동작을 배치하세요. 작은 아이콘 전용 컨트롤을 피하고 가능하면 아이콘에 라벨을 함께 사용하세요.
텍스트는 짧고 스캔하기 쉽게 유지하세요. 내부 코드나 부서 용어 대신 평이한 언어(예: “사진 추가”, “완료 표시”)를 사용하세요.
간단한 구조가 최선입니다:
섹션이 더 필요하면 주 메뉴를 확장하지 말고 “더보기” 뒤에 숨기세요. 이렇게 하면 메뉴 찾는 시간이 줄고 교육이 쉬워집니다.
일관된 상태 라벨을 사용하세요—미시작, 진행 중, 차단됨, 완료—그리고 작업 목록, 작업 헤더, 보고서 화면 등 모든 곳에 표시하세요. 차단된 경우에는 이유를 요청하세요(예: “차단: 고객 부재”).
다크 모드와 고대비 옵션을 지원하세요. 주요 정보(주소, 다음 단계, 제출 버튼)가 강한 햇빛에서도 읽히도록 하세요. 색상만 의존하지 말고 텍스트와 아이콘을 함께 사용하세요.
의미 있는 모든 변경 사항을 자동 저장하고 명확한 “마지막 저장” 표시를 보여주세요. 사용자가 신호를 잃거나 앱이 닫혀도 같은 화면으로 다시 열어 손실된 작업이 없어야 합니다.
“저장 중…” 상태를 은근하게 보여주고 저장 완료 시 확인을 제공해 사용자가 안심하고 다음으로 이동할 수 있게 하세요.
폼은 현장 팀의 ‘작업 표면’입니다. 폼이 느리거나 혼란스럽거나 잘못된 데이터를 통과시키면 청구, 준수, 고객 업데이트 등 모든 것이 영향을 받습니다. 폼은 문서 작업 같지 않고 안내형 체크리스트처럼 느껴지게 하세요.
작업 유형별(점검, 유지보수, 설치, 사고) 템플릿을 만들어 기술자가 관련 없는 필드를 찾지 않도록 하세요. 템플릿에는 체크리스트와 조건부 질문을 결합하세요—예:
화면을 짧게 유지하면서도 필요한 세부를 완전히 수집할 수 있습니다.
현장 데이터는 종종 감사 증거가 됩니다. 다음과 같은 검증 규칙을 추가하세요:
검증 메시지는 도움말로서 작게 안내하세요(예: “손상된 부품 사진 한 장 추가”). 일반적 오류 메시지처럼 느껴지지 않게 하세요.
이미 알고 있는 정보를 자동 채우세요: 자산 세부, 고객 주소, 현장 연락처, 마지막 서비스 날짜, 예상 부품 등을 작업 레코드에서 가져와 확인만 하게 하세요.
반복 시나리오에는 빠른 추가 옵션을 넣으세요:
시작/종료 시간, 체크리스트 완료 시간, 서명 시간을 자동으로 기록하세요. 이는 사용자가 기억해야 하는 부담 없이 감사 및 생산성 보고에 도움이 됩니다.
현장 작업은 예측 불가능합니다: 지하의 무신호, 농촌 지역, 과부하된 셀 타워, Wi‑Fi와 LTE를 오가는 폰 등. 앱이 계속 작동하지 않으면 사람들이 종이로 돌아가고 데이터 품질이 떨어집니다.
근로자가 연결 없이도 무엇을 할 수 있어야 하는지 정확히 목록화하세요. 일반적인 오프라인 필수 항목:
데이터 신선도에 대해 명확히 하세요. 일부 콘텐츠는 며칠 동안 캐시해도 되지만(매뉴얼), 일정은 온라인일 때 자주 갱신되어야 할 수 있습니다.
대부분 팀은 둘 다를 선호합니다:
동기화는 자동 재시도, 불안정한 네트워크 허용, 네트워크 끊김 후 사용자가 “다시 시작”해야 하는 상황을 만들지 않도록 설계하세요.
사진 및 첨부파일은 불만의 주요 원인입니다. 보고서 저장은 즉시 완료되도록 큰 파일 업로드는 별도 큐에서 처리하세요. 이후 업로드 진행률을 보여주고 작업자는 다음 작업으로 바로 넘어가게 하세요.
충돌은 발생합니다: 같은 작업을 두 기기가 편집하거나 중복 제출, 부분 업로드 등.
실용적 규칙:
“오프라인 모드”, “마지막 동기화 2시간 전”, “업로드 대기 중 항목 3개” 같은 명확한 표시를 사용하세요. 사용자가 메뉴를 뒤질 필요 없이 무엇이 로컬에 저장되어 있고 무엇이 나중에 동기화될지 항상 알게 해야 합니다.
증거는 현장 보고서를 단순한 ‘믿어줘’에서 감사 가능하고 고객과 공유할 수 있으며 분쟁 해결에 쓸 수 있는 문서로 바꿉니다. 캡처는 빠르고 일관되며 잊기 어렵게—그러면서도 저장 공간을 과다하게 쓰지 않고 앱을 느리지 않게 하는 것이 목표입니다.
사진 캡처를 보고서 흐름 안에 직접 지원하세요. “사전”, “사후”, “문제 세부” 같은 명확한 슬롯을 제안하세요. 필요한 경우 가벼운 주석(화살표, 박스, 짧은 메모)을 추가해 나중에 의미가 분명하게 하세요.
품질은 합리적으로 유지하세요: 검사 체크리스트 앱에 12MB 사진은 거의 필요 없습니다. 자동 압축 및 리사이징을 제공하고, 원본은 필수일 때만 저장하세요.
도착, 작업 시작, 완료 등 핵심 이벤트에서 GPS 좌표와 정확도 메타데이터를 캡처해 정밀도와 ‘추정치’ 차이를 구분하세요. 더 높은 보증이 필요하면 도착/퇴장 확인용 지오펜싱을 옵션으로 추가하세요—출퇴근 기록이나 규제 작업에 유용합니다.
투명하게 알리세요: 무엇을 언제 수집하는지 설명하고, 관리자에게 작업 유형이나 고객 정책별로 위치 수집을 활성화/비활성화할 수 있게 하세요.
서명 캡처는 이름 확인 및 타임스탬프와 함께 사용될 때 가장 가치가 있습니다. 배송, 승인, 인수인계의 경우 다음을 캡처하세요:
허가서, 매뉴얼, 안전 양식 같은 문서를 보고서에 첨부할 수 있게 하세요. 보고서별 및 기기 캐시별 저장 한도를 정의하고 보존 규칙(예: “동기화 성공 후 로컬은 7일 보관 후 삭제”)을 설정하세요. 이렇게 하면 기기 반응성을 유지하면서 준수 요건을 만족할 수 있습니다.
현장 근무자 앱은 단순히 데이터를 수집하는 것을 넘어서서 하루 일정을 안내할 때 훨씬 유용해집니다. 일정과 작업 관리는 방문 누락을 줄이고 불필요한 전화 통화를 줄이며 감독자가 추적 없이도 상황을 파악하게 도와줍니다.
우선 우선순위, 마감 시간 창, 기술자가 실제로 필요한 위치 상세(현장명, 주소, 출입 메모, 연락처)를 포함한 명확한 작업 목록으로 시작하세요. 작업이 할당되면 기술자는 즉시 다음 최선의 행동을 확인할 수 있어야 합니다: 현장으로 길찾기, 체크리스트 열기, 부품 요청.
상태는 간단히 유지하세요(예: 미시작 → 진행 중 → 차단됨 → 완료) 및 “차단됨”에는 이유를 캡처하도록 하여(출입 불가, 고객 부재, 안전 문제) 디스패치가 빠르게 대응할 수 있게 하세요.
일정 변경, 긴급 작업, 승인(예: 감독자가 예외 승인) 같은 경우에 푸시 알림을 사용하세요. 알림은 동작 가능하게 만들고 탭하면 해당 작업을 직접 열도록 하세요, 일반적인 인박스가 아닌 특정 작업으로 연결되게 하세요.
검사나 운전 중에 작업자가 알림에 시달리지 않도록 조용한 시간대와 역할 기반 규칙을 제공하세요.
가벼운 인앱 메시징이나 작업 수준 메모는 전화 통화를 줄이고 문맥을 보존합니다. 다음 사람이 무엇을 했는지 작업 레코드에 첨부되게 하세요.
안전 문제나 검사 실패에 대한 에스컬레이션 경로를 추가하세요: ‘작업 중지’ 플래그를 한 번의 탭으로 표시하고, 적절한 감독자에게 알리며 짧은 이유를 요구하게 하세요.
누가 현장에 있는지, 무엇이 지연되었는지, 무엇이 차단되었는지, 어떤 작업이 승인이 필요한지 보여주는 간단한 감독자 뷰를 제공하세요. 깔끔한 진행 보드는 긴 이메일 스레드보다 팀 정렬에 효과적입니다.
현장 근무자 앱은 데이터를 보내는 시스템만큼 유용합니다. 통합은 중복 입력을 방지하고 디스패처를 동기화하며 운영, 재무 및 고객이 즉시 사용할 수 있는 보고서를 만듭니다.
데이터가 어디로 가야 하고 어디서 와야 하는지 목록부터 만드세요: CRM(고객 정보 및 연락처), ERP(부품, 재고, 비용 코드), 자산 관리(장비 이력), 청구(송장, 시간/자재), BI 도구(대시보드 및 KPI). 수작업을 가장 많이 줄여줄 몇 가지 통합을 우선순위로 두세요.
도구 간의 “공유 명사”에 합의하세요:
필수 필드, 고유 ID, 명명 규칙을 초기에 정의하세요. 작은 불일치—예: 서로 다른 “현장 ID”—는 중복과 깨진 이력을 만듭니다.
각 객체의 소유자와 업데이트 흐름을 결정하세요. 예: CRM은 고객/연락처 정보를 소스로 삼고, 현장 앱은 현장에서의 노트, 사진, 서명의 소스로 삼을 수 있습니다.
오프라인 편집이 중요한 업데이트를 덮어쓰지 않도록 충돌 규칙(예: “최신 타임스탬프 우선” vs “디스패처 승인 필요”)을 문서화하세요.
앱 화면 외의 출력을 계획하세요:
플랫폼을 평가 중이라면 데이터 내보내기와 유연한 배포 옵션이 있는지 조기에 확인하세요. 예를 들어 Koder.ai는 소스 코드 내보내기 및 호스팅/배포 옵션을 지원해 통합 필요가 확장될 때 위험을 줄일 수 있습니다.
플랫폼을 평가하거나 통합 범위 설정에 도움이 필요하면 /pricing 또는 /contact 로 문의하세요.
현장 팀은 사무실 밖에서 일하고 종종 공유 기기나 공공장소에서 작업하며 불안정한 연결을 사용합니다. 이 조합은 보안과 프라이버시를 IT 체크리스트가 아닌 제품 기능으로 만듭니다.
누가 조회, 수정, 승인, 내보내기할 수 있는지를 정의하세요. 실용적 모델 예:
권한은 기본적으로 제한적으로 유지하세요. 예를 들어 기술자는 당일 할당된 작업만 볼 수 있지만 전체 고객 목록이나 회사 전체 이력은 볼 필요가 없을 수 있습니다.
조직에 ID 제공자가 있다면 SSO를 지원해 온/오프보딩을 중앙화하세요. 위험이 높은 경우(규제 산업, 민감 사이트) MFA를 추가하세요.
현실적인 상황도 계획에 넣으세요: 기기 인수인계, 직원 퇴사, 단기 계약자 등.
전송 중 암호화(HTTPS/TLS)와 서버의 휴지 중 암호화를 사용하세요. 오프라인 모드의 경우 로컬 데이터베이스와 캐시 파일을 플랫폼 보안 저장소(iOS Keychain / Android Keystore 등)로 보호하고 기기 내 첨부파일도 암호화하세요.
보존 규칙을 정의하세요: 동기화하지 않은 기기에 오프라인 데이터가 얼마나 오래 남을 수 있는지, 그리고 업로드 성공 후에는 어떻게 되는지.
최소 요구사항을 결정하세요: 화면 잠금, 생체 인증, OS 버전, 루팅/탈옥 차단 여부 등.
MDM이 있다면 원격 삭제, 앱 구성, 강제 OS 업데이트 같은 정책을 통합하세요. 없다면 기본적인 보호 기능(자동 로그아웃, 세션 타임아웃, 즉시 액세스 철회)을 구축하세요.
수집하는 항목—GPS, 사진, 서명, 타임스탬프—과 그 비즈니스 이유(예: 서비스 증빙, 안전 준수)를 문서화하세요. 앱 내 명확한 고지와 필요한 경우 동의 수집을 제공하세요.
운영 롤아웃 및 사용자 채택에 관해서는 /blog/app-rollout-and-training 를 참조하세요.
현장 근무자 앱은 데모에서 완벽해 보여도 바람 부는 옥상, 소음이 큰 공장 바닥, 비 오는 현장에서는 실패할 수 있습니다. 테스트는 실제 작업이 일어나는 곳—실제 기기, 장갑, 연결 환경—에서 이루어져야 합니다.
작은 그룹의 현장 근로자를 초기에 테스트에 참여시키고 실제 작업을 끝까지 수행하게 관찰하세요: 작업 찾기, 폼 열기, 증거 캡처, 보고서 제출, 다음 작업으로 이동.
주저하거나 우회하는 순간(앱 외부에서 사진 찍기, 종이에 메모, 업로드 지연)은 플로우가 너무 느리거나 불분명하거나 취약하다는 강력한 신호입니다.
오프라인 모드는 거의 ‘온/오프’가 아닙니다. 다음과 같은 구조화된 시나리오를 만드세요:
예상 결과를 문서화하세요: 사용자가 무엇을 보는지, 무엇이 큐에 들어가는지, 충돌이 데이터 손실 없이 어떻게 해결되는지 등.
현장 팀은 속도와 신뢰성으로 앱을 판단합니다. 다음을 측정하세요:
성능이 무거워 보이면 기능이 좋아도 채택률이 떨어집니다.
작은 팀(한 지역, 한 작업 유형)으로 2–4주 파일럿을 실행하세요. 앞서 정의한 성공 지표를 추적하세요: 완료 시간, 제출률, 콜백 감소, 보고서 품질 향상 등.
앱 내 피드백(간단한 “문제 보고” 및 제출 후 빠른 평가)을 수집하세요. 반복적으로 발생하는 상위 이슈를 고치고 확장 롤아웃을 진행하세요.
성공적인 롤아웃은 “대규모 출시일”이 아니라 새 워크플로우가 일을 수행하는 가장 쉬운 방법이 되게 하는 것입니다. 시작부터 교육, 지원, 반복 개선을 계획하세요.
현장 팀은 긴 교육 시간을 낼 수 없습니다. 실제 작업과 일치하는 간단한 역할별 온보딩을 만드세요:
문제가 생겼을 때 어떻게 도움을 받을지, 응답 방식이 어떻게 되는지 명확히 하세요.
기본 지원 채널(예: 전용 이메일 또는 채팅)과 긴급 문제용 백업을 정의하세요. 응답 시간 기대치(예: 로그인 문제는 영업일 2시간 이내, 기능 질문은 1영업일 이내)를 공개하세요. 화면 이름, 작업 ID, 선택적 스크린샷과 함께 앱 내에서 컨텍스트를 담아 피드백을 보내는 쉬운 방법을 추가하세요.
구 프로세스가 중복 작업을 만들지 않도록 언제 기존 방법을 중단할지 정확히 결정하세요.
기존 작업, 고객, 현장, 템플릿을 마이그레이션한다면 소규모 시험 임포트를 먼저 하고 최종 전환 단계를 진행하세요. 진행 중인 종이 양식이나 스프레드시트는 어떻게 처리되는지, 누가 마감 책임을 지는지 소통하세요.
주간으로 몇 가지 지표를 추적하세요: 완료율, 누락된 필수 필드, 제출까지 걸린 시간, 상위 재작업 사유(예: “사진 누락”, “잘못된 현장 선택”). 이 수치는 교육이나 폼 설계를 어디서 조정해야 하는지 알려줍니다.
작은 빈번한 업그레이드로 모멘텀을 유지하세요: 새로운 템플릿, 더 나은 대시보드, 수작업 제거 자동화. 다음에 올 기능을 공개해 팀이 피드백이 개선으로 이어지는 것을 보게 하세요.
공개적으로 구축한다면 내부 챔피언이나 외부 파트너가 잘 작동하는 사례를 공유하도록 인센티브를 제공하는 것을 고려하세요. 일부 플랫폼(예: Koder.ai)은 콘텐츠 생성이나 동료 추천으로 크레딧을 얻는 프로그램을 제공해 예산을 크게 늘리지 않고 지속적 반복을 지원하는데 유용할 수 있습니다.
Start with a single sentence: “When a worker is on-site, they need to… so that…”.
Then lock in:
This prevents a “do everything” app that fits no one well.
Define roles early because they drive permissions, screens, and outputs.
A practical split is:
Pick metrics tied to business outcomes, not just app usage.
Common high-signal metrics:
Walk a job end-to-end (dispatch → on-site work → review → submission → export) and document what actually happens.
Include:
Treat the “ideal completed report” as the contract your app must consistently produce.
Inventory every field that appears in the final report, then define rules per field:
Standardize naming (site IDs, asset IDs, job types, failure reasons) to avoid duplicates like “Bldg 3” vs “Building Three.” This is what makes data searchable and reliable later.
If you need robust offline behavior, advanced device features, or strict security, a custom build is often worth it.
If you need speed for a pilot or simple checklists, low-code/no-code can work—just validate offline mode, uploads, and scaling.
A common best path is hybrid:
Plan offline from day one by listing what must work with zero signal:
Use:
Make evidence capture part of the report flow (not separate).
Practical patterns:
Be explicit about what’s collected and when, and let admins enable/disable location capture by job type or customer policy.
Prioritize input speed and error prevention:
This reduces typing and increases report completeness without slowing the worker down.
Test where the work happens using real devices, gloves, lighting, and connectivity.
Include scenarios like:
Run a 2–4 week pilot (one region, one job type), measure your success metrics, fix the top recurring issues, then expand. For rollout planning, keep the training task-based and lightweight.
Designing without role clarity usually leads to over-permissioned apps and messy reporting.
Choose 3–5 and track them weekly during pilot and rollout.
Choose what your team can maintain for years, not just what ships fastest.
Show clear states like “Offline mode,” “Last synced…,” and “Items waiting to upload” so users trust the system.