▲GN⁺ 2024-12-08 | parent | ★ favorite | on: 협업 편집에 대한 거짓말, 1부: 오프라인 편집을 위한 알고리듬(moment.dev)Hacker News 의견 Eg-walker와 ShareJS의 저자는 실시간 협업 도구가 온라인에서 함께 작업할 때 유용하지만, 오프라인 편집이나 장기적인 브랜치에서는 충돌 마커를 추가하고 수동 검토를 할 수 있는 옵션이 필요하다고 언급함 Eg-walker 알고리즘은 모든 사용자로부터 문자별 편집 추적을 저장하고, 모든 변경이 발생한 시점을 저장하여 충돌 범위를 감지하고 표시할 수 있는 CRDT를 구축할 수 있는 가능성을 제시함 이 문제는 흥미로운 문제이며, 아직 해결되지 않았으므로 더 많은 관심이 필요하다고 강조함 CRDT를 사용하는 구현의 또 다른 문제는 인프라 부담임 CRDT를 사용할 경우 Redis나 MyRocks와 같은 것을 사용하는 것이 좋으며, RDBMS, 특히 Postgres로 백업하지 말 것을 권장함 CRDT를 노트 작성 소프트웨어에 통합하는 작업을 하고 있는 사용자에게 감사의 인사를 전함 기계적 병합 알고리즘은 다양한 종류의 충돌에서 성능이 다를 수 있으며, CRDT는 병합된 텍스트가 사용자가 의도한 것인지 결정할 수 없음을 언급함 Upwelling 논문에서는 의미적 충돌과 구문적 충돌의 차이에 대해 자세히 설명함 진지한 협업은 문서 검토 문제이며, 특히 저널리즘과 과학 출판에서 중요함 협업 텍스트 편집에 사용되는 알고리즘(CRDTs와 OT)은 편집 작업의 수행 및 상호작용에 대한 엄격한 대수적 요구사항이 있음 서버가 UX 논리에 따라 작업을 처리하고, 클라이언트는 낙관적 편집을 허용하는 리베이스/예측 전략을 사용할 수 있음 수학적, 인과적, 엔트로피적 충돌 개념이 의미적 충돌과 혼동되었다고 언급함 CRDTs 중 충돌을 보존하는 클래스가 가장 유망하며, 사용자가 충돌을 시각적으로 확인할 수 있도록 해야 함 AI를 사용하여 병합을 예측할 수 있는 가능성을 제시함 LLM이 저자의 변경 세트를 보고, 편집이 중복되는지 여부를 묻고, 변경 순서를 결정하여 90%의 좋은 결과를 얻을 수 있을 것이라고 언급함 CRDTs는 분산 데이터 구조에 대한 훌륭한 공식 모델이지만, 모든 충돌을 자동으로 해결해야 한다는 개념에 문제가 있다고 언급함 충돌을 구조적으로 표현하고 공유 및 협력적으로 해결할 수 있는 모델이 필요함 "Lazy Merging"이라는 구조적 충돌 표현 모델을 개발하여, 수학적 접근을 통해 간단한 개념적 모델을 제시함 여러 개체가 동시에 데이터에 대한 권한을 가지는 것은 해결할 수 없는 문제라고 언급함 분산 시스템에서 배운 교훈이며, 문서의 분산 편집에서 명확히 드러남 2009년에는 Git이 자동으로 변경을 병합하는 알고리즘에 대한 논의가 많았으며, Torvalds는 자동 병합의 한계에 대해 회의적이었음을 언급함 오프라인 편집은 UI/UX 문제이며, 오래된 솔루션을 답습하는 컴퓨팅의 문제와 관련됨 텍스트 편집에서 오프라인 협업 병합은 프로세스의 중심이 되어야 하며, MacWrite와 같은 로컬 최대치에서 벗어나기 어렵다고 언급함
Hacker News 의견
Eg-walker와 ShareJS의 저자는 실시간 협업 도구가 온라인에서 함께 작업할 때 유용하지만, 오프라인 편집이나 장기적인 브랜치에서는 충돌 마커를 추가하고 수동 검토를 할 수 있는 옵션이 필요하다고 언급함
CRDT를 사용하는 구현의 또 다른 문제는 인프라 부담임
CRDT를 노트 작성 소프트웨어에 통합하는 작업을 하고 있는 사용자에게 감사의 인사를 전함
기계적 병합 알고리즘은 다양한 종류의 충돌에서 성능이 다를 수 있으며, CRDT는 병합된 텍스트가 사용자가 의도한 것인지 결정할 수 없음을 언급함
협업 텍스트 편집에 사용되는 알고리즘(CRDTs와 OT)은 편집 작업의 수행 및 상호작용에 대한 엄격한 대수적 요구사항이 있음
수학적, 인과적, 엔트로피적 충돌 개념이 의미적 충돌과 혼동되었다고 언급함
AI를 사용하여 병합을 예측할 수 있는 가능성을 제시함
CRDTs는 분산 데이터 구조에 대한 훌륭한 공식 모델이지만, 모든 충돌을 자동으로 해결해야 한다는 개념에 문제가 있다고 언급함
여러 개체가 동시에 데이터에 대한 권한을 가지는 것은 해결할 수 없는 문제라고 언급함
2009년에는 Git이 자동으로 변경을 병합하는 알고리즘에 대한 논의가 많았으며, Torvalds는 자동 병합의 한계에 대해 회의적이었음을 언급함