▲GN⁺ 2023-12-02 | parent | ★ favorite | on: 데이터베이스 구축 중단(sqlsync.dev)Hacker News 의견 프로젝트 창작자인 친구에 대한 이해 SQLsync는 프론트엔드 개발자들이 브라우저 내에서 원격 데이터베이스를 질의하고 업데이트할 수 있게 해주는 도구임. WASM의 힘을 이용해 SQLite 데이터베이스를 브라우저로 전송하는 방식으로 작동함. 여러 클라이언트 간의 동기화를 위해 반응형 알고리즘을 사용함. 개발자들의 데이터 동기화 작업을 혁신적으로 해결하는 접근법임. 과거 회사의 프로젝트 관리 소프트웨어 경험 체크인/아웃 메커니즘을 사용해 데이터를 동기화했으나, 실시간 업데이트 앱이 등장하면서 구식으로 여겨짐. SPA 웹 앱을 10년간 구축한 경험에서, 이러한 데이터 동기화 메커니즘이 시대를 앞서간 것으로 느껴짐. SPA를 버리면 사라지는 문제 Hotwire나 htmx와 같은 솔루션을 사용하면 서버 쿼리가 단순화되고, 이를 빠르게 만드는 문제가 더 잘 이해됨. SQLSync 창작자의 의견 많은 질문에 답변하고, 놓친 질문을 주기적으로 확인할 예정임. SQLSync를 만든 동기에 초점을 맞춘 첫 게시물에 대한 토론이 기쁨. 다음 게시물에서 SQLSync의 작동 방식에 대해 설명할 예정임. 사용자에게 현실과 다른 정신 모델을 주지 말 것 데이터베이스 동기화는 클라이언트-서버 모델보다 복잡할 수 있음. 빠른 UI가 필요할 때 CRDT 기본 요소를 사용하는 것이 더 안전하다고 느낌. 측정 가능한 것이 관리되는 원칙과 침몰 비용의 오류 데이터베이스의 복잡성이 문제임. SQL의 문법이 문제이며, 기본적인 관계형 데이터베이스 사용이 즐거운 경험이라면, 자체 데이터베이스를 만드는 대신 DB를 사용할 유혹이 커질 것임. 좋은 데이터베이스는 SQL을 사용하며, 효율성을 위해서는 데이터베이스 언어를 사용해야 함. 클라이언트와 서버 간 상태 동기화의 문제 PHP/SSR 모델로 돌아가면 UX 희생을 통해 문제를 우회할 수 있음. SPA는 좋지만, 멀티파트 폼 게시도 여전히 작동함. 모든 상태를 서버에 두고 클라이언트를 단순한 터미널로 취급하는 것이 개발 경험을 향상시킴. ORM 라이브러리와의 비교 브라우저에서 지원하는 TypeORM과 SQL.js를 직접 사용하는 것과 SQLsync를 비교하는 질문. 프론트엔드와 백엔드 데이터베이스의 차이 프론트엔드 데이터베이스는 백엔드와 다를 수 있으며, 클라이언트에서 실시간 상태를 더 잘 관리할 필요가 있음. react query와 웹소켓을 사용하여 캐시 무효화를 고려 중임. SQLsync 아이디어도 고려할 가치가 있음. SignalDB를 통한 유사한 시도 SignalDB는 신호를 이용한 반응성과 프레임워크에 구애받지 않는 mongodb와 유사한 쿼리 구문을 사용함.
Hacker News 의견
프로젝트 창작자인 친구에 대한 이해
과거 회사의 프로젝트 관리 소프트웨어 경험
SPA를 버리면 사라지는 문제
SQLSync 창작자의 의견
사용자에게 현실과 다른 정신 모델을 주지 말 것
측정 가능한 것이 관리되는 원칙과 침몰 비용의 오류
클라이언트와 서버 간 상태 동기화의 문제
ORM 라이브러리와의 비교
프론트엔드와 백엔드 데이터베이스의 차이
SignalDB를 통한 유사한 시도