Wecode -기업협업 인턴 (부트캠프)/기업협업 인턴(프로젝트)

기업협업 2번째 프로젝트(2주차 월요일: 구상 및 데이터베이스 설계)

JBS 12 2023. 11. 6. 16:34

목표; 기능개발보다, 혼자 database도 만들어보고, 구조를 만들어보는게 가장 큰 것

 

"백엔드 분들은 프로젝트 미리 생성하셔도 될것같아요
기능은 short url 생성하는 기능으로
https://www.shorturl.at/
해당 사이트 참고하시면 되겠습니다
저 사이트 말고도 short url 검색하시면 비슷한 사이트 많이 나오니 참고해보세요!
nestjs 프레임워크 사용해주시고
db는 아무거나 사용하셔도 좋습니다 

 

도메인을 제외한 뒷부분은 절대 중복되지 않는 '영문 대소문자와 가끔 하나의 숫자' 

 

short url 요구사항 하나 추가할게요
ip 주소 수집해서 일 30회만 변환 가능하게 작업해주세요!

 

로그인 회원가입은 없어도 되고 

기본 기능만 구현하면 됩니다"

 

 

아래 기능을 참고하라고 하시는 거 같다! create account 없이! 

 

 

 

아래와 사용자가 알 수 없는 a01626108등의 식별자로 인해서 URL이 길어지는 경우, 공유하는 사람도, 공유받는 사람도 보기 싫어요.

이런것들을 bitly.com 등의 서비스를 이용해서 아주 짧게 줄일 수 있죠.

 

 

 

 

curl을 통해서 줄여진 URL경로로 http 요청을 해봅니다. -i 옵션을 추가하여 헤더값까지 확인을 합니다.

cURL은 다양한 통신 프로토콜을 이용하여 데이터를 전송하기 위한 라이브러리와 명령 줄 도구를 제공하는 컴퓨터 소프트웨어 프로젝트이다.

 

 

 

참고링크 

https://www.digitalocean.com/community/tutorials/how-to-build-a-type-safe-url-shortener-in-nodejs-with-nestjs 

 

 

 

https://github.com/daksh019/urlShortener/blob/master/src/main.ts 

 

 

https://zih0.tistory.com/33 

 

 

https://blog.naver.com/PostView.nhn?blogId=biud436&logNo=222206477613 

 

 

https://doublem.org/shorten-url-step1/ 

 

URL Shortener 서버 만들기 1편 | Doublem.org

Base62의 이해와 URL Shortener

doublem.org

 

 

 

database에 2가지 api

1) 새로 만든 shorten url을 저장 insert into 

2) 링크 공유: shorten url 과 대응하는 long url을 조회 select (copy url 버튼을 눌렀을 때, 짧은 주소에 대응하는 긴 주소에 연결돼서 페이지 이동 되도록) 

 

short url을 하는 이유는 

url 전송, 저장 용이하기 위해 

 

근데 2)를 1:1 관계로 하면 너무 느려지니, 많은 데이터가 데이터베이스에 쌓일 경우 ㅇㅇ

--> 이거까지 생각하지 말고, 일단은 기능 api 나오는 거 위주로. (감이 안 잡히고 새로운 거 할때는 바로 물어보는게 효율적이고, 감이 잡히면 고민하는게 맞고. 성향이 다른 백엔드팀원과 나 사이에서 현명한 조언을 주심) 

 

조회할때 indexing을 고민을 하던, 할 수 있는 거 다 해보고. 

 


11/20 데드라인 

1. 구조 만들기 

2. DB 만들기 = entity, table 등 

3. api 만들기 

 

 

api 만드는데에는 crud 할줄알면 뭐든지 다 할 수 있는데,

여태 프론트엔드랑 구조 맞추는 게 없었는데,

만들면서 프론트랑 맞추면서 에러 핸들링도 넣고 하면서 구조가 보임

 

 

- original url 저장하는 api (insert into)

- shorten url 에 (dom9ain 제외하고) 뒷부분 절대 중복되지 않는 url

- 서버에서 뒷부분 조회 (select) mapping 된 거를 redirect 시킴 

 

DB log에 original url, shorten url을 같이 저장 

user ip도 같이 수집

 

 

shorten url의 앞부분은 default라, 

localhost:port로 하면 되고

 


일단은, mysql로 create databases, create databases table , add column 했다. 

 

그 다음부터는 vscode의 Mysql 확장자에서 데이터를 직접 입력할 수 있다.