Linear가 빠른 이유: 브라우저 내 데이터베이스

원제: How's Linear so fast? A technical breakdown

왜 중요한가

브라우저 내 데이터베이스 패턴은 웹앱 성능 혁신의 새로운 표준이 될 가능성을 보여준다.

이슈 관리 도구 Linear는 몇 밀리초 만에 업데이트되며 전통적인 CRUD 앱보다 300배 빠르다. 브라우저의 IndexedDB에 실제 데이터베이스를 두고 로컬 변경 후 비동기로 서버와 동기화하는 방식을 사용한다.

Linear의 성능 최적화 핵심은 브라우저 내 데이터베이스 구조다. 전통적인 웹앱은 사용자 클릭→HTTP 요청→서버 DB 쿼리→응답의 순환 구조로 수백 밀리초의 지연이 발생한다. Linear는 이를 역전시켜 브라우저의 IndexedDB를 실제 UI가 읽는 데이터베이스로 사용한다. 변경사항은 먼저 로컬에 적용되고, 비동기로 서버에 전송되어 WebSocket으로 다른 클라이언트에 전파된다. 공동창업자 Tuomas는 "첫 코드 라인이 동기화 엔진이었다"며 초기부터 이 접근법을 택했다고 밝혔다. Linear에서 이슈 수정은 단순히 issue.title 변경 후 issue.save() 호출로 완료되며, UI는 메모리 내 데이터로 동기적으로 재렌더링된다. 네트워크 요청은 백그라운드에서 처리되어 로딩 상태가 없다. 이는 MobX observable을 활용한 인메모리 데이터스토어 덕분이다. 일반 개발자도 Tanstack Query, SWR의 optimistic updates로 유사한 효과를 낼 수 있다.

출처

performance.dev — 원문 읽기 →