GraphQL, REST, WebSockets, SSE, gRPC를 지원하고 로컬, Git, 클라우드 저장소를 제공하는 오픈소스 크로스 플랫폼 API 클라이언트입니다.
goadesign/goa
하나의 Go 계약으로 HTTP, gRPC, JSON-RPC 서비스와 클라이언트, OpenAPI/protobuf 사양을 생성하는 설계 우선 Go 프레임워크입니다.
- 스타
- 6,122
- 포크
- 582
- 열린 이슈
- 37
- 마지막 커밋
- 4일 전
어떤 프로젝트인가요?
Goa에서는 Go DSL로 타입, 작업, 검증 규칙을 한 번만 정의하면 됩니다. 이 설계를 바탕으로 HTTP, gRPC, JSON-RPC용 서버 및 클라이언트 코드와 CLI 클라이언트, OpenAPI 사양, Protocol Buffer 정의를 생성합니다. 모든 전송 방식이 동일한 생성 서비스 인터페이스를 호출하므로 API 문서와 코드가 항상 일치합니다.
개발자는 직접 작성하는 Go 파일에 비즈니스 로직만 구현하고, 이 파일은 생성 코드가 들어가는 gen/ 디렉터리 바깥에 둡니다. 설계에서 필드나 검증 규칙을 바꾸고 다시 생성하면 핸들러, 클라이언트, 검증 로직, 사양이 함께 업데이트됩니다. 프로젝트에는 설계 변경, 코드 생성, 검증 과정을 안내하는 코딩 에이전트용 스킬도 포함되어 있습니다.
Goa에는 같은 타입 정의를 재사용해 AI 에이전트와 MCP 서버를 구축하는 보조 프로젝트 Goa-AI도 있습니다.
핵심 기능
- 01하나의 Go 설계에서 HTTP, gRPC, JSON-RPC 전송 계층을 생성합니다
- 02Go 클라이언트, CLI 클라이언트, 요청 검증을 자동으로 생성합니다
- 03OpenAPI 사양과 Protocol Buffer 정의를 출력합니다
- 04WebSocket, SSE, gRPC 스트림을 통한 스트리밍을 지원합니다
- 05구현 코드를 생성 코드와 분리해 둡니다
활용 사례
- REST와 gRPC 엔드포인트를 모두 제공해야 하는 Go 마이크로서비스 구축
- OpenAPI 문서를 직접 작성하지 않고 Go API와 동기화해 유지
- 코딩 에이전트가 타입이 지정된 계약을 수정하고 다시 생성해 API를 변경하도록 지원
빠른 시작
- 1
Goa 모듈을 설치합니다(Go 1.27.3 이상 필요)
go get goa.design/goa/v3@latest - 2
설계에서 서버 및 클라이언트 코드를 생성합니다
go run goa.design/goa/v3/cmd/goa gen hello/design - 3
스타터 애플리케이션 파일을 만듭니다
go run goa.design/goa/v3/cmd/goa example hello/design - 4
포트 8000에서 서비스를 실행합니다
go run ./cmd/hello --http-port=8000
사용 전 알아둘 점
- Go 1.27.3 이상이 필요합니다.
- gRPC 또는 JSON-RPC를 사용하려면 Protocol Buffer 컴파일러와 Go protobuf 생성기를 설치해야 합니다. 처음 실행할 때 HTTP만 사용하면 설치하지 않아도 됩니다.
포함된 컬렉션
토픽
자주 묻는 질문
- goa은(는) 무엇인가요?
- 하나의 Go 계약으로 HTTP, gRPC, JSON-RPC 서비스와 클라이언트, OpenAPI/protobuf 사양을 생성하는 설계 우선 Go 프레임워크입니다. Goa에서는 Go DSL로 타입, 작업, 검증 규칙을 한 번만 정의하면 됩니다. 이 설계를 바탕으로 HTTP, gRPC, JSON-RPC용 서버 및 클라이언트 코드와 CLI 클라이언트, OpenAPI 사양, Protocol Buffer 정의를 생성합니다. 모든 전송 방식이 동일한 생성 서비스 인터페이스를 호출하므로 API 문서와 코드가 항상 일치합니다.
- goa은(는) 무료로 사용할 수 있나요? 라이선스는 무엇인가요?
- goa은(는) MIT 라이선스의 오픈소스입니다. 상업용 제품에 사용하기 전에 라이선스 조건을 확인하세요.
- goa은(는) 아직 유지보수되고 있나요?
- 활발히 유지보수 중. goa의 마지막 커밋은 2026년 11월 3일입니다.
- goa은(는) 어디에 사용할 수 있나요?
- REST와 gRPC 엔드포인트를 모두 제공해야 하는 Go 마이크로서비스 구축 OpenAPI 문서를 직접 작성하지 않고 Go API와 동기화해 유지 코딩 에이전트가 타입이 지정된 계약을 수정하고 다시 생성해 API를 변경하도록 지원
- goa는 어떻게 설치하나요?
- Goa 모듈을 설치합니다(Go 1.27.3 이상 필요): go get goa.design/goa/v3@latest 설계에서 서버 및 클라이언트 코드를 생성합니다: go run goa.design/goa/v3/cmd/goa gen hello/design 스타터 애플리케이션 파일을 만듭니다: go run goa.design/goa/v3/cmd/goa example hello/design 포트 8000에서 서비스를 실행합니다: go run ./cmd/hello --http-port=8000
- goa은(는) 어디서 받을 수 있나요?
- 소스 코드와 설치 방법은 GitHub에 있습니다: https://github.com/goadesign/goa
요약은 프로젝트 README를 바탕으로 AI가 작성했습니다. GitHub 통계는 매일 갱신됩니다.
관련 프로젝트
데이터베이스와 비즈니스 로직을 REST API로 제공하고 AI 에이전트용 MCP도 지원하는 셀프 호스팅 PHP API 게이트웨이 및 관리 플랫폼입니다.
표준 타입 힌트로 API를 구축하고 자동 검증, OpenAPI 문서, 높은 성능을 제공하는 Python 웹 프레임워크입니다.
REST 및 SOAP 서비스를 프록시하고 OpenAPI 배포, WSDL-to-OpenAPI 변환, OAuth2/JWT 보안, 메시지 검증 기능을 제공하는 오픈소스 API 게이트웨이입니다.
Go로 만든 로컬 우선 네이티브 API 클라이언트로, REST, gRPC, GraphQL, WebSocket을 지원하며 트래픽 프록시를 내장합니다.