개인정보처리방침
24시 매직 라디오(FM 77.7)는 로그인 없이 듣고 사연을 보낼 수 있어요. 보내는 사람 이름은 선택이에요. 선택 로그인이 제공되는 경우 계정을 연결해 엽서를 보관할 수 있어요. 기능을 이용하면 몇 가지 정보가 오가요. 무엇이 어디로 가는지 여기 적어 둘게요.
운영자: 디어아멜리
1. 보낸 사연
보내기를 누르면 최대 300자의 사연 글자가 라디오 서버(Vercel에서 동작)로 전송돼요. Vercel AI Gateway를 거쳐 TypeSafe AI의 Jev 모델이 사연의 요청 의도와 안전성, 개인 식별 정보의 노출 위험을 검수하고, 답장 가능한 사연은 같은 Gateway를 거쳐 Microsoft Azure의 OpenAI 모델로 전달돼 짧은 DJ 답장을 만들어요. 공개했을 때 개인이 식별될 위험 등에 따라 공유와 방송 신청이 제한될 수 있어요. 새 답장은 예·아니요 판정이나 확률을 만들지 않아요. 예전 엽서와 구형 화면에서 보낸 사연에는 기존 판정 형식이 남을 수 있어요. 답장만 받고 계정 엽서함에 보관하지 않은 사연은 라디오 운영자가 데이터베이스나 파일로 따로 모아 두지 않아요. 로그인 후 직접 보관하거나 가져온 사본은 7장의 기준으로 저장해요. 엽서의 ‘방송에서 읽어 주세요’(처음부터 켜져 있어요)를 켠 채 보냈거나 답장 뒤 ‘방송에 보내기’를 누른 사연만 방송을 위해 저장해요(6장).
사연 분류와 DJ 답장 생성 요청에는 무보존 조건(Zero Data Retention)을 켜요. Vercel AI Gateway와 이 경로의 모델 제공자는 요청을 처리하는 동안 사연과 결과를 다뤄요. TypeSafe AI는 사연으로 모델을 학습시키지 않으며, 법에 따라 보관해야 하는 경우는 예외예요. 방송 공개를 선택했을 때의 검수·저장·음성 합성은 별도 처리예요(6장).
엽서의 ‘보내는 사람’(적지 않아도 돼요, 8자까지)은 사연과 함께 라디오 서버로 가고, 답장 결과와 함께 서명되어 공유 링크에 실려요. 방송에 보내면 방송에서도 읽혀요(6장). 비워 두면 이 기기에 처음 한 번 무작위로 정해 둔 네 자리 ‘뒷자리 번호’(전화번호와 상관없음)를 대신 쓰고, 이 번호도 이름처럼 서명되어 공유 링크와 방송에 실려요. 적은 이름과 번호는 다음에 다시 쓰도록 이 기기에만 기억해요.
사연과 보내는 사람에는 실명, 전화번호, 주소처럼 누군가를 알아볼 수 있는 내용을 적지 말아 주세요.
2. 목소리
‘말로 하기’는 브라우저에 들어 있는 음성인식 기능을 써요. Chrome과 삼성 인터넷은 Google, Safari는 Apple의 음성인식 서버로 음성을 보내 글자로 바꿔요. 라디오는 녹음 파일을 받지 않고, 바뀐 글자만 사연으로 써요. 마이크 권한은 버튼을 누를 때만 요청해요.
3. 접속 기록
웹 호스팅 회사(Vercel)는 서비스를 돌리고 공격을 막으려고 IP 주소, 브라우저 종류, 요청 시각 같은 접속 기록을 자동으로 남겨요. 과도한 사연 요청과 운영자 로그인 시도를 막는 데에도 IP 주소가 쓰여요. 요청 횟수는 IP 주소를 비밀 키로 바꾼 값(HMAC), 요청 종류, 시간 구간과 함께 서버에 남겨요. 이 횟수 기록에는 사연 글자나 원래 IP 주소를 담지 않고, 최대 2일 뒤 삭제 대상으로 지정해 정기 정리 때 지워요. 사연이 주소의 ? 뒤에 들어간 주소(예: 앱 안에서 외부 브라우저로 열기)로 들어오면, 그 주소도 접속 기록에 함께 남아요.
라디오를 켜 두면 지금 함께 듣는 사람 수를 세려고 1분마다 신호를 보내요. 신호에는 새로고침할 때마다 새로 만드는 무작위 번호만 들어가요. 서버(Supabase, 서울)에는 그 번호, 마지막 신호 시각, 그리고 IP 주소를 라디오만 아는 비밀 키로 바꾼 값을 두었다가 10분 안에 지워요. 이 값은 한 사람이 숫자를 부풀리지 못하게 막는 데만 쓰고, IP 주소 자체는 저장하지 않아요.
화면을 그리려고 글꼴은 Google Fonts(Google LLC, 미국)에서, 3D 라디오 부품은 jsDelivr CDN에서 받아 와요. 이때 브라우저가 IP 주소와 브라우저 정보를 두 곳에 보내요. 사연은 보내지 않아요.
4. 공유 링크·이미지와 캘린더 일정
- 공유 링크에는 사연과 라디오가 들려준 대답(위조 방지 서명 포함)이 주소의 # 뒤에 담겨요. 링크를 열면 라디오가 바로 사연과 서명을 서버로 보내 확인하고, 같은 대답을 준비해 둬요. 새 형식의 서명이 맞지 않으면 답장을 열 수 없어요. 구형 링크는 서명이 없거나 맞지 않을 때 예전 방식으로 새 판정을 만들 수 있지만, 원래 보낸 사람의 방송 신청 권한을 새로 발급하지 않아요. 링크를 받은 사람, 그리고 링크가 지나가는 메신저나 SNS는 사연을 볼 수 있어요.
- 링크로 들어오면 라디오는 주소창에서 사연을 바로 지워요. 분석 도구나 광고 쪽으로는 사연을 보내지 않아요.
- ‘내 공간’의 엽서함에서 복사하는 짧은 답장 링크에는 무작위 엽서 식별값이 담겨요. 링크를 열면 서버가 공유 가능한 서명과 보관된 내용이 같은지 확인한 뒤 위의 답장 링크로 연결해요. 링크를 가진 사람은 사연, 답장과 보내는 사람 정보를 볼 수 있지만 계정이나 방송 접수 내역을 관리할 수는 없어요. 엽서나 계정을 삭제하면 짧은 링크는 사용할 수 없으며, 이미 전달된 기존 답장 링크나 따로 저장한 사본까지 삭제되지는 않아요. 삭제 전에 링크를 이미 연 사람은 답장을 계속 볼 수 있어요. 링크에는 엽서함에서 공유된 방문임을 구분하는 공통 유입 표시를 붙여요.
- ‘답장 이미지 저장’의 엽서 이미지는 기기 안에서 만들어지고, 서버로 보내지 않아요.
- ‘라디오 초대 카드’는 라디오 소개와 공용 방송 주소만 담아요. 사연, 이름, 뒷자리 번호, 답장이나 판정과 서명은 넣지 않아요. 카드는 기기 안에서 만들고, 공유를 누르면 선택한 앱에 이미지나 공용 초대 링크를 전달해요. 초대 링크에는 초대 카드에서 온 방문임을 나타내는 공통 표시만 붙어요.
- ‘Google 캘린더에 추가’를 누르면 예정된 한 시간, 공용 방송 주소와 공통 안내 문구를 Google 캘린더의 일정 작성 화면으로 보내요. 사연, 이름, 뒷자리 번호, 접수 번호와 서명은 보내지 않아요. Google 캘린더에서 직접 ‘저장’을 눌러 추가하며, Google의 저장·동기화 설정과 개인정보처리방침이 적용돼요. 라디오는 달력 계정에 접근하지 않고, 편성 변경도 일정에 자동 반영되지 않아요.
5. 엽서가 도착하는 시각
방송에 보낼 때 계신 곳에서 서울 방송국까지의 대략적인 거리를 계산해 방송 자리를 정해요. 이때 쓰는 위치는 브라우저에 위치 권한을 묻지 않고, 접속하신 통신 경로를 보고 배달망(Vercel)이 요청에 함께 실어 주는 대략적인 좌표예요. 도시 수준이라 정확한 주소는 알 수 없어요.
이 좌표는 거리(킬로미터)를 계산하는 그 순간에만 쓰고, 계산이 끝나면 버려요. 저장하지 않고, 기록에 남기지 않고, 사연과 함께 묶지도 않아요. 기기에는 배정된 방송 날짜와 시간, 자리 번호가 남고 좌표나 거리는 남기지 않아요. 위치를 알 수 없으면 기본값으로 계산해요.
6. 방송에 보낸 사연
엽서의 ‘방송에서 읽어 주세요’를 켠 채 보내거나(처음부터 켜져 있어요) 답장 화면에서 ‘방송에 보내기’를 누르면, 그 사연이 방송국 검수와 편성을 거쳐 FM 77.7 방송에서 모두에게 읽힐 수 있어요. 끈 채 보내고 버튼도 누르지 않으면 방송용 사연은 저장하지 않아요. 기기 기록과 요청 제한 기록은 각각 7장과 3장을 따라요.
- 무엇을 남기나요 사연 글자, 보내는 사람 이름(적은 경우)이나 뒷자리 번호, 화면에서 받은 DJ 답장과 그 DJ의 식별값(예전 사연은 당시 판정), 방송 DJ가 덧붙인 한마디, 만든 목소리 파일, 방송 시각, 신고 수, 그리고 보낸 곳을 가리는 값이에요. 이 값은 접속 IP 주소를 라디오만 아는 비밀 키로 바꾼 것이고, 한 사람이 하루에 보낼 수 있는 수를 세고 같은 사람이 여러 번 신고하는 걸 막는 데만 써요. IP 주소 자체는 저장하지 않고, 운영자는 이 값으로 사람을 찾지 않아요. 새로 방송에 접수한 사연에는 재생 확인이 자동 적용되며, 확인용 토큰의 해시와 아래 조건에 따른 확인 시각도 남겨요.
- 누가 듣나요 그 시간에 라디오를 켠 모든 사람이 듣고, 화면에서 사연 글자를 봐요. 방송이 나간 뒤 7일 동안은 ‘방송 다시 듣기’로 그 사연의 방송분(목소리)을 다시 들을 수 있어요. 엽서에 적은 보내는 사람 이름이 같이 나가고, 비워 두면 보낸 기기의 네 자리 뒷자리 번호가 나가요. 연락처는 나가지 않아요.
- 검수 모두가 듣는 방송이라 개인 답장보다 기준이 엄격해요. 보내면 TypeSafe AI의 판정 모델(Jev)과 OpenAI의 모더레이션이 방송에 실어도 되는 사연인지 자동으로 살펴요. 보내는 사람 이름도 모더레이션을 거치고, 걸리면 이름 대신 뒷자리 번호로 나가요. 욕설, 누군가를 알아볼 수 있는 내용, 광고처럼 싣기 어려운 사연은 싣지 않아요. 왜 안 실렸는지는 따로 알려 드리지 않아요.
- 어디서 만드나요 DJ가 사연 앞뒤로 하는 인사와 사연을 읽은 뒤의 이야기는 Microsoft Azure의 OpenAI 모델이 무보존 조건으로 써요. 새 사연은 원문과 화면의 DJ 답장을 원고 작성에 참고해요. 방송 시간의 DJ가 따로 쓰므로 화면의 답장을 그대로 읽지는 않아요. 예전 사연은 당시 판정 방향을 참고하되, 새로 만드는 음원에는 별도의 고정 판정 문장을 넣지 않고 DJ 이야기로 맺어요. 이 변경 전에 만든 음원은 바꾸지 않으므로 이후 방송이나 다시 듣기에서도 종전의 판정 문장이 나올 수 있어요. 목소리는 ElevenLabs(Eleven Labs Inc.)가 만들어요. 목소리를 만들 때 사연 글자, 보내는 사람 이름이나 뒷자리 번호, DJ 원고를 ElevenLabs로 보내요. 목소리 파일은 Cloudflare R2에, 사연 목록은 Supabase 데이터베이스(한국 서울 리전)에 둬요.
- 음성 합성 업체의 보관 ElevenLabs 음성 합성에는 앞서 설명한 Vercel AI Gateway의 무보존 조건이 적용되지 않아요. ElevenLabs는 기본적으로 입력 원고와 생성 음성을 보관하며, 보관 기간은 서비스 제공·보안 등 처리 목적과 적용 정책에 따라 정해요. 운영자는 ElevenLabs 계정의 데이터 사용(모델 개선) 설정을 꺼 두어, 설정을 끈 뒤 보낸 원고와 그 원고로 만든 음성은 ElevenLabs의 모델 개선에 쓰이지 않아요. 그 전에 보낸 것에는 이 설정이 적용되지 않아요. 라디오에서 파일을 지워도 ElevenLabs의 기록까지 함께 삭제되는 것은 아니에요. 자세한 내용은 ElevenLabs 개인정보처리방침과 보관 안내에서 확인할 수 있어요.
- 얼마나 두나요 배정된 방송 시각으로부터 7일이 지나면 사연 글자와 목소리 파일이 삭제 대상이 돼요. 싣지 못했거나 방송 전에 내려간 사연은 거절되거나 내려간 시각부터 하루 뒤에 삭제 대상이 돼요. 정기 정리 때 사연을 지우고 파일 삭제를 처리해요. 저장소 장애로 파일을 바로 지우지 못하면 삭제할 파일을 가리키는 식별값만 남겨 재시도해요. 이 재시도 기록에 사연 글자나 이름은 담지 않아요.
- 내리고 싶으면 방송을 들은 서로 다른 세 사람이 신고하면 바로 내려가요. 신고로 내려간 사연은 운영자가 들어 보고 잘못 내려갔으면 복구할 수 있게 목소리 파일을 이틀 동안 남겨 둔 뒤 삭제를 요청해요. 복구하면 새 방송 시각에 그 시간 DJ 목소리로 다시 만들고, 신고된 목소리 파일은 삭제를 요청해요. 신고는 그 사연이 방송되는 시간에만 받아요. 보낸 분이 내리고 싶으면 사연 글자를 적어 아래 문의처로 알려 주세요. 운영자도 수시로 살펴 바로 내려요. 내리면 새 방송 목록에서 바로 빠지고 목소리 파일 삭제를 요청해요. 파일 삭제가 실패하면 정기 정리 때 다시 시도하므로 완료까지 더 걸릴 수 있어요. 다만 이미 방송을 들은 사람의 기억이나 기기에 남은 것은 되돌릴 수 없어요.
새로 방송에 접수해 방송 시간을 배정받으면, 별도 선택 없이 무작위 재생 확인 토큰을 한 번 발급해 보낸 기기에 저장해요. 서버에는 그 토큰의 SHA-256 해시만 저장해요. 그 기기에서 자신이 보낸 해당 사연의 본방 또는 다시 듣기 음원이 음소거되지 않고 음량이 0보다 큰 상태로 10초 이상 진행되면 사연 번호, 현재 방송분의 버전, 토큰, 본방·다시 듣기 구분을 암호화된 연결로 보내요. 운영자 화면에는 확인 시각과 구분을 표시하고, 토큰 원문·사연 기록 목록은 보여 주지 않아요. 이는 브라우저가 보낸 재생 신호이지, 사람이 실제로 소리를 들었다는 증명은 아니에요. ‘확인 기록 없음’도 듣지 않았다는 뜻이 아니에요. 기기 기록을 지웠거나 늦은 재편성 전에 기록이 만료되면 이후 재생 신호를 보낼 수 없어요. 기존에 확인 토큰 없이 접수한 사연에는 소급 적용하지 않아요. 확인 기록과 토큰 해시는 해당 사연과 함께 위 보관 기간이 끝나면 삭제 대상이 돼요.
선택한 방송 알림 내 사연에서 알림 받기를 누르고 브라우저 권한을 허용하면, 알림을 전달할 구독 주소(endpoint)와 암호화 키(p256dh·auth), 사연과 구독의 연결, 예정 시각과 전송 상태를 서버에 보관해요. 신청·조회·해제 때 사연 번호와 기기의 확인 토큰, 또는 로그인 세션과 계정의 방송 접수 연결로 보낸 사람임을 확인하며, 알림 테이블에는 사연 글자·이름·토큰 원문을 복제하지 않아요. 브라우저가 사용하는 푸시 전달 서비스에 구독 주소와 암호화된 일반 방송 안내를 보내요. 알림 내용과 알림을 눌러 여는 주소에는 사연·이름·토큰을 넣지 않아요. 전송 상태는 전달 서비스의 접수 여부이며 사람이 알림을 받거나 읽었다는 증명이 아니에요. 연결과 전송 기록은 원본 사연의 보관 기간을 넘기지 않고, 사연이 거절되거나 삭제되면 정기 정리 때 지워요. ‘방송 알림 끄기’나 ‘기록 지우기’의 해제가 완료되면 해당 연결을 바로 지우고, 다른 연결이 남지 않은 구독도 지워요.
7. 선택 로그인, 내 엽서함과 기기 기록
선택 로그인 로그인 버튼이 제공될 때 Google, 카카오 또는 네이버에서 직접 선택해 로그인할 수 있어요. 계정 연결에 필요한 제공자 식별값, 이메일, 로그인 세션과 제공자가 발급한 인증 토큰을 서버에 저장해요. 접근·갱신 토큰은 암호화해 저장해요. 별명은 직접 정하고, 기본 그림과 좋아하는 DJ를 선택할 수 있어요. 소셜 계정의 실명이나 사진을 방송 이름과 그림으로 자동 사용하지 않아요. 이 계정 정보는 계정 삭제 시 지워요.
내 엽서함에 보관 답장 아래의 ‘내 엽서함에 보관’을 누르거나 ‘이 기기의 엽서 가져오기’에서 고른 경우에만 사연, 답장, 보내는 사람 정보, 보낸 시각, 검증 정보와 연결 가능한 방송 식별값을 계정에 복사해요. 최대 100장까지 보관하며 엽서를 직접 삭제하거나 계정을 삭제할 때까지 남아요. 엽서 보관은 방송 공개와 별개예요. 기기에서 가져온 사본은 검증 여부를 구분하고, 기기의 비공개 재생 확인 토큰 원문은 계정 엽서함으로 복사하지 않아요. 계정 엽서를 삭제해도 기존 기기의 원본이나 이미 접수된 방송 사연은 삭제되지 않아요.
로그인 중 작성 새로 작성한 사연과 답장을 기기의 비회원 기록에 자동 저장하지 않아요. 직접 보관하지 않은 결과는 현재 탭에서만 남고, 로그아웃하거나 계정을 바꾸면 그 계정의 화면과 임시 데이터를 지워요. 로그인 중 방송에 접수한 사연은 계정에 소유 관계를 연결해 다른 기기에서도 방송 접수와 알림을 관리할 수 있어요. 이 연결은 방송 사연의 보관 기간을 넘기지 않아요. 계정 삭제 시 프로필·보관 엽서·로그인 정보와 이 연결을 삭제하지만 이미 방송에 접수된 공개 사연을 철회하지는 않아요. 방송 철회는 6장의 방법으로 문의해 주세요.
로그인하는 동안의 초안 로그인 버튼을 직접 누를 때 작성 중인 글과 이름, 방송 공개 선택, 이미 받은 일반 답장과 보관·방송 권한값을 현재 탭의 sessionStorage에 잠시 담을 수 있어요. 로그인 후 한 번 복원하거나 10분이 지난 기록을 읽을 때, 로그아웃할 때 지워요. 새로 답장을 생성하려고 사연을 다시 전송하지 않아요. 로그인 쿠키와 엽서함 API 응답은 서비스 워커 캐시에 저장하지 않아요.
로그인하지 않고 보낸 ‘내가 보낸 엽서’ 기록은 브라우저 저장소(localStorage)에 남아요. 사연 글자, 보내는 사람 이름이나 뒷자리 번호, DJ 답장과 답장한 DJ(예전 엽서는 당시 판정), 원래 대답을 확인하는 서명, 방송 신청 권한을 확인하는 값, 방송 자리와 이 기기에서 재생이 시작됐는지, 보낸 시각이 들어가요. 방송에 접수하며 발급받은 재생 확인 토큰도 같은 기록에 남아요. 일반 기록은 최근 30개를 보낸 지 7일까지, 재생 확인 토큰이 있는 방송 사연은 별도로 최근 75개를 보낸 지 14일까지 보관해요. 재편성으로 방송 시각이 뒤로 밀려도 그동안 같은 기기에서 재생 확인을 보낼 수 있게 하기 위해서예요. 이 기록은 기본적으로 서버로 보내지 않아요. 다만 로그인 후 ‘이 기기의 엽서 가져오기’로 직접 고른 사본은 위 설명처럼 서버에 저장해요. 기록의 답장을 다시 여는 데에는 서버 요청이 필요 없고, 방송 알림 상태는 아래 설명처럼 따로 조회해요. 그 사연을 공유하거나 방송에 보내면 해당 사연과 서명 등 필요한 값이 전송돼요. 재생 확인 토큰이 있는 사연은 위 6장의 조건에서 신호를 자동으로 보내요. 남에게 보이기 싫으면 목록 옆 ‘기록 지우기’를 누르거나 브라우저 저장소를 비우면 돼요. 여러 사람이 같이 쓰는 기기라면 기록이 그대로 보이니 조심해 주세요. 마음이 많이 힘든 사연은 애초에 기록하지 않아요.
방송에 보낸 사연은 몇 시 방송인지와 이 기기에서 본방 재생이 시작됐는지도 같은 기록에 남아요. 라디오를 껐는지 켰는지, 음량을 얼마로 맞춰 뒀는지, 책상 위 큐브를 어디까지 돌려 뒀는지, 엽서의 보내는 사람 이름과 이 기기의 뒷자리 번호도 같은 저장소에 한 줄씩 남겨요. 답장 이미지를 처음 저장하거나 공유할 때 AI DJ가 쓴 답장이라는 안내를 이미 보였는지도 같은 저장소에 남겨요. 다음에 왔을 때 그 상태를 지키려고 쓰는 값이에요.
좋아하는 DJ를 고르면 그 선택도 이 브라우저 저장소에 남아요. 다른 기기와 동기화하지 않으며, 편성표의 ‘DJ 선택 지우기’를 누르거나 브라우저 데이터를 지울 때까지 기억해요. 저장이 차단되어 있으면 지금 열린 탭에서만 기억하고, 새로고침하거나 탭을 닫으면 사라져요. DJ를 선택하거나 지우는 동작과 선택한 DJ의 종류는 이용 통계에 포함돼요(8장).
홈 화면 추가 안내를 닫으면 닫은 시각을 이 브라우저에 저장해 7일 동안 다시 제안하지 않아요. 7일이 지난 뒤 다음 확인 때 지우며, 저장이 차단되면 열린 탭에서만 기억해요. 안내를 위한 청취 시간은 열린 페이지에서만 세고 서버에 저장하지 않아요. 다만 이 페이지에서 소리가 난 재생이 30초와 5분을 처음 넘겼는지는, 그때 들리던 소리의 종류(방송 음악 또는 DJ 목소리)와 함께 이용 통계로 보내요(8장). 서비스 워커는 연결이 끊겼을 때 보여 줄 고정 안내 화면과 라디오 아이콘만 기기에 저장해요. 방송 화면, 사연이 담긴 주소, API 응답과 음원은 이 캐시에 넣지 않아요. 저장한 안내와 아이콘은 버전 갱신 때 정리하며 브라우저의 사이트 데이터를 지워도 없어져요.
방송 알림을 신청할 때 구독 주소를 브라우저 저장소에도 남겨요. 권한을 바꾸거나 다시 방문한 뒤에도 기존 알림을 해제하는 데 사용하며 ‘기록 지우기’로 해제를 마치면 지워요. 알림 상태를 확인할 때는 현재 연 사연이나 펼친 목록의 사연 번호·확인 토큰·구독 주소만 서버로 보내고, 엽서 글이나 전체 기록 목록은 보내지 않아요. 기록을 지울 때에는 연결을 해제하기 위해 보관 중인 사연 번호·확인 토큰 목록을 보내요. 연결 해제에 실패하면 다시 시도할 수 있도록 기기 기록을 유지해요. 브라우저 데이터를 직접 지우는 것은 서버의 알림 해제와 다르므로 먼저 라디오에서 알림을 꺼 주세요.
8. 쿠키, 분석 도구, 광고
| 항목 | 지금 | 처리하는 정보와 기간 |
|---|---|---|
| 운영자 로그인 쿠키 | 스튜디오 로그인에만 써요 | 로그인 유지용 HttpOnly·Secure 쿠키가 최대 12시간 남아요. 청취자 계정의 로그인 쿠키와 별개예요. 로그아웃하면 지워요. |
| 선택 로그인 쿠키 | 청취자가 로그인을 선택했을 때만 써요 | 계정 로그인 유지용 HttpOnly·Secure 쿠키가 최대 7일 남아요. 로그아웃하면 지워요. 인증 과정에서는 위조 요청을 막는 임시 쿠키도 사용할 수 있어요. |
| Google Analytics 4 Google LLC | 이용 통계에 사용해요 | 방문과 유입 경로, 브라우저·기기 정보, 라디오 켜기·30초와 5분 청취 도달·사연 보내기·공유·DJ 선택 같은 동작 분류, 화면이 뜨고 반응하는 속도 측정값(등급과 숫자)을 처리해요. 방문과 세션을 구분하는 _ga 계열 쿠키의 유효 기간은 2년으로 설정하며, 재방문 시 갱신돼요. 브라우저 정책에 따라 더 일찍 만료될 수 있어요. |
| 광고 (Google AdSense 또는 카카오 AdFit) | 꺼져 있어요 | 광고 회사가 광고를 고르고 부정 클릭을 막으려고 쿠키나 기기 정보를 쓸 수 있어요. 맞춤형 광고라면 방문 기록 같은 행태정보가 처리돼요. |
라디오가 직접 보내는 분석 정보에는 사연 글자, 보내는 사람 이름, 뒷자리 번호, 음성, 서명이나 방송 신청 권한값, 계정 식별값이나 이메일을 넣지 않아요. 페이지 주소에서는 사연과 서명 등을 제거하고, 유입 경로는 사이트 주소와 정해진 캠페인 분류로만 전달해요. Google 신호와 광고 개인화는 꺼 두며, Google과 통신하는 과정에서 IP 주소 등 접속 정보가 전달될 수 있어요.
유럽경제지역·영국·스위스에서는 분석·광고 저장 동의의 기본값을 거부로 두고, 동의 없이 저장 허용으로 바꾸지 않아요. 저장 동의 상태에 따라 쿠키 없이 방문 신호가 전달될 수 있어요. 쿠키를 원하지 않으면 브라우저에서 쿠키를 차단하거나 삭제할 수 있어요. 분석 전송을 막으려면 브라우저의 추적 차단 기능이나 지원되는 브라우저용 Google Analytics 차단 부가 기능을 사용할 수 있어요. 분석을 차단해도 라디오를 들을 수 있어요.
쿠키의 유효 기간과 Google 서버에 보관되는 분석 정보의 기간은 별개예요. 서버의 보관 기간은 라디오의 분석 속성 설정과 Google 정책을 따라요. 쿠키 사용 안내, 데이터 보관 안내, Google 개인정보처리방침에서 자세한 내용을 확인할 수 있어요. 광고를 켜면 그 전에 이 방침에 반영할게요.
9. 국외 이전
서비스를 이용하거나 사연을 보낼 때 아래처럼 해외 서버에서 정보가 처리될 수 있어요. 사연 전송을 원하지 않으면 사연을 보내지 않을 수 있으며, 이 경우 사연에 대한 대답을 받을 수 없어요. 이용 통계의 전송을 제한하는 방법은 8장에서 안내해요.
| 받는 곳 (연락처) | 국가 | 항목 | 목적 | 보관 기간 |
|---|---|---|---|---|
| Google LLC (Google Analytics 4) 개인정보처리방침 googlekrsupport@google.com | 미국 회사, 전 세계 서버에서 처리 가능 | 쿠키 식별자, 방문·유입 경로, 브라우저·기기 정보, 기능 이용 분류, 화면 속도 측정값, IP 주소 등 통신 정보 | 방문·유입·서비스 이용 통계 | 분석 속성의 보관 설정과 Google 정책에 따름. 기기 쿠키의 유효 기간과 별개(8장) |
| Vercel Inc. (호스팅, Vercel AI Gateway) privacy@vercel.com | 미국 (서비스 지역은 서울 리전) | 사연 글자, 접속 기록 | 서비스 제공, 보안 | 사연: 모델 요청이 끝나면 바로 삭제(무보존) 접속 기록: 운영자 화면 기준 1일 (Vercel 내부 보관은 Vercel 정책을 따름) |
| TypeSafe AI, Inc. (검수·판정 모델) privacy@typesafe.ai | 미국 | 사연 글자 | 사연의 요청 의도·안전성·개인 식별 위험 검수, 구형 사연의 예·아니요 판정, 방송 검수 | 대답을 만드는 동안만 (법적 의무가 있으면 예외) |
| Microsoft Corporation (Azure의 OpenAI 모델, Vercel AI Gateway 경유) privacy.microsoft.com | 미국 회사, 처리 지역은 Vercel AI Gateway가 정함 | 사연 글자, 방송 원고에 참고하는 개인 DJ 답장 | 개인 DJ 답장, 방송 사연 앞뒤 인사와 DJ 이야기, 구형 사연의 바꿔 물을 질문 제안 | 무보존 조건으로 만드는 동안만 |
| Eleven Labs Inc. (ElevenLabs) elevenlabs.io/privacy-policy legal@elevenlabs.io | 미국 등(정책상 미국·네덜란드·싱가포르 서버) | 사연 글자, 보내는 사람 이름이나 뒷자리 번호, DJ 원고, 생성 음성 | 목소리 합성 | 입력·출력 기본 보관. 처리 목적과 ElevenLabs 정책에 따름. 모델 개선 사용 설정은 꺼 둠(끈 뒤 보낸 원고·음성부터 적용). 라디오의 7일 삭제와 별개(6장) |
| OpenAI (방송 검수) openai.com/policies/privacy-policy | 미국 | 방송에 보낸 사연 글자와 보내는 사람 이름, DJ 인사 | 방송 검수 | OpenAI 정책(API 기본 최대 30일) |
| Cloudflare, Inc. (목소리 파일 저장) cloudflare.com/privacypolicy | 미국 | 방송 목소리 파일 | 방송 재생 | 배정된 방송 시각부터 7일 뒤 삭제 대상. 내리면 삭제 요청, 실패하면 재시도(6장) |
| Supabase, Inc. (계정·방송·운영 기록) supabase.com/privacy | 미국 회사, 저장은 한국 서울 | 선택 로그인 계정 식별값·이메일·세션·프로필과 직접 보관한 엽서, 방송 사연·이름·DJ 답장과 식별값(예전 사연의 판정), 방송 사연의 재생 확인 시각과 토큰 해시, 선택한 알림 구독 주소·암호화 키·사연 연결·전송 상태, HMAC으로 가린 요청자와 요청 횟수, 무작위 청취 번호, 삭제 재시도용 파일 식별값 | 선택 로그인과 계정 엽서함, 방송 편성, 방송 사연의 재생 확인과 선택한 알림 발송, 신고·요청 제한, 청취 수 집계, 파일 정리 | 계정 정보는 계정 삭제까지, 보관 엽서는 엽서나 계정 삭제까지(7장). 알림 연결·전송 기록은 원본 사연의 보관 기간 이내(해제 완료 시 연결 즉시 삭제). 사연과 확인 기록은 방송 시각부터 7일, 거절·방송 전 내림부터 1일 뒤 삭제 대상. 요청 횟수는 최대 2일 뒤 삭제 대상. 청취 신호는 10분 뒤 정리. 파일 식별값은 삭제 완료까지(3·6장) |
보내는 때와 방법: 방문·기능 이용 시 분석 정보가, 사연을 보낼 때 해당 사연이, 재생 확인 조건을 충족할 때 6장의 재생 신호가 암호화된 통신(HTTPS)으로 전달돼요. 처리 항목과 보관 기간은 위 내용과 각 회사의 정책을 따라요.
10. 방송과 대답을 만드는 방법
새 엽서의 답장은 AI가 사연의 내용을 읽고 쓴 짧은 글이며, 결과의 확률이나 미래 예측이 아니에요. 예전 엽서에는 당시의 예·아니요 대답이 남을 수 있어요. DJ 목소리는 합성 음성이에요. 방송에 흐르는 노래도 음악 생성 모델로 만든 곡이에요. 방송에 보낸 사연의 앞뒤 인사와 DJ 이야기는 자동 작성 모델이 써요. 새 원고에는 다른 청취자의 사연이나 DJ 경험담을 지어내지 않도록 지시하고, 원래 사연에 담긴 장면을 중심으로 공감과 응원 또는 작은 제안을 만들어요. 이 변경 전에 만든 음원에는 자동으로 지어낸 다른 청취자의 일화나 DJ 경험담이 남아 있을 수 있어요. 곡 사이 멘트 일부와 DJ가 바뀔 때의 대화는 전날 밤 자동 작성 모델이 미리 써요. 여기에는 날짜, 서울 날씨 예보, 대본을 쓰는 날 저녁까지 편성된 공개 사연 수만 쓰고 사연 글은 넣지 않아요. 답장과 방송은 중요한 결정이나 전문적인 상담을 대신하지 않아요. 건강이나 돈에 관한 일상 경험은 나눌 수 있지만, 진단·투자·대출·법률 등 개인적인 전문 판단을 요청하면 전문가와 확인하도록 안내해요. 마음이 많이 힘든 사연에는 상담 전화(자살예방상담전화 109, 정신건강위기상담 1577-0199)를 알려 드려요.
11. 권리와 문의
방송에 보낸 사연은 6장, 요청 횟수 등 운영 기록은 3장에 적힌 기간 동안 보관해요. 내리거나 지워 달라는 요청, 그 밖에 궁금한 점은 아래로 연락해 주세요. 확인해서 답해 드릴게요.
개인정보 보호책임자: 유재영
문의: hello@magicradiofm.com
개인정보 침해 신고와 상담은 개인정보침해신고센터(국번 없이 118, privacy.kisa.or.kr)에서도 받아요.