개인정보처리방침
시행일: 2026년 10월 17일
자리났다는 운영자가 가입을 승인한 사람만 쓰는 코레일 빈자리 찾기 앱입니다. 개인 개발자 SonPang가 운영하며 광고, 광고 ID, 사용 분석 도구가 없고, 개인정보를 판매하거나 제3자와 공유하지 않습니다. 이 문서는 앱과 서버가 실제로 저장하고 보내는 정보를 적었습니다.
1. 수집하는 정보
| 종류 | 정보 | 쓰는 곳 | 보관 |
|---|---|---|---|
| 사용자 ID | 앱 아이디, 비밀번호(scrypt 해시로만 저장), 권한(회원·관리자), 승인 상태, 가입 신청 메모(선택)와 신청 시각, 로그인 세션(토큰의 해시, Google 로그인으로 만든 세션인지 여부) | 가입 신청 확인, 승인된 사용자의 로그인 | 탈퇴할 때까지. 세션은 30일 뒤 만료 |
| Google 로그인(선택) | Google 계정의 고유 식별자(sub), 연결한 시각. 로그인 요청 중 확인 코드·증명의 해시, 인증 검증용 무작위 값, 요청 기기·접속 IP | 기존 앱 계정에 Google 로그인 연결, 요청 기기의 로그인 허용 확인 | 연결 정보는 연결 해제·탈퇴까지. 인증 요청은 5분 유효하며 완료·취소 시 또는 다음 인증 요청에서 정리. Google 비밀번호·이메일·프로필·갱신 토큰은 저장하지 않음 |
| 전화번호 | 코레일 아이디(휴대전화 번호 또는 회원번호) | 사용자 대신 코레일에 로그인해 열차·좌석을 조회하고, 사용자가 요청한 빈자리를 예약 | 서버 비밀키로 암호화해 저장. 코레일 계정 연결을 해제하거나 탈퇴할 때까지, 늦어도 연결한 뒤 90일. 검색하는 동안에는 서버가 다시 시작돼도 이어 가도록 암호화한 사본을 따로 두고 72시간씩 연장 |
| 기타 개인정보 | 코레일 비밀번호 | ||
| 앱 내 검색 기록 | 검색 조건(날짜, 출발·도착역, 시간대, 인원, 좌석 조건), 진행 중·예약한 자리 찾기, 즐겨찾기, 알림 간격, 시간대 | 자리 찾기와 화면 복원 | 즐겨찾기·알림 간격은 탈퇴할 때까지, 작성 중인 검색 조건은 하루, 멈춘 자리 찾기는 72시간, 진행 중인 자리 찾기는 끝날 때까지 |
| 구매 내역 | 잡은 좌석의 예약 번호, 열차, 좌석, 결제 기한(결제는 사용자가 코레일에서 직접 합니다) | 결제 기한 알림 | 결제 기한이 지나고 5분쯤 뒤 자동 삭제 |
| 에이전트 연결 | 사용자가 앱에서 승인한 AI 에이전트의 연결 기록: 에이전트가 밝힌 이름, 돌아갈 곳(주소), 연결한 시각과 마지막으로 쓴 시각, 예약까지 맡겼는지, 연결을 요청한 브라우저의 국가(Cloudflare가 알려 준 두 글자), 연결 토큰(해시로만 저장) | 승인한 에이전트가 사용자 대신 열차·좌석·상태를 조회하고, 사용자가 허용한 경우 자리 찾기·예약을 하게 함 | 연결을 끊거나 90일 동안 쓰지 않으면 삭제, 탈퇴하면 바로 삭제. 승인하지 않은 연결 요청은 10분 뒤 만료되고 곧 지워짐 |
| 앱 내 알림 | 앱 알림함의 알림 내용 | 자리 찾기·예약 소식 전달 | 탈퇴할 때까지 |
| 기기 ID | 휴대폰 알림 토큰(Firebase Cloud Messaging), 계정당 최대 10대 | 휴대폰 알림 보내기. 사용자가 알림을 켤 때만 등록 | 서버 비밀키로 암호화해 저장. 탈퇴할 때까지 |
| 진단 | 연결 실패 기록(시각, 요청 종류와 경로, 원인, 온라인 여부, 화면 표시 여부, 걸린 시간) | 휴대폰과 서버 사이의 연결 문제 진단 | 휴대폰에 최근 50건까지 두었다가 다음에 연결되면 서버 로그로 올리고 휴대폰에서 지움. 서버 로그 보관은 아래와 같음 |
| 보안 | IP 주소(Cloudflare가 넘겨준 접속 IP), 앱 아이디, 내부 사용자 번호 | 로그인 시도·요청 횟수 제한 | 해시로만 저장하고 1~5분 뒤 만료 |
| 서버 로그 | 요청 오류, 자리 찾기 진행, 내부 사용자 번호, 위의 연결 실패 기록 | 장애 확인 | 10MB 파일 3개를 돌려 쓰며 오래된 것부터 지우고, 서버를 업데이트할 때 그 전 로그를 지움. 비밀번호는 남기지 않음 |
| 접속 기록 | 접속 IP, 시각, 요청 경로, 브라우저·앱 정보 | 서버 앞단의 프록시와 Cloudflare가 연결 문제·공격 확인용으로 남김 | 프록시 로그를 돌려 쓰며 덮어쓸 때까지, Cloudflare 기록은 Cloudflare 정책에 따름 |
휴대폰에는 로그인 세션 토큰(Android Keystore 키로 암호화), 화면 테마, 최근에 조회한 구간, 위의 연결 실패 기록만 남습니다. 앱에서 로그아웃하면 세션 토큰과 최근 구간을 지웁니다. 로그인 화면의 체험하기는 앱 안의 샘플 데이터만 쓰고 서버나 코레일에 아무것도 보내지 않으며, 체험 중에 본 내용은 체험을 끝내면 사라집니다.
2. 공유와 처리 위탁
개인정보를 제3자와 공유하거나 판매하지 않습니다. 아래는 사용자가 요청한 일을 하거나 서비스를 전달하기 위해서만 정보를 받습니다.
- 코레일(한국철도공사): 사용자가 요청한 조회·예약을 하려고 그 사용자의 코레일 아이디·비밀번호와 검색 조건을 코레일 서버로 보냅니다. 다른 목적으로는 보내지 않습니다.
- Google 로그인(선택): 사용자가 구글 로그인을 선택하면 Google의 외부 브라우저 인증 페이지를 엽니다. 서버는 일회용 인증 코드를 Google과 교환해 계정 식별자를 확인합니다. 코레일 로그인 정보·검색·예약 정보는 보내지 않습니다.
- Google Firebase Cloud Messaging(처리 위탁): 휴대폰 알림을 켠 경우 알림 토큰과 "새 알림이 왔어요" 문구, 알림 번호만 보냅니다. 알림 내용은 보내지 않고 앱 알림함에서 봅니다.
- 사용자가 연결한 AI 에이전트: 사용자가 앱에서 승인한 에이전트에게, 그 에이전트가 요청한 열차·좌석·상태·즐겨찾기 정보를 보냅니다. 에이전트 쪽에서 그 정보를 어떻게 다루는지는 그 서비스의 정책을 따릅니다. 연결은 앱에서 언제든 끊을 수 있습니다.
- Cloudflare(처리 위탁, 네트워크): 앱과 서버 사이의 연결을 중계합니다. 접속 IP와 요청이 Cloudflare를 거칩니다.
법령에 따른 요구가 있으면 그 범위에서만 따릅니다.
3. 저장 위치와 보호
서버 데이터는 운영자가 관리하는 서버의 Redis(자리 찾기·코레일 로그인 정보)와 SQLite(계정·알림·요청 횟수 제한)에 저장합니다. 모든 통신은 HTTPS로 암호화됩니다. 코레일 비밀번호와 알림 토큰은 서버 비밀키로 암호화해 저장하고, 앱 비밀번호와 세션 토큰은 해시로만 저장합니다.
4. 계정과 데이터 삭제
앱에서 탈퇴
승인 대기·거절 화면에서는 회원 탈퇴를 바로 누르고 앱 비밀번호를 입력합니다.
- 앱 아래쪽의 설정을 누릅니다.
- 맨 아래 계정 → 회원 탈퇴를 누릅니다.
- 본인 확인을 위해 앱 비밀번호를 한 번 더 입력하고 탈퇴하기를 누릅니다.
탈퇴하면 진행 중인 자리 찾기와 예약해 둔 자리 찾기를 멈추고, 아래 정보를 곧바로 지운 뒤 로그아웃합니다. 결제를 기다리는 예약이 있으면 탈퇴하지 않고 알려 드려요. 코레일 앱에서 결제하거나 앱에서 예약을 취소한 뒤 다시 탈퇴해 주세요. 관리자 계정은 마지막 하나일 때 탈퇴할 수 없어요.
앱 없이 요청
- 앱 운영자에게 앱 아이디를 알려 탈퇴를 요청해 주세요. 비밀번호나 코레일 계정 정보는 보내지 마세요.
- 본인 확인: 운영자가 가입 신청을 확인할 때 사용한 연락처(메신저·전화 등)로 그 아이디의 주인이 맞는지 확인합니다. 확인되지 않으면 지우지 않습니다.
- 확인되면 앱에서 탈퇴할 때와 같은 방법으로 지우고, 지체 없이(늦어도 요청을 받은 날부터 30일 안에) 처리 결과를 알려 드립니다.
지우는 정보
- 앱 계정: 앱 아이디, 비밀번호 해시, 권한·승인 상태, 가입 신청 메모·시각, 로그인 세션, 연결한 Google 계정 식별자와 로그인 요청
- 연결한 코레일 아이디(휴대전화 번호 또는 회원번호)와 비밀번호(암호화된 것)
- 검색 조건과 자리 찾기 기록(진행 중·예약한·멈춘 것), 즐겨찾기, 알림 간격, 시간대
- 서버가 들고 있는 예약 기록(예약 번호, 열차, 좌석, 결제 기한)
- 앱 알림함의 알림, 보내지 못한 알림, 휴대폰 알림 토큰(기기 ID)
- 이 휴대폰에 남은 연결 실패 기록(진단 정보)과 최근 조회 구간
- 에이전트 연결: 연결 기록과 그 토큰, 이 계정이 확인하던 연결 요청
- 이 계정의 요청 횟수 제한 기록
남는 정보
- 검색이 끝났다는 표시(끝난 이유·시각, 개인정보 없음): 서버 업데이트가 진행 중인 검색을 잃었는지 확인하는 데 쓰며 7일 뒤 자동으로 지워집니다.
- 서버 로그(내부 사용자 번호, 요청 오류, 앱이 올린 연결 실패 기록): 줄 단위로 따로 지우지 않습니다. 10MB 파일 3개(최대 30MB)를 돌려 쓰며 넘치면 오래된 것부터 지워지고, 서버를 업데이트할 때(컨테이너를 새로 만들 때) 그 전 로그가 모두 지워집니다. 보관 기간을 날짜로 정해 두지는 않았습니다.
- 접속 기록(접속 IP, 시각, 요청 경로): 서버 앞단의 프록시가 로그를 돌려 쓰며 덮어쓸 때까지, Cloudflare가 남긴 것은 Cloudflare 정책에 따릅니다.
- 데이터베이스 파일: 지운 기록은 서비스에서 곧바로 읽을 수 없게 되지만, Redis·SQLite 파일 안에서 실제로 덮어써지기까지 시간이 걸릴 수 있습니다. 사용자 데이터를 따로 백업해 두지는 않습니다(배포 때 만드는 서버 사본에는 프로그램과 설정만 들어갑니다).
- 코레일의 기록: 코레일에서 이미 예약·결제한 내역은 코레일의 기록이라 이 앱에서 지울 수 없습니다. 코레일에서 확인해 주세요.
- 법령 때문에 따로 보관하는 정보는 없습니다.
일부만 지우기
계정을 두고 일부만 지울 수도 있습니다.
- 코레일 계정 정보: 설정 → 코레일 계정 → 코레일 계정 연결 해제. 진행 중인 자리 찾기를 멈추고 서버의 코레일 아이디·비밀번호와 작성 중인 검색 조건을 지웁니다.
- 즐겨찾기: 즐겨찾기 화면에서 각 항목의 삭제.
- 진행 중·예약한 자리 찾기: 홈이나 검색 상세의 그만 찾기. 그 검색 기록과 검색용 코레일 로그인 사본을 지웁니다.
- Google 로그인 연결: 설정 → 구글 계정 연결됨 → 연결 해제. 확인 창에서 연결 해제를 누르면 연결 정보와 진행 중인 Google 로그인 요청을 지우고 다른 기기의 앱 로그인도 해제합니다(Google로 로그인한 기기에서 해제하면 그 기기도 로그아웃).
- 에이전트 연결: 설정 → 에이전트 연결에서 각 연결의 연결 끊기. 그 연결 기록과 토큰을 바로 지우고, 그 에이전트는 더 이상 조회·예약할 수 없습니다.
- 휴대폰 알림: Android 설정 → 앱 → 자리났다 → 알림에서 끕니다.
- 이 휴대폰에 남은 정보(로그인, 최근 조회 구간): 앱에서 로그아웃하거나 앱을 지우면 지워집니다.
같은 내용이 계정·데이터 삭제에 있습니다.
5. 이용자의 권리
저장된 정보의 열람, 정정, 삭제, 처리 정지를 요청할 수 있습니다. 아래 연락처로 알려 주세요.
6. 문의
운영: SonPang
개인정보 문의와 탈퇴 요청은 앱의 설정 → 회원 탈퇴에서 하거나, 앱 운영자에게 앱 아이디와 함께 알려 주세요. 비밀번호나 코레일 계정 정보는 보내지 마세요.
7. 바뀌는 경우
저장하거나 보내는 정보가 바뀌면 이 문서를 고치고 시행일을 새로 적습니다.