목록 보기
라이브채팅 플랫폼 구현기 1탄 : 개발 언어 및 기반기술 조사
아키텍처

라이브채팅 플랫폼 구현기 1탄 : 개발 언어 및 기반기술 조사

두줄요약

20만 동시 접속 실시간 채팅 요구를 위해 Kotlin·Spring Boot·WebSocket 기반을 선택했습니다.\nKafka 스트림과 아호-코라식으로 확장성과 실시간 금칙어 처리를 설계했습니다.

문제 상황

  • MMA 2022 라이브 환경의 기존 댓글 시스템 참여 불편과 실시간 채팅 플랫폼 필요성
  • 동시 접속자 20만 명, 메시지 송수신 1초 이내, 실시간 금칙어·도배 탐지·영구 저장 요구
  • 5개월 내 분석·설계·구현·성능 검증이 필요한 제한된 개발 인력과 일정

선택 이유

  • 학습 비용과 Coroutine 기반 비동기 구현을 고려한 Kotlin 선정
  • 운영 사례와 문서 신뢰도를 고려한 Spring Boot 채택
  • 전달 지연과 채팅 상태 불일치 최소화를 위한 WebSocket 선택
  • 유연한 메시지 스키마와 저장·조회 중심 특성에 맞춘 MongoDB 채택

구조와 흐름

  • WebSocket 서버와 부가 처리 워크로드 분리를 위한 Kafka 기반 스트림 처리
  • 금칙어·스팸 방지·채팅방 분리·지표 수집·캐시·영구 저장을 개별 스트림 프로세서로 구성
  • Kafka Streams DSL과 Kubernetes 기반 워크로드 운영으로 프로세서별 수직·수평 확장

성능/운영 포인트

  • Redis Pub/Sub의 노드 확장 및 구독자 증가에 따른 발행 지연, 메시지 휘발성 확인
  • Cloud Pub/Sub 대비 낮은 지연 시간과 Consumer Group 기반 브로드캐스트 편의성으로 Kafka 선택
  • 114만 단어 사전에서 아호-코라식 적용 후 메시지 파싱 1~2ms 수준 확인

카카오 계열사 채용30건

채용 사이트에서 전체 보기

다음 읽기

#WebSocket 주제를 이어서 읽기

라이브채팅 플랫폼 구현기 2탄 : 아키텍처 및 성능 테스트

비동기 메시지 처리와 Kafka 중심의 분산 라이브채팅 아키텍처를 설계했습니다. k6 기반 성능 테스트로 브로커와 로드밸런싱 이슈를 개선했습니다.

카카오엔터테인먼트FE
카카오엔터테인먼트FE
아키텍처

댓글 0개

댓글을 작성하려면 로그인이 필요합니다.

댓글을 불러오는 중...