오리엔테이션 — 왜 state 설계가 따로 필요한가 · 퀴즈

6 문항 · Bloom: Remember:1, Understand:2, Apply:1, Analyze:2 · v1.0.0

Q1 Remember mcq_single

이 강의가 다루는 'state 설계'의 4가지 통증 패턴이 아닌 것은?

정답: D
오리엔테이션에서 정의한 4가지 state 통증은 중복·동기화 버그·prop drilling·의도치 않은 리셋입니다. 메모리 누수는 effect/cleanup 영역의 문제로, 이 강의의 state 설계 통증 분류에 포함되지 않습니다.
오답 해설:
  • A. 통증 #1(중복)에 해당하는 정확한 진술입니다.
  • B. 통증 #2(동기화 버그)에 해당하는 정확한 진술입니다.
  • C. 통증 #3(prop drilling)에 해당하는 정확한 진술입니다.
Q2 Understand mcq_single

강의 전체를 관통하는 출발선으로 못 박은 선언형 UI의 핵심 명제는 무엇인가?

정답: B
선언형 UI의 핵심은 '상태만 정확히 정의하면 React가 알아서 그려준다'는 명제입니다. 명령형은 'DOM을 어떻게 바꿔라'를 단계별로 지시하는 반면, 선언형은 '상태 X → UI Y'의 매핑을 선언합니다.
오답 해설:
  • A. 이는 정확히 명령형(imperative) 접근법으로, 선언형의 반대 명제입니다.
  • C. 성능 최적화는 별개 주제이며, 선언형 명제와 직접 관련이 없습니다.
  • D. useReducer 선택은 S5의 트레이드오프 주제이고, 선언형 UI 명제 자체는 훅 선택과 무관합니다.
Q3 Analyze mcq_single

동료가 이렇게 코드를 짰습니다: '폼 컴포넌트에 isLoading, isError, isSuccess, isEmpty 4개 boolean을 따로 두니 (isLoading=true, isSuccess=true) 같은 모순 조합이 가끔 만들어진다.' 이 통증은 4가지 중 어느 것에 가장 가까운가?

정답: A
여러 boolean이 동일한 '폼의 상태'라는 한 진실을 분산 표현하면서 모순 조합(2^4 = 16가지 중 의미 있는 건 4개)을 허용한 사례입니다. 이는 단일 출처(single source of truth)가 무너진 통증 #1의 전형이며, status enum 한 변수로 정리하는 것이 다음 챕터의 처방입니다.
오답 해설:
  • B. prop drilling은 깊은 트리에 prop이 통과되는 문제로, 한 컴포넌트 내부의 boolean 모순과 무관합니다.
  • C. 리셋은 트리 위치/key prop 영역의 통증이며, 모순 조합 문제와 다릅니다.
  • D. TypeScript로 boolean 타입 자체는 맞지만 모순 조합은 막히지 않습니다 — 이는 state 모양(구조) 결정의 문제입니다.
Q4 Apply mcq_single

'같은 폼 컴포넌트인데 글 작성 탭만 바꾸면 이전 글의 입력값이 새 글에 그대로 남아 있다'는 버그를 보고했다. 코스 맵상 이 통증은 어느 챕터에서 정면으로 풀리는가?

정답: C
같은 트리 위치에 같은 컴포넌트 타입이 머물면 React는 state를 보존합니다. 이는 통증 #4(의도치 않은 — 또는 의도된 — 리셋) 영역이며, S4에서 트리 위치 규칙과 key prop(예: `<PostForm key={postId} />`)으로 리셋 의도를 표현하는 것이 정답 처방입니다.
오답 해설:
  • A. S2는 중복/동기화/평탄화 영역으로, 트리 위치에 의한 보존/리셋 문제와 다릅니다.
  • B. lifting은 형제 컴포넌트 협조(통증 #3 일부)에 대한 처방이며, 동일 위치 보존 현상과 직접 관련이 없습니다.
  • D. context는 prop drilling(통증 #3) 처방이지 리셋 통증의 처방이 아닙니다.
Q5 Understand mcq_multi

코스 맵에서 '구조 잡기' 묶음(state를 어디에 어떤 모양으로 둘지 결정)으로 분류된 챕터를 모두 고르시오. (정답 3개)

정답: A, B, C
코스 맵은 7개 챕터를 두 묶음으로 나눕니다 — '구조 잡기'(S1·S2·S3)는 state의 모양과 위치를 결정하고, '동작 다듬기'(S4·S5·S6·S7)는 그 위에서 리셋·로직·전달을 정교화합니다.
오답 해설:
  • D. S5(reducer)는 흩어진 setState를 통합하는 '동작 다듬기' 묶음입니다.
  • E. S7(reducer+context)은 대규모 분산 상태 확장으로 '동작 다듬기' 묶음의 마지막 챕터입니다.
Q6 Analyze mcq_single

한 학습자가 '내 프로젝트의 SettingsPanel은 4단계 깊이의 자식 컴포넌트가 theme 값을 받기 위해 중간 컴포넌트들이 모두 theme prop을 통과만 시키고 있다'고 자기 진단을 했다. 코스 맵상 이 가설은 어느 챕터(들)에서 검증·해결되는가?

정답: B
이 시나리오는 정확히 통증 #3(prop drilling)입니다. 코스 맵은 이 통증에 두 처방을 둡니다 — S3 lifting state up(공통 부모 위치 결정, 1차 처방)과 S6 context(theming/auth 같은 전역성 데이터에 대한 2차 처방). theme처럼 트리 전체에 걸치는 값은 특히 S6의 전형적 사례입니다.
오답 해설:
  • A. S1은 한 컴포넌트 내부의 모순/중복 정리(통증 #1·#2 뿌리)로, 깊은 트리 통과 문제와 다릅니다.
  • C. S4는 리셋 통증(#4) 영역이라 theme 전달 시나리오와 무관합니다.
  • D. S5는 흩어진 setState 통합 영역으로, prop이 트리를 통과만 시키는 문제와 다릅니다.