Skip to content

Inear v1.0.1

Latest
Compare
Choose a tag to compare
@Kontae Kontae released this 17 Jan 07:47
c2e972e

✨ Refactoring

  • 새로운 탭을 열 때마다 소켓을 연결하여, 10개의 탭을 열면 10명이 보는 것으로 인식

    • SocketIO 작동 원리와 재연결 방식
    • 현재 소켓을 zustand를 사용하여 전역으로 관리하고 있기 때문에 zustand에 대해서 학습
    • 탭마다 소켓 연결을 방지하기 위한 Shared Worker 학습 및 진행 중
  • Album Domain API 성능 측정

    • 시간 계산 쿼리 적용 테이블에 인덱스 설정
    • 각각 메소드 불러오던 것 Promise 병렬 처리
    • Redis를 N번 접근하던 것 pipeline으로 1번 처리

    ⇒ local 기준 0.5-1ms, 프로덕트 기준 30-50ms 단축

  • Redis Adapter 적용

    • 스케일 아웃 상황에서 각 인스턴스가 소켓 서버를 동기화하지 않아 같은 채팅방이더라도 채팅이 전달되지 않는 문제
    • Redis Adapter를 통해 각 인스턴스 소켓 서버 동기화
    • 테스트 코드를 통해 localhost:3000 에서 메시지 이벤트가 발생되고 localhost:3001 에서 응답되는 것을 확인
  • 시나리오 기반 부하테스트 진행

    • 각 클라이언트 별 m3u8 파일 요청 이후 ts 파일에 관한 추가 요청을 시나리오로 잡고 부하테스트 진행
    • 각 워커 쓰레드가 병렬적으로 요청을 진행하기에 실제 인이어 동작 흐름과 유사하게 진행
    • 결과: http 응답 성공률 100%, 평균 응답 속도 2ms으로 매우 양호
    • 고민: 현재 아키텍쳐에서 발전 시킬 수 있는 방향성(모놀리식 유지 or 서비스 기준 분리) 및 성능 지표 수립에 관한 고민