크로키, GraphQL 도입으로 API 개발 생산성 UP!
by DD
7년 전
조회수 10
Thrift에서 GraphQL로 API를 전환하여 개발 편의성을 향상시킴
GraphQL 스키마 정의 방식을 변경하고, type-graphql을 적용하여 타입 안정성을 확보함
Apollo Client를 활용하여 안드로이드, iOS, 웹 환경에서 API 호출 코드를 구현
GraphQL 스키마 정의 방식 변천사
초기에는 GraphQLObjectType을 사용하여 스키마를 정의했지만, 타입 수가 증가하면서 가독성이 떨어지는 문제가 발생했다. 따라서 스키마 문자열을 통해 정의하는 방식으로 변경하여 가독성을 개선했다. type-graphql 적용을 통해 타입 체킹과 DB 모델과의 일관성을 유지했다.
Apollo Client를 활용한 클라이언트 구현
클라이언트 측에서는 Apollo Client를 사용하여 API 호출 코드를 생성하고 있다. 안드로이드, iOS, 웹 환경에서 각기 다른 방식으로 API를 호출한다. LoginInput과 같은 객체를 사용하여 타입 안정성을 확보하고, mutation을 통해 데이터를 전송한다. 따라서 API 호출을 간편하게 관리할 수 있다.
GraphQL 도입의 장단점 및 교훈
GraphQL 도입으로 개발 편의성이 향상되었지만, 기존 API를 모두 GraphQL로 전환하지 못해 중복 작업이 발생했다. GraphQL 생태계의 성숙도와 기술 부채를 털어낼 적절한 시기를 고려하는 것이 중요하다. 따라서 기술 전환 시점 결정에 신중해야 하며, API 설계에 대한 지속적인 고민이 필요하다.