Skip to content

인프라 다이어그램

eeekeee edited this page Feb 1, 2026 · 2 revisions

인프라 다이어그램

인프라 다이어그램

개요

TADAK은 NCP(Naver Cloud Platform) 기반으로 배포되며, Docker 컨테이너 환경에서 운영됩니다. API 서버와 채점 서버를 분리한 마이크로서비스 구조로 독립적인 스케일링과 장애 격리가 가능합니다.

주요 구성 요소

구성 요소 역할
Nginx 리버스 프록시, SSL 인증서 관리, 정적 파일 서빙
API Server REST API, WebSocket (매칭/배틀/채팅), 비즈니스 로직
Judge Server 코드 채점 전용 서버, Docker 기반 샌드박스 실행
MySQL 영구 데이터 저장 (User, Battle, Submission, Problem)
Redis 캐싱, Pub/Sub 메시징, 매칭 대기열, 배틀 상태 관리

통신 방식

구간 프로토콜 설명
Client ↔ Nginx HTTPS, WSS SSL 암호화 통신
Nginx ↔ API Server HTTP, WS 내부 프록시
API Server ↔ Redis TCP 캐시, Pub/Sub, 큐
API Server ↔ MySQL TCP 데이터 영속화
API Server ↔ Judge Server Redis (BullMQ) 비동기 작업 큐
Judge Server → API Server Redis Pub/Sub 채점 결과 실시간 전달

배포 환경

  • 컨테이너화: Docker + Docker Compose
  • 환경 분리: 개발/프로덕션 환경 설정 분리
  • 무중단 배포: 컨테이너 기반 롤링 업데이트

Clone this wiki locally