피드로 돌아가기
Dev.toMobile
원문 읽기
150ms의 정밀한 제어로 구현한 macOS Atomic Paste 메커니즘
DualClip - Update_2026.04.04.
AI 요약
Context
기존 클립보드 복사 방식은 새로운 데이터를 붙여넣을 때 기존 데이터를 덮어쓰는 구조. 여러 데이터를 교차로 사용해야 하는 워크플로우에서 잦은 복사·붙여넣기 반복 발생. 데이터 손실 없는 효율적인 슬롯 기반 클립보드 관리 필요.
Technical Solution
- 시스템 클립보드 전체 데이터를 임시 버퍼에 deep-copy 하는 Backup 단계 설계
- 슬롯의 대상 콘텐츠를 시스템 클립보드에 덮어쓰는 Swap 프로세스 수행
- CGEvent 기반의 ⌘V 키스트로크를 HID 시스템에 전송하여 붙여넣기를 실행하는 Simulate 로직 구현
- 대상 애플리케이션의 읽기 완료 시점과 복원 시점 간의 Race Condition 방지를 위해 150ms 지연 후 원본 데이터를 복구하는 Restore 전략 채택
- NSPasteboardItem의 원본 데이터를 그대로 저장하여 Plain text, RTF, Image, File URL 등 다양한 MIME 타입 지원
- 애플리케이션 종료 시 메모리의 모든 바이트를 0으로 덮어쓰는 RAM Zeroing 기법을 통한 민감 정보 유출 방지
Impact
- Race Condition 방지를 위한 최적의 Restore Delay 수치를 150ms로 확정
Key Takeaway
- OS 레벨의 이벤트 시뮬레이션을 활용할 때는 하드웨어 및 소프트웨어의 처리 속도 차이를 고려한 경험적(Empirical) 지연 시간 설정이 시스템 안정성의 핵심임.
실천 포인트
HID 이벤트 시뮬레이션 구현 시 Race Condition 방지를 위해 타겟 앱의 처리 시간을 고려한 안전 지연 시간(Safety Margin)을 설정할 것