개인정보처리방침 (초안 v1)

아래 내용을 읽은 후 회원가입 페이지로 돌아가 동의해주세요.

# klboy.dev 개인정보처리방침

> ⚠️ **DRAFT v1 — 법무 검토 필수**
> 본 문서는 LLM이 생성한 초안이며 법적 검토를 거치지 않았습니다.
> 서비스 공개 전 한국 개인정보보호법(PIPA) 전문가의 검토를 받으세요.

**시행일**: 2026-05-28
**최종 개정**: 2026-05-28

---

## 1. 처리하는 개인정보의 항목

### 1.1 회원가입 시 수집 정보

- 사원번호 또는 식별 번호
- 이름
- 비밀번호 (bcrypt 해시 방식으로 암호화하여 저장)
- 이메일 주소 (선택)

### 1.2 운영사 계정 위탁 시 수집 정보

- 코레일 회원번호
- 코레일 계정 비밀번호 (AES-256-GCM으로 암호화하여 저장)
- SRT 회원번호
- SRT 계정 비밀번호 (AES-256-GCM으로 암호화하여 저장)

### 1.3 서비스 이용 중 자동 수집 정보

- 디바이스 ID (기기 식별)
- Firebase Cloud Messaging (FCM) 토큰 (푸시 알림 전송용)
- 접속 IP 주소
- User-Agent (브라우저·앱 정보)
- 접속 일시, 접속 빈도
- 채팅 대화 기록 (Claude API와의 상담 내용)
- 좌석 알림 검색 기록 (열차번호, 출발역, 도착역, 검색 일시)
- 예약·취소·HOLD 기록 (audit log)
- 서비스 정책 위반 기록 (정책 게이트 트리거 로그)

### 1.4 선택적 수집 정보

- 고객 문의 및 피드백

---

## 2. 개인정보 처리의 목적

본 서비스는 다음의 목적을 위해 개인정보를 수집·처리합니다.

| 목적 | 수집 정보 | 처리 범위 |
|------|---------|---------|
| 회원 식별 및 인증 | 사원번호, 이름, 비밀번호 | 로그인, 세션 유지 |
| 운영사 자격증명 위임 검증 | 코레일/SRT 회원번호·비밀번호 | 좌석 검색·조회·예약·취소 |
| Claude 챗봇 상담 | 채팅 기록 | 자연어 기반 예약 안내 |
| 푸시 알림 전송 | FCM 토큰 | Firebase를 통한 실시간 좌석 알림 |
| 부정 이용 방지 | audit log, IP, 접속 빈도 | 자동 정책 게이트 (매크로/암표 거래 차단) |
| 서비스 개선 | 사용 통계 (집계된 데이터) | 기능 업데이트, 성능 최적화 |
| 법적 의무 이행 | 감사 기록 | 분쟁 해결, 수사 협조 |

---

## 3. 개인정보의 처리 및 보유 기간

| 정보 항목 | 보유 기간 | 삭제 방법 |
|----------|---------|---------|
| 회원 정보 (사원번호, 이름, 비밀번호) | 회원 탈퇴 시까지 | 즉시 완전 삭제 |
| 운영사 자격증명 (코레일/SRT 회원번호·비밀번호) | 90일 미사용 시 자동 삭제 | 암호화된 상태에서 삭제; 별도 재동의 갱신 불가 |
| 채팅 기록 | 365일 | 자동 삭제 |
| 좌석 알림 검색 기록 | 365일 | 자동 삭제 |
| Audit log (예약·취소·정책 위반) | 1년 | 자동 삭제 |
| FCM 토큰 | 기기 미등록 시까지 또는 회원 탈퇴 시 | 즉시 삭제 |
| 접속 로그 (IP, User-Agent) | 90일 | 자동 삭제 |

**예외**: 관련 법령의 거짓 정보 조사, 사기 수사 등에 필요한 경우 법정 보유 기간 동안 보유할 수 있습니다.

---

## 4. 개인정보의 제3자 제공

본 서비스는 회원의 동의 없이 개인정보를 제3자에게 제공하지 않습니다.

**단, 다음의 경우는 예외입니다:**

- 법령에 의한 의무 이행 (경찰 수사, 법원 호출, 세무 조사 등)
- 회원이 명시적으로 동의한 경우

---

## 5. 개인정보 처리 위탁

본 서비스는 다음과 같이 개인정보 처리를 외부 업체에 위탁합니다.

### 5.1 Anthropic PBC (미국)

| 항목 | 내용 |
|------|------|
| 위탁사 | Anthropic PBC |
| 위탁 업무 | Claude API를 통한 챗봇 상담 응답 생성 |
| 보유 기간 | 채팅 기록 365일 (Anthropic의 별도 보유 정책 준수) |
| 특이사항 | 운영사 자격증명은 절대 위탁하지 않음 |
| 법적 근거 | Anthropic 서비스 약관, 클라우드 SLA |

**참고**: 채팅 메시지는 Anthropic의 서버에 일시 저장되어 Claude 응답 생성에 사용되며, Anthropic의 독립적인 개인정보처리방침에 따릅니다.

### 5.2 Google LLC (미국 / 한국 region)

| 항목 | 내용 |
|------|------|
| 위탁사 | Google LLC |
| 위탁 업무 | Firebase Cloud Messaging (FCM) 푸시 토큰 관리 및 알림 전송 |
| 보유 기간 | 회원 탈퇴 시까지 또는 기기 미등록 시 |
| 특이사항 | 암호화된 토큰만 전달; 운영사 자격증명 미포함 |
| 법적 근거 | Google Cloud Platform 이용약관, 데이터 처리 계약 |

---

## 6. 이용자의 권리·의무 및 행사 방법

### 6.1 회원의 권리

회원은 다음의 권리를 행사할 수 있습니다.

① **열람권**: 본인의 개인정보 열람 및 사본 요청
② **정정권**: 잘못된 정보의 수정 요청
③ **삭제권(잊힐 권리)**: 개인정보 삭제 요청
④ **처리정지권**: 정보 처리의 일시 중단 요청

### 6.2 권리 행사 방법

위의 권리를 행사하려면 다음 연락처로 서면 요청을 하시기 바랍니다.

- **이메일**: [email protected] (주 채널)
- **주소**: 비공개 (이메일 요청 시 서면 회신)
- **전화**: 비공개 (긴급 사안은 이메일에 "긴급" 표시)

요청을 받은 후 운영자는 10개 업무일 이내에 응답합니다.

### 6.3 법적 제한

다음의 경우 삭제 요청이 제한될 수 있습니다.

- 법령에서 보존을 요구하는 기간 중
- 진행 중인 분쟁 해결에 필요한 기간 중
- 회원이 운영사 계정에 대한 미결제 채무가 있을 경우

---

## 7. 개인정보의 파기 절차 및 방법

### 7.1 파기 절차

회원이 탈퇴하거나 보유 기간이 만료된 경우, 개인정보는 다음과 같이 파기됩니다.

1. 파기 대상 정보 식별
2. 암호화된 정보의 경우 암호 해제 후 파기 (또는 암호화된 상태에서 파기)
3. 파기 로그 기록
4. 파기 완료 확인

### 7.2 파기 방법

| 정보 유형 | 파기 방법 |
|----------|---------|
| 디지털 파일 (데이터베이스) | 완전 삭제 (secure deletion) 또는 cryptographic erasure |
| 운영사 자격증명 | AES-256-GCM 암호화된 상태에서 데이터베이스 레코드 삭제 |
| 채팅 기록 | 데이터베이스 truncate 또는 논리적 삭제 |
| 감사 로그 | 암호화된 상태에서 아카이브 저장소에서 삭제 |

---

## 8. 개인정보의 안전성 확보 조치

### 8.1 기술적 조치

① **전송 보안**
- 모든 통신은 HTTPS/TLS 1.2 이상으로 암호화
- 운영사 자격증명은 암호화된 채널을 통해서만 전송
- HTTP 접속은 자동으로 HTTPS로 리다이렉트

② **저장 보안**
- 운영사 자격증명: AES-256-GCM 대칭키 암호화
- 회원 비밀번호: bcrypt(salt round 12) 단방향 해싱
- 앱 JWT 토큰: HS256 서명 방식. 액세스 토큰 30분 만료, 리프레시 토큰 30일 만료 (리프레시 토큰은 SHA-256 해시로만 서버에 저장)

③ **접근 제어**
- 역할 기반 접근 제어 (RBAC)
- 운영자 페이지: Cloudflare Access OTP 다단계 인증
- 분산 lease를 통한 동시 접근 차단 (동일 계정의 중복 세션 불가)

④ **감사 추적**
- 모든 민감 작업(예약, 취소, 자격증명 변경, 로그인)은 audit log에 기록
- 로그에는 작업 시간, 수행자, 대상 정보, 결과 포함

⑤ **정책 게이트 (자동 감지)**
- 매크로·자동화 탐지: 비정상적인 요청 빈도, 패턴 분석
- 암표 거래 방지: 동시 다중 좌석 확보, 역거래 비율 모니터링
- 타인 계정 사용 감지: 자격증명 변경 빈도, 지역·시간대 이상 감지

### 8.2 관리적 조치

① **운영 체계**
- 단일 운영자 (ssatem)에 의한 집중식 관리
- 정책 변경 시 문서화 및 버전 관리
- 정기적인 로그 검토 및 이상 활동 모니터링

② **접근권한 제한**
- 운영자만이 운영사 자격증명에 접근 가능
- 회원은 본인의 자격증명만 수정·삭제 가능
- 개발자 디버깅 시에도 암호화된 상태에서만 접근

③ **종사자 교육**
- 운영자에 대한 정보보호 의무 교육
- 비밀유지 서약

④ **사고 대응 계획**
- 개인정보 유출 의심 시 즉시 격리 및 조사
- 영향받은 회원에게 최대한 빨리 통지
- 관련 기관 신고 (필요 시)

### 8.3 물리적 조치

① **운영 환경**
- 운영 서버: 단일 Windows 호스트 (DESKTOP-GOHE3EH, 별도 VPC)
- nginx 리버스 프록시: 별도 박스로 분리
- 운영 환경 물리 접근: 제한됨

② **네트워크 보안**
- 운영 서버는 특정 IP(운영자 본 PC)에서만 관리 가능
- SSH 공개키 인증 (암호 없음)
- VPN 또는 Cloudflare Access를 통한 접근 제한

③ **백업 및 복구**
- 정기적인 데이터 백업
- 백업본도 운영 환경과 동등한 보안 수준 유지

---

## 9. 개인정보 보호책임자

| 항목 | 내용 |
|------|------|
| 이름 | ssatem |
| 직책 | 서비스 운영자 겸 개인정보 보호책임자 |
| 이메일 | [email protected] |
| 전화 | 비공개 (이메일 우선) |
| 주소 | 비공개 (이메일 요청 시 서면 회신) |

개인정보 처리 관련 문의 사항은 위 연락처로 문의하시기 바랍니다.

---

## 10. 자동수집장치(쿠키 등)

### 10.1 쿠키 사용

본 서비스는 사용자 경험 개선을 위해 쿠키를 사용합니다.

| 쿠키명 | 목적 | 저장 방식 | 만료 시간 |
|-------|------|---------|---------|
| train_site_session | 로그인 세션 유지 (서버 측 세션 저장소를 가리키는 무작위 식별자) | HttpOnly, Secure, SameSite=Lax | 14일 (이용 시 자동 연장되는 rolling 방식) |

세션 쿠키 자체에는 식별자(무작위 32바이트)만 담기며, 실제 세션 정보(회원 식별자, 만료 시각, IP)는 서버 데이터베이스에 저장됩니다. 따라서 별도의 위변조 방지 토큰을 쿠키에 두지 않습니다.

### 10.2 쿠키 거부

사용자는 브라우저 설정을 통해 쿠키를 거부할 수 있으나, 거부 시 로그인이 불가능합니다.

---

## 11. 권익침해 구제 방법

개인정보 침해로 인한 피해를 입은 경우, 다음 기관에 신고할 수 있습니다.

| 기관 | 연락처 |
|------|--------|
| **개인정보보호위원회** | https://www.pipc.go.kr (민원 접수) |
| **개인정보침해신고센터** | 118 (한국인터넷진흥원) |
| **서울경찰청 사이버수사대** | 1357 (사이버 범죄 신고) |

---

## 12. 시행일 및 변경 이력

### 12.1 시행일

본 개인정보처리방침은 2026-05-28부터 시행됩니다.

### 12.2 변경 이력

| 개정일 | 주요 내용 |
|--------|---------|
| 2026-05-28 | 최초 수립 (DRAFT v1) |

개정 시 본 방침의 하단에 개정일과 주요 내용을 추가합니다.

---

**이 문서의 해석에 관해 질문이 있을 경우, 개인정보 보호책임자에게 문의하시기 바랍니다.**
동의하려면 회원가입 페이지로 돌아가세요.