0Pricing
React Academy · 강의

컨텍스트를 사용하지 말아야 할 때

속성 전달, 컴포지션 또는 상태 관리자가 더 적합한 경우를 파악합니다.

컨텍스트를 사용하지 말아야 할 때은(는) CoddyKit의 무료 React Academy 강의입니다. 이것은 4개 중 4번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 React Academy 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. React Academy 강의에는 총 4개의 강의가 포함되어 있습니다.

환영합니다

이 레슨에서는 React Context가 적절한 도구가 아닌 경우와 props 전달, 컴포지션 또는 상태 관리자가 더 적합하고 간단한 상황을 알아봅니다.

컨텍스트는 만능 해결책이 아닙니다

컨텍스트는 자주 과도하게 사용됩니다. 개발자는 속성 전달을 전혀 하지 않으려고 컨텍스트를 사용하지만, 이로 인해 숨은 의존성이 생기고 컴포넌트를 테스트하기 어려워지며 성능이 저하될 수 있습니다.

속성이 더 나은 경우

값이 서로 밀접하게 중첩된 1~3개의 컴포넌트에서 사용된다면 속성 전달이 더 간단하고 명시적이며 추적하기 쉽습니다. 컨텍스트를 사용하면 제공자용 상용구 코드가 추가되고 데이터 흐름이 숨겨집니다.
// Don't need Context for this
function Page() {
  const [color, setColor] = useState('blue');
  return <Header color={color} />; // simple, clear
}

구성이 더 나은 경우

3개 이상의 계층을 거쳐 전달하는 것을 피해야 한다면 먼저 구성을 시도해 보십시오. 완전히 렌더링된 소비자 컴포넌트를 속성으로 전달하는 방식입니다. 컨텍스트가 필요하지 않고 데이터 흐름도 여전히 명시적입니다.

컨텍스트는 숨은 결합을 만듭니다

useContext(UserCtx)를 호출하는 컴포넌트는 UserProvider로 감싸지 않으면 재사용할 수 없습니다. 속성을 사용하면 의존성이 명시적으로 드러나므로 컴포넌트가 선언부에서 정확히 무엇을 필요로 하는지 확인할 수 있습니다.

고빈도 업데이트

초당 여러 번 변경되는 값에는 컨텍스트를 사용하지 마십시오(예: 마우스 위치, 애니메이션 진행률). 변경될 때마다 모든 소비자가 다시 렌더링됩니다. 대신 참조, 외부 저장소 또는 시그널 기반 라이브러리를 사용하십시오.

컨텍스트는 상태 관리자가 아닙니다

컨텍스트는 값만 전달할 뿐, 기본 제공 캐싱이나 개발자 도구 또는 미들웨어가 없습니다. 자주 업데이트되는 복잡한 공유 상태에는 이러한 목적을 위해 만들어진 Zustand, Redux 또는 Jotai를 사용하십시오.

서버 상태는 컨텍스트에 속하지 않습니다

서버에서 가져온 데이터(사용자 목록, 게시물)는 컨텍스트에 속하지 않습니다. React Query, SWR 또는 RTK Query는 캐싱, 백그라운드 재요청 및 오류 상태를 통해 서버 상태를 관리하지만 컨텍스트에는 이러한 기능이 없습니다.

양식 상태는 컨텍스트에 속하지 않습니다

컨텍스트에서 양식 필드를 관리하면 키를 입력할 때마다 모든 컨텍스트 소비자가 다시 렌더링됩니다. 대신 로컬 컴포넌트 상태나 React Hook Form 같은 양식 라이브러리를 사용하십시오.

컨텍스트가 IS 적합한 도구인 경우

컨텍스트는 현재 사용자 및 인증 상태, 테마(밝게/어둡게), 로캘/국제화, 그리고 여러 컴포넌트에서 읽지만 거의 변경되지 않는 안정적인 범용 값에 이상적입니다.

빠른 확인

React 컨텍스트에 저장하기에 LEAST 적합한 데이터 유형은 무엇입니까?

복습

인증, 테마, 로캘처럼 안정적이고 여러 영역에 걸쳐 사용되는 값에는 컨텍스트를 사용하십시오. 1~3개 계층에 걸친 전달에는 속성을 우선하십시오. 깊은 전달을 피하려면 구성을 우선하십시오. 서버 상태에는 React Query를, 복잡한 공유 상태에는 Zustand 또는 Redux를 사용하십시오.

과정 완료

축하합니다! **React 컨텍스트 패턴 및 성능** 과정을 마치셨습니다. 이제 컨텍스트를 분할하고, 값을 메모이제이션하고, 선택자를 적용하는 방법과 더불어 컨텍스트를 전혀 사용하지 않아야 할 때도 알게 되셨습니다.

자주 묻는 질문

“컨텍스트를 사용하지 말아야 할 때” 강의는 무료인가요?

네 — “컨텍스트를 사용하지 말아야 할 때” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 React Academy 강의 전체를 잠금 해제할 수 있습니다. React Academy 강의에는 총 4개의 강의가 포함되어 있습니다.

“컨텍스트를 사용하지 말아야 할 때”에서 뭘 배우나요?

속성 전달, 컴포지션 또는 상태 관리자가 더 적합한 경우를 파악합니다. 브라우저에서 직접 실행하는 실습 코드로 React Academy을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.

React Academy을(를) 시작하는 데 경험이 필요한가요?

사전 경험은 필요하지 않습니다. CoddyKit의 React Academy은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 4개 중 4번째 강의입니다.

“컨텍스트를 사용하지 말아야 할 때” 강의는 얼마나 걸리나요?

대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.

이 React Academy 강의에서 코드를 작성하고 실행할 수 있나요?

네. 모든 React Academy 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.

이 강의의 모든 강의

  1. 다시 렌더링을 제한하도록 컨텍스트 나누기
  2. useMemo로 컨텍스트 값 메모이제이션하기
  3. 컨텍스트 선택기 패턴
  4. 컨텍스트를 사용하지 말아야 할 때
← React Academy(으)로 돌아가기