axios({
method: 'post', // get, post, patch, put, delete 등
url: '/user/12345', // 서버 주소
data:{ // 전송되는 데이터
firstName: 'Fred',
lastName:'Flintstone'
}
});
pending
: 대기 상태이고, 비동기 처리 로직이 아직 완료되지 않은 상태를 의미한다.fulfilled
: 이행 상태이고, 비동기 처리가 완료되어 프로미스가 결과 값을 반환한 상태이다.rejected
: 실패 상태이고, 비동기 처리가 실패하거나 오류가 발생한 상태를 의미한다.- Redux Toolkit과 함께 사용했기 때문에, 리덕스 툴킷에서 제공하는 `ThunkAPI`라는 친구와 axios를 함께 사용했다.
- Redux Toolkit에는 내부적으로 thunk를 내장하고 있어서, 다른 미들웨어를 사용하지 않고도 비동기 처리를 할 수 있다.
// axios + thunkAPI
export const getReply = createAsyncThunk(
"reply/getreply",
async (payload, thunkAPI) => {
try {
const response = await axios.get(`http://localhost:3003/replyList`);
console.log("get api확인", response);
return thunkAPI.fulfillWithValue(response.data);
} catch (error) {
console.log("get api", error);
return thunkAPI.rejectWithValue(error);
}
}
);
// createSlice + extra reducers
export const replySlice = createSlice({
name: "replyList",
initialState,
reducers: {},
extraReducers: {
[getReply.fulfilled]: (state, action) => {
console.log("get action.payload", action.payload);
state.replyList = action.payload;
},
[getReply.rejected]: (state, action) => {
state.error = action.payload;
},
},
});
리액트 심화주차의 팀과제는 Axios와 리덕스 툴킷을 이용한 CRUD 구현이었다.
get, post, delete 요청은 어떻게 잘 되었고 흐름도 이해가 되었지만, 가장 어려운 부분은 update였다.
이미 있는 상태값을 가져와서... 그 상태값을 변경하고... 변경된 상태값이 저장되면 되는거 아닌가? >> 그리고 그 아닌가?가 절대 수행이 안돼서 너무너무너무너무너무너무 힘들었다.
토요일과 일요일인 오늘을 통해 react 기술 매니저님과의 특별 면담 시간을 이용해서 조금이나마 이해할 수 있었다.
남에게 지금까지 잘 물어보지 않았던 내가 남들에게 가장 많이 물어본 시기기도 했다.
물론 다들 너무 바빠서 물어보지 못 했지만, 다른 사람이 물어본 내용에 대한 해답을 같이 듣기도 했고...
특히 기술 매니저님들을 많이 괴롭혔다.
덕분에 이해하고 넘어갈 수 있어서 매우 기뻤고, 재밌기도 했다. 이제 백엔드와의 첫협업을 통해서 미니 프로젝트를 진행하는데, 솔직히 너무 걱정이 앞선다...
알고리즘 주차엔 뭔가 함수 안에 들어갈 로직을 어떻게든 생각할 수 있었는데, 리액트를 배우면서 코드로 사고 하는 방식을 많이 잊은 것 같다.
전부 휘발된 것은 아니지만... 그래도 열심히 풀고 공부했던 시간이 무색하게 느껴질 정도였다.
강의만 보고 기능을 구현한 자의 말로일까 😭 과제만으로 벅차서 따로 공부를 못 했는데, 어떻게든 더 했어야 한다는 생각이 든다. 하지만 지금도 나는 기능 구현에 급급해서 공부를 하고 있지 못 한다...🫠
정말 기술 매니저님들 덕분에 이해하고 넘어가는 부분이 있어서 다행이다.
코드를 분석하며 주석을 다는 것이 나름의 공부기도 했고... 특히 지금은 혼자서 집안일을 다 신경써야 하니까 심신이 피로하고 피폐해진다...
개발 공부에만 몰두하고 싶은데... 왜 이렇게 신경쓸게 많은지 ㅠ 다 부셔 진짜...
그래도 역시 기능 구현은 재밌다. 시간만 더 있었으면 좋겠다..⏰
진짜.. 너무.. 너무너무 힘들다 ㅠㅠ 사람 살려... 🙋♀️
출처: