개인정보처리방침
1. 운영자와 적용 범위
"안녕, 오늘 날씨"의 운영자는 서영재(youngjaeseo)이며 문의 이메일은 youngjae.seo@gmail.com입니다. 이 방침은 현재 앱의 날씨·장소 검색·진단 및 선택 기능을 설명합니다. 광고 SDK와 Google Analytics는 사용하지 않으며, 앱 계정 생성·로그인 기능은 없습니다. 후원과 테마 구매는 현재 비활성화되어 있습니다.
2. 기기에 저장하는 정보
닉네임, 운세용 생년월일, 사용자 명언, 저장한 장소의 이름·별칭·좌표, 여행지·기간·좌표, 알림·캐릭터·음성 설정, 선택한 배경 사진의 편집 사본, 마지막 위치·장소명과 날씨 캐시를 앱 저장소에 보관합니다. 최초 실행일·평점 안내 횟수·업데이트 안내 상태 및 아침 알림의 최근 실행 진단도 로컬에 저장됩니다. 생년월일은 기기에서 재미용 운세를 만드는 데 사용합니다. 배경 사진을 서버에 업로드하는 기능은 없습니다.
이 정보 전부가 언제나 기기 안에서만 처리되는 것은 아닙니다. 장소 검색어·날씨 조회 좌표·여행 예보 기간은 아래 외부 서비스로 전송되고, 공유 및 음성 기능을 선택하면 일부 내용이 다른 앱 또는 시스템 음성 엔진에 전달됩니다. 운영체제 백업이 활성화된 경우 로컬 설정과 파일도 백업될 수 있습니다.
3. 위치와 장소 검색
현재 위치 날씨를 위해 앱 사용 중 위치 권한을 요청하며, 운영체제가 제공하는 대략적 또는 정확한 좌표를 사용합니다. 앱은 전송 전에 좌표를 도시 단위로 일괄 반올림하지 않습니다. 마지막으로 확인한 좌표·장소명은 Android 위젯의 새로고침 및 예약된 아침 알림이 앱이 닫힌 동안에도 날씨를 조회할 수 있도록 저장합니다. 백그라운드에서 새로운 GPS 위치를 요청하지는 않습니다.
Open-Meteo 날씨·대기질 서비스로 좌표를 전송합니다. 한국 위치이고 기상청 키가 설정되어 있으며 기상청 보정이 켜진 경우 공공데이터포털 기상청 API에 격자 좌표와 예보 기준 일시를 전송합니다. 여행 예보에는 목적지 좌표와 조회 기간도 전송됩니다. 장소 검색 시 Open-Meteo 지오코딩에 검색어·언어 및 결과의 장소 ID를 전송합니다. 지역명 변환과 검색 실패 시 대체 검색에는 운영체제 지오코더를 사용하며, 이 서비스는 좌표 또는 검색어를 외부로 전송할 수 있습니다. 제공사·보관 기간·전송 방식은 기기와 운영체제 구현에 따라 달라 앱에서 일괄 보장하지 않습니다.
개발자 자체 위치 저장 서버는 없습니다. 그러나 외부 제공사는 요청을 처리하고 로그를 보관할 수 있습니다. Open-Meteo 공개 정책은 좌표가 포함될 수 있는 서버 로그를 90일 보관한다고 설명합니다. 따라서 위치가 요청 직후 모든 서버에서 삭제된다고 보장하지 않습니다.
4. 자동 오류·성능 진단
Firebase 초기화가 성공한 릴리스 앱에서는 Firebase Crashlytics와 Performance Monitoring(Google)이 안정성·성능 개선을 위한 진단을 자동 수집합니다. 현재 앱 안에는 진단 수집을 끄는 사용자 설정이 없습니다. 설치 식별자에 연결되는 진단이므로 완전히 익명인 정보라고 표현하지 않습니다.
오류 보고에는 오류 메시지·스택, 앱 실행 상태·기기 모델·OS·앱 버전, Crashlytics 설치 UUID와 Firebase Installation ID 및 세션 관련 식별자가 포함될 수 있습니다. 성능 진단에는 앱 시작·실행 상태·홈 날씨 로딩 시간, 캐시 사용 여부·새로고침 계기·성공/실패 상태, 기기·네트워크 정보와 설치 식별자가 포함됩니다. Firebase는 성능 이벤트의 국가를 판별하기 위해 IP 주소를 처리합니다. 광고 식별자를 이용하는 광고 추적은 구현하지 않았습니다.
닉네임·생년월일·사진·좌표를 진단의 전용 사용자 필드로 추가하는 코드는 없습니다. 기상청 및 Dart 아침 알림의 일부 실패 보고는 정해진 오류 코드로 변환합니다. 다만 다른 오류 경로는 원래 오류 객체를 보고하므로 메시지에 URL·파일 경로 같은 문맥이 포함될 가능성을 배제할 수 없습니다. 모든 오류의 개인 정보가 제거된다고 보장하지 않습니다. 앱은 API 응답 본문을 성능 진단 값으로 명시적으로 업로드하지 않습니다. 모든 날씨 HTTP 요청이 자동 성능 계측된다고 단정하지도 않습니다.
5. 선택 기능·권한·외부 요청
사진: 갤러리에서 직접 고른 한 장을 확대·편집해 앱 폴더에 저장합니다. Android의 사진/파일 선택 UI를 사용하며 전체 사진 보관함을 읽는 권한을 앱 매니페스트에서 요청하지 않습니다. iOS에서는 사진 보관함 접근 사유를 제공합니다.
공유: 사용자가 공유를 누르면 지역명·날씨·명언 등이 그려진 카드 이미지와 닉네임이 포함될 수 있는 제목을 시스템 공유 화면을 통해 선택한 앱에 전달합니다. 이 카드에는 선택한 홈 배경 사진을 넣지 않습니다. 받는 앱이 저장하거나 전송한 사본은 그 앱의 정책을 따릅니다.
음성: 사용자가 음성 기능을 켜고 재생하면 닉네임·지역명·날씨가 포함될 수 있는 문장을 시스템 TTS 엔진으로 전달합니다. 앱은 마이크로 녹음하지 않습니다. 엔진의 온라인 음성 처리 여부와 전송·보관 정책은 기기 설정 및 제공사에 따릅니다. 앱이 오프라인 음성만 강제하지 않습니다.
알림: 로컬 알림이며 자체 푸시 서버는 없습니다. Android 아침 알림은 저장된 좌표로 외부 날씨 API를 조회합니다. 알림 권한과 부팅 완료 수신은 표시 및 예약 복구에 사용합니다.
버전 확인: GitHub의 version.json을 HTTPS로 요청합니다. 닉네임·좌표·현재 앱 버전을 이 요청의 사용자 데이터로 추가하지 않지만 서버에는 연결에 필요한 IP 주소 등 요청 정보가 전달됩니다. 개인정보처리방침·스토어 링크를 열거나 평점을 남기는 경우 브라우저 또는 스토어의 정책도 적용됩니다.
결제: 코드에 결제 라이브러리가 남아 있으나 후원·테마 구매 메뉴는 비활성화되어 있으며 현재 사용자 흐름에서 결제·복원을 제공하지 않습니다.
6. 전송 보호와 외부 제공사
앱 코드에 명시된 Open-Meteo·기상청·GitHub 요청은 HTTPS를 사용합니다. Firebase도 공식 안내에 따라 HTTPS로 전송 데이터를 암호화합니다. 운영체제 지오코더와 선택한 TTS 엔진의 외부 처리·보호 방식은 제공사와 기기 구현에 따릅니다. 사용자가 선택해 공유한 뒤 대상 앱에서 이루어지는 별도 통신은 그 앱의 정책에 따릅니다.
진단은 Firebase 서비스에 전송되고 개발자가 Firebase 콘솔에서 확인할 수 있습니다. 외부 전송이 있다는 사실과 Google Play 데이터 보안 설문의 "공유" 분류는 다릅니다. 개발자 지시에 따라 처리하는 서비스 제공자에 대한 예외가 적용되더라도 해당 데이터의 수집과 처리 사실은 이 방침에서 공개합니다. Open-Meteo·공공데이터포털·운영체제 서비스에는 각 제공사의 약관이 적용되며, 일괄적으로 서비스 제공자 예외나 즉시 삭제를 약속하지 않습니다.
7. 보관·삭제·백업과 사용자 선택
로컬 설정은 사용자가 변경·삭제하거나 앱 데이터를 지울 때까지 보관될 수 있습니다. 배경 사진 삭제·교체 시 앱 사본 정리를 시도하며 원본 사진 보관함은 삭제하지 않습니다. 종료된 여행은 앱 화면에서 설정·여행을 읽거나 저장하는 경로에서 정리될 수 있으므로 종료 즉시 삭제되는 것은 아닙니다. 위젯의 백그라운드 여행 읽기는 표시할 목록만 필터링하며 저장된 여행 목록을 삭제하지 않습니다. 날씨 캐시는 36시간을 넘으면 표시 대상으로 사용하지 않지만 이 조건이 디스크 파일의 삭제를 뜻하지는 않습니다. 공유용 임시 이미지는 다음 공유 시 정리를 시도합니다.
기기 설정에서 앱 저장 데이터 삭제 또는 앱 제거로 현재 기기의 앱 사본을 삭제할 수 있습니다. 운영체제 백업·기기 이전·다른 앱에 공유된 사본은 별도로 남거나 복원될 수 있습니다. Android 매니페스트는 자동 백업을 끄거나 데이터별 제외 규칙을 지정하지 않았습니다. 실제 백업 여부는 운영체제·백업 전송 서비스·사용자 설정에 따르며, 개발자는 사용자 백업 계정에 접근하지 않습니다.
위치 권한을 철회하면 새 현재 위치 요청을 제한할 수 있으나 이미 저장한 좌표가 자동 삭제되는 것은 아닙니다. 저장 좌표로 보내는 요청도 중지하려면 앱의 아침 알림을 끄고 위젯을 제거하며 앱 데이터를 삭제하거나 앱을 제거하세요. 앱을 제거하면 향후 앱 진단 수집이 중단되지만 이미 외부로 전송된 기록은 즉시 삭제되지 않습니다.
Firebase 공개 보관 안내에 따르면 Crashlytics 오류 및 관련 식별자는 90일 후 삭제 절차가 시작됩니다. Performance는 IP와 연결된 이벤트를 30일, 설치와 연결된 또는 비식별 성능 데이터를 60일 보관한 후 삭제 절차를 시작합니다. 이는 개발자가 모든 서버·백업 사본의 삭제 완료 시점을 보장하는 내용이 아닙니다. 다른 제공사의 보관은 각 정책에 따릅니다.
개인정보 및 삭제 관련 문의는 youngjae.seo@gmail.com으로 보낼 수 있습니다. 현재 앱에는 설치 식별자별 외부 진단·API 로그 삭제를 실행하는 기능이나 검증된 개별 삭제 처리 절차가 없습니다. 문의만으로 이미 전송한 모든 정보를 식별·삭제할 수 있다고 보장하지 않습니다. 별도 앱 계정이 없으므로 계정 탈퇴 기능은 없습니다.
8. 방침 변경과 관련 정책
이 방침을 변경할 때 업데이트 날짜를 갱신합니다. 새로운 데이터 처리나 기능이 추가되는 경우 실제 동작에 맞춰 방침을 다시 검토합니다.
Open-Meteo 약관·개인정보 안내: https://open-meteo.com/en/terms
Firebase 개인정보·보관·암호화 안내: https://firebase.google.com/support/privacy
Android 백업 안내: https://developer.android.com/identity/data/autobackup
Google 개인정보처리방침: https://policies.google.com/privacy