← 설명서로 돌아가기
기술 문서 및 데이터 정책
치지직 알림 봇은 디스코드 본사의 엄격한 보안 심사를 통과한 공식 인증 앱(Verified App)으로서, 유저의 프라이버시 보호를 최우선 가치로 삼고 있습니다.
Discord Verified App
1. 보안 및 개인정보 보호 정책
① Zero Privileged Intents: 기술을 통한 보안 증명
우리는 단순히 보안을 약속하는 것에 그치지 않고, 기술적으로 권한을 완전히 차단함으로써 보안을 '증명'합니다. 본 봇은 디스코드에서 규정하는 모든 민감한 권한(Privileged Gateway Intents)을 단 하나도 사용하지 않습니다(OFF).
- Message Content Intent (OFF): 봇은 유저의 채팅 내용을 감시하거나 읽을 수 없습니다. 오직 슬래시 명령어(/)를 통해서만 유저와 상호작용합니다.
- Server Members Intent (OFF): 서버의 전체 멤버 명부를 수집하거나 조회할 권한이 원천적으로 차단되어 있습니다.
- Presence Intent (OFF): 유저의 온라인 상태나 활동 정보를 일절 추적하지 않습니다.
[ 모든 Privileged Intents가 비활성화된 실제 설정 화면 ]
② 슬래시 명령어(Slash Commands) 전용 설계
모든 기능은 디스코드의 최신 API 규격에 맞춰 설계되었습니다. 봇은 유저가 직접 명령어를 입력할 때만 시스템이 깨어나 응답하며, 평상시에는 어떠한 데이터도 감시하거나 수집하지 않는 수동적인 구조를 유지합니다.
③ 공식 인증 및 신원 검증 (Verified)
치지직 알림 봇은 디스코드의 엄격한 보안 심사와 신원 검증을 모두 통과하여 공식 인증 배지를 획득하였습니다. 이는 총 인원수 1만명 이상의 규모에서도 제한 없이 안정적으로 작동하는 검증된 서비스임을 의미하며, 디스코드의 데이터 보호 정책을 완벽히 준수하고 있음을 보장합니다.
2. 최소 데이터 저장 및 관리
- 최소 데이터 원칙: 알림 전송에 필수적인 디스코드 채널 ID와 스트리머의 고유 ID(32자리 해시) 및 닉네임만을 저장합니다. 이름, 이메일, 멤버 리스트와 같은 개인 식별 정보(PII)는 일절 수집하지 않습니다.
- 격리된 보안 인프라: 모든 데이터는 Oracle Cloud 및 구글 클라우드 플랫폼(Google Cloud Platform)의 독립된 가상 환경 내에서 SQLite 데이터베이스로 관리되며, 외부 네트워크로부터의 접근이 엄격히 차단됩니다.
- 즉각적인 데이터 파기: 사용자가 설정을 삭제하거나 봇이 서버에서 퇴장할 경우, 해당 서버와 관련된 모든 데이터는 시스템에서 즉시 영구 파기됩니다.
3. 글로벌 분산 프록시 및 네트워크 안정성
보안성뿐만 아니라 알림의 '신속성'과 '가동률'에서도 최고의 사용자 경험을 제공합니다.
- 글로벌 5-Node 분산 프록시 아키텍처 (Global 5-Node Proxy Architecture): 한국(GCP-Seoul, GCP-Direct), 해외(Oracle Proxy 1, 2), 글로벌 엣지(Cloudflare Workers)로 구성된 5개의 독립 네트워크 노드를 구축했습니다. 모든 API 요청은 라운드 로빈(Round-Robin) 방식으로 순환하며 분산 처리되어 단일 서버 장애나 API 호출 제한(429)을 원천 방어합니다.
- 방대한 유동 IP 풀(Massive IP Pool) 활용: Google Cloud Functions가 위치한 GCP 서울 리전(asia-northeast3)의 약 19만 개(2026년 6월 14일 KST 기준 193,536개) 및 Cloudflare의 약 152만 개(1,524,736개)에 달하는 방대한 글로벌 IPv4 주소 네트워크를 기반으로 동작하여, 어떠한 형태의 네트워크 차단이나 쓰로틀링(Throttling)에도 유연하게 대처할 수 있는 압도적인 인프라 규모를 자랑합니다.
- 무중단 자동 장애 조치(Zero-Downtime Failover): 특정 노드에서 타임아웃이나 차단 응답이 발생하면, 단 1밀리초의 지연 없이 즉각 대기 중인 다음 노드로 요청을 우회(Retry)하여 알림 누락 확률을 0%에 가깝게 유지합니다.
- 트래픽 변조(Jitter) 기술: 기계적인 API 폴링으로 인한 봇 탐지를 방지하기 위해, 매 요청 사이에 무작위 난수 지연(0.1s~0.3s)을 부여하여 트래픽 패턴을 인간과 유사하게 변조하고 차단율을 극도로 낮췄습니다.
[ 5개 글로벌 노드의 실시간 건강 상태(Health Check) 모니터링 ]
4. Multi-Cloud 고가용성(HA) 및 데이터 동기화
2026년 5월 1일 적용된 최신 아키텍처를 통해 서비스의 24/365 무중단 운영을 보장합니다.
① High Availability (HA) 아키텍처
- Active-Passive Failover: 메인 노드(GCP)와 예비 노드(Oracle Cloud)가 상호 감시 체계를 유지합니다. 메인 노드 장애 발생 시 예비 노드가 30초 이내에 자동으로 역할을 승격(Promotion)하여 서비스를 지속합니다.
- Multi-Cloud Infrastructure: 서로 다른 클라우드 벤더의 인프라 분산을 통해 특정 벤더의 전역 장애 상황에도 서비스의 연속성을 보장합니다.
② 실시간 데이터 동기화 엔진 (Real-time Sync Engine)
- Query Mirroring Technology: Master 노드에서 발생하는 모든 데이터베이스 변경(INSERT, UPDATE, DELETE)은 REST API를 통해 Slave 노드로 즉시 미러링되어 99.9% 이상의 데이터 일치율을 유지합니다.
- Boot-time Full-Sync: 서버 재시작 시 상대 노드로부터 전체 스냅샷을 수신하여 장기 오프라인 이후에도 데이터 누락을 자동으로 보정합니다.
③ 중복 알림 및 상호작용 충돌 방지
- Startup Role Negotiation: 부팅 단계에서 상대 노드의 상태를 분석하여 Master가 존재할 경우 스스로 Stand-by 모드로 진입, 리소스 낭비와 중복 발송을 차단합니다.
- Smart Interaction Handling: Discord Slash Command 요청 시 Master 노드만 응답하도록 제한하여 유저 상호작용 시 발생하는 'Unknown Interaction' 에러를 해결했습니다.
5. 치지직 지역 제한(9004) 우회 및 로직 최적화
2026년 5월 3일 도입된 서울 리전 프록시(GCF)를 통해 특정 스트리머의 '국내 전용' 방송 설정으로 인한 'All nodes failed (500)' 및 9004 에러를 해결했습니다.
- 서울 리전 전용 중계 노드: Google Cloud Functions(asia-northeast3)를 활용하여, 서버의 물리적 위치에 관계없이 치지직 시스템에서 국내 접속으로 인정받는 한국 내 IP(2026년 6월 14일 KST 기준 193,536개 보유)를 확보했습니다.
- 지능형 API 라우팅: 지역 제한 우회가 필수적인 '라이브 API'는 서울 프록시를 최우선으로 사용하고, '커뮤니티 API'는 기존 분산 노드를 활용하도록 이원화하여 호출 효율을 극대화했습니다.
- 무중단 페일오버: 서울 프록시 호출 실패 시에도 즉시 다음 가용 노드로 자동 전환되는 로직을 적용하여, 어떠한 환경에서도 방송 감지가 중단되지 않도록 설계되었습니다.
6. 기술 스택 (Technical Stack)
- Infrastructure: GCP (Master & Seoul Proxy), Oracle Cloud (Slave)
- Runtime: Node.js (v20.x LTS)
- Frameworks: discord.js v14, Express.js (Sync Server)
- Database: SQLite3 (Distributed Mirroring)
- Communication: Axios (Inter-node secure communication)
- Scheduler: node-schedule (High-precision cron)
7. 권한 사용의 정당성
현재 요구하는 초대 권한(150528)은 오직 서비스 제공을 위한 기술적 필수 용도로만 사용됩니다.
- 채널 보기: 알림을 보낼 채널을 인식하기 위해 필요합니다.
- 메시지 보내기 & 링크 첨부: 치지직 방송/커뮤니티 알림 전송 및 시각적 자료(썸네일 등) 포함을 위해 사용됩니다.
- 모두 멘션하기: 알림 전송 시 @everyone, @here 또는 특정 역할을 멘션하기 위해 사용됩니다.
8. 데이터 삭제 요청 및 문의
자신의 데이터 삭제를 원하시거나 프라이버시 정책에 대한 문의가 있으신 경우, 아래의 연락처로 문의해 주시기 바랍니다.
📧 이메일: [email protected]