개인 프로젝트

Oak_Cassia·2022년 12월 21일
0

기말이 끝났다.
시험 기간 동안 어떤 게 필요할지 생각하고 정보를 찾았다.

http

http는 tcp 위에서 동작하니까
tcp 소켓으로 구현 할 수 있지 않을까? 라는 생각에 cpp와 winsock2로 구현을 하자 마음 먹었다.
URL SHORTENER는 복잡하게 갈 필요가 없다고 생각했다. (url에 관한 정보만 보낼 뿐이니)
그래서 GET 방식으로 브라우저가 데이터를 보내고 서버는 이를 파싱해서 알맞는 데이터를 보내면 되겠다 생각했다.

HTML

웹에 관한 것은 하나도 몰랐다. html 역시 프로그래밍 언어가 아니라는 것만 알았다. 그래서 웹 프론트 쪽은 최소한의 기능만을 구현하자고 생각했다.(막상 공부해보니 간단했지만 많은 시간을 투자하고 싶지 않았다. 핵심은 통신 구조 구현이라 생각했다)

IOCP

iocp는 비동기, non-blocking 으로 작동한다. 그래서 많은 요청을 처리할 수 있다고 생각했다.
또 팀프로젝트를 위한 연습도 하고 싶었고 내가 (IOCP, 소켓 통신을) 얼마나 알고 있는지 잘 이해했는지 체크도 하고 싶었다.(공부는 했지만 직접 구현은 해보지 않았기에)

DB

DB 역시 사용해본 적 없었다. 뭘 사용할까 정도로만 찾아봤다.(시간이 많이 소모되지 않겠지?)

알고리즘

처음에는 해싱을 바로 떠올렸지만 원상태로 돌아올 수 없고 url 최대 길이가 2048 정도 되기 때문에 중복될 위험이 존재한다. DB에 다 집어넣고 인덱스로 찾는 방식이 지금까지는 가장 합리적인 것 같다.


시험 기간 나름의 준비(?)를 했고
시험이 끝나니 일주일 간의 시간이 남았다. 집에 갈 준비를 하며 짐도 정리하고 연구실도 들리고,
여전히 바쁘지만 마무리 잘 하고 싶다.(이제 시작이지만)

profile
rust로 뭐할까

0개의 댓글