본문 바로가기
개발하는 일상

단축URL 구축 개요

by 노슬로 2024. 5. 19.

 

요즘 많은 문자 내역과 공유 링크에서 단축URL 도입이 부쩍 늘어난 것 같다.

이전에 단축URL을 구축하는 것은 코딩 시험문제로도 많이 출제가 되었었는데, 이번 기회에 좀 더 알아보도록 한다.

 

단축URL 제공 시스템중에 가장 유명한 사이트는 bit.ly인데, 이러한 단축URL 시스템은 어떻게 구축할 수 있을까?

 

먼저 bit.ly와 같은 단축URL로 사용할 주소가 필요하다.

 

신한카드는 shcard.io, 예스24는 ye4.kr 처럼 독특한 짧은 도메인을 사서 활용하는 경우도 있고,

we.kurly.com처럼 그냥 subdomain으로 링크를 열어서 사용하는 경우도 있다.

 

이렇게 구매한 도메인을 원본주소로 보내줄 서버와 연결하면된다. 

 

서버는 단순히 이렇게 구축하면 되지만 단축URL과 실제 도메인간의 정보를 어떻게 저장할 것인가는 여러가지를 고려해서 구현이 필요하다.

 

우리가 구매한 단축URL을 test.t라고 해보자. 이 도메인 뒤에 코드와 실제 도메인을 연결해야한다. 코드를 생성하는 방법은 충돌을 적게 만나는 방향으로 설정하는 것이 좋다.

 

- 6자리의 코드로 생성하는 경우 base62기준으로 각 자리수를 랜덤으로 만들고, 충돌여부를 검색하는 방법이 있다.

- DB의 row가 순차적으로 증가하는 경우 해당 숫자를 16진수로 변환하여 코드로 사용하는 방법이 있다.

- 원본 주소로 해시값을 만든 뒤 앞 6자리를 따서 코드로 사용할 수도 있다.

 

어떤 방법이든 각자의 환경에 가장 알맞은 방식을 선택하면 되지만 많은 select문은 단축URL 성능을 저하시킬 수 있기때문에 이를 잘 고려하여 구현하는 것이 필요하다.