정답: B이 Panel은 자기 useState가 없고, isActive(값)와 onShow(변경 콜백)를 모두 부모 props로 받습니다. 부모가 완전히 통제하므로 controlled 컴포넌트입니다. 식별법은 단순합니다 — 같은 정보를 props로 받는가(controlled), useState로 보유하는가(uncontrolled).
오답 해설:- A. Panel 안에 useState가 보이지 않습니다. isActive는 props로 들어오므로 자체 관리가 아닙니다.
- C. title도 props, isActive·onShow도 props입니다. 내부 state가 0개이므로 부분 controlled가 아니라 완전 controlled입니다.
- D. useState가 없다는 사실이 controlled의 강력한 신호입니다 — 정보를 props로만 받고 있기 때문입니다.