이번주에는 로그인하는 것에 대해서 배울 수 있었다.
로그인
화요일에 7주차 과제를 처음으로 커밋했다.
로그인페이지, 로그인, 리뷰 작성하기 구현은 강의를 참고하면 완성할 수 있었지만, 리뷰목록 구현은 스스로 해결해야하는 과제로 주어졌다.
TDD사이클에 맞추어 Red-Green-Refactoring 으로 커밋했다.
리스트 목록 구현까지 모두 완료할 수 있었다!
테스트 커버리지는 100% 달성하지 못했다.
월요일~화요일 반나절동안 5강 비동기와 6강 라우팅을 복습하면서 처음부터 다시 직접 짜봤더니 컴포넌트의 데이터의 흐름이 이해가 갔다.
덕분에 화요일부터는 7주차 과제(로그인)에 집중 할 수 있었다.
강의를 최대한 복기하면서 스스로 코드를 짜려고 노력했다. 그치만 흐름에 대해서는 메모하고 참고해가면서 과제를 완성해나갔는데, 이렇게 해도 복기인가 싶었다(?)
컴포넌트가 많이 나눠져 있어서 데이터의 흐름이 헷갈리기 때문에 항상 과제를 수행하기 전에 아키텍처를 그려본 후(즉, 수행해야하는 태스크를 단계별로 나눈후) 참고해가며 과제를 수행했더니 더 수월하게 진행 가능했다.
근데 이번에는 과제 완성하는데 급급해서 테스트코드(특히 action, reducer, api 테스트를)를 몇몇 스킵해가면서 하다보니 주석으로 남겼는데도 뭐가 빠졌는지 나중엔 혼란스러웠다 🥲
역대급으로 정신은 없었지만 재미있게 과제를 수행할 수 있었다.
테스트 커버리지를 100% 달성했으면 기분이 좋아졌을텐데 아쉽다.
강의를 들으면서도 서버에 대해 생소해서 강의를 따라하는데 급급했지만, rest Api의 HTTP 메서드(GET/POST/PUT/PATCH/DELETE)를 알게되었고, 로그인 할 때 session을 POST(등록)해볼 수 있었다.
Authentication(인증/로그인)후, 토큰(권한)을 얻고 나서는Authorization(허가/수행가능한상태) 절차를 밟아서 리뷰정보를 POST(등록)해볼 수 있었다.
given2 프레임워크로 테스트에 액세스토큰을 셋팅할 수 있었다... (프레임워크는 정말 무궁무진하구나)
localStorage로 데이터를 저장(save)하거나 불러오기(load)를 할 수 있었고, 이를 테스트하기 위해서 모킹도 했지만 왜인지 테스트는 구현할 수 없었다... 😂
로그인을 하려고 할 때 없는 계정정보로 계속 로그인하려해서 400에러의 고통을 맛봤는데.. 이로 인해 개발자도구의 네트워크를 어느정도 볼 줄 알게 된 것 같다.. (그리고 다음부터는 안될 때 왜 안되는지 생각을 해보는 시간을 갖자..)
지난주의 자기 선언을 어느정도 잘 지켜냈다 칭찬!
매일 커밋하는 연습을 하자.
생소한 부분은 꼭 이론공부를 하고 넘어가자...