프로젝트 소개
Goa는 Go 서비스를 구축하기 위한 설계 우선 프레임워크입니다. 핸들러, 클라이언트, 스펙을 별도로 작성하는 대신, Go 기반 DSL에서 타입, 메서드, 검증, 오류를 한 번만 설명하면 생성기가 나머지를 생성합니다.
단일 설계에서 생성기가 생성하는 것:
- 타입이 지정된 서비스 인터페이스, 엔드포인트, 클라이언트 및 경계 검증
- HTTP 서버 핸들러, 인코더/디코더, Go 클라이언트, CLI 명령 및 OpenAPI 스펙
- gRPC Protocol Buffer 정의, 서버/클라이언트 어댑터, 직렬화 및 CLI 명령
- JSON-RPC 서버/클라이언트 코드, 요청 디스패치, 배치 및 알림
- 스트리밍 지원: HTTP용 WebSocket 및 SSE, JSON-RPC용 SSE, gRPC 스트림
- 응답 형태를 선택하고 직렬화하는 코드가 포함된 명명된 결과 뷰
단일 서비스 정의는 동일한 작업을 HTTP, gRPC 및 JSON-RPC를 통해 노출할 수 있습니다. 생성된 전송은 하나의 서비스 인터페이스를 공유하므로 비즈니스 로직은 생성된 트리 외부에서 일반 Go로 한 번만 구현됩니다. 설계를 변경하고 재생성하면 핸들러, 클라이언트, 검증 및 스펙이 함께 업데이트되어 코드와 문서 간의 불일치가 줄어듭니다.
README는 또한 코딩 에이전트 워크플로우를 강조합니다: "Goa 서비스 설계자" 스킬을 애플리케이션 저장소에 설치하여 설계 변경, 생성, 구현 및 검증을 안내할 수 있습니다. 프로젝트는 Goa 타입을 재사용하고 도구를 서비스 메서드에 바인딩하는 AI 에이전트 및 MCP 서버 구축을 위해 Goa-AI를 가리키며, 인메모리 또는 Temporal 실행 엔진을 제공합니다.
시작하려면 Go 1.26 이상(1.27.1 권장)이 필요합니다. 빠른 시작 가이드는 모듈 초기화, 설계 작성, 생성기 및 예제 명령 실행, 결과 서비스 호출을 안내합니다. 세 가지 전송 모두에 대해 Protocol Buffer 컴파일러와 Go protobuf 생성기가 필요합니다. HTTP 전용 첫 실행은 gRPC 및 JSON-RPC 블록을 생략할 수 있습니다.
문서는 DSL 참조, 코드 생성, 전송별 가이드, 보안 체계 및 인터셉터와 같은 프로덕션 주제, 예제 애플리케이션 세트를 다룹니다. 프로젝트는 MIT 라이선스이며 커뮤니티 기여를 환영합니다.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.