📌 Shorten URL 이란?
긴 원본 URL을 단축시켜서, 간결한 URL로 만드는 기술
📌 Short URL 생성 원리
일반적인 URL 단축 서비스에서는 긴 URL을 직접 인코딩하지 않고, DB에 해당 URL을 저장하고 생성된 Index(또는 고유 ID)를 인코딩해서 단축 URL을 생성한다.
1. 원본 URL → https://example.com/some/very/long/url
2. DB에 저장 후 → 고유 Index: 125
3. Index 125를 base62 방식으로 인코딩 → "cb"
4. 단축 URL: https://short.ly/cb
🔐 Base62 인코딩 방식 사용
이렇게 하는 이유는 Base64를 쓰면 +, /는 URL에서 쿼리 문자열이나 경로 처리 시 문제를 일으킬 수 있기 때문에, 이것을 제거한 Base62 방식을 사용한다. 이렇게 하면 인코딩된 문자열을 URL에 안전하게 포함할 수 있다.
Base62는 아래와 같은 62개의 문자로 구성된다.
0-9 (10개) + A-Z (26개) + a-z (26개) = 총 62개
📌 해시 vs 인코딩
- Hashing: 일반적으로 단방향 (ex: SHA256, MD5). 원본 데이터를 복원할 수 없다.
- Encoding: 양방향. 원본 데이터를 다시 복원할 수 있다.
- 단축 URL 시스템에서는 원본 URL을 되살려야 하므로, Hashing보다는 Encoding을 사용하여 원본 URL을 디코딩 가능하게 한다.
📌실행흐름
1. URL 생성
URL마다 일련번호 생성하고 Bijection 함수로 변환하는 방법을 사용한다.
1)단축 Url 서비스를 운영하고 있는 도메인에 /url이라는 엔드포인트로 원본 Url을 POST로 요청함
2) 단축 Url 서비스에서는 해당 Url을 해싱
3) 해시값과 원본 url을 데이터베이스에 저장
4) 요청을 보낸 서버에 해시값의 앞 10자리를 자르고, Base62 인코딩 한 값인 문자열을 응답
5) 값을 받은 서버는 해당 Url 서비스의 도메인 링크에 + “/응답 값”을 붙여서 단축 Url 링크로 사용
2. 사용자가 실제 링크를 클릭하면 일어나는 일
사용자가 단축된 Url(단축 Url 도메인 + /{value})을 클릭한 경우, 해당 value 값을 다시 Base62로 decoding 한 후, 데이터베이스를 조회해서, 원본 Url로 리다이렉트 시켜야 한다.
1) 사용자가 링크를 클릭했을 경우, 인코딩 값을 GET 요청을 통해서 단축 Url 서비스에 보낸다.
2) 단축 Url 서비스에서는 해당 값을 Base62으로 디코딩한다.
3) 원본 해시값의 앞 10자리를 얻어서 조회
4) 조회에 성공 시 데이터베이스에서 가져온 원본 Url로 사용자를 리다이렉트 시킵니다
'ETC_Software' 카테고리의 다른 글
컴퓨터의 기본 구성 장치와 동작 원리 (9) | 2025.06.12 |
---|---|
[네트워크] 회사에서 스캔 안될때 복합기 네트워크 오류 해결법 (신도리코, 삼성 복합기) (5) | 2025.05.15 |
[네트워크] cmd 에서 포트 열려 있는지 확인하는 명령어 (2) | 2025.04.22 |
[네트워크] 공유기 설정 페이지 192.168.0.1 안들어가질때 해결법 (3) | 2025.04.22 |
📌 웹 소켓(Web Socket) 이란? (4) | 2025.04.17 |