Thrift에서 GraphQL로: 크로키닷컴의 마이크로서비스 통신 여정

by DD
7년 전
조회수 0

마이크로서비스 전환 후 Thrift를 선택하여 서비스 간 통신을 구현함

REST API의 단점을 보완하고자 Thrift를 도입했으나, 몇 가지 문제 발생

GraphQL로 전환하여 API 개발 생산성을 향상시키고, 현재 모든 API에 적용

Thrift 선택 배경: REST API의 한계

크로키닷컴은 마이크로서비스 아키텍처로 전환하며 REST API의 단점을 인지했다. 구체적으로, REST API는 마이크로서비스 간 복잡한 통신을 표현하기 어려웠다. 따라서 데이터 직렬화에 초점을 맞춰 Thrift를 선택했다. 결과적으로 데이터 크기 감소를 기대했으나, 몇 가지 문제에 직면했다.

Thrift의 기술적 도전과 한계

Thrift는 JavaScript 지원에 한계가 있었고, Node.js 환경에 최적화되지 않았다. 또한, TCP 소켓 통신의 오토 스케일링 문제로 인해 HTTP 통신을 사용해야 했다. 반면, API 추가/변경 시 코드 생성의 불편함이 있었다. 따라서 GraphQL로의 전환을 결정했다.

GraphQL 전환의 효과: API 개발 생산성 향상

크로키닷컴은 GraphQL 도입을 통해 API 개발 생산성을 향상시켰다. 구체적으로, API 추가/변경의 유연성을 확보하고, TypeScript와의 통합을 개선했다. 따라서 현재 모든 API를 GraphQL로 구축하고 있다. 결과적으로 API 관리 효율성을 높였다.

크로키의 스택 - Thrift

댓글 0

첫 번째 댓글을 남겨보세요!