0Pricing
React Academy · 강의

명령형 컴포넌트 API 구축

포커스를 관리하는 입력 요소, 열기 및 닫기 메서드를 제공하는 모달 등 다양한 명령형 컴포넌트 패턴을 설계합니다.

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

FocusableInput 설계

계약부터 정하시면 됩니다. FocusableInput은 포커스 설정, 포커스 해제, getValue를 노출할 수 있습니다. forwardRef로 감싸고 실제 입력 요소를 가리키는 내부 참조를 유지한 다음, useImperativeHandle에서 이 세 메서드를 반환하시면 됩니다.

각 메서드는 기반 입력 요소에 작업을 위임하므로, 부모는 원시 요소에 직접 접근하지 않고 필요한 작업만 정확히 사용할 수 있습니다.

재생/일시 정지/seekTo를 노출하는 VideoPlayer

명령형 API는 미디어 컴포넌트에 큰 도움이 됩니다. VideoPlayer는 재생, 일시 정지, seekTo를 노출할 수 있으며, 각 작업은 내부 비디오 참조가 가리키는 네이티브 HTML 비디오 요소의 메서드에 위임됩니다.

seekTo는 초 단위 시간을 받아 currentTime을 설정하므로, 프롭만으로는 다루기 까다로운 재생을 부모가 정밀하게 제어할 수 있습니다.

다음/이전/goToSlide를 노출하는 캐러셀

외부 컨트롤이나 키보드 핸들러가 캐러셀을 제어할 수 있도록 다음, 이전, goToSlide를 노출할 수 있습니다. 내부적으로 이 메서드들은 활성 인덱스 상태를 갱신하고 컴포넌트는 새 슬라이드로 다시 렌더링됩니다.

이 방식은 명령형 트리거와 선언형 렌더링을 결합합니다. 부모가 전환을 명령하면 캐러셀이 일반적인 상태 흐름을 통해 결과를 렌더링합니다.

명령형 API 문서화

명령형 핸들은 공개 계약이므로 각 메서드와 매개변수, 반환 값을 문서화하셔야 합니다. 명확한 문서는 사용자가 지원되는 기능을 알게 하고 문서화되지 않은 내부 구현에 의존하지 않도록 합니다.

핸들을 다른 API 표면과 동일하게 다루십시오. 재생(), 일시 정지(), seekTo(초)와 같은 메서드를 나열한 짧은 참조 문서가 잘못된 사용과 혼란을 막아 줍니다.

핸들을 발전시킬 때의 이전 버전 호환성

사용자 코드가 핸들에 의존하기 시작하면 메서드를 제거하거나 이름을 바꾸는 것은 호환성을 깨뜨리는 변경입니다. 기존 서명을 변경하기보다 새 메서드를 추가하고, 무엇이든 제거하기 전에 단계적으로 지원 중단을 예고하십시오.

핸들을 버전이 관리되는 API로 생각하면 시간이 지나 컴포넌트를 확장하더라도 하위 코드가 깨지는 일을 막을 수 있습니다.

명령형 + 제어형 프롭의 혼합

실제 컴포넌트는 두 스타일을 함께 사용하는 경우가 많습니다. VideoPlayer는 선언적으로 소스 프롭과 autoPlay 프롭을 받으면서, 프롭만으로는 잘 표현하기 어려운 순간을 위해 명령형 재생 및 seekTo도 노출할 수 있습니다.

지침은 상태와 설정에는 프롭을 사용하고, 특정 시점에 트리거되는 일회성 작업에는 명령형 핸들을 사용하라는 것입니다.

act()와 참조 콜백을 사용한 테스트

명령형 API를 테스트하려면 참조를 연결해 컴포넌트를 렌더링하고, 상호작용을 act로 감싼 다음 ref.current를 통해 노출된 메서드를 호출하십시오. 그런 다음 비디오가 일시 정지되었는지 또는 슬라이드 인덱스가 바뀌었는지와 같은 관찰 가능한 결과를 검증하십시오.

참조 콜백은 렌더링 중 핸들을 캡처할 수 있으므로, 테스트에서 메서드를 호출할 안정적인 참조를 확보할 수 있습니다.

스토리북 스토리

스토리북은 명령형 핸들을 보여 주기에 좋은 곳입니다. 스토리에서 컴포넌트에 대한 참조를 보관하고 해당 메서드를 호출하는 버튼을 렌더링하면, 검토자가 재생, 일시 정지 또는 goToSlide를 직접 실행해 볼 수 있습니다.

이러한 스토리는 살아 있는 문서 역할도 하며, 명령형 API가 독립적으로 어떻게 동작하는지 정확히 보여 줍니다.

실제 사례

명령형 핸들은 리액트가 아닌 라이브러리를 감쌀 때 흔히 사용됩니다. 차트 라이브러리는 다시 그리기 또는 갱신 메서드를 제공하고, 지도 SDK는 panTo와 setZoom을 제공하며, 서식 있는 텍스트 편집기는 insertText 또는 getContents를 제공합니다.

이러한 라이브러리를 리액트 컴포넌트로 감싸고 깔끔한 핸들을 외부에 제공하면, 앱의 나머지 부분에서 해당 라이브러리를 제어할 정돈되고 관용적인 방법을 얻을 수 있습니다.

핸들을 안정적으로 유지하기

핸들의 메서드는 현재 상태를 클로저에 캡처하는 경우가 많으므로, 필요할 때 메서드를 갱신하도록 useImperativeHandle의 의존성 배열을 사용하고 오래된 클로저를 피하려면 내부 도우미에 useCallback을 사용하십시오.

잘 관리되는 핸들은 항상 최신 값으로 작동하므로, 부모가 getValue 또는 seekTo를 호출하면 최신 렌더링과 일관된 동작을 얻을 수 있습니다.

빠른 확인: 명령형 API 설계

명령형 컴포넌트 API에 대한 설계 지침을 적용해 보십시오.

복습: 명령형 컴포넌트 API

FocusableInput, VideoPlayer, Carousel을 위한 핸들을 설계하고, 각각 소수의 작업 메서드를 노출했습니다. 사용자는 이러한 메서드에 공개 API로 의존하므로 문서화하고 버전을 관리해야 합니다.

명령형 작업과 선언형 프롭을 함께 사용하고, act 안에서 ref.current를 통해 테스트하며, 스토리북에서 동작을 보여 주십시오. 같은 패턴으로 차트, 지도, 편집기 라이브러리도 깔끔하게 감쌀 수 있습니다.

자주 묻는 질문

“명령형 컴포넌트 API 구축” 강의는 무료인가요?

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

“명령형 컴포넌트 API 구축”에서 뭘 배우나요?

포커스를 관리하는 입력 요소, 열기 및 닫기 메서드를 제공하는 모달 등 다양한 명령형 컴포넌트 패턴을 설계합니다. 브라우저에서 직접 실행하는 실습 코드로 React Academy을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.

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

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

“명령형 컴포넌트 API 구축” 강의는 얼마나 걸리나요?

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

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

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

이 강의의 모든 강의

  1. forwardRef: 부모에게 DOM 참조 노출하기
  2. useImperativeHandle: 사용자 지정 인스턴스 값
  3. 명령형 컴포넌트 API 구축
  4. 명령형 API와 선언형 API 중 언제 사용할까
← React Academy(으)로 돌아가기