모두 앱 개인정보처리방침
시행일: 2026년 9월 9일
주식회사 바이올렛소프트(이하 "회사")는 「개인정보 보호법」에 따라 이용자의 개인정보를 보호하고 관련 고충을 신속하게 처리할 수 있도록 다음과 같이 개인정보처리방침을 수립·공개합니다.
이 방침은 모두 앱에 적용됩니다. 웹사이트 modoo.io에는 별도의 방침이 있습니다.
1. 수집하는 개인정보
모두는 필요한 최소한만 수집한다. 이메일·전화번호·성별·정밀위치(GPS)·연락처·광고 식별자는 수집하지 않는다(설치 식별자는 광고 식별자가 아니다 — §9). 거주 지역(시·도)·출생연도·가구 형태·소득 구간·생활 상황·재산 구간·자동차 보유·주택 소유 여부·자녀 나이대·수급 자격은 이용자가 맞춤 알림에 동의한 경우에만 수집한다(§1-2-1). 동의하지 않으면 이 정보는 기기를 벗어나지 않는다. 정밀 재산 금액·차량 등록번호·계좌·부동산 주소 등 식별·특정으로 이어지는 값은 받지 않고, 전부 구간·범주로만 받는다.
1-1. 회원가입·로그인 시
| 항목 | 저장 형태 | 비고 |
|---|---|---|
회원 식별자(userId) |
무작위 UUID, 평문 | 서비스가 생성하는 가명 식별자. 모든 기록이 이 값으로 묶인다 |
이름/닉네임(displayName) |
평문 | Modoo ID 로그인 시 제공받음. 실명일 수 있다 |
Modoo ID 식별자(sub) |
HMAC-SHA256 해시 + 원문 | 해시는 조회 색인용. 원문은 모두의 여러 서비스에서 같은 이용자로 잇는 연결키로 저장한다. 민감하게 다뤄 로그·화면·분석에 남기지 않고 외부 업체에 제공하지 않는다. 계정 삭제 시 파기 |
| Modoo ID 액세스 토큰 | 암호문(복호 가능) | 모두의 다른 서비스를 이용자 대신 호출할 때만 복호화해 쓴다(§3 참조). 평문 저장·로그 노출 없음. 계정 삭제 시 함께 파기 |
| 모두 로그인 세션 | SHA-256 해시만 | 모두가 발급한 세션 토큰의 원문은 서버에 없다 |
모두는 비밀번호를 직접 받지 않는다. 인증은 Modoo ID(mid.modoo.io)가 수행한다.
1-2. 서비스 이용 과정에서 자동 생성·수집
| 항목 | 저장 위치 | 목적 |
|---|---|---|
| 일일 걸음 수(날짜별) | step_daily |
걸음 목표 달성 판정·리워드 지급 |
| 리워드 지급 이력 | reward_claims |
중복지급 방지, 지급 근거 |
| 포인트 원장 | point_ledger_entries |
포인트 잔액 산정(추가만 되고 수정·삭제되지 않는 구조) |
| 가입 전(게스트) 걸음·포인트 | guest_reward_claims·guest_ledger_entries |
로그인 전에도 걸음 목표 달성분을 쌓아 두었다가 로그인 시 계정으로 옮기기 위해. 계정이 아니라 설치 식별자에 묶인다 — 앱을 지우면 이 값에 다시 닿을 수 없다 |
설치 식별자(installId) |
devices |
설치 기기 구분. 앱이 스스로 만드는 무작위 값(UUID)이고 기기 고유번호가 아니다 — 자세한 설명은 아래 |
| 기기 알림 토큰(FCM) | push_tokens |
알림 발송. 알림을 켠 경우에만 수집 |
| 기기 종류·앱 버전 | devices·push_tokens |
알림 발송 호환성, 설치 기기 수 집계 |
| 광고 시청 기록 | ad_view_events |
참여 집계. 현재 앱에 광고가 없어 실제 수집 0건 |
| 검색어 | search.modoo.io 웹 접근 로그 |
검색 결과 제공. 앱의 검색창·검색어 칩·앱 안 브라우저 주소창에 입력한 말이 우리가 운영하는 검색 서비스로 전달된다 |
| 이용 통계(어떤 화면을 몇 번 열었는지의 날짜별 합계) | app_event_daily |
어떤 기능이 쓰이는지 파악해 개선. 계정에 연결하지 않는다 — 언제·어떤 순서로 썼는지는 남기지 않고 하루치 합계만 보낸다. 400일 후 파기 |
| 알림 발송 이력(기기별 수신 결과) | push_deliveries |
발송 실패·만료 토큰 정리. 90일 후 파기 |
| 오류 진단 정보(앱이 비정상 종료될 때의 호출 스택, 기기 모델·OS 버전·앱 버전, 진단 SDK가 만드는 무작위 설치 ID) | Google Firebase Crashlytics | 오류 원인 파악·수정. 설치 식별자·계정·이메일을 붙이지 않는다 — 누구의 기기인지 알 수 없는 진단 정보만 |
검색어에 대한 설명
앱 안에서 하는 모든 검색(콘텐츠 탭 검색창·실시간 검색어 칩·앱 안 브라우저의 주소창과 새 탭)은
모두가 운영하는 search.modoo.io 로 질의를 보낸다. 앱 자체에는 검색어를 기록하는 코드가 없지만,
질의를 받는 쪽이 우리 서비스이므로 웹 서버 접근 기록에 검색어가 남는다. "앱이 수집하지 않는다"와
"우리가 받지 않는다"는 다른 사실이라, 후자를 근거로 '수집하지 않음'이라 고지하지 않는다.
- 검색어는 계정·설치 식별자와 결합해 저장하지 않는다(개인별 검색 이력을 만들지 않는다).
- 보존 기간은 3개월이며, 그 뒤 파기된다(§4).
- 앱 안 브라우저에서 다른 사이트로 이동하면 그 사이트가 받는 정보는 그 사이트의 방침을 따른다.
설치 식별자(installId)에 대한 설명
모두는 로그인하지 않아도 쓸 수 있고, 로그인하지 않은 이용자에게도 알림을 보낼 수 있어야 한다.
그러려면 "이 설치가 그 설치"임을 구분할 값이 하나 필요하다. 모두는 그 값으로 **앱이 처음 실행될 때 스스로 만드는
무작위 번호(UUID)** 를 쓴다.
- 기기 고유번호가 아니다: 광고 식별자(IDFA·ADID)·IMEI·시리얼 번호·MAC 주소를 **수집하지 않고, 이 값을 만들 때
섞지도 않는다**. 기기 자체를 특정하는 값이 아니므로 다른 앱·다른 회사가 같은 값을 알 수 없다.
- 앱을 지우면 사라진다: 재설치하면 완전히 새 값이 만들어지고, 이전 설치와 이어지지 않는다.
- 용도: ① 설치 기기 수 집계 ② 알림 발송 대상 지정 ③ 로그인 시 계정과 연결(로그아웃하면 연결만 끊긴다).
- 이 값을 기록·분석에 남기지 않는다: 서버 로그·오류 메시지·통계에 원문을 남기지 않는다(알림 토큰과 같은 취급).
1-2-1. 맞춤 알림에 동의한 경우에만 수집 (선택)
이용자가 맞춤 알림 받기(기본 꺼짐)를 켠 경우에만, 맞춤 혜택 안내를 위해 아래를 서버에 보관한다. 켜지 않으면 이 정보는 기기 안에만 있고 서버로 전송되지 않는다(§1-3).
| 항목 | 저장 위치 | 예시 |
|---|---|---|
| 거주 지역(시·도) | user_profiles.region_code |
행정표준코드 5자리. 읍·면·동 등 정밀 주소는 받지 않는다 |
| 출생연도 | user_profiles.birth_year |
연도만. 생년월일(월·일)은 받지 않는다 |
| 가구 형태 | user_profiles.household |
1인 가구 등 |
| 소득 구간 | user_profiles.income_median_pct |
중위소득 대비 구간. 실소득 금액은 받지 않는다 |
| 생활 상황 | user_profiles.situations |
구직 중·전월세 거주 등(복수 선택) |
| 재산 구간 | user_profiles.assets |
총재산 대략 구간(5천만 이하~3.5억 초과). 정밀 금액·계좌·부동산 주소는 받지 않는다 |
| 자동차 | user_profiles.car |
미보유 또는 가액 구간. 차량 등록번호·차종은 받지 않는다 |
| 주택 소유 여부 | user_profiles.home |
무주택/보유. 주소는 받지 않는다 |
| 자녀 나이대 | user_profiles.child_age_bands |
0~1·2~5·6~12·13~18세(복수). 자녀의 이름·생년월일은 받지 않는다 |
| 수급 자격 | user_profiles.welfare |
기초수급·차상위·해당없음 |
| 동의 시각 | user_profiles.consented_at |
언제 동의했는지의 증빙 |
- 동의 철회: 앱 설정에서 스위치를 끄면 서버 사본은 즉시 삭제된다. 기기의 값은 남는다(이용자 것이다).
- 보유기간: 회원 탈퇴 시 즉시 파기. 3년간 갱신이 없으면 파기.
- 이 정보는 다른 이용자에게 노출되지 않는다. 소득·재산·가구·수급 자격은 화면·응답 어디에도 타인에게 보이지 않는다.
- 재산·자동차·수급 자격은 민감할 수 있어 전부 구간·범주로만 받고, 원본 금액·식별번호는 수집하지 않는다. 동의를 끄면 서버 사본은 즉시 삭제된다.
1-3. 기기 안에만 저장되고 서버로 보내지 않는 것
걸음 측정 원본(기준값·스냅샷), 로그인 토큰, 화면 설정. 기기를 벗어나지 않는다.
1-4. 건강 정보에 대한 별도 고지
걸음 수는 건강·피트니스 정보로 분류된다. 모두는 걸음 수(정수)와 날짜만 받으며, 심박·수면·위치·이동경로·운동종목 등 다른 건강 데이터는 수집하지 않는다.
2. 이용 목적
1. 회원 식별과 로그인 유지 2. 걸음 목표 달성 판정 및 포인트 지급·조회 3. 알림 발송(사용자가 켠 경우) 4. 혜택 정보 제공 — 서버는 모든 이용자에게 동일한 목록을 보내고, 맞춤 대조는 기기 안에서 이뤄진다. 맞춤 알림에 동의한 경우, §1-2-1의 정보로 맞춤 혜택 알림을 보낸다(동의 없으면 발송하지 않는다). 5. 부정 이용(중복지급 등) 방지와 문의 대응 6. 서비스 개선을 위한 집계 통계 — 개인을 식별하지 않는 형태로만 7. 통합 신원(Modoo ID) — 로그인은 Modoo ID(mid.modoo.io)로 이뤄지며, 같은 Modoo 계정이 모두의 여러 서비스에서 동일 이용자로 이어진다(모두 자체의 통합 로그인). 향후 모두 자체 맞춤 광고를 제공하는 경우에도 아래 동의·k-익명성 보호가 동일하게 적용되고, 외부 광고 플랫폼에 개인 식별자를 넘기지 않는다.
맞춤 혜택 알림 대상은 동의한 이용자의 프로필(§1-2-1)로 선정한다. 다만 소수 조합으로 개인이 특정되지 않도록 확정 대상이 최소 30명 미만이면 발송하지 않는다(k-익명성). 발송 기록에는 건수·결과만 남기고 수신자의 프로필·식별자는 남기지 않는다.
하지 않는 것: 개인정보 판매, 외부 업체(제3자)에 대한 개인정보 제공·마케팅 위탁, 외부 광고 플랫폼에 대한 개인 식별자 제공. 이용자는 앱 설정에서 언제든 동의를 꺼 서버 사본을 즉시 삭제할 수 있다.
3. 제3자 제공·처리위탁
개인정보를 판매하거나 마케팅 목적으로 제3자에게 제공하지 않는다. 서비스 운영에 필요한 범위에서 다음에 처리를 위탁한다.
모두 안의 다른 서비스로 신원이 이어지는 경우 — 아래 둘은 외부 업체가 아니라 모두가 함께 운영하는 서비스다. 이용자가 그 기능을 쓸 때만, 그 서비스 하나에만 쓰이도록 범위를 좁힌 짧은 대리 토큰을 발급해 보낸다(모두 ID 액세스 토큰 원문을 그대로 넘기지 않는다).
| 이어지는 서비스 | 언제 | 넘어가는 것 |
|---|---|---|
comments.modoo.io |
댓글을 쓰거나 신고할 때 (읽기만 할 때는 넘기지 않는다) | 대리 토큰(누가 쓰는지의 신원), 작성한 댓글 내용 |
modoo.io |
즐겨찾기 등 내 정보가 필요한 조회·저장을 할 때 | 대리 토큰(신원) |
| 수탁자 | 위탁 업무 | 이전되는 정보 |
|---|---|---|
| Google (Firebase Cloud Messaging) | 알림 발송 | 기기 알림 토큰, 알림 제목·본문 |
| Google (Firebase 설치 ID) | 알림 SDK 동작 | 앱 설치 식별자(FID) — SDK가 자동 생성 |
| Google (Firebase Crashlytics) | 앱 오류 진단 | 비정상 종료 시 호출 스택, 기기 모델·OS 버전·앱 버전, 진단 SDK 설치 ID(우리 설치 식별자·계정과 연결하지 않음) |
국외 이전
| 이전받는 자 | 이전 국가 | 이전 시기·방법 | 이전 항목 | 보유 기간 |
|---|---|---|---|---|
| Google LLC | 미국 등 Google이 운영하는 데이터센터 소재국 | 알림 발송 시 네트워크를 통해 전송 | 기기 알림 토큰, 알림 제목·본문, 앱 설치 식별자(FID) | 발송 처리 후 Google 정책에 따름 |
| Google LLC | 미국 등 Google이 운영하는 데이터센터 소재국 | 앱 비정상 종료 뒤 다음 실행 시 네트워크를 통해 전송 | 오류 진단 정보(호출 스택, 기기 모델·OS 버전·앱 버전, 진단 SDK 설치 ID) | Google Firebase Crashlytics 보존 정책(기본 90일)에 따름 |
거부 방법: 앱 설정에서 알림을 끄면 토큰이 삭제되고 이전이 중단된다. 알림을 끄더라도 나머지 서비스(걸음·포인트)는 정상 이용할 수 있다.
앱에는 외부 광고 SDK를 탑재하지 않는다. 앱이 직접 쓰는 외부 도구는 위 표의 Google Firebase(알림·오류 진단)뿐이다.
이용 통계(§1-2)는 모두의 서버에만 보관하며 외부에 넘기지 않는다. 앱 안 브라우저로 여는 modoo.io 페이지의
광고·분석은 §9에 따로 적었다. 도구를 추가하면 이 방침을 먼저 고친다.
4. 보유 기간과 파기 — 이 서비스는 기록이 누적되는 구조다
정직하게 적는다: 대부분의 기록은 자동으로 지워지지 않고 계정이 삭제될 때까지 쌓인다.
계정 삭제 시 즉시 파기하는 것
- 이름/닉네임 (
NULL처리) - Modoo ID 연결 정보 — 삭제된다. 따라서 같은 Modoo ID로 다시 가입하면 완전히 새 계정이 되고
이전 포인트는 승계되지 않는다
- 로그인 세션·1회용 코드 전부
- 기기(설치) 정보와 계정의 연결 — 설치 식별자·알림 토큰이 계정과 이어져 있던 연결이 즉시 끊긴다
(devices.user_id → NULL). 그 뒤로 이 기기의 알림·집계는 어느 계정에도 연결되지 않는다
- 알림 토큰은 계정이 아니라 기기의 것이다 — 탈퇴는 연결 해제, 알림 중단은 알림 설정으로: 토큰은 계정이 아니라
설치 기기의 것이라, 탈퇴해도 앱이 깔려 있고 알림을 끄지 않았다면 미로그인 설치자로서 일반 알림을 계속 받는다. 앱을 삭제하면 정리된다.
- 맞춤 정보(프로필) 전부 — 지역·출생연도·가구·소득·상황. 원장과 달리 회계 근거가 없어 남기지 않는다
계정 삭제 후에도 남는 것 — 5년
- 포인트 원장·지급 이력·걸음 증거: 이름과 로그인 연결이 끊긴 가명 기록으로
적립·지급일로부터 5년간 보관한 뒤 파기한다.
- 근거: 「전자상거래 등에서의 소비자보호에 관한 법률」 제6조 및 같은 법 시행령 제6조
(대금결제 및 재화 등의 공급에 관한 기록 5년).
- 이 기간 동안에도 이름·Modoo ID 연결·기기 정보는 이미 파기된 상태이며, 남는 것은
회원 식별자(무작위 UUID)와 적립·지급 수치뿐이다.
보관 기간 요약
| 대상 | 보관 기간 |
|---|---|
| 맞춤 정보(프로필) | 동의 철회·탈퇴 시 즉시, 미갱신 3년 후 파기 |
| 이름/닉네임, Modoo ID 연결, 세션 | 계정 삭제 즉시 파기 |
| 기기 알림 토큰·설치 식별자와 계정의 연결 | 계정 삭제 즉시 끊김(devices.user_id → NULL) |
| 기기 알림 토큰·설치 식별자 자체 | 기기 소유 — 알림을 끄거나 앱을 삭제할 때 파기. 계정 삭제는 연결 해제 |
| 포인트 원장·지급 이력·걸음 증거 | 5년 후 파기 |
| 검색어(검색 서비스 접근 기록) | 3개월 후 파기 |
| 알림 발송 이력(수신자 정보 없음) | 5년 후 파기 |
| 만료된 세션·1회용 코드 | 만료 시 자동 정리 |
자동 정리
- 만료된 로그인 세션·1회용 코드: 다음 로그인 시 정리
- 도달 불가로 확인된 알림 토큰: 발송 시 자동 삭제
- 검색 서비스 접근 기록: 3개월이 지난 것부터 정기적으로 파기
5. 이용자의 권리
| 권리 | 행사 방법 |
|---|---|
| 열람 | 앱 내 포인트·걸음 화면에서 확인 |
| 정정 | 이름/닉네임은 Modoo ID에서 변경 |
| 삭제(회원 탈퇴) | 앱 설정 → 회원 탈퇴 |
| 알림 수신 거부 | 앱 설정에서 알림 끄기 — 즉시 토큰이 삭제된다 |
| 처리정지·이의제기 | §11의 보호책임자 연락처로 요청 |
6. 안전성 확보 조치
- 전 구간 HTTPS(TLS) 암호화, HSTS 적용
- Modoo ID 식별자·세션 토큰·1회용 코드는 해시로만 저장 — 원문이 서버에 없다
- 알림 토큰·세션 토큰을 로그·오류 메시지·분석 데이터에 남기지 않음
- 운영자 접근은 별도 권한 계정으로 제한하고, 회원 상태 변경은 변경 이력을 기록
- 데이터베이스는 외부에 개방하지 않음(서버 내부 접근만)
7. 만 14세 미만 아동
모두는 만 14세 미만의 가입을 받지 않는다. 만 14세 미만임이 확인되면 해당 계정과 관련 정보를 지체 없이 파기한다. 법정대리인 동의 절차를 두지 않는 대신 가입 자체를 제한하는 방식이다.
확인 방법은 가입(로그인) 시작 전 자기확인이다. 앱은 로그인을 개시하기 전에 만 14세 이상인지 묻고, 확인하지 않으면 로그인 절차 자체를 시작하지 않는다. 확인 결과는 이용자의 휴대전화에만 남으며(확인 시각), 생년월일·나이는 수집하지 않는다 — 연령 확인을 위해 주민등록번호나 통신사 본인인증 같은 추가 신원정보를 수집하지 않기 위한 선택이다.
한계 고지: 자기확인은 이용자의 응답에 의존한다. 만 14세 미만임을 알게 된 경우
§7 첫 문단의 파기 절차를 따른다.
8. 개인정보 파기 절차·방법
전자적 파일은 복구할 수 없는 방법으로 영구 삭제하며, 보관 기간이 끝난 기록은 자동 또는 정기 점검을 통해 파기한다.
9. 자동 수집 장치
앱이 직접 쓰는 것: 모두 앱은 광고 식별자(IDFA·ADID)를 읽지 않는다. 모두가 운영하는 앱 화면 (app.modoo.io)과 검색(search.modoo.io)이 쓰는 쿠키는 로그인 유지를 위한 필수 쿠키(httpOnly) 하나뿐이며, 이 두 곳에는 광고·분석 스크립트가 없다.
앱 안 브라우저로 여는 modoo.io 페이지는 다르다. 콘텐츠 글·혜택 게시판·회원가입 페이지는 모두의 웹사이트(modoo.io)이고, 그 페이지에는 광고와 방문 분석 도구가 실려 있다. 이용자가 앱에서 콘텐츠 글을 열면 이 수집이 앱 화면 안에서 일어난다.
| 실린 것 | 하는 일 | 누가 받나 |
|---|---|---|
| Google AdSense · DoubleClick | 광고 표시 — 쿠키·웹 식별자 사용 | Google(제3자) |
모두 광고(modoo-ads.pub-code.com) |
광고 표시 와 방문 기록(아래) | 모두가 운영하는 서버 |
| Google Analytics 4 | 방문 분석 | Google(제3자) |
모두 광고가 받는 것
- 이용자가 연 페이지의 주소와 제목
- 그 브라우저에 부여되는 고유 방문자 번호 — 같은 브라우저의 방문을 이어서 알아보는 값이다
- 광고 영역 주변의 상호작용 기록(클릭·스크롤·마우스 이동·키 입력·화면 크기)
이 광고 스크립트는 브라우저에 저장된 로그인 정보(쿠키·로컬 저장소)에 접근하지 않는다. 따라서 로그인 토큰이나 계정 식별자가 함께 전송되지 않는다. 다만 위 방문자 번호는 지속되는 값이므로, 로그인 없이도 같은 브라우저의 방문을 이어서 알아볼 수 있다.
- Google AdSense·Analytics가 받는 정보는 Google의 처리이며 Google의 방침을 따른다.
modoo-ads.pub-code.com은 모두가 운영하는 서버이므로, 위 기록은 앱이 단지 보여주는 것이 아니라 모두가 받는 정보다.
- 이 항목은 2026년 9월 14일에 내용을 더 자세히 고쳐 적었다. 수집 방식이 새로 바뀐 것은 아니며,
전에는 "광고 표시"로만 적혀 있던 것을 실제로 전송되는 항목까지 풀어 쓴 것이다.
- 앱 안 브라우저에서 다른 사이트로 이동하면 그 사이트가 받는 정보는 그 사이트의 방침을 따른다.
- 광고 쿠키를 원하지 않으면 기기의 브라우저 설정에서 쿠키를 차단하거나, 해당 페이지를 열지 않으면 된다.
앱의 핵심 기능(걸음·포인트·혜택 목록·검색)은 광고가 실린 페이지를 열지 않고도 이용할 수 있다.
§1-2의 설치 식별자(installId)는 광고 식별자가 아니다 — 앱이 스스로 만드는 무작위 값이고, 모두 앱 안에서만 쓰이며, 다른 회사·다른 앱과 공유되지 않는다. 이용자를 앱 밖으로 따라다니는 추적에는 쓰이지 않는다.
10. 방침 변경
변경 시 앱 공지 또는 이 페이지에 개정일과 함께 게시한다. 중요한 변경은 시행 7일 전(이용자에게 불리한 변경은 30일 전) 고지한다.
11. 개인정보 보호책임자 및 문의
회사는 개인정보 처리에 관한 업무를 총괄하여 책임지고, 이용자의 불만처리 및 피해구제 등을 위하여 아래와 같이 개인정보 보호책임자를 지정하고 있다.
| 구분 | 내용 |
|---|---|
| 개인정보 보호책임자 | 김훈철 (대표) |
| 연락처 | 031-403-3084 · support@modoo.io |
사업자 정보
- 상호: 주식회사 바이올렛소프트 · 대표자: 김훈철
- 사업자등록번호: 220-87-79999
- 주소: 경기도 안산시 상록구 중보로 49, 402호(이동, 숭실프라자)
- 고객센터: 031-403-3084 · 이메일: support@modoo.io
기타 개인정보 침해에 대한 신고·상담은 아래 기관에 문의할 수 있다.
- 개인정보침해신고센터 (privacy.kisa.or.kr / 국번없이 118)
- 개인정보 분쟁조정위원회 (kopico.go.kr / 1833-6972)
- 대검찰청 사이버수사과 (spo.go.kr / 1301)
- 경찰청 사이버수사국 (ecrm.police.go.kr / 182)