주제 선정

주제 선정에서부터 난관에 부딪혔던 것 같다. 사실 이 부분이 주제 없이 프로젝트를 시작할 때 가장 어려운 것 같다. 나는 평소에 이런 생각을 거의 안하다보니 아이디어를 내는 것에는 젬병이다… 결국에는 시온님께서 깃헙 활동을 수치화 하여 점수를 산정하여 랭킹을 보여주자는 아이디어를 내셨고, 이 아이디어가 채택되었다.

기능 구체화

어찌저찌 주제를 선정해서 계획을 하다보니 이제는 어떤 기능들을 넣어야할지 고민했던 것 같다. 단순히 랭킹만 보여주면 기존에 OPGC나 코덕 같은 사이트랑 너무 똑같지 않을까?라고 고민했었고, 여러 기능들을 통합하여서 보여주자는 결론을 내서 커뮤니티나 이력서 기능을 추가해서 와이어 프레임까지 만들었다. 하지만 다음날 너무 투머치하다는 시온님의 의견이 있었고, 곰곰히 생각해보니 16일 이라는 짧은 시간에 커뮤니티와 이력서, 랭킹 기능을 모두 하는 것은 불가능해 보였다. 결국 커뮤니티와 이력서 기능을 모두 들어내고, 랭킹에만 집중하기로 했다. 그 대신 단순히 전체 랭킹만 보여주기 보다는 티어별 랭킹, 지역별 랭킹, 언어별 랭킹 등 다양한 필터링을 넣어 랭킹 기능을 구체화 하기로 했다. 사실 깃헙 API를 먼저 분석해 봐야했지만, 깃헙에 보이는 모든 정보는 API로 가져올 수 있을 것 같아 일단 여러 필터링 기능을 일단 넣었다.(어떻게든 되겠지…)

디자인

와이어 프레임까지 만들고, 그 다음으로 디자인을 만들기 시작했다. 여기서부터 지옥이 시작됐다. 에초에 디자인을 할 3명중 2명은 디자인은 고사하고 피그마 작성이 처음이었다. 다행히 우석님이 피그마로 예전에 디자인을 해보셔서 정말 큰 도움이 되었다. 어찌저찌 디자인을 시작했고, 3명이서 이틀에 걸쳐 디자인을 완성했다. 처음에는 대충해서 완성만 하자고 했지만, 마지막에는 다들 진심으로 디자인을 해서 생각보다 이쁘게 디자인이 된 것 같다.

기술 스택

그 다음으로는 기술 스택을 정해야 했다. 사실 백엔드 부분은 이미 어느정도 우석님하고 시온님이 생각을 해두신 것 같았지만 프론트엔드는 확실하게 정해놓은 게 없었다.

React vs Next

제일 먼저 React를 사용할지 Next를 사용해서 SSR을 할지 고민을 했다. 윤규님과 둘이서 얘기를 해봤을 때는 SSR을 굳이 할 필요가 있을까? 라고 생각하게 되었고, React를 사용해서 개발을 하려고 했다. 하지만 멘토님께서 우리 서비스는 정보성이 중요한 서비스 이므로 SEO가 중요할 것 같다고 하셨고, Next를 사용해 보면 좋을 것 같다고 하셨다. 우리도 이에 동의하였고 Next를 채택하게 되었다.

상태관리도구

클라이언트의 상태를 관리하는 Redux, Recoil을 도입할까 했지만, 프로젝트의 규모를 생각했을 때 굳이 상태관리 라이브러리를 도입할 필요가 없을 것 같아 도입하지 않기로 했다.

React Query

우리 서비스에서 제공하는 데이터들을 서버에서 가져와야하고, 서버 데이터를 효율적으로 캐싱하고 서버와 클라이언트의 데이터를 지속적으로 동기화 해야하기 때문에 서버상태관리 도구인 React Query를 도입하기로 했다. 아직 React Query를 제대로 알지 못해서 공부를 계속 해보면서 좀 더 생각을 정리해보면 좋을 것 같다.

마무리

회고가 일기처럼 되버렸는데 마무리를 하자면 이번주 잘한 점은 항상 그렇지만 최선을 다해서 어떻게든 매일 목표를 완료했다는 점과 기술 스택, 기획서 등 문서화를 꼼꼼히 했다는 것이다. 아쉬운 점은 아직까지도 습득한 지식이나 알고있는 내용들을 나만의 언어로 제대로 표현하지 못하는 것 같다. 발표 때도 단순히 내용을 나열하는 것 말고 그 과정에서 있었던 고민했던 점이나 해결 과정 등을 제대로 전달하지 못한 것 같다. 또한 기술 스택을 선택하는 당위성을 혼자서 나열해서 적을려고 하면 잘 못했을 것이다. 이 부분은 내가 아직까지 그 기술에 대해 알지 못하거나 알아도 제대로 설명하지 못하거나 둘 중 하나인 것 같다. 앞으로는 좀 더 고민을 많이 해보면서 나만의 언어로 정리하는 연습을 많이 해야할 것 같다.(이 상태면 자소서도 드럽게 못 쓸 것 같음😭)