개인정보 처리방침
1. 수집하는 정보
BestFrame(이하 "앱")에는 회원가입·로그인과 운영자 서버가 없고, 광고나 추적 기술을 쓰지 않습니다. 사진, 분석 결과, 취향 정보는 이용자의 기기 안에만 있고 운영자는 접근할 수 없습니다.
BestFrame 1.2부터 앱은 다음 정보만 PostHog(아래 6번)로 보냅니다. 이름, 이메일, 전화번호, Apple 계정, 광고 식별자(IDFA)는 수집하지 않으며, 보낸 정보를 이용자 신원과 연결하지 않습니다.
| 항목 | 내용 | 목적 |
|---|---|---|
| 오류(충돌) 보고 | 앱이 비정상 종료되었을 때의 오류 종류와 스택 트레이스(앱 코드의 어느 부분에서 멈췄는지), 앱 실행 파일 정보. 충돌 다음에 앱을 열 때 보냅니다. | 오류를 찾아 고치기 위해 |
| 사용 통계 6가지 | ① 처음 실행(설치당 한 번) ② 사진 접근 권한 선택 결과(전체·선택한 사진·거부 중 하나) ③ 분석 완료: 찾은 장면 수, 확인한 사진 수, 건너뛴 사진 수, 걸린 시간(초) ④ 정리 완료: 마친 장면 수, 남긴 사진 수, 삭제한 사진 수 ⑤ 정리를 마친 화면이 나타남(1.3부터): ④의 개수와 건너뛴 장면 수, 확인한 사진 수, 삭제 없이 마쳤는지 여부, 화면 형태(격자) ⑥ 정리를 마친 화면을 닫음(1.3부터): 화면을 연 시간 구간(3초 미만·3–10초·10–30초·30초 이상), 사진 목록을 스크롤했는지 여부 | 기능이 실제로 쓰이고 제대로 끝나는지 확인하기 위해 |
| 익명 식별자 | 앱이 처음 실행될 때 PostHog SDK가 만드는 무작위 ID와 세션 ID. 기기나 이용자 정보로 만들지 않습니다. | 같은 설치에서 온 기록을 묶어 세기 위해 |
| 기기·앱 정보 | 앱 버전·빌드, iOS 버전, 기기 모델(예: iPhone16,1), 화면 크기, 언어 설정, Wi-Fi·셀룰러 연결 여부, TestFlight·시뮬레이터 여부, SDK 버전. 기기 이름(이용자가 정한 이름)과 시간대는 보내지 않습니다. App Store 개인정보 항목의 "기타 진단 데이터"에 해당합니다. | 오류와 통계를 버전·기기별로 나눠 보기 위해 |
보내지 않는 정보: 사진과 이미지, 사진의 식별자·촬영 시각·위치·파일 이름·앨범 이름, 분석 결과와 화질 수치, 취향 가중치, 이용자가 입력한 글. 화면 이동이나 버튼 누름을 자동으로 기록하지 않고, 화면 녹화(세션 리플레이)와 설문도 쓰지 않습니다.
IP 주소와 위치: 인터넷으로 정보를 보낼 때 PostHog 서버는 통신 과정에서 기기의 IP 주소를 받게 됩니다. 앱은 IP 주소로 위치를 추정하지 않도록 요청($geoip_disable)하며, BestFrame의 PostHog 프로젝트는 IP 주소를 저장하지 않도록 설정합니다.
2. 기기 안에서 하는 일
- 사진 분석: 이용자가 허용한 사진(전체 또는 선택한 사진)을 Apple의 Vision 프레임워크로 기기 안에서 분석해, 비슷한 사진을 묶고 남길 컷을 추천합니다.
- 사진에는 네트워크를 쓰지 않음: 분석용 이미지를 불러올 때 네트워크 다운로드를 요청하지 않습니다. 그래서 iCloud에만 있고 기기에 없는 사진은 분석하지 않고 건너뜁니다. 앱이 인터넷으로 보내는 것은 1번의 오류 보고와 사용 통계뿐입니다.
- 알림: 이용자가 "완료 알림 받기"를 허용하면, 분석이 끝났을 때 기기 안에서 만든 로컬 알림을 한 번 보냅니다. 서버 푸시 알림이 아닙니다.
- 정리를 마친 화면: 보관함의 장면을 모두 정리하면 남긴 사진을 모아 보여 줍니다. 이 화면에서만, 기기에 없는 사진의 미리보기를 Apple의 사진 기능이 iCloud 사진에서 받아올 수 있습니다(BestFrame 1.3부터). 이 다운로드는 이용자의 iCloud 사진과 기기 사이에서만 이뤄지고 운영자에게 전달되지 않습니다.
3. 기기에 저장하는 정보
앱은 다음 정보를 이용자의 기기에만 저장합니다. 사진 원본이나 이미지 사본은 저장하지 않습니다.
| 저장 위치 | 내용 | 용도 |
|---|---|---|
| UserDefaults | 추천 취향 가중치, 반영한 비교 횟수, 취향에 반영한 장면 수(BestFrame 1.3부터 적용), 정리를 마친 장면의 식별값(사진 식별자와 수정 시각으로 계산) | 추천을 이용자 취향에 맞추고, 이미 정리한 장면을 다시 보여 주지 않기 위해 |
| UserDefaults | 별점 요청 기록: 앱을 실행한 횟수, 현재 앱 버전에서 삭제를 마친 사진 수와 그 버전, 별점 요청 대기 여부, 마지막으로 별점을 요청한 앱 버전(BestFrame 1.1부터 적용) | App Store 별점 요청을 사진을 정리한 뒤에만, 앱 버전마다 한 번까지만 보여 주기 위해 |
| UserDefaults | 처음 실행 통계를 이미 보냈는지 여부(BestFrame 1.2부터 적용) | 처음 실행을 설치당 한 번만 세기 위해 |
| 앱 데이터 폴더(PostHog SDK) | 익명 식별자와 세션 ID, 아직 보내지 못한 통계·오류 보고, 다음 실행 때 보낼 충돌 기록(BestFrame 1.2부터 적용). 기기 백업(iCloud 백업 등)에서는 제외됩니다. | 인터넷이 없을 때 모아 두었다가 보내기 위해 |
| Application Support 폴더의 파일 | 분석 진행 상황: 찾은 장면을 이루는 사진의 기기 내 식별자, 촬영 시각, 추천에 쓰는 화질 수치(선명도·노출 등). 분석을 마친 촬영 시각의 범위(홈 화면의 "…까지 확인"에 표시)와 다시 분석할 사진의 촬영 시각. 분석하지 못하고 건너뛴 사진(iCloud에만 있는 사진 등)은 기기 내 식별자, 그리고 처음 분석을 포함해 시도한 횟수와 마지막으로 시도했을 때의 사진 수정 시각(BestFrame 1.1부터 적용) | 앱을 다시 열었을 때 처음부터 분석하지 않고 이어서 하기 위해. 건너뛴 사진은 처음 분석을 포함해 3번까지 확인하고, 그 뒤에는 사진 수정 시각이 바뀌었을 때만 다시 확인하기 위해 |
분석 진행 상황 파일은 기기 안에만 저장되며, 앱은 이 파일의 내용을 기기 밖으로 보내지 않습니다(사용 통계에는 장면·사진 개수만 들어갑니다). 보관함에서 지워진 사진과 정리를 마친 장면은 이 파일에서 빠지고, 건너뛴 사진은 나중에 분석되면 건너뛴 목록에서 빠집니다. 정리 중에 고르던 내용은 메모리에만 있어 앱을 종료하면 사라집니다. 설정의 "취향 초기화"는 취향 가중치와 비교 횟수, 취향에 반영한 장면 수를, "처음부터 다시 찾기"는 분석 진행 상황을 지웁니다. 정리를 마친 장면의 식별값과 별점 요청 기록은 이 두 설정으로 지워지지 않습니다. 저장된 정보는 앱을 삭제하면 모두 삭제됩니다. 이용자가 iPhone 백업(iCloud 백업 등)을 사용하면 이 앱 데이터가 Apple의 백업 정책에 따라 백업에 포함될 수 있습니다. 이때도 운영자에게 전달되지는 않습니다.
4. 사진 보관함 변경
- 삭제: 앱은 "정리하기" 화면에서 이용자가 지울 사진을 확인하고 삭제 버튼을 누른 뒤, iOS가 보여 주는 확인 창에서 다시 허용한 경우에만 PhotoKit을 통해 사진을 삭제합니다. 시스템 확인을 건너뛰지 않습니다.
- 복구: 삭제한 사진은 사진 앱의 "최근 삭제된 항목"으로 이동하며, iOS가 정한 기간 안에는 복구할 수 있습니다. iCloud 사진을 사용 중이면 같은 계정의 다른 기기에서도 삭제됩니다.
- 좋아요: 이용자가 "좋아요"를 누르면 사진 앱의 즐겨찾기 표시가 바뀝니다. 즐겨찾기한 사진은 앱이 삭제 대상으로 삼지 않습니다.
5. 권한
앱은 사진 보관함 접근 권한(분석, 즐겨찾기 변경, 삭제)과 선택적으로 알림 권한을 요청합니다. 권한은 언제든 설정 › BestFrame에서 바꿀 수 있습니다. 사진 접근을 끄면 앱은 사진을 읽지 않습니다.
6. 제3자 제공·처리 위탁·국외 이전
운영자는 정보를 제3자에게 팔거나 제공하지 않습니다. 1번의 오류 보고와 사용 통계를 저장·분석하는 일은 PostHog에 맡기며, 이 과정에서 정보가 국외로 이전됩니다.
| 받는 자 | PostHog, Inc.(분석 서비스 제공자, 개인정보 처리방침) |
|---|---|
| 이전 국가 | 미국(PostHog US Cloud). BestFrame이 EU 지역을 쓰도록 설정한 빌드는 유럽연합(PostHog EU Cloud) |
| 이전 항목 | 1번 표의 오류 보고, 사용 통계, 익명 식별자, 기기·앱 정보 |
| 이전 시기와 방법 | 앱 사용 중(오류 보고는 충돌 다음 실행 때) 암호화된 인터넷 연결(HTTPS)로 전송 |
| 목적 | 오류 수정과 기능 개선을 위한 통계 |
| 보유 기간 | 7번과 같습니다 |
PostHog는 운영자를 위해서만 이 정보를 처리하며, 광고나 다른 회사와의 정보 연결(추적)에 쓰지 않습니다. 앱 설치와 업데이트는 App Store에서 Apple을 통해 이뤄지며, 이 과정에는 Apple의 개인정보 처리방침이 적용됩니다.
7. 보관 기간과 삭제
- 보관 기간: PostHog에 보낸 정보는 PostHog 요금제가 정한 기간 동안 보관됩니다(무료 요금제 1년, 유료 요금제 최대 7년). 운영자는 목적에 필요하지 않게 된 정보를 이 기간 안에도 지울 수 있습니다.
- 익명 식별자 초기화: 앱을 삭제하면 기기에 있던 익명 식별자와 보내지 않은 기록이 함께 지워지고, 다시 설치하면 새 식별자가 만들어집니다. 이전 기록과 새 기록은 연결되지 않습니다.
- 삭제 요청: 아래 이메일로 삭제를 요청할 수 있습니다. 다만 보낸 정보에는 이름이나 계정이 없어서, 운영자가 특정 이용자의 기록을 찾지 못할 수 있습니다. 이 경우 찾을 수 있는 범위에서 지우고 그 결과를 알려 드립니다.
- 보내지 않으려면: 현재 앱 안에 통계·오류 보고를 끄는 설정은 없습니다. 원하지 않으면 앱을 쓰지 않거나 삭제할 수 있으며, 기기에 인터넷이 없을 때는 아무것도 보내지 않습니다.
8. 아동
앱은 이용자의 나이를 묻지 않으며, 만 14세 미만 아동을 포함해 누구의 이름이나 연락처도 수집하지 않습니다. 1번의 익명 정보는 나이와 관계없이 같은 방식으로 처리됩니다.
9. 방침의 변경
앱의 정보 처리 방식이 바뀌면, 바뀐 내용이 적용되기 전에 이 페이지에 시행일과 함께 알립니다. 1번과 6·7번의 PostHog 관련 내용은 BestFrame 1.2부터, 사용 통계 ⑤·⑥은 1.3부터 적용됩니다.
10. 문의와 개인정보 보호책임자
운영자·개인정보 보호책임자: Taehee Lee(이태희)
이메일: somandlee@gmail.com
Privacy Policy
1. Information we collect
BestFrame (the "App") has no account or sign-in and no server of ours, and uses no advertising or tracking technology. Your photos, analysis results, and preferences stay on your device. We cannot access them.
From BestFrame 1.2, the App sends only the following to PostHog (section 6). It does not collect your name, email, phone number, Apple Account, or advertising identifier (IDFA), and we do not link what it sends to your identity.
| Item | What | Why |
|---|---|---|
| Crash reports | When the App quits unexpectedly: the error type, the stack trace (where in the App's code it stopped), and information about the App's binary. Sent the next time you open the App. | To find and fix bugs |
| Six usage statistics | (1) First launch (once per install) (2) The photo access you chose (full, selected photos, or denied) (3) Scan finished: number of scenes found, photos checked, photos skipped, and time taken in seconds (4) Clean-up finished: number of scenes finished, photos kept, and photos deleted (5) Completion screen shown (from 1.3): the counts in (4) plus scenes skipped, photos checked, whether you finished without deleting, and the layout (grid) (6) Completion screen closed (from 1.3): how long it was open (under 3, 3–10, 10–30, or 30+ seconds) and whether you scrolled the photos | To check that features are used and finish correctly |
| Anonymous identifier | A random ID and a session ID created by the PostHog SDK when the App first runs. They are not derived from your device or from you. | To count records from the same install together |
| Device and app information | App version and build, iOS version, device model (such as iPhone16,1), screen size, language setting, whether on Wi-Fi or cellular, whether TestFlight or a simulator, and SDK version. Not your device's name or your time zone. Listed as "Other Diagnostic Data" in the App Store privacy details. | To break down crashes and statistics by version and device |
Never sent: photos and images; photo identifiers, capture times, locations, file names, or album names; analysis results and quality scores; your preference weights; anything you type. The App does not record screen views or taps automatically, and uses no session replay or surveys.
IP address and location: Sending data over the internet gives PostHog's servers your device's IP address. The App asks PostHog not to derive a location from it ($geoip_disable), and BestFrame's PostHog project is set to discard IP addresses.
2. What happens on your device
- Photo analysis: The App analyzes the photos you allow (all photos or a selection) on device using Apple's Vision framework to group similar shots and suggest the ones to keep.
- No network use for photos: The App never asks to download images for analysis, so photos stored only in iCloud and not on the device are skipped. The only things the App sends over the internet are the crash reports and usage statistics in section 1.
- Notifications: If you turn on "Notify me when done," the App sends one local notification created on the device when the scan finishes. It is not a server push.
- Completion screen: When every scene in your library is cleaned up, the App shows the photos you kept. On this screen only, Apple's Photos framework may download previews of photos that are not on the device from iCloud Photos (from BestFrame 1.3). This download happens only between your iCloud Photos and your device and is never sent to us.
3. Information stored on your device
The App stores the following only on your device. It never stores copies of your photos.
| Where | What | Why |
|---|---|---|
| UserDefaults | Your preference weights, the number of comparisons learned, the number of scenes learned from (from BestFrame 1.3), and fingerprints of scenes you finished (computed from photo identifiers and modification dates) | To tailor suggestions to you and avoid showing finished scenes again |
| UserDefaults | Rating request records: how many times the App was launched, the number of photos deleted in the current App version and that version, whether a rating request is pending, and the App version in which a rating was last requested (from BestFrame 1.1) | To ask for an App Store rating only after you clean up photos, and at most once per App version |
| UserDefaults | Whether the first-launch statistic was already sent (from BestFrame 1.2) | To count a first launch only once per install |
| App data folder (PostHog SDK) | The anonymous identifier and session ID, statistics and crash reports not yet sent, and a crash record to send at the next launch (from BestFrame 1.2). Excluded from device backups (such as iCloud Backup). | To hold data while offline and send it later |
| A file in Application Support | Scan progress: on-device identifiers and capture times of photos in found scenes, and the quality scores used for suggestions (sharpness, exposure, etc.). The range of capture times already scanned (shown as "Checked back to …" on the home screen) and the capture times of photos waiting to be scanned again. For photos that could not be analyzed and were skipped (such as iCloud-only photos): their on-device identifiers, plus the number of attempts, including the original scan, and the photo's modification date at the last attempt (from BestFrame 1.1) | To resume scanning instead of starting over. To check each skipped photo up to 3 times, including the original scan, and after that only when its modification date changes |
The scan progress file is stored only on your device, and the App never sends its contents off the device (usage statistics contain only counts of scenes and photos). Photos removed from your library and scenes you finished are dropped from this file, and a skipped photo leaves the skipped list once it is analyzed. Choices you are still making stay in memory and are discarded when the App quits. In Settings, "Reset Personalization" clears your preference weights, comparison count, and learned scene count, and "Rescan Library" clears scan progress. Neither clears the fingerprints of finished scenes or the rating request records. All stored data is removed when you delete the App. If you use iPhone backups (such as iCloud Backup), this App data may be included under Apple's backup policies. It is still never sent to us.
4. Changes to your photo library
- Deletion: The App deletes photos through PhotoKit only after you review them on the Clean Up screen, tap Delete, and then approve the iOS confirmation dialog. The App never bypasses that confirmation.
- Recovery: Deleted photos move to Recently Deleted in the Photos app, where you can recover them within the period set by iOS. If you use iCloud Photos, they are also deleted on your other devices.
- Favorites: Tapping "Like" changes the photo's Favorite status in Photos. The App never offers favorites for deletion.
5. Permissions
The App asks for photo library access (for analysis, favorites, and deletion) and, optionally, notification permission. You can change these anytime in Settings › BestFrame. Without photo access, the App reads no photos.
6. Sharing, processors, and international transfers
We do not sell or share information with third parties. PostHog stores and analyzes the crash reports and usage statistics in section 1 on our behalf, which transfers that data outside Korea.
| Recipient | PostHog, Inc. (analytics provider, privacy policy) |
|---|---|
| Country | United States (PostHog US Cloud). Builds of BestFrame configured for the EU region: European Union (PostHog EU Cloud) |
| Data | The crash reports, usage statistics, anonymous identifier, and device and app information in section 1 |
| When and how | While you use the App (crash reports at the next launch after a crash), over an encrypted connection (HTTPS) |
| Purpose | Statistics to fix bugs and improve features |
| Retention | As in section 7 |
PostHog processes this data only for us and does not use it for advertising or to link it with other companies' data (tracking). App downloads and updates are handled by Apple through the App Store under Apple's privacy policy.
7. Retention and deletion
- Retention: Data sent to PostHog is kept for the period set by the PostHog plan (1 year on the free plan, up to 7 years on paid plans). We may delete data sooner once it is no longer needed.
- Resetting the anonymous identifier: Deleting the App removes the anonymous identifier and any unsent records from your device. Reinstalling creates a new identifier that is not linked to the old records.
- Deletion requests: You can ask us to delete data at the email below. Because the data contains no name or account, we may not be able to find records that belong to you. In that case we delete what we can find and tell you the result.
- Opting out: The App has no setting to turn off statistics and crash reports yet. If you do not want them sent, you can stop using or delete the App. Nothing is sent while your device is offline.
8. Children
The App does not ask for your age and collects no one's name or contact details, including children under 14. The anonymous data in section 1 is handled the same way regardless of age.
9. Changes to this policy
If the way the App handles information changes, we will post the update here with its effective date before it applies. The PostHog parts of sections 1, 6, and 7 apply from BestFrame 1.2, and usage statistics (5) and (6) from 1.3.
10. Contact and privacy officer
Developer and privacy officer: Taehee Lee (이태희)
Email: somandlee@gmail.com