
이번 챕터의 과제는 이전 6주 간의 과정보다 더 배경지식이 없는 상태로 진행을 하였습니다.
물론 용어나 명칭, 어떤 역할인 지에 대한 것을은 지식으로써 접해봤지만, 실제로 바닥부터 작성하는 것은 처음이었던 경험이었습니다.
챕터구성
Chapter 3-1. 프론트엔드 테스트 코드 (1)
Chapter 3-2. 프론트엔드 테스트 코드 (2)
테스트 코드에 대한 친숙함을 느낄 수 있도록 7주차에는 주어진 테스트 명세에 맞는 테스트 코드를 작성하도록 구성되어있었고, 함수와 훅에 대한 단위 테스트, 비즈니스 로직을 점검하기 위한 통합 테스트를 작성할 수 있는 것을 목표로 했습니다. 또한, Hard 난이도의 과제로 도전하여 MSW에 대한 개념과 테스트 환경에 대한 독립적인 환경 세팅을 하는 과정에 대하여 학습할 수 있었습니다.
이어서 8주차에는 이미 일부 기능이 구현이 완료된 프로젝트를 기반으로 기존 기능과 테스트 외에 추가 기능을 구현하면서 TDD방식의 개발을 진행하는 과정을 학습하였습니다. 이미 작성된 테스트 코드는 변동이 없도록 유지하면서, 추가 요구사항에 맞는 테스트 코드와 이 테스트 코드의 기대값을 충족하는 함수의 정의, 훅과 화면의 정의들을 단계적으로 구현해 나가는 것을 목표로 하는 과제였습니다.
처음 언어를 바꿔서 개발을 시작하는 느낌으로 테스트 코드에 대한 세팅과 함수들에 익숙해진것 같습니다.
단위 테스트와 통합 테스트의 스코프와 필요성에 대하여도 알게되었고, E2E테스트의 툴들을 활용한 검증 과정을 익힐 수 있었습니다.
단위 테스트(유틸 함수 단위)

단위 테스트(훅 단위)

통합 테스트

E2E 테스트

그럼에도 불구하고 각 주차별로 과제 중 빈틈 하나씩은 있던 것 같습니다.
7주차에는 기본 Context API만으로 전역 상태를 처리하여, 라이브러리 사용 시에 대한 테스트 환경 세팅에 대하여 확인을 하지 못했고,
Providers
8주차에는 E2E 테스트 시에 워커 간의 독립환경을 완벽하게 구축하진 못했던 부분이 아쉬웠습니다.

E2E까지는 아니지만, 단위 테스트 > 통합 테스트에 대한 부분은 현업에도 적용하는데 큰 장애물이 없을 것으로 보입니다. Git이 도입된지 얼마되지 않아 자동화를 다는 것이 아직 어려울 수도 있을 것 같은데, 테스트 자체는 추가할 수 있을 것 같습니다.
이번주는 특히나 과제에 시간을 많이 투자한 것 같습니다. 모르는 부분도 많았고, 익숙하지 않은 부분들도 많아서 이해하고 적용하는데에 오래 걸렸던것 같습니다. 2일 단위로 새로운 공부를 하는 느낌으로 도전하는 것을 다음 챕터에도 도전하도록 하겠습니다.

아직까지도 글쓰기가 어려운 것 같습니다.
2일 단위 글쓰기는 일단 보류하고, 어느정도 개념이 머리에 쌓인 뒤 생각을 정리하는 글을 쓰는 방향으로 노선을 변경할 것 같습니다.