Type Server Protocol

Type Server Protocol

github.com/microsoft ▲ 254 댓글 172 adamnemecek

요약

Type Server Protocol은 클라이언트가 타입 서버에 파이썬 타입 정보를 묻는 통신 규약입니다.

마이크로소프트가 Pylance(VS Code의 파이썬 언어 서버) 저장소에 올린 명세 문서입니다. LSP(편집기와 언어 분석 도구 사이의 표준 규약)의 형식을 빌려, 타입 분석 결과를 주고받는 JSON-RPC(JSON으로 원격 함수를 부르는 방식) 메서드를 정의했습니다.

왜 중요한가

  • 타입 분석을 맡는 서버와 그 결과를 쓰는 도구를 규약으로 나눠, 서로 다른 구현이 맞물릴 수 있게 합니다.
  • HN 댓글에 따르면 애스트럴이 만드는 타입 검사기 ty도 이 규약을 지원할 예정입니다.
  • 아직 0.x 버전이라 마이너 버전이 바뀔 때 호환이 깨질 수 있습니다.

핵심 내용

  • 코드 흐름으로 추론한 타입, 소스에 적힌 타입, 문맥이 기대하는 타입을 각각 따로 묻는 요청이 있습니다.
  • 요청마다 스냅숏(분석 상태의 시점 번호)을 보내고, 번호가 낡았으면 서버가 요청을 취소해 다시 묻게 합니다.
  • 기본은 LSP와 같은 연결 하나로 통신하며, 읽기 전용 질의를 병렬로 돌리는 추가 연결은 선택 기능입니다.
  • 파이썬 검색 경로 조회와 import 대상 파일을 찾아 주는 요청도 들어 있습니다.
  • 버전은 0.1.0에서 0.4.1까지 나왔고, 0.4.1에서 다중 연결 협상이 추가됐습니다.

HN 반응

  • basedpyright 관리자가 이 규약을 비판해 왔다는 소개 뒤로, 마이크로소프트의 생태계 가두기 의심과 이를 반박하는 의견이 맞섰습니다.
  • 파이썬 전용 규약에 범용처럼 보이는 이름을 붙였다는 지적이 나왔고, 마이크로소프트식 긴 제품명을 흉내 내는 농담이 이어졌습니다.

댓글

30개 표시 · 전체 172개
  1. nikolatt HN

    basedpyright 메인테이너인 DetachHead가 예전에 TSP를 비판한 적이 있습니다.

    반면 Ty(astral이 관리하는 타입 체커)는 TSP를 지원할 모양입니다: https://github.com/astral-sh/ruff/discussions/23432

  2. ghm2180 HN

    MS가 돈 버는 방법이라고는 사용자를 자기네 생태계에 가두는 것밖에 모르는 것 같아요. 다음에는 아마 자연어를 Lean 형식화로 바꿔 주는 독점 코드가 들어간, 클로즈드 소스 Lean 체커를 들고 나오겠죠.

  3. pjmlp HN

    FOSS에 기여하는 빅테크는 전부 마찬가지입니다. 자선사업으로 하는 게 아니니까요.

  4. salynchnew HN

    그건 절대 사실이 아닙니다. 예로부터 FOSS 기여는 최고 인재를 끌어들이고 알아보는 방법 중 하나였습니다.

  5. WJW HN

    그러니까 자선이 아니라 인재를 끌어들이려고 한다는 거네요?

  6. pjmlp HN

    공짜 인재죠. 그리고 분명히 사실입니다.

  7. IshKebab HN

    그건 사실이 아니라고 봅니다. 대기업 중 상당수는 사람들을 가두려는 목적만으로 FOSS에 기여하지 않아요. 자기들이 그 소프트웨어를 쓰는데 패치를 영원히 직접 관리하기는 싫어서 기여하는 경우가 많습니다. 실제로 문제가 해결되면 모두에게 이득이니까요. 아니면 그냥 좋은 직장으로 알려지고 싶어서이기도 하고요.

  8. __s HN

    몇 년 전 MS가 Postgres 커미터들에게 얼마나 간섭하지 않았는지 보면 딱 그 설명이 맞아요, 제 기억으로는요. 그 사람들을 MS에 두면 도움이 되는 상담 시간도 열 수 있어서 유용했고요. HorizonDB 이후에도 이 관계가 유지될지는 지켜봐야죠.

  9. simonjgreen HN

    그러니까… 자선은 아니라는 거네요?

  10. pixlmint HN

    동기와 최종 목표를 뒤섞고 계시네요. 동기가 순수한 자선이 아니라고 해서 최종 목표까지 불순해야 하는 건 아닙니다.

  11. lukan HN

    네, 대개는 아니죠. 하지만 그렇다고 고객을 가두려 든다는 뜻은 아닙니다.

  12. wtetzner HN

    당연히 아니죠? 자선이라고 주장한 사람은 아무도 없다고 생각하는데요.

  13. pjmlp HN

    비슷한 규모의 빅테크 중에서, 다른 속셈 없이 FOSS에 기여하는 회사를 하나만 대 보세요.

  14. wtetzner HN

    다른 속셈이 있는 건 맞지만, 대개는 개인이 여가 시간에 기여하는 것과 같은 이유입니다. 그 소프트웨어를 쓰고, 자기 목적에 맞게 더 낫게 만들고 싶지만, 유지보수까지 떠맡고 싶지는 않은 거죠.

  15. galaxyLogic HN

    우리 모두 "다른 속셈"이 있지 않나요?

    이타주의는 대개 가족이나 한 부대의 군인들처럼 끈끈하게 얽힌 집단 안에서 나타납니다. 아이들을 구하려고 목숨을 바치는 교사 같은 경우죠. FOSS 개발자들은 정말 이타심으로 소프트웨어를 만들까요? 그런 사람도 있겠지만, 그게 사실인지 아닌지 우리가 알기는 어렵습니다.

  16. ongy HN

    오래 활동한 FOSS 개발자 중에 이타심으로 소프트웨어를 만드는 사람은 없다고 봅니다.

    대부분 자기가 쓰고 싶어서 소프트웨어를 시작하거든요.

    주로 다른 사람들의 필요를 위해 일하게 되는 시점에는 이타심, 자부심, 그리고 아마 일 자체를 즐기는 마음이 섞여 있을 거라고 생각합니다.

  17. awesome_dude HN

    FAANG 같은 회사가 Kafka, REACT, Kubernetes처럼 자기들에게 쓸모 있던 프로젝트를 오픈 소스로 공개하면, "커뮤니티에 긍정적으로 기여하는 모습을 보이려는 것" 같은 다른 속셈이 있다는 주장이 꼭 나옵니다.

    하지만 사실은 저도 마찬가지예요. FOSS 프로젝트에 문서, 테스트, 버그 수정, 기능 추가로 보잘것없이 기여하는 사람으로서요. 뭐가 문제입니까?

  18. pjmlp HN

    그러면 오죽 좋겠어요. 하이퍼스케일러와 AI 사업을 하는 FAANG들은 늘 그 개선 사항을 자기네 클라우드 제품의 고객 유치에 써먹을 방법을 찾아내고, 그건 다른 업체에서는 쓸 수 없잖아요.

  19. endofreach HN

    아닙니다. 가장 티 나게 애쓰는 건 단연 마이크로소프트와 페이스북이에요.

  20. 1287h HN

    맞아요, 마이크로소프트는 Faster CPython 팀을 해고했고, 페이스북/인스타그램은 버그투성이 free threading을 밀어 넣으려고 돈으로 파이썬 코어에 들어가려 하죠.

    정말 이타적이네요!

  21. pjmlp HN

    NVIDIA, AWS, Google, Intel, AMD,...

  22. anonymous908213 HN

    이건 Python Type Server Protocol이라고 불러야 하지 않나요? 파이썬만 지원하는 프로토콜이 범용 프로토콜 이름을 가져다 쓰는 건 이상해 보입니다. 특히 실제로 범용인 LSP를 만든 회사에서 나왔다는 점에서요.

  23. rzzzt HN

    Type Server Subsystem for Python

  24. cobolexpert HN

    Copilot+ Type Server Subsystem for Python Series S

  25. Waterluvian HN

    Copilot+ Type Server Subsystem for Python Series S .NET

  26. kstrauser HN

    …Server 2027.

  27. nazgulsenpai HN

    ...Subscription Edition

  28. keitmo HN

    ...365

  29. wseqyrku HN

    .PYTHON

  30. MoltenMonster HN

    For Teams

Hacker News에서 보기 ↗