NTS 코딩테스트 이후 내가 DB에 대해서 심각하게 모른다는 것을 알고 급하게 공부하였다.
공부한걸 살려 5월에는 SQLD에 도전해볼 생각이다.
파이썬만큼 알고리즘에 특화된 언어가 없다는걸 세삼 다심 느꼈다.
자바로는 30~50줄은 나올 코드를 단 5~10 줄 안에 해결할 수 있다.
면접에서 Mobx Redux 차이점과 어느때에 Redux를 쓸 것인지에 대해서 질문을 받았는데 차이점에 대해선 알지만 내 경험에서 나온 나의 생각이 아니여서 항상 찝찝했다. 하지만 이번 프로젝트 회고를 통해서 Mobx Redux를 어느때에 사용할지 완벽하게 이해하였다.
M.O.A 프로젝트는 구조적으로 결함이 있는 프로젝트임을 다시 느꼈다. UI와 데이터스토어간 결합이 너무 강하였고 결정적으로 Store간 중복된 데이터를 가지는 경우가 많이 발생했다. ( 당시에는 미처 몰랐고 이게 당연한줄 알았다. )
왜 Store간 데이터 중복이 계속 발생하게 됐는지 고민을 했는데 나는 개발자가 어느 Store가 어떤 데이터를 관리하는지 모두 파악하지 못해 발생한 실수라고 결론을 내렸다.
Mobx 특성상 Redux와 달리 프로젝트에서 Store를 여러개 가질 수 있다. 나는 그것이 개발자가 더 유연한 구조를 취할 수 있기 때문에 Mobx의 장점이라고 생각했는데 회고를 하면서 정 반대임을 알았다.
Redux는 특성상 한개의 Store만 가지고 하위에 여러개의 Reducer를 쪼개는 구조를 강제한다. Store가 하나이기 때문에 Reducer가 중복되면 안되 생성시 Mobx에 비해 자유롭진 않겠지만 그래도 위와 같은 큰 실수를 줄이는덴 도움이 될것이라 생각하였다.
대규모 프로젝트, 협업이 많은 프로젝트는 Redux가 더 낫다.
Redux를 쓰거나, react-query,SWR을 사용했더라면 위와 같은 실수를 범하진 않았을것 이라는 아쉬움이 남는다.