1단계. 문제 이해 및 설계 범위 확정

예제 시스템의 기본적 기능

  1. URL 단축 : 주어진 긴 URL을 훨씬 짧게 줄인다.
  2. URL 리디렉션 : 축약된 URL로 HTTP 요청이 오면 원래 URL로 안내
  3. 높은 가용성과 규모 확장성, 그리고 장애 감내가 요구됨

계략적 추정

2단계. 계략적 설계안 제시 및 동의 구하기

API 엔드포인트

URI 단축기는 기본적으로 두 개의 엔드포인트를 필요로 한다.

  1. URL 단축용 엔드포인트
    1. 새 단축 URL을 생성하고자 하는 클라이언트는 이 엔드포인트에 단축할 url을 인자로 실어서 post 요청을 보내야 한다. 이 엔드포인트는 다음과 같은 형태를 띤다.
    2. POST /api/v1/data/shorten
      1. 인자: {longUrl: longURLstring}
      2. 반환: 단축 URL
  2. URL 리디렉션용 엔드포인트
    1. 단축 URL에 대해서 HTTP 요청이 오면 원래 URL로 보내주기 위한 용도의 엔드포인트
    2. GET /api/v1/shortUrl
      1. 반환: HTTP 리디렉션 목적지가 될 원래 URL

URL 리디렉션

Untitled

단축 url를 입력하면 301, 302 두가지 응답값이 나온다.

301 Permanently Moved