이벤트를 계량하고 가격 및 크레딧을 적용해 청구서와 결제를 생성하는 오픈소스 사용량 기반 과금 플랫폼입니다.
99designs/gqlgen
스키마 우선 GraphQL 정의에서 타입 안전한 GraphQL 서버 코드를 생성하는 Go 라이브러리입니다.
- 스타
- 10,767
- 포크
- 1,262
- 열린 이슈
- 396
- 마지막 커밋
- 13시간 전
어떤 프로젝트인가요?
gqlgen은 GraphQL 서버를 만들기 위한 Go 라이브러리입니다. GraphQL Schema Definition Language로 API를 정의하면 gqlgen이 필요한 Go 타입과 리졸버 인터페이스를 생성하므로, 상용구 코드는 자동으로 만들고 비즈니스 로직에 집중할 수 있습니다. 생성된 코드는 map[string]interface{}에 의존하지 않고 전체적으로 타입이 지정됩니다.
go generate 워크플로를 통해 실행되며, tool dependencies를 사용해 Go 툴체인과 통합됩니다. 설정은 gqlgen.yml 파일에서 하며, GraphQL 타입을 기존 Go 구조체에 매핑하거나 특정 필드의 리졸버를 강제하고 ID 표현 방식을 int 또는 string 등으로 변경할 수 있습니다. 필드 리졸버는 동시에 실행할 수 있으며, 동시 실행 수는 worker_limit 설정으로 제어합니다.
저장소에는 다른 Go GraphQL 구현과 기능을 비교하는 페이지와 시작하기 튜토리얼, pkg.go.dev의 레퍼런스 문서, 예제 애플리케이션도 포함되어 있습니다.
핵심 기능
- 01스키마 우선 개발: GraphQL SDL로 API를 정의하고 이를 바탕으로 코드를 생성합니다.
- 02타입이 지정된 Go 모델과 리졸버 인터페이스를 생성해 타입이 지정되지 않은 맵을 사용하지 않습니다.
- 03gqlgen.yml 또는 지시문을 사용해 GraphQL 타입을 기존 Go 구조체에 매핑합니다.
- 04사용하지 않는 하위 데이터를 가져오지 않도록 특정 필드의 리졸버를 강제할 수 있습니다.
- 05int, uint, string 간의 ID 타입 매핑을 설정할 수 있습니다.
- 06worker limit을 설정해 필드 리졸버의 동시 실행 수를 제어할 수 있습니다.
활용 사례
- 타입 안전성을 우선시하는 Go 기반 GraphQL API 백엔드를 구축할 때
- 기존 Go 구조체와 데이터 모델에 GraphQL 계층을 추가할 때
- API 스키마를 먼저 설계하고 이를 바탕으로 서버 코드를 생성하려는 팀
빠른 시작
- 1
새 Go 모듈 디렉터리를 만들고 해당 디렉터리로 이동합니다
mkdir example cd example go mod init example - 2
도구 의존성으로 gqlgen을 추가합니다
go get -tool github.com/99designs/gqlgen - 3
gqlgen 설정을 초기화하고 모델을 생성합니다
go tool gqlgen init - 4
GraphQL 서버를 시작합니다
go run server.go
사용 전 알아둘 점
- Go를 설치해야 하며 Go 서버 전용 라이브러리입니다.
- 스키마 우선 설계이므로 GraphQL 스키마와 리졸버를 직접 작성해야 합니다.
토픽
자주 묻는 질문
- gqlgen은(는) 무엇인가요?
- 스키마 우선 GraphQL 정의에서 타입 안전한 GraphQL 서버 코드를 생성하는 Go 라이브러리입니다. gqlgen은 GraphQL 서버를 만들기 위한 Go 라이브러리입니다. GraphQL Schema Definition Language로 API를 정의하면 gqlgen이 필요한 Go 타입과 리졸버 인터페이스를 생성하므로, 상용구 코드는 자동으로 만들고 비즈니스 로직에 집중할 수 있습니다. 생성된 코드는 map[string]interface{}에 의존하지 않고 전체적으로 타입이 지정됩니다.
- gqlgen은(는) 무료로 사용할 수 있나요? 라이선스는 무엇인가요?
- gqlgen은(는) MIT 라이선스의 오픈소스입니다. 상업용 제품에 사용하기 전에 라이선스 조건을 확인하세요.
- gqlgen은(는) 아직 유지보수되고 있나요?
- 활발히 유지보수 중. gqlgen의 마지막 커밋은 2026년 10월 21일입니다.
- gqlgen은(는) 어디에 사용할 수 있나요?
- 타입 안전성을 우선시하는 Go 기반 GraphQL API 백엔드를 구축할 때 기존 Go 구조체와 데이터 모델에 GraphQL 계층을 추가할 때 API 스키마를 먼저 설계하고 이를 바탕으로 서버 코드를 생성하려는 팀
- gqlgen는 어떻게 설치하나요?
- 새 Go 모듈 디렉터리를 만들고 해당 디렉터리로 이동합니다: mkdir example cd example go mod init example 도구 의존성으로 gqlgen을 추가합니다: go get -tool github.com/99designs/gqlgen gqlgen 설정을 초기화하고 모델을 생성합니다: go tool gqlgen init GraphQL 서버를 시작합니다: go run server.go
- gqlgen은(는) 어디서 받을 수 있나요?
- 소스 코드와 설치 방법은 GitHub에 있습니다: https://github.com/99designs/gqlgen
요약은 프로젝트 README를 바탕으로 AI가 작성했습니다. GitHub 통계는 매일 갱신됩니다.
관련 프로젝트
PostgreSQL 기반의 오픈소스 Firebase 대안으로, 즉시 사용할 수 있는 GraphQL API와 인증, 스토리지, 서버리스 함수를 제공합니다.
기존 PostgreSQL 데이터베이스를 별도의 백엔드 코드 작성 없이 RESTful API로 제공하는 독립형 서버입니다.
서비스, 워커, 큐, 크론 작업과 에이전트를 하나의 실시간 함수 카탈로그로 조합하고 탐색하며 추적할 수 있는 Rust 런타임입니다.