피드로 돌아가기
GeekNewsInfrastructure
원문 읽기
GNU Emacs에서 lsp-mode에서 Eglot으로 이동하기
Eglot 전환을 통한 LSP 보안 강화 및 인터페이스 경량화 설계
AI 요약
Context
기존 lsp-mode의 과도한 팝업과 자동 활성화 훅으로 인한 UX 저해 및 보안 취약점 발생. 특히 신뢰할 수 없는 프로젝트 오픈 시 LSP 서버를 통한 임의 코드 실행 및 시스템 침해 가능성이 주요 제약 사항으로 작용함.
Technical Solution
- 신뢰 기반의 명시적 활성화: 자동 로드 방식을 지양하고 read-from-minibuffer 및 프로젝트 허용 목록 기반의 수동 승인 체계 도입
- 인터페이스 추상화 계층 활용: 개별 명령 호출 대신 Emacs 표준 xref 인터페이스를 통한 기능 통합으로 UI 노이즈 제거 및 단순함 확보
- LSP Multiplexer 구조 검토: 버퍼당 단일 클라이언트 제한을 극복하기 위해 외부 멀티플렉서 프로그램을 통한 다중 서버 운용 전략 채택
- 최소 기능 설정(Minimal Config): basedpyright 등 핵심 서버 위주의 구성으로 tree-sitter DLL 의존성 및 설정 복잡도 최소화
- 세션 기반 허용 목록 초기화: 메모리 내 허용 목록을 세션마다 초기화하여 지속적인 보안 검증 절차 강제
실천 포인트
1. 신뢰할 수 없는 저장소 오픈 시 LSP 자동 실행 훅 제거 여부 확인
2. 프로젝트 루트 디렉토리 기준의 허용 목록(Allow-list) 기반 활성화 로직 구현
3. 과도한 UI 알림을 줄이기 위해 표준 API 기반의 Quiet 인터페이스 채택 검토
4. 다중 LSP 서버 필요 시 Multiplexer 도입을 통한 아키텍처 확장성 확보