Tech

Go with GraphQL

euidong 2021. 4. 4. 23:31

Golang을 이용하여 graphql API server를 만들고자 여러가지를 찾아보다가 gqlgen이라는 프로젝트를 발견하고, 어느정도 환경 준비를 해보며 느낀 점들을 정리합니다.

 

일단 필자는 이전에 typescript 기반으로 graphql API server를 구현한 경험이 있었고, 그 과정에서 prisma + Apollo server 조합을 이용했습니다. 해당 구현이 상당히 많은 사람에 의해서 이미 관리가 진행되었고, 대다수의 graphql 예시 코드가 javascript or typescript로 작성되기 때문에 자료가 다수 존재했습니다. subscription, relay에 이르기까지 다양한 기능까지 지원하는 library가 다수 존재합니다. 그러던 와중, Go라는 언어에 흥미를 느끼게 되었고, 효율적인 서버 구성에 관심을 갖고 공부하던 중에 다음과 같은 Posting을 보게 되었습니다. (아직까지도 graphql이 엄청 성숙한 단계까지는 아닌지라 github code의 변동 사항이 엄청 많다.)

 

해당 posting에서는 50%의 memory 사용률에서 Go로 변경되며 10% 때로 떨어졌다고 말합니다. 뭐 이전에 nodeJS로 적용하면서, 비효율적으로 작성했을 수도 있지만, 실제로 40%까지 감소한 것이 매우 흥미로웠습니다.

 

 

Why we moved our graphQL server from Node.js to Golang

In the beginning: Apollo Server

medium.com

 

그래서, 시작한 Graphql 세팅 작업.

일단, gqlgen을 이용하여 구현을 시작하였습니다. 해당 사이트에서 tutiorial을 진행하여 구현을 완료하였습니다. 작성자가 java 개발자인지 상당히 java sevlet 개발하는 것과 동일한 구조를 가지고 있습니다.

 

 

Building a GraphQL Server with Go Backend Tutorial | Intro

Learn how to build a GraphQL server with gqlgen.

www.howtographql.com

 

앞으로 더 추가될 사항이 있으면 추가해서 작성하겠습니다.

 

 

euidong/go-graphql-api-server

Contribute to euidong/go-graphql-api-server development by creating an account on GitHub.

github.com