# Postgres Language Server: 첫번째 릴리즈

> Clean Markdown view of GeekNews topic #20030. Use the original source for factual precision when an external source URL is present.

## Metadata

- GeekNews HTML: [https://news.hada.io/topic?id=20030](https://news.hada.io/topic?id=20030)
- GeekNews Markdown: [https://news.hada.io/topic/20030.md](https://news.hada.io/topic/20030.md)
- Type: GN+
- Author: [xguru](https://news.hada.io/@xguru)
- Published: 2025-03-30T09:30:13+09:00
- Updated: 2025-03-30T09:30:13+09:00
- Original source: [github.com/supabase-community](https://github.com/supabase-community/postgres-language-server)
- Points: 11
- Comments: 1

## Summary

Postgres 전용 Language Server Protocol(LSP)이 구현되어 다양한 개발 도구를 제공하며, Postgres 구문과 100% 호환되는 안정적인 SQL 기능을 제공합니다. 서버-클라이언트 구조로 설계되어 CLI, HTTP API, WebAssembly 모듈 등 다양한 인터페이스로 기능을 사용할 수 있습니다. 현재 자동완성, 구문 오류 하이라이팅, `EXPLAIN` 명령을 이용한 타입 체크, 그리고 SQL Linter 기능이 포함되어 있습니다.

## Topic Body

- Postgres 전용 Language Server Protocol (LSP) 구현과 다양한 개발 도구를 제공  
- Postgres의 기본 파서인 `libpg_query`를 기반으로 하여 Postgres 구문과 100% 호환되는 안정적인 SQL 기능을 제공  
- 서버-클라이언트 구조로 설계되었으며, 전송 방식에 구애받지 않는 유연한 디자인을 채택함  
- 이를 통해 Language Server Protocol뿐만 아니라 **CLI, HTTP API, WebAssembly 모듈 같은 다양한 인터페이스로 기능을 사용**할 수 있음  
- 목표는 기존의 훌륭한 Postgres 도구를 최대한 접근하기 쉽게 만들고, 부족한 부분은 직접 개발하는 것임  
- 현재 구현된 기능:  
  - 자동완성 기능  
  - 구문 오류 하이라이팅 지원  
  - `EXPLAIN` 명령을 이용한 타입 체크 기능  
  - [Squawk](https://squawkhq.com)에서 영감을 받은 SQL Linter 기능 포함

## Comments



### Comment 36505

- Author: neo
- Created: 2025-03-30T09:36:57+09:00
- Points: 1

#### [Hacker News 의견](https://news.ycombinator.com/item?id=43513996)   
- Postgres Language Server의 초기 버전을 공개함  
  - VSCode 확장, `nvim-lspconfig`, `mason`, npm에서 설치 가능함  
  - 2년간 다양한 시행착오를 겪으며 만든 프로젝트임  
  - 현재는 실용적이고 단순한 방식으로 동작하게 구성함  
  - Biome 코드베이스에서 많은 영감을 받았으며 큰 도움을 받음  
  - Rust로 구현되어 있으며 Rust에 기여하고 싶은 사람을 환영함  
- 현재는 SQL 문만 지원하며, 향후 PL/pgSQL도 지원할 예정임  
  - PostgreSQL의 SQL 방언을 따르며 Postgres의 파서를 사용함  
  - DB 연결을 제공하면 `pg_catalog` 테이블을 통해 메타데이터를 읽어옴  
  - 연결 정보가 없으면 해당 기능은 비활성화됨  
- JetBrains IDE들이 오래전부터 훌륭한 SQL 지원을 제공해왔음. FOSS 대안이 드디어 등장한 것이 긍정적  
- IntelliJ DB 도구가 특별하진 않으며, SQL Squirrel 같은 오래된 툴도 꽤 괜찮음  
- DB를 자주 변경하지 않는다면 유용하지 않을 수도 있음  
  - Supabase처럼 SQL로 많은 로직을 작성하는 플랫폼에서 매우 유용함  
  - SQL 함수, RLS, 마이그레이션 파일 등을 자주 다룬다면 도움을 많이 받을 수 있음  
- Postgres 문법은 매우 복잡하고 자주 변경되기 때문에 기존 도구들이 지속적으로 지원하기 어려움  
  - Postgres 서버의 실제 파서를 추출한 libpg_query를 사용해 문제를 해결함  
-JetBrains 도구는 쿼리를 분석할 뿐 아니라 실제 테이블과 매칭하는 기능도 제공함  
  - 코드 내 SQL 문자열도 분석 가능한 점이 인상적임  
- PL/pgSQL 코드베이스를 마이그레이션 파일로 관리하는 사람들에게는 게임 체인저라고 평가함
