2015년 SK와이번스에서 일을 하며 야구팬이 된 나는
오래된 팬들이 말하는 '그 때' 그 선수들이, 현재 선수들을 평가하는 잣대가 되는 것을 보며
'얼마나 잘 했길래?' 옛 감상에 젖어 하는 소리 아닌가? 라는 궁금증을 가졌다.
세이버매트릭스, 즉 데이터 야구가 대세를 넘어서 완전히 정착되는 모습을 보며
오로지 데이터만으로 그들이 말하는 옛 선수들과 현역 선수들이 맞붙는 시뮬레이션을 만들고 싶었다.
이 프로젝트는 야구놀자 라는 이름으로 2018년에 Python - Django 로 처음 만들었다.
하지만 팀 프로젝트로 진행하면서 아쉬움이 많이 남는 프로젝트 였고, 언젠가 혼자 다시 만들어 보리라 했었다.
2021년, 혼자 version 2를 Python - Flask 로 만들었다. 그 때 까지만 해도 백엔드 지망생이었다. 기존 프로젝트로부터 알고리즘 개선에 중점을 두었기에 UI는 vanillaJS로 대충 만들었다.
알고리즘은 70%의 성능 개선율을 이루었으며 혼자서 풀사이클 프로젝트를 해냈다는 성취감이 있었다.
UI/UX에 굉장한 아쉬움이 남았지만 현생이 급했기게 아쉬움을 뒤로한 채 취업전선에 뛰어들었다.
취준 시기에 많은 변화가 있었다.
4년동안 백엔드를 지망하던 놈이 프론트 생태계에 강렬한 매력을 느끼더니
현재는 현업에서 2년차 프론트엔트 개발자로 살고 있다.
그러다보니 이 애증의 프로젝트 버전 업그레이드에 드릉드릉할 수 밖에 없다.
기술 스택부터 정해보자
Vue? React?
Vue도 React도 각각 나름의 매력이 있다. 하지만 Vue는 회사에서 쓴다. 고민의 여지 없이 React.
JS? TS?
개인 프로젝트인 만큼 TS의 중요성이 크진 않지만 이 역시 회사에서는 TS를 쓰지 않아 공부하고 싶었다. TS.
Tailwind? StyledComponent?
테일윈드 너무 편하고 좋고 요즘 대세이긴 하지만, 개인적으로 코드가 지저분해 보여서 선호하지 않는다. StyledComponent. 추가적으로 SCSS를 살짝 맛보기로 했다.
Python? Node?
고민해봤지만 굳이 백엔드가 필요한가? 데이터베이스만 파이어베이스를 이용해 서버리스로 구현해보기로 했다.
모듈 번들러는 빠르디 빠른 Vite로 개발 환경을 세팅했다.
추가적으로 JS 개발 시 데이터를 다룰 때 Object 보다 Map을 적극 사용해 보기로 해본다.