-
Notifications
You must be signed in to change notification settings - Fork 0
인프라 다이어그램
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
- 환경 분리: 개발/프로덕션 환경 설정 분리
- 무중단 배포: 컨테이너 기반 롤링 업데이트
- OAuth 로그인 구현
- 매칭 시스템
- 실시간 관전 채팅 & 시스템 알림
- Docker 기반의 코드 실행 환경 개발
- NCP 배포 및 CI/CD, HTTPS 적용
- SSH 무차별 대입(Bruteforce) 공격에 대한 보안 강화
- 트래픽 확장을 고려한 서버 역할 분리
- Docker 기반 코드 실행 보안
- 이벤트 기반 비동기 통신
- 채점 서버 스케일 아웃 성능 분석