본문 바로가기

그냥 블로그

마크다운 언어 서버 공개?

반응형

8월 중순에 올라온 소식인데 VS Code에서는 마크다운 편집을 하려면 서버가 필요한 건가라고 생각하고 지나갔다가 내용을 다시 살펴보았습니다.

VS Code 블로그에 올라온 글은 개발자 Matt Bierner의 개발 후기 같은 것이었네요. Matt Bierner는 2014년 케이스웨스턴리저브대학교를 졸업하고 Microsoft 정규직이 됩니다. 학교에 다니면서 Amazon, Microsoft 인턴 경력이 있구요. 하여간 내용을 정리해보면 2016년 VS Code 팀에 합류해서 마크다운 지원 기능을 개발했다고 합니다(아마도 확장 기능으로 만든 것이었던 것 같네요). 확장 기능도 쓰기에는 큰 문제가 없었는데 대규모 문서의 링크 수정 같은 문제를 다루기에는 한계가 있다는 것을 느꼈습니다. 그 전에는 마크다운을 프로그래밍 언어로 생각하지 않았는데 생각을 바꾸니 프로그래밍 언어와 마찬가지로 다룰 수 있다는 것을 깨달았다고 합니다(음. 좀 이상한 부분이긴 한데 지나고 보니 그렇게 생각할 수도 있죠).

하여간 그래서 기존 확장 기능을 언어 서버로 옮기는 작업을 점진적으로 진행했고 이제 그 작업을 끝내면서 오픈소스로 공개한다는 것이었습니다.

https://code.visualstudio.com/blogs/2022/08/16/markdown-language-server

 

Introducing the Markdown Language Server

Why we decided to build a language server for working with Markdown

code.visualstudio.com

 

그럼 언어 서버라는 것이 무엇인지 알아야하는데요. 언어 서버라는 것이 해당 언어 기능을 사용하기 위해 뭐 서버를 구축해야 하는 건 아니고(아예 하지 않는 건 아니지만 일반적으로 생각하는 서버가 아닌 로컬에 설치되는 서버입니다) 개발도구와 통신하면서 정보를 제공하는 서버입니다. 그림으로 보면 좀 더 쉽게 이해가 될 텐데요.

 

https://code.visualstudio.com/api/language-extensions/language-server-extension-guide

 

이전에는 각 개발도구에서 언어에 대한 지원을 따로 했지만 LSP(언어 서버 프로토콜)을 사용하면 언어에 대한 공통의 지원을 각 개발도구에서 추가 개발 없이 사용할 수 있다는 겁니다. LSP 개발 히스토리에 대해서는 이클립스 사이트에 잘 정리가 되어 있네요.

https://www.eclipse.org/community/eclipse_newsletter/2017/may/article1.php

 

Language Server Protocol | The Eclipse Foundation

You've probably heard of the Language Server Protocol. Read this article to learn what is it and why it exists.

www.eclipse.org

 

음. 그래서 결론은 VS Code에 뭔가 새로운 기능이 추가된 건 아니고 마크다운에 대한 언어 서버를 오픈 소스로 공개했다는 겁니다. 공개된 LSP 서버 목록은 아래 링크에서 확인할 수 있습니다.

https://microsoft.github.io/language-server-protocol/implementors/servers/

 

Language Servers

If you are missing a server please create a pull request in GitHub against this markdown document Language Maintainer Repository Implementation Language 1C Enterprise Contributors BSL Language Server Java ActionScript 2.0 Adam Vernon AS2 Language Support T

microsoft.github.io

 

대부분 프로그래밍 언어에 대한 언어 서버가 공개되어 있기 때문에 새로 만들지 않고 협업을 하면 됩니다. 혹 자신만의 언어를 만든 경우에는 직접 언어 서버를 만들어 공개해야겠죠.

https://www.slideshare.net/devcatpublications/visual-studio-code-2-ndc2017

 

이승재, 강성훈, 내가 만든 언어의 개발환경을 Visual Studio Code로 빠르고 쉽게 구축하기 #2, NDC2017

Visual Studio Code & 2017-04-25

www.slideshare.net

 

728x90