Martini와 비슷한 API를 제공하며 REST API, 웹 앱, 마이크로서비스 구축에 적합한 고성능 Go HTTP 웹 프레임워크입니다.
evrone/go-clean-template
REST, gRPC, AMQP RPC, NATS RPC 전송 방식을 아우르는 Go 서비스용 Clean Architecture 프로젝트 템플릿입니다.
- 스타
- 7,708
- 포크
- 665
- 열린 이슈
- 3
- 마지막 커밋
- 11일 전
어떤 프로젝트인가요?
go-clean-template은 Clean Architecture 원칙을 따르는 Go 마이크로서비스 시작 템플릿입니다. 비즈니스 로직을 데이터베이스, 웹 프레임워크, 메시지 브로커 등의 인프라와 분리해, 핵심 유스케이스가 인터페이스와 표준 라이브러리에만 의존하도록 합니다. 서비스가 커져도 구조를 체계적으로 유지하도록 설계되었습니다.
템플릿에는 세 가지 예제 도메인이 포함되어 있습니다. JWT를 사용한 사용자 인증, 상태 전환을 지원하는 작업 관리, 이력 추적 기능을 갖춘 텍스트 번역입니다. 각 도메인은 네 가지 전송 방식으로 제공됩니다. Fiber 기반 REST API, gRPC, RabbitMQ(AMQP)를 통한 RPC, NATS를 통한 RPC입니다. 의존성 주입에는 New 생성자를 사용하며, 저장소에는 Postgres, RabbitMQ, NATS, Jaeger용 Docker Compose 설정이 포함되어 있습니다.
또한 네 가지 전송 방식 전반에서 컨텍스트를 전파하는 OpenTelemetry 트레이싱과 Prometheus 메트릭, Swagger 문서, 통합 테스트, 데이터베이스 마이그레이션 등 관측 가능성 관련 기능도 다룹니다.
핵심 기능
- 01New 생성자를 통한 의존성 주입과 Clean Architecture 계층 구조
- 02swag로 문서를 생성하는 Fiber 기반 REST API
- 03protobuf로 정의한 gRPC 서비스
- 04RabbitMQ(AMQP) 및 NATS 요청-응답 방식의 RPC 서버
- 05OpenTelemetry 트레이싱 및 Prometheus 메트릭
- 06Postgres, RabbitMQ, NATS, Jaeger가 포함된 Docker Compose 스택
활용 사례
- 일관된 프로젝트 구조를 갖춘 새 Go 마이크로서비스의 초기 구성
- Go에서 비즈니스 로직을 전송 방식 및 저장소와 분리하는 방법 학습
- 동일한 로직을 REST, gRPC, 메시지 큐로 제공해야 하는 서비스 구축
빠른 시작
- 1
Docker Compose로 Postgres, RabbitMQ, NATS를 실행합니다
make compose-up - 2
마이그레이션을 실행하고 앱을 시작합니다
make run
사용 전 알아둘 점
- 로컬 개발 환경에서 Postgres, RabbitMQ, NATS를 실행하려면 Docker Compose가 필요합니다.
토픽
자주 묻는 질문
- go-clean-template은(는) 무엇인가요?
- REST, gRPC, AMQP RPC, NATS RPC 전송 방식을 아우르는 Go 서비스용 Clean Architecture 프로젝트 템플릿입니다. go-clean-template은 Clean Architecture 원칙을 따르는 Go 마이크로서비스 시작 템플릿입니다. 비즈니스 로직을 데이터베이스, 웹 프레임워크, 메시지 브로커 등의 인프라와 분리해, 핵심 유스케이스가 인터페이스와 표준 라이브러리에만 의존하도록 합니다. 서비스가 커져도 구조를 체계적으로 유지하도록 설계되었습니다.
- go-clean-template은(는) 무료로 사용할 수 있나요? 라이선스는 무엇인가요?
- go-clean-template은(는) MIT 라이선스의 오픈소스입니다. 상업용 제품에 사용하기 전에 라이선스 조건을 확인하세요.
- go-clean-template은(는) 아직 유지보수되고 있나요?
- 활발히 유지보수 중. go-clean-template의 마지막 커밋은 2026년 10월 11일입니다.
- go-clean-template은(는) 어디에 사용할 수 있나요?
- 일관된 프로젝트 구조를 갖춘 새 Go 마이크로서비스의 초기 구성 Go에서 비즈니스 로직을 전송 방식 및 저장소와 분리하는 방법 학습 동일한 로직을 REST, gRPC, 메시지 큐로 제공해야 하는 서비스 구축
- go-clean-template는 어떻게 설치하나요?
- Docker Compose로 Postgres, RabbitMQ, NATS를 실행합니다: make compose-up 마이그레이션을 실행하고 앱을 시작합니다: make run
- go-clean-template은(는) 어디서 받을 수 있나요?
- 소스 코드와 설치 방법은 GitHub에 있습니다: https://github.com/evrone/go-clean-template
요약은 프로젝트 README를 바탕으로 AI가 작성했습니다. GitHub 통계는 매일 갱신됩니다.
관련 프로젝트
GoWA는 여러 계정, 웹훅, MCP, Chatwoot 연동을 지원하는 Go 기반 셀프 호스팅 WhatsApp REST API입니다.
최소한의 설정으로 운영 환경에 적합한 Spring 기반 애플리케이션과 서비스를 만들 수 있는, 기본 설정이 잘 갖춰진 Java 프레임워크입니다.
Ethereum 실행 레이어의 Go 구현체로, JSON-RPC와 개발 도구를 제공하며 풀 노드 또는 아카이브 노드로 실행할 수 있습니다.
Linux, macOS 등에서 실행되는 빠르고 기능이 풍부한 GPU 기반 터미널 에뮬레이터입니다.