seoulstudycafe / System-Design-Interview-01

0 stars 0 forks source link

8장 DB의 shortURL 컬럼 #16

Open ghlnh opened 1 week ago

ghlnh commented 1 week ago

책 8장 예시 image

ID와 longURL 만 DB에 저장하고 백엔드에서 ID를 62진법으로 계산해서 shortURL을 전달해도 되지 않을까?

백엔드단에서 매번 base62 처리를 해줘야 하는게 더 비용이 크게 될지..?

newbieJanghan commented 1 week ago
  1. 단축 url 클릭 후 리다이렉 되는 경험이 원래 url 클릭하는 경험과 유사하기 위해선 시간 비용을 최소화하는게 좋다고 생각합니다.
  2. base-62 전략을 사용하는 경우, 결국 shortURL로부터 복원한 ID를 이용하여 DB 조회가 발생하기 때문에, 어차피 DB 조회할 겸 shortURL로 바로 조회하는 게 '시간' 측면에서는 유리합니다.
  3. 해시 충돌 대응 전략의 경우, 단축 url로 복원한 기존 url이 충돌을 방지하기 위한 별첨 문자열로 오염되어있을 가능성이 있습니다. 물론 db 조회가 불필요할 수 있다는 점에서 성능을 따져볼 필요는 있겠습니다. 한편 캐시를 이용하는 경우 key 값으로 shortURL 을 가지는 것이 문자열 계산보다 더 빠르지 않을까 생각합니다!