내장 복원력 기능과 .api 명세 기반 goctl 코드 생성기를 제공하는 Go 웹 및 RPC 마이크로서비스 프레임워크입니다.
go-kratos/kratos
통합 HTTP·gRPC 전송 계층, 미들웨어, Protobuf 기반 코드 생성을 제공하는 경량 Go 클라우드 네이티브 마이크로서비스 프레임워크입니다.
- 스타
- 25,984
- 포크
- 4,182
- 열린 이슈
- 121
- 마지막 커밋
- 그저께
어떤 프로젝트인가요?
Kratos는 클라우드 네이티브 마이크로서비스를 구축하기 위한 Go 프레임워크입니다. 전송 계층, 미들웨어, 서비스 레지스트리, 설정, 로깅, 인코딩, 코드 생성 기능을 간결하고 명시적인 API로 제공해 개발자가 비즈니스 로직에 더 많은 시간을 쓸 수 있도록 합니다.
이 프레임워크는 API 우선 방식으로 동작합니다. 서비스를 Protobuf로 정의하면 Kratos CLI가 해당 정의를 바탕으로 HTTP 및 gRPC 서버·클라이언트 코드를 생성합니다. HTTP와 gRPC는 하나의 전송 계층을 공유하며, 미들웨어는 복구, 로깅, 검증, 트레이싱, 메트릭, 인증을 지원합니다. 레지스트리, 설정, 인코딩 구성 요소는 플러그인 방식으로 교체할 수 있습니다.
프로젝트에는 새 서비스를 스캐폴딩하는 CLI가 포함되어 있으며, contrib 생태계에서는 레지스트리, 설정 저장소, OpenTelemetry 기반 관측성 등의 선택적 통합을 제공합니다. 로깅은 표준 라이브러리의 log/slog 패키지를 기반으로 합니다.
핵심 기능
- 01Protobuf 우선 워크플로를 통해 HTTP 및 gRPC 코드를 생성합니다.
- 02HTTP와 gRPC를 모두 제공하는 통합 전송 계층입니다.
- 03복구, 로깅, 검증, 트레이싱, 메트릭, 인증을 위한 조합형 미들웨어를 제공합니다.
- 04레지스트리, 설정, 인코딩 구성 요소를 플러그인 방식으로 교체할 수 있습니다.
- 05표준 라이브러리 log/slog를 사용하는 로깅과 contrib 패키지의 OpenTelemetry 확장을 제공합니다.
활용 사례
- gRPC와 HTTP로 통신하는 Go 마이크로서비스를 구축할 때.
- Protobuf로 API를 정의하고 Go 팀을 위한 서버 및 클라이언트 스텁을 생성할 때.
- 표준 프로젝트 구조를 갖춘 새 Go 서비스를 스캐폴딩할 때.
빠른 시작
- 1
요구사항에 안내된 Go toolchain, protoc, protoc-gen-go를 설치합니다
- 2
Kratos CLI를 설치합니다
go install github.com/go-kratos/kratos/cmd/kratos/v3@latest - 3
helloworld라는 새 서비스를 만듭니다
kratos new helloworld - 4
프로젝트 디렉터리로 이동해 종속성을 가져온 다음 서비스를 실행합니다
cd helloworld && go mod tidy && kratos run
사용 전 알아둘 점
- 코드 생성을 위해 protoc와 protoc-gen-go를 별도로 설치해야 합니다.
- Go 1.25 이상이 필요합니다.
포함된 컬렉션
토픽
자주 묻는 질문
- kratos은(는) 무엇인가요?
- 통합 HTTP·gRPC 전송 계층, 미들웨어, Protobuf 기반 코드 생성을 제공하는 경량 Go 클라우드 네이티브 마이크로서비스 프레임워크입니다. Kratos는 클라우드 네이티브 마이크로서비스를 구축하기 위한 Go 프레임워크입니다. 전송 계층, 미들웨어, 서비스 레지스트리, 설정, 로깅, 인코딩, 코드 생성 기능을 간결하고 명시적인 API로 제공해 개발자가 비즈니스 로직에 더 많은 시간을 쓸 수 있도록 합니다.
- kratos은(는) 무료로 사용할 수 있나요? 라이선스는 무엇인가요?
- kratos은(는) MIT 라이선스의 오픈소스입니다. 상업용 제품에 사용하기 전에 라이선스 조건을 확인하세요.
- kratos은(는) 아직 유지보수되고 있나요?
- 활발히 유지보수 중. kratos의 마지막 커밋은 2026년 10월 21일입니다.
- kratos은(는) 어디에 사용할 수 있나요?
- gRPC와 HTTP로 통신하는 Go 마이크로서비스를 구축할 때. Protobuf로 API를 정의하고 Go 팀을 위한 서버 및 클라이언트 스텁을 생성할 때. 표준 프로젝트 구조를 갖춘 새 Go 서비스를 스캐폴딩할 때.
- kratos는 어떻게 설치하나요?
- 요구사항에 안내된 Go toolchain, protoc, protoc-gen-go를 설치합니다 Kratos CLI를 설치합니다: go install github.com/go-kratos/kratos/cmd/kratos/v3@latest helloworld라는 새 서비스를 만듭니다: kratos new helloworld 프로젝트 디렉터리로 이동해 종속성을 가져온 다음 서비스를 실행합니다: cd helloworld && go mod tidy && kratos run
- kratos은(는) 어디서 받을 수 있나요?
- 소스 코드와 설치 방법은 GitHub에 있습니다: https://github.com/go-kratos/kratos
요약은 프로젝트 README를 바탕으로 AI가 작성했습니다. GitHub 통계는 매일 갱신됩니다.
관련 프로젝트
서비스 통신, 디스커버리, 트래픽 관리를 위한 RPC 및 마이크로서비스 프레임워크 Apache Dubbo의 Java 구현체입니다.
Envoy 기반으로 Kubernetes Gateway API를 구현하고 AI 게이트웨이 사용 사례를 지원하는 Kubernetes 네이티브 API 게이트웨이입니다.
Martini와 비슷한 API를 제공하며 REST API, 웹 앱, 마이크로서비스 구축에 적합한 고성능 Go HTTP 웹 프레임워크입니다.
팀과 AI 에이전트가 도메인, 서비스, 이벤트, 메시지, 스키마를 카탈로그로 정리하는 소프트웨어 아키텍처 문서화 도구입니다.