IT 성장일기

[URL Shortner] URL Shortner 개발하기 (1) 본문

Project/URL Shortner

[URL Shortner] URL Shortner 개발하기 (1)

고 양 2025. 3. 19. 18:18
반응형
URL Shortner 개발하기 (1)

담당하고 있는 서비스에는 간소화된 URL을 사용해 컨텐츠를 공유하는 기능이 있었습니다.

얼마 전 네이버 단축 URL 서비스가 종료됨에 따라 대체재로 사용할 URL 단축 서비스를 사이드 프로젝트로 개발하게 되었습니다.

 

URL Shortner 개발하기는 두 편으로 나뉩니다.

이번 포스팅에서는 단축 URL이란 무엇이며 어떤 과정을 거쳐 URL을 단축하는지 알아보겠습니다.

1. 단축 URL

원본 URL을 짧게 줄인 형태의 URL을 의미합니다.

이때 단축 URL은 원본 URL과 같은 위치를 가리킵니다.

단축 URL의 필요성

문장도 그렇듯 URL도 너무 길면 전달하기도 읽기에도 쉽지 않겠죠.

 

조금 과장해서 비유하자면, '소금간 된 익힌 쌀에 볶은 당근, 채 썬 오이, 지단, 맛살과 부드러운 햄을 넣고 감싼 말린 해초 롤'을

우린 그냥 '김밥'이라고 부르기로 한 것처럼요.

 

단축된 URL은 적은 글자수 덕분에 공유와 저장에 있어서 편리함을 제공합니다.

쿠팡-이 값싸고 배송 빠른 최고의 서비스-의 URL은 마치 사용자를 향해 참치 못하고 으르렁거리는 영미권 소설 같다.

단축 URL의 장점

1. 사용자 관점에서의 장점

  • 가독성 향상: 짧고 간결한 URL은 읽기 쉽고 이해하기 쉬움.
  • 공유 용이: 짧은 URL은 메신저, 이메일, 소셜 미디어에서 쉽게 공유할 수 있음.
  • 입력 편의성: 긴 URL을 직접 입력할 때 오타 발생 확률이 줄어듦.
  • 신뢰성 증가: 너무 긴 URL은 피싱(Phishing) 링크로 의심받을 가능성이 높음. 짧으면 신뢰도가 상승할 수 있음.

2. 서버 관점에서의 장점

  • 데이터 저장 효율 증가: URL이 짧으면 DB에 저장할 때 공간을 덜 차지함.
  • 로그 관리 용이: 웹 서버 로그에서 URL이 짧으면 가독성이 높아 분석이 쉬움.
  • 캐시 최적화 가능: 짧은 URL을 캐시 키(Cache Key)로 활용할 때 공간을 덜 차지하여 캐싱 효율이 올라감.
  • 트래픽 감소 가능성: URL 길이가 짧아지면 HTTP 요청에서 헤더 크기가 줄어들어 네트워크 대역폭 사용이 최적화될 가능성이 있음.

3. 클라이언트(브라우저, 앱 등) 관점에서의 장점

  • 네트워크 요청 크기 감소: 긴 URL은 HTTP 요청의 헤더 크기를 증가시키는데, 짧으면 불필요한 데이터 전송이 줄어들어 성능이 향상될 수 있음.
  • UI 디자인 효율성: 모바일 환경에서 UI 요소(버튼, 주소 표시줄 등)에 URL을 표시할 때, 짧으면 디자인이 깔끔해짐.
  • 쿼리 스트링 처리 최적화: 일부 브라우저나 API는 너무 긴 URL(대략 2000자 이상)을 지원하지 않는 경우가 있음.

2. URL Shortner

URL Shortner란 긴 URL을 짧게 줄여주는 서비스나 도구를 의미합니다.

대표적인 서비스로는 Bitly나 2024년 11월에 서비스를 중단한 네이버 단축 URL 등이 있습니다.

URL Shortner의 프로세스

그렇다면 어떤 과정을 거쳐서 URL이 단축되고, 단축된 URL은 어떻게 원본 URL을 반환하는 걸까요?
서비스마다 디테일에서 차이는 있겠지만 큰 틀에서 대동소이할 것이라 생각됩니다.

URL 단축하기

  1. 클라이언트에서 URL 공유 기능을 요청함
  2. 서버에서 미리 정해진 방식에 따라 단축 URL을 생성함
  3. 원본 URL과 단축 URL을 데이터베이스에 저장함
  4. 사용자에게 단축 URL을 전달함

출처 : Bitly (https://bitly.com/blog/how-to-shorten-a-url/)

원본 URL 반환하기

  1. 클라이언트에서 단축 URL을 요청함 (클릭, 검색 등)
  2. 서버에서 단축 URL을 식별자로 이용해 원본 URL을 찾음
  3. 원본 URL의 위치로 리다이렉트함

마치며

단축 URL과 URL Shortner에 대해서 대략적으로 정리해봤습니다.

내용이 너무 길어지지 않도록 실질적인 개발 과정과 예제코드를 다음 포스팅에서 이어보겠습니다.

 

감사합니다.

반응형

'Project > URL Shortner' 카테고리의 다른 글

[URL Shortner] URL Shortner 개발하기 (2)  (4) 2025.03.19