Hacker News인프라 · 데브옵스오늘의 주요

Rust LSP 개발이 어려운 이유

원제 Why building a Rust LSP is hard

109 포인트댓글 44
Key Point

Rust LSP 개발자들이 마주하는 구체적인 아키텍처 문제와 설계 선택의 trade-off를 이해하면, 편집기 도구의 반응성과 정확성이 왜 충돌하는지 알 수 있습니다.

핵심 요약

  • Rust Glancer라는 실험적 Rust LSP를 개발 중인 저자가 LSP 구축 과정에서 마주친 어려움을 공유합니다.
  • LSP 서버는 초기화 요청에 응답할 때 프로젝트를 아직 인덱싱하지 못한 상태인데, 응답을 미루면 사용자 대기 시간이 길어지고 바로 응답하면 첫 쿼리에 불완전한 정보만 제공하는 딜레마에 빠집니다.
  • 컴파일러와 달리 LSP는 완벽한 정보 없이도 즉시 유용한 결과를 제공해야 하므로, 최소한의 유용한 작업만 수행하고 나머지는 백그라운드에서 처리합니다.
  • LSP 프로토콜은 파일시스템을 추상화하지만 실제로는 파일시스템 접근이 필요하고, 에디터 외부 변경도 발생하므로 경합 문제를 피하려면 가상 파일시스템과 소스 생성(source generation) 개념이 필수입니다.
  • 동시 실행 중인 쿼리들을 상태 변경에 따라 관리해야 하는데, 서로 다른 종류의 쿼리가 예상 외로 복잡한 처리를 요구합니다.
AI 요약 안내

AI가 한국어로 정리한 내용입니다. 정확한 정보는 원문을 확인해 주세요.

요약 원칙 ↗