1. 개요
Language Server Protocol, LSPIDE상에서 다양한 프로그래밍 언어들에 대한 개발 편의 기능을 보편적으로 구현하기 위해 탄생한 프로토콜. 여기서의 개발 편의 기능에는 포맷팅, 자동 완성, 구문 강조 등이 포함된다.
LSP등장 이전에 흔히 IDE에서 제공되는 문법 검사, 구문 강조 등의 기능은 각 IDE가 자체적으로 구현할 몫이었다. 그러나 이는 효율적이지 못한 것이, 한 언어의 명세는 하나인데도 이에 따른 IDE의 구현이 양립할 수 밖에 없었다. 또한 새로운 언어가 탄생했을때, 이에 대한 자동 완성 등의 편의기능이 실사용 수준으로 정착하기까지의 기간 또한 길 수 밖에 없었다.
이를 해결하기 위해 언어에 대한 처리를 각 IDE에서 구현하는 것이 아닌, 특정 언어의 종속적인 기능들만 처리하는 '언어 서버'의 개념으로 분리하여 구현하고, 서로 일정한 프로토콜을 통해 상호작용하도록 하였다. 이를 통해 IDE에서의 개발 부담과 기술 양립을 감소시키고, 개발 편의기능을 다양한 환경에서 보편적으로 사용할 수 있게 되었다.
2. 유래와 역사
LSP는 Visual Studio Code의 개발 과정에서 탄생했다.2020년대에는 LSP가 빠르게 표준으로 자리잡아 다양한 IDE 및 기업에서 채용되었다.