지원
진행률 : 80%
인프라
-
클라우드
- 하루에 약 요금이 16000원씩 나오기때문에 클라우드 제공업체 GCP로 선택
- K8S를 사용해 MSA 인프라 구성
- Terraform을 사용하여 인프라를 구성하여 클라우드 리소스를 자동화 하여 관리하고 문서화
- VPC를 구성하여 외부에서 함부로 들어올 수 없도록 안전하게 구성
- Gateway를 통해서만 요청을 받을수 있게하고 NAT를 이용하여 내부에서 외부로의 요청이 가능하도록 구성
-
CI/CD
- Helm Chart를 이용해 K8S 리소스를 템플릿화하여 관리
- GCR(google container registry)를 사용하여 서버 이미지 관리
- Github Actions 와 ArgoCD를 사용하여 배포 자동화 구현
퀴즈 서비스
- 퀴즈 등록/수정/삭제
- 좋아요 및 퀴즈 선택지별 선택 수 관리
- 좋아요와 퀴즈 선택지별 선택 수는 동시성 이슈가 발생할 가능성이 높고 실시간성은 그렇게 중요하지않다고 판단, Redis를 버퍼로 사용하여 10초동안 Redis에 쌓다가 DB에 Batch 업데이트로 구현, 멀티서버 환경임을 고려하여 스케쥴링 락(Shedlock) 사용
- 퀴즈 조회DB(Elastic Search)와 CDC 동기화
- 연관관계가 있는 테이블을 CDC를 통해 동기화할때 메시지 순서 이슈가 발생함, Kafka의 서로 다른 토픽끼리는 key가 같더라도 메시지 순서가 보장되지않음 → 따라서 CDC의 모든 테이블의 이벤트를 한 토픽으로 발행되게끔 커스텀
민혁
진행률 : 돌아만가는거면 80%
게임 서비스
- 게임 생성/참가
- 게임 방 설정/강퇴
- 게임 내 채팅
- 문제 제출 및 채점
- 실시간 리더보드