[서버개발캠프4기] Short Url 코드 리뷰 후기

600g (Kim Dong Geun)·2020년 3월 20일
0

[서버개발캠프 4기] 첫번째 과제 Short Url 코드 리뷰 후기

일단 결론을 말하자면 말아먹었다.
Node를 사용하였다 -> 망했다.
MongoDB를 사용하였다 -> 망했다.
RandomStringGeneration을 사용하였다. -> 망했다.
Html Form Generation Check를 안했다 -> 망했다.
야심차게 준비한 첫번 째 과제, 줄줄이 망테크를 타버렸다.

그치만 까임속에서 많이 배운다고 했던가?
캠프장님께서 해주셨던 말들 하나하나가 다 주옥같은 말들이었고,
개발의지를 다시금 불태우게 하였다.

실제로 캠프장님께서 해주셨던 조언들을 여기에다 공유하고자 한다.

1. 서버 개발자로써의 갖추어야할 태도를 갖추어라

당연한 말이다. 이게 무슨말이냐면, 서버개발캠프라고 해서, Front단에서 들어오는 요청에 대해서 Validation Check 정도도 걸어놓지 않는 내 행동을 꼬집은 말이다.

사실 개인 프로젝트이고, 남과 비록 공유하지 않을지라도 코드를 작성하면서 어떠한 이슈가 생길 여지를 남겨 놓지 말라는 말이다.

내 프로젝트에 대입해서 이야기 해보자면, 내 서비스는 긴 URL 에서 짧은 URL로 어떻게 보면 번역을 해주는 서비스를 하고있다라고 봐도 무방이 없다.

그렇다면 URL을 넣는 폼에 아무 단어가 아니라, 올바른 URL이 넣어졌을때만 서버와의 통신을 요청할 수 있도록하는 간단한 기본적인 장치는 해두라는 말이다.

P.s) 실제로 개발할 때, 해야지라는 생각을 했지만 팀프로젝트에 집중해야지라는 마음가짐으로 넘겼었다. 하지만 이건 핑계일뿐!

2. 목적에 맞는 DB를 사용하여라.

위 프로젝트는 Node.js + MongoDB의 간단한 아키텍쳐로 구성되어있는 프로젝트다.
내게 위 프로젝트를 왜 mongoDB를 사용하셨는지 물어보셨다.
나는 제대로 대답하지 못했다. 단순 삽입과 출력은 MongoDB가 성능이 좋지 않나라고 말을 했지만 그것에 대해서 왜 그렇게 되는지에 대해 자세히 설명을 못했다.

3. 구조에 대해서 고민하고 또 고민해라.

앞서 나는 Short url 로 변경하는데 있어 알고리즘을 Random Generation을 이용하여 썼다. 여기서도 또 한소리 들었다 -(검사 맡을때 마다 매번 잔소리를 듣는..)-

위예제의 경우에, 데이터베이스에 random generation을 사용하여 short url을 넣는 경우는 비효율적이다.

Random generation은 중복의 위험이있다.
중복체크를 하고 또 random을 돌린다면, 결국 데이터베이스에 들어있는 값이 많으면 많을 수록 중복체크를 더욱 더 많이 수행해야 하는것이다.

그렇다면 해쉬 값을 통하여 데이터의 중복성을 피해야 하는데, 그렇다면 데이터가 수백 수천억개의 데이터가 있는경우에는 어떻게 빠르게 검색값을 불러 올 수 있을까?

나는 많은 사람들이 위에 대해서 고민을 해봤으면좋겠다.
(캠프장님께 해답을 들었을때 나는 충격과 공포 그 자체였다)

총평

급 마무리 인 것 같지만,,
배워야 할것은 많다. 또한 차장님(캠프장님)과 면담하면 할 수록 얻는게 많다.

profile
수동적인 과신과 행운이 아닌, 능동적인 노력과 치열함

0개의 댓글