• 카테고리

    질문 & 답변
  • 세부 분야

    풀스택

  • 해결 여부

    미해결

선생님 코드 질문있습니다.

20.03.07 01:32 작성 조회수 132

0

아직 완강은 안했고 현재 강의 진도 나간대까지 혼자서 미니플젝하고있습니다.

그러던중 코드를 참고하던중에 잘 생각이안나는 부분이있어서 코드를 가져왔습니다.

function loadUserAPI(userId) {
  // 서버에 요청을 보내는 부분
  return axios.get(userId ? `/user/${userId}` : "/user/", {
    withCredentials: true
  });
}

function* loadUser(action) {
  try {
    const result = yield call(loadUserAPIaction.data);
    yield put({
      // put은 dispatch랑 동일
      type: LOAD_USER_SUCCESS,
      data: result.data,
      me: !action.data // action.data는 현재 UserId인데, UserId가 없으면 내 정보를 표시해준다는 뜻임
    });
  } catch (e) {
    // loginAPI실패
    yield put({
      type: LOAD_USER_FAILURE,
      error: e
    });
  }
}

function* watchLoadUser() {
  yield takeEvery(LOAD_USER_REQUESTloadUser);
}

바로 위의 코드인데요, 어떨때 쓰일까요?

1.

function loadUserAPI(userId) {}

loadUserAPI(userId){}  코드에서 userId는 action의 data를 인수로 받는데.. 여기서 action의 리듀스를 보면 ...state라고만 되있던데, 그러면 앞에서 me에 user정보가 들어와있으니 이거를 활용하는걸까요??

2.

me: !action.data // action.data는 현재 UserId인데, UserId가 없으면 내 정보를 표시해준다는 뜻임

이 부분도 모르겠습니다. 제가 코드주석을 달긴했는데 후우.... 멍청..ㅠㅠ 

UserId는 백엔드폴더-> 모듈 -> user에 있는 user.js에있는 userId를 뜻하는 걸까요?

action.data 앞에 ! 를 붙였다는건 정반대라는건데.. 이 의미를 잘 모르겠습니다. 왜 붙이셨을까요??...

저렇게 코드가 되면 me에는 어떤 정보가 들어오게되나요?

3.

3번 질문은 제 개인적인 질문인데요, 선생님 강의를 따라오면서 제 블로그에 코드 및 강의 내용 정리를 제가 너무 잘 해오다보니 현재 미니프로젝트를 하면서 제 블로그에있는 코드를 거의 복붙으로 해결해왔고 몇몇코드만 수정하는 식으로 작업했습니다.

( 제 미니플젝은 엔티디 안쓰고 styled-components로 제가 직접 스티일링하면서 하고있습니다.)

이렇게 복붙으로 작업을 진행했지만 그래도 기타 에러들은 발생했고 이를 해결하는데에도 적지않은 시간이 걸렸습니다.

 강의에서 발생한 에러보다는 약과였습니다 아마 강의에서 발생했던 에러들을 제가 블로그에 상세히 적어놓아서 큰 에러들을 피해갈수있었던거 같습니다.

다시 본론으로 들어가서 자잘한 에러들을 검색과 전체적인 코드를 보며 고쳐가면서 뭔가 뿌듯하고 자신감을 얻었고, 배웠던 지식들을 다시금 되새김질할 수 있어서 좋았습니다만, 제가 생각했던 개발자와는 거리가 먼거같아 불안합니다.

저도 선생님처럼 맨땅에 하나하나 코드를 적어내려가고 잘 생각이 안나는 부분만 검색으로 해결하고싶은데,

현재 저는 선생님의 코드 구조들을 그냥 싹다 복붙했고, 몇몇만 수정해서 사용하는 수준밖에 안됩니다. 지금은 이렇게 해도 괜찮겠지..라고 안일한 생각을 약간은 갖고있지만 응용해야하는 심화문제를 만났을때 엄청난 위기로 작용할것같아서 걱정됩니다..ㅠㅠ 이런 저에게 한말씀 조언 부탁드립니다..

선생님도 처음엔 저처럼 다 카피했었나요? 강의 중간에 샘은 프리뛸때 모르는 의뢰가 들어와도 일단 ㅇㅋ하고 문서보면서 만드신다고 들었는데.. 대단하세요..

답변 2

·

답변을 작성해보세요.

1

1. dispatch할 때 넣은 data가 userId가 됩니다.

2. action.data가 있는 경우는 남의 정보를 가져오는 거니까 me가 !action.data해서 false가 되고 없는 경우는 내 정보니까 true가 됩니다.

3. 이게 문제해결력인데요. 이건 경험도 많이 필요합니다. 단순히 머리가좋다고해서 되는 부분은 아니고요. 차근차근 에러 하나하나와 맞서가면서 상황별 대처방법을 깨달으셔야 합니다.

0

감사합니다!