← 테크곳간 목록으로

숨고 팀 블로그 | Tech

채팅 성능 고도화 — 채팅 목록 11초를 1.8초로 만든 역정규화

AI 엔지니어링 브리핑

10년치 채팅 데이터가 쌓이며 채널이 많을수록 느려지던 채팅 목록을, 조회용 데이터를 따로 모으는 역정규화 방식으로 평균 472ms에서 155ms까지 개선한 경험을 설명합니다.

문제 & 배경
  • 문제 & 배경: 채팅 목록 조회가 고수의 채널 수에 비례해 전체 채널을 읽고 정렬하는 구조였기 때문에, 채널이 3만 개 이상인 고수는 목록을 여는 데 약 11초, 키워드 검색에는 20~39초가 걸렸고 인덱스만으로는 이 문제를 없앨 수 없었습니다.
기술 & 해결책
  • 기술 & 해결책: 원본 채널 데이터는 보존한 채 고수별로 최근 갱신 채널을 열흘 단위로 묶은 조회용 문서를 만들고, 여기서 필요한 채널 ID만 먼저 고른 뒤 원본에서 상세 내용을 가져오도록 바꾸어 읽는 데이터 범위를 채널 전체 규모와 무관하게 만들었습니다.
교훈 & 주의점
  • 교훈 & 주의점: 평균 응답 시간은 472ms에서 155ms, p99는 5.88초에서 578ms로 줄었으며, 구조적 병목은 데이터 형태를 바꿔야 해결되고 마이그레이션 중 변경 유실처럼 복구하기 어려운 문제에는 발생 확률이 낮아도 안전장치를 마련해야 한다는 점을 보여줍니다.
원문 읽기 ↗
내용이 비슷해요

내용이 비슷한 글을 먼저 보여드려요. 같은 문제나 해결책을 다룬다는 뜻은 아니에요.