법적 고지

개인정보 처리방침

Salva 는 매장의 유통기한을 관리하는 앱입니다. 이 방침은 서비스가 무엇을 모으고, 무엇을 모으지 않으며, 언제 지우는지를 설명합니다.

시행일 2026-11-04

1. 가장 먼저: 사진은 매장 밖으로 나가지 않습니다

카메라가 하는 일은 둘이고, 사진이 남는 방식도 다릅니다.

바코드와 날짜를 읽을 때, 촬영한 화면은 그 자리에서 글자로 바뀌고 이미지는 저장되지도, 전송되지도 않습니다. 인식을 개선하기 위해 모으는 자료에도 사진은 한 장도, 한 조각도 들어가지 않습니다(아래 2-5).

상품 사진을 한 장 남길 때, 이 사진은 목록에서 물건을 알아보기 위한 것입니다. 먼저 기기에 저장되고, 팀과 함께 쓰는 매장(동기화를 쓰는 유료 매장)에서는 기기를 바꾸거나 팀원이 같은 사진을 보기 위해 그 매장 안에서만 공유됩니다.

이 사진은 공개되지 않습니다. 비공개 저장소에 두고 공개 주소를 만들지 않으며, 같은 매장의 구성원에게만 보입니다. 다른 매장이나 다른 이용자는 그 사진이 있다는 사실조차 볼 수 없습니다. 상품당 한 장만 두고, 지우면 서버에서도 함께 지워집니다.

2. 수집하는 항목

2-1. 계정

항목왜
이메일 주소로그인(6자리 코드) · 팀 초대
표시 이름팀원 목록에서 누가 처리했는지

비밀번호를 만들지 않으므로 보관하지도 않습니다.

2-2. 매장 운영 자료

매장 이름·시간대, 상품(바코드·이름·브랜드), 매장별 가격, 로트(유통기한·수량·등록 시점의 가격 스냅샷), 처리 이력(판매·폐기·반품과 그 시각), 거래처(이름·반품 조건·수거 요일·연락처·홈페이지·메모), 알림 설정.

거래처 연락처는 사장님이 적어 두시는 “다른 사람”의 정보입니다. 반품할 곳에 바로 전화하시라고 두는 칸이고, 가격과 똑같이 매장 밖으로 나가지 않습니다. 필요 없으면 비워 두셔도 앱은 그대로 동작합니다.

가격은 매장 밖으로 나가지 않습니다. 같은 상품이라도 매장마다 값이 다르고, 그건 영업비밀입니다. 서버 권한이 매장 단위로 격리되어 다른 매장에서는 조회 자체가 거부됩니다.

2-3. 알림

기기의 푸시 토큰과 플랫폼(iOS/Android).

알림 본문에 상품 이름이 들어갑니다. “오늘 확인할 상품 3건” 아래에 “서울우유 흰우유 1L (2일 지남) 외 2건”처럼요. 앱을 열지 않고 잠금화면에서 판단할 수 있어야 하기 때문입니다. 그래서 이 문구는 Apple/Google 의 푸시 서버와 잠금화면을 지납니다. 원치 않으시면 앱의 알림 설정에서 끌 수 있고, 그러면 기기 안에서만 알림이 울립니다.

2-4. 상품 이름 카탈로그 (선택)

바코드로 상품 이름을 찾을 수 있는 공개 데이터베이스가 국내에는 사실상 없습니다. 그래서 사용자가 입력한 바코드와 상품 이름을 모아 다음 사람에게 제공합니다. 여러 사람의 입력을 비교해 가장 많이 나온 표기를 답으로 씁니다.

올라가는 것은 바코드와 상품 이름뿐입니다. 가격·수량·매장은 올라가지 않고, 다른 사용자가 누가 무엇을 제출했는지 볼 수 없습니다.

“상품 한 번에 넣기”로 다른 앱·POS의 파일을 넣으면, 그 파일의 이름 중 공유 목록에 아직 이름이 없는 바코드의 것도 같은 방식으로 올라갑니다. 넣기 전에 화면에서 알리고, 올라간 이름은 “내가 올린 상품 이름”에서 철회할 수 있습니다.

상품 이름을 물을 때는 처음 보는 바코드를 서버에 보냅니다. 로그인하지 않아도 마찬가지입니다. 서버는 그 자리에서 답만 하고 어떤 바코드를 물었는지 남기지 않습니다. 로그인하지 않고 상품 이름을 신고하면 그 바코드·이름·사유가 아래 2-6의 의견과 같은 방식으로 운영자에게 갑니다.

2-5. 인식 품질 측정 (한시적)

날짜 인식을 개선하기 위해 아래를 수집합니다.

올라가는 것올라가지 않는 것
카메라가 읽어낸 글자(최대 500자)사진 (한 장도, 한 조각도)
기계가 읽은 날짜 / 사용자가 고른 날짜상품 이름
바코드가격
기기 기종 · OS 버전 · 앱 버전매장 정보

기종을 적는 이유는 기기마다 카메라가 달라 인식률이 다르기 때문입니다. 하나로 합치면 어느 기기를 고쳐야 하는지 알 수 없습니다.

이 자료는 90일 뒤 자동으로 삭제됩니다. 이용자는 올린 사람을 포함해 누구도 다시 읽을 수 없고(서버는 이용자에게 쓰기 권한만 열어 두었습니다), 인식을 개선하기 위해 운영자만 열람합니다. 앱의 설정 → 인식률 에서 무엇이 수집되는지 확인할 수 있습니다.

2-6. 의견 보내기 (보내실 때만)

앱의 설정 → 의견 보내기(또는 홈의 같은 버튼)로 보내실 때만 아래가 운영자 메일함으로 갑니다.

가는 것가지 않는 것
고르신 버튼(불편해요 · 바꿔 주세요 · 좋아요)과 남기신 한 줄(최대 300자)사진 · 화면 캡처
어느 화면에서 보냈는지 · 쓴 시각 · 앱 버전 · 기기 기종 · OS 버전재고 · 가격 · 상품 이름
매장에서의 역할(사장 · 점장 · 직원)매장 이름
답장 받기를 켜신 경우에만 로그인한 메일 주소답장을 끄면 메일 주소

로그인하지 않아도 보낼 수 있습니다. 그때는 누가 보냈는지 알 수 없어 답장을 드리지 못합니다. 통신이 없으면 기기에 담아 두었다가 연결될 때 보냅니다. 로그인한 상태로 보내시면 의견은 계정과 함께 보관됩니다(답장을 꺼도 마찬가지입니다). 계정을 지우시면 의견과 계정의 연결이 끊깁니다.

2-7. 사용 통계 (끌 수 있음)

어떤 기능이 쓰이고 어디서 막히는지 알기 위해 아래를 보냅니다. 앱의 설정 → 사용 통계 보내기 에서 끌 수 있고, 끄면 기기에 쌓여 있던 것도 지웁니다. 이미 보낸 자료는 누구의 것인지 알 수 없어 골라 지울 수 없습니다. 끈 뒤 다시 켜면 새 번호로 시작합니다.

보내는 것보내지 않는 것
앱을 연 시각 · 본 화면의 이름 · 쓴 기능의 종류(매장 만들기 · 스캔 저장 · 처리 · 결제 결과 등)상품 이름 · 바코드 · 가격
담은 개수 · 저장한 개수 · 걸린 시간 같은 숫자매장 이름 · 재고 내용
이 기기에서 만든 무작위 번호(계정·전화번호와 무관) · 기기 종류(iOS · 안드로이드) · 앱 버전계정 · 메일 주소
안드로이드에서 처음 설치할 때 거친 링크의 꼬리표(예: 블로그 글)위치 · 연락처 · 사진
앱이 멈췄을 때의 프로그램 오류 문장 (번호·금액 같은 값은 지우고 보냅니다)입력하신 글

계정과 묶지 않습니다. 로그인해도 누가 보냈는지 알 수 없습니다. 운영자의 통계용 서버(Supabase, 서울)에 보관하고, 원 자료는 90일 뒤 자동 삭제합니다. 그 뒤에는 날짜별 합계와 재방문을 세기 위한 “그날 앱을 연 기기 번호”만 기간 없이 남습니다. 이 번호는 기기에서 무작위로 만든 것이라 계정·이름·연락처와 이어지지 않습니다.

3. 보유 기간

자료기간
계정·매장·상품·재고·이력탈퇴 시까지. 혼자 쓰시던 매장은 함께 삭제되고, 팀원이 남은 매장은 그 매장에 남습니다
상품 사진지우실 때까지. 상품을 지우거나 매장에서 나가면 그 기기에서 삭제되고, 혼자 쓰시던 매장이면 탈퇴할 때 서버에서도 삭제됩니다
인식 품질 측정90일 (자동 삭제)
보내신 의견1년 (자동 삭제)
사용 통계원 자료 90일 (자동 삭제) · 날짜별 합계와 그날 연 기기 번호는 기간 없이 보관
상품 이름 카탈로그 제출철회하실 때까지
푸시 토큰로그아웃하거나 알림을 끄면 삭제

4. 처리를 맡기는 곳

수탁자하는 일위치
Supabase (AWS)데이터 보관·인증·상품 사진 저장(비공개) · 사용 통계 보관(별도 프로젝트)대한민국 (서울 리전)
Expo푸시 알림 배달 · 앱 업데이트 배달미국
Apple / Google푸시 알림 배달미국
hCaptcha (Intuition Machines, Inc.)로그인 화면의 봇 차단미국
Resend (Resend, Inc.)로그인 확인 메일 · 팀 초대 메일 배달 · 보내신 의견을 운영자 메일함으로 배달미국
Cloudflare (Cloudflare, Inc.)공용 상품 사진 저장·배달 · 웹사이트 제공 · 문의·의견 메일 전달(support@salva.kr)전 세계 (저장은 아시아·태평양)
Google (Gmail)운영자 메일함 (문의·의견 메일 보관)미국

푸시 알림을 켜신 경우 알림 문구(상품 이름 포함)가 Expo 와 Apple/Google 을 지납니다. 알림을 끄면 이 경로를 쓰지 않습니다.

앱은 실행할 때 새 버전이 있는지 Expo 에 물어봅니다. 이때 접속 IP 와 앱 버전·기기 종류가 전달되며, 매장 자료나 이메일 주소는 넘어가지 않습니다. 받아 둔 새 버전은 다음 실행에 적용됩니다. 연결이 없으면 이 확인을 건너뛰고 기존 버전으로 바로 시작하므로, 통신이 약한 창고에서도 앱이 멈추지 않습니다.

로그인 화면에는 봇 차단(hCaptcha)이 붙어 있습니다. 코드를 요청하는 그 순간에만 동작하며, 사람인지 판별하기 위해 접속 IP 와 기기·브라우저 신호가 hCaptcha 로 전달됩니다. 이메일 주소나 매장 자료는 넘어가지 않습니다. 이 문을 둔 이유는, 없으면 누구나 남의 주소로 로그인 코드 메일이 쏟아지게 만들 수 있기 때문입니다.

로그인 확인 메일과 팀 초대 메일은 Resend 를 통해 배달됩니다. 이때 받는 분의 이메일 주소와 메일 본문(6자리 코드 또는 초대 안내)이 Resend 로 전달됩니다. 매장 자료·상품 정보·가격은 넘어가지 않습니다.

보내신 의견은 Resend 로 보내져 Cloudflare 를 거쳐 운영자의 Gmail 에 도착합니다. 가는 것은 위 2-6 의 표가 전부입니다.

상품 목록에 보이는 “공용 상품 사진”은 Cloudflare를 통해 배달됩니다. 이 사진은 저희가 직접 준비해 모든 매장에 같게 보여 드리는 기본 그림이며, 앱이 그림을 받아 올 때 접속 IP 가 Cloudflare 로 전달됩니다. 매장 자료·상품 정보·가격·이메일 주소는 넘어가지 않습니다. 매장에서 직접 찍은 사진은 이 경로를 쓰지 않습니다. 그 사진은 비공개로 보관되며 매장 밖으로 나가지 않습니다(위 표의 Supabase). 공용 사진을 올릴 수 있는 것은 저희가 미리 지정한 매장 한 곳뿐이며, 다른 매장에서는 이 경로로 아무것도 전송되지 않습니다.

광고·분석 목적으로 개인정보를 제3자에게 제공하거나 판매하지 않습니다.

5. 이용자의 권리

  • 열람·수정: 앱 안에서 직접 보고 고칠 수 있습니다.
  • 삭제: 앱에서 매장을 나갈 수 있고, 계정 및 데이터 삭제를 요청하실 수 있습니다.
  • 알림 거부: 설정에서 언제든 끌 수 있습니다.
  • 카탈로그 기여 철회: 제출한 상품 이름을 철회할 수 있습니다(삭제 요청과 같은 창구입니다).
  • 그 밖의 요청은 아래 연락처로 주시면 처리합니다.

6. 안전조치

  • 모든 통신은 HTTPS 로 암호화됩니다.
  • 로그인 세션은 기기의 보안 저장소(iOS Keychain / Android Keystore)에 보관합니다.
  • 서버는 행 단위 접근 제어로 매장별 격리를 강제하고, 이 경계는 자동화된 서버 검사로 매 변경마다 검증됩니다.
  • 팀에서 나가거나 내보내지면 그 기기에서 해당 매장의 재고와 가격이 삭제됩니다.

7. 만 14세 미만

만 14세 미만 아동을 대상으로 하지 않으며, 해당 정보를 알면서 수집하지 않습니다.

8. 변경

내용이 바뀌면 시행일을 고쳐 이 페이지에 게시하고, 중요한 변경은 앱에서 알립니다.

9. 문의

서비스Salva
개인정보 문의 support@salva.kr

크라우드 상품 카탈로그에 부적절한 이름이 올라와 있으면 앱의 등록 화면에서 바로 신고할 수 있고(같은 이름에 신고가 둘 모이면 자동으로 내려갑니다), 위 이메일로도 받습니다.