지금 닷넷 백엔드에 리액트 프론트엔드로 운영하고있는데
Open API같은거 적용안되어있는 쌩 rest API임.
그런데 api 스펙 변경이 워낙 잦아서
그때그때 타입 맞추는게 너무 번거로운 상황이라
openAPI든 grpc든 IDL을 정의하는 방식의 무언가를 채택하려고 고민중임
그런데 혹시 IDL을 따로 정의하는게 아니라
노드백엔드랑 프론트를 모노레포로 관리하고
dto 인터페이스를 패키지로 따로 두고
프론트 백엔드가 같은 인터페이스를 직접 공유하는 방식은 어떤거같아?
당장 큰 단점이 떠오르진 않는데 놓치고있는게 뭐가있을까
물론 당장 기존 플젝을 닷넷에서 노드로 바꾸진 않을것같지만
신규플젝은 이렇게 해보는거 어떤가 싶어서
그럼 넌 trpc야
아 난 trpc도 따로 IDL을 정의하는건줄 알았는데 그냥 타입기본이노 내가 원하던게 이미 있었네 ㅇㅇ
trpc 안쓰고 니 말대로 dto 인터페이스 다른 모듈로 빼고 프론트랑 백엔드랑 그 모듈 import해서 써도 됨. 나도 글케함
그런방식과 비교해서 trpc 쓸때 장단점이 뭐가있을까?
아무래도 trpc라는 라이브러리를 쓰니까 trpc에 대한 종속성이 생길듯. 난 애초에 trpc라는 존재를 알기도 전에 공유 dto를 다른 모듈로 빼서 프론트랑 백엔드 공유하는 방식으로 해왔기 때문에 trpc를 한번도 안써봤지만, trpc가 만약에 nextjs나 nuxtjs 같은 모듈을 지원하지 않거나 하는 문제점이 있으면 이용 못할 수도 있을듯?
코드 작성도 trpc가 제시하는 방식대로 코딩해야 되고..
간단한거 한번 직접 짜보고 비교해봐야겠다 ㅇㅇ
타입공유는 단순히 바디, 헤더, 리턴타입에 대한 정의만 공유하고 이거에 대한 관리와 사용은 직접
trpc 는 api call 방식까지 전부 프레임워크에 맞춰서
그렇게 해도 되지만 버전관리를 위해서 라이브러리로 말아서 쓰지 않나