인프런 커뮤니티 질문&답변

박상원님의 프로필 이미지
박상원

작성한 질문수

맛집 지도앱 만들기 (React Native + NestJS)

[3-0] Button 공통 컴포넌트 구현하기

선생님 강의를 따라가려면 함수형 프로그래밍을 배워야 하나요?

해결된 질문

작성

·

117

1

선생님 코드의 로직이 어렵게 느껴져 따라가는데 어려움을 겪고 있습니다. chatgpt를 활용해보니, 함수형 프로그래밍을 공부하면 된다고 하는데요. 혹시 먼저 함수형을 공부하고 다시 선생님 강의에 도전을 하는게 맞는 순서일까요?

답변 3

1

박상원님의 프로필 이미지
박상원
질문자

상세한 답변 감사드립니다. 말씀주신 내용 참고하니 이해가 조금 갑니다. 감사합니다.

1

Kyo님의 프로필 이미지
Kyo
지식공유자

어떤 부분이 주로 어려우신가요? 함수형 프로그래밍을 배워야하는것은 아니구요, 부족한 부분이 자바스크립트인지, 리액트인지, 리액트네이티브가 처음이여서 그런것인지 먼저 파악하는것이 필요해보입니다!

0

박상원님의 프로필 이미지
박상원
질문자

function useAppleLogin(mutationOptions?: UseMutationCustomOptions) {
  return useLogin(appleLogin, mutationOptions);
}

위 코드에서 useAppleLogin은 useLogin을 리턴하지 않습니까? 이런 식으로 작성을하는게 "커링"이라고 chatGPT가 알려주더라구요.

 

근데 강사님 의견을 들어보니, 커링이 문제가 아닌듯 합니다.

리액트 쿼리도 낯설었고, 로그인 로직 처리하는 부분도 낯설다보니 그랬던 것 같습니다.

 

답변 감사드립니다.

Kyo님의 프로필 이미지
Kyo
지식공유자

이부분은 소셜로그인 훅을 리팩토링한부분이네요!

이부분이 어렵다면, 자바스크립트 함수에 대해 조금더 학습해보시는게 좋을것같습니다.

리액트쿼리를 훅으로 한번 래핑하여 조금 어렵게 느껴지신것 같은데 그냥 리액트쿼리 생각하지말고 훅도 생각하지말고 일반적인 함수라고 생각해보시겠어요?

 

예를들어 a라는 함수가 있습니다. 이함수는 hi inflearn을 리턴합니다.

function a(){
  return "hi inflearn"
}

 

그리고 b라는 함수가 있습니다. 이함수는 hi inflab을 리턴합니다.

function b(){
  return "hi inflab"
}

 

그런데 함수를 보다보니 그냥 hi 뒤에붙는 이름만 받아서, 하나의함수로 만들면 좋을것 같습니다. c 라는 함수를 만들었습니다. 이제 c('이름') 이런식으로 사용할수있습니다.

function c(name){
  return "hi " + name
}

 

이런느낌입니다. useLogin 에서는 appleLogin인지, kakaoLogin인지, 그냥 일반로그인인지 함수만 다르고 나머지부분은 똑같습니다. 그래서 useLogin을 기존코드에서 login api 함수만 받도록 하고 새롭게 리팩토링 해준것입니다.

 

박상원님의 프로필 이미지
박상원

작성한 질문수

질문하기