일단 결론을 말하자면 말아먹었다.
Node를 사용하였다 -> 망했다.
MongoDB를 사용하였다 -> 망했다.
RandomStringGeneration을 사용하였다. -> 망했다.
Html Form Generation Check를 안했다 -> 망했다.
야심차게 준비한 첫번 째 과제, 줄줄이 망테크를 타버렸다.
그치만 까임속에서 많이 배운다고 했던가?
캠프장님께서 해주셨던 말들 하나하나가 다 주옥같은 말들이었고,
개발의지를 다시금 불태우게 하였다.
실제로 캠프장님께서 해주셨던 조언들을 여기에다 공유하고자 한다.
당연한 말이다. 이게 무슨말이냐면, 서버개발캠프라고 해서, Front단에서 들어오는 요청에 대해서 Validation Check 정도도 걸어놓지 않는 내 행동을 꼬집은 말이다.
사실 개인 프로젝트이고, 남과 비록 공유하지 않을지라도 코드를 작성하면서 어떠한 이슈가 생길 여지를 남겨 놓지 말라는 말이다.
내 프로젝트에 대입해서 이야기 해보자면, 내 서비스는 긴 URL 에서 짧은 URL로 어떻게 보면 번역을 해주는 서비스를 하고있다라고 봐도 무방이 없다.
그렇다면 URL을 넣는 폼에 아무 단어가 아니라, 올바른 URL이 넣어졌을때만 서버와의 통신을 요청할 수 있도록하는 간단한 기본적인 장치는 해두라는 말이다.
P.s) 실제로 개발할 때, 해야지라는 생각을 했지만 팀프로젝트에 집중해야지라는 마음가짐으로 넘겼었다. 하지만 이건 핑계일뿐!
위 프로젝트는 Node.js + MongoDB의 간단한 아키텍쳐로 구성되어있는 프로젝트다.
내게 위 프로젝트를 왜 mongoDB를 사용하셨는지 물어보셨다.
나는 제대로 대답하지 못했다. 단순 삽입과 출력은 MongoDB가 성능이 좋지 않나라고 말을 했지만 그것에 대해서 왜 그렇게 되는지에 대해 자세히 설명을 못했다.
앞서 나는 Short url 로 변경하는데 있어 알고리즘을 Random Generation을 이용하여 썼다. 여기서도 또 한소리 들었다 -(검사 맡을때 마다 매번 잔소리를 듣는..)-
위예제의 경우에, 데이터베이스에 random generation을 사용하여 short url을 넣는 경우는 비효율적이다.
Random generation은 중복의 위험이있다.
중복체크를 하고 또 random을 돌린다면, 결국 데이터베이스에 들어있는 값이 많으면 많을 수록 중복체크를 더욱 더 많이 수행해야 하는것이다.
그렇다면 해쉬 값을 통하여 데이터의 중복성을 피해야 하는데, 그렇다면 데이터가 수백 수천억개의 데이터가 있는경우에는 어떻게 빠르게 검색값을 불러 올 수 있을까?
나는 많은 사람들이 위에 대해서 고민을 해봤으면좋겠다.
(캠프장님께 해답을 들었을때 나는 충격과 공포 그 자체였다)
급 마무리 인 것 같지만,,
배워야 할것은 많다. 또한 차장님(캠프장님)과 면담하면 할 수록 얻는게 많다.