[REACT] 한학기를 마무리하면서

한학기동안 학교 기초캡스톤 과목을 수강하며 13명(사실 5명정도)이 만든 프로젝트...

 

(달리 api가 쓰면 돈나가서, BE 맡으신분에게 달리 지갑 닫혀있냐고 물어보고 링크 올리겠습니다)

 

 

물론 생각보다 좀 덜 개발된 부분도 있었고, 오류도 있었고 했으나 전체적으로 봤을 때 성공적인 프로젝트였다고 생각합니다. (입상은 못해서 너무 아쉬웠어요)

 

FE단은 리액트로 내가 거의 다 만들었고, (PM하는 친구가 웹 풀스택이었기에 도와줬습니다) 그렇기에 아쉬움이 좀 남네요.

 

사실상 두 번째로 하는 프로젝트였고, 이전에 썼던 툴과는 다른 툴을 썼습니다 (redux -> recoil, axios -> react query)

새로운 툴을 배워간다는 생각으로 시작했던 프로젝트여서 사실 완성도가 좀 떨어질거라고 생각은 했으나, 전체적으로 코드를 작성하면서 생각한 방향으로 설계가 되지 않은 부분이 답답했습니다.

 

해서, 이번 프로젝트에서 아쉬웠던 점을 정리하며 이후 프로젝트를 진행할 때는 반복하지 않을 실수들을 적어보려고 합니다.

 

 

첫 번째, 불필요한 코드의 반복

 

react-query를 처음 사용해서(라는 핑계로) 그냥 덕지덕지 로직을 달아놨는데, 처음에는 나중에 따로 로직을 분리해야겠다.. 라고 생각했던게 어느샌가 코드 양이 늘어나고, 기한이 다가오다보니까 수정하기에는 너무 멀리 와버렸던 것 같습니다.

 

이건 react-query의 사용 여부를 떠나서, 반복 로직은 기본적으로 자제해야하는게 맞다고 생각해서, 이후에는 최소화하는 방식으로 구현을 진행하려고합니다.

 

사실 변명을 하자면.. 네,, 다음 항목에서 하도록 하겠습니다

 

두 번째, 내가 사용하는 툴을 잘 모르고 있었던 것

 

react-query에서의 useQuery와 useMutation, 처음 접하는 저에게는 참 많이 헷갈리는 친구들이었습니다.

처음에는 단순히 useQuery -> get, useMutation -> put, delete, post 인가? 라고 생각했었는데, get 또한 useMutation으로도 사용 가능했고,, 이런 부분에서 많이 헷갈렸던 것 같습니다.

 

useQuery와 useMutation의 차이점을 명확히 인지하고 있었다면 상황에 따라 적재적소에 사용할 수 있었을텐데, 단지 사용하기 편하다는 이유로 get 또한 useMutation을 사용했던 것 같습니다. (이후에 get은 useQuery가 더 효율적이라는 사실을 듣고 로직을 수정했었는데, 전부 수정하지는 못했었습니다)

 

이외에도 전역 상태를 관리하기 위해서 recoil을 사용했는데, 마지막에 와서 확인해보니 recoil에 담겨있는 로그인 정보 하나뿐이었습니다. 이럴거면 recoil을 굳이 사용해야했는지, 이럴거면 react 내장 기능으로도 충분하지 않을까 라는 생각또한 해보게되었던 것 같습니다. 또, 더 나아가서 전역상태는 어떤 상황에서 사용해야하는지도 알아봤던 것 같구요

 

마지막, 너무 허술하게 플로우를 구상했던 것

 

사실 이전에는 플로우차트같은걸 그려서 흐름을 다시금 점검해보는 시간 또한 가져보았던 것 같은데, 이번 프로젝트에서는 혼자 개발해야한다는 압박감이었는지는 몰라도 그냥 머리속에 스케치 한 다음 개발을 진행했던 것 같습니다.

 

당연히 다시 점검할 기회가 없었기때문에, 컴포넌트간 데이터 교환 흐름이 이상해지는 일도 있었고, 전체적으로 구조가 더러워졌습니다.

 

설계 실수로 인해 전역상태로 분리하는 것은 그다지 좋은 방향이라고 생각하지 않아서 이 부분은 일정부분 고쳐서 이후에는 props를 통해 전달시켜서 정보를 공유할 수 있도록 수정했었는데, 애초에 처음에 설계를 잘 했으면 이런 불필요한 시간이 소요되지 않았을 것이라고 생각이 듭니다.

 

이정도로 프로젝트를 하면서 아쉬웠던 점이 있었는데, 마냥 아쉽기만 하냐면 사실 그건 또 아닙니다.

이번 프로젝트를 통해 google 로그인을 구현하면서 OAuth에 대해서도 조금 더 알 수 있었고, 새로고침시 데이터가 사라지는 현상을 방지하기 위해서 useParams를 쓰는 등, 여러가지 테크닉들 또한 알 수 있었던 것 같습니다.

 


 

한학기가 끝난 지금, 학기 초의 나보다는 그래도 조금은,, 더 나아졌다고 생각합니다.

아직 갈길이 멀지만요.. ^^b