가상 면접 사례로 배우는 대규모 시스템 설계 기초 - 정리 8장 URL 단축기 설계

요약

가상 면접 사례로 배우는 대규모 시스템 설계 기초 리뷰

아키텍처 개념을 실제 설계 판단에 연결하기 위한 참고 노트입니다.

핵심 포인트

  • 가상 면접 사례로 배우는 대규모 시스템 설계 기초 리뷰
  • 가상 면접 사례로 배우는 대규모 시스템 설계 기초
  • 8장 URL 단축기 설계
  • 개략적인 설계
  • 상세 설계

지식 그래프

정리 내용

가상 면접 사례로 배우는 대규모 시스템 설계 기초

학습 목적으로 정리한 내용으로 문제가 있다면 내리겠습니다.

(이 책은 한국어판 저작권은 에이전시 원을 통해 저작권자와의 독점 계약으로 인사이트에 있습니다. 저작권법에 의해 한국 내에서 보호를 받는 저작물이므로 무단전재와 무단 복제를 금합니다.)

8장 URL 단축기 설계

기본적인 기능

  • URL 단축
  • URL 리디렉션
  • 높은 가용성과 규모 확장성 그리고 장애 감내

개략적인 설계

  • API 엔드 포인트
    • 클라이언트는 서버가 제공하는 API엔드포인트를 통해 서버와 통신한다. REST 스타일로 설계하는 것이 좋다.
    • URL 단축용 엔드포인트
      • POST /api/v1/data/shorten
        • 인자 : longURLstring
        • 반환 : 단축 URL
    • URL 디리렉션 용 : 단축 URL에 대해 HTTP 요청이 오면 원래 URL로 보내주기 위한 용도의 엔드포인트
      • GET /api/v1/shortUrl
        • 반환 HTTP 리디렉션 목적지가 될 원래 URL
  • URL 리디렉션
    • 단축 URL 을 받은 서버는 그 URL 을 원래 URL로 바꾸어서 301응답을 Location헤더에 넣어 반환한다.
  • URL 단축
    • 단축 URL이 host.com/{hashValue}라는 형태라고 했을 때, 결국 중요한 것은 긴 URL을 대응할 해시 함수 Fx를찾는 일이다.
    • 입력으로 주어지는 같은 URL에 대응되는 해시값은 항상 같아야한다.
    • 계산된 해시값은 복원이 가능해야한다.

상세 설계

  • 데이터 모델 :
    • 개략적인 설계를 진행할 떄는 모든 데이터를 해시 테이블에 두었다. 이 접근 법은 메모리 낭비를 유발하기 때문에 비싸다. 따라서 관계형 데이터베이스에 저장하는 것이 현명하다.
  • 해시 함수
    • 이 함수는 긴 URL을 단축 URL 만드는 과정으로 책에서는 두가지 방법을 설명하고 있다.
      1. 해시 후 충돌 해소
      2. 해시 함수로 해시를 생성 한 후 DB에 넣는 방식인데 이 방식은 읽기와 쓰기 작업이 병행으로 일어나므로 충돌 위험이 있다.
      3. BASE-62변환
      4. 이 방법은 문자의 갯수가 62개인 문자로 변환하는 방법이다.

학습 목적으로 정리한 내용으로 문제가 있다면 내리겠습니다.

(이 책은 한국어판 저작권은 에이전시 원을 통해 저작권자와의 독점 계약으로 인사이트에 있습니다. 저작권법에 의해 한국 내에서 보호를 받는 저작물이므로 무단전재와 무단 복제를 금합니다.)

출처