~/VibeHandbook
$39

AI 서비스

microsoft.github.io

LSP

무엇인가

LSP, 즉 Language Server Protocol은 에디터와 도구가 프로젝트에 대한 실시간 코드 인텔리전스를 얻는 공통 방식이다. "언어 서버"는 작업하는 동안 코드를 읽어 오류, 타입 정보, 자동 완성 제안, "정의로 이동" 링크를 보고한다. 이 프로토콜 덕분에 하나의 언어 서버가 여러 에디터를 지원할 수 있다 — VS Code에서 보는 빨간 물결선이 명령줄 도구나 AI 코딩 에이전트도 똑같이 구동할 수 있다.

강점

  • 실제로 언어를 이해한 피드백을 준다: 단순한 추측이 아니라 진짜 타입 오류와 정의되지 않은 참조를 알려준다.
  • 표준화되어 있어 하나의 서버가 여러 에디터와 도구에서 동작한다.
  • 입력하는 대로 갱신되므로 문제가 빌드 시점이 아니라 즉시 드러난다.
  • 개발자가 매일 의존하는 기능을 구동한다: 자동 완성, 호버 문서, 이름 바꾸기, 정의로 점프.

트레이드오프

  • 언어마다 자체 서버가 필요하고, 서버 간 품질 편차가 있다.
  • 대규모 프로젝트에서는 서버가 메모리와 CPU를 많이 잡아먹을 수 있다.
  • 무엇이 잘못됐는지는 알려주지만 어떻게 고칠지는 알려주지 않는다 — 해석은 여전히 당신(또는 AI)의 몫이다.
  • 설정이 까다로울 수 있다. 프로젝트에 맞는 서버를 제대로 구성하려면 어느 정도 손이 간다.

언제 사용하는가

코드를 작성하는 동안 믿을 만한 실시간 피드백을 원할 때면 언제나 — 사실상 항상이다. 바이브 코딩에서는 신호원(signal source)으로서 가장 중요하다. 언어 서버가 만들어내는 진단 정보야말로 루프로 되돌려 보내고 싶은 바로 그것이다.

바이브 코딩 적합성

LSP는 AI가 당신과 같은 문제를 보게 해주는 수단이다. 좋은 하니스는 각 편집 후 언어 서버의 진단을 에이전트에게 되돌려 보내므로, AI가 자신의 타입 및 린트 오류를 스스로 잡아 당신이 코드를 실행하기도 전에 고친다. "그럴듯해 보임" 대신 "컴파일러가 동의함"을 얻게 된다. 에이전트에게 파일만이 아니라 진단을 읽으라고 말하라.

// LSP 서버가 반환하는 진단 — 이것을 에이전트에게 되돌려 보내라
{
  "severity": "error",
  "range": { "start": { "line": 12, "character": 6 } },
  "message": "Type 'string' is not assignable to type 'number'."
}