운영자(이하 "운영자")는 편잇 서비스(이하 "서비스")를 운영하면서 이용자의 개인정보를 관련 법령에 따라 처리합니다. 이 방침은 서비스가 어떤 정보를 어떻게 처리하는지 설명합니다.
1. 처리하는 개인정보 항목
서비스는 이메일, 실명, 전화번호, 생년월일, 프로필 사진을 저장하지 않습니다. 실제로 저장하는 항목은 아래와 같습니다.
1.1 회원 가입·로그인
| 항목 | 내용 |
|---|---|
| 소셜 로그인 식별자 | 카카오가 발급한 이용자 고유 ID, 연결 일시 |
| 닉네임 | 이용자가 정한 닉네임, 마지막 변경 일시 |
| 회원 상태 | 회원 번호, 권한(일반·관리자), 상태(정상·정지·탈퇴), 가입 일시, 탈퇴 일시 |
- 카카오 로그인은 이용자 고유 ID만 받아 저장하며 이메일을 받지 않도록 설정되어 있습니다.
1.2 서비스 이용 과정
| 항목 | 내용 |
|---|---|
| 관심 대학 | 이용자가 등록한 관심 대학과 등록 일시 |
| 게시글 | 게시판, 제목, 본문, 관련 대학, 상태(게시·숨김·삭제), 조회수·추천수·댓글수, 작성·수정 일시 |
| 댓글 | 본문, 상위 댓글, 상태, 작성·수정 일시 |
| 추천 | 추천한 게시글과 일시 |
| 업로드 이미지 | 이미지 파일 자체, 저장 키(무작위 UUID 파일명), 형식, 크기, 업로드한 회원, 업로드 일시 |
| 신고 | 신고자, 신고 대상(게시글·댓글·회원), 사유, 상세 내용(최대 500자), 처리 상태·처리자·처리 일시 |
| 제재 | 제재 대상 회원, 종류(경고·정지·무기한 정지), 사유(최대 500자), 시작·종료 일시, 제재한 관리자 |
| 제재 회피 방지 정보 | 정지 중 탈퇴한 경우, 소셜 로그인 식별자를 비밀 키로 HMAC-SHA256 처리한 해시값과 만료 일시 (원래 식별자와 회원 번호는 함께 저장하지 않음) |
1.3 푸시 알림(이용자가 켠 경우)
| 항목 | 내용 |
|---|---|
| 푸시 구독 정보 | 브라우저 푸시 서비스의 구독 주소(endpoint), 암호화 키(p256dh, auth), 브라우저 정보(User-Agent, 최대 500자), 구독 일시, 마지막 발송 성공 일시 |
| 알림 설정 | 새 모집요강 알림, 일정 리마인더 알림 수신 여부 |
| 발송 기록 | 알림 종류, 대상 모집요강·일정 번호, 발송 시도 일시 |
1.4 자동으로 생성·처리되는 정보
- 세션 쿠키(`JSESSIONID`): 로그인 상태 유지. 자세한 내용은 7조를 참고하세요.
- CSRF 쿠키(`XSRF-TOKEN`): 위조 요청 방지용 토큰.
- IP 주소·세션 ID(검색 요청 제한용): 검색 남용을 막기 위해 일정 시간(기본 60초) 동안 요청 수를 셉니다. 이 값은 서버 메모리에만 잠시 있고 데이터베이스에 저장하지 않으며, 시간 창이 지나면 지워집니다.
- 접속 로그: 서버는 접속 기록(IP 주소 등)을 남기며 3개월 동안 보관합니다.
2. 수집 방법
- 카카오 로그인 시 카카오로부터 고유 ID를 받습니다.
- 이용자가 가입·닉네임 변경·글쓰기·이미지 업로드·신고·알림 설정 때 직접 입력합니다.
- 푸시 알림을 켜면 브라우저가 구독 정보를 만들고, 웹 화면이 이를 브라우저 정보와 함께 서버로 보냅니다.
3. 처리 목적
| 목적 | 사용하는 항목 |
|---|---|
| 회원 식별, 로그인 | 소셜 로그인 식별자, 회원 상태, 세션 쿠키 |
| 커뮤니티 이용자 표시와 사칭 방지 | 닉네임, 닉네임 변경 일시 |
| 관심 대학·캘린더 등 맞춤 기능 | 관심 대학 |
| 커뮤니티 운영(게시·추천·이미지 표시) | 게시글, 댓글, 추천, 업로드 이미지 |
| 신고 처리, 이용 제한, 제재 회피 방지 | 신고·제재 기록, 제재 회피 방지 해시 |
| 푸시 알림 발송, 중복 발송 방지 | 푸시 구독 정보, 알림 설정, 발송 기록 |
| 보안(위조 요청 방지, 검색 남용 방지) | CSRF 쿠키, IP·세션 ID(메모리) |
4. 보유 기간
| 항목 | 보유 기간 |
|---|---|
| 소셜 로그인 식별자 | 탈퇴 즉시 삭제 |
| 닉네임 | 탈퇴 즉시 삭제 |
| 회원 번호·권한·상태·가입 일시·탈퇴 일시·닉네임 마지막 변경 일시 | 게시글·댓글의 작성자 표시를 위해 탈퇴 후에도 "탈퇴" 상태로 계속 보관. 닉네임·소셜 로그인 식별자 등 식별 정보는 남지 않음 |
| 게시글·댓글 | 탈퇴해도 삭제되지 않고 작성자가 "탈퇴한 사용자"로 표시됨. 이용자가 직접 삭제하면 화면에서 바로 사라지고, 삭제 후 30일이 지난 뒤 매일 실행되는 정리 작업에서 게시글은 제목과 본문을, 댓글은 본문을 영구 삭제. 댓글 구조 유지를 위해 게시물 자리와 "삭제됨" 표시는 남음 |
| 업로드 이미지 | 게시글에 연결되지 않은 이미지: 업로드 후 24시간이 지나면 자동 삭제(1시간마다 확인). 삭제된 게시글에 연결된 이미지: 글 삭제 후 30일이 지난 뒤 매일 실행되는 정리 작업에서 파일과 기록을 함께 삭제(파일 삭제에 실패하면 다음 주기에 다시 시도). 삭제되지 않은 게시글의 이미지는 글이 있는 동안 보관 |
| 추천 | 이용자가 직접 취소 가능. 탈퇴해도 삭제되지 않음 |
| 관심 대학·알림 설정·푸시 발송 기록 | 이용자가 직접 해제·변경 가능. 탈퇴 즉시 삭제 |
| 신고·제재 기록 | 아래 표 참고. 매일 자동 삭제 |
| 제재 회피 방지 해시 | 기간 정지 중 탈퇴: 정지 종료일까지. 무기한 정지 중 탈퇴: 탈퇴 시점부터 1년까지. 만료 후 매일 자동 삭제 |
| 푸시 구독 정보 | 알림 끄기·로그아웃 시 해당 브라우저 구독 삭제(로그아웃 시 삭제는 실패해도 로그아웃은 진행됨), 탈퇴 시 전부 삭제, 푸시 서비스가 구독 만료를 알리면 삭제, 회원당 10개를 넘으면 오래된 것부터 삭제 |
| 세션·CSRF 쿠키 | 7조 참고 |
| 검색 요청 제한용 IP·세션 ID | 메모리에서 시간 창(기본 60초) 경과 후 삭제 |
| 접속 로그 | 3개월 보관 후 삭제 |
| 백업 | 7일 순환 보관(7일이 지난 백업은 삭제) |
신고·제재 기록의 보관 기간은 다음과 같습니다.
| 구분 | 신고 | 제재 |
|---|---|---|
| 탈퇴 회원 관련(그 회원이 한 신고, 그 회원이나 그 회원의 게시글·댓글에 대한 신고, 그 회원이 받은 제재) | 탈퇴 후 1년 | 탈퇴 후 1년 |
| 그 외 | 처리(처리 완료·기각) 후 1년. 처리 전 신고는 삭제하지 않음 | 종료(만료·조기 해제) 후 1년. 진행 중인 제재는 삭제하지 않음. 경고는 종료 시각이 없어 발급 후 1년. 무기한 정지는 해제되기 전까지 보관 |
관련 법령에서 보관을 요구하는 경우 그 기간 동안 보관합니다. [확인 필요: 적용되는 법정 보관 의무 여부]
5. 개인정보 처리 위탁과 제3자 제공
운영자는 이용자의 개인정보를 제3자에게 판매하거나 제공하지 않습니다. 다만 서비스 제공을 위해 아래 외부 서비스를 이용합니다. [확인 필요: 각 항목이 법령상 '처리 위탁'인지 '제3자 제공'인지 분류]
| 외부 서비스 | 처리 내용 |
|---|---|
| 카카오 | 카카오 로그인 인증 |
| Cloudflare(R2) | 운영 환경에서 커뮤니티 업로드 이미지 저장·공개 URL 제공 |
| 브라우저 푸시 서비스(Google FCM, Mozilla, Microsoft, Apple 등) | 이용자 브라우저가 정한 푸시 서비스를 통해 암호화된 알림 전달 |
| Oracle Cloud | 서비스 서버·데이터베이스 운영(일본 오사카 리전, 배포 예정) |
Google Gemini(모집요강 추출): 서비스의 모집요강 수집기는 대학이 공개한 모집요강 PDF와 추출 지시문만 Gemini에 보냅니다. 수집기는 회원·게시글·푸시 정보를 조회하지 않으며, 이용자 개인정보를 Gemini에 보내지 않습니다.
6. 국외 이전
위 외부 서비스 중 일부는 해외에 서버를 두고 있어 개인정보가 국외로 이전될 수 있습니다.
| 이전받는 자 | 국가 | 시기·방법 | 항목 | 이용 목적 | 보유 기간 |
|---|---|---|---|---|---|
| Oracle Cloud | 일본(오사카 리전, 배포 예정) | 서비스 이용 시 네트워크로 서버에 전송 | 1조의 모든 항목 | 서비스 서버·데이터베이스 운영 | 4조의 기간 |
| Cloudflare(R2) | [미정: R2 저장 위치] | 이미지 업로드 시 네트워크 전송 | 업로드 이미지(8조에 따라 메타데이터 제거 후) | 이미지 저장·제공 | 4조 이미지 기간 |
| Google(Gemini) | [미정: 처리 국가] | 모집요강 수집 시 네트워크 전송 | 대학이 공개한 모집요강 PDF와 추출 지시문만 보냄. 이용자 개인정보는 보내지 않음 | 모집요강 정보 추출 | [미정: Google 측 보유 기간] |
| 브라우저 푸시 서비스 | [미정: 국가] | 알림 발송 시 네트워크 전송 | 암호화된 알림 내용, 구독 주소 | 푸시 알림 전달 | [미정: 푸시 서비스 측 보유 기간] |
- 거부 방법과 거부 시 영향: [미정: 국외 이전 거부 방법·거부 시 영향]
7. 쿠키
| 쿠키 | 용도 | 속성 |
|---|---|---|
JSESSIONID | 로그인 세션 유지 | HttpOnly, SameSite=Lax, 운영 환경 Secure, 도메인 pyeonit.com, 최대 1년. 로그아웃·탈퇴 시 세션 종료 |
XSRF-TOKEN | 위조 요청(CSRF) 방지 | SameSite=Lax. 웹 화면이 읽어야 하므로 HttpOnly가 아님 |
- 세션 유지 시간: 로그인한 회원은 마지막 접속 후 90일 동안 접속하지 않으면 로그아웃됩니다(접속할 때마다 다시 90일). 로그인 전 세션(카카오 로그인 과정·가입 대기)은 2시간입니다. 세션 쿠키는 브라우저를 닫아도 최대 1년 동안 남으며, 로그아웃·탈퇴 시 바로 끝납니다. 서버를 다시 시작할 때 로그인 상태를 이어 가기 위해 세션 정보를 서버에 파일로 잠시 보관합니다.
- 광고·분석용 쿠키는 쓰지 않습니다. 방문 수와 페이지 조회 집계에는 쿠키를 쓰지 않는 Cloudflare Web Analytics를 씁니다. 방문한 페이지 주소, 유입 경로, 브라우저·기기 종류, 국가, 페이지 로딩 속도를 개인을 식별하지 않는 통계로만 집계하며, 이 정보로 개별 이용자를 추적하지 않습니다.
- 거부 방법: 브라우저 설정에서 쿠키를 차단할 수 있습니다. 다만 두 쿠키는 로그인과 글쓰기에 꼭 필요하므로, 차단하면 로그인이 필요한 기능을 쓸 수 없습니다. 비로그인 열람은 가능합니다.
8. 이미지 업로드 시 유의사항
- JPEG, PNG, WebP, GIF만 올릴 수 있고, 한 장 최대 5MB, 게시글당 최대 10장입니다.
- 파일 이름은 서버가 무작위 이름(UUID)으로 바꾸므로 원래 파일 이름은 저장되지 않습니다.
- 올린 이미지는 로그인 없이 누구나 볼 수 있는 공개 주소로 제공됩니다.
- 서비스는 이미지를 저장하기 전에 EXIF, 촬영 위치(GPS) 등 메타데이터를 제거합니다(JPEG·PNG·WebP·GIF 모두, 이미지를 다시 압축하지 않음). 제거에 실패하면 업로드가 거부되고 원본은 저장되지 않습니다.
- 사진 방향 정보도 함께 지워지므로 일부 사진이 회전된 채로 보일 수 있습니다.
- 색상 프로필(ICC)도 지워지므로 색이 원본과 다르게 보일 수 있습니다.
- 메타데이터는 지워지지만 사진 속 내용(얼굴, 간판, 창밖 풍경 등)은 지워지지 않습니다. 위치나 신원이 드러나는 사진은 올리기 전에 확인해 주세요.
- 본인이나 다른 사람의 얼굴, 수험표, 성적표, 연락처 등 개인정보가 보이는 이미지는 올리지 마세요.
9. 파기 절차와 방법
- 보유 기간이 끝났거나 처리 목적을 달성한 정보는 지체 없이 파기합니다.
- 데이터베이스의 정보는 복구할 수 없도록 삭제합니다. 탈퇴 시 닉네임은 지우고 소셜 로그인 식별자, 관심 대학, 알림 설정, 푸시 구독·발송 기록은 삭제합니다.
- 이미지 파일은 저장소(Cloudflare R2)에서 객체를 삭제합니다.
- 자동 파기:
- 게시글에 연결되지 않은 이미지: 업로드 후 24시간(1시간마다 확인)
- 삭제된 게시글의 제목과 본문, 삭제된 댓글의 본문: 삭제 후 30일(매일)
- 삭제된 게시글에 연결된 이미지 파일과 기록: 글 삭제 후 30일(매일, 파일 삭제 실패 시 다음 주기에 재시도)
- 만료된 제재 회피 방지 해시(매일)
- 탈퇴 회원 관련 신고·제재 기록: 탈퇴 후 1년(매일)
- 그 외 신고·제재 기록: 신고는 처리 후 1년, 제재는 종료 후 1년(경고는 발급 후 1년)(매일)
- 백업본은 7일 순환 주기에 따라 삭제됩니다.
10. 이용자의 권리와 행사 방법
이용자는 언제든지 다음 권리를 행사할 수 있습니다.
| 권리 | 방법 |
|---|---|
| 열람 | 내 정보 화면에서 닉네임, 연결된 로그인 수단, 회원 상태, 정지 종료일 확인 |
| 정정 | 닉네임 변경(30일에 1회) |
| 삭제 | 게시글·댓글 삭제, 추천·관심 대학 해제, 회원 탈퇴 |
| 처리 정지 | 푸시 알림 끄기, 알림 종류별 수신 해제 |
| 그 밖의 요청 | 화면에서 할 수 없는 열람·삭제 요청은 아래 문의처로 요청. [미정: 처리 기한과 절차] |
- 정지 중에도 열람, 본인 글·댓글 삭제, 탈퇴는 할 수 있습니다.
- 법정대리인이나 위임받은 사람을 통해 권리를 행사할 수 있습니다. [확인 필요: 대리인 확인 방법]
- 만 14세 미만은 가입할 수 없습니다. [확인 필요: 가입 화면의 만 14세 이상 확인 구현]
11. 안전성 확보 조치
코드와 설정으로 확인되는 조치는 다음과 같습니다.
- 제재 회피 방지 정보는 원래 소셜 ID가 아닌 HMAC-SHA256 해시로만 저장하고, 해시 키는 운영 환경에서 필수이며 개발용 키 사용을 막습니다.
- 세션 쿠키에 HttpOnly·SameSite=Lax를 적용하고, 운영 환경에서 Secure(HTTPS 전용)를 적용합니다.
- 상태를 바꾸는 요청에 CSRF 토큰을 요구합니다.
- 관리자 기능은 관리자 권한이 있는 계정만 쓸 수 있습니다.
- 운영 환경에서 오류 응답에 내부 오류 정보(스택 등)를 노출하지 않습니다.
- 비밀 키(로그인·저장소·해시 키 등)는 저장소에 두지 않고 실행 시 환경 변수로 넣습니다.
- 업로드 이미지는 파일 내용으로 형식을 확인하고 크기를 제한합니다.
- 푸시 구독 주소는 허용된 푸시 서비스 주소만 받습니다.
- [확인 필요: 접근 권한 관리, 저장 시 암호화, 백업 암호화 등 관리적·물리적 조치]
12. 개인정보 보호책임자와 문의처
- 개인정보 보호책임자: 운영자
- 연락처: pyeonit@gmail.com
개인정보 침해에 대한 신고나 상담은 개인정보침해신고센터, 개인정보분쟁조정위원회 등 관련 기관에 할 수 있습니다. [확인 필요: 기관 목록과 연락처]
13. 방침 변경
이 방침을 바꾸면 시행 [미정: 일수]일 전에 서비스 화면에 공지합니다. 이용자 권리에 중요한 변경은 [미정: 일수]일 전에 공지합니다.
14. 시행일
이 방침은 [미정: 배포일]부터 시행합니다.