모르는게 많은 개발자

[스마일게이트 서버 개발 캠프 4기]#1 첫번째 개인과제 리뷰(Shortening URL) 본문

스마일게이트서버캠프4기

[스마일게이트 서버 개발 캠프 4기]#1 첫번째 개인과제 리뷰(Shortening URL)

Awdsd 2020. 1. 18. 18:47
반응형

스마일게이트 서버개발을 시작하고 개인과제를 시작하게 되었다. 첫번째 과제는 shortening URL 구현이었다.

shortening URL을 듣고 처음에는 어떤 용도인가 궁금했지만 글자수 제한이 있는 SNS에서 URL을 줄이게 위해 사용된다는 것을 처음 알게 됐다. 언어에 제약이 없어 평소에 썼던 PHP 서버를 활용해 과제를 진행했다.

 

1. Shortening  url원리

shortening url의 원리는 데이터베이스에 내가 입력한 url을 저장하고, AUTO_INCREMENT를 설정한 id를 Base62로 encoding 값을 변환url로 출력해주는 것이다. 그리고 변환된 url을 입력하면 서버에서 url을 가져와 Base62로 다시 decoding한 값과 id를 비교해 실제 url을 가져오는 것이다. 

base62를 사용하는 이유는 base64에는 url에 포함되면 안되는 문자들(+, /)이 섞여있기 때문에 base62를 주로 사용한다. 또한 base62를 사용하면 8글자로 제한을 두었을때 10조의 개수만큼 변환할 수 있다.

id와 실제 url을 저장한 Mysql

 

2. 실행 화면

3. 피드백

1. URL을 고정 시키기 위해 id값을 천만 단위부터 시작하면 url이 이쁘게 나오지 않았을까

2. 데이터베이스에서 id값을 index로 하고 url을 찾을 때  입력된 url을 decode하여 빠르게 찾아야한다.

3. url을 string으로 하지말고 데이터에 넣기 전 url양식을 맞췄는지 안맞췄는지 확인하고 같은 url체크

(예: www.naver.com = https://naver.com

 

반응형
Comments