OwnAgents← 홈으로

서비스 경계와 보장

고객이 가입하고 자료를 맡기고 인공지능(AI) 기능을 사용할 때, 무엇을 확인하고 어디에서 멈추는지 설명합니다.

최종 수정일: 2026-09-05 · 공개 고객 안내

1. 먼저 알아둘 원칙

OwnAgents는 공개 웹 서비스로 제공됩니다. 신원 확인·고객별 분리·비밀값 보호·실패 시 중단이 한 흐름으로 이어집니다.

서비스 안내 문서는 로그인 없이 읽을 수 있습니다. 계정·상담 화면과 API 응답에는 검색 제외 지침을 적용하지만, 이 지침이 데이터를 보호하지는 않습니다. 비공개 데이터의 접근 권한은 서버에서 별도로 확인합니다.

2. 가입과 신원 확인

로그인과 개인정보 입력에는 HTTPS 주소를 사용해 주세요. 비보안 API 요청은 같은 경로의 HTTPS 주소로 전환하고 처리하지 않습니다. HTTPS 응답에는 브라우저가 비보안 연결로 되돌아가지 않도록 하는 전송 정책을 적용합니다.

로그인 시도와 가입·비밀번호 재설정 메일은 처리 전에 횟수를 예약해 동시 요청에도 한도를 적용합니다. 메일 발송 결과를 확인하지 못해도 예약을 되돌리지 않습니다. 재설정 메일 요청에도 가입과 같은 사람 확인을 요구합니다.

정지된 계정은 기존 연결 비밀이나 활성화 코드가 있어도 연결을 활성화하거나 새 작업을 받을 수 없습니다. 작업을 시작하기 직전에 계정 상태를 다시 확인합니다.

로그인은 발급 후 최대 8시간 유지되고, 30분 동안 인증된 요청이 없으면 만료됩니다. 로그아웃은 해당 로그인을 서버에서 폐기한 뒤 브라우저의 로그인 정보를 지웁니다. 통신 오류로 폐기를 확인하지 못하면 다시 시도하도록 안내합니다.

새 계정은 통합 로그인(OIDC)을 통해 Google 또는 Microsoft에서 신원을 확인한 뒤 만듭니다. 이메일 글자만 같다는 이유로 두 계정을 합치지 않습니다. 로그인 제공자가 발급한 변하지 않는 식별자를 기준으로 기존 계정을 찾습니다.

Google

로그인 제공자가 이메일 확인을 완료했는지 확인합니다. 회사·학교 주소는 제공자가 확인한 조직 도메인과 주소의 도메인도 같아야 합니다.

Microsoft

검증된 로그인 증표의 이메일과 사용자 정보 응답의 이메일을 양끝 공백 제거와 소문자 변환 뒤 비교합니다. 두 주소가 같고, 주소 도메인 소유 확인이 참일 때만 신규 가입에 사용합니다.

가입을 제한하는 규칙이 하나라도 켜져 있으면 해당 이메일 또는 도메인과 일치하는 사람만 계정을 만들 수 있습니다. 일치하지 않는 요청은 계정과 고객 작업공간을 만들지 않고 대기 상태로 남깁니다.

비밀번호 가입은 사람 확인(Turnstile)만으로 메일함 소유권을 증명하지 못합니다. 그래서 이 경로는 두 단계로 나뉩니다. 가입을 요청하면 계정을 바로 만들지 않고 확인 링크를 보내며, 그 링크를 열었을 때만 위와 같은 가입 심사를 거쳐 계정과 고객 작업공간을 만듭니다. 비밀번호 재설정도 같은 방식이고, 성공하면 그 계정의 기존 로그인은 모두 끊깁니다.

가입 자체를 닫아 둔 환경에서는 이 검사를 사람 확인보다 먼저 합니다. 확인 링크를 보내지도, 어떤 기록을 남기지도 않고 거절합니다. 또한 가입 요청에는 등록된 주소인지 아닌지와 상관없이 같은 응답을 돌려주어, 이 화면이 “이 주소가 가입돼 있는지” 알아내는 도구가 되지 않게 합니다.

상담지는 계정 없이도 쓸 수 있지만, 연락처가 담긴 상담 내용을 저장하기 전에 메일함 소유를 증명해야 합니다. 증명 방법은 두 가지이고 같은 메일에 함께 담깁니다. 하나는 지금 보던 탭에서 바로 입력하는 6자리 코드이고, 다른 하나는 기존의 긴 확인 주소입니다. 6자리 코드는 평문으로 보관하지 않고 무작위 값을 섞은 해시(salted PBKDF2-SHA256, 100,000회)만 저장합니다. 코드는 10분 뒤 만료되고, 틀린 입력 5회로 잠기며, 한 번 쓰면 코드와 확인 주소가 함께 사라집니다.

6자리 코드는 시도 횟수와 발송 횟수를 여러 겹으로 제한합니다. 익명 세션과 메일 주소는 처음 연결한 조합으로 고정하므로, 동시에 다른 주소로 요청해도 세션 하나가 여러 주소에 묶이지 않습니다. 주소별 발송은 지난 한 시간의 예약 횟수로 제한하고, 새 코드를 저장할 때 이전 코드를 무효화합니다. 발송 결과가 불확실해도 예약은 남습니다.

코드는 요청한 익명 세션과 정확히 일치할 때만 비교 횟수를 예약합니다. 다른 세션이나 연결 정보가 없는 요청은 그 코드의 기회를 차감하지 않으며, 존재하지 않거나 만료된 코드와 같은 오류 및 해시 계산 경로를 사용합니다. 인증 코드 확인 기록에는 실제 비교 예약 시각을 남기고, 코드별 횟수 증가와 같은 트랜잭션에서 서비스 전체의 지난 한 시간 한도를 확인합니다. 코드 재발송·사용·삭제로 이 한도가 초기화되지 않으며, 전체 한도에 도달해도 긴 확인 주소는 사용할 수 있습니다. 익명 세션 발급·메일 발송·코드 확인에는 별도의 네트워크 주소 기준 제한도 적용합니다. 예약 기록은 한도가 끝난 뒤 정리하고, 주소 연결은 익명 세션의 수명이 끝난 뒤 정리합니다.

3. 고객별 분리

인증을 마친 사람은 자신에게 연결된 고객 작업공간만 사용합니다. 요청마다 작업공간 소속을 다시 확인하며, 다른 고객의 식별자를 본문에 넣어도 권한이 바뀌지 않습니다.

  • 새 작업공간은 가입 심사를 통과한 뒤에만 생깁니다.
  • 기존 로그인은 이메일이 아니라 이미 연결된 로그인 식별자로 찾습니다.
  • 작업과 사용량은 고객 작업공간 단위로 기록합니다.
  • 한 고객의 임시 자료를 다른 고객에게 옮기지 않습니다.

4. 자료와 비밀값

로그인과 연결 비밀

세션과 일회용 교환 코드, 게스트 토큰, 연결 비밀은 원문 대신 복원할 수 없는 지문(hash)으로 저장합니다. 저장소를 읽더라도 그 값만으로 유효한 로그인 비밀을 되살릴 수 없게 합니다.

DigitalOcean 서버 연결

상담 작성 화면과 VPS 설치 안내에서 계정 화면으로 이동할 수 있습니다. 로그인한 고객이 계정 화면에서 서버 이름과 위치, 사양을 고르면 서버가 DigitalOcean 권한 확인 주소를 돌려주고, 브라우저가 그 주소로 이동합니다. 로그인 비밀은 요청 헤더에만 있고 주소에는 들어가지 않습니다. 요청하는 권한은 서버 생성과 DigitalOcean이 그 생성에 필요하다고 정한 조회 권한(서버·지역·사양·이미지·스냅샷·VPC·작업 내역 읽기)뿐이며, 삭제·계정 변경·SSH 키 권한은 요청하지 않습니다. 이 연결로 OwnAgents 계정을 새로 만들거나 다른 고객의 작업공간에 접근할 수는 없습니다. 확인 요청은 5분 동안 한 번만 쓸 수 있고, 선택한 서버 정보와 요청한 작업공간에 묶입니다.

DigitalOcean 계정 연결만으로 유료 서버를 만들지 않습니다. 돌아온 뒤 서버 사양과 본인 계정의 비용 부담을 확인하고 직접 생성을 승인해야 합니다. 승인하지 않거나 생성 전에 취소하면 서버를 만들지 않습니다. 생성 직전에도 계정 상태를 다시 확인합니다. 생성은 한 번만 시도하며, 생성 직후 받은 임시 권한은 그 권한 자체로 인증한 폐기 요청을 두 번(갱신용·접근용) 보내 즉시 버립니다. 결과나 권한 폐기를 확인하지 못하면 새 연결로도 중복 생성하지 않고 사람의 확인을 기다립니다. 확정된 실패 뒤 새로 연결한 경우에는 새 요청의 승인 화면을 표시하지만, 이미 생성되었거나 처리 결과를 확인하지 못한 요청은 새 요청보다 우선 표시하고 중복 생성을 막습니다. 첫 부팅 설치는 고정된 공식 설치 파일 지문(SHA-256)과 고정된 Hermes 버전을 함께 검증하며, 지문이 다르면 설치하지 않으며, 설치 뒤 실제 체크아웃 버전도 고정한 버전과 같아야 합니다. 서버 생성 접수는 설치 완료나 정상 작동을 뜻하지 않습니다. 설치 로그와 이후 모델·메신저·재부팅 상태는 사용자가 소유한 서버에서 따로 확인해야 합니다.

게스트 자료

익명 상담 초안은 명시적 동의 뒤 저장하며 24시간 후 만료됩니다. 초안에는 이름·이메일·전화번호를 받지 않습니다. 로그인 뒤 한 고객 작업공간으로 한 번 옮겨지면 임시 토큰은 다시 쓸 수 없습니다.

상담 연락처

상담의 첫 단계는 이메일 연락처만 받습니다. 로그인한 계정의 이름과 이메일을 미리 채우지만 직접 고칠 수 있습니다. 계정 이메일과 다른 주소는 기존 이메일 확인 코드나 링크로 소유를 확인해야 합니다. 서버는 상담 신청과 최종 제출에서 이 증명을 다시 확인하며, 상담용 증명이 계정이나 작업공간 소유자를 바꾸지는 않습니다.

코드를 확인하는 동안 뒤로 가거나 입력을 바꾸면 이전 요청으로 상담을 이어가지 않습니다. 확인이나 저장 응답이 늦어지면 다시 시도할 수 있습니다.

직무 분야의 학생 선택과 기타 직접 입력은 상담 내용에 저장합니다. 기타를 고르면 설명이 필수입니다.

최종 설문 저장을 확인하면 완료 화면에서 선택 사항인 만족도 조사와 화상 미팅 신청을 함께 보여 줍니다. 만족도와 짧은 의견은 상담 의견 기록에 접수 번호별로 저장합니다. 기존 1–10점 척도를 유지하며, 서버는 응답자가 해당 상담의 주인인지 확인합니다.

화상 미팅은 완료된 상담의 주인만 신청할 수 있습니다. 계정 로그인 또는 이메일을 확인한 상담용 출입증이 필요합니다. 상담에 저장된 이름과 주소로 초대 대상을 정하고 예약을 기록합니다. 요청 본문의 이름이나 이메일로 초대 대상을 바꾸지 않습니다. 이전에 저장한 상담이라도 계정과 다른 연락처는 유효한 이메일 소유 증명을 다시 확인합니다. Microsoft 연결이 없거나 실패하면 신청 접수 상태를 유지하고 담당자가 확인합니다. Teams 참여 주소를 확인하기 전에는 미팅 확정으로 안내하지 않습니다.

상담 신청에 필요한 연락처는 목적을 나누어 보관하고, 수집 후 1년 또는 삭제 요청 중 빠른 시점까지만 유지합니다. 공개 화면에는 이를 조회하는 기능을 두지 않습니다.

로그인하지 않고 상담을 신청하면, 적어 주신 주소로 확인 링크를 먼저 보냅니다. 그 링크를 열기 전까지는 연락처가 담긴 상담 내용을 저장하지 않고 접수 번호도 만들지 않습니다. 다른 사람의 주소를 적어 넣어도 그 사람의 상담이 만들어지지 않게 하기 위한 순서입니다.

링크를 열면 그 상담에만 쓸 수 있는 임시 출입증이 이 브라우저에 발급됩니다. 유효기간은 24시간이고, 상담지 저장, 만족도 남기기, 완료한 상담의 화상 미팅 신청 외에는 아무 권한도 없습니다.

접수 번호는 화면에 보여 주는 표시일 뿐이며 열쇠가 아닙니다. 번호만 알아도 남의 상담을 열어볼 수 없고, 서버가 요청한 사람과 그 상담의 주인이 같은지 매번 확인합니다.

상담 접수 메일은 보내기에 성공했다는 증거(제공자가 돌려준 메시지 번호)를 확인한 뒤에만 “보냈음”으로 기록합니다. 메일 발송이 아직 연결되지 않았거나 실패하면 보낼 목록에 남겨 두고, 화면에도 보냈다고 적지 않습니다.

5. AI 사용 경계

브라우저에는 AI 제공자 비밀키나 모델 실행 권한을 넣지 않습니다. 서버가 요청 크기, 고객별 STAR 예약·무료 한도·요청 속도와 공급자별 전체 예산·동시 실행 한도를 확인한 뒤 허용된 요청만 전달합니다. 공급자 동시 실행 한도는 고객별 별도 동시 실행 한도가 아닙니다.

프로필별 실행 경로를 사용하는 경우, 서버가 로그인한 고객과 사용 목적에 연결된 유효한 권한을 비용 예약 전에 확인합니다. 만료되거나 취소된 권한으로 다른 고객의 경로를 사용하지 못하며, 브라우저에서 모델이나 연결 비밀을 지정할 수 없습니다. 로그인 제공자 연결 자체가 AI 실행 권한을 뜻하지는 않습니다.

프로필별 실행 경로에서는 미리 허용된 일시적 처리 제한에만 대체 경로를 한 번 시도합니다. 인증·권한 오류, 불완전한 응답, 처리 여부를 알 수 없는 통신 실패에는 대체 호출을 하지 않습니다. 대체 호출 전에 권한을 다시 확인하고, 두 경로의 비용 상한을 함께 예약합니다.

프로필별 경로와 별도의 서버측 대체 연결 모드는 동시에 선택할 수 없습니다. 두 설정이 겹치면 비용 예약 전에 거절하여 대체 호출이 중첩되거나 권한 확인을 우회하지 못하게 합니다.

출력 길이를 반영한 사용량이 예약 범위를 넘거나, 응답에서 연결 비밀 또는 비밀키 형태가 발견되면 결과를 저장하거나 공개하지 않습니다. 이미 시작된 처리 비용은 예약 범위 안에서 보수적으로 확정하며, 거절된 출력을 정상 결과처럼 잘라서 반환하지 않습니다.

별도의 서버측 추론 연결 모드는 허용된 모델과 인증된 연결만 사용하며, 실행되지 않았음이 확인된 일부 실패에 한해 대체 연결을 한 번 허용합니다. 추론 강도는 각 연결의 서버 설정으로 고정하며, 호출자가 다른 값으로 바꾸거나 기본 연결의 설정을 대체 연결에 넘길 수 없습니다. 설정 전달 여부와 실제 공급자 지원·출력 한도 검증은 구분합니다. 부분 응답이나 실행 여부가 불분명한 실패는 자동 재실행하지 않습니다. 취소와 시간 제한은 연결 전체에 전파하고, 사용량과 STAR 정산은 기존 서버 원장에서 한 번만 처리합니다.

  • 사용량은 고객 작업공간에 연결된 기록으로 남깁니다.
  • 같은 요청이 반복돼도 중복 과금과 중복 실행을 줄이도록 요청 식별자를 확인합니다.
  • 처리 결과를 확정할 수 없으면 같은 외부 호출을 함부로 반복하지 않습니다. 체험과 질문지 생성 모두 실행 전 취소가 확인되면 예약을 해제하고, 실행 기록 저장 여부가 불확실하면 조정 가능한 예약을 유지합니다. 취소 상태·STAR 예약 해제·요청 상태는 같은 저장 단위로 처리하며, 복구 중인 오래된 요청이 새 재시도의 상태를 덮지 않도록 소유권을 확인합니다.
  • 결제나 사용량 확인을 끝내지 못하면 새 유료 사용을 시작하지 않습니다. 공급자 예산 정산이 끝나도 미정산 STAR 예약은 완료로 덮지 않습니다. 저장 오류가 복구되면 기존 실행 기록과 STAR 예약을 다시 확인해 한 번만 차감하며, 공급자를 다시 호출하지 않습니다.

6. 1회 결제와 STAR 원장

AI 체험은 로그인한 계정의 이용 가능 여부와 남은 한도를 확인합니다. 무료 한도 이후에는 AI 사용량과 작업량에 따라 STAR가 자동으로 차감됩니다. 같은 요청을 동시에 보내거나 다시 확인해도 한 번만 처리합니다. 계정을 바꾸면 열려 있던 충전창과 이전 답변을 닫고, 이전 요청의 늦은 응답이나 재시도로 새 결제 또는 답변을 시작하지 않습니다. 이미 실행을 시작한 작업과 결제는 원래 계정의 처리 내역에 남습니다.

OwnAgents는 홈과 프로필에서 같은 STAR 충전창을 엽니다. 서버가 기존 상품과 결제 금액을 결정합니다. OwnAgents는 로그인 뒤 홈을 보여 줍니다. 같은 브라우저에서 상담 중 로그인을 시작한 경우에만 해당 단계를 이어갑니다. 저장한 상담지는 홈에서 따로 이어갈 수 있습니다.

OwnAgents는 닉네임과 이메일 확인 시각을 기록합니다. 닉네임은 한글·영문·숫자·밑줄 3–20자로 제한하고 영문 대소문자를 구분하지 않습니다. OwnAgents는 금지 표현을 확인하며 저장한 닉네임을 변경하지 않습니다. 기존 계정이나 가입 중 닉네임이 겹친 계정은 프로필에서 한 번 설정합니다. 닉네임은 가입 후 프로필에서 설정합니다.

OwnAgents는 계정별 초대 코드와 링크를 제공합니다. 새 사용자가 프로필에 추천인의 닉네임 또는 코드를 직접 등록해야 지급을 시작합니다. 링크를 열기만 해서는 지급하지 않습니다. 이메일 확인을 마친 가입 14일 이내 계정만 추천인을 등록할 수 있습니다. 추천인마다 최근 30일 동안 20명까지 받을 수 있습니다. 자기 추천은 거절하고 계정마다 추천인 한 명만 등록합니다. 기존 비밀번호 계정의 이메일 확인 여부는 추정하지 않습니다. 해당 계정은 이메일 비밀번호 재설정으로 소유권을 확인할 수 있습니다.

OwnAgents는 추천 관계를 한 번 기록합니다. 추천 등록 조건을 확인한 뒤 추천 관계 기록과 두 계정의 500 STAR 지급을 함께 처리합니다. 고유 제약이 반복 요청과 동시 등록의 이중 지급을 막습니다. 어느 항목이든 실패하면 전체 변경을 취소합니다. OwnAgents는 추천 등록으로 결제 주문이나 결제 제공자를 호출하지 않습니다.

프로필의 STAR 잔액은 확인된 적립에서 사용분과 진행 중인 요청의 예약분을 뺀 값입니다. 확인 중인 충전은 포함하지 않습니다. 이미 쓴 STAR가 취소되면 음수 잔액을 그대로 표시하고 추가 사용을 막습니다.

새 고객 작업공간에는 300 STAR를 한 번만 지급합니다. 지급 내역은 고객별로 기록하며, 동시 가입·재시도·로그인 재생에서도 중복 지급을 막습니다. 지급 기록이 완료되지 않으면 가입이나 로그인 성공을 표시하지 않으며, 다음 정상 인증에서 같은 항목을 중복 없이 다시 확인합니다.

STAR를 충전할 때는 NICEPAYMENTS 결제창에서 선불로 1회 구매합니다. 구독이나 자동 충전은 하지 않습니다. 로그인한 고객의 주문만 받고, 서버가 상품·금액·서명을 확인한 뒤 결제 완료가 확인된 경우에만 STAR를 적립합니다.

  • 로그인한 고객이 서버 소유 상품 ID와 중복 방지 키를 보내면 서버가 금액과 STAR 수량을 결정해 NICEPAYMENTS 결제창의 안전한 공개 필드만 돌려줍니다.
  • 결제 기록에는 고객 작업공간, 서버 주문, 금액, 상태, 불투명한 결제 참조와 지문만 둡니다. 카드번호·결제수단 원문·가맹점 비밀키·콜백 또는 웹훅 원문은 저장하지 않습니다.
  • NICEPAYMENTS가 보내는 인증 콜백은 제품 세션 없이 도달할 수 있지만, 서버는 주문·클라이언트·금액·서명을 정확히 묶고 NICEPAYMENTS 승인 API의 결제 완료 응답까지 검증한 뒤에만 STAR를 적립합니다. 같은 고객의 승인과 승인 실패 뒤 취소 요청은 고객별 순서 제어 장치가 한 줄로 처리해, 두 콜백이 외부 결제 요청 사이에서 서로 추월하지 못하게 합니다. 브라우저 리디렉션만으로는 적립하지 않습니다. 승인 결과를 확인하지 못하면 취소를 먼저 요청하고, 취소 결과까지 확인하지 못한 경우에는 해당 주문을 조정 대기 상태로 바꾸고 그 주문의 STAR를 사용 가능 잔액에서 제외합니다.
  • 조정 대기 상태의 주문은 NICEPAYMENTS 거래 조회로 실제 결제 상태를 다시 확인해 정리합니다. 결제가 살아 있으면 STAR를 적립하고, 취소된 거래였으면 적립하지 않습니다. 이 확인은 고객이 결제 화면을 열 때도 자동으로 실행되므로 알림이 유실돼도 결제한 STAR가 묶여 있지 않습니다. 확인이 끝나지 않은 주문이 남아 있으면 같은 고객의 새 결제를 받지 않아 중복 결제를 막습니다.
  • 서명된 결제 알림도 알려진 주문·금액·거래 참조에만 적용합니다. 알림 서명에 결제 상태와 남은 금액이 포함되지 않으므로, STAR를 더하거나 빼기 전에는 NICEPAYMENTS 거래 조회로 현재 상태를 다시 확인합니다. 결제 취소는 원래 적립분을 star_ledger에 반대 항목으로 한 번만 기록하며, 이미 쓴 STAR가 있으면 잔액이 음수가 되어 추가 사용을 막을 수 있습니다.
  • 유료 체험은 무료 한도와 별도로 표시합니다. 공급자 호출 전에 STAR를 예약하고, 공급자 응답과 요청·출력 길이를 바탕으로 보정한 토큰 사용량에 따라 입력 1,000토큰 시작 단위당 2 STAR와 출력 1,000토큰 시작 단위당 5 STAR로 정산합니다. 같은 요청의 재생은 다시 차감하지 않습니다. 사용량이 불확실한 실행은 예약한 상한으로 보수적으로 정산합니다.
  • 서버에 기록한 API 환산 비용은 설정된 모델 단가로 계산한 예산 관리값이며, OAuth 구독 제공자의 실제 청구서가 아닙니다. STAR는 별도의 토큰 요금표를 따르며 API 비용에 대한 화폐 환율이 아닙니다. 맞춤 문항 생성은 공급자 사용량만 기록하며 체험의 STAR 차감 규칙을 적용하지 않습니다.

승인 결과가 불확실하면 결제를 자동으로 다시 요청하지 않고, 취소를 먼저 시도한 뒤 거래 조회로 실제 상태를 확인해 정리합니다. 설정이 빠졌거나 결제 상태를 확정할 수 없으면 새 결제와 새 유료 실행을 허용하지 않습니다.

7. 실패와 복구

필수 확인이 빠졌거나 외부 확인이 끝나지 않으면 저장과 실행 전에 멈춥니다. 화면에서 버튼을 숨기는 방식이 아니라 서버가 결정합니다.

가입 실패

신원 또는 가입 조건이 맞지 않으면 계정과 고객 작업공간을 만들지 않습니다.

AI 처리 실패

완료 여부가 불분명한 요청은 기록을 남기고 자동 중복 실행을 피합니다.

임시 자료 만료

보관 기한이 지난 게스트 자료와 일회용 로그인 교환값은 사용할 수 없게 정리합니다.

설정 누락

필수 보안 설정이 없으면 기능을 열어 두는 대신 닫힌 상태로 응답합니다.