inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

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

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

해결된 질문

386

7유스카트

작성한 질문수 1

1

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

📌 원인

📌 결과

강사님은 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>
  );
}

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

react aws Google-Analytics cloudflare adsense 수익화

답변 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 공식 문서에서도 확인하실 수 있습니다.

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

ESFP 영어버전 받을 수 있을까요?

0

81

2

강의 9분 45초 질문입니다

0

88

4

이미지 생성 참조 툴 문의

0

80

2

사이트에 애드센스 연결하는 법

0

133

2

카카오 애드핏 글로벌

0

94

1

db 를 연결하려면 어떤걸 추천하시나요?

0

167

2

GA "수명주기" 탭 없음

0

113

2

cloudflare gitgub private repository 가져올 수 있을까요?

0

248

2

robots.txt 최신화 하는 방법을 아시나요?

0

137

1

메타태그쪽 보고 있습니다만 helmet 라이브러리가 뭔가 잘 작동 안하네요.

0

111

3

CloudFlare 설정 질문

0

378

2

SNS 공유버튼 그룹 만들기 6:30~7:30 질문있습니다.

0

144

3

React Build 문제

0

138

1

PC 접속 X, 모바일 접속만 가능

0

145

2

이미지 리사이징 현상 막기

0

140

1

AWS 배포 후 사이트 접속이 원할하지 않은 문제

0

120

1

따라하다 보니 어느순간 화면이 하얗게 나오는건 왜그럴까요?

0

157

3

이용 약관 코드도 제공을 해 주시나요?

0

126

1

코드 힌트 방법

0

224

2

마지막 강의에서 다음 강의가 있다고 하셨는데 곧 올라오나요?

0

87

2

rem 단위를 쓰는 이유

0

239

2

리액트를 선택한 이유

0

133

2

구글 애드센스의 경우 한 개의 아이디로 여러 사이트에 등록이 가능한 것인지 궁금합니다.

0

227

2

이미지 제작에 관한 문의

0

115

2