tiny url 같은 URL 단축기를 설계하는 문제를 풀어보자.
1. 문제 이해 및 설계 범위 확정
시스템 설계 문제는 의도적으로 어떤 정해진 결말을 갖지 않도록 만들어진다.
이번 URL 설계에서의 기본적인 기능은 아래와 같다.
- URL 단축 : 주어진 긴 URL을 훨씬 짧게 줄인다.
- URL 리디렉션 : 축약된 URL로 HTTP 요청이 오면 원래 URL로 안내한다.
- 높은 가용성과 규모 확장성, 그리고 장애 감내가 요구된다.
개략적 추정
- 쓰기 연산 : 매일 1억 개의 단축 URL 생성
- 초당 쓰기 연산 : 1억 / 24 / 3600 = 1160
- 읽기 연산 : 읽기 연산과 쓰기 연산 비율은 10:1 이라고 가정
- URL 단축 서비스를 10년간 운영한다고 가정하면 3650억 개의 레코드를 보관해야 함
- 축약 전 URL의 평균 길이는 100이라고 가정
- 따라서 10년동안 필요한 저장 용량은 3650억 * 100바이트 = 36.5TB
2. 개략적 설계안 제시 및 동의 구하기