회고

코드숨_React_5주차_주간회고

Facts (사실, 객관)

  • 코드숨 5주차 강의 듣기
  • 과제1: 레스토랑 조회 구현하기

 

Feelings (느낌, 주관)

제대로 된 순서로 TDD를 하는 것이 쉽지 않았다. 지난 번에는 너무 이른 시점에 컨테이너를 만들어 분리했는데, 이번에는 처음부터 컴포넌트의 분리없이 모든 기능을 구현하려고 하다 보니, 코드의 구조가 쓸데없이 복잡해진 경향이 있었다. 형태만 먼저 만들어 둔 다음 리팩토링을 통해 기능과 컴포넌트를 점점 추가하는 것이 올바른 방향인 것 같다.

 

리덕스를 최대한 늦게 사용했다. 두 가지 모두 익숙해지기 위해 useState로 먼저 상태관리를 했는데, 테스트 작성에 큰 어려움이 있었다. fetch는 비동기적으로 이루어지기 때문에 getBy- 매쳐로 원하는 요소를 찾지 못했다. fetching이 끝나기 전에 테스트가 끝나버리는 듯 했다. useState를 mocking해야 하나, fetch를 mocking해야 하나 방황하면서 이것저것 시도해봤지만 문제를 해결하진 못했다. 나중에는 act를 활용하여 getBy- 매쳐로 테스트를 작성할 수 있었는데, 왜 가능했던 것인지는 아직도 모르겠다. 결국 리덕스를 붙이고 나서야 테스트가 수월해졌다.

 

생활 패턴이 너무 망가졌다. 밤과 낮이 완전 바뀌어 버려서 아침이 되서야 잠을 잔다. 여러 부작용이 있는데 우선 적당한 운동 시간을 잡기가 어렵다. 과제를 오후 늦게서야 시작하기 때문에 코드 리뷰를 받기에도 좋지 않은 패턴인 것 같다. 심지어 월, 화요일은 알바를 하니까 수요일 오후가 되어서야 과제를 제대로 시작해 볼 수 있다. 천천히 패턴을 바꾸려는 시도를 해봐야 겠다.

 

코드에서 발생된 여러 에러들은 대부분 나의 부주의에서 비롯된 것이었다. 주로 오타 때문이었는데, 린트와 같은 도구에 너무 의존하다 보니, 오타를 염두하기 보다는 내가 잘못된 코드를 작성했을 거라고 착각하여 존재하지 않는 것을 찾는데 많은 시간을 허비한다. 

 

컴포넌트에 전달되는 props를 활용하다 보니, HTML 요소에 불필요한 속성을 추가한다던가, 이벤트 객체를 분해하는 일이 줄어들어 편리하다.

 

여전히 변수의 이름을 짓는데 서툴고 무신경할 때가 많다. 좀 더 고민해보자.

 

의미없는 테스트를 작성하는 경우가 많은 것 같다. 필요한 테스트가 무엇인지, 내가 작성한 테스트가 필요한 것인지에 대해 생각해 보는 습관을 가져야 한다.

 

Findings (배운 점)

  • 비동기적인 상태 업데이트를 위해 thunk라는 리덕스 미들웨어를 처음으로 사용했다.
  • thunk는 action creator가 action아 아닌 함수를 리턴할 수 있게 한다. thunk가 action creator에 직접 개입하는 것은 아니다. 리듀서는 순수한 액션 객체를 인수로 받는 것과 달리, 미들웨어는 특정한 액션(여기서는 함수를 리턴하는 액션)을 인식하여 커스텀된 로직을 실행한다. 즉 미들웨어를 통해 커스텀 된 dispatch를 실행할 수 있다.
  • thunk의 매개변수로 전달되는 getState로 상태를 가져올 수 있다.
  • 변수명의 과도한 축약은 개발자의 인지자원을 소모시키고 코드의 가독성을 해칠 수 있다.
  •  action creator을 객체내 함수로 할당하여 활용하는 방법을 배웠다. 훨씬 간결해진 코드를 보았다.

 

Things to do (해야할 것들)

  • 과제하면서 헷갈렸던 부분 정리해보기
  • 자바스크립트 관련 서적 읽기
  • 백준 알고리즘도 풀어보기
  • 헬스장 가기

 

Affirmation(자기 선언)

  • 건강을 위해 생활 패턴을 관리하고 운동을 한다.

'회고' 카테고리의 다른 글

코드숨_React_6주차_주간회고  (0) 2021.09.21
2021-09-16 TIL  (0) 2021.09.16
코드숨_React _4주차_주간회고  (0) 2021.09.05
2021-09-01 TIL  (0) 2021.09.02
코드숨_React _3주차_주간회고  (0) 2021.08.28