문제 이해 및 설계 범위 확정
-
시스템 정의
- 경로 안내를 할 수 있는 국내 지도 서비스 개발
-
요구사항
- 이동할때마다 내 위치를 갱신할 수 있어야 한다.
- 경로가 정확해야 한다.
- 지도는 부드럽게 표시되고 갱신되어야 한다.
- 데이터 및 베터리 사용량이 적어야 한다.
- 가용성 및 규모 확장성이 용이해야 한다.
개략적 규모 추정
- 600만 DAU → 대략 1000 만 DAU 가정
- 평균 사용시간 월 305분 → 대략 일 10 분 가정
- 내 위치는 매초 전달한다 가정
- 출퇴근 시간은 평균보다 3배의 트래픽이 몰린다 가정
- 확대 수준은 19 단계까지 설정
- 우리나라 500 KM 가정하고 17 단계 적용시 타일당 가로세로 8M ((500* 1000) / (2^16)) 적용 가능
- 필요타일 수 : 4,294,967,296 (대략 43 억)
1. 처리량 (QPS)
쓰기
- 위치 갱신
- QPS = (1000 만 사용자 * 10분) / (24 * 60 * 60) ≈ 1200
- peak QPS ≈ 1200 * 3 = 3600
읽기
- 경로 조회
- 1000 만 사용자 * 2번 / (24 * 60 * 60) ≈ 470
- 타일 조회
- 타일 정보(url) 조회
- 타일 정보 조회는 위치 갱신과 같은 1200 QPS 만 필요하다.
- 타일 이미지 조회
- 평균 시속 80 km/h 로 움직인다 가정했을 시 초당 22 m/s 움직일 수 있다.
- 22m → (22 / 8(m) ≈ 3)^2 = 초당 9개 타일 조회
- QPS = 1200 * 9 = 10800
2. 지연시간(Latency)
- 내 위치 업데이트 처리는 100 ms 이내로 처리
- 타일 조회는 20 ms 이내로 처리