이국범님의 프로필 사진

이국범

FE

tRPC가 느렸던건 사실이었고 해당 이슈는 수정된 것으로 보임

특히 버전 9에서 느리다는 의견이 많았음 https://github.com/trpc/trpc/discussions/2448 위의 이슈에서 버그 제보자는 약 40개 가량의 api 엔드포인트에서 속도저하 현상이 발생했다는 제보를 남겼음. 특히 useMutation과 관련하여 매우 느려졌다고 함. ​ 이 이슈는 버전10에서 해결된 것으로 보임 ​ ``` With 100+ endpoints, and a relatively complex tooling and code base, (nx monorepo), we don't have any performance issues anymore. I am using v10 ``` ​ 그러므로 tsc로 컴파일이 안된다던가 intellisense가 느린 이슈는 걱정하지 않아도 될것으로 보임 ​ 그런데 지금까지 왜 느렸을까? 아래 링크에서 힌트를 찾을 수 있음 https://gall.dcinside.com/mgallery/board/view/?id=github&no=49731 위의 댓글에서 samchon은 zod와 tRPC router에 TMP가 떡칠되어 있었기 때문에 느려진 것이라고 주장하였음. TMP란 Template metaprogramming의 줄임말로 본래 c++등의 타언어 커뮤니티에서 사용된 용어이고 타입스크립트 생태계에서 쓰이는 말은 아니다. 하지만 본질적으로 의미는 유사하다. 타입스크립트의 제네릭 타입을 이용하여 통상적인 방법으로는 불가능한 각종 타입추론을 구현하는 방법인데 이것에 대해서만 전문적으로 다루는 유튜브 채널이 있다 https://www.youtube.com/@MichiganTypeScript​ 가령 Subtract 타입은 뺄셈을 구현한 것인데 Subtract<1, 1> 의 타입은 0이 되고 Subtract<2, 1>의 타입은 1이 된다. 이런 매직은 주로 재귀함수를 통해서 구현된다. 상세는 https://www.youtube.com/watch?v=yWZqtsTVuug 참조 samchon이 주장하는 바는 이런식의 타입 레벨 프로그래밍이 TSServer 또는 tsc 컴파일러에 과부하를 주어서 IDE 인텔리센스의 추론속도를 느리게 만들거나 컴파일 에러를 유발한다는 것. 이 의견은 일리가 있는데 실제로 과거 zod 버전은 ts서버에 과도한 cpu사용을 유발하였음. 또다른 제보자는 인텔리센스에 무려 2초가 걸렸다고 함. 상세는 아래 참조 https://github.com/colinhacks/zod/issues/2142 이 버그는 현재 수정되었음 ​그 외에 과거 zod 버전에서 재귀 타입 이슈로 TSServer의 cpu 사용량이 과도한 이슈가 있었던 것으로 보임 (이 정보는 convex 메인테이너인 john에게 들었음) ​결론적으로 재귀 타입을 비롯한 타입 레벨 프로그래밍이 퍼포먼스 하락에 영향을 미쳤던 것으로 보임.

Resources for improving typescript performance? · trpc/trpc · Discussion #2448

GitHub

Resources for improving typescript performance? · trpc/trpc · Discussion #2448

다음 내용이 궁금하다면?

또는

이미 회원이신가요?

2023년 9월 8일 오전 2:57

댓글 0

    함께 읽은 게시물

    iOS 19가 아니라 이제 iOS 26?

    ... 더 보기

    No iOS 19: Apple Going Straight to iOS 26

    MacRumors

    No iOS 19: Apple Going Straight to iOS 26


    괴물은 하루아침에 태어나지 않는다

    큰 것을 하는 것보다 매일 작은 것을 완벽하게 해내는 노력이 더 중요하다. 내가 성격 장애의 하나인 자기애성 성격장애자(NPD, Narcissistic Personality Disorder)를 만나면서 느낀 것은, 처음에는 그런 사람도 "정상인"처럼 느껴진다는 것이었다. 다만 그의 미친짓은 내가 매일매일 "사소한" 사건들로 상대방에게 익숙해졌을 때 발생한다.

    ... 더 보기

    Next.js 프로젝트를 AWS EKS에 배포하며 배운 것들

    ... 더 보기

    쿠버네티스를 활용한 클라우드 네이티브 데브옵스 | 존 어런들 - 교보문고

    product.kyobobook.co.kr

    쿠버네티스를 활용한 클라우드 네이티브 데브옵스 | 존 어런들 - 교보문고

     • 

    저장 4 • 조회 775


    개발자는 개발만 잘하면 될까

    최근에 친구가 추천해준 데일 카네기의 인간관계론을 읽던 중 고액 연봉을 받는 엔지니어들의 특징에 대한 흥미로운 내용이 있었다.

    ... 더 보기

     • 

    저장 13 • 조회 2,585


    스트레스를 잘 관리하면서 건강하게 살아가고 싶다면, 우선 살아있는 한 우리가 해야 할 일들은 영원히 없어지지 않을 것이므로, 해야 할 일을 100% 해내면서 할 일 목록을 완전히 없애는 데 많은 노력을 들이기보다는 70% 정도만 해내도 만족할 필요가 있다.

    ... 더 보기

    [박진영의 사회심리학]스스로 만들어 내는 스트레스

    m.dongascience.com

    [박진영의 사회심리학]스스로 만들어 내는 스트레스