forked from boostcampwm-2024/web36-QLab
-
Notifications
You must be signed in to change notification settings - Fork 0
CS 리팩토링 목표 및 계획
성유진 edited this page Feb 4, 2025
·
1 revision
서비스 목표
사용자 쿼리 실행 기능 처리량 개선
→ 동일한 시나리오로 부하테스트 진행 시에 쿼리의 최대 응답시간 단축
개발 목표
- 사용자의 쿼리를 실행하는 MySQL 서버(Query DB) 의 개수를 늘려 쿼리 실행 기능의 부하를 분산합니다.
- 로드 밸런싱을 적용하여 Query DB 서버의 분산처리를 관리하는 아키텍처를 설계하고 구현합니다.
[기존 아키텍처]
[리팩토링 아키텍처]
서비스의 핵심 기능이 실시간으로 사용자 쿼리를 실행하는 것인 만큼, 쿼리 실행 시간을 보장하는 것이 최우선 과제였습니다.
쿼리 실행 결과를 비교하기 위해서는 전체적인 사용자 API 응답시간 보단 순수 DB에서 쿼리가 실행되는 시간이 중요하기 때문에, 이를 주요 성능 지표로 설정하여 부하 테스트를 진행했습니다. 이를 해결하기 위해 다음과 같은 방향으로 목표를 설정했습니다.
-
비용 고려
단순히 고성능의 서버를 도입하는 대신, 최소한의 서버 비용 증가로 성능을 개선해 더 나은 사용자 경험을 제공하고자 했습니다.
-
아키텍처 개선
Query DB 서버를 4대로 늘리고 로드 밸런싱을 통해 Query DB 서버의 부하를 효과적으로 분산시키는 구조를 설계하여 쿼리 응답 시간의 병목 현상을 해결하려 하였습니다.