피드로 돌아가기
GNU Emacs에서 lsp-mode에서 Eglot으로 이동하기
GeekNewsGeekNews
Infrastructure

GNU Emacs에서 lsp-mode에서 Eglot으로 이동하기

Eglot 전환을 통한 LSP 보안 강화 및 인터페이스 경량화 설계

neo2026년 5월 13일5intermediate

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 도입을 통한 아키텍처 확장성 확보

원문 읽기