오늘도 어김없이 코드숨 리액트 4주차 첫 번째 과제에 대한 피드백과 두 번째 과제를 진행했다.
첫 번째 과제에 대한 코드 리뷰를 진행하며 다음과 같은 리뷰를 받았다.
Redux를 사용하기 위한 reducer코드의 일부인데, state와 action을 받아 action의 type별로 if 조건을 이용하여 원하는 action을 dispatch하는 코드였다. 여기서, 이 action의 type을 if문 없이 작성하는 것이 리뷰이자 과제였는데, 작성하면서 어떻게 작성해야 하지 막연히 떠오르지 않아 생각을 많이 했다. 그래서, 1주차에서 진행한 과제의 코드를 참고하여 다음과 같이 만들었다.
앞서 reducer 함수처럼 이번 리듀서도 state와 action을 받고, 여기서 중요한데, action의 type을 알아내는 방법을 처음에는 hasOwnProperty를 이용하려 했는데, hasOwnProperty를 사용하지 말라는 경고를 받았다. 그래서, in을 이용해서 구현했다. 확실히 이렇게 작성하는 게 reducer 함수의 길이도 줄어들고 액션의 수가 많아지면 reducer가 과도하게 길어질 수 있기 때문에 이렇게 분리하는 게 좋아 보이긴 한다. 앞으로 reducer 코드를 작성할 때는 객체의 메서드 방식으로 구현해야겠다.
4주차 두 번째 과제는 제대로 TDD Cycle을 따르며 개발을 하려 하니 이런 고민을 겪었다. Redux를 사용하니깐 그러면 reducer 테스트 코드 작성 - 통합 테스트 App 테스트 코드 작성 - 상태를 관리하는 Container 테스트 코드 작성 - View를 관리하는 Component 테스트 코드를 작성하면서 그러면 reducer 코드는 Component 테스트 코드까지 다 작성한 다음에 작성을 해야 하나? 아니면 저 테스트 코드 중간에 코드를 작성해도 괜찮을까? 이런 고민이 있었다. 또, 상태를 관리하는 Container는 테스트 코드를 작성할 때 아무래도 상태 관련 테스트 코드만 작성하고 Component는 UI를 관리하는 부분이니까 UI 관련 테스트 코드를 작성해야겠지? 근데 아직 기능이 적어서 그런가 테스트 코드를 작성할 부분이 그렇게 많지 않아서 뭔가 보기에 좋진 않아 보이는데 라는 느낌을 받아 이게 맞을까라는 궁금증이 생겼다. 윤석님께 물어보고 물어본 대답을 내일 TIL에 작성해야겠다!
'TIL' 카테고리의 다른 글
TIL - 20220528 (0) | 2022.05.28 |
---|---|
TIL - 20220527 (0) | 2022.05.27 |
TIL - 20220525 (0) | 2022.05.25 |
TIL - 20220524 (0) | 2022.05.24 |
TIL - 20220523 (0) | 2022.05.23 |