{"id":48891,"date":"2026-10-27T15:32:02","date_gmt":"2026-10-27T06:32:02","guid":{"rendered":"https:\/\/jore2.com\/?p=48891"},"modified":"2026-10-27T15:32:02","modified_gmt":"2026-10-27T06:32:02","slug":"community-22518-type-server-protocol","status":"publish","type":"post","link":"https:\/\/jore2.com\/?p=48891","title":{"rendered":"\ub9c8\uc774\ud06c\ub85c\uc18c\ud504\ud2b8, \ud30c\uc774\uc36c \ud0c0\uc785 \ubd84\uc11d\uc6a9 JSON-RPC \ud504\ub85c\ud1a0\ucf5c TSP \uacf5\uac1c"},"content":{"rendered":"<div class=\"jore2-editor-byline\">\n<p><strong>\uc815\ud558\ubbfc<\/strong><\/p>\n<\/div>\n<p>\ub9c8\uc774\ud06c\ub85c\uc18c\ud504\ud2b8\uac00 \uacf5\uc2dd GitHub \uc800\uc7a5\uc18c\ub97c \ud1b5\ud574 \ud30c\uc774\uc36c \ud0c0\uc785 \ubd84\uc11d \ub370\uc774\ud130\ub97c \uc694\uccad\ud558\uae30 \uc704\ud55c \uc0c8\ub85c\uc6b4 \ud504\ub85c\ud1a0\ucf5c\uc778 Type Server Protocol\uc744 \uacf5\uac1c\ud588\uc2b5\ub2c8\ub2e4. \uc774 \ud504\ub85c\ud1a0\ucf5c\uc740 \uc57d\uce6d\uc73c\ub85c TSP\ub77c\uace0 \ubd88\ub9ac\uba70, JSON-RPC \uae30\ubc18\uc758 \ud1b5\uc2e0 \uaddc\uaca9\uc744 \ub530\ub974\uace0 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n<p>TSP\ub294 \uc791\uc5c5 \uacf5\uac04\uc758 \ud0c0\uc785 \ubd84\uc11d \uc0c1\ud0dc\ub97c \uc720\uc9c0\ud558\ub294 \ud0c0\uc785 \uc11c\ubc84\uc5d0 \uc5f0\uacb0\ud558\uc5ec \ud504\ub85c\ud1a0\ucf5c \ubc84\uc804, \uc2a4\ub0c5\uc0f7 \uc815\ubcf4 \ub4f1\uc744 \uc870\ud68c\ud560 \uc218 \uc788\ub3c4\ub85d \uc124\uacc4\ub418\uc5c8\uc2b5\ub2c8\ub2e4. \ub9c8\uc774\ud06c\ub85c\uc18c\ud504\ud2b8\ub294 \uc790\uc0ac\uc758 Python \uc5b8\uc5b4 \uc9c0\uc6d0 \ub3c4\uad6c\uc778 Pylance\uc758 \ubb38\uc11c\ud654 \uc790\ub8cc\ub85c \uc774 \ud504\ub85c\ud1a0\ucf5c\uc758 \uba85\uc138\uc640 \uad6c\ud604 \ucf54\ub4dc\ub97c \ud568\uaed8 \ubc30\ud3ec\ud588\uc2b5\ub2c8\ub2e4.<\/p>\n<p>\ud574\ub2f9 \uc18c\uc2dd\uc774 Hacker News\ub97c \ud1b5\ud574 \uc54c\ub824\uc9c0\uc790 \uac1c\ubc1c\uc790\ub4e4 \uc0ac\uc774\uc5d0\uc11c \uc989\uac01\uc801\uc778 \ubc18\uc751\uc774 \ub098\uc654\uc2b5\ub2c8\ub2e4. \uc77c\ubd80 \uc0ac\uc6a9\uc790\ub294 \uc774 \ud504\ub85c\ud1a0\ucf5c\uc774 \ud2b9\uc815 \uc5b8\uc5b4\uc5d0 \uc885\uc18d\ub41c \uae30\ub2a5\uc784\uc5d0\ub3c4 \ubd88\uad6c\ud558\uace0 &#8216;Type Server&#8217;\ub77c\ub294 \uc77c\ubc18\uc801\uc778 \uc774\ub984\uc744 \uc0ac\uc6a9\ud558\uace0 \uc788\ub2e4\ub294 \uc810\uc744 \uc9c0\uc801\ud558\uba70 \ud63c\ub780\uc744 \ud45c\ud588\uc2b5\ub2c8\ub2e4.<\/p>\n<p>\uae30\uc874\uc758 Language Server Protocol\uacfc\uc758 \uad00\uacc4\uc5d0 \ub300\ud55c \uc758\ubb38\ub3c4 \uc81c\uae30\ub418\uc5c8\uc2b5\ub2c8\ub2e4. \ud55c \uac1c\ubc1c\uc790\ub294 LSP \ud655\uc7a5\ub9cc\uc73c\ub85c \ud574\uacb0 \uac00\ub2a5\ud55c \uae30\ub2a5\uc744 \uad73\uc774 \ubcc4\ub3c4 \ud504\ub85c\ud1a0\ucf5c\ub85c \ubd84\ub9ac\ud55c \uc774\uc720\ub97c \uc774\ud574\ud558\uae30 \uc5b4\ub835\ub2e4\uace0 \ubc1d\ud614\uc2b5\ub2c8\ub2e4. \uc774\ub294 VS Code \uc678 \ub2e4\ub978 \uc5d0\ub514\ud130\ub85c\uc758 \uc804\ud658\uc744 \uc5b4\ub835\uac8c \ud558\ub824\ub294 \uc758\ub3c4\uac00 \uc788\ub294 \uac83\uc774 \uc544\ub2c8\ub0d0\ub294 \ucd94\uce21\uc73c\ub85c \uc774\uc5b4\uc84c\uc2b5\ub2c8\ub2e4.<\/p>\n<p>\ubc18\uba74 Astral \ud300\uc774 \uad00\ub9ac\ud558\ub294 Ty \ud0c0\uc785 \uccb4\ucee4\ub294 \uc774 TSP\ub97c \uc9c0\uc6d0\ud560 \uacc4\ud68d\uc774\ub77c\uace0 \uc5b8\uae09\ub418\uc5b4 \uc8fc\ubaa9\ubc1b\uc558\uc2b5\ub2c8\ub2e4. basedpyright\uc758 \uc720\uc9c0\ubcf4\uc218\uc790\uc778 DetachHead\ub294 \uacfc\uac70\ubd80\ud130 TSP\uc5d0 \ub300\ud574 \ube44\ud310\uc801\uc778 \uc785\uc7a5\uc744 \uacac\uc9c0\ud574 \uc654\uc73c\ub098, \uc8fc\uc694 \uc624\ud508\uc18c\uc2a4 \ub3c4\uad6c\uc758 \ucc38\uc5ec\ub85c \uc0dd\ud0dc\uacc4 \ud655\uc7a5\uc774 \uc608\uc0c1\ub429\ub2c8\ub2e4.<\/p>\n<p>\ud604\uc7ac\uae4c\uc9c0 \uacf5\uac1c\ub41c \ubb38\uc11c\ub294 TSP\uac00 \uae30\uc874 LSP \ub300\ube44 \uc5b4\ub5a4 \uad6c\uccb4\uc801\uc778 \uae30\uc220\uc801 \uc6b0\uc704\ub97c \uc81c\uacf5\ud558\ub294\uc9c0\uc5d0 \ub300\ud574 \uc0c1\uc138\ud788 \uc124\uba85\ud558\uc9c0 \uc54a\uace0 \uc788\uc2b5\ub2c8\ub2e4. \uacb0\uacfc \ub370\uc774\ud130 \ud615\uc2dd \uc5ed\uc2dc \ud30c\uc774\uc36c \ud2b9\uc720\uc758 \uad6c\uc870\ub97c \ubc18\uc601\ud558\uace0 \uc788\uc5b4 \ud0c0 \uc5b8\uc5b4\uc5d0\uc11c\uc758 \ud65c\uc6a9 \uac00\ub2a5\uc131\uc740 \uc81c\ud55c\uc801\uc73c\ub85c \ubcf4\uc785\ub2c8\ub2e4.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\ub9c8\uc774\ud06c\ub85c\uc18c\ud504\ud2b8\uac00 Pylance \ubb38\uc11c\uc5d0 \ud30c\uc774\uc36c \ud0c0\uc785 \uc11c\ubc84\uc640 \ud1b5\uc2e0\ud558\ub294 \uc0c8\ub85c\uc6b4 JSON-RPC \ud504\ub85c\ud1a0\ucf5c\uc778 Type Server Protocol\uc744 \uacf5\uac1c\ud588\ub2e4. \uac1c\ubc1c\uc790 \ucee4\ubba4\ub2c8\ud2f0\uc5d0\uc11c\ub294 LSP\uc640\uc758 \ucc28\ubcc4\uc810\uacfc \ubc94\uc6a9\uc131 \ubb38\uc81c\ub97c \ub450\uace0 \ub17c\uc7c1\uc774 \uc774\uc5b4\uc9c0\uace0 \uc788\ub2e4.<\/p>\n","protected":false},"author":5,"featured_media":48890,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"jore2_quality_policy":"people-first-v2","footnotes":""},"categories":[406],"tags":[32227,32228,32225,32226,6,14087],"class_list":["post-48891","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-406","tag-json-rpc","tag-lsp","tag-pylance","tag-typeserverprotocol","tag-6","tag-14087"],"featured_image_urls":{"full":["https:\/\/jore2.com\/wp-content\/uploads\/2026\/10\/community-22518-type-server-protocol.png",1200,600,false],"thumbnail":["https:\/\/jore2.com\/wp-content\/uploads\/2026\/10\/community-22518-type-server-protocol-150x150.png",150,150,true],"medium":["https:\/\/jore2.com\/wp-content\/uploads\/2026\/10\/community-22518-type-server-protocol-300x150.png",300,150,true],"medium_large":["https:\/\/jore2.com\/wp-content\/uploads\/2026\/10\/community-22518-type-server-protocol-768x384.png",640,320,true],"large":["https:\/\/jore2.com\/wp-content\/uploads\/2026\/10\/community-22518-type-server-protocol-1024x512.png",640,320,true],"1536x1536":["https:\/\/jore2.com\/wp-content\/uploads\/2026\/10\/community-22518-type-server-protocol.png",1200,600,false],"2048x2048":["https:\/\/jore2.com\/wp-content\/uploads\/2026\/10\/community-22518-type-server-protocol.png",1200,600,false],"morenews-large":["https:\/\/jore2.com\/wp-content\/uploads\/2026\/10\/community-22518-type-server-protocol-825x575.png",825,575,true],"morenews-medium":["https:\/\/jore2.com\/wp-content\/uploads\/2026\/10\/community-22518-type-server-protocol-590x410.png",590,410,true]},"author_info":{"info":["\uc815\ud558\ubbfc"]},"category_info":"<a href=\"https:\/\/jore2.com\/?cat=406\" rel=\"category\">\uc694\uc998\ub728\ub294\uc18c\uc2dd<\/a>","tag_info":"\uc694\uc998\ub728\ub294\uc18c\uc2dd","comment_count":"0","_links":{"self":[{"href":"https:\/\/jore2.com\/index.php?rest_route=\/wp\/v2\/posts\/48891","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/jore2.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/jore2.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/jore2.com\/index.php?rest_route=\/wp\/v2\/users\/5"}],"replies":[{"embeddable":true,"href":"https:\/\/jore2.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=48891"}],"version-history":[{"count":0,"href":"https:\/\/jore2.com\/index.php?rest_route=\/wp\/v2\/posts\/48891\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/jore2.com\/index.php?rest_route=\/wp\/v2\/media\/48890"}],"wp:attachment":[{"href":"https:\/\/jore2.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=48891"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/jore2.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=48891"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/jore2.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=48891"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}