TL;DR
- Lix는 제품 안에 넣어 사용할 수 있으며 파일, SQL 데이터베이스, 버전 관리를 하나의 저장소로 묶어 전체 데이터를 함께 브랜치·비교·병합·롤백하게 함
- 파일 내용, 앱 테이블, 리뷰, 댓글을 모두 버전 데이터로 저장하고 외부 제어 평면 없이 일반 파일과 SQL로 접근하게 함
- ACID OLTP 데이터베이스에서 수백만 개 행을 SQL로 조회하고 셀·절·행 단위 변경 사항을 비교하게 함
- 로컬 파일 시스템, 브라우저의 SQLite OPFS, S3 기반 서버를 저장소로 사용할 수 있으며 사람과 에이전트의 실시간 공동 작업을 지원함
- 파일별·그룹별 권한 기능은 저장소 안에서 버전 관리되는 형태로 제공 예정임
제품 안에 넣는 저장소
- Lix는 제품에 임베드할 수 있는 저장소로, 파일·SQL 데이터베이스·버전 관리를 하나로 결합함
- 파일 내용, 앱 테이블, 리뷰, 댓글이 모두 버전 데이터이며 동기화할 외부 제어 평면이 없음
- 에이전트는 일반 파일을 읽고 쓰고, 제품은 SQL로 조회하며, 모든 데이터를 함께 브랜치·차이 비교·병합·롤백함
- 모든 형식의 파일을 저장할 수 있으며 텍스트 파일과 바이너리 파일을 모두 지원함
- 플러그인을 사용하면 지원되는 형식의 파일을 버전 관리되는 행으로 조회할 수 있음
- SQL 데이터베이스에는 파일 내용, 앱 데이터, 변경 이력이 ACID OLTP 데이터베이스에 저장됨
- SQL로 수백만 개 행을 조회할 수 있음
- 버전 관리에서는 바이트 덩어리가 아니라 변경된 절, 셀, 행을 표시함
- 변경 사항을 검토하고 병합하며 롤백할 수 있음
- 실시간 공동 작업에서는 사람과 에이전트가 하나의 저장소를 공유하고 변경 사항을 발생 시점에 확인함
- 플러그형 저장소로 로컬 파일 시스템, 브라우저 OPFS에서 동작하는 SQLite, Lix 서버 뒤의 S3를 사용할 수 있음
- 권한은 곧 제공 예정이며, 금융·법무·계약 담당자마다 다른 접근 권한이 필요한 상황을 대상으로 함
- 권한은 저장소 안에서 파일별·그룹별로 관리되고 다른 변경 사항과 마찬가지로 버전 관리될 예정임
시작하기
- JavaScript, Rust, Python, Go에서 사용할 수 있음
npm install @lix-js/sdk @lix-js/storage-filesystem명령으로 Lix SDK와 파일 시스템 저장소 패키지를 설치함FilesystemStorage를./repository경로로 열어 로컬 저장소를 실행할 수 있음openLix로 저장소를 연 뒤lix_file테이블에/notes/status.txt파일을 삽입하고, 파일 내용으로ready를 저장함- 파일 내용은
TextEncoder로 바이트 배열로 변환함 - 서버를 사용할 때는
openLix설정의 서버 주소에https://example.com/repositories/acme를 지정함
데모 사용
lixray.com에서 Lix 데모를 사용해 볼 수 있음
주요 사용 사례
고객마다 저장소 제공
- 제품이 고객마다 자체 저장소를 제공하며, 고객의 파일·데이터·대형 언어 모델이 작성하는 자동화를 함께 저장함
- Lix는 모든 파일 형식과 실시간 공동 작업을 지원하고 제품 안에 임베드됨
- 비기술 사용자는 브랜치와 풀 리퀘스트 대신 승인과 되돌리기를 사용함
- 권한 기능은 제공 예정임
- 고객별 서버 저장소 주소를
https://example.com/repositories/${customer.id}형태로 구성해openLix로 열 수 있음 lix_file테이블에/automations/booking.ts경로와 자동화 코드를 삽입함
파일 동기화
- 코딩 에이전트와 애플리케이션이 작업하는 파일을 여러 기기와 서버 사이에서 동기화함
FilesystemStorage를./project경로로 사용하면서https://lixray.com/@acme/project서버와 연결할 수 있음- LixRay를 사용하거나 자체 서버를 실행할 수 있음
버전 관리를 사용하는 앱
- 앱은 SQL 행과 일반 파일을 읽고 쓰며, Lix는 각 변경 사항에 작성자를 기록함
- 이력, 변경 주체 확인, 브랜칭, 롤백을 앱에서 별도 기능으로 구축하는 대신 쿼리로 처리함
- 예를 들어
orders테이블에서 식별자1002인 주문의 상태를shipped로 변경할 수 있음 lix_change테이블을 조회해 생성 시각, 계정 식별자, 스키마 키, 행 기본 키, 스냅숏 내용을 최신 변경 순서로 확인함- 파일과 행은 하나의 ACID 트랜잭션 안에서 함께 갱신됨
- 차이 비교에 관한 추가 내용은
Read more about diffs →에서 확인함
Lix의 작동 방식
파일과 데이터베이스
- 플러그인이 파일을 SQL 행으로 매핑하며, 문단·셀·속성이 Lix가 버전 관리할 수 있는 행이 됨
FilesystemStorage를 사용하면 파일은 디스크에서 계속 이용할 수 있고, 파일에서 생성된 행은 SQL로 조회할 수 있음- Lix는 파일과 SQL 행 양쪽의 변경 사항을 추적함
인프라의 프로세스 안에서 실행
- Lix는 플러그형 저장소와 함께 프로세스 안에서 실행되며 메모리, 로컬 파일 시스템, S3 기반 서버를 저장소로 사용할 수 있음
- 기존 버전 관리 시스템인 Git은 로컬 POSIX 파일 시스템을 전제로 하므로 임베드와 확장이 어려움
- 저장소에 관한 내용은 Storage 문서에서 확인함
비교
- Git은 파일을 추적하지만 SQL이 없음
- PostgreSQL과 SQLite는 SQL을 제공하지만 파일과 변경 이력이 없음
- Lix는 파일·SQL·변경 이력 세 가지를 모두 제공함
- 기능 비교는 다음과 같음
- 일반 파일: Lix는 지원, Git은 지원, PostgreSQL / SQLite는 미지원
- SQL과 트랜잭션: Lix는 지원, Git은 미지원, PostgreSQL / SQLite는 지원
- 브랜치와 병합: Lix는 지원, Git은 지원, PostgreSQL / SQLite는 미지원
- 셀·절·행 단위 차이 비교: Lix는 플러그인을 통해 지원, Git은 텍스트 줄만 지원, PostgreSQL / SQLite는 미지원
- 플러그형 저장소: Lix는 지원, Git은 미지원, PostgreSQL / SQLite는 미지원
추가 정보
- 시작 안내서: Lix로 첫 앱 구축
- 문서: 전체 API 참고 자료와 안내서
- Discord: 도움을 받고 커뮤니티에 참여
- GitHub: 문제를 신고하고 기여
라이선스
- MIT 라이선스임
댓글 (0)
로그인하면 이 기사에 내 생각을 남길 수 있어요