오늘 useDispatch(Action(인자))라는 함수의 인자값에 body만 넣어도 알아서 응답 객체가 돌아오는 함수를 직접 구현하려고 노력하였다.
//예시
const onLoginMailAuth = () => {
dispatch(LoginAction({ email: string }));
};
// 결과: { email: useong0830@gmail.com }
진짜 타입스크립트는 나의 머리털을 다 뽑아가려고 노력을 했고, 나는 하루종일 이 함수 구현에만 매달려있었다.. redux와 utils/axios의 axios 함수는 인자값만 넣으면 되도록 추상화를 시켰는데 axios 비동기 처리를 할 때 타입을 넣어야 되는 기준들이 너무 어려웠다.
axios의 Method라는 타입이 있었다는 것은 정말 꿈에도 몰랐다.. 진짜 오늘 팀원들에게 S.O.S를 요청하고 다 같이 3시간넘게 쉬지도 않고 내 함수 구현에 온 힘을 쏟아 주셨는데 정말 너무너무너무 감사하다 ㅜㅜㅜ
집단지성의 힘은 정말 대단했고, 혼자했으면 해결 못했을 문제라고 생각이 들었다. 그래도 구현만 되면 정말 유용한 함수라고 말씀해주셔서 감사하다. ㅠㅠ 이 비동기 처리 함수만 만들면 비동기 필요할 때마다 액션 하나만 추가해주고 dispatch
에 요청 값만 넣어주면 되기 때문에 편해지는건 사실이다.
이제 서버랑 연결이 가능해진 단계이지, 끝난건 아니다.. 얼렁 회고를 쓰고 마저 구현하러 가야한다 ㅜㅜㅜ
import axios, { Method } from "axios";
export const axiosRequest = async <D, H>(
method: Method,
url: string,
data?: D,
headers?: H
): Promise<D | void> => {
//생략..
};
잊지 말자.. axios의 Method… 잊지말자.. 공식문서 생활화…
오늘 끝냈어야 할 배포 후 mail 로그인 및 OAuth 로그인 그리고 회원 가입의 기능이 정상 작동하는 목표를 이루지 못하였다.
오늘 정말 밥먹는 시간 빼고 아침 10시부터 밤 11시까지 코딩만 했다.. 너무 안풀려서 1분도 안쉬고 달렸다. 앞으로 3시간 정도 안쉬고 쭉 달릴 예정이다. 정말 힘들지만 구현해내는 과정이 재밌어서 시간가는 줄 모르고 한 것 같다.
앞으로 3시간동안 가능하면 배포를 해보고 안되면 내일까지는 무조건 해야한다. 그리고 내일 게시판 디자인까지 끝내는 것을 목표로 한다!! !
아자! 화이팅!