# Ref 결합 — mergeRefs

```tsx
import { useMemo, useRef, type ComponentPropsWithRef } from 'react';
import { mergeRefs } from '@orioncactuscorp/ui/react/refs';
import { useDragScroll } from '@orioncactuscorp/ui/react/scroll';

function Gallery({ ref, ...props }: ComponentPropsWithRef<'div'>) {
  const measuredRef = useRef<HTMLDivElement>(null);
  const { ref: dragRef } = useDragScroll<HTMLDivElement>();
  const combinedRef = useMemo(
    () => mergeRefs(measuredRef, dragRef, ref),
    [dragRef, ref],
  );
  return <div {...props} ref={combinedRef} />;
}
```

React 19의 object ref, callback ref, `null`, `undefined`를 받습니다. 연결과 정리는 인자 순서입니다. callback이 cleanup 함수를 반환하면 해당 함수를 실행하고, 반환하지 않으면 `null`로 호출합니다. object ref는 정리 시 `null`이 됩니다.

`mergeRefs`는 훅이 아닙니다. 호출할 때마다 새 callback을 반환하므로 불필요한 ref 해제·재연결을 줄이려면 위 예시처럼 안정화하세요. 의존하는 ref가 바뀌면 이전 ref를 정리하고 새 ref에 현재 노드를 연결합니다. callback 자체가 안전하게 재연결될 수 있어야 합니다.

## Migration Notes

- 기존 API 변경은 없습니다. 소비자에서 복제한 ref 결합 함수를 이 경로로 교체할 수 있습니다.
