react 4주차 회고

Hannah·2021년 2월 22일
0

코드숨

목록 보기
4/9

한 것

  • To-do 리스트 리덕스 사용해 리팩터링
  • 레스토랑 정보 확인 및 예약 시스템 구축하기

느낀것

  1. 이번 과제도 처음에 방향을 잡지 못하고있었는데 역시 리뷰어님께 어떤 느낌으로 작업을 진행하는지 여쭤보는게 방향을 잡는데 젤 좋은거 같다. 방향조차 몰라 손도 못대는것 보다는 방향에 대해 질문을 하고 방향을 잡기 시작하면 느리더라도 맞는 방향으로 가고있으니 괜찮은것 같다. 그리고 과제 중간중간에 맞는 방향으로 가고있는지 질문을 할때마다 답변을 해주시는 리뷰어님 덕분에 중간에 좀 삐끗하더라도 다시 방향을 잡고 작업을 진행할 수 있어 너무 좋았다.
  2. TDD를 하다보니 퍼블리셔개발자가 떠올랐다.
    퍼블리셔가 정적인 화면을 마크업해서 개발자에게 넘기면 개발자는 기능을 넣고 반복되는 코드를 제거하고 데이터에 따라 유동적으로 화면을 그리는데 이러한 과정이 TDD 과정중에 하나인 refactoring과 비슷한거 같다는 생각을 했다.
  3. 처음에 작은 컴포넌트부터 만들다가 중간에 컴포넌트부터 만들면 안된다는것을 알아서 다시 App부터 만들기 시작했다. 그래서 좀 변경되는 부분이 많았는데 코드가 변경될때마다 어디서 에러가 나는지 테스트 코드가 알려줘서 빼먹은곳 없이 에러가 안나게 변경할 수 있었다.. 이래서 테스트 코드 작성하는구나.. 아마 테스트 코드가 없었더라면 앱을 띄워놓고 하나하나 기능을 재현해본 후에야 작업이 안된곳이 있다는 것을 알았을것이다..! 테스트 코드 짱짱!
  4. 지금까지 나의 작업방식은 모두 틀렸다. 난 항상 필요한 컴포넌트를 예상하고 미리 컴포넌트부터 만들고 조립하는 방식을 사용했었다.. 앞으로는 TDD를 통해 만들어가면서 구조를 파악하고 그때그때 필요다고 생각되는 작업을 해나가야겠다.

배운것

  • 미리 구조를 예상하고 컴포넌트를 만드는 것이 아니라 TDD를 하면서 필요한 컴포넌트를 발견하고 검증하는 것이다.
  • TDD는 항상 테스트 코드를 먼저 작성하는 것이다
  • TDD Cycle에서는 내가 어느 단계에 있는지 인지하고 매우 빠르게 이 단계를 바꾸는것이 중요하다. 만약 너무 오래 걸리면 여러 수단을 통해 그 순간을 벗어나야 한다.
  • 리팩터링 단계는 이걸 개선할 수 있을까?라는 질문을 던지다는 점에서 중요하다. "더 나아질 수 있을까?”, “어느 부분을 나중으로 미룰까?” 등을 고민하고 기록하고 배우는 걸 매우 짧은 시간 안에 여러번 갖는 단계이다.(회고의 가장 짧은 주기 버전)
  • 커밋을 통해 내가 어느 단계에 있는지 인지할 수 있다(TDD Cycle)
  • TDD의 강점은 바로 당장 작동하는 코드부터 만들어 나가면서 구조를 잡아간다는 것이다.
  • 테스트 코드를 통해 오류가 발생하는 부분을 다 잡을 수 있고 점진적으로 구조를 개선해나가기때문에 유연하게 대처도 가능하다. 그렇기 때문에 개발 속도도 더 빨라질 수 있다.
  • TDD에서 핵심사용하는 쪽에서 먼저 인터페이스를 정의하는 것이다. 어떻게 동작하는지(사용하는지)에 대해 먼저 정의해주자. TDD는 사용 설명서이다!
  • TDD는 항상 작게작게 시작해야한다. render하는 것부터 시작하여 컴포넌트를 분리하고 기능을 넣고 상태관리를 추가하면서 점진적으로 구조를 개선해 나가자
  • 코드를 고쳤을때 알 수 있는 신호가 무엇일까 고민해보면 어떤 테스트 코드가 필요한지 좀 더 보일것이다.
  • 테스트코드에서 useSelector, useDispatchmocking하는 방법(jest.mock, mockImplementation 사용)
  • 파일만 만들어져도 테스트 코드가 먼저 만들어져야 한다.
  • 함수를 호출하는 테스트를 사용할경우에는 꼭 beforeEach 안에서 jest.resetAllMocks()를 사용하여 매번 테스트가 실행될때 함수 실행을 초기화시켜주자

0개의 댓글