추가, 수량 변경, 제거, 초기화 같은 상태 전이를 action 단위로 모읍니다.
cart lab
장바구니 책임 분리
상품 목록 로딩, 장바구니 수량 변경, 합계 계산을 한 컴포넌트에 섞지 않고 각 역할에 맞는 구조로 나눕니다.
장바구니 state와 dispatch를 필요한 컴포넌트가 같은 기준으로 읽게 합니다.
로딩, 성공, 오류 상태를 훅 안에서 관리해 상품 목록 컴포넌트를 단순하게 둡니다.
상품 로딩 상태와 장바구니 상태를 섞지 않는다.
동일 상품 추가가 수량 증가로 이어지는지 본다.
수량이 0 이하가 되는 전이를 막는다.
합계가 state 중복이 아니라 계산값인지 확인한다.