코드숨 React 5기 - 4주차 회고

코드숨 React 5기 - 4주차 회고

4주차 주간 회고

Facts

  • 코드숨 4주차 과제 수행
    • To-do 리스트 Redux를 사용하여 리팩터링 하기
    • 레스토랑 정보 확인 및 예약 시스템 구축하기

Feelings

  • 예전에 단지 prop drilling 문제를 해결하기 위한 방식으로 redux를 선택하는 것을 비판하는 Kent Dodds의 글(번역)을 읽었었다. 그리고 결과적으로 데이터를 redux에 캐싱하게 되서 서버와 데이터 불일치를 발생시킬 수 있는 것을 지적한 글 한재엽님의 글도 읽었었기 때문에 redux를 많은 기술 스택에서 채택하는 이유가 궁금했었다. 4주차 강의와 과제를 통해서 상태, 상태를 처리하는 로직과 뷰를 분리하는데에 있어서 redux가 유용하다는 것을 깨달았다. 예전에 redux를 사용했을 때에는 단순히 컴포넌트에 직접 redux state를 붙여서 사용했기 때문에 해당 컴포넌트는 재사용이 불가능했다. 하지만 이번 과제를 통해서 redux state를 사용하는 부분과 컴포넌트 사이에 컨테이너를 위치 시키면 redux state를 사용하는 부분과 컴포넌트가 느슨하게 연결되도록 구성하도록 할 수 있고 변경에 좀 더 유연하도록 구성할 수 있다는 것을 알게 되었다. 기능 구현에 있어서 사용 목적을 분명하게 하고 redux가 제공해주는 이점을 잘 고려해서 사용을 해야 되겠다고 생각했다.

  • TDD를 하기 위해서는 구현하고자 하는 기능이 명확해야 한다는 것을 깨달았다. 너무 당연한 이야기 인데, 테스트 작성 시에 무엇을 작성해야 하는 지를 명시해야 하는데 쉬운 기능을 구현하는데도 불구하고 이 부분이 명확하게 적히지 않는 것을 깨달았다. 그리고 부모 컴포넌트와 자식 컴포넌트 간에 다소 중복되는 테스트가 존재한다고 느끼는 지점들이 있었는데, 이 부분은 내가 해당 컴포넌트가 어떤 역할을 했으면 좋겠는지가 명확하지 않았기 때문에 발생한 문제 같았다.

  • 테스트 문법이나, 테스트 도구가 제공하는 기능들을 잘 모르는 상태에서 작성을 해서 관련된 피드백을 계속 받았다. 테스트 도구가 제공하는 기능들이 어떤 도움을 주는 지에 대해서도 공부가 필요하다고 느꼈다.

Findings

  • 해결하고자 하는 문제를 명확하게 해야 적합한 도구를 사용할 수 있다.(해결하고자 하는 문제에 데이터 정합성이 매우 중요한 요소라면 redux는 적합하지 않은 기술일 수 있지만, 관심사의 분리, 컴포넌트 변경이 잦는 문제를 해결할 때는 redux가 유용한 도구인 것 같다.)

  • 테스트 작성 전에 구현하고자 하는 기능이 무엇인지 고민해야 하고 작성한 컴포넌트를 분리한다면 분리할 컴포넌트의 역할이 무엇인지 잘 고민하고 분리해야한다.

  • 의미가 잘 전달되는 테스트를 작성하기 위해서 테스트 도구 기능들을 알아야 할 필요성(공부해야 될 건 항상 많다….)

Affirmation

  • 과제풀이와 같은 과정을 영상을 보지 않고 진행해보기(부디…)

  • 피드백 받았던 부분을 포함해서 테스트 도구가 제공하는 기능들 학습하고 5주차 과제에 적용해보기

댓글