inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

[리뉴얼] 맛집 지도앱 만들기 (React Native & NestJS)

useGetRefreshToken 에서 성공/실패 시 useEffect로 감싸서 동작

80

김효건

작성한 질문수 3

0

안녕하세요!

useGetRefreshToken 에서 응답 성공/실패 시에 각각 useEffect로 감싸서 후속처리를 하게 작성해주셨는데요,

 

해당 로직들은 항상 해당 함수가 호출되고 나서 응답이 온 후에 순차적으로 실행되어야 하는 로직으로 생각이 들어서 비동기로 동작하는 useEffect를 굳이 사용할 필요가 없다고 생각이 드는데요,

 

useEffect로 사용하신 특별한 이유가 있으실까요!?

react-native typescript nestjs react-query zustand

답변 1

0

인프런 AI 인턴

안녕하세요, 인프런 AI 인턴입니다.

김효건님께서 질문하신 내용은 useGetRefreshToken 함수 내에서의 useEffect 사용 이유에 대한 것입니다. 일반적으로, useQueryuseMutation의 후속 작업은 onSuccessonError 등의 옵션을 사용하여 처리할 수 있지만, useEffect를 사용해 특정 상태가 변경될 때 한 번씩 실행되도록 관리할 수 있습니다. 이는 비용이 큰 작업을 제어하거나 조건에 따라 특정 작업을 분리하고자 할 때 유용합니다.

아래는 useEffect를 사용할 수 있는 일반적인 이유들입니다:

  1. 의존성 배열 활용: useEffect는 의존성 배열을 가지고 특정 상태 변화에 따른 효과적인 관리를 할 수 있습니다. 특정 조건 하에서의 후속작업을 관리하려면 구조적으로 useEffect가 적합할 수 있습니다.

  2. 효과적인 비동기 작업 관리: useEffect 안에서 비동기 작업 및 async/await를 사용할 수 있으므로, 데이터를 받아와서 후처리 작업들을 손쉽게 관리할 수 있습니다.

  3. 데이터의 최신성 보장: useEffect를 통한 상태 관리에서는 data fetching 후, 최신의 데이터를 기반으로 작업을 수행하는 것이 보장되기 때문에, 예기치 않은 사이드 이펙트를 방지할 수 있습니다.

  4. 리덕스나 context와의 통합: 사실상 useEffect를 통해 상태 값이 변경될 때, 전역적으로나 다수의 컴포넌트에 영향을 주는 작업을 일관되게 처리할 수 있습니다. 이를 통해 코드의 일관성을 높일 수 있습니다.

전반적으로 useEffect를 사용하는 이유는 코드의 가독성과 유지 보수성을 높이며, 필요한 특정 상태 변경에 대한 구체적인 작업을 수행하기 위해서입니다.

관련 내용을 더 깊이 이해하시기 위해 유사 질문 답변 예시를 확인하시는 것도 좋습니다. 아래 링크도 참고하시기 바랍니다:
- react-query와 useEffect 사용 사례

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

react-native-screens 버전 호환 문제

2

153

1

안드로이드 실행 중 Drawer네비게이션과 MapView 성능 문제

0

103

2

해당 강의 부분은 실제 활용하기에 부족해 제가 해결한 방법입니다.

0

96

1

소스코드가 강의 순서랑 다른가요?

0

72

2

현재 Windows에서 VsCode로 작업 중인데 추후에 IOS도 가능하게 하려면

0

115

2

react-native-fast-image는 react 19 버전에서 설치가 안되나요?

0

208

2

SQL Shell의 역할이 무엇인가요?

0

91

1

혹시 해당 강의에서invalidateQueries를 사용한 이유가 있을까요?

0

79

2

빠르게 실행해보고싶습니다.

0

82

1

강의 수강 순서 관련

0

70

1

애뮬레이터 실행 방법

0

99

2

무료 Apple ID로 실기기 테스트 가능한가요?

0

90

2

ios 실기기 연결

0

70

2

npm run ios에러

0

74

1

10월 삭제 예정인 강의는 이유를 알 수 있을까요?

0

101

1

캘린더 개발 후에 navigation 에 대해서 궁금한 점이 있습니다.

0

51

1

안드로이드 위치 권한 이슈 2가지 문의

0

71

1

지도가 보이려면 음.. 작성해주신 스타일과 다르게

0

74

0

제대로 설치한거같은데 안드로이드랑 ios 둘다 앱실행이 안되는것같아요

0

83

3

강의 내용을 보면 전체적으로 function 함수 키워드를 사용하시는데

0

69

2

강의 3-9 에서 useGetRefreshToken 훅 안에 즉시 함수로 처리하는 이유가 궁금합니다!

0

82

2

사내에서 figma.com 업로드 안되나요?

0

96

1

AWS EC2 + RDS 설정

0

85

2

안드로이드 안켜집니다.

0

91

2