이번 과제를 하며 2가지의 힘들었던 부분이 있다.
느낀게 많아서 앞으로 트러블슈팅 발생시 이번에 배운것을 바탕으로 대처해보려고 한다.
📝지출 데이터에 누가 해당 지출을 생성 했는지가 포함시켜 봅시다.
라는 요구사항을 보고 바로 input 으로 작성자 정보를 받아야겠다고 생각했는데..
수정/삭제시 본인이 작성한 내역만 수정삭제 가능하도록 할때 user 값을 비교하는 로직을 짜면서 뭔가 이상함을 느꼈다.
1번은 이상함을 느끼고 나서야 완성된 ui 에 별도로 추가된 input칸이 없는걸 나중에 발견했다.
문제 이해가 잘 안될때는 정리를 해보고 내가 이해한게 맞는지 튜터님께 가서 여쭤보자.
glitch 로 프로젝트 import 후, db.json 파일에 추가/수정/삭제된 부분이 바로 반영이 안되더라.
원래 vscode 에서 json server 사용할때는 바로 반영이 되는것을 확인했는데, glitch 에서는 안되길래 당황했다.
log 를 확인했을땐 post 가 잘 찍히긴 하는데 왜 파일엔 내역 추가가 안되는지..
엄청 오래 고민하고 알아봤는데 정보도 별로 없어서 또 꽤나 많은 시간을 보냈다.
팀원분께도 어려움을 나누니 위와 같은 정보를 찾아주셔서 그나마 적당히 내려놓고 다음날 튜터님께 여쭤보니 백엔드 영역에서 데이터 처리에 대한 속도? 공백이 있어서 이런 경우도 있다고 하셨다.
뭔가 저번 팀플부터 이번과제까지 데이터를 다루면서 코드말고 다른부분에 (supabase 정책때문에 데이터 테이블에 add 안되던것과 같은) 시간을 많이 보냈어서 좀 힘들었다.
어느정도까지 고민을 해야하는지.. 에 대한 생각이 많아졌고..
물론 이 문제를 직면한 시기가 과제를 마치고 난 후여서 더 파고든것도 있지만 그래도 앞으로는 시간을 정해두고 고민해봐야겠다. 사소한거 기능 하나하나보다는 크게 보고 흐름을 학습하는게 더 중요한거같다.
이번 과제는 인증/인가 처리에 대해 정말 많이 고민해볼 수 있는 기회였다.
서버와 데이터를 주고받는 과정에서의 흐름파악 :
'어느데이터가 들어오고 그중에 뭘 뽑아서 쓸건지, 나는 어느 컴포넌트에서 export 할건지' 와 같은 전체 구조파악이 중요하다고 느꼈다.
또한 반복되는 코드를 자주 작성하다보니 왜 재사용성을 강조하고 그에 맞는 로직을 적절하게 사용하는지 (ex. 커스텀 훅) 이해할 수 있었다.

거의 모든 기능이 accessToken 으로 인가처리가 이뤄져서 처음에 순서를 잘 잡고했다면,
(토큰을 통해 가져오는 유저 정보를 정확히 어느 컴포넌트에서, 어떤 순서로 사용할것인지에 대한 흐름.) 시간을 단축시켜서 구현할 수 있었겠다는 생각이 들었다.
예전에는 코드를 작성하고 에러가 발생하면 최대한 많이 검색해보려고 했고, 그걸 반영해서 수정할때 조심스럽게 작성하는 경향이 있었다. 이제는 에러 발생시, 바로검색보다는 생각을 한번 더해서 직접 확인하고 있다.
(예를들면 데이터가 undefined 로 찍힐때 느낌상 들어와야되는 부분에 코드 중간마다 로그찍어서 확인..)
원래 이렇게 습관이 잡혔어야했는데 그동안은 너무 처음부터 최대한 깔끔한 코드를 작성하려고 했던거같다. 이젠 '내코든데 내가 여러번 엎고 다시 작성하고 그러는게 기본 아닌가 뭐' 라는 생각으로 주석처리하면서 테스트도 많이 해보고있다.
어차피 리팩토링 해야하고, 리팩토링할때도 코드 간단해지는거 보는게 단순하게 정보글보고 적용하는거보다 훨씬 재밌다.
앞으로는 오류 발생하거나, 왜 작동되는지 이해가 안될때 검색하기 전에 한번이라도 로직 중간마다 로그를 찍어보는 연습을 하려고 한다. 이 방법도 흐름 파악하는데 도움이 많이 되는중..!!
이번주는 여러부분에서 새로운 다짐을 할 수있는 시간이었다.
다음주 팀플도 화이팅해보자!