[TIL] 06/14 :: 개인과제 회고

yeseul·2024년 6월 14일

<TIL>

목록 보기
21/43
post-thumbnail

이번 과제를 하며 2가지의 힘들었던 부분이 있다.
느낀게 많아서 앞으로 트러블슈팅 발생시 이번에 배운것을 바탕으로 대처해보려고 한다.

1. '문제를 잘못이해하는 부분이 꼭 있다..'

📝지출 데이터에 누가 해당 지출을 생성 했는지가 포함시켜 봅시다.
라는 요구사항을 보고 바로 input 으로 작성자 정보를 받아야겠다고 생각했는데..
수정/삭제시 본인이 작성한 내역만 수정삭제 가능하도록 할때 user 값을 비교하는 로직을 짜면서 뭔가 이상함을 느꼈다.

  1. 로컬스토리지에 저장된 토큰을 이용해서 user 데이터를 비교하려는데,
    닉네임으로 해야할지, input 으로 입력받은 사용자 정보로 해야할지, id 로 해야할지 비교대상이 너무 많은게 이상했다.. 나중엔 뭐가 어떤데이터인지 너무 헷갈렸음.
    => 로그인한 유저의 id를 지출내역에 포함시켜서 선택된 내역의 url에서 뽑아낸 id 와 로그인한 유저의 id 를 비교해보면 됐었다.

  2. 세션만료 시키는것을 로컬스토리지에 저장된 데이터로 해야되는 줄 알았다.
    -> 그래서 로컬스토리지에도 데이터를 저장해두고 있었음.
    => 세션만료는 만료된 토큰에 대한 response로 처리가 가능하다.

1번은 이상함을 느끼고 나서야 완성된 ui 에 별도로 추가된 input칸이 없는걸 나중에 발견했다.
문제 이해가 잘 안될때는 정리를 해보고 내가 이해한게 맞는지 튜터님께 가서 여쭤보자.

2. '너무 집요하게 시간고려 안하고 파고드나?'

glitch 로 프로젝트 import 후, db.json 파일에 추가/수정/삭제된 부분이 바로 반영이 안되더라.
원래 vscode 에서 json server 사용할때는 바로 반영이 되는것을 확인했는데, glitch 에서는 안되길래 당황했다.
log 를 확인했을땐 post 가 잘 찍히긴 하는데 왜 파일엔 내역 추가가 안되는지..
엄청 오래 고민하고 알아봤는데 정보도 별로 없어서 또 꽤나 많은 시간을 보냈다.

팀원분께도 어려움을 나누니 위와 같은 정보를 찾아주셔서 그나마 적당히 내려놓고 다음날 튜터님께 여쭤보니 백엔드 영역에서 데이터 처리에 대한 속도? 공백이 있어서 이런 경우도 있다고 하셨다.
뭔가 저번 팀플부터 이번과제까지 데이터를 다루면서 코드말고 다른부분에 (supabase 정책때문에 데이터 테이블에 add 안되던것과 같은) 시간을 많이 보냈어서 좀 힘들었다.
어느정도까지 고민을 해야하는지.. 에 대한 생각이 많아졌고..

물론 이 문제를 직면한 시기가 과제를 마치고 난 후여서 더 파고든것도 있지만 그래도 앞으로는 시간을 정해두고 고민해봐야겠다. 사소한거 기능 하나하나보다는 크게 보고 흐름을 학습하는게 더 중요한거같다.

✨ 방향성

  • 백엔드와 데이터를 주고받을때 공백에 대한 예외처리를 어떻게 할수있을지 항상 염두에 두고 로직짜보기
  • 반복되는코드 어떻게하면 간단하게 재사용 할 수 있을지
    -> 컴포넌트 100개에서 이 로직이 쓰인다면? 을 생각해보자..
  • 바로 코딩으로 들어가지말고 컴포넌트간에 import export 할 부분을 확실하게 생각해보기.
  • 두시간까지 고민해보고 모르면 물어보기.

이번 과제는 인증/인가 처리에 대해 정말 많이 고민해볼 수 있는 기회였다.
서버와 데이터를 주고받는 과정에서의 흐름파악 :
'어느데이터가 들어오고 그중에 뭘 뽑아서 쓸건지, 나는 어느 컴포넌트에서 export 할건지' 와 같은 전체 구조파악이 중요하다고 느꼈다.
또한 반복되는 코드를 자주 작성하다보니 왜 재사용성을 강조하고 그에 맞는 로직을 적절하게 사용하는지 (ex. 커스텀 훅) 이해할 수 있었다.

거의 모든 기능이 accessToken 으로 인가처리가 이뤄져서 처음에 순서를 잘 잡고했다면,
(토큰을 통해 가져오는 유저 정보를 정확히 어느 컴포넌트에서, 어떤 순서로 사용할것인지에 대한 흐름.) 시간을 단축시켜서 구현할 수 있었겠다는 생각이 들었다.

예전에는 코드를 작성하고 에러가 발생하면 최대한 많이 검색해보려고 했고, 그걸 반영해서 수정할때 조심스럽게 작성하는 경향이 있었다. 이제는 에러 발생시, 바로검색보다는 생각을 한번 더해서 직접 확인하고 있다.
(예를들면 데이터가 undefined 로 찍힐때 느낌상 들어와야되는 부분에 코드 중간마다 로그찍어서 확인..)

원래 이렇게 습관이 잡혔어야했는데 그동안은 너무 처음부터 최대한 깔끔한 코드를 작성하려고 했던거같다. 이젠 '내코든데 내가 여러번 엎고 다시 작성하고 그러는게 기본 아닌가 뭐' 라는 생각으로 주석처리하면서 테스트도 많이 해보고있다.
어차피 리팩토링 해야하고, 리팩토링할때도 코드 간단해지는거 보는게 단순하게 정보글보고 적용하는거보다 훨씬 재밌다.
앞으로는 오류 발생하거나, 왜 작동되는지 이해가 안될때 검색하기 전에 한번이라도 로직 중간마다 로그를 찍어보는 연습을 하려고 한다. 이 방법도 흐름 파악하는데 도움이 많이 되는중..!!

이번주는 여러부분에서 새로운 다짐을 할 수있는 시간이었다.
다음주 팀플도 화이팅해보자!

0개의 댓글