UIST 2026 최우수 논문상 받은 Declarative Dragging, 미래 상태만 지정하면 드래그앤드롭이 합성된다
- 워싱턴대 Joshua Horowitz, Andrew Blinn, Jeffrey Heer가 만든 D2는 드래그할 요소마다 도달 가능한 미래 모델 상태를 지정하면, 엔진이 그 상태들을 추측 렌더링해 뷰 트리에서 요소 위치를 뽑아 드롭 영역을 합성하는 방식임. UIST 2026 최우수 논문상 수상
- 구현체인 Dragology는 웹의 SVG 인터페이스용으로 만들었고 GitHub에 공개했으며, 대수 트리, twisted trees, 베지어 곡선, 땋기, 카드 더미, 트로미노 등 데모 갤러리를 함께 제공함
- D2는 조합 가능(composable)하게 설계돼 단순한 모델 기반 드래그 동작을 합쳐 복잡한 동작을 만들고, floating, snapping, transitions 같은 수정자를 덧붙일 수 있음
- Andrew Blinn이 2022년 수학을 손으로 만질 수 있게 하는 게임 프로토타입에서 출발해 2023년 6월 화이트보드에 모델 기반 드래그를 스케치했고, Josh Horowitz가 시애틀 산책에서 아이디어를 들은 뒤 라이브러리 구현으로 이어짐
- 추측 렌더링 비용과 상태 공간 폭발, 유효 변환을 직접 공급해야 한다는 점, Sketchpad와 ThingLab 같은 선행 연구 누락이 토론에서 주요 쟁점으로 제기됨
Hacker News 의견들
데모 직접 만져봤는데 진짜 쫀득함. 시각적으로도 예쁘고 교육용으로도 바로 쓸 수 있겠더라.
이거 상당히 혁명적인데. 비슷한 선행연구가 있었는지 궁금하고, 덤으로 헤이즐(Hazel) 환경도 알게 됐음. 리팩터링을 새 프로그래머한테 설명할 때 쓰면 딱이겠다.
에이전트 코딩에 남은 구멍 중 하나가 인터랙션 움직임의 '느낌' 검증임. 스크린샷 몇 장으로는 노드가 움직이면서 리플로우되는 걸 못 잡음. 이 논문은 가능한 상태를 동시에 낙관적으로 렌더링하고 드롭 영역 유도 방식을 조합하는 작은 대수로 그 문제를 없앴음.
솔리드로 기본 HTML 버전 만들어봤는데 FLIP 기법으로 측정값 뽑음. 기존 프레임워크에 일반화하는 게 좀 까다로워서 어떤 형태로 공개할지는 고민 중임.
저자임(앤드루). 질문 받는데 답이 좀 늦을 수 있음.
상태 사이 애니메이션에 물리 스프링도 지원함? 그거 들어가면 훨씬 좋을 텐데.
추측 렌더링이면 비용이 꽤 클 것 같은데.
그냥 렌더링인데 왜 더 비싸겠음?
검색 공간이 커지면 지수적으로 터지지 않나? 예제가 전부 작아서 판단이 안 됨.
논문은 아직 안 읽었지만 이벤트 방향으로 공간 분할을 하는 건가 싶음.
novelty가 정확히 뭔지 모르겠음. 논문에 Sketchpad나 Ivan Sutherland 작업, ThingLab, Juno-2 언급이 없고 Apparatus는 콜아웃했는데 그것도 이미 추측 렌더링을 도입했음. 유효 변환을 자동으로 찾아내는 것도 아니고 직접 공급해야 함.
omrelli.ug/g9 갤러리 보면 딱 떠오르는 게 있음.
드롭 위치가 1000군데면 어떡함? 여러 개를 동시에 끌면? 'composables'에 DSL까지 새 개념이 너무 많고 페이지를 읽어도 잘 이해가 안 됨. 그냥 LLM한테 커스텀 코드 짜라고 하는 게 나을 듯.
첫 직장에서 PM이 화이트보드에 'drag-and-drop' 쓰고 내 이름을 적더니 얼마나 걸리냐고 묻길래 '일주일 내내, 어쩌면 더' 했음. 웃다가 진담인 걸 알고 경악하더라. '그냥 드래그앤드롭인데!'가 그 회사 내부 농담이 됐음.
비전공자는 마우스를 누르고 있으면 자동으로 되는 속성이라고 생각하나 봄. 파일 열기랑 뭐가 그렇게 다른지도 잘 모르고.
헤더에 있는 링크랑 버튼도 전부 드래그 데모라니 그건 좀 재밌네.
DAG 의존성 그래프용 드래그 도구가 실무에서는 더 필요한데 그건 안 보임.