인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

인프런 커뮤니티 질문&답변

7유스카트님의 프로필 이미지

작성한 질문수

(2025) MBTI 테스트 기반 수익형 웹사이트 만들기 - <코딩 배워 사업하자>

URL 복사 버튼 만들기 챕터에서 react-copy-to-clipboard 오류가 발생합니다.

해결된 질문

작성

·

139

·

수정됨

0

Q. npm i react-copy-to-clipboard 패키지 설치시 아래와 같은 오류가 발생합니다.

 

> npm i react-copy-to-clipboard
npm error code ERESOLVE
npm error ERESOLVE unable to resolve dependency tree
npm error
npm error While resolving: mbti-contents-platform@0.0.0
npm error Found: react@19.0.0
npm error node_modules/react
npm error   react@"^19.0.0" from the root project
npm error
npm error Could not resolve dependency:
npm error peer react@"^15.3.0 || 16 || 17 || 18" from react-copy-to-clipboard@5.1.0
npm error node_modules/react-copy-to-clipboard
npm error   react-copy-to-clipboard@"*" from the root project
npm error
npm error Fix the upstream dependency conflict, or retry
npm error this command with --force or --legacy-peer-deps
npm error to accept an incorrect (and potentially broken) dependency resolution.
npm error
npm error
...

 

강의 들으며 문제가 발생했고, 직접 해결한 방법을 공유합니다.


🎯 오류 원인 분석

오류 메시지를 분석하면, react-copy-to-clipboard@5.1.0 패키지가 React 19을 지원하지 않기 때문에 설치에 실패한 것입니다.


🎯 1. 오류 원인 분석

오류 메시지를 보면:

npm error Found: react@19.0.0
npm error Could not resolve dependency:
npm error peer react@"^15.3.0 || 16 || 17 || 18" from react-copy-to-clipboard@5.1.0

📌 원인

  • 프로젝트에 React 19.0.0이 설치되어 있음.

  • 하지만 **react-copy-to-clipboard@5.1.0**은 React 19을 지원하지 않음 (React 15~18까지만 지원).

📌 결과

  • react-copy-to-clipboardreact@19와 호환되지 않아서 설치할 수 없음.

강사님은 18버전으로 진행, 실습 시 vite로 최신버전이 19버전으로 설치됨

 

Soultion


react-copy-to-clipboard 대신 다른 패키지 사용 (추천)

현재 react-copy-to-clipboardReact 19을 공식적으로 지원하지 않음.
대신 React 19에서 정상적으로 동작하는 최신 패키지를 사용하는 것이 좋음.

대체 패키지: @uidotdev/usehooks

이 패키지는 useCopyToClipboard() 훅을 제공하며, React 19에서도 사용 가능.

npm i @uidotdev/usehooks

📌 사용 예시 (useCopyToClipboard 활용)

import { useCopyToClipboard } from "@uidotdev/usehooks";

export default function CopyButton() {
  const [copiedText, copy] = useCopyToClipboard();

  return (
    <div>
      <button onClick={() => copy("Hello, World!")}>복사하기</button>
      {copiedText && <p>복사 완료: {copiedText}</p>}
    </div>
  );
}

저는 위 방식을 통해 해결하였습니다. 더 좋은 방법이 있으면 공유해주세요.

답변 2

0

코배투님의 프로필 이미지
코배투
지식공유자

안녕하세요 7유스카트 님.

양질의 정보와 경험 공유해주셔서 감사드립니다.

 

강의에서는 React v18.x / react-copy-to-clipboard v5.1.0을 사용하고 있다보니 버전 이슈는 없었는데요.

공유주신 바와 같이 React 19 이상으로 넘어가면서 버전 이슈가 발생하고 있습니다.

 

Solution


React 19이상 버전으로 개발중이신 분들에게는,

7유스카트 님께서 추천해주신 바와 같이 @uidotdev/usehooks 패키지를 추천드립니다.

 

공식 Github Repo

https://usehooks.com/

 

여러 Hooks가 잘 정리되어 있는 레포인데요.

다만 가장 최신의 업데이트가 9개월 전이라 관리 측면에서 아쉬운 측면이 있긴 합니다.

그럼에도 워낙 많은 개발자들이 사용중이기도 해서 호환성 등의 이슈 발생시 바로 업데이트 될 부분은 걱정되지 않습니다(보는 눈이 많으면 좋은 점).


결론은,

React 18 이하 버전 사용중이시라면 react-copy-to-clipboard v5.1.0 그대로 사용해도 무방.

React 19 이상 버전 사용하신다면 @uidotdev/usehooks 사용 권장.

 

해당 내용 공유해주신 7유스카트 님,

다시 한번 감사 말씀 드립니다.

0

인프런 AI 인턴님의 프로필 이미지

안녕하세요, 인프런 AI 인턴입니다. 7유스카트님.

React 프로젝트에서 react-copy-to-clipboard 패키지를 설치하려다 오류가 발생하신 것 같습니다. 주된 이유는 react-copy-to-clipboard@5.1.0이 React 19과 호환되지 않기 때문입니다. 이 문제를 해결하기 위한 몇 가지 방법을 소개합니다.

문제의 원인

  • react-copy-to-clipboard 패키지가 현재 사용 중인 React 버전(19.0.0)을 지원하지 않아서 발생하는 의존성 충돌입니다.

해결 방법

  1. –legacy-peer-deps 옵션 사용 (빠른 해결)
   npm i react-copy-to-clipboard --legacy-peer-deps

이 옵션을 사용하면 의존성 충돌을 무시하고 설치가 가능해지지만, React 19에서의 작동은 보장되지 않습니다.

  1. 다른 패키지 사용 (추천)

현재 react-copy-to-clipboard 패키지가 React 19을 공식적으로 지원하지 않으므로, 대체로 @uidotdev/usehooks 패키지를 사용하는 것이 좋습니다.

   npm i @uidotdev/usehooks

이렇게 하면 useCopyToClipboard 훅을 활용할 수 있으며, React 19에서도 안정적으로 작동합니다.

   import { useCopyToClipboard } from "@uidotdev/usehooks";

   export default function CopyButton() {
     const [copiedText, copy] = useCopyToClipboard();

     return (
       <div>
         <button onClick={() => copy("Hello, World!")}>복사하기</button>
         {copiedText && <p>복사 완료: {copiedText}</p>}
       </div>
     );
   }

결론

현 상황에서는 대체 패키지를 사용하는 것이 가장 안전한 방법이라고 생각합니다. React 19와의 호환 문제를 신경 쓰지 않아도 되고, 최신 기능을 사용할 수 있으니까요.

이 외에도 ‘npm’ 명령어 사용과 관련된 상세 설명은 npm 공식 문서에서도 확인하실 수 있습니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.