KitchenLocker 개인정보 처리방침
이 번역은 편의를 위해 제공되는 것입니다. 구속력을 갖는 것은 영문본이며, 내용이 다를 경우 영문본이 우선합니다.
요약. KitchenLocker는 계정 없이 전적으로 기기 안에서 동작합니다. 기기 간 동기화를 위해 로그인하면 잠금의 이름, 잠금 번호, 잠금에 적는 메모, 활동 기록, 백업 코드는 휴대폰을 떠나기 전에 종단 간 암호화되므로 당사는 그 내용을 읽을 수 없습니다. 잠금의 타이머는 당사 서비스가 직접 돌려야 하므로 그 방식으로 암호화되지 않습니다. 잠금의 이름은 사용자가 책임 파트너와 공유하기로 선택하지 않는 한 봉인된 채로 남습니다. 이용 현황 리포트는 사용자가 켜기 전까지 꺼져 있습니다. 오류 보고서는 당사가 직접 운영하는 서버로 전송됩니다. 책임 파트너를 초대하면 당사는 그 사람의 이메일 주소를 저장하고 사용자를 대신하여 메일을 보냅니다. 당사는 광고를 표시하지 않으며, 광고를 위해 개인정보를 판매하거나 공유하지 않습니다.
이 방침은 KitchenLocker 앱(이하 "앱")이 어떤 데이터를 다루고, 무엇이 HYPER C(이하 "당사")에 도달하며, 무엇이 기기에 남는지를 설명합니다. iOS 및 Android 앱, 그 뒤의 동기화 서비스, 그리고 그로 인해 당사가 보내는 이메일에 적용됩니다. HYPER C는 대한민국의 개인 개발자 임중혁이 사용하는 명칭이며, 이 방침에서 "당사"는 임중혁을 가리킵니다. 문의는 [email protected]로 보내주십시오.
1. 기기에 남는 데이터
앱은 계정이 없어도 온전히 동작합니다. 앱에 필요한 것은 모두 휴대폰 안에 있습니다.
- 잠금 — 이름, 메모, 타이머, 설정, 통계, 활동 기록이 로컬 데이터베이스에 저장됩니다. 이름과 메모는 동기화되기 전에 봉인되지만, 여기에는 둘 다 읽을 수 있는 형태로 저장됩니다.
- 잠금 번호와 백업 코드 — 기기의 보안 키 저장소(iOS 키체인 / Android 키스토어)에만 저장되며, 일반 데이터베이스에는 결코 저장되지 않습니다.
- 보관함 키와 복구 코드 — 동기화를 사용하는 경우. 데이터를 봉인하는 키는 기기의 보안 키 저장소에 머뭅니다. 새 기기를 보관함에 들이는 복구 코드는 앱을 다시 설치하거나 휴대폰을 바꾸었을 때 찾을 수 있는 곳에 보관됩니다. Apple 기기에서는 키체인, Android에서는 Google의 Block Store입니다. iCloud 키체인을 사용하면 Apple이 둘 다 사용자의 다른 Apple 기기로 옮겨 줍니다. Android에서는 휴대폰의 Google 백업이 종단 간 암호화되는 경우에만(화면 잠금이 설정되어 있어야 합니다) 코드가 그 백업에 포함되며, 그렇지 않으면 휴대폰 안에만 남습니다. 어느 경우든 코드는 사용자 본인의 Apple 또는 Google 계정 아래 보관되며, 당사가 읽을 수 있는 형태로 당사 서버에 도달하는 일은 없습니다.
- 앱 설정 — 테마, 알림 설정, 그리고 이용 현황 리포트의 켜짐 여부.
- 약관에 대한 답변 — 어떤 버전의 이용약관에 언제 동의했는지, 그리고 이용 현황 리포트를 켰는지 여부를 저장하여 다시 묻지 않도록 합니다.
- 생체 인증 앱 잠금 — Face ID, 지문 또는 암호 보호를 켜면 확인은 운영체제가 수행합니다. 앱은 예 또는 아니오만 전달받으며, 생체 정보는 앱에도 당사에도 결코 제공되지 않습니다.
로컬 알림(타이머 종료, 리마인더)은 기기에서 생성되므로 연결이 필요하지 않습니다.
2. 종단 간 암호화되는 것과 그렇지 않은 것
로그인하면 동기화되는 것 가운데 일부는 사용자의 기기만 보유한 키로 기기에서 봉인됩니다. 당사 서버는 그 암호문을 저장하고 전달할 뿐, 그것을 여는 키를 갖고 있지 않습니다.
- 종단 간 봉인되는 것: 각 잠금의 이름과 카테고리, 잠금 번호, 각 잠금의 메모, 활동 기록, 백업 코드.
- 봉인되지 않는 것: 각 잠금의 타이머와 상태. 이 정보는 서비스가 타이머를 돌려야 하고, 다른 기기와 책임 파트너에게 보여주고 월간 리포트에 담아야 하므로 당사 서버에 읽을 수 있는 형태로 저장됩니다.
잠금의 이름은 사용자가 원하면 공유할 수 있습니다. 이름이 봉인되어 있는 동안 책임 파트너와 당사가 파트너에게 보내는 이메일에는 "자물쇠"라고만 표시됩니다. 설정에서 "자물쇠 이름 암호화"를 끄면 모든 잠금의 이름과 카테고리가 읽을 수 있는 사본으로 당사 서버에 저장되고, 파트너에게 표시되며, 그 이메일에 기재됩니다. 설정을 다시 켜면 읽을 수 있는 사본은 당사 서버에서 지워집니다. 이미 발송된 이메일은 회수할 수 없습니다.
이름과 메모는 동기화되기 전에 봉인되므로 당사는 그 내용을 결코 보지 못합니다. 다만 둘 다 사용자의 휴대폰 안에는 읽을 수 있는 형태로 보관되므로, 화면 잠금이 풀린 휴대폰을 손에 넣은 사람이라면 누구나 읽을 수 있는 것으로 여기십시오. 모든 기기와 복구 코드의 모든 사본을 잃으면 봉인된 데이터는 당사를 포함해 누구도 복구할 수 없습니다. 그것이 바로 종단 간 암호화의 의미입니다.
3. 로그인한 경우 당사가 받는 데이터
로그인은 선택 사항입니다. 잠금이 기기를 따라다니게 하고 파트너를 지정할 수 있도록 하기 위해 존재합니다. Apple, Google 또는 일회용 코드를 받는 이메일 주소로 로그인할 수 있습니다.
- 계정 식별 정보 — Apple 또는 Google이 제공하는 사용자 ID, 이메일 주소, 그리고 Google의 경우 프로필 이미지 URL. 당사는 비밀번호를 결코 받지 않으며, 인증은 Apple 또는 Google에서 직접 이루어집니다. Apple은 실제 주소 대신 비공개 릴레이 주소를 제공할 수 있습니다.
- 로그인 코드 — 이메일로 로그인하는 경우, 코드의 해시된 사본을 코드를 받은 이메일 주소, 앱 또는 브라우저 식별자, 축약된 네트워크 주소와 함께 보관하여 코드 발급을 제한하고 남용을 탐지합니다. 코드는 몇 분 안에 만료되며, 그 기록은 만료 1시간 뒤 삭제됩니다.
- 세션 — 로그인한 기기마다 해시된 갱신 토큰, 기기 이름, 앱 식별자, 축약된 네트워크 주소. 각 세션의 기록은 갱신 토큰이 만료되고 30일 뒤 삭제됩니다.
- 동기화된 잠금 데이터 — 제2항에서 설명한 것과 같습니다.
- 기기 기록 — 설치할 때마다 공개 키를 등록하여 암호화 키가 기기 사이에서 안전하게 전달되도록 합니다. 새 기기는 기존 기기 또는 복구 코드로 승인받아야 합니다. 당사는 복구 코드 자체도 저장하되, 당사가 읽을 수 없도록 보관함 키로 봉인된 형태로만 저장합니다. 연결된 기기가 코드를 다시 보여줄 수 있는 것은 그 때문입니다.
- 잠금 이름에 관한 선택 — "자물쇠 이름 암호화"를 껐는지 여부(제2항).
- 푸시 알림 토큰 — 서비스가 알림을 보낼 수 있도록 등록되며, Firebase 클라우드 메시징(Google)을 통해 전달됩니다.
- 시간대와 로케일 — 현지 시간으로 월을 세고 사용자에게 맞게 안내하기 위해 사용됩니다.
- 동기화 타임스탬프와 서버 시각 기준점 — 여러 기기에서 타이머를 정확하게 유지하기 위해 사용됩니다.
- 감사 기록 — 계정에서 일어난 중요한 행위(로그인, 삭제, 파트너 변경)를 축약된 네트워크 주소와 함께 남긴 기록으로, 보안과 분쟁 대응을 위해 보관합니다.
네트워크 주소는 저장되기 전에 축약됩니다. 서버 로그와 데이터베이스 모두에서 IPv4는 /24, IPv6는 /48까지만 남기므로, 당사가 보관하는 것은 기기가 아니라 대략적인 접속 지역을 가리킵니다.
4. 책임 파트너
한 사람을 책임 파트너로 초대할 수 있습니다. 그러려면 그 사람의 이메일 주소와, 원한다면 이름을 당사에 알려주어야 합니다. 당사는 그 사람이 계정을 만들지 않더라도 그 주소와 이름을 저장합니다. 초대를 보내고 그것이 누구를 위한 것이었는지 알기 위해서입니다. 다른 사람의 주소를 입력하는 것은, 그 주소를 당사에 제공할 자격이 있고 그 사람이 앱을 통해 연락받을 의사가 있음을 확인하는 것입니다.
당사는 사용자를 대신하여 파트너에게 이메일을 보냅니다. 초대장, 잠금을 미리 열려는 요청 알림(입력한 사유가 있다면 그 사유 포함), 백업 코드가 사용되었다는 알림, 그리고 월간 리포트입니다. 이 이메일들은 사용자가 잠금의 이름을 공유하는 경우에만(제2항) 잠금의 이름을 적으며, 그렇지 않으면 "자물쇠"라고만 적습니다. 이 모든 이메일에는 수신을 중단하는 방법이 담겨 있으며, 수신을 거부한 사람에게는 그 파트너 관계에 대해 다시 메일을 보내지 않습니다.
초대를 수락한 파트너는 잠금의 타이머를 볼 수 있고(이름과 카테고리는 사용자가 공유하는 경우에만 볼 수 있습니다. 제2항), 잠금 해제 요청을 받아 승인하거나 거절할 수 있습니다. 파트너는 잠금 번호나 메모를 결코 볼 수 없습니다. 당사는 각 파트너 관계와 각 잠금 해제 요청 및 그 결과를 기록합니다. 어느 쪽이든 앱에서 언제든지 파트너 관계를 끝낼 수 있습니다.
5. 동의 기록
이용약관에 동의하고 이용 현황 리포트에 관한 질문에 답하면, 앱은 어떤 버전에 언제 동의했고 무엇이라고 답했는지를 기록합니다. 로그인한 뒤에는 그 기록이 축약된 네트워크 주소와 함께 당사 서버로 전송되어 추가만 가능한 이력으로 보관됩니다. 나중에 이용 현황 리포트를 끄면 앞의 기록이 지워지는 대신 새 항목이 더해집니다. 무엇에 언제 동의했는지에 관한 의문이 생겼을 때 답이 존재하도록 하기 위해 보관하는 것입니다. 앱의 어떤 기능도 이 기록을 다시 읽지 않습니다.
6. 진단 정보와 이용 현황 리포트
- 충돌 및 오류 보고서 — 제삼자가 아니라 당사가 직접 운영하는 오류 추적 서버(GlitchTip, Sentry 호환)로 전송됩니다. 보고서에는 오류 내용, 앱 버전, 기기 모델, 운영체제 버전이 담깁니다. 개인을 식별하는 항목과 화면 캡처는 보고 클라이언트에서 꺼져 있습니다.
- 이용 현황 리포트는 사용자가 켜기 전까지 꺼져 있습니다. 앱은 Google Analytics for Firebase를 사용하여 어떤 화면이 열리는지, 잠금을 만드는 과정을 사람들이 어디까지 진행하는지를 셉니다. 수집은 앱의 빌드 설정에서 비활성화되어 있으며, 약관 화면의 체크박스나 설정 → 내 데이터의 스위치를 켜기 전까지 꺼진 채로 유지됩니다. 켜져 있을 때 이벤트는 계정이 아니라 익명의 앱 인스턴스 식별자에 연결되며, 잠금의 이름, 메모, 잠금 번호, 이메일 주소는 결코 포함하지 않습니다. 광고 관련 동의는 사용자가 무엇을 선택하든 SDK에 거부됩니다. 리포트를 끄면 익명 식별자를 삭제해 달라고 Google에 요청하기도 하므로, 이전 이벤트는 프로필의 나머지를 기다리며 남는 대신 연결이 끊긴 상태가 됩니다.
- 원격 구성 — 앱은 Firebase 원격 구성에서 기능 플래그를 내려받습니다. 이는 내려받기이며, 사용자 데이터의 수집이 아닙니다.
7. 당사가 보내는 이메일
당사는 사용자나 파트너가 한 행동 때문에만 이메일을 보냅니다. 로그인 코드, 파트너 초대장, 잠금 해제 알림, 월간 리포트, 그리고 계정 삭제나 보관함 초기화가 예약되었거나 완료되었다는 안내입니다. 메일은 미국에서 Amazon Web Services가 운영하는 Amazon Simple Email Service를 통해 발송됩니다. 당사는 무엇을 누구에게 보냈는지에 대한 기록(30일 후 삭제)과, 반송되었거나 수신 중단을 요청한 주소의 목록을 보관하여 그런 주소로 계속 메일을 보내지 않도록 합니다.
8. 결제
KitchenLocker Pro 결제는 전적으로 App Store 또는 Google Play를 통해 이루어집니다. 당사는 카드 번호나 청구 정보를 결코 받지 않습니다. 앱은 사용자의 휴대폰에서 스토어에 구독이 유효한지 묻고 그 답을 휴대폰에 보관하며, 당사 서버에는 알리지 않습니다. 이용 현황 리포트를 켠 경우, Google Analytics for Firebase가 구매가 있었다는 사실을 계정과 연결하지 않고 기록할 수 있습니다.
9. 당사가 하지 않는 일
당사는 개인정보를 판매하지 않고, 교차 맥락 행태 광고를 위해 공유하지 않으며, 광고를 표시하지 않습니다. 앱에는 광고 SDK가 없고, 광고 식별자 권한을 요청하지 않습니다. 당사는 사용자의 잠금 번호, 메모, 활동 기록, 백업 코드를 읽지 않으며, 읽을 수도 없습니다. 잠금의 이름 역시 사용자가 공유하기로 선택하지 않는 한 읽지 않습니다. 연락처, 위치, 사진 등 이 방침이 열거하지 않은 어떤 것도 수집하지 않습니다.
10. 보유와 삭제
- 기기에서 — 잠금을 삭제하면 30일 동안 로컬 휴지통에 머문 뒤 파기됩니다. 휴지통은 언제든지 비울 수 있습니다. 앱을 삭제하면 운영체제의 백업 설정에 따라 모든 로컬 데이터가 제거됩니다. 복구 코드는 의도된 예외입니다. 앱을 다시 설치했을 때 찾을 수 있도록 Apple 키체인 또는 휴대폰의 Google 백업에 남으며(제1항), 계정이나 보관함이 삭제된 뒤에는 이 코드로 열 수 있는 것이 없습니다.
- 계정 — 앱 안에서(설정 → 개인정보 및 데이터) 또는 당사에 요청하여 삭제할 수 있습니다. 삭제에는 14일의 유예 기간이 있으며 요청할 때 안내됩니다. 유예 기간이 끝나기 전에 다시 로그인하면 요청이 취소됩니다. 그 뒤에는 계정과 계정에 동기화된 모든 것이 당사 서버에서 영구히 제거됩니다. 파트너 관계 기록과 감사 항목은 같은 시점에 사용자와의 연결을 잃습니다.
- 보관함 초기화 — 승인받을 수 없는 기기는 암호화 보관함의 초기화를 요청할 수 있습니다. 요청은 7일을 기다리며 이메일로 알려지고, 연결된 어느 기기에서든 취소할 수 있습니다. 실행되면 봉인된 모든 이름과 잠금 번호, 메모, 기록 항목이 파기되며, 월간 리포트도 함께 삭제됩니다.
- 공유한 잠금 이름 — 읽을 수 있는 사본은 "자물쇠 이름 암호화"를 다시 켤 때 지워지고, 계정이 삭제될 때에는 계정과 함께 지워집니다.
- 로그인 코드와 세션 — 코드는 몇 분 안에 만료되며 그 기록은 1시간 뒤 삭제되고, 세션은 로그아웃하거나 기기가 제거되거나 계정이 삭제될 때 끝나며 그 기록은 갱신 토큰이 만료되고 30일 뒤 삭제됩니다.
- 백업 — 당사 데이터베이스는 정해진 주기로 백업됩니다. 백업은 당사 인프라를 떠나기 전에 암호화되고 정해진 기간만 순환 보관되므로, 삭제된 계정은 삭제 후에도 제한된 기간 백업에 남아 있다가 사라집니다.
- 충돌 보고서와 이용 이벤트 — 디버깅과 제품 판단에 필요한 기간만 보관하며, 그 뒤에는 당사 오류 추적 도구와 Firebase의 보존 설정에 따라 삭제됩니다.
11. 처리의 법적 근거
GDPR 또는 영국 GDPR이 적용되는 경우, 당사는 다음 근거로 데이터를 처리합니다. 사용자가 요청한 계정, 동기화, 파트너, 알림 기능에 대해서는 계약의 이행, 오류 보고와 보안, 남용 방지, 감사 및 동의 기록에 대해서는 정당한 이익, 이용 현황 리포트와 그 밖에 법이 동의를 요구하는 사항(기기의 푸시 알림 권한 등)에 대해서는 동의입니다. 파트너의 이메일 주소는 사용자가 요청한 기능을 제공하는 데 대한 당사의 정당한 이익을 근거로 처리하며, 모든 메시지가 수신을 중단할 방법을 담고 있다는 점으로 균형을 맞춥니다. 대한민국 개인정보 보호법이 적용되는 경우, 이용 현황 리포트는 선택적 동의 항목이며 이를 거부하더라도 서비스 이용이 제한되지 않습니다.
당사는 법적 효력을 갖는 자동화된 의사결정에 사용자의 데이터를 이용하지 않습니다.
12. 사용자의 권리
EU, EEA 또는 영국에 있는 경우, 개인정보에 접근하고 정정하고 삭제하고 그 사본을 받을 권리, 처리에 반대하거나 처리를 제한할 권리, 그리고 언제든지 동의를 철회할 권리가 있습니다. 현지 감독기관에 민원을 제기할 수도 있습니다.
캘리포니아 주민인 경우, 당사가 수집하는 개인정보를 알 권리, 그것을 삭제할 권리, 정정할 권리, 그리고 그 판매나 공유를 거부할 권리가 있습니다. 당사는 CCPA/CPRA가 정의하는 의미로 개인정보를 판매하거나 공유하지 않으며, 권리를 행사했다는 이유로 사용자를 차별하지 않습니다.
대한민국에 있는 경우, 개인정보 보호법이 보장하는 바에 따라 개인정보의 열람, 정정, 삭제, 처리정지를 요구할 권리와 동의를 철회할 권리가 있습니다.
대부분의 권리를 행사하는 가장 빠른 방법은 앱 안에 있습니다. 이용 현황 리포트는 스위치 하나이고, 계정 삭제도 앱에 내장되어 있습니다. 데이터 사본을 포함한 그 밖의 사항은 [email protected]로 이메일을 보내주십시오. 당사는 적용되는 법이 정한 기한 안에 답변합니다. 종단 간 암호화된 내용(공유하지 않은 경우의 잠금 이름, 잠금 번호, 메모, 활동 기록, 백업 코드)은 당사가 읽을 수 없으므로, 사본에는 암호문으로만 담길 수 있습니다.
13. 국외 이전
당사 서버는 사용자의 국가 밖에 있을 수 있으며, 당사의 수탁사 가운데 두 곳이 미국에 있습니다. 이메일 발송과 암호화된 백업을 맡는 Amazon Web Services, 그리고 푸시 알림과 이용 현황 리포트, 원격 구성을 맡는 Google입니다. 개인정보 보호법이 요구하는 경우, 이전은 유럽연합 집행위원회의 표준계약조항이나 적정성 결정과 같은 적절한 보호조치에 근거합니다. 대한민국은 EU 적정성 결정의 대상입니다.
14. 아동
KitchenLocker 계정은 만 14세 이상을 위한 것이며, 거주 지역의 법이 데이터 처리에 대한 동의 연령을 더 높게 정한 경우에는 그 연령 이상을 위한 것입니다. 당사는 아동의 개인정보를 알면서 수집하지 않습니다. 아동이 당사에 데이터를 제공했다고 생각되면 연락해 주십시오. 삭제하겠습니다.
15. 보안
잠금의 이름, 잠금 번호, 메모, 활동 기록, 백업 코드는 동기화되기 전에 기기에서 암호화됩니다. 모든 통신은 HTTPS를 지납니다. 토큰은 해시하여 저장하고, 네트워크 주소는 저장하기 전에 축약하며, 오류 추적은 식별 항목을 끈 채 당사 자체 서버에서 돌아갑니다. 보안 문제를 발견하셨다면 공개하지 마시고 [email protected]로 알려주십시오. 당사는 그 소식을 이르게, 그리고 비공개로 듣기를 바랍니다.
16. 수탁사와 제삼자
당사는 소수의 수탁사만을 이용하며, 각 수탁사는 그 역할에 필요한 것만 받습니다.
- Apple과 Google — 로그인, 그리고 유료 기능을 도입할 경우의 결제. 사용자의 기기는 두 회사가 사용자에게 제공하는 키 저장소와 백업에 복구 코드도 보관합니다(제1항). 그 사본은 두 회사에 있는 사용자 계정 아래 보관되며 당사로 전송되지 않습니다.
- Google Firebase — 푸시 알림, 이용 현황 리포트(켠 경우에만), 원격 구성.
- Amazon Web Services — 이메일 발송, 그리고 백업의 암호화된 보관.
- 당사 자체 호스팅 — 동기화 서비스, 그 데이터베이스, 오류 추적 서버.
17. 이 방침의 변경
이 방침을 의미 있게 바꾸는 경우 위의 날짜를 갱신하며, 로그인한 사용자에게 영향을 주는 중대한 변경은 앱에서 알려드립니다. 변경 후에도 계속 이용하면 갱신된 방침이 적용됩니다.
18. 연락처
임중혁(HYPER C)
개인정보 보호책임자: 임중혁
데이터에 관한 모든 문의는 [email protected]
보안 문제는 [email protected]