Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- JPA 동시성
- JPA Lock
- 서버
- JPA
- spring
- Redis
- flask
- component
- JPA 비관적락
- Pessimistic Lock
- JPA 낙관적락
- annotation
- 디자인 패턴
- 서버개발캠프
- 스프링 log
- Transaction isolation level
- Optimistic Lock
- spring security
- 안드로이드
- 스프링 로그
- bean
- 개발
- 스프링
- Android
- 암호화
- 스마일게이트
- spring security 인증
- 낙관적락 비관적락 차이
- Inno DB
- 캠프
Archives
- Today
- Total
모르는게 많은 개발자
[스마일게이트 서버 개발 캠프 4기]#1 첫번째 개인과제 리뷰(Shortening URL) 본문
반응형
스마일게이트 서버개발을 시작하고 개인과제를 시작하게 되었다. 첫번째 과제는 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조의 개수만큼 변환할 수 있다.
2. 실행 화면
3. 피드백
1. URL을 고정 시키기 위해 id값을 천만 단위부터 시작하면 url이 이쁘게 나오지 않았을까
2. 데이터베이스에서 id값을 index로 하고 url을 찾을 때 입력된 url을 decode하여 빠르게 찾아야한다.
3. url을 string으로 하지말고 데이터에 넣기 전 url양식을 맞췄는지 안맞췄는지 확인하고 같은 url체크
(예: www.naver.com = https://naver.com)
반응형
'스마일게이트서버캠프4기' 카테고리의 다른 글
[스마일게이트 서버 개발 캠프 4기]#6 후기 (0) | 2020.03.08 |
---|---|
[스마일게이트 서버 개발 캠프 4기]#5 몬스터 HP 동기화(TCP 소켓 통신중 의도치 않은 패킷 받을 때) (0) | 2020.02.29 |
[스마일게이트 서버 개발 캠프 4기]#4 리눅스 ssh를 꺼도 프로세스 유지방법 (nohup) (0) | 2020.02.24 |
[스마일게이트 서버 개발 캠프 4기]#3 두번째 개인과제 리뷰(로그인 인증 서버개발) (0) | 2020.02.10 |
[스마일게이트 서버 개발 캠프 4기]#2 게임 채팅 서버 구현(로그인, 채팅) (0) | 2020.01.25 |
Comments