아 아까 지혁님 발표 보고 하려던 얘기인데요. Apollo가 클라이언트에서는 graphql...
# 잡담
h
아 아까 지혁님 발표 보고 하려던 얘기인데요. Apollo가 클라이언트에서는 graphql-tools와 SchemaLink를 권장하지 않고 apollo-utilities 라는 별도의 구현체를 만들어 사용하던 이유는 번들사이즈 때문입니다. graphql-tools는 서버용으로 작성된거라 브라우저 대응이 아무것도 안되어있었거든요.
그랬는데 최근에 엄청나게 개선한 것 같긴하네요. 패키지 관리를 The guild 로 넘기고 여기서 3.0 이후로 좀 유니버셜하게 사용할 수 있게 개선한 모양입니다. 번들사이즈도 좀 합리적으로 줄이고 트리쉐이킹도 되는군요
좀 예전엔 클라이언트 스키마 쓴다고 하면 Apollo Client 150K + link schema 12K + graphql-tools 250K 이런 식으로 늘어났거든요. ㅋㅋㅋ; 그래서 apollo-link-state가 apollo-utilities 라는 커스텀 경량 구현체를 들고 있었고
그런데 apollo client v3 는 apollo-utliities 조차 의존성 안쓰고 번들사이즈도 굉장히 크게 줄였군요 https://bundlephobia.com/result?p=@apollo/client@3.0.0-beta.44
Urql + populate + graphcache 쓰는거랑 이제 크게 차이 안나네요 와우
그래도 클라이언트에서 graphql-tools 를 쓰고자 한다면 더블이 되긴 하죠... 제가 번들사이즈에 너무 민감해서 그런지;
t
크으 꿀팁...
그러면 apollo client로 클라이언트 스키마 구성하고, relay network로 달아봐야겠네요.
저도 개발중인 프로젝트라... 아직 번들 애널라이저를 안돌려봤네요 ㅋㅋ
갓혜성 그는 빛...
이 동네는 전부 수동... ㅋㅋㅋㅋ
__clientField
디렉티브가 존재하긴 하는데 이거 문서화가 안되어 이씅ㄹ 거에요