오늘 한 것

  • 단축 URL 생성하는 원리에 대한 학습
  • 좋은 코드 나쁜 코드 5장 읽기

 


 

bit.ly 같은 url을 접하고 사용해본 적은 많지만 어떻게 만드는지에 대해서는 딱히 탐구해보려고 하지 않았었다.
궁금했던 적은 있었으나 마냥 미뤄두기만 했는데 오늘 갑자기 그 이유가 궁금해져 파헤치기 시작했다.
단축 URL에 대해 찾아본 덕분에 그동안 궁금했던 URL줄이는 원리와 URL에 붙는 해쉬값 같은 이름을 생성하는 원리에 대해 알게 되었다.
조만간 직접 구현해보겠다 마음먹었다.

오늘 배운 것

1. 단축 URL

bit.ly, ohou.se, lnkd.in 같은 축약 도메인에 해시 값으로 보이는 문자열을 붙여 생성하는 링크를 본 적이 있다.
보통 공유하고 싶은 컨텐츠를 발견하면 브라우저 URL을 그대로 복사해 메신저에 붙여넣어 전송하곤 했다. 하지만 이런 경우에 문자열 제한으로 전송이 잘못되거나 특수문자 하이라이팅에 걸려 이상하게 링크가 변경될 때가 있었다.
단축 문자열의 경우 이런 상황을 방지하고 가독성이 좋고 정확한 링크를 전달할 수 있어서 현재 많이 사용되고 있다.
bitly 서비스를 이용하면 단축 URL을 간편하게 생성할 수 있다.
원본 URL을 넣으면 단축 URL을 생성해준다.
이렇게 사용할 수도 있었지만 생성하는 원리가 궁금했다.
어떻게 중복되지 않게 생성하는것인지, 인코딩은 어떻게하는지 등등 ..

단축 URL 특징

  • 장점
    • 긴 URL을 가독성 좋은 링크로 만들어 전달할 수 있다.
    • 문자열 길이제한에 걸리는 상황을 피할 수 있다.
  • 단점
    • 단축 URL에 매핑되는 원본 URL을 저장하는 비용이 발생한다. 또한 읽기 비용도 발생한다.
    • 단축 URL을 서비스하는 곳에서 서비스를 종료한다면 단축 URL이 가리키는 원본 URL을 알 수 없게 된다.

단축 URL 생성 원리

단축 URL 만드는 법

단축 URL은 일반적으로 Base62로 인코딩해서 주소를 생성한다.
Base62는 62개의 문자를 기반으로 생성한다는 의미이다.
단축 URL의 주소는 a-z, A-Z, 0-9 의 문자로 표현하는데 개수를 더하면 62개이다.

단축 URL의 글자 수

단축 URL의 부분을 얼마나 짧게 만들어야 할 지도 고민해볼 문제다.
짧을 수록 좋겠지만 7자리 정면 62의 7제곱(약 3조 5천억) 개를 만들 수 있으므로 충분하다.
1초당 1000개의 단축URL을 생성한다고 가정했을 때 111년은 사용할 수 있는 분량이다.
사용량에 따라 조정하면 될 문제로 보인다.

단축 URL이 원본 URL을 가리키는 방법

  1. URL생성 요청(복사 링크 생성)을 받으면 단축 URL 문자를 생성하고 에 매핑되는 원본 URL을 Database에 저장한다.
  2. 단축 URL로 요청이 들어오면 Database에서 매핑되는 원본 URL을 찾는다.
  3. 원본 URL로 Redirect 한다.

'TIL' 카테고리의 다른 글

TIL-2023.01.05  (0) 2023.01.05
TIL-2023.01.04  (0) 2023.01.04
TIL-2023.01.03  (0) 2023.01.03
TIL-2023.01.02  (0) 2023.01.02
TIL-2021.02.18  (0) 2021.02.18