3P by GN⁺ | ★ favorite | 댓글 1개
  • Microsoft가 VS Code 안에서 PostgreSQL 관리와 개발을 함께 처리하는 공개 프리뷰 확장을 발표함
  • 새 확장은 Database Explorer, 쿼리 편집기, 컨텍스트 인식 IntelliSense, @pgsql GitHub Copilot agent를 묶어 편집기 밖으로 나가는 작업을 줄임
  • 생산성 문제의 근거로 2024 StackOverflow Developer Survey의 작업 전환 어려움 41%, 2024 Stripe Developer Coefficient Report의 디버깅·트러블슈팅 시간 최대 50%가 제시됨
  • @pgsql agent는 자연어로 질의, 스키마 최적화, SQL 작업 실행을 돕지만 데이터베이스 수정 전에는 사용자 명시적 허가가 필요함
  • Azure Database for PostgreSQL 탐색, Entra ID 기반 비밀번호 없는 인증, 로컬·클라우드 연결 관리를 포함해 VS Code를 PostgreSQL용 통합 개발 환경으로 확장함

VS Code 안으로 들어온 PostgreSQL 개발 워크플로

  • Microsoft는 Visual Studio Code용 새 PostgreSQL 확장을 공개 프리뷰로 발표함
  • 이 확장은 PostgreSQL 데이터베이스 관리와 애플리케이션 개발 흐름을 한곳에 모으도록 설계됨
  • VS Code 안에서 다음 작업을 처리할 수 있음
    • 데이터베이스 객체 관리
    • 쿼리 작성과 실행
    • 컨텍스트 인식 IntelliSense 사용
    • @pgsql GitHub Copilot agent를 통한 AI 지원
  • 데이터베이스 관리와 애플리케이션 개발을 오가는 과정은 생산성 저하 요인으로 다뤄짐
    • 2024 StackOverflow Developer Survey에 따르면 개발자의 41% 가 작업 전환에 어려움을 겪음
    • 2024 Stripe Developer Coefficient Report에 따르면 개발자는 코드와 데이터베이스 디버깅·트러블슈팅에 시간의 최대 50% 를 사용함

데이터베이스 컨텍스트를 아는 GitHub Copilot

  • @pgsql GitHub Copilot agent는 VS Code 안에서 PostgreSQL 데이터베이스 컨텍스트를 활용하는 AI 지원을 제공함
  • 자연어로 PostgreSQL 데이터베이스와 개발 도구를 다룰 수 있음
    • 데이터베이스 질의
    • 스키마 최적화
    • SQL 작업 실행
  • 쿼리 편집기 컨텍스트 메뉴에는 다음 AI 기능이 포함됨
    • “Rewrite Query”
    • “Explain Query”
    • “Analyze Query Performance”
  • PostgreSQL Copilot은 데이터베이스 성능과 보안 유지, 코드 품질 개선을 위한 실시간 안내를 제공함

Agent mode와 작업 승인 흐름

  • GitHub Copilot Chat agent mode는 데이터베이스 컨텍스트를 인식하는 비서로, 단순 질의응답을 넘어 다단계 작업을 수행할 수 있음
  • Agent mode는 워크스페이스의 추가 컨텍스트를 가져올 수 있음
  • 사용자가 허가하면 코드를 직접 작성하고 디버깅할 수 있음
  • 예시 작업은 Saved Connections의 특정 서버에 새 데이터베이스를 만들고 PostGIS 확장을 활성화하는 흐름임
    • @pgsql agent가 서버 연결을 나열함
    • postgis 서버에 연결함
    • 데이터베이스 수정 스크립트를 작성함
    • 변경을 진행하기 전에 사용자 허가를 기다림
  • 데이터베이스 수정에는 사용자의 명시적 허가가 필요함

연결 관리와 Entra ID 인증

  • 연결 관리 기능은 로컬 및 클라우드 호스팅 PostgreSQL 인스턴스 연결을 단순화함
    • 여러 연결 프로필을 지원함
    • connection string 파싱을 지원함
    • Azure Database for PostgreSQL 배포를 직접 탐색하고 필터링할 수 있음
  • 기존 Azure Database for PostgreSQL 배포에는 “Add New Connection” 메뉴의 “Browse Azure” 옵션으로 연결할 수 있음
  • 로컬 Docker 배포의 PostgreSQL에는 Parameters 또는 Connection String 옵션으로 연결 가능함
  • Entra ID 기반 비밀번호 없는 인증은 수동 로그인을 없애고 연결 유지 경험을 개선함
    • 자동 토큰 갱신으로 개발 중 인증 시간 초과 위험을 줄임
    • Entra ID의 보안 인증 프로토콜을 활용함
    • 토큰 관리를 자동화해 관리 부담을 낮춤
    • 기존 Entra ID 자격 증명을 사용할 수 있어 별도 계정 관리가 필요 없음
  • Entra ID 통합은 중앙화된 보안과 ID 관리, 접근 제어를 제공함

데이터베이스 탐색, 쿼리 편집, 스키마 시각화

  • Database Explorer는 schemas, tables, functions 같은 데이터베이스 객체를 구조화된 보기로 제공함
  • Database Explorer에서 데이터베이스 객체를 생성, 수정, 삭제할 수 있음
  • Object Explorer 아래에는 세션 쿼리 기록이 표시됨
    • 이전에 실행한 쿼리를 빠르게 검토하고 재사용할 수 있음
  • 쿼리 편집기는 컨텍스트 인식 IntelliSense를 제공함
    • SQL 키워드 자동 완성
    • 테이블 이름 자동 완성
    • 함수 자동 완성
  • 쿼리 편집 기능에는 구문 강조, 자동 서식, 실행한 쿼리 재사용을 위한 쿼리 기록 추적이 포함됨
  • 스키마 시각화는 Object Explorer에서 데이터베이스 항목을 오른쪽 클릭한 뒤 “Visualize Schema”를 선택해 실행함

차별점과 설치 방법

  • Microsoft가 내세운 차별점은 다음과 같음
    • 컨텍스트 인식 IntelliSense와 SQL formatting을 통한 시간 절약과 오류 최소화
    • 데이터베이스와 워크스페이스 컨텍스트를 인식하는 pgsql GitHub Copilot Chat agent의 다단계 작업 수행 능력
    • 몇 분 안에 시작할 수 있도록 돕는 Connection Manager 온보딩
    • Entra ID 통합을 통한 접근 제어와 중앙화된 ID 관리
    • VS Code 안에서 데이터베이스 객체 관리, 쿼리 실행, 인스턴스 배포를 수행하는 도구 세트
  • 설치는 VS Code의 Extensions view를 열고 Extensions Marketplace에서 “PostgreSQL”을 검색한 뒤, 파란 코끼리 아이콘이 있는 Preview PostgreSQL 확장을 선택하는 방식임
  • 확장 ID는 ms-ossdata.vscode-pgsql
  • 온라인 Visual Studio Code Marketplace에서도 제공됨: ms-ossdata.vscode-pgsql
  • PostgreSQL GitHub Copilot Chat을 사용하려면 VS Code에 GitHub Copilot 및 GitHub Copilot Chat 확장이 설치되어 있어야 함
    • GitHub 계정으로 로그인한 뒤 채팅 인터페이스에서 @pgsql을 사용해 PostgreSQL 데이터베이스와 상호작용함
  • 피드백과 이슈 보고는 VS Code의 내장 feedback tool로 제출할 수 있음
  • 첫 릴리스에 포함된 표준 preview license 문구와 관련해, Microsoft는 모든 Postgres 사용자가 동일하게 확장을 널리 사용할 수 있도록 라이선스를 업데이트할 예정임
  • 시작 문서는 https://aka.ms/pg-vscode-docs에서 제공됨

댓글과 토론

Hacker News 의견들
  • 이게 내가 pgstrap이라는 npm 패키지를 만든 핵심 문제를 해결해 줌. 데이터베이스 스키마를 LLM이 볼 수 있도록 “database structure” 디렉터리를 생성하고, 테이블별 변경사항이 보여서 코드 리뷰도 쉬워짐
    그래서 데이터베이스의 각 테이블마다 SQL 파일이 하나씩 있고, 스키마별 디렉터리에 깔끔하게 정리됨. Rails의 schema.rb와 비슷한 아이디어임
    에디터가 데이터베이스를 이해하게 하는 게 나은지, 코드베이스에 적절한 맥락을 커밋해 두는 게 나은지는 잘 모르겠음. 생성 코드나 산출물이 적으면 코드베이스가 깔끔하지만, 모두가 VS Code를 쓰거나 이 통합 기능을 쓸 줄 아는 건 아님. 데이터베이스 브라우저 GUI에는 뚜렷한 승자가 없었지만, VS Code의 지배력이 충분해서 “개발 중 데이터베이스를 보는 표준 방식”이 될 가능성은 있음
    https://github.com/seveibar/pgstrap

    • 좀 헷갈림. 데이터베이스 스키마의 정규 상태를 그 상태까지 만든 모든 마이그레이션과 함께 버전 관리에 넣는 건 거의 모든 웹 프레임워크의 표준 아닌가?
    • 꽤 실용적인 도구로 보임. 트리거, 저장 프로시저 같은 것도 출력하는지 궁금함
      많은 도구가 테이블, 컬럼, 인덱스 정의에서 멈추는 것 같은데, 데이터베이스의 나머지 기능을 더 잘 활용하게 해 주는 도구가 있으면 좋겠음
    • 와, 이건 ClickHouse가 테이블 메타데이터를 저장하는 방식과 정확히 같음. 데이터베이스에 대응하는 디렉터리 안에 .sql 파일들이 있는 구조임
    • Copilot이나 Cline과 함께, 내 데이터베이스에 읽기 전용 로그인을 가진 MCP 서버를 그냥 사용함
  • 와, 이거 좋아 보임. Microsoft가 SQL Server가 아니라 Postgres에 이런 노력을 들였다는 게 꽤 놀라움. 수요가 훨씬 큰 듯함

    • VS Code용 Microsoft SQL Server 확장은 이미 있고, 이건 사실상 그 복제판처럼 보임
      잠깐 써 보니 메뉴, 대화상자 등 생김새와 느낌이 SQL Server 확장과 같았음. SQL Server 확장은 이제 사용 중단될 Azure Data Studio의 기반이었던 것으로 알고 있음
      SQL Server 확장은 여기 있음: https://marketplace.visualstudio.com/items?itemName=ms-mssql...
    • Microsoft의 개발자 애드버킷 입장에서 보면, 두 팀 모두 확장을 개선하는 데 꽤 많은 노력을 들이고 있음
      SQL Server 확장 팀과 새 PostgreSQL 확장 팀의 사용성 연구에 모두 참여했고, 준비된 뒤에는 버그 배시에도 참여했음. 두 팀 모두 개발자가 도구를 즐겁게 쓰길 정말 원해 보이니, 필요한 점을 피드백해 주면 좋겠음
      SQL Server 확장 소식은 Carlos Robles를 팔로우하면 됨: https://www.linkedin.com/in/croblesm/
      PostgreSQL 서버 확장 소식은 Joshua Johnson를 팔로우하면 됨: https://www.linkedin.com/in/johnsonjoshuae/
    • MSSQL 도구는 Azure Data Studio의 일부로 유지돼 왔고 상태도 더 좋았기 때문일 것 같음
      ADS는 종료 수순이고, VS Code에 Postgres 확장을 설치하려다 보니 마지막 의미 있는 기여가 6년 전이라 놀랐음. 최신 VS Code 버전에서는 동작하지 않았음
      이 발표 전까지는 Postgres와 MSSQL 모두 ADS로 썼고, 옮겨 갈 곳이 없어서 계속 ADS를 쓰고 있었음
      https://github.com/microsoft/vscode-postgresql/commits/maste...
    • 이미 비슷한 영역을 다루는 SQL Server Management Studio가 있음
      시간이 지나면 SSMS를 VS Code로 옮기고 싶을 수 있고, 새로운 영역인 PostgreSQL부터 시도해 보는 건 말이 됨
      https://learn.microsoft.com/en-us/ssms/sql-server-management...
    • SQLite용으로도 비슷한 게 있으면 좋겠음
  • “좋아하는 코드 에디터를 떠나지 않고”라고 하는데, 그럼 Neovim에는 어떻게 설치함? LSP가 있나? 아니면 Microsoft 독점인가? Copilot 통합 없이도 경쟁 도구보다 얼마나 나은지 궁금함
    지금은 DBeaver CE를 쓰고 있고, SQLite까지 필요한 건 다 해 줌

    • 영리 기업이 “모두를 위해 X를 민주화”라고 쓰면 “돈을 낼 수 있고 제재 대상이 아닌 사람들”이라는 뜻이고, “단순화”라고 쓰면 “우리 생태계에 잠금”이라는 뜻임
      “좋아하는 X”라고 쓰면 “우리가 파는 제품”이라는 뜻이고, 이런 식임. 이 비즈니스 사전으로 보도자료를 읽기 시작하면 그냥 탭을 닫고 넘어가기가 훨씬 쉬워짐
    • DuckDB까지 포함해서 지난 9년 동안 업무에서 DBeaver CE를 써 왔음. Python 개발할 때 빠르게 필요하면 Jupyter에서 JupySQL을 쓰고, VS Code에서도 Jupyter 플러그인을 통해 잘 동작함
  • 꼭 살펴볼 예정임. 커리어 초기에 대부분 SQL Server와 SSMS로 시작했는데, SSMS는 머리에 딱 맞는 장갑 같았음
    Postgres를 쓰기 시작한 지 10년쯤 됐는데, pgAdmin, DBeaver, DataGrip 같은 일반적인 관리/쿼리 도구에는 계속 불만족스러웠음. Postgres 자체는 훌륭하고, 오해는 말아야 하는데 SQL Server도 돈이 든다는 점만 빼면 환상적임. 다만 Postgres의 DBMS 도구 생태계에 왜 더 큰 반발이 없었는지는 이해가 안 됐음

    • 범용 데이터베이스 도구 중에는 DataGrip이 압도적으로 인상적이었음
      거의 다 써 본 느낌인데, 다른 도구들은 IDE 설계자가 아니라 데이터베이스 사람들이 만든 듯한 품질을 갖고 있었음. 기능의 깊이, 확장성, 개선 속도 면에서 매우 만족하는 고객임
      오픈소스를 깎아내리고 싶진 않지만 pgAdmin과 DBeaver는 같은 리그에도 못 들어감. Oracle을 다루는데 DataGrip이 제정신을 지켜 줬음
    • 내 경험상 대부분의 SQL 개발자는 도구에 크게 신경 쓰지 않음
      대개 누군가 데이터베이스와 테이블을 설계하고, 개발자는 데이터베이스 자체보다는 테이블과 뷰에만 관심을 갖고 인덱스도 드물게 봄. 관심을 갖고 도구가 필요한 사람들은 보통 개발 DBA라고 불리는데 매우 드묾. 너무 드물어서 한 번도 채용해서 붙잡아 두지 못했음. 그 희소성에 비해 우리가 충분히 많이 주지 않았기 때문임
    • 흥미로움. 몇 년 동안 DataGrip을 쓰다가 JetBrains 구독이 없어져서 지금은 DBeaver를 씀
      DataGrip은 강력했고 아마 지금도 강력할 것이며, 자동 완성은 최고 수준이었음. 지금 쓰는 DBeaver도 아주 견고함. 하루 종일 거기서 일하는 건 아니지만, 필요할 때는 일을 잘 해냄
  • 내게 JetBrains가 VS Code보다 가장 크게 앞서는 부분은 아주 깔끔한 내장 데이터베이스 도구였음

    • 데이터베이스 도구만 따로 DataGrip으로 실행할 수도 있음. 나는 그렇게 함
    • 해마다 한 번쯤 VS Code로 돌아가 보려 하지만, JetBrains의 Git과 데이터베이스 통합이 너무 좋아서 넘어가질 못함
  • Postgres와 상호작용할 때는 늘 Postico가 사실상 기본 선택이었음. Postico 사용자 중에 이걸 벌써 써 본 사람이 있는지 궁금함

    • 매우 Mac 지향적이고, IntelliJ 내장 DB 편집기가 기능 면에서는 훨씬 많다고 봄
    • Postico를 10년 넘게 써 왔음. 이것도 한번 써 볼 예정임. node-pg를 쓸 때 Copilot이 스키마를 인식하기 시작하면 좋겠음
  • 출시 축하함. 지난주 Microsoft에서 열린 스폰서 세션의 일부로 이걸 처음 데모했음
    사용한 발표는 여기 있음: https://www.youtube.com/watch?v=k6Vm2hakkV4
    MSFT 부스에서도 극장 세션을 했지만 녹화본은 아직 올라오지 않았음. 대신 이 저장소의 단계를 따라가면 내가 데모한 모든 기능을 확인할 수 있음: https://github.com/Azure-Samples/postgresql-extension-playgr...
    문제는 여기로 팀에 알려 주면 됨: https://github.com/microsoft/vscode-pgsql/issues

    • 참고로 프로필에는 “pamelafox.org”로 표시되는데, 그 주소로 접속하면 웹사이트가 404를 냄
  • 지금 Microsoft에 가장 “가치 있는” IDE가 뭘지 궁금함
    몇 년 전만 해도 VS Code는 사실상 “초보자를 위한 Visual Studio”처럼 마케팅됐고, 진짜 개발자가 되면 Visual Studio로 옮겨 가는 흐름처럼 보였음. 그런데 이후 VS Code가 계속 성장해서 지금은 가장 많이 쓰이는 “IDE”가 됐고, Visual Studio는 주로 레거시처럼 보임. 물론 단순화한 말이고 C++와 .NET에는 훌륭한 IDE지만 그래도 그런 인상임

    • 개발자 도달 범위 기준이면 단연 VS Code
      Microsoft 쪽을 깊게 쓰진 않지만, 개인적으로 아는 “진지한” .NET 개발자들은 거의 모두 Rider를 쓰고 있음. 그래서 Visual Studio는 Eclipse나 NetBeans가 차지한 공간, 즉 여전히 쓰이지만 주로 변화가 어려운 곳에서만 쓰이는 영역으로 후퇴한다고 볼 수밖에 없음
      나는 Emacs 사용자지만 VS Code는 설치해 둠. 가끔 SQL Server와 상호작용해야 하고, ADS를 접는 지금은 비Windows 시스템에서 그걸 하는 가장 좋은 방법이기 때문임
    • 돈으로 보면 Visual Studio
      .NET과 COM 구현에 기반한 수많은 기업 개발 워크플로와 플러그인은 아마 VS Code로 절대 이식되지 않을 것임
      다만 관심 점유율과 Microsoft 생태계로 들어가는 관문이라는 측면에서는 확실히 VS Code임. 시분할 개발의 귀환, 미안하지만 클라우드 시대에 최고의 웹 IDE이기도 함
      이것만으로도 GitHub와 Azure에 있는 모두가 X Windows와 RDP/Citrix 세션의 현대판으로 VS Code를 쓰게 됨. Eclipse v2치고 나쁘지 않음. Erich Gamma가 주요 아키텍트 중 하나였고, Electron 껍데기는 좀 아쉬움
    • “진짜 개발자가 되면 Visual Studio로 옮겨 가는” 식으로 마케팅된 적은 없음
      이유는 간단함. VS Code에서 인기 있는 Python, HTML, JavaScript 같은 언어는 일반 Visual Studio에서 잘 지원된 적이 없어서, Python이나 웹 개발을 한다면 “제대로 된” Visual Studio로 옮길 길 자체가 없음
    • Visual Studio는 게임 업계에서 여전히 널리 쓰이고, 일부 플랫폼을 대상으로 할 때는 사실상 필수임
      요즘은 Rider를 주로 쓰는 경우도 흔해지고 있지만, 빌드 시스템의 일부로 VS는 여전히 사용됨
    • 압도적으로 VS Code일 수밖에 없음. 돈을 받지는 않지만, 사람들을 Microsoft 생태계 안에 붙잡아 두는 엄청난 유인이고 개발자 시장에서 Microsoft의 존재감을 유지해 줌
  • SQLite에도 비슷한 기능이 있나? 데이터베이스마다 완전히 새로운 확장이 필요할지, 아니면 공유되는 부분이 있는지 궁금함

  • 30년 뒤에 만난 Microsoft Access와 PostgreSQL인가?

    • 여기서 Access와 관련된 뭔가를 놓친 건가, 아니면 그냥 비꼬는 건가? 그 쓰레기를 다뤄야 하는 입장이라, DBeaver보다 나은 걸 쓸 수 있다면 뭐든 듣고 싶음
    • 아, Access라니. 아주 단순한 Access DB와 ASPv3로 월 100만 사용자 넘는 웹사이트를 굴린 적 있음. 백만 사용자가 진짜 백만 사용자였던 시절임