개인정보처리방침
optra(이하 "서비스")는 개인정보 보호법을 비롯한 관련 법령을 지키며, 아래와 같이 개인정보를 처리한다.
개인정보처리자: 진정현(개인). 서비스는 현재 무료로 제공되며 사업자등록을 하지 않은 개인 운영 상태다. 유료화하거나 광고를 게재하게 되면 사업자 정보를 이 방침과 이용약관에 함께 기재한다.
1. 수집하는 개인정보 항목
서비스는 계정을 만들어야 쓸 수 있는 기능(마이페이지, 기준 연결 토큰 발급)을 제공한다. 계정을 만들지 않고 웹사이트를 둘러보기만 하면 아래 표의 마지막 줄 (접속 IP 주소)만 남는다.
| 항목 | 수집 방법 | 이용 목적 | 보유 기간 |
|---|---|---|---|
| 이메일 주소 | 이용자가 가입 화면에 직접 입력 | 계정 식별, 로그인, 가입 인증·비밀번호 재설정·탈퇴 확인 메일 발송 | 계정 삭제 시까지 |
| 비밀번호 | 이용자가 가입 화면에 직접 입력 | 로그인 인증 | 계정 삭제 시까지. 원문을 저장하지 않고 argon2id 로 해시한 값만 둔다 — 서비스도 원문을 알지 못한다 |
| 구글 계정 고유 식별자(sub) | 구글 로그인을 이용하는 경우 구글이 전달 | 계정 연결 | 계정 삭제 시까지 |
| 네이버 계정 고유 식별자 | 네이버 로그인을 이용하는 경우 네이버가 전달 | 계정 연결 | 계정 삭제 시까지 |
| 카카오 계정 고유 식별자 | 카카오 로그인을 이용하는 경우 카카오가 전달 | 계정 연결 | 계정 삭제 시까지 |
| 로그인 세션 토큰 | 로그인 시 서비스가 발급 | 로그인 상태 유지 | 발급 후 30일(이용하면 연장). 로그아웃 시 즉시 삭제. 저장하는 것은 해시값이다 |
| 기준 연결 토큰 | 마이페이지에서 이용자가 발급 | 외부 도구(MCP)에서 기준 검색을 이용할 때의 인증 | 회수하거나 계정을 삭제할 때까지. 저장하는 것은 해시값이다 |
| 인증번호 | 가입 인증·탈퇴 확인 시 서비스가 발급 | 이메일 주소가 본인의 것인지 확인 | 5분(쓰거나 5회 틀리면 즉시 소멸). 저장하는 것은 해시값이다 |
| 마지막 로그인 시각 | 로그인할 때 자동 기록 | 계정 관리 | 계정 삭제 시까지 |
| 요금제 | 계정을 만들 때 자동 생성 | 이용 한도 결정 | 계정 삭제 시까지. 지금은 전부 무료이며 결제 정보를 받지 않는다 |
| 이용 기록 | 기준 검색 요청 시 자동 기록 | 이용 한도 관리, 이용자 본인에게 사용량 표시 | 400일. 날짜와 횟수만 기록하며 검색어를 저장하지 않는다 |
| 접속 IP 주소 | 웹서버(nginx) 접속 로그에 자동 기록 | 보안 로그, 비정상 접근 차단 | 14일 후 자동 삭제 |
| 문의·요청 메일 (보낸 주소와 내용) | 이용자가 hello@optra.kr 또는 privacy@optra.kr 로 보냄 |
문의 응대, 탈퇴·열람·정정 등 권리 행사 처리 | 처리 완료 후 1년 |
| 관리자가 회원 정보를 열어 본 기록 | 운영자가 회원 관리 화면을 쓸 때 자동 기록 | 누가·언제·누구의 정보를 열었는지 남겨 오·남용을 막는다 | 1년 |
| 지운 계정의 번호와 시각 | 탈퇴 처리 시 자동 기록 | 백업으로 전체를 되살렸을 때 지워진 계정을 다시 지우기 위해 | 1년. 계정 번호와 시각만 남고 이메일도 이름도 없다 |
구글 로그인은 2026-08-26 부터 열려 있다. 네이버·카카오는 아직 열려 있지 않다. 위 표에 미리 적어 둔 것은, 여는 시점에 방침을 다시 고치느라 공백이 생기지 않게 하기 위해서다. 실제로 열려 있는 로그인 수단은 로그인 화면에 나타나는 것이 전부다 — 이 문장이 어긋남을 막는 안전장치다.
접속 로그에는 접속 시각, 요청 주소, 브라우저 종류가 함께 남는다. 다만 가입 인증·비밀번호 재설정 링크가 로그에 남지 않도록 요청 주소에서 물음표 뒤를 떼고 기록한다.
어디에 두는가
| 무엇 | 어디 |
|---|---|
| 계정 정보 전부 (이메일·비밀번호 해시·토큰·이용 기록) | 대한민국 서울의 서버 안 데이터베이스. 서버 바깥에서 접근할 수 없다 |
| 그 데이터베이스의 백업본 | 같은 서버에 30일치, 그리고 대한민국 안의 별도 저장장치에 암호화해서 한 벌 더 |
| 관리자가 열어 본 기록 · 지운 계정의 번호 | 같은 데이터베이스 |
| 접속 로그 | 같은 서버의 로컬 디스크 |
| 문의·요청 메일 | Google Workspace 메일함(미국 — 4·5절 참고) |
백업본에는 계정 정보가 그대로 들어 있으므로 원본과 같은 수준으로 지킨다. 백업도 대한민국을 벗어나지 않는다 — 서버와 저장장치 모두 국내에 있다.
서버 바깥의 사본은 서버가 열어 볼 수 없는 방식으로 암호화해서 보낸다. 암호를 푸는 열쇠는 저장장치에도 서버에도 없다. 서버가 뚫려도 지난 백업을 읽거나 지울 수 없고, 보내기만 할 수 있다. 이 사본은 7일치와 주 단위 4주치를 두고 그보다 오래된 것은 저장장치가 지운다.
운영자가 회원 정보를 열어 보면 그 사실이 남는다. 서비스 운영에는 회원 정보를 들여다봐야 하는 일(문의 응대, 오류 확인)이 생긴다. 그때 누가·언제· 어느 계정을 열었는지를 기록한다 — 오·남용을 막기 위해 법이 요구하는 것이고, 기록이 없으면 들여다본 사실 자체를 확인할 수 없다.
기록하는 것은 그 넷과 결과(성공/실패)뿐이다. 무엇으로 검색했는지는 남기지 않는다 — 검색어에 다른 이용자의 이메일이 통째로 들어올 수 있어, 그러면 이 기록이 또 하나의 개인정보 저장소가 된다.
검색 질의의 내용은 저장하지 않는다. 질의문에는 현장·경간·하중처럼 이용자의 업무 정보가 섞여 들어올 수 있어, 저장하는 순간 보관·파기·유출 책임이 따라붙기 때문이다. 서버는 질의를 받아 처리하되 처리가 끝나면 남기지 않는다.
아직 만들지 않은 기능(파일 업로드, 질의 내용 기록)에서 개인정보를 받게 되면
그 기능을 열기 전에 이 방침을 고친다. 실제 수집 항목은
modules/compliance/registry/data_inventory.yaml 을 단일 원천으로 관리하며,
scripts/legal_check.py --audit 가 이 문서와 어긋나는지 대조한다.
2. 개인정보의 처리 목적
| 무엇을 | 무엇에 |
|---|---|
| 이메일·비밀번호·구글 식별자 | 계정을 식별하고 로그인시키는 것 |
| 이메일 | 가입 인증과 비밀번호 재설정 메일을 보내는 것 |
| 세션·기준 연결 토큰 | 로그인 상태를 유지하고 외부 도구의 요청이 본인의 것인지 확인하는 것 |
| 이용 기록 | 이용 한도를 재고 이용자 본인에게 사용량을 보여 주는 것 |
| 인증번호 | 이메일 주소가 본인의 것인지 확인하는 것 |
| 요금제·마지막 로그인 시각 | 이용 한도를 정하고 계정을 관리하는 것 |
| 관리자가 열어 본 기록 | 운영자가 회원 정보를 들여다본 사실을 남겨 오·남용을 막는 것 |
| 지운 계정의 번호와 시각 | 백업으로 되살아난 계정을 다시 지우는 것 |
| 접속 IP | 서비스의 안정적 운영과 보안 |
광고·분석·프로파일링에 쓰지 않는다. 접속 기록으로 개인을 식별하려 시도하지 않으며, 이용 기록을 이용자별로 들여다보지 않는다. 광고성 정보는 보내지 않는다 — 보내게 되면 별도로 동의를 받는다.
3. 개인정보의 보유 및 이용 기간
계정에 딸린 정보(이메일, 비밀번호 해시, 로그인 수단, 토큰)는 계정을 삭제할 때까지 보유하고, 삭제 요청을 받으면 지체 없이 지운다. 계정을 지우면 그 계정에 딸린 로그인 수단·세션·토큰·이용 기록이 함께 지워진다.
접속 로그는 기록일로부터 14일 보관한 뒤 자동으로 지운다. 서비스는 전기통신사업자가 아니므로 통신비밀보호법에 따른 통신사실확인자료 보관 의무 대상이 아니다. 보안 목적에 필요한 최소 기간으로 14일을 정했다 — 서버의 실제 로그 순환 주기와 같은 값이다.
이용 기록(날짜별 횟수)은 400일 보관한 뒤 지운다. 한 해 동안의 사용량을 이용자에게 보여 주기 위한 기간이다.
관리자가 회원 정보를 열어 본 기록은 1년 보관한다. 다른 로그(접속 로그 14일)보다 긴 것은 성격이 반대이기 때문이다 — 접속 로그는 최소로 남기는 것이 안전하지만, 이 기록은 남기지 않는 것이 위험하다. 계정을 지워도 이 기록은 남는다. 누가 열어 보았는지는 그 계정이 사라진 뒤에도 확인할 수 있어야 한다.
법령이 보존을 요구하는 경우에는 그 기간 동안 보존한다. 현재 서비스는 무료이고 결제·거래 기록이 없어 전자상거래법상 보존 대상이 없다.
4. 개인정보의 제3자 제공 및 처리위탁
제3자에게 제공하지 않는다. 아래 두 곳에 처리를 위탁한다.
| 수탁자 | 위탁하는 업무 | 위탁하는 개인정보 | 보유·이용 기간 | 소재 |
|---|---|---|---|---|
| Vultr (The Constant Company, LLC) | 웹서버·데이터베이스 호스팅 | 이 방침이 적는 항목 전부 | 위탁계약 종료 시까지 | 대한민국 서울 |
| Google LLC | 메일의 발송과 수신 모두 (Google Workspace). 발송: 가입 인증·비밀번호 재설정. 수신: hello@optra.kr·privacy@optra.kr 로 오는 문의·요청 |
이메일 주소, 이용자가 보낸 메일의 내용 | 발송은 목적 달성 시까지, 수신은 위 1절의 보유 기간 | 미국 (5절 참고) |
웹페이지는 외부 서버에 아무것도 요청하지 않는다. 글꼴·이미지·스크립트를 전부 서비스 서버에서 직접 내보내므로, 이용자가 웹사이트를 둘러보는 동안 접속 정보가 다른 사업자에게 전달되지 않는다.
위탁 업무의 내용이나 수탁자가 바뀌면 이 방침을 고쳐 알린다.
5. 개인정보의 국외 이전
국외로 이전한다. 서비스의 메일을 Google Workspace 로 주고받기 때문이다.
보내는 쪽과 받는 쪽 모두 미국에 있는 구글 설비를 지난다 — optra.kr 의
메일 수신 경로(MX)가 구글로 지정되어 있다.
| 구분 | 내용 |
|---|---|
| 이전받는 자 | Google LLC (연락처: 구글 개인정보처리방침 policies.google.com/privacy) |
| 이전되는 항목 | 이메일 주소, 그리고 이용자가 우리에게 보낸 메일의 내용. 비밀번호·검색 질의·이용 기록은 이전하지 않는다 |
| 이전되는 국가 | 미국 |
| 이전 일시 및 방법 | 보낼 때 — 가입 인증·비밀번호 재설정 메일을 보내야 하는 때마다. 받을 때 — 이용자가 hello@optra.kr·privacy@optra.kr 로 메일을 보내는 때마다. 둘 다 암호화된 네트워크 전송(TLS) |
| 이전 목적 | 가입 인증·비밀번호 재설정 메일의 발송, 문의·권리 행사 요청의 접수와 응대 |
| 보유·이용 기간 | 발송은 목적을 달성할 때까지, 수신은 1절의 보유 기간까지. 이후 보관은 Google 의 정책에 따른다 |
이전을 거부할 수 있다. 다만 메일을 보낼 수 없으면 이메일로 가입하거나 비밀번호를 재설정할 수 없으므로, 거부하는 경우 계정을 만들거나 유지할 수 없다. 거부 의사는 8절의 연락처로 알리면 된다 — 다만 그 메일 자체도 구글을 지난다. 이미 만든 계정의 삭제도 함께 요청할 수 있다.
네이버·카카오 로그인은 국내 사업자를 통하므로 국외 이전이 아니다. 구글 로그인은 로그인하는 그 순간 구글과 이용자의 브라우저 사이에서 이루어지며, 서비스가 구글로 개인정보를 내보내지 않는다 — 받는 쪽이다.
서버와 데이터베이스는 대한민국 서울에 있다. 국외로 나가는 것은 메일에 실리는 것뿐이며, 계정 정보와 검색 질의는 국내를 벗어나지 않는다.
6. 쿠키
서비스는 로그인 상태를 유지하기 위한 쿠키 하나를 사용한다. 이름은
optra_session 이고, 값은 서버가 발급한 임의의 문자열이다. 브라우저에서만
읽을 수 없도록(HttpOnly) 하고 암호화된 연결로만 전송한다(Secure).
분석·광고 쿠키는 쓰지 않으며, 제3자 쿠키도 생기지 않는다. 자세한 것은 쿠키 정책 참고.
7. 이용자의 권리 — 열람·정정·삭제·처리정지
이용자는 언제든지 자신의 개인정보에 대해 열람·정정·삭제·처리정지를 요구할 수 있다. 아래 방법으로 요청하면 지체 없이 처리한다.
| 무엇 | 어떻게 |
|---|---|
| 열람 | 로그인 후 마이페이지에서 계정 정보·연결된 로그인 수단·발급한 토큰·사용량을 직접 확인할 수 있다 |
| 정정 | 마이페이지에서 로그인 수단을 연결하거나 해제할 수 있다. 그 밖의 정정은 아래 주소로 요청한다 |
| 계정 삭제(탈퇴) | 마이페이지에서 직접 할 수 있다. 비밀번호로 확인하며, 비밀번호 없이 소셜 로그인만 쓰는 경우에는 계정 이메일로 받은 여섯 자리 숫자로 확인한다. 화면을 쓰기 어려우면 hello@optra.kr 로 요청해도 된다. 계정에 딸린 로그인 수단·비밀번호·세션·발급한 토큰·이용 기록이 함께 지워진다 |
| 처리정지 | 아래 주소로 요청한다 |
계정 삭제는 되돌릴 수 없다. 삭제하면 발급받은 기준 연결 토큰도 즉시 쓸 수 없게 된다. 백업본에는 최대 30일 남아 있다가 사라지며, 그 백업은 서비스 전체를 되살릴 때에만 쓴다(9절). 개인정보 관련 요청은 8절의 보호책임자 주소(privacy@optra.kr)로 보내도 된다.
접속 로그는 개인을 특정할 수 있는 다른 정보와 결합해 보관하지 않으므로, 열람·삭제 요청 시 요청자의 IP 를 확인할 수 있는 범위에서 응한다.
이용자는 대리인을 통해서도 위 권리를 행사할 수 있다.
8. 개인정보 보호책임자
| 구분 | 내용 |
|---|---|
| 성명 | 진정현 |
| 직위 | 대표 |
| 연락처 | privacy@optra.kr |
개인정보 관련 문의·열람·정정·삭제·처리정지 요청은 위 주소로 보내면 된다. 계정 삭제(탈퇴)는 마이페이지에서 직접 할 수 있고, 어려우면 hello@optra.kr 로 보내도 된다.
9. 개인정보의 파기 절차 및 방법
| 무엇 | 어떻게 |
|---|---|
| 계정 정보 | 삭제 요청을 받으면 데이터베이스에서 해당 계정의 행을 지운다. 로그인 수단·비밀번호·세션·토큰·이용 기록이 함께 지워지도록 설계되어 있다 |
| 서버 바깥의 백업 | 7일치와 주 단위 4주치를 지나면 저장장치가 지운다 |
| 만료된 세션·인증번호·메일 링크 | 매일 자동으로 지운다 |
| 관리자가 열어 본 기록 | 1년이 지나면 지운다. 계정을 지워도 이 기록은 남는다 |
| 지운 계정의 번호와 시각 | 1년이 지나면 지운다. 백업이 사라지고도 남아 있어야 되살아난 계정을 알아볼 수 있다 |
| 접속 로그 | 서버의 logrotate 설정에 따라 14일 뒤 자동으로 삭제한다 |
| 문의·요청 메일 | 처리를 마치고 1년이 지나면 메일함에서 지운다 |
전자적 파일은 복구할 수 없는 방법으로 지운다.
계정을 지워도 백업본에는 최대 30일 남아 있다가 사라진다. 그 사이의 백업은 서비스 전체를 되살릴 때에만 쓰며, 개인 계정을 되돌리는 데에는 쓰지 않는다.
다만 전체를 되살리는 일이 실제로 생기면 그 사이 지워진 계정이 함께 되살아날 수 있다. 그래서 어느 계정이 언제 지워졌는지를 따로 남겨 두고 복구 직후 다시 지운다. 그 기록에는 계정 번호와 시각만 있고 이메일도 이름도 없다.
10. 개인정보의 안전성 확보 조치
- 비밀번호는 원문을 저장하지 않고 argon2id 로 해시해 보관한다
- 세션 토큰·기준 연결 토큰·메일 링크의 값도 해시만 저장한다. 유출되어도 그 값으로 로그인할 수 없다
- 데이터베이스는 서버 내부(127.0.0.1)에서만 접근할 수 있고 외부에 열려 있지 않다
- 서버 접근은 SSH 키 인증으로만 허용하고 비밀번호 로그인을 막는다
- 전송 구간은 HTTPS 로 암호화한다
- 접속 로그는 서비스 운영자만 접근할 수 있는 경로에 두고, 가입 인증·비밀번호 재설정 링크가 로그에 남지 않도록 요청 주소에서 물음표 뒤를 떼고 기록한다
- 로그인 시도와 메일 발송에 횟수 제한을 두어 자동화된 공격을 막는다
- 회원 정보를 열어 보는 화면은 운영자 계정 목록을 서버 설정에 두고, 그 목록에 없으면 화면이 있다는 것조차 보이지 않게 한다. 목록에 있어도 로그인만으로는 못 들어가고 비밀번호를 한 번 더 확인하며, 그 확인은 30분 뒤 풀린다 — 자리를 비운 사이에 남이 들여다볼 수 없게 하기 위해서다
- 그 화면에서 누가·언제·어느 계정을 열었는지 기록하고 1년 보관한다
- 가입 인증번호는 5분 · 5회로 제한한다. 6자리 숫자는 경우의 수가 적어 제한이 없으면 반복해서 찍어 맞힐 수 있다
- 백업본은 소유자만 읽을 수 있는 권한으로 보관하고, 받은 뒤 실제로 복원되는지 매번 확인한다
- 서버 바깥에 보내는 사본은 서버가 복호화할 수 없는 방식으로 암호화한다. 서버는 그 저장장치의 내용을 보거나 지울 수 없고 보내기만 할 수 있다
11. 권익침해 구제
개인정보 침해로 도움이 필요하면 아래 기관에 상담·신고할 수 있다.
- 개인정보 침해신고센터 (국번 없이 118, privacy.kisa.or.kr)
- 개인정보 분쟁조정위원회 (1833-6972, kopico.go.kr)
- 대검찰청 사이버수사과 (1301), 경찰청 사이버수사국 (182)
12. 고지의 의무
이 방침을 고칠 때에는 개정한 내용과 시행일을 지체 없이 서비스 화면에 공개한다.
이용자가 있는 상태에서 이 방침을 변경하는 경우에는 시행 7일 전부터 서비스 화면에 알린다. 이용자에게 불리하게 바뀌는 경우에는 30일 전부터 알린다. 사전에 알리는 것은 이미 개인정보를 맡긴 이용자가 계정 삭제 등으로 대응할 시간을 주기 위한 것이므로, 알릴 이용자가 없는 상태에서의 개정에는 사전 고지 대신 지체 없는 공개로 갈음한다. 그렇게 한 경우 그 사실과 판단 근거를 변경 이력에 남긴다.
변경 이력은 modules/compliance/registry/notice_versions.yaml 에서 관리한다.