드디어 레벨테스트 마지막 날, 어제 새벽까지도 완성하지 못한 마지막 주문 내역 조회 기능까지 오늘 오전에 마무리하고, 오후 시간은 테스트를 통과시키는 데 주력했다. 그리고 저녁 시간에는 완성된 코드에 대한 홀맨님의 피드백 시간이 있었다.
1) E2E 테스트
오후 3시 쯤 단위 테스트는 다 통과했고 마지막 E2E 테스트만 남겨두었는데, 계속 돌릴 때마다 안깨졌던 테스트가 깨진다거나, 깨졌던 테스트가 다시 통과한다거나 하는 등 문제가 계속 터졌다. 알고보니 인수 테스트를 할 때는 각 테스트들은 무조건 독립적으로 동작하도록 해주어야 하는데, 그러기 위해서는 매번 데이터 reset & setup 을 해주어야 한다. 하지만 나는 그 세팅 과정을 테스트에 개별적으로 해주고 있었다. 한 마디로 어떤 테스트는 리셋을 해주지 않고, 어떤 테스트는 리셋을 해주고. 그러다보니 테스트들이 서로 독립적으로 움직이지 않았고, 다른 테스트에 리셋이 되어 있지 않다면 그 상태 그대로 바로 다음 테스트에도 영향을 미치는 것이었다. 각 테스트들은 매번 독립적으로 움직일 수 있도록 세팅해줘야 한다는 것을 명심하자.
2) VO 사용해보기
그리고 이번 과제에서는 강의에 나온 VO (값 객체) 를 하나도 적용하지 못했는데, 다음주부터 시작될 포트폴리오에서는 적극적으로 사용해보라는 피드백이 있었다. 엔티티의 필드는 모두 VO 로 바꿔주면 좋다고 하셨다. 파라미터로 들어갈 경우 String accountNumber 보다는 AccountNumber.value 가 더 명확한 의미를 드러낸다. 유일성이 있는 경우 (예를 들어 accountNumber, address, message 등) 아주 유용하게 사용할 수 있다고 하는 VO. 그 필요성을 아직 절실하게 인지하지는 못했는데 일단 사용해보고 편리한 것을 직접 느껴봐야 할 것 같다.
3) formStore 많이 만들어보기
로그인 기능을 구현 및 validation 체크를 무의식적으로 useForm 이라는 라이브러리를 사용해서 구현했는데, formStore 를 최대한 많이 사용해보라고 하셨다. (loginFormStore, signupFormStore 등) 이런 라이브러리 사용보다 직접 스토어를 만들어서 기능을 구현해보라고 하시긴 했지만 무의식적으로 useForm 을 써버린 나의 손...이미 돌이킬 수 없는 강을 건넌 상태여서 이대로 진행했지만 포트폴리오에서는 라이브러리보단 직접 만들어서 사용해보자. 직접 만들어서 사용해보면 100줄이 넘어가는 컴포넌트들을 간결하게 만들 수 있고, 비즈니스 로직도 감출 수 있어서 관심사의 분리가 가능하다.
내일부터는 다음 주 포트폴리오를 위한 기획 주간이 시작된다. 이번 주 작업을 마무리 하지 못한 것 (리드미 작성이나 배포, 테스트 수정 등) 이 남아서 아직은 정신이 없다. 하지만 기획을 확실히 잡아놔야 개발할 때 편리하다고 하니 얼른 마지막 과제를 마무리 하고 어떤 도메인으로 약 두 달 동안 즐겁게 할 수 있을 지 생각해봐야겠다. 힘내자! 😤
최종 작업물
1) 홈 화면
2) 상품 목록
3) 상품 주문 내역
'TIL' 카테고리의 다른 글
포트폴리오 기획 주간 시작 (22.12.11 TIL) (0) | 2022.12.11 |
---|---|
폭풍전야 (22.12.10 TIL) (0) | 2022.12.10 |
레벨 테스트 작업 로그 #10 - 중첩 DTO 를 사용할 때 (22.12.08 TIL) (1) | 2022.12.08 |
레벨 테스트 작업 로그 #9 (22.12.07 TIL) (0) | 2022.12.07 |
레벨 테스트 작업 로그 #8 - 테스트 코드 작성, 코딩 시간 늘리기 (22.12.06 TIL) (0) | 2022.12.06 |
댓글