사실 이미 수료하긴 했지만 이제서야 회고를 작성한다.
2차 팀프로젝트를 시작했을 때, 리액트에 대한 사전 지식이 아직 많이 부족하다 생각해서 많이 걱정했다.
프론트엔드를 했을때 내가 과연 잘 할 수 있을까? 팀에 누가 되면 어떡하지? 라는 걱정...ㅎ
근데 걱정할 필요가 없었던게 백엔드가 되어버렸다,,ㅋㅋ
사실 이전에 스터디로 프로젝트를 진행하며, 백엔드를 해봤던 경험이 있기 때문에 그래도 조금은 자신이 있었다.
nest.js가 등장하기 전까지는,,,,
2차 팀프로젝트는 nest.js를 사용해서 백엔드를 구축해보자고 얘기가 나왔고, nest는 커녕 express + node도 겨우 사용하고 있는 내 입장에서는 청천벽력 같은 소식... ㅋㅋㅋㅋㅋ
일단 nest.js 를 하나하나 공부해야하는 입장인지라, 바로 인프런 강의부터 갈겼다. 프론트 지망이지만 백엔드 파트 되었기도 하고 어쨌든 배워두면 도움 되겠지란 생각으로 피눈물 흘리며 6만원 결제해버렸다.
근데 일주일동안 nest.js를 배우며, 이거,,, 일주일동안 배워서 쓸만한게 아니구나,, 이러다 진짜 망하겠다 싶었는데, 팀원들도 다 동일한 생각이었던 것 같다.
냅다 nest.js 던져버리고 바로 express + ts로 빠르게 합의! (한정된 시간 내에 해야하다 보니 어쩔 수 없었다)
nest.js 사용한 다른 팀은 시간이 너무 부족해서 제대로 완성을 못한 곳이 태반.
여튼 간에 구조는 백엔드 팀장님께서 전체적으로 완성해주셨고, 나는 팀원이 만든 파일을 기반으로 거의 카피하듯 완성했던 것 같다. (최대한 비슷하게 만들어서 통일성 있는 코드를 작성하기 위함이었다.)
json 데이터 주고 받는 통로 만들어주는 역할이라 전체적으로 크게 어렵지는 않았던 것 같다.
또한 1차 프로젝트 때는 백엔드에서 해야할 일을 프론트에서 하다보니,,,(페이지네이션 기능,,,)머리가 터지는 줄 알았는데, 그때를 교훈삼아 2차에서 백엔드를 진행하며 프론트에서는 받아 쓰기만 하면 될정도로 대부분의 기능을 다 구현해준 것 같다.
아 나는 참고로 커뮤니티 게시판쪽을 담당했다. CRUD기능 구현, 좋아요 기능, 검색 기능, sort로 최신순 + 좋아요순 + 최근 댓글 순까지 데이터 정렬까지 전부 해주었던 것 같은데, 사실 크게 어려운 기능은 없었던 것 같아서 금방금방 끝내고 자잘한 오류 잡는데 시간을 대부분 시간을 보냈다.
한가지 아쉬웠던 건 너무 많은 양의 api를 만들어서 최종 평가 때 RESTful하지 못하다는 지적을 받았다. 다음에 백엔드를 할 기회가 있다면 기존 api를 최대한 재활용할 수 있도록 해봐야겠다.
또한 좋아요 기능 구현 할 때 유저의 고유 id값을 배열에다가 추가하고 삭제할 때는 배열에서 검색해서 삭제하는 형식으로 했는데, 소규모 프로젝트 할 때는 간편해서 효율적일 수 있으나 대규모 프로젝트가 된다면, 좋아요가 수백개, 수만개까지 달릴 수도 있는 부분이라 성능 저하를 야기할 수 있다고 했다.
시간있을 때 해시테이블 (hash table)이나 연결리스트 (linked list)로 리팩토링 해보면 좋을 듯 하다.
팀원들 중에 퍼블리싱 했던 분도 계셨기에 결론적으론 정말 이쁜 홈페이지가 완성되었고, 필수 기능또한 충족 시켰기에 전 팀원 중 3등이라는 우수한 성적을 거뒀고 우수상 또한 받게 되었다.
좋은 성적 받을 수 있도록 함께 달려온 팀원들에게 감사하고, 이제 리액트로 프로젝트 하나 완성해봐야지.