작성완료

Clipboard API 사용 방법
Clipboard API는 웹에서 복사 및 붙여넣기 기능을 프로그래밍적으로 제어할 수 있는 최신 API로, 버튼 클릭으로 텍스트 복사, 리치 텍스트 및 이미지 전송이 가능하며, 보안성과 사용자 경험을 향상시킵니다. 사용 시 HTTPS 환경에서 사용자 제스처가 필요하며, 일부 브라우저는 이미지/HTML 붙여넣기를 제한할 수 있습니다.
Clipboard API로 구현하는 현대적인 웹 클립보드 기능
Clipboard API는 웹에서 복사, 붙여넣기 기능을 프로그래밍적으로 제어할 수 있게 해주는 최신 Web API입니다. 기존 document.execCommand('copy') 방식보다 안정적이며, 비동기 코드 기반으로 보안 모델도 명확합니다.
Clipboard API가 필요한 이유
- 버튼 클릭만으로 텍스트 복사 기능 구현
- 리치 텍스트나 이미지도 클립보드와 주고받기 가능
- 권한 기반 동작으로 보안성과 예측 가능성 증가
- 모바일 브라우저에서도 일관된 사용자 경험 제공
텍스트 복사하기
async function copyText() {
try {
await navigator.clipboard.writeText("Hello Clipboard API!");
console.log("복사 완료");
} catch (e) {
console.error("복사 실패", e);
}
}
텍스트 읽어오기
async function pasteText() {
try {
const text = await navigator.clipboard.readText();
console.log("붙여넣기: ", text);
} catch (e) {
console.error("읽기 실패", e);
}
}
이미지 읽기 예제
async function readImage() {
const items = await navigator.clipboard.read();
for (const item of items) {
if (item.types.includes("image/png")) {
const blob = await item.getType("image/png");
const url = URL.createObjectURL(blob);
console.log("이미지 URL", url);
}
}
}
권한 확인하기
async function checkClipboardPermission() {
const result = await navigator.permissions.query({ name: "clipboard-write" });
console.log(result.state);// granted, denied, prompt
}
주의할 점
- HTTPS 환경에서만 동작
- 사용자 제스처(클릭 등)가 있어야 복사/붙여넣기 허용
- 일부 브라우저는 이미지/HTML 붙여넣기 지원 제한
마무리
Clipboard API는 사용성 개선에 큰 도움을 주는 현대적 기능입니다. 간단한 복사 버튼부터 이미지 기반의 클립보드 연동까지 다양한 방식으로 활용할 수 있으므로, 사용자 경험을 개선하고 싶은 웹 프로젝트에서 적극 활용해볼 만합니다.