ChatLite는 데이터를 이렇게 처리합니다

ChatLite는 설치나 계정 없이 대화할 수 있게 해 줍니다. 이 페이지는 내 데이터가 어디로 가는지 쉬운 말로 설명하며, 현재 서비스가 동작하는 방식을 기준으로 합니다.

내 기기에 남는 정보

닉네임, 프로필 사진, 연락처, 대화방, 대화 기록은 브라우저(IndexedDB와 localStorage)에 저장됩니다. 로그인하면 세션 토큰도 브라우저에 보관됩니다. 사이트 데이터를 지우면 함께 삭제됩니다.

통화와 화면 공유

음성, 영상, 화면 공유는 WebRTC를 사용합니다. 브라우저는 먼저 직접 연결을 시도하며, 이때 공개 STUN 서버로 자신의 네트워크 주소를 확인합니다. 직접 연결이 안 되면 사용할 수 있을 때 중계(TURN)가 쓰일 수 있습니다. ChatLite는 자체 중계 서버를 운영하지 않고 아직 목록에 있는 외부 TURN 항목은 가용성이 보장되지 않으므로, 일부 네트워크에서는 통화가 연결되지 않습니다. 미디어는 DTLS-SRTP로 암호화되므로 중계가 쓰이더라도 암호화된 트래픽만 전달하지만, IP 주소나 시간 같은 연결 메타데이터는 볼 수 있습니다.

메시지와 파일

두 브라우저가 직접 연결되어 있으면 1:1 메시지와 파일은 암호화된 WebRTC 데이터 채널로 전달됩니다. 그렇지 않으면 암호화된 WebSocket을 통해 서버를 거칩니다. 그룹 메시지는 항상 서버를 거칩니다. 받는 사람이 오프라인이면 서버 메모리(사용자당 최대 50개, 서버 재시작 시 삭제)에 대기하고, 계정에 연결된 기기라면 데이터베이스에 최대 14일 동안 보관됩니다. 서버를 거치는 파일은 8MB까지, 직접 전송은 100MB까지입니다.

서버가 볼 수 있는 정보

서버는 연결 설정(시그널링), 접속 상태, 입력 중 표시, 읽음 확인, 그리고 연락처와 공유하는 닉네임·프로필 사진·상태 메시지를 처리합니다. 서버가 중계하는 메시지와 파일은 ChatLite가 현재 애플리케이션 수준의 종단 간 암호화를 제공하지 않기 때문에 기술적으로 내용을 읽을 수 있습니다. 운영 로그에는 닉네임과 익명 사용자 ID가 포함될 수 있습니다. 문의 양식을 사용하면 입력한 문의 내용과 선택적으로 적은 이름·이메일 주소가 운영자가 읽고 답변하는 용도로만 서버에 저장됩니다.

푸시 알림

알림을 켜면 브라우저가 Google Firebase Cloud Messaging에 토큰을 등록합니다. 오프라인일 때 메시지를 받으면 보낸 사람 이름과 메시지 앞부분(또는 파일 이름)이 담긴 알림이 이 서비스를 통해 전달됩니다.

선택 계정

대화하는 데 계정은 필요 없습니다. 계정을 만들면 이메일 주소, bcrypt로 해시된 비밀번호, 연결한 기기, 세션 기록(리프레시 토큰은 해시되어 저장)을 저장합니다. 계정은 위에서 설명한 다중 기기 전달을 가능하게 합니다.

이용 현황 측정

ChatLite에는 운영자가 켜고 끌 수 있는 자체(퍼스트파티) 이용 현황 측정이 있으며, 이를 위해 제3자 분석 도구를 쓰지 않습니다. 측정이 켜져 있으면 ChatLite는 소개 페이지나 앱이 열렸는지, 초대가 만들어지거나 열렸는지, 친구가 추가되었는지, 직접 연결 또는 서버 경유 연결이 성공·실패했는지, 메시지·파일·통화·화면 공유가 쓰였는지, 세션이 대략 얼마나 이어졌는지 같은 짧은 제품 이벤트를 기록하며, 페이지 언어, 브라우저인지 설치된 앱인지, 기기 종류와 브라우저 계열 같은 대략적인 환경 정보를 함께 기록합니다. 메시지나 파일의 내용, 파일 이름, 닉네임, 이메일 주소, 사용자 ID, 방 ID, IP 주소는 기록하지 않으며 자동화된 클라이언트의 요청은 제외합니다. 이벤트는 열려 있는 브라우저 탭에만 존재하는 무작위 식별자로 연결되고, 초대 링크에는 초대가 대화로 이어지는 수를 세기 위한 무작위 토큰이 들어갈 수 있으며, 초대를 연 브라우저는 그 사실을 7일 동안 기억합니다. 이벤트 행은 14일 후 삭제되고 식별자가 없는 일별 합계만 더 오래 보관됩니다. 이는 제품이 잘 동작하는지 이해하기 위한 제한된 이벤트 메타데이터이며 여러분의 프로필이 아니지만 엄밀한 의미의 익명은 아닙니다. 어느 서버에 접속하든 브라우저의 IP 주소는 그 서버에 보이며, 이는 서버가 볼 수 있는 정보에서 설명한 것과 같습니다. 측정이 꺼져 있으면 아무것도 생성하거나 저장하지 않습니다.

광고

ChatLite의 공개 웹 페이지(홈, 이용 가이드, 도구, 알아보기 글, 소개 페이지)에는 Google AdSense가 제공하는 광고가 표시됩니다. Google을 포함한 제3자 공급업체는 쿠키를 사용해 사용자가 이 웹사이트나 다른 웹사이트를 이전에 방문한 기록을 바탕으로 광고를 게재합니다. Google의 광고 쿠키 사용으로 Google과 파트너는 이 사이트 및 인터넷상의 다른 사이트 방문 기록에 따라 사용자에게 광고를 게재할 수 있습니다. 맞춤 광고는 Google 광고 설정(https://adssettings.google.com)에서 해제할 수 있습니다. 채팅 앱 자체(/app/ 아래 페이지)에는 광고가 없고 광고 코드도 불러오지 않으며, 브라우저 도구가 카메라, 마이크, 화면, 네트워크 주소를 ChatLite나 광고 업체에 보내는 일은 없습니다.

브라우저 도구

화면 녹화기, 온라인 녹음기, 웹캠 도구, QR 코드 생성기는 모든 처리를 브라우저 안에서 합니다. 녹화물, 사진, 카메라 화면, 마이크 소리, 공유한 화면, QR 코드에 넣은 텍스트는 우리 서버나 다른 곳으로 전송되지 않고, 브라우저에 저장되지 않으며, 사용 측정에도 집계되지 않습니다. 이 데이터는 탭을 닫거나 새로고침하기 전까지 열려 있는 탭의 메모리에만 있고, 다운로드한 것은 내 기기의 파일입니다. 카메라·마이크 테스트와 화면 공유 확인도 같은 방식입니다.

통화 품질 측정은 우리 서버에 접속하는 유일한 도구이며, 버튼을 누른 뒤에만 접속합니다. 쿠키 없는 평범한 요청 30개를 이 사이트의 고정된 주소로 보내고 응답 시간을 내 브라우저에서 잽니다. ChatLite 애플리케이션은 항상 같은 아주 작은 응답을 돌려주고, 요청과 내 결과를 저장하지 않으며, 이에 대한 로그 줄도 쓰지 않습니다. ChatLite의 웹 서버 구성에서는 이 주소에 대한 접속 기록(access log)을 꺼 둡니다. 나와 이 사이트 사이에 있는 다른 웹 서버나 네트워크는 원칙적으로 자체 기록을 남길 수 있으며, 이 페이지는 ChatLite 자체의 구성만 설명할 수 있습니다. 악용을 막기 위해 애플리케이션은 네트워크 주소별 요청 횟수를 메모리에서 1분 동안 세고 정해진 횟수를 넘으면 거절하는데, 이 카운터는 디스크에 쓰이지 않습니다. 서버 부하를 피하려고 대역폭 측정은 제공하지 않습니다.

WebRTC 연결 테스트는 모든 WebRTC 통화처럼 Google의 공개 STUN 서버에 내 공인 주소를 물어봅니다. 주소는 내 화면에만 표시되며 우리에게 전송되지 않습니다. 사용자 에이전트 문자열로 메신저 등의 내장 브라우저가 감지되면 도구 페이지가 외부 브라우저로 열라는 안내를 보여 주는데, 이 확인은 내 브라우저 안에서 이루어지고 아무것도 전송되지 않습니다.